.
“<设备名称>I/O映射”选项卡
.
.
具有I/O通道的设备

此选项卡显示在具有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对象选项卡中的相应条目。

变量

根据设备的不同,设备的输入和输出将显示为节点,并在节点下方显示缩进的相关通道,或者根据设备,仅显示隐式创建的设备实例。

符号表示通道类型:

:输入

:输出

双击单元格将打开一个输入字段。

  • 选项1:该变量已存在;指定完整路径:<应用程序名称>.<模块名称>.<变量名称>,例如:app1.plc_prg.ivar,通过输入助手
  • 选项2:该变量尚不存在;输入一个简单的名字;在内部自动创建为全局变量。

根据设备的不同,输入或输出可以直接链接到功能块。在这种情况下,将激活 为I/O通道添加FB按钮。见上文。

映射 (3)

映射类型:

  • :变量已存在
  • :新变量
  • :映射到功能块实例

通道 (4)

通道的符号名称。

地址 (5)

通道地址,例如%IW0

地址删除线:表示您不应为该地址分配任何其他变量。原因:尽管此处指定的变量(作为已经存在的变量)在不同的存储位置进行管理,但是在写入值的过程中可能会产生歧义,尤其是对于输出。

:表示此地址已被编辑和固定。如果设备树中设备对象的排列发生更改,则CODESYS不会自动适应此地址。

类型 (6)

通道的数据类型,例如BOOL

仅当设备描述中定义的结构或位字段属于IEC标准并在设备描述中被标识为IEC数据类型时,才会显示它们。否则,表格单元格保持为空。

映射结构变量时,编辑器将阻止您同时输入结构变量(例如:%QB0)和单个结构元素(例如:%QB0.1QB0.2)。因此,如果在映射表中存在一个带有位通道条目的子树的主条目,则适用以下条件:您可以在主条目的行中或子元素(位通道)的行中输入一个变量,但不能同时使用。

默认值

适用于通道的参数的默认值:仅在PLC设置中针对停止时的输出行为激活了将所有输出设置为默认值 选项时显示。

注意:对于V3.5 SP11和更高版本的编译器,在映射到现有变量时,变量的初始化值会自动用作默认值。仅当映射到新创建的变量或未指定映射时,才可以编辑默认值字段。在旧版本中,用户必须明确指定默认值和初始化值相同。

单位 (7)

参数值的单位,例如ms为毫秒。

描述 (8)

参数的简要说明。

当前值

应用于通道的参数的实际值;仅在在线模式下显示。

.

重置映射 (9)

CODESYS将映射设置重置为设备描述文件定义的默认值。

更新变量 (10)

有关更新I/O变量的设备对象的定义。默认值在设备描述中定义:

  • 使用父级设备设置:根据父级设备的设置进行更新。
  • 启用1(如果未在任何任务中使用总线周期任务,则使用它):如果未在任何其他任务中使用它们,则CODESYS更新总线周期任务中的I/O变量。
  • 启用2(始终在总线循环任务中): CODESYS在总线循环任务的每个循环中更新所有变量,无论是否使用它们以及将它们映射到输入通道还是输出通道。

 

如果UNION在映射对话框中由I/O通道表示,则是否也可以映射到根元素取决于设备。

.
具有I/O驱动程序的设备

对于具有I/O驱动程序的设备,如果不应该使用常规设置(PLC设置选项卡),则可以在I/O映射选项卡中设置总线循环任务。

.

.总线周期选项

总线周期任务

下拉列表提供了活动应用程序的任务配置中定义的所有任务(例如:MainTask)。在使用父总线周期设置的情况下,将使用父节点的设置。

.
有关总线循环任务的一般信息

通常,对于每个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任务开始时,将输入变量复制到变量,然后仅在其余代码中使用局部变量。

结论:在多个任务中使用相同的输入和输出没有任何意义,并且在某些情况下可能导致意外的反应。