1,、S7-1200 的PROFINET 通信口
S7-1200 CPU 本體上集成了一個 PROFINET 通信口,支持以太網(wǎng)和基于 TCP/IP 的通信標準,。使用這個通信口可以實現(xiàn) S7-1200 CPU 與編程設(shè)備的通信,,與hmi觸摸屏的通信,以及與其它 CPU 之間的通信,。這個PROFINET 物理接口是支持10/100Mb/s的 RJ45口,,支持電纜交叉自適應(yīng),因此一個標準的或是交叉的以太網(wǎng)線都可以用于這個接口,。
2,、S7-1200支持的協(xié)議和最大的連接資源
S7-1200 CPU 的PROFINET 通信口支持以下通信協(xié)議及服務(wù)
TCP
ISO on TCP ( RCF 1006 )
S7 通信 (服務(wù)器端)
通信口所支持的最大通信連接數(shù)
S7-1200 CPU PROFINET 通信口所支持的最大通信連接數(shù)如下:
3個連接用于HMI (觸摸屏) 與 CPU 的通信
1個連接用于編程設(shè)備(PG)與 CPU 的通信
8個連接用于Open IE ( TCP, ISO on TCP) 的編程通信,使用T-block指令來實現(xiàn)
3個連接用于S7 通信的服務(wù)器端連接,,可以實現(xiàn)與S7-200,,S7-300以及S7-400的以太網(wǎng)S7通信
S7-1200 CPU可以同時支持以上15個通信連接,這些連接數(shù)是固定不變的,,不能自定義,。
TCP(Transport Connection Protocol)
TCP是由 RFC 793描述的標準協(xié)議,可以在通信對象間建立穩(wěn)定,、安全的服務(wù)連接,。如果數(shù)據(jù)用TCP協(xié)議來傳輸,傳輸?shù)男问绞菙?shù)據(jù)流,,沒有傳輸長度及信息幀的起始,、結(jié)束信息。在以數(shù)據(jù)流的方式傳輸時接收方不知道一 條信息的結(jié)束和下一條信息的開始。因此,,發(fā)送方必須確定信息的結(jié)構(gòu)讓接收方能夠識別 ,。在多數(shù)情況下TCP應(yīng)用了IP (Internet protocol) ,也就是“TCP/IP 協(xié)議”,, 它位于 ISO-OSI 參考模型的第四層,。
協(xié)議的特點:
與硬件綁定的高效通信協(xié)議
適合傳輸中等到大量的數(shù)據(jù) (<=8192 bytes)
為大多數(shù)設(shè)備應(yīng)用提供
– 錯誤恢復(fù)
– 流控制
– 可靠性
一個基于連接的協(xié)議
可以靈活的與支持TCP協(xié)議的第三方設(shè)備通信
具有路由兼容性
只可使用靜態(tài)數(shù)據(jù)長度
有確認機制
使用端口號進行應(yīng)用尋址
大多數(shù)應(yīng)用協(xié)議,如TELNET,、FTP都使用TCP
使用 SEND/RECEIVE 編程接口進行數(shù)據(jù)管理需要編程來實現(xiàn)
3,、硬件需求和軟件需求
硬件:
① S7-1200 CPU
② S7-300 CPU + CP343-1(支持S7 Client)
③ PC(帶以太網(wǎng)卡)
④ TP以太網(wǎng)電纜
軟件:
① STEP 7 Basic V10.5
② STEP 7 V5.4
一、ISO on TCP 通信
S7-1200 CPU 與S7-300/400 之間通過ISO on TCP 通信,,需要在雙方都建立連接,,連接對象選擇“Unspecified”。
所完成的通信任務(wù)為:
① S7-1200將DB3里的100個字節(jié)發(fā)送到S7-300的DB2中
② S7-300將輸入數(shù)據(jù)IB0發(fā)送給S7-1200的輸出數(shù)據(jù)區(qū)QB0,。
1,、S7-1200 CPU 的組態(tài)編程
組態(tài)編程過程與 S7-1200 CPU 之間的通信基本相似,這里簡單描述一下步驟:
① 使用STEP 7 Basic V10.5 軟件新建一個項目
在STEP 7 Basic 的“Portal View”中選擇 “Create new project”創(chuàng)建一個新項目
② 添加新設(shè)備
然后進入“Project view”,,在“Project tree”下雙擊“Add new device”,,在對話框中選擇所使用的S7-1200 CPU添加到機架上,命名為 plc_1,。
③ 為 PROFINET 通信口分配以太網(wǎng)地址
在“Device View”中點擊 CPU 上代表PROFINET 通信口的綠色小方塊,,在下方會出現(xiàn)PROFINET 接口的屬性,在 “Ethernet addresses”下分配IP 地址為 192.168.0.1 ,,子網(wǎng)掩碼為255.255.255.0,。
④ 在 S7-1200 CPU 中調(diào)用“TSEND_C”通信指令并配置連接參數(shù)和塊參數(shù)
在主程序中調(diào)用發(fā)送通信指令,進入“Project tree” > “ PLC_1”>“Program blocks”>“Main”主程序中,,從右側(cè)窗口“Instructions”> “Extended Instructions”>“Communications”下調(diào)用“TSEND_C”指令,,并選擇“Single Instance”生成背景 DB塊。然后單擊指令塊下方的“下箭頭”,,使指令展開顯示所有接口參數(shù),。
然后,創(chuàng)建并定義發(fā)送數(shù)據(jù)區(qū) DB 塊,。通過“Project tree”>“ PLC_1”> “Program blocks” >“Add new block” ,,選擇 “Data block”創(chuàng)建 DB 塊,選擇絕對尋址,,點擊“OK”鍵,,定義發(fā)送數(shù)據(jù)區(qū)為 100個字節(jié)的數(shù)組。
根據(jù)所使用的參數(shù)創(chuàng)建符號表,。
配置連接參數(shù),。
配置塊接口參數(shù),。
⑤ 調(diào)用“TRCV”通信指令并配置塊參數(shù)。
因為與發(fā)送使用的是同一連接,,所以使用的是不帶連接的發(fā)送指令“TRCV”,,連接“ID”使用的也是“TSEND_C”中的“Connection ID”號。
2,、S7-300 CPU 的ISO on TCP通信的組態(tài)編程
① 使用STEP 7 軟件新建一個項目并進行硬件組態(tài)
創(chuàng)建完新項目,,在項目的窗口下,右鍵菜單里,,選擇“Insert New Object”>“SIMATIC 300 Station” ,插入一個S7-300站,。
為了編程方便,,我們使用時鐘脈沖激活通信任務(wù),在CPU的“Properties”>“Cycle/Clock Memory”中設(shè)置,。
每一個時鐘位都按照不同的周期/頻率在0和1之間切換變化,。
② 配置以太網(wǎng)模塊
進入“HW Config”中,組態(tài)所使用的 CPU 及“CP343-1”模板,。并新建以態(tài)網(wǎng) Ethernet (1) ,,配置“CP343-1”模板IP 地址為:192.168.0.2,子網(wǎng)掩碼為: 255.255.255.0 ,。配置完硬件組態(tài)及屬性,,編譯存盤并下載所有硬件組態(tài)。
③ 網(wǎng)絡(luò)組態(tài)
打開 “NetPro” 配置網(wǎng)絡(luò),,選中 CPU,,在連接列表里建立新的連接并選擇連接對象和通信協(xié)議。這時會跳出通用信息,。
然后,,進入“Addresses”配置通信雙方的IP 地址及TSAP 地址。
配置完連接并編譯存盤后,,將網(wǎng)絡(luò)組態(tài)下載到CPU300中,。
④ 軟件編程
在OB1中,從“Libraries”>“SIMATIC_NET_CP”>“CP300”下,,調(diào)用FC5(AG_SEND),、FC6(AG_RECV)通信指令。創(chuàng)建接收數(shù)據(jù)區(qū)為 DB2,,定義成100個字節(jié)的數(shù)組,。
CALL “ AG_RECV” //調(diào)用FC6
ID :=1 // 連接號,要與連接配置列表中一致,,見圖8
LADDR :=W#16#100 //CP的地址,,要與配置中一致,,見圖8
RECV :=P#DB2.DBX 0.0 BYTE 100 //接收數(shù)據(jù)區(qū)
NDR :=M10.0 //為1時,接收到新數(shù)據(jù)
ERROR :=M10.1 //為1時,,有故障發(fā)生
STATUS :=MW12 //狀態(tài)代碼
LEN :=MW14 //接收到的實際數(shù)據(jù)長度
CALL “AG_SEND” //調(diào)用FC5
ACT :=M0.2 //為1時,,激活發(fā)送任務(wù)
ID :=1 // 連接號,要與連接配置中一致
LADDR :=W#16#100 //CP的地址,,要與配置中一致
SEND :=IB0 //發(fā)送數(shù)據(jù)區(qū)
LEN :=1 //發(fā)送數(shù)據(jù)的長度
DONE :=M10.2 //為1時,,發(fā)送完成
ERROR :=M10.3 //為1時,有故障發(fā)生
STATUS :=MW16 //狀態(tài)代碼
3,、監(jiān)控通信結(jié)果
下載S7-1200和S7-300中的所有組態(tài)及程序,,監(jiān)控通信結(jié)果。
在S7-1200 CPU中向DB3中寫入數(shù)據(jù):“11”,、“22”,、“33”,則在S7-300中的DB2塊收到數(shù)據(jù)也為“11”,、“22”,、“33”。
在S7-300 CPU中,,將“2#1111_1111”寫入IB0,,則在S7-1200 CPU中QB0中收到的數(shù)據(jù)也為“2#1111_1111”。
二,、TCP 通信
使用TCP 協(xié)議通信,,除了連接參數(shù)的定義不同,通信雙方的其它組態(tài)及編程與前面的ISO on TCP 協(xié)議通信完全相同,。
S7-1200 CPU中,,使用 TCP 協(xié)議與S7-300通信時,PLC_1的連接參數(shù),,如圖12所示,。通信伙伴 S7-300 的連接參數(shù)。