进制简介
上一篇博文,我们为大家详细的介绍了二进制数据 汇川小型PLC梯形图编程系列教程(七):数值存储与二进制数据知识详解 ,本篇博文将为大家详细介绍一下其他的数据进制,其中我们在PLC编程中用的比较多的是十进制和十六进制数据,BCD码一般用在数码管显示的用途中。
十进制
十进制数据就是我们人类使用的12345678910 11 12这样的数据,逢十进一。咱们上小学就开始学的数学,都是基于10进制的。十进制数据在编程中用的比较多。
十六进制
十六进制,逢十六进一。
十六进制(Hexadecimal)是计算机中数据的一种表示方法。同日常生活中的表示法不一样,它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;十六进制用hex表示
对于16位的数据,用十进制表示出来是500,用十六进制HEX:01F4,用二进制表示:1 1111 0100。每个十六进制位相当于4个二进制位。
十进制 | 十六进制 | 二进制 |
0 | 0 | 0000 |
1 | 1 | 0001 |
2 | 2 | 0010 |
3 | 3 | 0011 |
4 | 4 | 0100 |
5 | 5 | 0101 |
6 | 6 | 0110 |
7 | 7 | 0111 |
8 | 8 | 1000 |
9 | 9 | 1001 |
10 | A | 1010 |
11 | B | 1011 |
12 | C | 1100 |
13 | D | 1101 |
14 | E | 1110 |
15 | F | 1111 |
16 | 10 | 0001 0000 |
17 | 11 | 0001 0001 |
18 | 12 | 0001 0010 |
19 | 13 | 0001 0011 |
20 | 14 | 0001 0100 |
每一个十六进制位对应的4个二进制位,FF对应的二进制位就是1111 1111.
八进制
八进制数据用的稍微少一点,逢八进一。具体不详细说,和上面差不多,用的并不多
BCD码
最符合人们阅读习惯的数字格式是十进制,在人们监控或设置工作参数时,往往需要采用十进制格式进行数据显示,而计算机内部使用的是HEX格式,故需采用一种底层为每4个二进制位组成一个数字位,而每个数字位只能为十进制数的0~9,由此组成的数值,这种格式数字在存储器中的编码称为BCD码(Binary-Coded Decimal)。
在PLC内部,原理上用4位二进制数代表1位十进制数,在每一位BCD码中,不存在HEX格式中的A~F。对于一个8bit宽度的寄存器单元,能存储的最大BCD数只能是99,因此将HEX格式转换为BCD码后,会占用更大的存储空间。
PLC内部总是按HEX格式进行数据计算的,在驱动非智能的显示设备(如数码管)显示数据之前,往往需要将PLC内部的十六进制( HEX)格式数据先转换为BCD码,然后进行显示输出;将用户以十进制方式设置的参数存入PLC内存之前,则往往需要将该BCD码转换为十六进制( HEX)格式。
H1U/H2U系列PLC内部提供了HEX与BCD两种格式相互转换的命令,在需要进行显示输出,或设置开关读取的时候,执行该格
式转换指令。
人们在电脑显示器上看到的十进制读数,都是经过了计算机自动作BCD转换后才显示的;监控时修改的参数,则是电脑软件作了HEX转换后写入的,无需人为干预而已。
进制转换
一般都不要自己手动算,但是还是应该知道手动怎么算的。我们实际应用中都是使用转换工具的,微软自带的计算器,就带这个功能。下面给大家介绍一下微软自带的计算器如何进行数据类型转换:
Windows键+R,然后输入“calc”回车,就能打开系统自带的计算器。
点击左上角的查看,然后选择程序员模式,就能进行各个数进制之间的转换了。
二进制转十进制
二进制转十进制,使用上面的计算器很容易。下面简单说一下如何手动计算:
要将二进制数10110101换算为十进制数,则计算要复杂很多,最通用的方法可采用权重累加法,从最右边一位开始计算:
第1位( bit0)为1时,权重为1 ,(即2^0),否则为0;
第2位( bit1)为1时,权重为2 ,(即2^1),否则为0;
第3位( bit2)为1时,权重为4 ,(即2^2),否则为0;
第4位( bit3)为1时,权重为8 ,(即2^3),否则为0;
第5位( bit4)为1时,权重为16,(即2^4),否则为0;
第6位( bit5)为1时,权重为32 ,(即2^5),否则为0;
第7位( bit6)为1时,权重为64 ,(即2^6),否则为0;
第8位( bit7)为1时,权重为128 ,(即2^7),否则为0; ……
对于本例子中,将“ 10110101”转换为十进制数即为( 128+0+32+16+0+4+0+1) =181。
二进制转换十六进制
二进制 | 十六进制 |
0000 | 0 |
0001 | 1 |
0010 | 2 |
0011 | 3 |
1011 | B |
1100 | C |
1101 | D |
1111 | F |
一般用多了,就记得表格中的数据了,都不用计算,口算就出来了。一般二进制转16进制,需要先将二进制转成10进制,十进制转成16进制,反正都很麻烦,我习惯用计算器等工具解决了。
十六进制转十进制
对于16bit转换为十进制,如本例中的“ B5”,也采用十六进制的权重累加法,从最右边一位开始计算:
第1位HEX数的权重为1 ,(即160),即该位的实际值×1;
第2位HEX数的权重为16 ,(即161),即该位的实际值×16;
第3位HEX数的权重为256 ,(即162),即该位的实际值×256;
第4位HEX数的权重为4096 ,(即163),即该位的实际值×4096;…..
对于本例子中,将“ B5”转换为十进制数即为( B×16+5×1) =( 11×16+5)=181。
关注本站微信公众号,可以更方便的获得更多资源资料
燕骏工控博客[环宇工控博客]–www.yanjuntech.cn 专注于工业自动化领域,分享工控相关经验与教程,分享收集的百度云盘工控资料资源,记录个人生活读书感悟。期待与您相遇~~
转载请注明:燕骏博客 » 汇川小型PLC梯形图编程系列教程(八):其他进制简介(八进制,十六进制,BCD码)
赞赏作者微信赞赏支付宝赞赏