200SMART的開放式通信(Open User Communication)包括TCP通信,UDP通信以及ISO-on-TCP通信,支持CPU固件版本V2.2以上,常用于與第三方支持相同協(xié)議的設(shè)備通信。
開放式通信(OUC)編程可以通過指令或者調(diào)用OUC的指令庫,通信雙方均要調(diào)用指令,通信數(shù)據(jù)量可以達(dá)到1024個字節(jié),這次我們將介紹OUC通信中的UDP通信
UDP通信是一種無連接的通信協(xié)議,無握手機(jī)制,協(xié)議可靠性較低。
UDP_CONNECT用于定義UDP服務(wù),并不建立連接,報文頭中包含數(shù)據(jù)長度,為消息流服務(wù),數(shù)據(jù)傳輸通過調(diào)用發(fā)送和接收指令來實(shí)現(xiàn)。
UDP通信的編程可以通過通信指令或者開放式用戶通信庫指令,如圖:
圖一:通信指令
圖二:開放式用戶通信庫指令
這里建議使用開放式用戶通信庫指令,編程和填寫參數(shù)都能簡單一點(diǎn)。
下面開始介紹一下UDP通信的流程:
1.注冊服務(wù)(關(guān)鍵!必須?。?/span>
2.交換數(shù)據(jù)(發(fā)送/接收)
3.斷開連接(一般不用)
4.分配庫存儲器(必須!建議選擇較大的地址避免沖突)
接下來介紹一下各個指令的每個引腳的含義
首先介紹UDP_CONNECT指令
參數(shù) | 數(shù)據(jù)類型 | 描述 |
EN | BOOL | 使能輸入 |
Req | BOOL | 如果 Req = TRUE,CPU 啟動連接操作。如果 Req = FALSE,則輸出顯示連接的當(dāng)前狀態(tài)。 |
ConnID | WORD | CPU 使用連接 ID (ConnID) 為其它指令標(biāo)識該連接。可能的 ConnID 范圍為 0 到 65534。 |
LocPort | WORD | LocPort 是本地設(shè)備上的端口號。本地端口號范圍為 1 到 49151。 |
Done | BOOL | 當(dāng)連接操作完成且沒有錯誤時,指令置位 Done 輸出。 |
Busy | BOOL | 當(dāng)連接操作正在進(jìn)行時,指令置位 Busy 輸出。 |
Error | BOOL | 當(dāng)連接操作完成但發(fā)生錯誤時,指令置位 Error 輸出。 |
Status | BYTE | 如果指令置位 Error 輸出,Status 輸出會顯示錯誤代碼。如果指令置位 Busy 或 Done 輸出,Status 為零(無錯誤)。 |
S7-200SMART的UDP通信,我們再對一些參數(shù)進(jìn)行一些補(bǔ)充解釋:
Req:啟動連接操作,可以使用Firstscan(SM0.1)或者其他沿信號觸發(fā)。
RemPort 和LocPort:本地端口號必須唯一,建議采用2000~5000,主動方和被動方的RemPort 和LocPort交叉對應(yīng)。
Done:完成標(biāo)志位,指定觸發(fā)后,一直保持為1,但無法確定伙伴是否存在。
ConnID:ConnID用于標(biāo)識通信連接,不同的ConnID不能重復(fù),且占用開放式通信資源最多16個,客戶端的ConnID與服務(wù)器的ConnID無關(guān)。
在UDP通信中,客戶端和服務(wù)器都需要通過調(diào)用UDP_CONNECT指令來定義UDP服務(wù)。
例如我設(shè)置本地客戶端ConnID設(shè)置為10,端口號設(shè)置為2000;
遠(yuǎn)程服務(wù)器ConnID設(shè)置為20,端口號設(shè)置為2001;如圖
這次關(guān)于200SMART的UDP通信就暫時介紹到這里,下一篇將繼續(xù)為大家介紹UDP的發(fā)送和接收指令,以及UDP通信程序編寫哦。
聯(lián)系客服