|
发表于 2014-9-1 08:54:12
|
显示全部楼层
本帖最后由 XIUQIN 于 2014-9-1 15:07 编辑
你好!在调试你的程序是发现一个问题(1)errorCode = eMBMasterReqReadHoldingRegister(1,0,120,RT_WAITING_FOREVER);(2) errorCode = eMBMasterReqReadHoldingRegister(1,0,120,RT_WAITING_NO); 带阻塞的1可以正常运行不死机,不带阻塞的2运行一会就会死机(从机还是在正常的收发,只是主机停止了请求,LED也停止闪动),问题应该是资源没有释放造成请求函数永远得不到资源,但主事件巡检里已对成功请求或不成功请求的末尾都做了释放资源的操作,本人太菜看了半天也没找到原因。------------- 试了半天又发现带阻塞1长期工作(1个小时左右)也会照成同不带阻塞2一样的情况,主机波特率115200,不停的由modbus PoLL 从起始地址0读120个数据,从机波特率9600,不停的由modbus slave响应本程序主机请求,同样起始地址0,120个数据。被我改动的还有保持寄存器数量从前辈的100改为120,请求间隔(LED延时)设为20ms.是最新程序,其它没动。
|
|