大数跨境
0
0

如何理解STEP7的复杂数据类型:ANY

如何理解STEP7的复杂数据类型:ANY 易维通
2018-11-01
2
导读:点击阅读原文,关注北岛李工

摘要

最近有小伙伴询问关于STEP7的“ANY”数据类型的理解及使用。考虑到疑问的普遍性,于是我想写篇文章介绍下STEP7的ANY数据类型。

来源:方正智芯

点击阅读原文,进入北岛李工的主页


ANY数据类型是STEP7的一种复杂数据类型。所谓“复杂”,就是说它是由一些简单数据类型(比如:字节,字等)按照某种定义组成的。由于ANY数据类型中包含了很多信息(比如:访问数据的地址、访问数据的长度、访问数据的基本数据类型等),很多系统功能块都使用ANY数据类型作为参数。


比如,系统功能块SFC20 "BLKMOV",它来实现从一个地址(源地址)到另一个地址(目标地址)拷贝一定长度的数据的功能。其源地址和目标地址的参数都是使用ANY数据类型。


S7-300/400,S7-1500系列PLC都支持ANY数据类型。ANY数据类型包含10个字节,各字节的定义如下图:

我们来解释下各字节的含义:
字节0(Byte0):为常数10H(十六进制数10),表示STEP7;
字节1(Byte1):ANY数据中的基本数据类型;
字节2~字节3(Byte2~Byte3):ANY数据的重复因子(Repetition factor),表示传送的数据的长度或者数组、字符串的长度;
字节4~字节5(Byte4~Byte5):数据块的编号(DB number);当访问区域为非DB区时,将该值设置为0;
字节6(Byte6):访问存储区的代码;
字节7的0~2位、字节8及字节9的3~7位:表示访问数据的字节地址(byte address);
字节9的0~2位:表示访问数据的位地址(bit address);
ANY数据的基本数据类型代码(Byte1)见下面的表格:

注:当数据类型为BLOCK_FB,BLOCK_FC,BLOCK_DB,BLOCK_SDB,COUNTER或TIMER时,重复因子(repetition factor)必须为1,数据块编号(DB number,byte4~byte5)必须为0,字节7(byte7)必须为0。字节8~字节9(byte8~byte9)表示数据块FB/FC、计数器或定时器的编号;


ANY数据类型的访问存储区代码(Byte6)见下面的表格:

其实,ANY数据类型的Byte4~Byte9就是POINTER数据类型。ANY是在POINTER的基础上增加了访问长度(重复因子)及访问数据的基本数据类型(Byte1),因此可表达更多的信息。



— THE END —


目前,易维通正在积极构建虚拟团队,控制器、驱动器、执行机构、智能制造、配电系统、职业发展、心理学、外语等核心技术分享虚拟团队都已具雏形。能力出众的你,别再犹豫了,加入我们!



长按二维码关注


【 易维通服务号 】

更多资料下载,

更多资源推送,

不让你错过

每一个有价值的机会!



 点阅读原文,更有料

【声明】内容源于网络
0
0
易维通
易维通是工业互联网技术服务创新模式的代表。以企业身边的工业保姆,服务工程师职业发展全周期为己任。在易维通,用户可以随时随地找到技术精湛且靠谱的工程师;技术人才入驻后可以通过开设付费课程和问答等知识分享方式打造个人品牌从而获得机会和订单。
内容 1120
粉丝 0
易维通 易维通是工业互联网技术服务创新模式的代表。以企业身边的工业保姆,服务工程师职业发展全周期为己任。在易维通,用户可以随时随地找到技术精湛且靠谱的工程师;技术人才入驻后可以通过开设付费课程和问答等知识分享方式打造个人品牌从而获得机会和订单。
总阅读2.7k
粉丝0
内容1.1k