Siemens PLC TCP連線控制
西門子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 <>>
LEN:接收資料的長度
DATA:資料接收的區域
斷開網路連線FB66
FB 66 “TDISCON”是一種以非同步方式工作的FB,這意味著它的作業處理要覆蓋若干個FB呼叫。為了開始終止連線作業,用REQ = 1呼叫FB 66。
在成功呼叫FB 66 “TDISCON”之後,為FB 65“TCON”指定的ID不再有效,從而不能將其用於傳送或接收。