詳細(xì)介紹
西門子CPUST40標(biāo)準(zhǔn)型 SMARTST40通信是S7系列PLC基于MPI、PROFIBUS,、ETHERNET網(wǎng)絡(luò)的一種優(yōu)化的通信協(xié)議,主要用于S7300/400PLC之間的通信,。SIMATIC S7- PN CPU包含一個集成的 PROFINET 接口,,該接口除了具有 PROFINET I/O功能,,還可以進(jìn)行基于以太網(wǎng)的S7通信。SIMATIC S7- PN CPU支持無確認(rèn)數(shù)據(jù)交換,、確認(rèn)數(shù)據(jù)交換和單邊訪問功能,。功能塊的調(diào)用如圖1、圖2所示,。
塊 S7-400 | 塊 S7-300 | 描述 | 簡要描述 |
SFB 8 | FB 8 | 用于發(fā)送 | 無確認(rèn)的快速數(shù)據(jù)交換,,發(fā)送數(shù)據(jù)后無對方接收確認(rèn)。 |
SFB 9 | FB 9 | 用于接收 | |
SFB 12 | FB 12 | 用于發(fā)送 | 確認(rèn)數(shù)據(jù)交換,,發(fā)送數(shù)據(jù)后有對方接收確認(rèn),。 |
SFB 13 | FB 13 | 用于接收 | |
SFB 14 | FB 14 | 讀數(shù)據(jù) | 單邊編程讀訪問。 |
SFB 15 | FB 15 | 寫數(shù)據(jù) | 單邊編程寫訪問,。 |
表1
圖1
西門子6GK7243-1EX01-0XE0
圖2
要通過 S7-PN CPU 的 集成PROFINET 接口實(shí)現(xiàn)S7 通信,,需要在硬件組態(tài)中建立連接。
2. 硬件及網(wǎng)絡(luò)組態(tài)
CPU采用兩個315-2PN/DP,,使用以太網(wǎng)進(jìn)行通信,。
在STEP7中創(chuàng)建一個新項(xiàng)目,項(xiàng)目名稱為PN S7,。插入兩個S7-300站,,在硬件組態(tài)中,分別插入CPU 315-2 PN/DP,。如圖3所示,。
圖3
新建以太網(wǎng),打開“NetPro”設(shè)置網(wǎng)絡(luò)參數(shù),,選中CPU,,在連接列表中建立新的連接。如圖4所示,。
圖4
然后雙擊該連接,,設(shè)置連接屬性。在“General”屬性中塊參數(shù)ID = 1,,這個參數(shù)即是下面程序中的參數(shù)“ID”,。在SIMATIC 315PN-1中激活“Establish an active connection”,作為Client端,,SIMATIC 315PN-2作為Server 端,。
3. 軟件編程
3.1. 無確認(rèn)數(shù)據(jù)交換
SFB/FB 8 "USEND" 向類型為“URCV”的遠(yuǎn)程伙伴SFB/FB發(fā)送數(shù)據(jù)。執(zhí)行發(fā)送過程而不需要和SFB/FB伙伴進(jìn)行協(xié)調(diào),。也就是說,,在進(jìn)行數(shù)據(jù)傳送時(shí)不需要伙伴SFB/FB進(jìn)行確認(rèn)。
S7-300:在REQ的上升沿處發(fā)送數(shù)據(jù)。在REQ的每個上升沿處傳送參數(shù)R_ID,、
ID和SD_1,。在每個作業(yè)結(jié)束之后,可以給R_ID,、ID和SD_1參數(shù)分配新數(shù)值,。
S7-400:在控制輸入REQ的上升沿處發(fā)送數(shù)據(jù)。通過參數(shù)SD_1到SD_4來指向要
發(fā)送的數(shù)據(jù),,但并非都需要用到所有四個發(fā)送參數(shù),。
然而,必須確保參數(shù)SD_1到SD_4/SD_1和RD_1到RD_4/RD_1 (在相應(yīng)通訊伙
伴SFB/FB "URCV" 上)所定義的區(qū)域在以下幾個方面保持*:
? ?編號
? ?長度
? ?數(shù)據(jù)類型
參數(shù)R_ID必須在兩個SFB中*相同,。如果傳送成功完成,,則通過狀態(tài)參數(shù)DONE來表示,此時(shí)其邏輯數(shù)值為1,。
SFB/FB 9 "URCV" 從類型為“USEND”的遠(yuǎn)程伙伴SFB/FB中異步接收數(shù)據(jù),,并
把接收到的數(shù)據(jù)復(fù)制到組態(tài)的接收區(qū)域內(nèi)。
當(dāng)程序塊準(zhǔn)備好接收數(shù)據(jù)時(shí),,EN_R輸入處的邏輯值為1,。可以通過EN_R=0來取
消一個已激活的作業(yè),。
S7-300:在EN_R的每個上升沿處應(yīng)用參數(shù)R_ID,、ID和RD_1。在每個作業(yè)結(jié)束
之后,,可以給R_ID,、ID和RD_1參數(shù)分配新數(shù)值。西門子CPUST40標(biāo)準(zhǔn)型 SMARTST40
S7-400:通過參數(shù)RD_1到RD_4來指向接收數(shù)據(jù)區(qū),。
必須確保參數(shù)RD_i/RD_1和SD_i/SD_1 (在相應(yīng)通訊伙伴SFB/FB "USEND"
上)所定義的區(qū)域在以下幾個方面保持*:
?? 編號
? ?長度
? ?數(shù)據(jù)類型,。
通過NDR狀態(tài)參數(shù)邏輯數(shù)值為1來指示已經(jīng)成功完成復(fù)制處理過程。參數(shù)R_ID必須在兩個SFB/FB上*相同,。
打開SIMATIC 315PN-1的OB1,,在OB1中依次調(diào)用FB8,F(xiàn)B9如圖5,、圖6所示:
圖5
程序中的參數(shù)說明見表2
參數(shù) | 描述 | 數(shù)據(jù)類型 | 存儲區(qū) | 描述 |
REQ | INPUT | BOOL | I,、Q、M,、D,、L | 上升沿觸發(fā)工作 |
ID | INPUT | WORD | M、D,、常數(shù) | 連接ID |
R_ID | INPUT | DWORD | I,、Q,、M、D,、L,、常數(shù) | 連接號,,相同連接號的功能塊互相對應(yīng)發(fā)送/接收數(shù)據(jù) |
DONE | OUTPUT | BOOL | I,、Q、M,、D,、L | 為1時(shí),發(fā)送完成 |
ERROR | OUTPUT | BOOL | I,、Q,、M、D,、L | 為1時(shí),,有故障發(fā)生 |
STATUS | OUTPUT | WORD | I、Q,、M,、D、L | 狀態(tài)代碼 |
S7-300: SD_1 S7-400: SD_i (1 ≤ i ≤ 4) | IN_OUT | ANY | M,、D,、T、Z I,、西門子CPUST40標(biāo)準(zhǔn)型 SMARTST40Q,、M、D,、T,、C | 發(fā)送數(shù)據(jù)區(qū) |
表2 FB8參數(shù)說明
西門子6GK7243-1EX01-0XE0
圖6
程序中的參數(shù)說明見表3
參數(shù) | 參數(shù) | 數(shù)據(jù)類型 | 存儲區(qū) | 描述 |
EN_R | INPUT | BOOL | I、Q,、M,、D、L,、常數(shù) | 為1時(shí),,準(zhǔn)備接收 |
ID | INPUT | WORD | M、D,、常數(shù) | 連接ID |
R_ID | INPUT | DWORD | I,、Q、M,、D,、L,、常數(shù) | 連接號,相同連接號的功能塊互相對應(yīng)發(fā)送/接收數(shù)據(jù) |
NDR | OUTPUT | BOOL | I,、Q,、M、D,、L | 為1時(shí),,接收完成 |
ERROR | OUTPUT | BOOL | I、Q,、M,、D、L | 為1時(shí),,有故障發(fā)生 |
STATUS | OUTPUT | WORD | I,、Q、M,、D,、L | 狀態(tài)代碼 |
S7-300: RD_1 S7-400: RD_i (1 ≤ i ≤ 4) | IN_OUT | ANY | M、D,、T,、Z I、Q,、M,、D、T,、Z | 接收數(shù)據(jù)區(qū) |
表3 FB9參數(shù)說明
同樣,,在SIMATIC 315PN-2的OB1中,調(diào)用FB8/FB9,。通信雙方的“R_ID”均設(shè)為0,。將SIMATIC 315PN-1的MB100-MB109賦值B#16#02,在SIMATIC 315PN-2中,,將FB9的“EN_R”置1,,然后在SIMATIC 315PN-1中,將FB8中“REQ”設(shè)置上升沿信號,,此時(shí)SIMATIC 315PN-2的MB110-MB119接收到B#16#02,。如圖7所示。
圖7
同理,,將SIMATIC 315PN-2 的MB100-MB109賦值為B#16#03,,SIMATIC 315PN-1的MB110-MB119接收到B#16#03。如圖8所示,。
圖8
3.2. 確認(rèn)數(shù)據(jù)交換
SFB/FB 12 "BSEND" 向類型為“BRCV”的遠(yuǎn)程伙伴SFB/FB發(fā)送數(shù)據(jù),。通過這種
類型的數(shù)據(jù)傳送,,更多的數(shù)據(jù)可以在通訊伙伴之間傳輸,*其它用于組態(tài)的
S7連接的通訊SFB/FB所能傳輸?shù)臄?shù)據(jù)量,,通過集成PN口的S7-400和S7-300是65534字節(jié),。
要發(fā)送的數(shù)據(jù)區(qū)是分段的。各個分段單獨(dú)發(fā)送給通訊伙伴,。通訊伙伴在接收到后
一個分段時(shí)對此分段進(jìn)行確認(rèn),,該過程與相應(yīng)SFB/FB "BRCV" 的調(diào)用無關(guān)。在調(diào)用塊之后,,當(dāng)在控制輸入REQ上有上升沿時(shí),,發(fā)送作業(yè)被激活,。發(fā)送用戶存儲區(qū)中的數(shù)據(jù)與處理用戶程序是異步執(zhí)行的,。
由SD_1起始地址和要發(fā)送數(shù)據(jù)的大長度??梢酝ㄟ^LEN來確定數(shù)據(jù)域的作業(yè)長度,。在這種情況下,LEN替換SD_1的長度區(qū)域,。參數(shù)R_ID必須在相應(yīng)的兩個SFB/FB上*相同,。如果在控制輸入R處有上升沿,則當(dāng)前數(shù)據(jù)傳送將被取消,。如果傳送成功完成,,則通過將狀態(tài)參數(shù)DONE的數(shù)值設(shè)置為1來進(jìn)行指示。如果狀態(tài)參數(shù)DONE或ERROR的數(shù)值為1,,則在前一個發(fā)送處理結(jié)束之前,,不能處理新的發(fā)送作業(yè)。
SFB/FB 13 "BRCV" 接收來自類型為“BSEND”的遠(yuǎn)程伙伴SFB/FB的數(shù)據(jù),。在收
到每個數(shù)據(jù)段后,,向伙伴SFB/FB發(fā)送一個確認(rèn)幀,同時(shí)更新LEN參數(shù),。在塊調(diào)用完畢,,并且在控制輸入EN_R數(shù)值為1之后,塊準(zhǔn)備接收數(shù)據(jù),??梢酝ㄟ^EN_R=0來取消一個已激活的作業(yè)。
由RD_1起始地址和接收區(qū)的大長度,。由LEN指示已接收數(shù)據(jù)域的長度,。
從用戶存儲區(qū)中接收數(shù)據(jù)與處理用戶程序是異步執(zhí)行的。參數(shù)R_ID必須在相應(yīng)的兩個SFB/FB上*相同,。通過狀態(tài)參數(shù)NDR的數(shù)值為1來指示所有數(shù)據(jù)段的無錯接收,。接收到的數(shù)據(jù)保持不變,,直到通過EN_R=1來重新調(diào)用SFB/FB 13為止。如果在數(shù)據(jù)的異步接收期間調(diào)用塊,,則將引發(fā)一個警告,,該警告通過STATUS參數(shù)輸出;如果當(dāng)控制輸入EN_R數(shù)值為0時(shí)進(jìn)行調(diào)用,,則接收將被終止,,并且SFB/FB將返回到它的初始狀態(tài)。
打開SIMATIC 315PN-1的OB1,,在OB1中依次調(diào)用FB12,,F(xiàn)B13如圖9、圖10所示:
1.概述
1.1 S7-1200 的PROFINET 通信口
S7-1200 CPU 本體上集成了一個 PROFINET 通信口,,支持以太網(wǎng)和基于 TCP/IP 的通信標(biāo)準(zhǔn),。使用這個通信口可以實(shí)現(xiàn) S7-1200 CPU 與編程設(shè)備的通信,與HMI觸摸屏的通信,,以及與其它 CPU 之間的通信,。這個PROFINET 物理接口是支持10/100Mb/s的 RJ45口,支持電纜交叉自適應(yīng),,因此一個標(biāo)準(zhǔn)的或是交叉的以太網(wǎng)線都可以用于這個接口,。
1.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 指令來實(shí)現(xiàn)
? 3個連接用于S7 通信的服務(wù)器端連接,,可以實(shí)現(xiàn)與S7-200,,S7-300以及 S7-400 的以太網(wǎng)S7 通信
S7-1200 CPU可以同時(shí)支持以上15個通信連接,這些連接數(shù)是固定不變的,,不能自定義,。
TCP(Transport Connection Protocol)
TCP是由 RFC 793描述的標(biāo)準(zhǔn)協(xié)議,可以在通信對象間建立穩(wěn)定,、安全的服務(wù)連接,。如果數(shù)據(jù)用TCP協(xié)議來傳輸,傳輸?shù)男问绞菙?shù)據(jù)流,,沒有傳輸長度及信息幀的起始,、結(jié)束信息。在以數(shù)據(jù)流的方式傳輸時(shí)接收方不知道一 條信息的結(jié)束和下一條信息的開始,。因此,,發(fā)送方必須確定信息的結(jié)構(gòu)讓接收方能夠識別 。在多數(shù)情況下TCP應(yīng)用了IP (Internet protocol) ,,也就是“TCP/IP 協(xié)議”,, 它位于 ISO-OSI 參考模型的第四層。
協(xié)議的特點(diǎn):
? 與硬件綁定的高效通信協(xié)議
? 適合傳輸中等到大量的數(shù)據(jù) (<=8192 bytes)
? 為大多數(shù)設(shè)備應(yīng)用提供
– 錯誤恢復(fù)
– 流控制
– 可靠性
? 一個基于連接的協(xié)議
? 可以靈活的與支持TCP協(xié)議的第三方設(shè)備通信
? 具有路由兼容性
? 只可使用靜態(tài)數(shù)據(jù)長度
? 有確認(rèn)機(jī)制
? 使用端口號進(jìn)行應(yīng)用尋址
? 大多數(shù)應(yīng)用協(xié)議,,如TELNET,、FTP都使用TCP
? 使用 SEND/RECEIVE 編程接口進(jìn)行數(shù)據(jù)管理需要編程來實(shí)現(xiàn)
1.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
2. 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,。
2.1 S7-1200 CPU 的組態(tài)編程
組態(tài)編程過程與 S7-1200 CPU 之間的通信基本相似 (見 6.3 ),這里簡單描述一下步驟:
① 使用STEP 7 Basic V10.5 軟件新建一個項(xiàng)目
在STEP 7 Basic 的“Portal View”中選擇 “Create new project”創(chuàng)建一個新項(xiàng)目
② 添加新設(shè)備
然后進(jìn)入“Project view”,,在“Project tree”下雙擊“Add new device”,,在對話框中選擇所使用的S7-1200 CPU添加到機(jī)架上,命名為 PLC_1,。
③ 為 PROFINET 通信口分配以太網(wǎng)地址
在“Device View”中點(diǎn)擊 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ā)送通信指令,進(jìn)入“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 塊,,選擇尋址,,點(diǎn)擊“OK”鍵,定義發(fā)送數(shù)據(jù)區(qū)為 100個字節(jié)的數(shù)組,。