登录
首页 PLC论坛 三菱Mitsubishi
回帖 发帖
正文

主题:plc接收到的ASCI怎么处理

点击:1279 回复:5

3u的plc接收到ASCI码为30 30 30 30 31 35 34 34分别存到d200-d207中,但是plc显示的为48 48 48 48 49 53 52 52
用HEX指令转换后为16进制1544 但是plc显示为十进制的5444,怎么才能在一个寄存器中显示十进制的1544呢
最后修改:2018/8/2 16:37:13
18-08-02 15:39
遇到过一次这个问题,我的做法是,先把你那几位ASC数字( 31 35 35 34)传递到D区中,假设D300-D303,这时这几个寄存器中的数字分别是:1、5、5、4,然后:
D300*1000=D310(1*1000=1000)
D301*100=D311(5*100=500)
D302*10=D312(5*10=50)
D303*1=D313(4*1=4)
D314=D310+D311+D312+D313(1000+500+50+4=1554)
没想到更好的办法,我就是这么用的,可以解决你的问题,希望更多人提供更好的思路,以上。
18-08-02 16:02

引用 perover 在 2018/8/2 15:39:33 发言【内容省略】

请使用与操作和移位指令将HEX转换结果放入一个寄存器后,然后执行FUN19(BIN)指令。
Good Luck~
最后修改:2018/8/2 16:07:06
18-08-02 16:04

引用 w71412659 在 2018/8/2 16:02:27 发言【内容省略】

16位乘法指令结果为32位数,你这样做有BUG风险。
18-08-02 16:09
16进制的30就是10进制的48呀。如果你非要显示30,除以16取余数这方式吧,商大于16继续除
18-08-02 16:30
用指令把ASC字符转换成BIN数值
18-08-03 23:26

工控新闻

更多新闻资讯