13771165220
级别: 家园常客
精华主题: 0
发帖数量: 320 个
工控威望: 548 点
下载积分: 1588 分
在线时间: 83(小时)
注册时间: 2017-11-27
最后登录: 2024-03-21
查看13771165220的 主题 / 回贴
楼主  发表于: 2021-08-24 19:48
比如发送的数据是ASC码     #1,0,30000,1000,AB
比如这串数字意思是  
#:打头字母
1:站号
0:该站电机号
30000:电机定位地址
1000:电机定位速度
AB:校验码
其中的”,“是间隔符号也是一个ASC码
返回数据先不管。
现在有这样的问题,我需要在触摸屏控制定位地址和定位速度。
但是如果我速度输入3000的话就比原来的30000少一个ASC字符,这样包括后面发送的指令数据地址都相当于左移了一位而且和校验都不一样了。
个人感觉还需去判断输入的数据转为ASC后占几个字符,感觉处理起来后续就比较麻烦。就算让人家直接输入ASC当数据也是比较麻烦。有谁有这方面的经验分享一下,大概思路也可以。
万分感激。
13771165220
级别: 家园常客
精华主题: 0
发帖数量: 320 个
工控威望: 548 点
下载积分: 1588 分
在线时间: 83(小时)
注册时间: 2017-11-27
最后登录: 2024-03-21
查看13771165220的 主题 / 回贴
1楼  发表于: 2021-08-24 21:40
引用
引用第1楼菜鸟入行于2021-08-24 21:27发表的  :
得做一个很复杂的指令,寻找不同的逗号,把逗号之间的数据提出来,再转换ASC码,感觉好难的样子。

你这个仪表能支持其他方式不,比如MODBUS,这样省事多了


主要是需要判断出输入数据的长度,然后在把后续的数据,放到发送对应的地址里去,倒腾起来比较费事。

项目是需要测试20路步进电机性能,需要输入脉冲数和速度。正反转等,电压还要36V以内。比较麻烦,网上就找到一款4路485通信板。就是没有通用协议的,只有它自己的协议格式。
目前只能无协议自己换算。

正在找MODBUS协议支持的相关产品。
感谢您的建议。