13821917697
承接電氣自動(dòng)化項(xiàng)目、電氣接線圖設(shè)計(jì)、IO點(diǎn)表、電氣元器件選型
級(jí)別: 工控俠客
![]() |
圖片:
![]()
圖片:
![]() 已經(jīng)正常運(yùn)行4年的一個(gè)項(xiàng)目,最近出現(xiàn)了問(wèn)題。1200做客戶端,與6個(gè)智能網(wǎng)關(guān)做modbus tcp通訊,讀取數(shù)據(jù),每個(gè)網(wǎng)關(guān)獨(dú)立IP,ping都正常。 近期運(yùn)行大概每10天左右,就會(huì)出現(xiàn)連接中斷的情況,PLC斷電重啟則能恢復(fù)正常。出現(xiàn)故障的時(shí)候報(bào)錯(cuò)誤代碼80C8,但是看了幫助沒(méi)怎么看懂。 有哪位朋友遇到過(guò)這種問(wèn)題嗎?或者有什么辦法可以 使程序自動(dòng)重啟。 |
---|---|
|
fczxjh
級(jí)別: 家園?
![]() |
可能出現(xiàn)通信擠兌的情況,就是同時(shí)有通信指令在進(jìn)行,時(shí)間長(zhǎng)或者次數(shù)多了可能會(huì)宕機(jī)。 建議你優(yōu)化下輪詢程序,比如每條指令做好充足的時(shí)間間隔,如果有站掉線,時(shí)間會(huì)延長(zhǎng)。把S7、TCP等同一網(wǎng)口的通信指令進(jìn)行輪詢,避開同時(shí)觸發(fā)。 我看你DONE\ERROR并沒(méi)有使用。實(shí)際官方的例程是有使用的。 當(dāng)REQ觸發(fā),DONE或者ERROR觸發(fā)后,REQ復(fù)位,下一個(gè)站REQ觸發(fā),DONE或者ERROR觸發(fā)后,下一個(gè)站REQ觸發(fā)...... 其次,單條指令的最大字?jǐn)?shù)好像是128個(gè),而你100個(gè)字也算多了,modscan測(cè)試少有讀100個(gè)地址穩(wěn)定不掉線的情況。一般二三十個(gè)是可以穩(wěn)定的。 地址讀多了或者讀到無(wú)效地址就會(huì)導(dǎo)致掉線,你可以減少單個(gè)指令讀取的字?jǐn)?shù),一個(gè)指令讀不完就分兩個(gè)指令來(lái)讀,且盡量是說(shuō)明書上的有效地址范圍。 [ 此帖被fczxjh在2025-04-15 11:23重新編輯 ] |
---|---|
本帖最近評(píng)分記錄: |
哈嘍123
不和不如自己的人爭(zhēng)高低論短長(zhǎng)!
級(jí)別: 略有小成
![]() |
二樓說(shuō)的比較懇切,多站的情況能輪詢盡量輪詢,一個(gè)結(jié)束再讀下一站,這樣做的好處避免出現(xiàn)擁堵造成掉站或者通訊異常,還有就是利用國(guó)產(chǎn)的網(wǎng)關(guān),可以不需要輪詢,直接干他就完了,網(wǎng)關(guān)提前把你需要讀的數(shù)在PLC端以GSD映射出IW/QW/DI/DO出來(lái),像用點(diǎn)位一樣懟起來(lái) |
---|---|
|