1.0 它是一種開放式通信協(xié)議,只要適用于與第三方設(shè)備的通信連接,如PLC,HMI,遠(yuǎn)程IO等第三方設(shè)備。
西門子TCP通信協(xié)議的定義
2.0 TSEND_C: 通過以太網(wǎng)發(fā)送數(shù)據(jù),有效性以下“TSEND_C”說明適用于 S7-1200 CPU 固件版本 V4.0 及更低版本。
說明TSEND_C”指令設(shè)置并建立 TCP 或 ISO-on-TCP 通信連接。設(shè)置并建立連接后,CPU 會(huì)自動(dòng)保持和監(jiān)視該連接。參數(shù) CONNECT 中指定的連接描述用于設(shè)置通信連接。
該指令異步執(zhí)行且具有以下功能:
2.1設(shè)置并建立通信連接:
通過 CONT=1 設(shè)置并建立通信連接。連接成功建立后,參數(shù) DONE 將置位為“1”并持續(xù)一個(gè)周期。CPU 進(jìn)入 STOP 模式后,將終止現(xiàn)有連接并移除已設(shè)置的連接。要再次設(shè)置并建立該連接,需要再次執(zhí)行“TSEND_C”。有關(guān)可能的通信連接數(shù)量信息,請(qǐng)參見 CPU 的技術(shù)規(guī)范。
2.2 通過現(xiàn)有通信連接發(fā)送數(shù)據(jù):
通過參數(shù) DATA 可指定發(fā)送區(qū)。這包括要發(fā)送數(shù)據(jù)的地址和長度。請(qǐng)勿在 DATA 參數(shù)中使用數(shù)據(jù)類型為 BOOL 或 Array of BOOL 的數(shù)據(jù)區(qū)。如果在參數(shù) DATA 中使用純符號(hào)值,則 LEN 參數(shù)的值必須為“0”。
2.3 在參數(shù) REQ 中檢測(cè)到上升沿時(shí)執(zhí)行發(fā)送作業(yè)。使用參數(shù) LEN 可指定通過一個(gè)發(fā)送作業(yè)發(fā)送的最大字節(jié)數(shù)。發(fā)送數(shù)據(jù)(在參數(shù) REQ 的上升沿)時(shí),參數(shù) CONT 的值必須為“1”才能建立或保持連接。在發(fā)送作業(yè)完成前不允許編輯要發(fā)送的數(shù)據(jù)。如果發(fā)送作業(yè)成功執(zhí)行,則參數(shù) DONE 將設(shè)置為“1”。參數(shù) DONE 的信號(hào)狀態(tài)“1”并不能確定通信伙伴已讀取所發(fā)送的數(shù)據(jù)。
2.4 終止通信連接
參數(shù) CONT 置位為“0”時(shí),即使當(dāng)前進(jìn)行的數(shù)據(jù)傳送尚未完成,也將終止通信連接。但如果對(duì)“TSEND_C”使用了已組態(tài)連接,將不會(huì)終止連接。
將 COM_RST 參數(shù)設(shè)置為“1”時(shí),可以隨時(shí)重置當(dāng)前建立的連接或當(dāng)前數(shù)據(jù)傳輸。這會(huì)終止現(xiàn)有通信連接并建立新連接。如果再次執(zhí)行該指令時(shí)正在傳送數(shù)據(jù),可能會(huì)導(dǎo)致數(shù)據(jù)丟失。
要在執(zhí)行 (DONE = 1) 后再次啟用“TSEND_C”,使用 REQ = 0 調(diào)用一次指令。
說明
編程連接時(shí)的技術(shù)支持
如果在程序塊中選擇通信指令 TCON、TSEND_C 或 TRCV_C 創(chuàng)建類型為 TCP、UDP 或 ISO-on-TCP 的連接,并為這些連接分配參數(shù),則可使用連接參數(shù)分配支持功能。
在程序編輯器的巡視窗口中,可進(jìn)行連接參數(shù)分配。
3.0 建立TCP網(wǎng)絡(luò)需要的軟硬件明細(xì)如下:
3.0.1.兩臺(tái)1200系列PLC控制器,版本必須在4.0左右,筆者的是兩臺(tái)1215DCDCDC控 制器(實(shí)際可以不需要硬件,使用TIA的仿真可以完成數(shù)據(jù)傳輸);
3.0.2 博途TIA軟件一個(gè)(可以是V14,V15/V16)都可以;
3.0.3 筆記本或臺(tái)式電腦一臺(tái);
3.0.4 以太網(wǎng)線一條。
滿足以上條件才可以組建TCP協(xié)議網(wǎng)絡(luò)。
4.0 組態(tài)兩臺(tái)PLC硬件及網(wǎng)絡(luò)連接
4..0.1 組態(tài)PLC硬件如下圖所示:
組態(tài)1#PLC打開“OB1”建立“一個(gè)全局?jǐn)?shù)據(jù)塊”定義為“發(fā)送”數(shù)據(jù),取消“優(yōu)化訪問塊”。如下圖所示:
按以上方式方法建立1#2#PLC的“發(fā)送”“接收”數(shù)據(jù)塊。
4.0.2 .1#PLC的指令塊“TSEND_C”(正在建立連接和發(fā)送指令)的組態(tài),首先把“TSEND_ C”拖拽到“OB1”程序中,點(diǎn)擊數(shù)據(jù)塊中“藍(lán)色小按鈕”彈出組態(tài)對(duì)話框,如下圖所示:
4.0.3.1#PLC在程序“OB1”中“TSEND_C”指令塊管腳的定義如下圖:
5.0. 組態(tài)2#PLC,拖拽指令塊“TRCV_C”到“OB1”中,點(diǎn)擊指令塊中藍(lán)色圖標(biāo)組態(tài)2# PLC數(shù)據(jù)連接,如下圖所示:
5.0.1 2#PLC接收指令塊管腳定義如下圖所示:
忘記標(biāo)“CONT”管腳定義:它控制著通信數(shù)據(jù)連接狀態(tài),以2進(jìn)制來表示,“1”表示通信進(jìn)行時(shí),“0”表示通信斷開時(shí)。其實(shí)PLC1不光做發(fā)送,也可以做接收,同理,PLC2也不光可以接收數(shù)據(jù),還可以發(fā)送數(shù)據(jù),它們的發(fā)送接收方式方法同我在這里講的一樣,只不過把順序倒過來而已,這里不再闡述。
以上簡單介紹西門子TIA平臺(tái)上兩臺(tái)1200PLC/TCP通訊,對(duì)想學(xué)西門子PLC通訊的朋友多一份參考,由于時(shí)間倉促及作者自身水平受限,文章中難免有介紹不完善或者錯(cuò)誤的地方,望廣大朋友批評(píng)指正,小的在這感謝了!
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5427瀏覽量
171820 -
通信協(xié)議
+關(guān)注
關(guān)注
28文章
886瀏覽量
40317 -
plc
+關(guān)注
關(guān)注
5012文章
13308瀏覽量
463714 -
西門子
+關(guān)注
關(guān)注
94文章
3041瀏覽量
115956 -
TCP
+關(guān)注
關(guān)注
8文章
1357瀏覽量
79107
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論