BACnet 配置在 CODESYS 项目 BACnet 设备树和设备编辑器中的配置 在 CODESYS ,您可以插入一个 BACnet 服务器和 BACnet 对象作为项目树中 PLC 设备下方的设备。这 BACnet 服务器代表 BACnet 设备并处理与运行时系统的通信。 每个应用程序可以有一个服务器设备,包括作为子对象的对象设备。您还可以插入 BACnet 客户端位于服务器下方。 要求:
进入 BACnet 对象及其属性 每个功能块 BACnet 作为项目树中的设备插入的对象源自 BACnetStaticObjectBase 功能块(库 BACnet )因此从 BACnetObjectBase 。 BACnetObjectBase 提供通过通用功能更改任何 BACnet 对象功能块的任何 BACnet 属性的能力 SetPropertyInstance 。 要设置的 BACnet
用于 BACnet 客户端功能块 此外 BACnet 物体, BACnet 客户端也可以作为“设备”插入到 BACnet 服务器。 与对象和服务器一样,每个客户端设备也带有一个功能块,该功能块以与客户端设备相同的名称进行实例化。 不像 BACnet 物体,一个 BACnet 客户端不需要复杂的(静态)配置。因此,即使不创建客户端功能块也可以使用 BACnet 客户端作为“设备”。然而,在这种情况下
BACnet 数据类型 – 定义和例外 这 BACnet 库主要使用 BACnet 数据类型(在 CmpBACnet 库)在其接口(方法参数、方法返回值、功能块属性)。 如果接口上使用其他数据类型(在这种情况下主要是 IEC 基本数据类型),则相应的方法和属性将执行与相应内部使用的隐式转换 BACnet 数据类型。 例子: 转换 国际电工委员会 BOOL <-> CmpBACnet.IEC_BAC
使用电流时的实施要求 BACnet API/堆栈 在实施 BACnet 这里描述的API/stack,很大一部分对象行为是在 BACnet 标准已经预先实施。但是,每个特定应用程序(用户应用程序,或者换句话说您的应用程序)必须实现特定的对象操作,以便完全遵守 BACnet 标准(例如,获得BTL认证)。 许多服务请求已在此 API 中处理,因此应用程序无需注册所有服务挂钩即可作为服务运行 BACn
具有默认操作实现的服务指示挂钩 以下是已经实现了一些默认操作并且通常不需要在用户应用程序中实现任何钩子的列表: 服务挂钩:AcknowledgeAlarm 验证请求的有效性后,API 尝试定位指定的对象。如果该对象存在并且如果 Time Stamp 参数与被确认事件的最近时间相匹配,则将发生以下情况: Acked_Transitions 对象的属性对应于值 Event State Acknowle
带有内部使用实现的服务指示挂钩 以下列出的挂钩没有实现任何默认操作,但“高级客户端 API”使用这组函数从远程设备获取数据: ConfirmedCOVNotification 服务挂钩 ConfirmedEventNotification 服务挂钩 UnconfirmedCOVNotification 服务挂钩 UnconfirmedEventNotification 服务挂钩 这些钩子可用于接收
没有默认操作实现的服务指示挂钩 以下列出的挂钩未实施任何默认操作。在必须支持服务的情况下,应用程序必须实现自己的请求处理例程。 DeviceCommunicationControl 服务挂钩 ReinitializeDevice 服务挂钩 TimeSynchronization 服务挂钩 UtcTimeSynchronization 服务挂钩 此处列出的钩子可能必须由用户应用程序实现(取决于用户应
建立连接 通过几个步骤建立连接 通过 DCP 识别请求,控制器扫描网络以查找 PROFINET 具有已定义站名的设备。 控制器使用 DCP set 命令设置所需的 IP 地址 PROFINET 设备。 控制器向设备发送连接请求(RPC 协议)。该请求包含控制器想要与之交换数据的子模块列表。 这 PROFINET 设备将预期子模块列表与实际可用子模块进行比较。在出现偏差的情况下,连接响应包含带有不匹
PROFINET 诊断 本章描述了诊断机制如何从 PROFINET 可用于 CODESYS . 系统相关故障(例如,由防火墙引起)的检测和纠正在 故障排除 章节。 为了防止工厂运行期间的停机,诊断旨在允许快速检测甚至预防故障。去做这个, PROFINET 提供广泛的诊断机制,提供有关故障来源和位置的信息。因此,可以将设备或模块甚至特定的 I/O 通道识别为故障的触发器。诊断提供有关错误严重性的附加