变量是指已定义数据类型的、可在编程中使用的要素。变量的定义跳出了PLC软元件的定义范畴,没有固定的名称,可根据用户的实际需求去定义。
使用变量有如下优点:
● 根据定义的变量,在CPU 单元的工作区域内自动分配必要的大小,防止发生冲突。与使用软元件时相比,不需要确认分配情况。
● 通过定义容易理解的名称,提升程序可读性。
● 在不同项目间复制程序时,不必担心软元件覆盖,提升了程序沿用性。
一、全局标签和局部标签(也作全局变量/局部变量)
全局变量/全局标签
可以在整个项目通用的变量。每个Pou都能识别和使用。
可自动分配到CPU 内部工作内存地址,也可分配给各种软元件。
局部变量/局部标签
以程序单元为范围处理的变量。在各个单元内进行定义的变量。
自动分配到CPU 内部工作内存地址,不可分配给软元件。
注:在三菱PLC中,局部标签和全局标签的名称默认不可一样!
二、标签的数据类型
标签可使用的数据类型如下所示(以三菱FX5为例,R系列会比FX5的默认数据类型要多)。
三、数组型标签
数组是指一组相同数据类型数据的有序集合。
1、关键组成要素
数组名:数组整体的名称,如 iData、bStation下标(索引):方括号里的数字,定位数组里第几个数据
绝大多数 PLC 默认从 0 开始(西门子、三菱 FX5U、汇川、欧姆龙)
部分PLC也可设置从 1 起始(如三菱)
数据类型:数组内所有元素必须统一数据类型:INT、REAL、BOOL、DINT、STRING、结构体、FB等数组范围(维度)
一维数组:一条线,如ABC[0..19](20 个成员,最常用)
二维数组:表格,如ABC[0..4,0..9] 5 行 10 列,多用于矩阵、XY 坐标
三维数组:立体矩阵,如ABC[0..9,0..4,0..1],极少用于设备控制
2、数组数据的存储
如下所示,数组大小为10的INT类型的数组型标签。
aiData[0] := 10;aiData[2] := 20;aiData[9] := aiData[0] + aiData[2];
上述程序执行后,则数据的存储如下图所示:
四、使用结构体提升编程效率
结构体是指将多个不同或相同数据类型的变量打包成一个整体的数据类型。普通变量只能存一个数据,数组只能存一组相同数据类型的数据,而结构体可以把位、字、浮点、字符串等五花八门的数据统统打包在一起,使其成为一个关联性极强的完整对象。
使用结构体的特点如下所示:
内部成员数据类型互不限制,位、字、浮点、字符串,甚至另一个结构体都能放;使用 “.”点号访问内部成员:结构体变量名.成员名;可配合数组使用(结构体数组),一次性管理多台设备,是做配方、多工位的标准用法;自定义数据类型,一次定义全局到处调用。
使用结构体的优点如下所示:
● 可对通用的数据集进行统一管理,程序整洁,可读性极强;
● 能够以结构体为单位执行数据传输、赋值甚至是比较;
● 只需添加或编辑原始的结构体成员,即可统一更改所有用到此结构体的变量,维护方便;
● 配合数组轻松实现多数据批量管理。
结构体的定义和使用示例
①建立一个名为“UDT_ProductInfo”的结构体,并点击确定。
②将成员名称和数据类型填入,并加上必要的注释。
③打开全局标签=>建立一个标签并命名为Product1,数据类型选择刚刚命名的结构体。
④Product1的使用,使用"."访问结构体成员。
448
