上一篇文章我们介绍了枚举和联合体两种复杂数据类型,今天这篇文章我们来介绍别名、子集、引用和指针。
1、别名
别名是给一种数据类型另起一个名字,其语法为:
TYPE
<别名> : <基类型>
END_TYPE
其中:“基类型”可以是基本数据类型,也可以是复杂数据类型。
比如:假设经常用到含有100个整数的数组,则可以给它起个别名 typeArray100。
打开InoProShop,新建项目,选择控制器AM521-0808TN。
在开发环境左侧的“POUs”(或设备树的“应用”)单击右键,在弹出的菜单中选择“添加对象”→“DUT”。
在弹出的对话框中选择“枚举”,命名为“typeArray100”,如下图所示:
单击“打开”按钮,生成数据类型如下图所示:
使用示例:
新建函数块test,在其中新建变量myArray,其数据类型为typeArray100。
这样可以直接通过索引号对变量中的元素进行寻址,如下图所示:
2、子集
子集,顾名思义,是某个基本类型的子集。其语法为:
TYPE
<子集名> : <基类名> (<下限> ..<上限>)
END_TYPE;
或者在变量声明列表中直接声明,语法为:
<变量名>:<基类型>(<下限> ..<上限>)
比如:
counter:INT(-100..100);
其中:
支持的基类包括:短整型(SINT),无符号短整型(USINT),整型(INT),无符号整型(UINT),
长整型(DINT),无符号长整型(UDINT),字节型(BYTE),字型(WORD),双字型(DWORD),
长整数(LINT),无符号长整数(ULINT),长字(LWORD);
3、引用
引用就像一个快捷方式,操作引用实际上是对被引用的对象进行操作。其语法为:
<引用变量名> : REFERENCE TO <引用对象的数据类型>
比如我们之前声明了别名类型:typeArray100,并在test函数块中声明了一个变量myArray。
现在我们再声明一个引用类型变量myRefArray,其指向的数据类型为typeArray100,如下图所示:
对引用进行赋值,并操作,如下图所示:
4、指针
指针中的数值是对象的地址。
指针变量声明时要明确其指向的数据类型,语法为:
<指针变量名>: POINTER TO <数据类型>;
使用指针时还需要取地址操作符(ADR)和取值操作符(^)。
ADR获取一个对象的地址;
^从地址中获取变量的值;
例如:
声明一个指向整数类型的指针变量pInt,声明整数变量myInt和myInt2,如下图的13、15、16行:
获取myInt的地址并将其赋值给指针变量pInt,将指针变量pInt的值赋给myInt2,如下图所示:
好了,汇川AM系列控制器的复杂数据类型到这里就介绍完毕了。
我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》从硬件到软件,比较详细的介绍了SCL语言的编程,感兴趣的话可以扫描下面的二维码查看:
发表评论