资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
本文格式为Word版,下载可任意编辑step7中bcd码和十六进制数 BCD码(Binary-Coded Decimal?6?0)是二进制编码的十进制数的缩写,BCD码用4位二进制数表示一位十进制数。BCD码各位的数值范围为2#00002#1001,对应于十进制数09。BCD码不能使用十六进制的AF(2#10102#1111)这6个数字。BCD码本质上是十进制数,因此相邻两位逢十进一。BCD码的最高位二进制数是符号位,负数的符号位为1,正数为0。16位BCD码的范围为999999。下图的拨码开关将显示的数字转换为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位各位只能是09,假如是16#A16#F则会出错。计数器的预设值PV是0999的BCD码,可以用格式为C#的常数(C#1C#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。在看手册时说BCD码和16进制都可以用16#表示假如现在装载一个数BR L 16#296 假如是BCD码表示十进制296BR 假如是十六进制表示十进制663BR 系统是怎样区分那个数是BCD码还是十六进制的。1. BCD 码是用2进制表示的十进制数,假如从最右端每4位转换成16进制数,则BCD 码也可以表示成16进制,例如:16#123 , 转换成二进制应当是 2#0000 0001 0010 00112. 系统是怎样区分那个数是BCD码还是十六进制的。这取决于使用的指令。例如: STEP7 中S5 定时器中的设定值,就是BCD数,而不是16进制数。指令的规定与设计在最初一旦被定下来之后,就不能再修改。例犹如样是定时器, 在GE 90-30 的PLC 中,它的设定值就是10进制数,而不是16进制数。3 . 在每一个指令中都有使用的数据类型的规定。在那里,你就知道该使用16进制数还是BCD码了, 先列表如下:WORD 可以是2进制数,或者16进制数,或者BCD码。DWORD 可以是2进制数,或者16进制数,或者10进制数。然而,INT , DINT 只能是10进制数或者16进制数。参考出处:STEP7 中的关心,在索引项的输入要查找的关键字中输入: INTPLC本身是不用区分的,我觉得在通讯的时候比较有用到;比如上位机采集200的时间的时候,200供应的是BCD码的时间;而上位机跟200对时的时候也需要给200BCD码的时间。主要还是编程的时候,处于省时省力的考虑吧。第 1 页 共 1 页
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号