数据类型
1.字长
s7-200 smart plc的存储单元(即编程元件)存储的数据都是二进制数。数据的长度称为字长,字长可分为位(1位二进制数,用b表示)、字节(8位二进制数,用b表示)、字(16位二进制数,用w表示)和双字(32位二进制数,用d表示)。
2. 数据的类型和范围 s7-200 smart plc的存储单元存储的数据类型可分为布尔型、整数型和实数型(浮点数)。
1)布尔型 布尔型数据只有1位,又称位型,用来表示开关量(或称数字量)的两种不同状态。当某编程元件为1时,称该元件为1状态,或称该元件处于on状态,该元件对应的线圈“通电”,其常开触点闭合,常闭触点断开;当该元件为0时,称该元件为0状态,或称该元件处于off状态,该元件对应的线圈“失电”,其常开触点断开,常闭触点闭合。例如,输出继电器q0.0的数据为布尔型。
2)整数型 整数型数据不带小数点,它分为无符号整数和有符号整数,有符号整数需要占用1个最高位表示数据的正负,通常规定最高位为0表示数据为正数,为1表示数据为负数。表1列出了不同字长的整数表示的数值范围。
表1不同字长的整数表示的数值范围
3)实数型
实数型数据也称为浮点型数据,是一种带小数点的数据,它采用32位来表示(即字长为双字),其数据范围很大,正数范围为+1.175495e-38~+3.402823e+38,负数范围为-1.175495e-38~-3.402823e+38。
3.常数的编程书写格式
常数在编程时经常要用到。常数的长度可为字节、字和双字,常数在plc中也是以二进制数形式存储的,但编程时常数可以十进制、十六进制、二进制、ascii码或浮点数(实数)形式编写,然后由编程软件自动编译成二进制数下载到plc中。
常数的编程书写格式见表2。
表2常数的编程书写格式
寻址方式
在s7 -200 smart plc中,数据是存于存储器中的,为了存取方便,需要对存储器的每个存储单元进行编址。在访问数据时,只要找到某单元的地址,就能对该单元的数据进行存取。s7 -200 plc的寻址方式主要有两种:直接寻址和间接寻址。
1.直接寻址
1)编址
要了解存储器的寻址方法,须先掌握其编址方法。s7 -200 smart plc的存储单元编址有一定的规律,它将存储器按功能不同划分成若干个区,如i区(输入继电器区)、q区(输出继电器区)、m区、sm区、v区、l区等,由于每个区又有很多存储单元,因而这些单元需要进行编址。plc存储区常采用以下方式编址。
①i、q、m、sm、s区按位顺序编址,如i0.0~i15.7、m0.0~m1.7。
②v、l区按字节顺序编址,如vb0~vb2047、lb0~lb63。
③ai、aq区按字顺序编址,如aiw0~aiw30、aqw0~aqw30。
④t、c、hc、ac区直接按编号大小编址,如t0~t255、c0~c255、ac0~ac3。
2)直接寻址方法
直接寻址通过直接指定要访问存储单元的区域、长度和位置来查找到该单元。s7 -200 smart plc直接寻址方法主要有: ①位寻址。位寻址格式为:位单元寻址=存储区名(元件名)+字节地址。位地址 例如,寻址时给出i2.3,要查找的地址是i存储区第2字节的第3位,如图1所示。
图1 位寻址举例
可进行位寻址的存储区有i、q、m、sm、l、v、s。字节/字/双字寻址。 ②字节/字/双字寻址是以字节、字或双字为单位进行的,寻址格式为:
字节/字/双字寻址=存储区名(元件名)+字长(字节、字或双字)+首字节地址
例如,寻址时给出vb100,要查找的地址为v存储区的第100字节;若给出vw100,则要查找的地址为v存储区的第100、101两个字节;若给出vd100,则要查找的地址为v存储区的第100~103四个字节。vb100、vw100、vd100之间的关系如图2所示,vw100即为vb100和vb101,vd100即为vb100~vb103。当vw100单元存储16位二进制数时,vb100存高字节(高8位),vb101存低字节(低8位);当vd100单元存储32位二进制数时,vb100存最高字节,vb103存最低字节。
图2 vb100、vw100、vd100之间的关系
可进行字节寻址的存储区有i、q、m、sm、l、v、ac(仅低8位)、常数;可进行字寻址的存储区有i、q、m、sm、l、v、t、c、ac(仅低16位)、常数;可进行双字寻址的存储区有i、q、m、sm、l、v、ac(32位)、常数。
2.间接寻址
间接寻址是指不直接给出要访问单元的地址,而是将该单元的地址存在某些特殊存储单元中,这个用来存储地址的特殊存储单元称为指针,指针只能由v、l或ac(累加器)来承担。采用间接寻址方式在访问连续地址中的数据时很方便,使编程非常灵活。 间接寻址存取数据一般有三个过程:建立指针、用指针存取数据和修改指针。
1)建立指针
建立指针必须用双字传送指令(movd),利用该指令将要访问单元的地址存入指针(用来存储地址的特殊存储单元)中。指针建立举例如下。
movd &vb200, ac1 //将存储单元vb200的地址存入累加器ac1中指令中操作数前的“&”为地址符号,“&vb200”表示vb200的地址(而不是vb200中存储的数据),“//”为注释符号,它后面的文字用来对指令进行注释说明,软件不会对其后面的内容进行编译。在建立指针时,指令中的第2个操作数的字长必必须是双字存储单元,如ac、vd、ld。
2)用指针存取数据
指针建立后,就可以利用指针来存取数据。举例如下。
movd &vb200,ac0 //建立指针,将存储单元vb200的地址存入累加器ac0中
movw *ac0, ac1 //以ac0中的地址(vb200的地址)作为首地址,将连续两个字节(一个字,即vb200、vb201)单元中的数据存入ac1中
movd*ac0, ac1 //以ac0中的地址(vb200的地址)作为首地址,将连续四个字节(双字,即vb200~vb203)单元中的数据存入ac1中
指令中操作数前的“*”表示该操作数是一个指针(存有地址的存储单元)。下面通过图3来说明上述指令的执行过程。
图3 间接寻址说明图
“movd &vb200, ac0”指令执行的结果是ac0中存入存储单元vb200的地址;“movw *ac0, ac1”指令执行的结果是以ac0中的vb200地址作为首地址,将连续两个字节单元(vb200、vb201)中的数据存入ac1中,如果vb200、vb201单元中的数据分别为12、34,则该指令执行后,ac1的低16位就存入了“1234”;“movd *ac0, ac1”指令执行的结果是以ac0中的vb200地址作为首地址,将连续四个字节单元(vb200~vb203)中的数据存入ac1中,该指令执行后,ac1中就存入了“12345678”。
3)修改指针
指针(用来存储地址的特殊存储单元)的字长为双字(32位),修改指针值需要用双字指令。常用的双字指令有双字加法指令(addd)和双字加1指令(incd)。在修改指针值、存取字节时,指针值加1;存取字时,指针值加2;存取双字时,指针值加4。修改指针值举例如下。
movd &vb200, ac0 //建立指针
incd ac0//将ac0中的值加1(即地址值增1)
incd ac0//将ac0中的地址值再增1
movw *ac0, ac1 //读指针,以ac0中的新地址作为首地址,将它所对应连续两个字节单元中的数据存入ac1中
以图6-3为例,上述程序执行的结果是以ac0中的vb202单元地址为首地址,将vb202、vb203单元中的数据56、78存入ac1的低16位。
Martin公司与美国海军合作增强V-BAT无人机的自主着陆能力
功率因数改善和轻负载时的高效率兼顾
Volocopter推出大型多轴无人飞行器,可承重440磅重物
新华三虚拟化平台CAS领跑SPECvirt性能测试榜单
降压芯片Rdson常用测量方法的介绍
PLC功能指令:数据类型和寻址方式
让继电器在指尖“跳跃”的秘籍是什么?
工业创新智造未来,连接器线缆及线束设备展7月相聚北京
USB Type-C快充的开关噪声怎么解决?
AI的时代即将到来,未来三至五年将迎“AI+医疗”的春天
理解这些数据类型有助于对数据集进行恰当的探索性数据分析
行业 | 蓝汛不惧CDN技术更迭,借5G之力开创蓝汛新格局
实现了模拟通道同步采样的数据采集系统
牌子那么多选择什么牌子的光纤线好呢
iphone8什么时候上市?iphone8最新消息:iPhone8P增加面部识别, 三星开始提供OLED屏
威图为中国高端智能制造的转型升级带来了最新的技术理念
2024年全球物联网设备预计数量将超110亿台 HarmonyOS成为关键钥匙
三种回归算法及其优缺点,将会为我们理解和选择算法提供很好的帮助
开关电源控制环路设计!
5G网络促进工业三化融合,真正实现5G的智能制造