1.3.2 数制转换与数据类型
(1)数制
十进制数:1,15, 123, 2000, 34567 (日常生活,工作中应用的数据类型);
二进制数:2#1011, 2#1110, 2#1111100011100101 (CPU就是通过2进制方式进行数据处理的,PLC处理位更方便)。
十六进制:16#100, 16#1A1B, 16#8C1122EF(十六进制更简短,因为换算的时候一位16进制数可以代替4位2进制数)。
a.不同进制数值的本质是一样的,都是为了表达一个数据值,只是显示的形式不一样而已,就如:水,冰,水蒸气一样。
b.10进制数用于最终的显示,计算等,程序编制中的大部分运算也是用10进制数。
c.计算机使用二进制格式处理数据(PLC也是),但是过长的数字代码对人的阅读造成了较大的障碍,为了解决这一问题,才使用十六进制来表示二进制,4位二进制数用1位十六进制数就可以表示,例如一个16位的二进制数1111 1111 1111 1111用十六进制FFFF就可以表示了。在PLC编程应用中大部分数据值还是用10进制格式表达的。
2进制,10进制,16进制的关系与区别,如表1-3所示:
表1-3 进制转换
十进制 | 二进制 | 十六进制 |
0 | 0000 | 0 |
1 | 0001 | 1 |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
7 | 0111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
10 | 1010 | A |
11 | 1011 | B |
12 | 1100 | C |
13 | 1101 | D |
14 | 1110 | E |
15 | 1111 | F |
(2)数制间的转换方法
以10进制数100为例:
a.100的10进制数表达是100(逢10进1,本位归0, 99个位是9,再加1就是10,所以进1,本位变0,十位又是10,所以本位也为0同时进位1,最终99加1的结果为100,100=(个位)0*10的0次方 (十位)0*10的1次方 (百位)1*10的2次方=0 0 100=100)。
如图1-19所示:
图1-19 二进制与十进制的转换方法
当把100存入寄存器D0中数据是如何转换的,如图1-20所示:
图1-20 各个进制转换方法
(3)数据类型
三菱数据类型分为整数K,十六进制数H、实数E(浮点数),组合位数据K2Y0,它们可以作为的定时器和计数器的设定值及当前值、或是应用指令的操作数。
在这里需要注意的是,三菱的数据寄存器D默认为一个16位数据长度,其取值范围为(无符号0~65535/有符号-32768~ 32767);
若是存储数据为32位数据长度,需要组合2个数据寄存器来存储,因此应用指令在处理32位数据时需要在指令前加“D”。
实数E本身占用32位的数据长度,因此在做浮点数运算时,指令前要加“DE”,如DEDIV、DEMOV。