• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

modbus通讯错误导致程序跑死的原因

花生大事 2018-05-23 浏览量:1569
modbus接受数据出现CRC错误,偶尔会出现程序跑死了,一般是什么情况造成?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • modbus最后的CRC校验码错误么?
    一是看看CRC的算法是不是对。
    二是看看接收的数据是不是一样,不一样时,就是有误码,再看看是波特率太高,程序处理不正确,还是其他原因
    三是看程序跑死是卡在什么地方了,仿真看看,是进硬件错误中断,还是卡在你某个while里了。
    • 发布于 2018-05-23
    • 举报
    • 评论 1
    • 0
    • 0
花生大事 回复了 汉云:的确是程序处理出错了 回复

其他答案 数量:4
  • MoudBus程序如果完全按照协议来。即使数据出错,也不会导致跑飞。

    跑飞可能是你对 数据处理错误,导致某处数组越界。

    • 发布于2018-05-23
    • 举报
    • 评论 0
    • 0
    • 0

  • CRC不对,最多是不通讯,不会跑飞的啊。

    你程序的跑飞可能与modbus无关,是其他的原因

    • 发布于2018-05-23
    • 举报
    • 评论 0
    • 0
    • 0

  • CRC错误说明传输过程中有数据丢失了,有可能是线太长了导致出现误码

    至于跑死的问题,有可能是堆栈溢出,或者程序里面加了死循环出不来。最好把代码片段放上来看看

    • 发布于2018-05-23
    • 举报
    • 评论 0
    • 0
    • 0

  • CRC错误那就说明物理层传输已经出现问题了,楼主要检查一下接线和干扰源,MODBUS要正常通信CRC校验必须通过,不然就会把整帧数据丢弃。

    • 发布于2018-05-28
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

modbus通讯错误导致程序跑死的原因