Siemens PLC TCP連線控制

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:標準結構

Siemens PLC TCP連線控制

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”

Siemens PLC TCP連線控制

REQ

上升沿觸發建立通訊連線

ID

連線的ID 在UDT裡設定

CONNECT

與變數型別為UDT65的變數相連

DONE

為1時,連線正確建立

BUSY

為1時,正在建立連線

ERROR

為1時,有故障發生

STATUS

故障程式碼

Siemens PLC TCP連線控制

UDT65的整體結構:

Siemens PLC TCP連線控制

傳送資料:FB63 “TSEND”透過現有的通訊連線傳送資料

FB 63 “TSEND”非同步工作;換句話說,它的處理需要多個FB呼叫。要啟動傳送資料,請使用REQ = 1呼叫FB 63。

Siemens PLC TCP連線控制

LEN:接收資料的長度

DATA:資料傳送的區域

Siemens PLC TCP連線控制

Siemens PLC TCP連線控制

接收資料: FB 64 “TRCV”透過現有通訊連線接收資料。

它指的是功能塊輸入所接收資料的區域。

接收區由下列兩個變數指定:

1。

指向區域起始地址的指標

2。

區域長度

區域長度由LEN引數使用的協議型別指定(如果LEN <>>

Siemens PLC TCP連線控制

LEN:接收資料的長度

DATA:資料接收的區域

Siemens PLC TCP連線控制

Siemens PLC TCP連線控制

斷開網路連線FB66

FB 66 “TDISCON”是一種以非同步方式工作的FB,這意味著它的作業處理要覆蓋若干個FB呼叫。為了開始終止連線作業,用REQ = 1呼叫FB 66。

在成功呼叫FB 66 “TDISCON”之後,為FB 65“TCON”指定的ID不再有效,從而不能將其用於傳送或接收。

Siemens PLC TCP連線控制

Siemens PLC TCP連線控制