带输入/输出通道的设备
该选项卡显示在带有 I/O 通道的设备编辑器中。它显示可用通道,并可将控制器的输入、输出和内存地址映射到应用程序的变量或整个功能块。这样,就创建了 "I/O 映射"。
“PLC 设置” 选项卡上定义了负责 I/O 处理的应用程序。
如果设备支持 "联机配置模式",则可以使用该模式。在这种模式下,您可以访问硬件的 I/O,而无需事先向设备下载实际应用程序。
您也可以在“编辑 I/O 映射” 对话框中创建 I/O 映射。在这里,您可以获得一个映射列表,其中包含整个设备树的搜索和过滤功能。




注意

映射 "过大 "数据类型
如果数据类型大于字节的变量被映射到字节地址,变量值将被截断为字节大小。对于在“I/O 映射” 对话框中监控变量值,这意味着在地址的根元素中显示变量在项目中的当前值。字节的当前单个位值会依次显示在下方的位元素中,但这可能不足以显示整个变量值。
“<设备名称> CAN 总线从站的 I/O 映射” 选项卡示例:

该选项卡包含一个用于编辑 I/O 映射的表格。输入和输出显示的信息来自设备描述。
“查找” (1) |
映射表搜索字符串的输入字段。搜索结果标记为黄色。 |
“过滤器” (2) |
列表框,用于筛选映射表中显示的 I/O 映射:
|
|
视设备而定,如果在映射表中选择了通道条目,则可用。打开“Select Function Block” 对话框,用于选择应直接链接到通道的功能块。 |
|
如果在映射表中选择了条目,则可用。跳转到“<设备名称> IEC 对象” 标签上的相应条目。 |
“可变” |
根据设备的不同,设备的输入和输出显示为节点,节点下方缩进显示相关通道,或者根据设备的不同,只显示隐式创建的设备实例。 符号表示通道类型:
双击单元格,打开输入框。
根据设备的不同,输入或输出可直接连接到功能块。在这种情况下,可点击 |
“制图” (3) |
绘图类型:
|
“Channel” (4) |
通道的符号名称。 |
“地址” (5) |
通道地址(例如: 地址删除线:表示不再为该地址分配变量。原因是虽然此处指定的变量作为现有变量在不同的内存位置进行管理,但在写入值(尤其是输出值)时可能会产生歧义。
|
型 (6) |
通道的数据类型(例如: 设备描述中定义的结构或位字段只有在它们属于 IEC 标准并在设备描述中标识为 IEC 数据类型时才会显示。否则,表格单元格仍然为空。 在映射结构变量时,编辑器会阻止您同时指定结构变量(例如: |
“默认值” |
适用于通道的参数默认值:只有在“PLC Settings” 中为停止时的输出行为选择了“Set all outputs to default” 选项时才会出现。 请注意:对于 V3.5 SP11 及更高版本的编译器,在将变量映射到现有变量时,会自动使用变量的初始化值作为默认值。只有在映射到新创建的变量或未指定映射时,才能编辑“默认值” 字段。在旧版本中,用户必须明确指定默认值和初始化值相同。 |
“Unit” (7) |
参数值的单位(例如: |
“说明” (8) |
参数的简要说明。 |
“当前值” |
应用于通道的参数的实际值;仅在线模式下显示。 |
允许通过在线更改来改变默认值,但只有在 "冷态重置 "或 "热复位 "后才会应用该值。
“重置映射” (9) |
CODESYS 将映射设置重置为设备描述文件中定义的默认值。 |
“始终更新变量” (10) |
设备对象关于更新 I/O 变量的定义。默认值在设备描述中定义:
|
如果 UNION 在映射对话框中用 I/O 通道表示,那么是否也可以映射到根元素取决于设备。
带 I/O 驱动程序的设备
对于带有 I/O 驱动程序的设备,如果不使用常规设置(“PLC 设置” 标签),则可以在“I/O 映射” 标签中设置总线周期任务。
“总线循环任务 ” |
该列表框提供了活动应用程序任务配置中定义的所有任务(例如,"任务"):“MainTask” 。在“使用父节点总线周期设置” 的情况下,将使用父节点的设置。 |
有关总线周期任务的通用信息
一般,对于每个 IEC 任务,使用的输入数据在每个任务开始时读取 (1),写入的输出数据在任务结束时传输到 I/O 驱动程序 (3)。I/O 驱动程序的实现对 I/O 数据的额外传输起着决定性作用。它负责确定实际传输到相应总线系统的时间范围和时间点。
PLC 的总线周期任务可在 PLC 设置中为所有现场总线进行全局定义。不过,对于某些现场总线,可以在全局设置之外进行更改。循环时间最短的任务被用作总线循环任务(设置:“,PLC 设置中未指明” )。信息通常在总线上发送。
其他任务仅从内部缓冲区复制 I/O 数据,该缓冲区仅在总线周期任务中与物理硬件交换。

(1) Read inputs from input buffer (2) IEC task (3) Write outputs to output buffer (4) Bus cycle (5) Input buffer (6) Output buffer (7) Copy data to/from bus (9) Bus cycle task, priority 1, 1 ms (10) Bus cycle task, priority 5 (11) Bus cycle task, priority 10, interrupted by task 5
任务使用情况
“任务部署” 标签提供了已用 I/O 通道、设置总线周期任务和通道使用情况的概览。




警告

如果在不同的任务中都写入了输出,那么状态是未定义的,因为每次都可能被覆盖。
如果在不同的任务中使用相同的输入,那么在任务处理过程中输入就有可能发生变化。当任务被优先级更高的任务中断时,就会发生这种情况,导致进程映像被重新读取。解决方案在 IEC 任务开始时,将输入变量复制到变量中,然后在其余代码中只使用局部变量。
结论在多个任务中使用相同的输入和输出是不合理的,在某些情况下可能会导致意想不到的反应。