理论教育 数据的存储类型及优化方案

数据的存储类型及优化方案

时间:2023-06-27 理论教育 版权反馈
【摘要】:二进制用2#表示,例如2#1001110110011101就是16位二进制常数。BCD码BCD码用4位二进制数表示一位十进制数,例如一位十进制数9的BCD码是1001。表4-1 不同数制的数的表示方法2.数据的长度和类型S7-200 SMART将信息存于不同的存储器单元,每个单元都有唯一的地址。该地址可以明确指出要存取的存储器位置。表4-2 不同长度的数据表示的十进制数值范围3.常数在S7-200 SMART的许多指令中都用到常数,常数有多种表示方法,如二进制、十进制和十六进制等。

数据的存储类型及优化方案

1.数制

(1)进制

二进制数的1位(bit)只能取0和1两个不同的值,可以用来表示开关量的两种不同的状态,例如触点的断开和接通、线圈的通电和断电、灯的亮和灭等。在梯形图中,如果该位是1可以表示常开触点的闭合和线圈的得电,反之,该位是0则表示常开触点的断开和线圈的断电。二进制用2#表示,例如2#1001110110011101就是16位二进制常数。十进制的运算规则是逢10进1,二进制的运算规则是逢2进1。

(2)十六进制

十六进制的十六个数字是0~9和A~F(对应于十进制中的10~15),每个十六进制数字可用4位二进制表示,例如16#A用二进制表示为2#1010。B#16#、W#16#、DW#16#分别表示十六进制的字节、字和双字。十六进制的运算规则是逢16进1。学会二进制和十六进制之间的转化对于学习西门子PLC来说是十分重要的。

(3)BCD码

BCD码用4位二进制数(或者1位十六进制数)表示一位十进制数,例如一位十进制数9的BCD码是1001。4位二进制有16种组合,但BCD码只用到前十个,而后六个(1010~1111)没有在BCD码中使用。十进制的数字转换成BCD码是很容易的,例如十进制数366转换成十六进制BCD码则是W#16#0366。

【关键点】十进制数366转换成十六进制数是W#16#16E,这是要特别注意的。

BCD码的最高4位二进制数用来表示符号,16位BCD码字的范围是−999~+999。32位BCD码双字的范围是-9999999~+9999999。不同数制的数的表示方法见表4-1。

表4-1 不同数制的数的表示方法

978-7-111-43442-9-Chapter04-1.jpg

2.数据的长度和类型

S7-200 SMART将信息存于不同的存储器单元,每个单元都有唯一的地址。该地址可以明确指出要存取的存储器位置。这就允许用户程序直接存取这个信息。表4-2列出了不同长度的数据所能表示的十进制数值范围。

表4-2 不同长度的数据表示的十进制数值范围

978-7-111-43442-9-Chapter04-2.jpg

3.常数(www.daowen.com)

在S7-200 SMART的许多指令中都用到常数,常数有多种表示方法,如二进制、十进制和十六进制等。在表示二进制和十六进制时,要在数据前分别加“2#”或“16#”,格式如下。

二进制常数:2#1100,十六进制常数:16#234B1。其他的数据表示方法举例如下。

ASCII码:“HELLOW”,实数:−3.1415926,十进制数:234。

几种错误表示方法:八进制的“33”表示成“8#33”,十进制的“33”表示成“10#33”,“2”用二进制表示成“2#2”,读者要避免这些错误。

若要存取存储区的某一位,则必须指定地址,包括存储器标识符、字节地址和位号。图4-1是一个位寻址的例子。其中,存储器区、字节地址(I代表输入,2代表字节2)和位地址之间用点号“.”隔开。

978-7-111-43442-9-Chapter04-3.jpg

图4-1 位寻址

【例4-1】如图4-2所示,如果MD0= 16#1F,那么,MB0、MB1、MB2和MB3的数值是多少?M0.0和M3.0是多少?

【解】因为一个双字包含4个字节,一个字节包含2个16进制位,所以MD0=16#1F= 16#0000001F,根据图4-2可知,MB0=0,MB1=0,MB2=0,MB3=16#1F。由于MB0=0,所以M0.0=0,由于MB3=16#1F= 2#00011111,所以M3.0=1。这点不同于三菱PLC,注意区分。

978-7-111-43442-9-Chapter04-4.jpg

图4-2 字节、字和双字的起始地址

【例4-2】如图4-3所示的梯形图,请查看有无错误?

【解】这个程序从逻辑上看没有问题,但这个程序在实际运行时是有问题的。程序段1是起停控制,当V0.0常开触头闭合后开始采集数据,而且A-D转换的结果存放在VW0中,VW0包含2个字节VB0和VB1,而VB0包含8个位即V0.0~V0.7。只要采集的数据经过A-D转换,使V0.0位为0,则整个数据采集过程自动停止。初学者很容易犯类似的错误。读者可将V0.0改为V2.0即可,只要避开VW0中包含的16个位(V0.0~V0.7和V1.0~V1.7)即可。

978-7-111-43442-9-Chapter04-5.jpg

图4-3 梯形图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈