请问各位大神,这个转换指令中,第一个BCD码转换成整数,VW2000怎么变成VW2002 了??
298怎么又变成 VW2004 了嘞??? 我晚上在看西门子学习视频,不明白。 麻烦讲解的详细一点,谢谢!!
图片说明:
最佳答案
1、BCD码的概念
BCD码 意为 “二进制编码的十进制数”。BCD码是一种编码方式,是以二进制数对十进制数字的编码,每四位二进制码表示一位十进制数,并因为16进制的优势,改用十六进制数字表示。
十进制只有十个数字 0-9,所以以 16 进制表示的BCD码不会出现16进制数字AH - FH。
比如十进制数39用 BCD 码表示就是39H,或16#39。BCD码数值必须用16进制查看才能得到正确结果。
BCD编码往往在使用BCD编码开关输入数据时用到;S7-200中读出的时钟日期数据也是以BCD编码表示。
2、你附图中的两个转换指令
BCD码转整数指令( BCDI)将一个 BCD 码 IN 的值转换成整数值,并且将结果存入 OUT 指定的变量中。 IN 的有效范围是 0 到 9999 的 BCD 码。
那前面那条指令就是将 VW2000 中存储的BCD码,转换成十进制的整数存放到 VW2002 中。
整数转 BCD 码指令( IBCD)将输入的整数值 IN 转换成 BCD码,并且将结果存入 OUT 指定的变量中。 IN 的有效范围是 0 到 9999 的整数。
后面那条指令就是将十进制整数 298 转换成 BCD 码存储在 VW2004 中。
3、就解释你的第二条指令,十进制数 298 转换成 BCD 码是怎么转换的
千位:0 对应的四位二进制码是 0000
百位:2 对应的四位二进制码是 0010
十位:9 对应的四位二进制码是 1001
个位:8 对应的四位二进制码是 1000
由高位到低位就是 0000 0010 1001 1000 对应十六进制就是 16#0298H
对应的十进制就是 664。
4、网上再找一些数制方面的内容学习一下吧
5、官方视频可参考《转换指令》
http://www.ad.siemens.com.cn/productportal/prods/s7-200-portal/micropower2013/general/online_resource/Bool%20instruction%20etc.html
提问者对于答案的评价:
666, 谢谢
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc361578.html