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