容易让人糊涂的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。

1

 BCD码没有单独的表示方法,而是借用了十六进制的表示方法,因此二者很容易混淆。
   下图是S7-300/400的BCD码和整数的相互转换指令,可以看到在指令中BCD码均用十六进制的形式表示。

2

在程序中,怎么知道一个数字是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。

3

关注共享屋公共账号 share5888,搜索“BCD码”即可搜索到该篇文章,方便今后学习使用。加入数控机床电气维修群 343338585,加入在线学习数控机床电气知识的平台。

FANUC精品资料下载:

FANUC资料汇总下载地址
FANUC数控系统0I-A系列
点击打开
FANUC PMC资料汇总点击打开
FANUC数控系统0I-B系列
点击打开
FANUC数控系统0I-C系列点击打开
FANUC数控系统0系列点击打开
FANUC数控系统0I-D系列点击打开
FANUC数控系统31I-A
点击打开
FANUC数控系统31I-B系列
点击打开
FANUC资料汇总0I-F点击打开
FANUC系统宏程序介绍以及培训资料汇总点击打开
FANUC数控系统维修资料汇总点击打开
FANUC PMC学习视频教程点击打开
FANUC LADDERIII软件下载以及密码破解软件点击打开
伺服调整软件 SERVO GUIDE下载点击打开
FANUC程序传输工具点击打开
FANUC二次开发软件之Fanuc Picture点击打开
FANUC 0I刚性攻丝介绍以及相关调试文档点击打开
FANUC伺服优化调整资料汇总点击打开
FANUC数控系统应用技术报告点击打开
FANUC机器人资料打包下载点击打开

>>共享屋自动发货商店,学习数控机床电气资料软件、教程,点击进入
© 版权声明
THE END
喜欢就支持一下吧
点赞3
分享
评论 抢沙发

请登录后发表评论