电子说
PLC数据类型是一个用户自定义的数据类型模板,可以由不同的数据类型组成,提供一个固定格式的数据结构,便于用户使用。PLC数据类型的变量在程序中作为一个整体变量使用。
在“PLC 数据类型”文件夹中,单击“添加新数据类型”后,会创建和打开一个PLC 数据类型的声明表。选择该PLC 数据类型,并在快捷菜单中选择“重命名”命令,就可以给这个PLC数据类型重新命名。然后在声明表中声明变量及数据类型,完成PLC 数据类型的创建。比如创建一个名称为“PLC_DT_1”的PLC数据类型,在这个数据类型中包含3个变量,如图7所示。
图7
单击“添加新块”命令,选择数据块,并在类型的下拉列表中选择所创建的PLC 数据类型“PLC_DT_1”,如图8所示。
图8
然后点击“确定”,生成与“PLC_DT_1”相同数据结构的DB块。
通过PLC 数据类型创建DB与通过系统数据类型创建DB的目的相同,一个是用户自定义的数据类型,一个系统给出的特定的数据类型,但是用户自定义的数据类型在全局DB块中的变量类型向导中是可见的。
数组DB是一种特殊类型的全局数据块,它包含一个任意数据类型的数组。例如可以是基本数据类型,也可以是PLC数据类型(UDT)的数组,但这种数据块不能包含除数组之外的其它元素。创建数组DB时需要输入数组的数据类型和数组的上限。创建完数组DB后,可以在其属性中随时更改数组的上限,但是无法更改数据类型。数组DB始终启用“优化块访问”(Optimized block access)属性,不能进行标准访问,并且为非保持性属性,不能修改为保持性属性。数组DB的声明如图9所示。
图9
数组DB块的名称与块中变量(只能有一个数组变量)的名称是相同的,如图10所示。
图10
数组DB块中变量元素的访问需要使用“THIS[x]”替代变量的名称,例如图10中变量的第一个元素为DDD.THIS[0],如图11所示。
图11
可以使用函数“ReadFromArrayDB”和“WriteTOArrayDB”等对数组DB进行类似间接寻址的访问,比如将数组DB中的变量值复制到“变量1”中,可以参考图12中的程序。
图12
在DB13(数据块_7)中共有3个数组元素,由“Tag_58”的值决定将哪个元素的值复制给“数据块_10”中的“变量1”。示例中“Tag_58”的值为1,所以是将“数据块_7[1]”的值赋值给“变量1”。
S7-1500中使用VARIANT数据类型变量作为程序块中参数的传递,指令DB_ANY_TO_VARIANT或者VARIANT_TO_DB_ANY用于参数DB_ANY和VARIANT转换,DB_ANY的使用是有要求的,必须是格式固定的,使用要求参考下表(DB_ANY_TO_VARIANT的在线帮助)中的加粗标记。
输入变量 | 转换结果... | 转换选项 |
---|---|---|
DB_ANY | 作为 PLC 数据类型或系统数据类型 (SDT) 的实例化数据块的数据块。 | 可以转换 |
DB_ANY | ...作为 ARRAY 数据块的数据块。 | 可以转换 |
DB_ANY | ...作为函数块或全局数据块中的实例化数据块 | 不可转换 |
所以说通常情况下,通过系统数据类型、用户数据类型创建的数据块、数组DB与全局DB访问和使用的方式是相同的,而在特殊的情快下,这些数据块类型是不可替代的。
全部0条评论
快来发表一下你的评论吧 !