项目数据类型和寻址方式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

项目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 1010

011221

1⨯+⨯+⋅⋅⋅+⨯+⨯----n n n n K K

=

i 1

i i

10K

⨯∑-=n

(2) 二进制

二进制是以2为计数的计数体制。它只有0和1两个数码,采用“逢二进一”的计数规律。任意一个二进制数都可以写成按权展开式001122112222)(⨯+⨯+⋅⋅⋅+⨯+⨯=----K K K K N n n n n B

=

i n i i

K

21

⨯∑-=

二进制数比较简单,只有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 i

K

161

⨯∑-=

表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 1011

F D , A 5 ,9 B

2#111111011010010110011011=16#FDA59B

6)十六进制数转换成二进制数

反过来,当我们看到FDA59BH时,如何迅速将它转换为二进制数呢?

F D A 5 9 B

1111 1101 1010 0101 1001 1011

16#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,0011B

0有两种表示方法:00000000 +0 ,10000000 -0

原码最大、最小的表示:+127、-128

2)反码

规定正数的反码等于原码;负数的反码是将原码的数值位各位取反。

[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 B

3)补码

补码的概念:现在是下午3点,手表停在12点,可正拨3点,也可倒拨9点。即是说-9的操作可用+3来实现,在12点里:3、-9互为补码。

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

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

负数的补码求法:1)反码+ 1

2)公式:[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 P10

4)补码的运算

当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

若运算结果超出这个范围,便溢出。

相关文档
最新文档