有一组变量格式为16进制数,比如B#16#14,我在程序中需要使用 "14"来做些逻辑判断,请问应该怎么转换好?14转成10进制为20,又不方便做逻辑,请教下怎么处理这个问题好
问题补充:
感谢您的回答,我尝试用SCL中直接比较16进制是可行的,比如地址为,DB1.DBB0,比较时直接写 IF DB1.DBB0 = 16#14 THEN
但是LAD中怎么进行方便的这样的逻辑呢
最佳答案
1、问题很简单,不要顾及在PLC中存储的数据格式,因为都是十六进制数的。只考虑用来比较的数据14,如果这个14是十六进制数,则直接进行比较。如果这个14是十进制数,则将其转换为十六进制数0E,再进行比较。
2、在编程时,如果一个字长数据与14(十进制数)进行比较,直接应用:
L 14指令取数即可,系统会自动将14(十进制数)转换为十六进制数0E。
3、问题补充:LAD中怎么进行方便的这样的逻辑呢?
比较的输入端直接写入十进制数或十六进制数均可,但注意要采用正确的数据类型。见:
见《S7-300的数据类型》其中,8、常数的表示方法。连接:
http://blog.gkong.com/more.asp?name=zhyo720211&id=2005
提问者对于答案的评价:
感谢您的解答!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc233176.html