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