ayusecret
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 190 個(gè)
工控威望: 269 點(diǎn)
下載積分: 828 分
在線時(shí)間: 76(小時(shí))
注冊(cè)時(shí)間: 2021-10-31
最后登錄: 2025-01-13
查看ayusecret的 主題 / 回貼
樓主  發(fā)表于: 2022-06-09 08:31
最近基于Python寫了一些測(cè)試MC協(xié)議的代碼,想測(cè)測(cè)斷線重連的功能,發(fā)現(xiàn)拔了網(wǎng)線后再插上,用原來(lái)的套接字無(wú)法與PLC通訊(下斷點(diǎn)調(diào)也無(wú)法實(shí)現(xiàn)).監(jiān)控PLC網(wǎng)絡(luò)狀態(tài)仍然處于連接中(與之前的套接字連接).如果我在Python程序內(nèi)重新以一個(gè)新的套接字去嘗試連接,會(huì)回復(fù)目標(biāo)計(jì)算機(jī)積極拒絕.這樣我只能復(fù)位PLC才能斷開PLC的連接狀態(tài),這在實(shí)際應(yīng)用應(yīng)該是不允許的.后面再Gxword3內(nèi)配置參數(shù),讓PLC自己10s后監(jiān)視生存,再反復(fù)3次監(jiān)視確認(rèn)自動(dòng)斷開.想請(qǐng)教各位在用上位機(jī)是如何實(shí)現(xiàn)斷線重連的,又或者是即使無(wú)重連功能,重新初始化是如何連上PLC的
13821917697
承接電氣自動(dòng)化項(xiàng)目、電氣接線圖設(shè)計(jì)、IO點(diǎn)表、電氣元器件選型
級(jí)別: 工控俠客
精華主題: 0
發(fā)帖數(shù)量: 761 個(gè)
工控威望: 3149 點(diǎn)
下載積分: 13480 分
在線時(shí)間: 1122(小時(shí))
注冊(cè)時(shí)間: 2019-12-26
最后登錄: 2025-01-13
查看13821917697的 主題 / 回貼
1樓  發(fā)表于: 2022-06-09 11:00
圖片:
Python的不太懂啊,C#最近剛好做了個(gè)這么功能可以跟你說(shuō)說(shuō)思路。首先套接字?jǐn)嗑之后是不能沿用原先的連接的,我這里做的方式是重新new了一下。用一個(gè)新的連接。建立一個(gè)bool變量作為標(biāo)志位,初次連接成功之后,標(biāo)志位置反,開始正常工作。如果斷開連接,try里面的正常工作指令會(huì)報(bào)錯(cuò)跳到catch,這里我們把套接字dispose全部釋放,并且標(biāo)志位初始化。然后就又開始重新連接了。就是這樣