当前位置:文档之家› 项目数据类型和寻址方式

项目数据类型和寻址方式

项目3 数制、数据类型和寻址方式1. 数制所有的数值在PLC 中都是以二进制形式表示的,数据的长度和表示方式称为数据格式。

S7-200 PLC 的指令对数据格式有一定的要求,指令与数据之间的格式一致才能正常工作。

1) 计数体制常用的技术体制有十进制、二进制、十六进制等。

(1) 十进制数在十进制数中,用0,1,2,3,4,5,6,7,8,9这十个不同数码按照一定的规律排列起来表示数值的大小,其计数规律是“逢十进一”。

十进制数是以10为基数的计数体制。

各位数表示的数值就是该位数码(系数)乘以相应的权。

按此规律,任意一个十进制数(N )D 都可以写成按权展开式)(N D=10K 10K 10100112211⨯+⨯+⋅⋅⋅+⨯+⨯----n n n n K K=i 1i i10K⨯∑-=n(2) 二进制二进制是以2为计数的计数体制。

它只有0和1两个数码,采用“逢二进一”的计数规律。

任意一个二进制数都可以写成按权展开式001122112222)(⨯+⨯+⋅⋅⋅+⨯+⨯=----K K K K N n n n n B=i n i iK21⨯∑-=二进制数比较简单,只有0和1两个数码,并且算术运算也很简单。

(3) 十六进制数十六进制数是以16为基数的计数体制,它用0,1,2,3,4,5,6,7,8,9,A ,B ,C ,D ,E ,F 这16个数码表示,采用“逢十六进一”的计数规律。

四位二进制码可以用一位十六进制码来表示。

任意十六进制数可以写成按权展开式0011221116161616)(⨯+⨯+⋅⋅⋅+⨯+⨯=----K K K K N n n n n H=i n i iK161⨯∑-=表1(4) 数制转换1) 二进制数转换成十进制数例如:将二进制数B )1101(转换成十进制数B )1101(=D )13(212021210123=⨯+⨯+⨯+⨯2) 十进制数转换成二进制数 例如:将45转换成二进制数 用短除取余法B D )101101()45(= 数值从下往上记3) 十六进制数转换成十进制数例如:将十六进制数H D )45(转换成十进制数H D )45(=D )1492(1641613165012=⨯+⨯+⨯4) 十进制转换成十六进制数10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成16。

同样是45,转换成16进制则为: 2DH 5) 二进制数转换成十六进制数二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。

如:上行为二制数,下面为对应的十六进制;1111 1101 ,1010 0101 ,1001 1011F D , A 5 ,9 B2#111111011010010110011011=16#FDA59B6)十六进制数转换成二进制数反过来,当我们看到FDA59BH时,如何迅速将它转换为二进制数呢?F D A 5 9 B1111 1101 1010 0101 1001 101116#FDA59B=2#111111011010010110011011(5)奇偶校验码数码在传送和存取过程中,会发生将“1”码误成“0”码、“0”码误成“1”码的错误。

为了。

为了检查出这种错误,可采取奇偶校验码的编码方式。

代码有两部份组成:一部分是信息位,一部分是检误位。

若加上去的检误位中的“1”码的个数和信息位中的“1”码的个数之和为奇数个,则为奇校验码,否则为偶校验码。

例如,对8位一组的二进制码来说,若低7位为信息位,最高位位检误位,码组1011011的奇校验码为01011011,而偶校验码为11011011。

在代码传送过程中,对所收到的码组中“1”码的个数进行计算,如“1”码的个数与预定的不同,则可判断已经产生了误码。

(6)机器数的编码及运算对带符号数而言,有原码、反码、补码之分,计算机内一般使用补码。

1)原码将数“数码化”,原数前“+”用0表示,原数前“-”用1表示,数值部分为该数本身,这样的机器数叫原码。

设X——原数;则[X]原= X(X 0)[X]原= 2n-1 –X (X 0),n为字长的位数。

如,[+3]原= 00000011B [-3]原= 27 - (-3)= 1000,0011B0有两种表示方法:00000000 +0 ,10000000 -0原码最大、最小的表示:+127、-1282)反码规定正数的反码等于原码;负数的反码是将原码的数值位各位取反。

[X]反= X (X 0)[X]反=(2n –1)+ X (X 0)如:[+4]反= [+4]原= 0000,0100 B[-4]反= 1111,1011 B反码范围:-128 ~ +127两个0;+0 ——00000000 B ,-0 ——11111111 B3)补码补码的概念:现在是下午3点,手表停在12点,可正拨3点,也可倒拨9点。

即是说-9的操作可用+3来实现,在12点里:3、-9互为补码。

运用补码可使减法变成加法。

规定:正数的补码等于原码。

负数的补码求法:1)反码+ 12)公式:[X]补= 2n + X (X<0)如:设X = - 0101110 B ,则[X]原= 10101110 B则[X]补= [X]反+ 1 = 11010001 + 00000001 = 11010010 B如:[+6]补= [+6]原= 00000110 B[-6]补= 28 + (-6)= 10000000 –00000110 = 11111010 B位补码的范围–128 ~ +127。

0 的个数:只一个,即00000000而10000000 B是-128的补码。

原码、反码、补码对照表:表1-2 P104)补码的运算当X≥0时,[X]补= [X]反=[X]原[ [X]补]补= [X]原[X]补+ [Y]补= [ X+Y ]补[ X-Y ]补= [ X+(-Y)]补例:已知X=52 Y=38 求X-Y计算机在做算术运算时,必需检查溢出,以防止发生错误5)运算的溢出问题资料字长(位数)有一定限制,所以资料的表示应有一个范围。

如字长8位时;补码范围-128~+127若运算结果超出这个范围,便溢出。

错:两个负数相加和为正数。

可见:结果正确(无溢出)时,Cs+1 = Cs结果错误(溢出)时,Cs+1 ≠ Cs溢出判断:溢出 = Cs+1 Cs(即结果是0为无溢出;1为有溢出)(7)BCD码BCD码是Binary Coded Decimal Numbers(二进制编码的十进制数)的缩写。

BCD码用四位二进制数的组合来表示1位十进制数。

例如:十进制数23对应的BCD码为16#23,或2#00100011,BCD码常用于输入输出设备,例如拨码开关输入的是BCD码,送给七段显示器的数字也是BCD码。

表2 BCDBCD码的运算:1)BCD码加法规则两个BCD数相加时,“某位”的和小于10则保持不变;两个BCD数相加时,“某位”的和大于9,则和数应加6修正。

2)BCD码减法规则两个BCD数相减时,“某位”的差未发生借位,则差数保持不变;两个BCD数相减时,“某位”发生了借位,其差应减6修正。

这里“某位”指BCD数中的“个位”、“十位”、“百位”、……(9)负数的表示方法PLC一般采用二进制补码来表示有符号数,其最高位为符号位,最高位为0时为正数,最高位为1时为负数,最大的16位正数为16#7FFF(即32767)。

正数的补码是它的本身,将正数的补码逐位取反(0变为1,1变为0)后加1,得到绝对值与它相同的负数的补码。

将负数的补码的各位取反后加1,得到它的绝对值。

例如:十进制正整数35对应的二进制补码为2#00100011,十进制数-35对应的二进制补码为2#11011101。

不同数据的取值范围如下表。

(10)用1位二进制数表示开关量二进制数的1位(bit)只有0和1两种不同的取值,可以用来表示开关量的两种不同的状态。

如果该位为1,梯形图中对应的元件的线圈“通电”,其常开触点接通,其常闭触点闭合。

如果该位为0,则编程元件的线圈和触点的状态与上述相反。

(11)位S7-200 的位存储单元的地址由字节和位地址组成,例如:I 3.2,其中的区域标识符“I”表示输入(Input),字节地址为3,位地址为2。

这种存取方式称为“字节。

位”寻址方式。

(12)字节8位二进制组成一个字节(Byte)。

其中的第0位为最低有效位(LSB),第7位为最高有效位(MSB)。

输入字节IB3(B是Byte的缩写)是由I3.0,I3.1,I3.2,I3.3,I3.4,I3.5,I3.6,I3.7 这8位组成。

VB100MSB LSB(13)字相邻的两个字节组成一个字,VW100是由VB100和VB101组成的一个字,V为区域标识符,W表示字(Word),100为起始字节的地址。

注意:VB100是高位字节。

輒峄陽檉簖疖網儂號VW100MSB LSB(14)双字相邻的4个字节组成一个双字,VD100是由VB100---VB103组成的双字,V为区域标识符,D表示双字(Double Word), 100为起始字节的地址。

注意:VB100是高位字节。

尧侧VD100MSB LSB2.CPU存储区(1)输入过程映像寄存器(I)输入过程映像寄存器是PLC接收外部输入的数字量信号的窗口。

PLC通过光电偶合器,将外部信号的状态读入并存储在输入过程映象寄存器中,外部输入电路接通时对应的映像寄存器为ON(1状态),反之为OFF(0状态)。

输入端可以外接常开触点或常闭触点,也可以接多个组成的串、并联电路。

在梯形图中,可以多次使用输入位的常开触点和常闭触点。

(2)输出过程映像寄存器(Q)在扫描周期尾部,CPU将输出过程映像寄存器的数据传送给输出模块,再由后者驱动外部负载。

在梯形图中,每一个输出位的常开触点和常闭触点都可以多次使用。

(3)变量存储区(V)变量(Variable)存储器用来在程序执行过程中存放中间结果,或者用来保存与工序或任务有关的数据。

(4)位存储区(M)位存储器类似于继电器控制系统中的中间继电器,用来存储中间控制状态或其它控制信息。

虽然名为“位存储区”,但是也可以按字节、字或双字来存取。

有些编程人员习惯于用M区来作为中间地址,但是S7-200 的M区只有32个字节。

如果不够用可以用V存储区来代替M存储区。

可以按位、字节、字、双字来存储V区数据。

如:V10.1,VB20,VW100,VD200等(5)定时器存储区(T)定时器相当于继电器控制系统中的中间继电器。

S7-200 有3种定时器,他们的时间基准分别为1ms,10ms,100ms。

定时器的当前值是16位有符号整数,用于存储定时器累计的时间基准量值(1-32767)。

(6)计数器存储区(C)计数器用来累计其计数输入脉冲电平由低到高的次数。

相关主题