回复:还是BCD码和16进制的问题

Automann

  • 帖子

    6168
  • 精华

    138
  • 被关注

    309

论坛等级:至圣

注册时间:2004-12-23

普通 普通 如何晋级?

发布于 2012-05-17 22:53:03

2楼

quote:以下是引用念念吥忘在2012-05-17 21:16:38的发言:
自己做工业控制也一年多了,有些细节和基础知识还是有点模糊,感觉很汗颜。今天朋友发了我段程序,用的是CU定时器,CV_BCD输出到MW16中,且显示的数值为16#0010,在下一段的程序中,调用了一个CMP==I的比较块,比较MW16和一个常数,这里的MW16的值显示为16,我自己翻了半天资料也没弄明白怎么转换成的16。请各位老师讲解下BCD码和16进制的一些区别和转换吧,百度的都说的不清不楚的,看了反而更头大,谢谢了各位。

请看我发的帖子“容易让人糊涂的BCD码和十六进制数”:
http://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=4&a_id=917109&s_id=0&pno=3
BCD码用于PLC的输入、输出设备,例如拨码开关输入的是BCD码,送给七段显示译码芯片的应该是BCD码。日期时间值是BCD码,计数器可以输出BCD码。
BCD码的难点在于它本质上是十进制数,却采用十六进制数的书写格式(16#)。
计数值为10的时候,计数器十六进制数输出值CV为16#a,BCD输出(CV_BCD)的输出值是BCD码16#10。
如果用变量表的十进制格式监控CV_BCD的值,它为18(即十六进制数16#12)。
如果要比较计数值,因为比较指令要求的数据类型为整数,可以用MW0参与比较,或者用指令BTI将它转换为十进制数10后,再参与比较。
追求完美
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54774条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。