此选项卡显示在具有I/O通道的设备的设备编辑器中。它显示了可用的通道,并允许将控制器的输入,输出和内存地址映射到应用程序的变量或整个功能块。通过这种方式,您可以创建所谓的“I/O映射”。
在PLC设置选项卡上定义了负责I/O处理的应用程序。
如果设备支持,则可以使用“在线配置模式”。在这种模式下,您可以访问硬件的I/O,而无需事先将实际应用程序加载到设备。 |
您也可以在对话框编辑IO映射中创建I/O映射。在这里,您将获得一个映射列表,其中包含整个设备树的搜索和过滤功能。 |
如果将大于字节的数据类型的变量映射到字节地址,则该变量的值将在那里被截断为字节大小!为了在I/O映射对话框中监视变量值,这意味着:在地址的根元素中,显示变量当前在项目中具有的值。字节的当前单个位的值会在其下方的位元素中依次显示,但这可能不足以显示整个变量值。 |
CAN总线从站的<设备名称>I/O映射选项卡的示例:
该选项卡包含用于编辑I/O映射的表。为输入和输出显示的信息来自设备说明。
查找 (1) | 映射表搜索字符串的输入字段。搜索结果以黄色标记。 |
过滤 (2) | 映射表中列出的用于过滤I/O映射的下拉列表:
|
为I/O通道添加FB (11) | 取决于设备,如果在映射表中选择了通道条目,则可用。打开选择功能块对话框,以选择应直接链接到通道的功能块。 |
转到实例 (12) | 如果在映射表中选择了该条目,则可用。跳转到<设备名称>IEC对象选项卡中的相应条目。 |
变量 | 根据设备的不同,设备的输入和输出将显示为节点,并在节点下方显示缩进的相关通道,或者根据设备,仅显示隐式创建的设备实例。 符号表示通道类型: :输入 :输出 双击单元格将打开一个输入字段。
根据设备的不同,输入或输出可以直接链接到功能块。在这种情况下,将激活 为I/O通道添加FB按钮。见上文。 |
映射 (3) | 映射类型:
|
通道 (4) | 通道的符号名称。 |
地址 (5) | 通道地址,例如%IW0。 地址删除线:表示您不应为该地址分配任何其他变量。原因:尽管此处指定的变量(作为已经存在的变量)在不同的存储位置进行管理,但是在写入值的过程中可能会产生歧义,尤其是对于输出。 :表示此地址已被编辑和固定。如果设备树中设备对象的排列发生更改,则CODESYS不会自动适应此地址。 |
类型 (6) | 通道的数据类型,例如BOOL。 仅当设备描述中定义的结构或位字段属于IEC标准并在设备描述中被标识为IEC数据类型时,才会显示它们。否则,表格单元格保持为空。 映射结构变量时,编辑器将阻止您同时输入结构变量(例如:%QB0)和单个结构元素(例如:%QB0.1和QB0.2)。因此,如果在映射表中存在一个带有位通道条目的子树的主条目,则适用以下条件:您可以在主条目的行中或子元素(位通道)的行中输入一个变量,但不能同时使用。 |
默认值 | 适用于通道的参数的默认值:仅在PLC设置中针对停止时的输出行为激活了将所有输出设置为默认值 选项时显示。 注意:对于V3.5 SP11和更高版本的编译器,在映射到现有变量时,变量的初始化值会自动用作默认值。仅当映射到新创建的变量或未指定映射时,才可以编辑默认值字段。在旧版本中,用户必须明确指定默认值和初始化值相同。 |
单位 (7) | 参数值的单位,例如ms为毫秒。 |
描述 (8) | 参数的简要说明。 |
当前值 | 应用于通道的参数的实际值;仅在在线模式下显示。 |
重置映射 (9) | CODESYS将映射设置重置为设备描述文件定义的默认值。 |
更新变量 (10) | 有关更新I/O变量的设备对象的定义。默认值在设备描述中定义:
|
如果UNION在映射对话框中由I/O通道表示,则是否也可以映射到根元素取决于设备。 |
对于具有I/O驱动程序的设备,如果不应该使用常规设置(PLC设置选项卡),则可以在I/O映射选项卡中设置总线循环任务。
通常,对于每个IEC任务,在每个任务(1)的开始时读取使用的输入数据,并在任务结束(3)时将写入的输出数据传输到I/O驱动程序。I/O驱动程序中的实现对于进一步传输I/O数据起决定性作用。负责实际传输到相应总线系统的时间范围和时间点。
可以在PLC设置中为所有现场总线全局定义PLC的总线循环任务。但是,对于某些现场总线,可以独立于全局设置进行更改。循环时间最短的任务用作总线循环任务(设置:PLC设置中未指定)。在此任务中,消息通常在总线上发送。
其他任务仅从内部缓冲区复制I/O数据,该内部缓冲区仅在总线循环任务中与物理硬件交换。
(1) 从输入缓冲区读取输入 (2) IEC任务
(3) 将输出写入输出缓冲器 (4) 总线周期
(5) 输入缓冲器 (6) 输出缓冲器
(7) 向/从总线复制数据
(9) 总线周期任务,优先级1,1 ms
(10) 总线循环任务,优先级5
(11) 总线循环任务,优先级10,被任务5中断
任务使用量
任务部署提供了已使用的I/O通道,设置的任务周期和通道的使用量的概况。
如果在各种任务中写输出,则状态是不确定的,因为在每种情况下都可以覆盖该状态。 如果在各种任务中使用相同的输入,则在处理任务期间可能会更改输入。如果任务被优先级更高的任务中断,则会导致再次读取过程映像,则会发生这种情况。解决方案:在IEC任务开始时,将输入变量复制到变量,然后仅在其余代码中使用局部变量。 结论:在多个任务中使用相同的输入和输出没有任何意义,并且在某些情况下可能导致意外的反应。 |