勤工儉學
deep throat
級別: 論壇先鋒
|
參數配置如圖。 程序是手冊里的例程。 與no.2設備通信時,用調試助手發現可以連接得上,sd10680.1接通。 但是置位M2000發送時數據會出現c1b1的報警,接收也會出現c1b1報警。 手冊里的內容,C1B1H 指定連接的開放處理未結束。 處理方法,進行開放處理,并在開放結束后進行通信。 plc作為服務器只是偵聽,被動等待鏈接,不需要像客戶端那樣主動要求連接。 有個問題,上圖參數配置中,plc與no.2設備連接時,plc是作為服務器,no.2設備是作為客戶端吧? 20200114 no.2設備連接改為用unpassive方式,和調試助手連上了,無論收發都會出現上述報警。 終于找到問題了。還是自己沒有仔細看好手冊,沒有對指令理解好。 上述指令通道2時應該選擇k2,而不是k1,該參數的取值范圍是從k1~k8。我一開始以為指令輸入參數中的“u0”就可以表示通道了,其實這個也是錯的。 為什么報錯指定連接的開放處理未結束,其實就是我一直對通道1進行操作,而通道1中plc是作為客戶端的,需要主動連接。 這也解釋中間遇到其他因為這個錯誤而造成的現象。 1:中間遇到如果no.1設備連上后,那么與no.2設備進行連接后通信收發是不會報錯的,no.1連上后,已經打開完成了,no.2程序中使用收發指令不會出現開放處理未結束報警。 2:當no.1和no.2都連上后,與no.2的數據發送都出現在no.1中。 感謝給予幫助的網友! [ 此帖被勤工儉學在2020-01-14 10:47重新編輯 ] |
---|---|
本帖最近評分記錄: |
蒲城風信子
微信QQ1733946494
級別: 家園常客
|
你自己不是已經選擇了嗎 是的 與通道1連接 PLC做的是客戶端。與通道2連接 PLC做的是服務端 |
---|---|
本帖最近評分記錄: |
勤工儉學
deep throat
級別: 論壇先鋒
|
我不明白的是為什么還會出現報警,報警代碼的內容是指定連接的開放處理未結束。這時候plc作為服務器應該是一直偵聽,偵聽到no.2的連接請求后置位sd10680.1。然后就可以進行數據的收發。不明白為什么報警。是不是我哪里沒有理解到位,導致錯誤了? |
---|---|
|
999感冒靈
級別: 略有小成
|
近期玩5U以太網功能 你很多東西道搞錯了,有點懵哦。。SD10680.0才是通道1 SD10680.1是通道2 。。你的以太網也沒有設服務器的端口。 你現在兩個通道PLC道是客戶端 說錯了通道2是服務器 沒有要用Fullpassive的 [ 此帖被999感冒靈在2020-01-13 23:24重新編輯 ] |
---|---|
|
勤工儉學
deep throat
級別: 論壇先鋒
|
sd10680.0是給no.1連接設備用的,也就是通道1。sd10680.2是給no.2連接設備用的,也就是通道2。這樣理解對嗎? 可以從哪里設置以太網服務器端口?上面參數配置的192.168.3.250:60002為什么不是服務器端口? 我也是這幾天開始弄的,有挺多不了解的地方。問題可能比較低級,不要介意。 |
---|---|
|
999感冒靈
級別: 略有小成
|
圖片:
玩了 套接字TCP/UDP 客戶端 服務器 ..Modbus TCP 和西門子200Smrat 通訊 |
---|---|
|
999感冒靈
級別: 略有小成
|
不是哦 SD10680.0-7 對應的是 1-8個通道 。那個我說錯了 通道2確實是服務器,不過沒必要用Fullpassive這樣方式,做服務器還要知道客戶端IP和端口太煩,直接用Unpassive |
---|---|
本帖最近評分記錄: |
勤工儉學
deep throat
級別: 論壇先鋒
|
厲害! 我通道2連接是連上了,只是收發數據的時候會出現報錯。c1b1的報警,說是開放處理未結束,難道是客戶端側的no.2設備出問題了?開放處理未結束,是不是建立連接時,缺少某一個握手信號? |
---|---|
|
勤工儉學
deep throat
級別: 論壇先鋒
|
我明天試一下unpassive的方式看看,我現在對tcp/ip通信還不是很熟悉。 |
---|---|
|
999感冒靈
級別: 略有小成
|
你和PLC通道2#服務器 握手的 不是網絡調試軟件做客戶端嗎 直接PC網絡軟件選好Clinet 輸入好 IP和端口 點連接 連接按鍵有反應就是握手成功 |
---|---|
本帖最近評分記錄: |
zoujiasheng
同是天涯淪落人
級別: 略有小成
|
問一下,5U作為客戶端,可以MODEBUS/TCP同時與兩臺機器人進行通信嗎,機器人端都作為服務器端 。不是socket,走的通信協議 |
|
---|---|---|
|