发布于 2011-10-30 15:04:41
2楼
用1200和仪表等做MODBUS 通信时,读指令和写指令都是使用MB_Master,只是靠mode来区别是读还是写。
从时序上说,在OB1中调用N个读和N个写指令都没有问题,关键就是读和写要错开。
再详细些就是,读指令和写指令的REQ(request)信号要错开,在同一个时间只能有一个指令被请求。
如果REQ信号处理不当,就会报错“端口正在被占用”。
用指令间加延时的方法来错开指令也是可以实现的,但不太科学不太准确。
自己编程的总结:用第一个指令的done1或error1信号(因为通信不是出现done就会出现error),作为第二个指令的REQ2信号;第二个指令的done2和error2,作为第三个指令的REQ3信号,以此类推,最后一个指令的doneN和errorN,最为第一个指令的REQ1信号。
Better and More !