STEP7中除了基本数据类型和复杂数据类型外,还有"参数类型"。它是为在逻辑块之间传递参数的形参(Formal Parameter,形式参数)定义的数据类型。
![feb37e8e8e22dcd21f7f15d1dd80d501.png](https://i-blog.csdnimg.cn/blog_migrate/928ce3db4cba8ec3d43a8ec8de7bf38e.jpeg)
一、 参数类型TIMER、COUNTER、BLOCK的格式
参数类型TIMER、COUNTER、BLOCK的长度均为2bytes,它们以二进制数字的形式存储在"字(Word)"中。图1给出了这些参数类型的格式。
![62c4036d3076936c72124f3fde8b14ba.png](https://i-blog.csdnimg.cn/blog_migrate/fdc260327f49a02a0721cb45c0f618a4.jpeg)
参数类型TIMER、COUNTER、BLOCK传递的实际上是定时器、计数器或逻辑块的标识号,如T10的"10",FC105的"105"。
二、 参数类型POINTER的格式
参数类型POINTER占据6个字节的空间,图2给出了POINTER的存储格式。
![1f985ce2908bde05c79088c7b1eb07f3.png](https://i-blog.csdnimg.cn/blog_migrate/350c4d44cb2038ca3303a73bf03a1e8c.jpeg)
POINTER存储下列信息:
- 最低的两个字节存放DB编号,如果POINTER指向的不是DB块的数据,则这两个字节中存放0;
- 第3个字节(即byte 2)用来标识所指向的存储区,PLC根据功能,划分了不同的存储区域,见表(二)。在"byte 2"中赋以"B#16#81 - B#16#87",即可以使POINTER指向特定的区域。
![e888af7845c22d9afea83b43f43a5a5a.png](https://i-blog.csdnimg.cn/blog_migrate/8dde0348d3d813551f8b222711cf8bf0.jpeg)
· 数据的地址(格式为:字节.位)
STEP7指针的完整格式为:
![949cfd2a043108a8dafe541818de32de.png](https://i-blog.csdnimg.cn/blog_migrate/13fedaead75316146ac8385aae69e655.jpeg)
以上图为例,指针访问的是输入区域,那么:
(1) 未访问DB块,因此,前两个字节写入0;
(2) 访问输入区域,则byte 2中写入"B#16#81";
(3) 字节地址写入"8";
(4) 位地址写入"7"。
三、 参数类型ANY的格式
当实际参数的数据类型未知或可以使用任何数据类型时,可以使用ANY。
参数类型ANY占10个字节的空间,STEP7存储数据类型和参数的地址。其格式如下:
![73b300515259d91d346e36619e49e9f1.png](https://i-blog.csdnimg.cn/blog_migrate/eeaacfeec9b2b46b9d1a6438e1b836be.jpeg)
注意:作为参数类型,重复因子始终为"1",字节4、5和7始终为"0"。至于原因,我们在深入讨论ANY的时候再展开说明。
表(三)为参数类型ANY中"数据类型"的编码。
![4910d8a1eedfb73a13e56d5af27d2394.png](https://i-blog.csdnimg.cn/blog_migrate/daddd2f969f9718c3cc90a0d7fb40b46.jpeg)
<