通讯死机的原因是通信口被占用,但是重启后又可以正常使用。突然发现再次重新调用“MB_COMM_LOAD”调用将删除通信缓冲区中。完美解决
要组态 Modbus RTU 的端口,必须调用“MB_COMM_LOAD”一次。完成组态后,“MB_MASTER”和“MB_SLAVE”指令可以使用该端口。
如果要修改其中一个通信参数,则只需再次调用“MB_COMM_LOAD”。每次“MB_COMM_LOAD”调用将删除通信缓冲区中的内容。为避免通信期间数据丢失,应避免不必要地调用该指令。
必须使用一个“MB_COMM_LOAD”实例组态用于 Modbus 通信的每个通信模块的端口。为所用的每个端口分配唯一的“MB_COMM_LOAD”背景数据块。S7-1200 CPU 的通信模块数限制为三个。
插入“MB_MASTER”或“MB_SLAVE”指令时,将指定背景数据块。当在“MB_COMM_LOAD”指令中指定 MB_DB 参数时,将引用该背景数据块
重新定义下组态端口就能解决