可能出現(xiàn)通信擠兌的情況,就是同時有通信指令在進行,時間長或者次數(shù)多了可能會宕機。
建議你優(yōu)化下輪詢程序,比如每條指令做好充足的時間間隔,如果有站掉線,時間會延長。把S7、TCP等同一網(wǎng)口的通信指令進行輪詢,避開同時觸發(fā)。
我看你DONE\ERROR并沒有使用。實際官方的例程是有使用的。
當REQ觸發(fā),DONE或者ERROR觸發(fā)后,REQ復位,下一個站REQ觸發(fā),DONE或者ERROR觸發(fā)后,下一個站REQ觸發(fā)......
其次,單條指令的最大字數(shù)好像是128個,而你100個字也算多了,modscan測試少有讀100個地址穩(wěn)定不掉線的情況。一般二三十個是可以穩(wěn)定的。
地址讀多了或者讀到無效地址就會導致掉線,你可以減少單個指令讀取的字數(shù),一個指令讀不完就分兩個指令來讀,且盡量是說明書上的有效地址范圍。
[ 此帖被fczxjh在2025-04-15 11:23重新編輯 ]