西門子S7PCPU包含一個集成的PROFINET接口,該接口除了具有PROFINETI/O功能外還具有ISOonTCP通訊功能。通過該集成以太網接口組態ISOonTCP通訊時,只能使用開放式通訊專用的功能塊。依據RFC1006的ISOonTCP協議,使用STEP7“通訊塊”的“標準庫”中提供了下列FB,用于通過用戶程序與符合以太網標準的通訊伙伴進行數據交換:
1.用于分配連接參數的UDT65“TCON_PAR”
2.用于建立連接的FB65“TCON”
3.用于終止連接的FB66 “TDISCON”
4.用于發送數據的FB63 “TSEND”
5.用于接收數據FB64 “TRCV”
要通過S7-PN CPU的集成PROFINET接口實現開放的ISOonTCp通信,不能再硬件組態中完成,必須在一個數據塊中指定每個連接的參數。使用“Open Communication Wizard”工具可以簡單明了地指定連接參數,接著該工具可將一個包含所有參數的UDT導出到您的STEP項目。使用該UDT可以建立含有連接描述的數據塊。隨后,需要使用通信功能塊FB65,FB66,FB63,FB64完成程序編寫。
UDT65:標準結構
block_length: WORD W#16#40 UDT 65的長度:64字節(固定)
ID: WORD W#16#0001 對連接的引用,您必須在各個帶有標識號的塊中指定參數的值。
connection_type :BYTE B#16#11 協議類型:B#16#11:TCP
active_est: BOOL FALSE 建立連接的方式的標識號:FALSE:被動建立
local_device_id: BYTE B#16#02
1).B#16#02:通過集成IE接口與CPU 315-2 PN/DP和317-2 PN/DP進行通信.
2). B#16#03:通過集成IE接口與CPU 315T-3 PN/DP、317T-3 PN/DP和319-3 PN/DP進行通信.
local_tsap_id_len: BYTE B#16#02 所使用的參數local_tsap_id的長度.
rem_subnet_id_len: BYTE B#16#00 該參數當前未使用。必須將B#16#00分配給它.
rem_staddr_len: BYTE B#16#00 遠程連接終端的地址長度:0: 未指定,即參數rem_staddr不相關.4: 參數rem_staddr中有效的IP地址.
rem_tsap_id_len: BYTE B#16#00 所使用的rem_tsap_id參數的長度;
next_staddr_len: BYTE B#16#00 使用了參數next_staddr的長度
local_tsap_id: BYTE的ARRAY [1..16] 本地端口號 B#16#7 /B#16#D0 ( 2000=7D0)
rem_subnet_id: BYTE的ARRAY [1..6] B#16#00 ... 該參數當前未使用。
rem_staddr: BYTE的ARRAY [1..6] B#16#00 ... 遠程連接端點的IP地址,192.168.002.003:
rem_tsap_id: BYTE的ARRAY [1..16] B#16#00 ... 本地端口號可能的數
next_staddr: BYTE的ARRAY [1..6] B#16#00 ... 相應(本地) CP的機架和插槽
spare: WORD W#16#0000 保留:分配0給該參數。
數據連接:FB65
兩個通信伙伴都調用FB 65 "TCON"來設置和建立通信連接。在這些參數中,您要指定哪個伙伴是主動通信傳輸點、哪個伙伴是被動通信傳輸點。
設置并建立連接后,CPU會自動對連接進行維護和監視。
如果連接中斷,如由于線路中斷或遠程通信伙伴而造成的中斷,主動伙伴會嘗試重新建立已組態的連接。在這種情況下,不必再次調用FB 65 "TCON"。
當調用FB 66 "TDISCON"或CPU進入STOP模式時,現有連接將被終止并刪除已組態的連接。要重新設置并再次建立該連接,必須再次調用FB 65 "TCON"
REQ | 上升沿觸發建立通信連接 |
ID | 連接的ID在UDT里設置 |
CONNECT | 與變量類型為UDT65的變量相連 |
DONE | 為1時,連接正確建立 |
BUSY | 為1時,正在建立連接 |
ERROR | 為1時,有故障發生 |
STATUS | 故障代碼 |
UDT65的整體結構:
發送數據:FB63 "TSEND"通過現有的通信連接發送數據
FB 63 "TSEND"異步工作;換句話說,它的處理需要多個FB調用。要啟動發送數據,請使用REQ = 1調用FB 63。
LEN:接收數據的長度
DATA:數據發送的區域
接收數據: FB 64 "TRCV"通過現有通信連接接收數據。
它指的是功能塊輸入所接收數據的區域。
接收區由下列兩個變量指定:
1.指向區域起始地址的指針
2.區域長度
區域長度由LEN參數使用的協議類型指定(如果LEN <> 0)或DATA參數長度信息指定(如果LEN = 0)。
LEN:接收數據的長度
DATA:數據接收的區域
斷開網絡連接FB66
FB 66 "TDISCON"是一種以異步方式工作的FB,這意味著它的作業處理要覆蓋若干個FB調用。為了開始終止連接作業,用REQ = 1調用FB 66。
在成功調用FB 66 "TDISCON"之后,為FB 65"TCON"指定的ID不再有效,從而不能將其用于發送或接收。
------------------------END-------------------
審核編輯 :李倩
-
plc
+關注
關注
5010文章
13275瀏覽量
463080 -
接口
+關注
關注
33文章
8577瀏覽量
151025 -
Profinet
+關注
關注
6文章
1166瀏覽量
23392
原文標題:Siemens PLC TCP連接控制
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論