标题:上位机和下位机串口通信,怎么确认对方是否接收到数据?
作者:ycgxy1650601
日期:2017-09-18 11:07
内容:
Qt写上位机,通过串口与下位机进行通信;比如上位机发送数据给下位机,下位机可能接收到数据或接收不到,怎样做才能确认下位机到底有没有收到数据。
我的办法:上位机发送数据给下位机,下位机接收到数据就返回对应指令给上位机,上位机接收到指令并进行判断;这样就能确认下位机是否接收到。不知道大家有没有更好的办法?
在这过程中,我也碰到了困难,不知道怎么处理:http://www.qtcn.org/bbs/read-htm-tid-64065.html
#1 [九重水 09-18 15:19]
新嫩的感觉,
看看MODBUS协议吧。
#2 [lanliuyi61 09-19 15:56]
要用modbus协议也得你的下位机就是用的Modbus协议才行。
既然要通信 就需要两方有约定才行,你下位机的通信方式你得先知道你才能开发上位机。
#3 回 九重水 的帖子 [ycgxy1650601 09-19 21:52]
九重水:新嫩的感觉,
看看MODBUS协议吧。 (2017-09-18 15:19)
我网上看到过一些例子,请教一下是不是modbus协议:
第一种:下位机和上位机都分别定义相同的结构体变量,变量结构为:桢头、数据长度、指令、数据、校验、帧尾。其中结构体成员的内存大小都是对应的。这是属于MODBUS协议的RTU类型吗?
第二种:下位机和步进电机通过rs485通信,发送'/0CP'类似的代码才能驱动电机。这是属于MODBUS协议的ASCII类型吗?
#4 回 lanliuyi61 的帖子 [ycgxy1650601 09-19 21:52]
lanliuyi61:要用modbus协议也得你的下位机就是用的Modbus协议才行。
既然要通信 就需要两方有约定才行,你下位机的通信方式你得先知道你才能开发上位机。
(2017-09-19 15:56)
我网上看到过一些例子,请教一下是不是modbus协议:
第一种:下位机和上位机都分别定义相同的结构体变量,变量结构为:桢头、数据长度、指令、数据、校验、帧尾。其中结构体成员的内存大小都是对应的。这是属于MODBUS协议的RTU类型吗?
第二种:下位机和步进电机通过rs485通信,发送'/0CP'类似的代码才能驱动电机。这是属于MODBUS协议的ASCII类型吗?
#5 [九重水 09-20 09:08]
串口通信不一定要modbus协议,它只是比较通用而已,上下位机约定一致即可。
它的官网如下,百度一下也可以看到很多翻译的资料:
http://www.modbus.org/
你对照一下就可以看到是不是modus协议了,不过即使不是,应该也很类似了,很多自定义协议都借鉴了modbus