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