我现在需要将一台S7-200的plc和一台智能仪表连接,智能仪表的通讯数据格式是ASCII的,数据包含小数。能否通过字符串指令将传输过来的ASCII码转换成实数。请各位高手指教!
最佳答案
1 如果你用的是 RCV VB100 ,0 ,那最好的转换方法就是在接收中断里用 STR VB100, 1,VD100. VD100里就是你需要的浮点数。
例如:VB100=6 VB101='7' VB101='4' VB101='6' VB101='.' VB101='1' VB101='5' 那么VD100=746.15
2 假如你不用第一种方法,例如字符在 VB5 VB6 VB7 VB8 VB9 里,那就这样转换 STR VB4, 1,VD100. 在转换前要对VB4赋值,
如果你知道有N个字符,那么在转换前要MOVB N ,VB4
如果你不知道有多少字符,那就分两种情况,一种是有小数点的数,一种是没有小数点的数。
有小数点的数,VB4可以设置大点,
例如VB5='7', VB6 ='3' VB7='4', VB8='. ' VB9 ='9',
VB4=5, 那么VD100=734.9
VB4=7, 那么VD100还是等于734.9。
没有小数点的数,例如VB5='7', VB6 ='3' VB7='4', VB8='6 '
VB9 ='9',
VB4=5, 那么VD100=73469
VB4=6, 那么VD100=734690
VB4=7, 那么VD100=7346900
提问者对于答案的评价:
谢谢你给出那么详细的答案,也谢谢其他高手!
我先先试试吧,如果我没用好,再请教大家!
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc354626.html