电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

BCD码写的最大十进制数是9999最大十六进制数也是9999

2017-09-15 22:01分类:PLC基础知识 阅读:

 

BCD码的最大值是9999,由于一个字16个位,每四个为代表一个十进制的数;
1001100110011001:对应的即是9999,最大值
以上的二进制数,在十六进制里的标明也是16#9999,可是它十进制值不是9999,而是39321
一个字节的十六进制数最大值是:FFFF
9999十进制改换为十六进制数是270F没有错,这儿9999不是BCD码,而是十进制的一个数值;数据在plc都是以二进制的办法存储的,格局上的纷歧样,它的所标明的数也纷歧样,比方某个数据时以BCD码的格局存储的,那么你要显现成十进制,就要进行改换,否者数值是不对的。以体系时钟为例,读取后的时刻值是以BCD码存储的,假定取本年的年份,那么这个字节对应的BCD码即是,00010101对应BCD码的值为15,可是体系显现的是十进制数,是21;所以要通过转化;
///我的了解是,BCD是一种数据的存储格局,这数据能够被用到其他数据场合,那么它标明的意思就纷歧样了。

BCD码(Binary-Coded Decimal‎)是二进制编码的十进制数的缩写,BCD码用4位二进制数标明一位十进制数。BCD码各位的数值计划为2#0000~2#1001,对应于十进制数0~9。BCD码不能运用十六进制的A~F(2#1010~2#1111)这6个数字。BCD码实质上是十进制数,因而相邻两位逢十进一。
BCD码的最高位二进制数是符号位,负数的符号位为1,正数为0。16位BCD码的计划为–999~+999。
下图的拨码开关将显现的数字改换为4位二进制数。PLC用12个数字量输入点读取的是3位BCD码,它的值为2#1000 0010 1001,即十六进制数16#829。
图
BCD码没有独自的标明办法,而是借用了十六进制的标明办法,因而二者很简略混杂。
下图是S7-300/400的BCD码和整数的彼此改换指令,能够看到在指令中BCD码均用十六进制的办法标明。
图
在程序中,如何知道一个数字是BCD码仍是十六进制数呢?
1)看数据的来历和用处。BCD码通常用于输入和输出,例如来自拨码开关的数据是BCD码,送给显现电梯楼层的译码器芯片的是BCD码。
2)看手册的规矩,例如数据类型DATE_AND_TIME中的日期和时刻值是BCD码,计数器的预设值PV和其时计数值CV_BCD为BCD码。
如何监督BCD码?
在变量表和程序状况监控中,用十六进制格局监督BCD码。
如何输入BCD码?
从上图能够看出,BCD码用十六进制格局输入,其最高位(符号位)为16#F(2#1111)。BCD码的低3位各位只能是0~9,假定是16#A~16#F则会犯错。
计数器的预设值PV是0~999的BCD码,能够用格局为C#的常数(C#1~C#999)作为计数器的预设值。
下图用MW42供应计数器的预设值PV,假定用MOVE指令将十进制数348(对应的十六进制数为16#15C)传送给MW42,进入RUN办法时,操作体系将它改换为BCD码时犯错(16#15C不是BCD码),不能切换到RUN办法。
输入预设值348时,应改为将C#348传送给MW42,它会主动地变为W#16#348,当然也能够直接输入16#348。没有必要用I_BCD指令将348改换为BCD码W#16#348后,再传送给MW42。
图

上一篇:怎样经过STEP7 (TIA Portal) 软件下载一个项目到CPU?

下一篇:PLC经过RS232与外部3个设备进行通讯的疑问

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部