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