您现在所在的是:

三菱Mitsubishi

回帖:5个,阅读:1221 [上一页] [1] [下一页]
1019
perover
文章数:26
年度积分:50
历史总积分:1019
注册时间:2017/11/30
发站内信
发表于:2018/8/2 15:39:33
#0楼
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编辑过]
7672
w71412659
文章数:1455
年度积分:53
历史总积分:7672
注册时间:2013/5/8
发站内信
2018论坛魅力之星
发表于:2018/8/2 16:02:27
#1楼
遇到过一次这个问题,我的做法是,先把你那几位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)

没想到更好的办法,我就是这么用的,可以解决你的问题,希望更多人提供更好的思路,以上。
37243
cvlsam 版主
文章数:12401
年度积分:1595
历史总积分:37243
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2018/8/2 16:04:39
#2楼
以下是引用perover2018/8/2 15:39:33的发言:
3u的plc接收到ASCI码为30 30 30 30 31 35 35 34分别存到d200-d207中,但是plc显示的为48 48 48 48 49 53 52 52
用HEX指令转换后为16进制1544 但是plc显示为十进制的5444,怎么才能在一个寄存器中显示十进制的1544呢

请使用与操作和移位指令将HEX转换结果放入一个寄存器后,然后执行FUN19(BIN)指令。

Good Luck~
[此贴子已经被作者于2018/8/2 16:07:06编辑过]
8302
fujifa
文章数:2937
年度积分:235
历史总积分:8302
注册时间:2014/2/10
发站内信
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
发表于:2018/8/2 16:09:41
#3楼
以下是引用w714126592018/8/2 16:02:27的发言:
遇到过一次这个问题,我的做法是,先把你那几位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)

没想到更好的办法,我就是这么用的,可以解决你的问题,希望更多人提供更好的思路,以上。

16位乘法指令结果为32位数,你这样做有BUG风险。
6195
zhengchang
文章数:1819
年度积分:81
历史总积分:6195
注册时间:2011/5/6
发站内信
发表于:2018/8/2 16:30:43
#4楼
16进制的30就是10进制的48呀。如果你非要显示30,除以16取余数这方式吧,商大于16继续除
12465
蛇会大学
文章数:4619
年度积分:791
历史总积分:12465
注册时间:2015/12/14
发站内信
2018论坛分享达人
发表于:2018/8/3 23:26:07
#5楼
用指令把ASC字符转换成BIN数值

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004