链接您自己的 I/O
借助此功能,本地 I/O 可以连接到控制器并在 IEC 应用程序中使用。
编辑设备描述
在提供的示例 UDSIoDrvExample.project
中,根据设备描述创建了两个输入和输出。输入和输出通过 Unix 域套接字连接。您可以在 CODESYS 子目录 CODESYS Control SL Extension Package\<version>\Examples\ExternalIoDrv
.

要定义您自己的输入和输出,设备描述文件 SocketUnixIOTemplate.devdesc.xml
必须适应。一个 XML parameter
必须为每个输入和输出定义元素。 ParameterId
在设备描述文件中必须是唯一的。我们建议简单地按升序编号,没有间隙。例如:1000 1001 1002 等等:输入从 1000 开始编号,输出从 2000 开始编号。
注意
如果修改了设备描述,则必须将其重新安装在设备存储库中,以便在项目中可用。
<Parameter ParameterId="1000" type="std:DWORD"> <Attributes channel="input"/> <Default/> <Name name="local:in1">/Namne> </Parameter>
名称 | 描述 |
---|---|
参数 ID | 调用输入或输出的唯一 ID |
类型 | 定义输入或输出的宽度。它是通过指定适当宽的数据类型来完成的,例如 |
属性通道 |
|
姓名 姓名 | 相应输入或输出的名称 |
此外,必须分配设备 ID,其定义在 <DeviceIdentification>
. 0x0001 8000 到 0x0001 80FF 的范围是为此目的提供的,以避免与现有设备发生冲突。
重要
设备描述和底层 I/O 驱动程序不应在一个 PLC 下多次实例化,因为模块的顺序不固定。这可能导致 I/O 驱动程序无法确保分配。
Python 示例
在 Python 示例中 uds_io_driver.py
,接收输出并写入设备的输入。输入参数(IEC输出)作为字符串元组传递(paramType
, paramValue
) 以设备描述的参数ID为索引。
驱动程序可以处理数据类型 USINT
, UINT
, UDINT
, 和 ULINT
.其他数据类型必须转换为合适的数据类型。
例子: ('2000': ('UDINT', '11'), '2001': ('UDINT', '22')}
.输出参数格式相同。
同样对于对等体,“输出”/输出参数仍然是要由 IEC 应用程序“向外”传输的输出值(例如,写出到真实的 GPIO)。这 UDS_IODriver_0
示例中实现的类扩展了 ExternalFunctionBase
类。类的名称来源于 UDS_IODriver_
后跟按升序排列的实例索引。 Call()
函数是必需的,从 IEC 的机制中调用。现在可以在此处评估 IEC 输出并且可以传输 IEC 输入。
接口的使用仅作为 Linux 的成员 | 是的 |
流程分离 | 是的 |