舞在风中
我的传感器显示格式是ASCII的,我用PLC读上来的数值是十进制,现在想把十进制数转换成ASCII,不知道用什么指令可以转换
公孙小天
用HEX指令(API 83)
回复内容:
对: 公孙小天 用HEX指令(API 83) 内容的回复!
HEX指令是把十六进制转换成ASCII码的吧!
PLC底层都是二进制数,十进制和十六进制只是监控值的形态不一样罢了。比如“0”的ASCII码就是十六进制H30、十进制则是48,一回事。假设你的传感器上读数是1000,那么通过通讯读过来的就是H3130和H3030放在2个寄存器中,当然高低字节有可能是反过来的,你现在要做的其实就是要得到1000这个数。HEX就是把H31变成H1,把H30变成H0,你仔细看一下手册中指令的说明吧。
对: 公孙小天 PLC底层都是二进制数,十进制和十六进制只是监控值的形... 内容
是这样的,我的传感器输出是ASCII,比如20.9%,PLC读取的数据是 50 48 46 57 ,我选择SACII监控模式,50 58 46 57 对应的就是20.9,但是我要经过处理在触摸屏上显示出20.9 ,所以我就想通过什么指令将其转换成20.9
如果是台达触摸屏的话,你用数值显示中的文数值显示元件,可以直接显示ASCII字符的,注意字符串长度就可以了。
对: 舞在风中 回复内容:对: 公孙小天 PLC底层都是二进我现在用的方法是将读取的数减去48(48对应的ASCII是0),将余数存储在寄存器中,然后按位数做乘以100,乘以10 ,除以10处理,再将各个结果加起来存在寄存器中
对: 公孙小天 如果是台达触摸屏的话,你用数值显示中的文数值显示元件,... 内容的回复!
我试试哈,感谢!!
你不要把自己绕进去,20.9只要做显示的话用触摸屏上的文数值显示元件即可,如果要用来比较运算的话,那么就用HEX指令转。
张威威
帝国简欧风景哦我就给偶加发达高价搜我就GIF接地极
bcsx