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