问答

汇集网友智慧,解决技术难题

21ic问答首页 - MODBUS从机应答的数据在传输中出现错误,主机怎么处理

MODBUS协议通信 modbus 从机 错误 指令 电机

MODBUS从机应答的数据在传输中出现错误,主机怎么处理

CVI20222022-08-24
从机正确的接收到了主机发来的数据指令,指令作用是去控制电机转动5秒,回传过程中出现错误,主机校验后发现错误,丢掉,再发一次。但是从机是不是要设置一定的的等待时间,等待主机的第二次发送,那就要求从机不能马上执行电机的转动。就是说从机收到的指令是要处理时间比较长的事件,回传数据的过程中是有可能发生错误的,遇到这种情况从机、主机该怎么处理比较合适?想听听大家的意见和经验。
回答 +关注 14
3172人浏览 5人回答问题 分享 举报
5 个回答
  • 对于通信,从机收到指令应立退回复,对于耗时较长的指令,主机可定时查询,从机回复数据中有状态字节表示当前动作是否完成。
    数据错误可重发。
    数据帧中加一个帧号字节,每发成功一次加1,未收到从机响应则不加1;
    若从机回复数据受干扰,主机帧号不变,从机判断帧号未改变则不处理,直接回复应答数据,避免重复动作。
  • CRC16校验不就这个时候起作用,校验不通过直接丢了,采集频率够高错几次无所谓啊
  • 主机直接丢弃通知从机重传一次即可
  • 应答错误,主机要求重传即可。
  • 如果分机电机自主停止,就是接收到启动指令后自已运行5s后自动停止,如果是这种情况没必要关心下一个启动指令,接收到新的启动指令,只要电机还在启动状态,就不处理也不初始化5s计数;(只要主机不连发5s多就可以)
    如果停止必须是接收到停止指令,这个就需要等待再次接收确认了

您需要登录后才可以回复 登录 | 注册