lucas
級別: 家園常客
|
如圖,怎么解釋SD10681 與SD10682 這2個信號? 開放請求,是誰請求誰? 為什么用開放請求信號 去關閉端口? 反而開放請求信號為OFF時才能開啟端口 難道是SD10681 是OFF時請求開放,ON時關閉請求? 但是貌似又不是這么一回事: [ 此帖被lucas在2019-09-11 16:28重新編輯 ] |
---|---|
|
tkggtdkjpl
工欲善其事,必先利其器!
級別: 網(wǎng)絡英雄
|
一個是自己的狀態(tài),一個是對方的狀態(tài) 因為PLC要么做服務器要么做客戶端 |
|
---|---|---|
|
lucas
級別: 家園常客
|
那哪個是自己的?哪個是對方的? |
---|---|
|
lucas
級別: 家園常客
|
socket通訊照著手冊上寫就沒問題,但是道理要弄明白啊 |
---|---|
|
zmrs163
級別: 家園常客
|
原理很簡單,可以去看下TCP的書。SD10681是PLC發(fā)起連接請求時變?yōu)镺N,如果PLC是客戶端由CLOSE指令OFF。如果是服務器就一直為ON。SD10680代表實際的連接狀態(tài),TCP三次握手之后為ON,四次揮手之后為OFF。實際的連接可以由服務器或者客戶端發(fā)起斷開,PLC發(fā)起就是CLOSE,服務器那端斷開其實也就是類似于close的一個函數(shù)而已,這時SD10680就是自動OFF。 |
---|---|
本帖最近評分記錄: |
lucas
級別: 家園常客
|
有道理,假如PLC是客戶端,那么SD10681是請求服務器打開端口嗎? 別外三次握手是哪三次? 四次揮手又是哪4次?(已經(jīng)百度,上面有很多解釋,我先看看) |
---|---|
|
zmrs163
級別: 家園常客
|
如果PLC是客戶端SD10681在OPEN指令之后為ON,CLOSE指令之后為OFF。你那個程序的意思是,如果服務器發(fā)起斷開,那么SD10680會有一個下降沿,然后PLC就使用CLOSE復位SD10681,以便于下一次打開,否則無法再次使用OPEN指令 |
---|---|
|
zmrs163
級別: 家園常客
|
補充一下,TCP的斷開類似于打電話,SD10680的OFF意味著對方掛斷了電話,那么我也需要掛電話,SD10681的OFF意味著我也掛掉了電話。而SD10681的ON就好比我打電話打出去,SD10680的ON意味著電話打通了 |
---|---|
本帖最近評分記錄: |
lucas
級別: 家園常客
|
嗯嗯,謝謝解答! 終于遇到一個能講通的答案! 朋友看來你對TCP通訊很了解 |
---|---|
|