最近在研究modbus通信协议,参考了网上国外的源码--freemodbus.发现这个源码程序结构挺好,很容易读懂,写得比较规范,看起来舒服.感觉原作者是有不错的编程功底的.
在研究源码的时候发现几个问题: 1.freemodbus 中的ASCII模式下的LRC校验是在将ASCII解码成HEX码后进行的,而MODBUS-IDA上给出的权威资料却明确指出LRC校验是在解码之前进行的.
2.在freemodbus源码中,当从机收到主机发送过来的信息时,如果此时从机正在发送,从机则立即终止发送而转为接收.这样的处理我没有在相关资料中找到明确的规定,这样的处理是否合理呢?
3.在modbus协议下,是如何实现不会发生两个或以上从机同时发送信息给主机的呢?
不知各位看管有何见解,请赐教. 谢谢! |