引用
引用第1樓madawa于2023-09-01 01:26發表的 :
在plc與需要通訊的儀表485線路上并聯了一個通訊助手,來監控收發數據。儀器需要的指令是01 03 00 09 00 02 +crc校驗碼(校驗碼自動發送)。plc用的指令數據是40010發的數據格式才是需要通訊的儀器需要的數據格式03 00 09,正常不應該是30009嗎。現在能發出去儀表需要的數據格式了,但是通訊助手能收到儀表的回復,PLC收不到儀表反饋的數據
說一下我遇到的一個情況吧,看看對你有沒有啟發。
前幾天我遇到一個情況,我的485設備通過一個串口轉網口的網關和200SMART相連,但是通訊會報故障。就是有時候能通訊上,有時候又通訊不上了,時斷時續。就算是能通訊上的時候也會報故障碼41。
通訊不上的時候代碼是37或者41在跳,這兩個代碼都指向服務器
37請求的事務 ID 與服務器的響應不匹配。此錯誤表示服務器設備存在問題,或者響應請求的服務器設備錯誤。
從服務器收到無效的協議 ID。
41請求的功能代碼與服務器的響應不匹配
所以我就懷疑是那個串口轉網口的設備出問題了,但是我連續換了七個同一品牌,同一型號的轉接設備,故障依舊。
如果我用MODBUS RTU通訊就是PLC和外設直接通過串口連接,不通過轉接模塊,是可以通訊的,且沒有報錯,所以可以確定這個485外設是正常無故障的。
然后我又找到了另外一家的串口轉網口的設備,這回就沒有通訊故障了。這兩個串口設備的調試軟件不同,但是都可以實現RTU轉TCP的功能,而且我確定就是連續七個模塊都有通訊故障的那種設備在我拆包試機的時候是可用,且沒有故障的。所以我當時覺得是那七個模塊同時壞掉了,這實在是太難以置信了。
雖然七個模塊都是同一品牌型號,但是我是在不同店鋪薅羊毛下單的“拿樣”貨。理論上不可能同時壞啊。
我還特意換了幾條不同的網線來試,結果還是一樣,通訊時有時無。
再后來我把交換機上的網線全拔掉了,然后只接上電腦,一個PLC,串口轉網口模塊這三個設備,然后故障就消失了。
然后我就一邊看著監控,一邊把網線一條條插上,當我插上某一條網線時,故障又出現了。這條網線是連接另一個PLC的,好巧不巧兩個PLC里邊的程序一模一樣。
也就是說兩個同樣的PLC都在訪問那個串口模塊,導致了串口模塊不知道該響應那個主站才好,原因就是我在設置串口轉網口模塊的時候設置成了“簡易模式”,要是把模塊設置成“多主站模式”就可以和多個PLC通訊而沒有通訊故障了。
至于那個另一品牌一直沒有通訊故障的原因,應該是那個模塊默認集成了多主站通訊模式,所以才不會出現通訊故障。
說了這么多,不知道你有沒有仔細看,就是外部設備如果不能響應多主站通訊,那就會出現通訊故障。
你現在的PLC和通訊助手可以看做兩個主站,而你的從站沒辦法應對兩個主站的訪問,所以……
樓主留言:
謝謝打了那么多字,仔細看完了。我在測試階段,硬件構成和程序很簡潔,不到20條程序,一個PLC,一個儀器。也把串口調試助手的線拆掉,用PLC單獨給儀器發命令試過,還是收不到結果。等我摸索到了原因告訴你,哈哈哈==我明白了,因為儀表現在沒測試東西,所以讀過來的沒數據,真烏龍,哈哈哈哈哈