西門子S7PCPU包含一個(gè)集成的PROFINET接口,該接口除了具有PROFINETI/O功能外還具有ISOonTCP通訊功能。通過(guò)該集成以太網(wǎng)接口組態(tài)ISOonTCP通訊時(shí),只能使用開(kāi)放式通訊專用的功能塊。依據(jù)RFC1006的ISOonTCP協(xié)議,使用STEP7“通訊塊”的“標(biāo)準(zhǔn)庫(kù)”中提供了下列FB,用于通過(guò)用戶程序與符合以太網(wǎng)標(biāo)準(zhǔn)的通訊伙伴進(jìn)行數(shù)據(jù)交換:
1.用于分配連接參數(shù)的UDT65“TCON_PAR”
2.用于建立連接的FB65“TCON”
3.用于終止連接的FB66 “TDISCON”
4.用于發(fā)送數(shù)據(jù)的FB63 “TSEND”
5.用于接收數(shù)據(jù)FB64 “TRCV”
要通過(guò)S7-PN CPU的集成PROFINET接口實(shí)現(xiàn)開(kāi)放的ISOonTCp通信,不能再硬件組態(tài)中完成,必須在一個(gè)數(shù)據(jù)塊中指定每個(gè)連接的參數(shù)。使用“Open Communication Wizard”工具可以簡(jiǎn)單明了地指定連接參數(shù),接著該工具可將一個(gè)包含所有參數(shù)的UDT導(dǎo)出到您的STEP項(xiàng)目。使用該UDT可以建立含有連接描述的數(shù)據(jù)塊。隨后,需要使用通信功能塊FB65,FB66,FB63,FB64完成程序編寫。
UDT65:標(biāo)準(zhǔn)結(jié)構(gòu)

block_length: WORD W#16#40 UDT 65的長(zhǎng)度:64字節(jié)(固定)
ID: WORD W#16#0001 對(duì)連接的引用,您必須在各個(gè)帶有標(biāo)識(shí)號(hào)的塊中指定參數(shù)的值。
connection_type :BYTE B#16#11 協(xié)議類型:B#16#11:TCP
active_est: BOOL FALSE 建立連接的方式的標(biāo)識(shí)號(hào):FALSE:被動(dòng)建立
local_device_id: BYTE B#16#02
1).B#16#02:通過(guò)集成IE接口與CPU 315-2 PN/DP和317-2 PN/DP進(jìn)行通信.
2). B#16#03:通過(guò)集成IE接口與CPU 315T-3 PN/DP、317T-3 PN/DP和319-3 PN/DP進(jìn)行通信.
local_tsap_id_len: BYTE B#16#02 所使用的參數(shù)local_tsap_id的長(zhǎng)度.
rem_subnet_id_len: BYTE B#16#00 該參數(shù)當(dāng)前未使用。必須將B#16#00分配給它.
rem_staddr_len: BYTE B#16#00 遠(yuǎn)程連接終端的地址長(zhǎng)度:0: 未指定,即參數(shù)rem_staddr不相關(guān).4: 參數(shù)rem_staddr中有效的IP地址.
rem_tsap_id_len: BYTE B#16#00 所使用的rem_tsap_id參數(shù)的長(zhǎng)度;
next_staddr_len: BYTE B#16#00 使用了參數(shù)next_staddr的長(zhǎng)度
local_tsap_id: BYTE的ARRAY [1..16] 本地端口號(hào) B#16#7 /B#16#D0 ( 2000=7D0)
rem_subnet_id: BYTE的ARRAY [1..6] B#16#00 ... 該參數(shù)當(dāng)前未使用。
rem_staddr: BYTE的ARRAY [1..6] B#16#00 ... 遠(yuǎn)程連接端點(diǎn)的IP地址,192.168.002.003:
rem_tsap_id: BYTE的ARRAY [1..16] B#16#00 ... 本地端口號(hào)可能的數(shù)
next_staddr: BYTE的ARRAY [1..6] B#16#00 ... 相應(yīng)(本地) CP的機(jī)架和插槽
spare: WORD W#16#0000 保留:分配0給該參數(shù)。
數(shù)據(jù)連接:FB65
兩個(gè)通信伙伴都調(diào)用FB 65 "TCON"來(lái)設(shè)置和建立通信連接。在這些參數(shù)中,您要指定哪個(gè)伙伴是主動(dòng)通信傳輸點(diǎn)、哪個(gè)伙伴是被動(dòng)通信傳輸點(diǎn)。
設(shè)置并建立連接后,CPU會(huì)自動(dòng)對(duì)連接進(jìn)行維護(hù)和監(jiān)視。
如果連接中斷,如由于線路中斷或遠(yuǎn)程通信伙伴而造成的中斷,主動(dòng)伙伴會(huì)嘗試重新建立已組態(tài)的連接。在這種情況下,不必再次調(diào)用FB 65 "TCON"。
當(dāng)調(diào)用FB 66 "TDISCON"或CPU進(jìn)入STOP模式時(shí),現(xiàn)有連接將被終止并刪除已組態(tài)的連接。要重新設(shè)置并再次建立該連接,必須再次調(diào)用FB 65 "TCON"

| REQ | 上升沿觸發(fā)建立通信連接 |
| ID | 連接的ID在UDT里設(shè)置 |
| CONNECT | 與變量類型為UDT65的變量相連 |
| DONE | 為1時(shí),連接正確建立 |
| BUSY | 為1時(shí),正在建立連接 |
| ERROR | 為1時(shí),有故障發(fā)生 |
| STATUS | 故障代碼 |

UDT65的整體結(jié)構(gòu):

發(fā)送數(shù)據(jù):FB63 "TSEND"通過(guò)現(xiàn)有的通信連接發(fā)送數(shù)據(jù)
FB 63 "TSEND"異步工作;換句話說(shuō),它的處理需要多個(gè)FB調(diào)用。要啟動(dòng)發(fā)送數(shù)據(jù),請(qǐng)使用REQ = 1調(diào)用FB 63。

LEN:接收數(shù)據(jù)的長(zhǎng)度
DATA:數(shù)據(jù)發(fā)送的區(qū)域


接收數(shù)據(jù): FB 64 "TRCV"通過(guò)現(xiàn)有通信連接接收數(shù)據(jù)。
它指的是功能塊輸入所接收數(shù)據(jù)的區(qū)域。
接收區(qū)由下列兩個(gè)變量指定:
1.指向區(qū)域起始地址的指針
2.區(qū)域長(zhǎng)度
區(qū)域長(zhǎng)度由LEN參數(shù)使用的協(xié)議類型指定(如果LEN <> 0)或DATA參數(shù)長(zhǎng)度信息指定(如果LEN = 0)。

LEN:接收數(shù)據(jù)的長(zhǎng)度
DATA:數(shù)據(jù)接收的區(qū)域


斷開(kāi)網(wǎng)絡(luò)連接FB66
FB 66 "TDISCON"是一種以異步方式工作的FB,這意味著它的作業(yè)處理要覆蓋若干個(gè)FB調(diào)用。為了開(kāi)始終止連接作業(yè),用REQ = 1調(diào)用FB 66。
在成功調(diào)用FB 66 "TDISCON"之后,為FB 65"TCON"指定的ID不再有效,從而不能將其用于發(fā)送或接收。


------------------------END-------------------
審核編輯 :李倩
-
plc
+關(guān)注
關(guān)注
5052文章
14823瀏覽量
488734 -
接口
+關(guān)注
關(guān)注
33文章
9603瀏覽量
157676 -
Profinet
+關(guān)注
關(guān)注
9文章
2354瀏覽量
28359
原文標(biāo)題:Siemens PLC TCP連接控制
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
實(shí)現(xiàn)設(shè)備數(shù)據(jù)統(tǒng)一采集?從配置Profinet網(wǎng)關(guān)模塊開(kāi)始
淘寶平臺(tái)獲取店鋪商品列表API接口實(shí)現(xiàn)詳解
Modbus RTU轉(zhuǎn)Profinet網(wǎng)關(guān)接在線循環(huán)Na離子實(shí)現(xiàn)PLC讀取溫度值
“絕絕子”寶藏方案:Modbus轉(zhuǎn)Profinet網(wǎng)關(guān),讓驅(qū)動(dòng)器“逆天改命”
當(dāng)Modbus遇上Profinet:閥門通信的“破圈”神助攻
Profinet轉(zhuǎn)RS485-Modbus RTU通信案例詳解
PROFINET接口實(shí)現(xiàn)開(kāi)放的ISOonTCp通信
評(píng)論