概述
如果逻辑包含一个或多个与现场设备交换数据的代码节,则可用以下方式之一将控制逻辑加入设备模板:
-
代码节使用在现场设备的 I/O 映射中定义的新变量。
-
代码节以及现场设备的 I/O 映射使用通用变量,该变量在代码节所属的应用程序所包含的 GVL 或控制器程序中定义。
注: 如果您使用结构或阵列,则验证它们是否仅与单个现场设备相关。
-
代码节和现场设备使用固定的特定于设备的变量(例如 axis-ref 变量用于 Altivar 或 Lexium 驱动器)。
代码节互联调用
代码节由功能块、功能和操作符的互联调用序列组成。
如果在各个调用之间存在以下关系之一,将把它们视为互联:
单独选择功能块
您可单独选择功能块,这些功能块包含在将加入设备模板的与现场设备交换数据的代码节中。这可让您创建不同的设备模板,为相同的现场设备提供不同的功能。
注: 必须在某个库中定义功能块类型。
将表达式加入设备模板
表达式以及在这些表达式中使用的与功能块、功能或操作符的参数关联的变量会自动保存在设备模板中。
创建控制逻辑的一般方法
如果以一种 IEC 语言创建设备模板,但以另一种 IEC 语言对此模板实例化,则可能导致执行偏差。因此,建议尽可能简化这种控制逻辑。
通过尽可能简化逻辑,即使以不同的 IEC 语言创建代码节,这些代码节也可能以相同方式工作。
注: 对于复杂控制逻辑,您应当创建功能模板。
在 FBD/LD 中创建控制逻辑的方法
避免使用边沿检测元素,因为它们在其他 IEC 语言中不存在。
如果可能,请使用 R_TRIG
或 F_TRIG
功能块代替。
在 CFC 中创建控制逻辑的方法
使用命令,根据其在数据流中的位置将属于相同代码节的 CFC 元素排序。这将提供与其他 IEC 语言的更佳兼容性。
由于重命名,在从模板创建新设备时扩展了变量名称,因此在各个 CFC 元素之间提供了空间(采用水平方向)。
控制逻辑示例
下图所示为输送应用中一个 Advantys OTB 分布式 I/O 设备的代码节的典型示例:
代码节由以下功能块组成:
名称
|
类型
|
功能
|
InOTB_Conv20
|
输入块
|
将来自 OTB 的数据转换为控制块所需的格式
|
Conv20
|
控制块
|
处理数据
|
OutOTB_Conv20
|
输出块
|
将来自控制块的数据转换为 OTB 所需的格式
|
变量 InByte1_Conv20
、InByte2_Conv20
和 OutByte_Conv20
在 OTB 的 I/O 映射中定义。因此,代码节与 OTB 设备交换数据。从而其将成为设备模板的一部分。