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