S7-1500和S7-1200 F-CPU間Flexible F-Link通信
從STEP7 Safety V15.1開始,S7-1200和S7-1500 F-CPU間可以通過Flexible F-Link進(jìn)行安全數(shù)據(jù)的交互。這表示安全數(shù)據(jù)能夠以數(shù)組的形式通過開放式通信進(jìn)行交互。
通過Flexible F-Link進(jìn)行安全數(shù)據(jù)交換具有以下特點(diǎn):
安全數(shù)據(jù)需要建立在PLC數(shù)據(jù)類型(UDT)中;
每個UDT中最大支持100個字節(jié)的數(shù)據(jù)交互,支持故障安全數(shù)據(jù)類型;
適用于S7-1200和S7-1500 F-CPU;
用于通信的DB塊由系統(tǒng)自動生成;
每組通信具有唯一的UUID;
要求:
S7-1500 F-CPU的固件不低于V2.0;
S7-1200 F-CPU的固件版本不低于V4.2;
Safety system的版本不低于V2.2。
更多的關(guān)于創(chuàng)建和編寫、通信的安全程序的信息請參考故障安全系統(tǒng)組態(tài)和編程手冊。
Flexible F-Link通信過程說明
Flexible F-Link安全通信是以開放式用戶通信(例如TCP)的方式將一個F-CPU的F-DB數(shù)據(jù)發(fā)送到另一個F-CPU的F-DB中。示意過程如圖A所示:
圖A. Flexible F-Link 通信示意圖
F-CPU間組態(tài)Flexible F-Link,通過開放式用戶通信(如TCP)進(jìn)行數(shù)據(jù)傳輸,本質(zhì)上是兩個F-CPU間的F-communication DB間的數(shù)據(jù)交互。
通信過程如下(以PLC1發(fā)送安全數(shù)據(jù)到PLC2為例說明):
PLC1在安全主程序 (Main_Safety_RTG1)中編程,將需要交互的安全數(shù)據(jù)從全局F-DB中傳送至F-communication DB中。數(shù)據(jù)為UDT類型。
PLC1調(diào)用發(fā)送指令(如TSEND)將F-communication DB中的數(shù)據(jù)發(fā)送到PLC2,如圖A "SEND_ARRAY"。
PLC2調(diào)用接受指令(如TRCV)接收數(shù)據(jù),數(shù)據(jù)傳送至F-communication DB中,如圖A "RCV_ARRAY"。同時將交互的安全數(shù)據(jù)從F-communication DB中取出傳送至全局F-DB中。
PLC2調(diào)用發(fā)送指令(如TSEND),將安全校驗數(shù)據(jù)發(fā)送到PLC1,如圖A "ACK_SEND_ARRAY"。
PLC1調(diào)用接受指令(如TRCV)接收數(shù)據(jù),數(shù)據(jù)傳送至F-communication DB中,如圖A "ACK_RCV_ARRAY"。
PLC1驗證安全校驗數(shù)據(jù)無誤,執(zhí)行下一次的安全數(shù)據(jù)的發(fā)送。
F-communication DB的說明
F-communication DB在兩個F-CPU進(jìn)行Flexible F-Link設(shè)置后分別自動生成,設(shè)置過程見下文示例。如圖B所示:
圖B. F-communication DBs
發(fā)送端與接收端的F-communication DB 數(shù)據(jù)結(jié)構(gòu)不同。如圖C所示:
圖C.F-communication 發(fā)送/接收DB
SEND_DATA:需要發(fā)送給伙伴的安全數(shù)據(jù),由用戶自定義生成。安全數(shù)據(jù)需要用戶在安全主程序中編程進(jìn)行傳送。
ACK_RCV_ARRAY: 接收的安全校驗數(shù)據(jù)。
SEND_ARRAY: 需要通過發(fā)送指令(如TSEND)發(fā)送給伙伴的數(shù)組,由安全數(shù)據(jù)和校驗信息組成。
RCV_ARRAY: 接收端PLC通過接收指令(如TRCV)接收的數(shù)組,由安全數(shù)據(jù)和校驗信息組成。
RCV_DATA: 接收端接收到的安全數(shù)據(jù),即由發(fā)送端PLC交互的數(shù)據(jù)。用戶可在安全主程序編程將該數(shù)據(jù)傳送至F-DB中。
ACK_SEND_ARRAY: 需要接收端PLC通過發(fā)送指令(如TSEND)發(fā)送出去的安全校驗信息。
概括來說,對于發(fā)送端,①②位于DB塊的"Input"接口區(qū),需要由外部傳入數(shù)據(jù);③位于DB塊的"Output"接口區(qū),需要將該數(shù)據(jù)發(fā)送出去。而對于接收端,④位于DB塊的"Input"接口區(qū),需要由外部傳入數(shù)據(jù);⑤⑥位于DB塊的"Output"接口區(qū),需要將該數(shù)據(jù)發(fā)送出去。
此外,接收端DB塊中的PASS_OUT為TRUE時,將輸出故障替代值"PASS_VALUES"。當(dāng)"ACK_REQ"為TRUE時,表示故障消失需要手動確認(rèn),輸入信號"ACK_REI"觸發(fā)上升沿后,數(shù)據(jù)交互即可正常。
示例所使用的軟硬件環(huán)境
本節(jié)內(nèi)容,將實現(xiàn)將S7-1500F-CPU中的數(shù)據(jù)通過Flexible F-Link的方式發(fā)送到S7-1200F-CPU中。
測試所用產(chǎn)品:
CPU 1511F-1PN (6ES7 511-1FK01-0AB0 ,V2.5)
CPU 1215FC DC/DC/DC (6ES7 215-1AF40-0XB0 , V4.2)
Safety system version V2.3
TIA Portal Step7 professional V16
Step7 safety V16
實現(xiàn)交互的數(shù)據(jù)區(qū)
通過以下步驟,實現(xiàn)將plc1的DB6中的數(shù)據(jù)發(fā)送到plc2的DB3中。如圖1所示:
圖1.安全數(shù)據(jù)交互區(qū)
S7-1500F側(cè)編程組態(tài)
添加S7-1511F和S7-1215FC,分別設(shè)置兩個CPU的IP地址為192.168.0.15和192.168.0.12,并連接在一個子網(wǎng)中。如圖2所示:
圖2.添加新F-CPU
添加符合F的PLC數(shù)據(jù)類型。如圖3所示:
圖3.添加PLC數(shù)據(jù)類型
新建的UDT中創(chuàng)建需要交互的數(shù)據(jù)類型。如圖4所示:
圖4.新增交互變量
設(shè)置Flexible F-Link。如圖5所示:
設(shè)置完成后,自動生成F-communication DB,具體結(jié)構(gòu)見前面圖C。
圖5.設(shè)置Flexible F-Link
新建FC塊,添加到pre processing和post processing。如圖6所示:
Pre processing 指定的程序塊在安全運(yùn)行組之前運(yùn)行;Post processing 指令的指令塊在安全運(yùn)行組之后運(yùn)行。
圖6.設(shè)置Pre/Post processing
添加循環(huán)中斷組織塊OB30,設(shè)置其循環(huán)時間為30ms。在OB30中調(diào)用TRCV_C指令用于建立TCP連接和接收數(shù)據(jù)。如圖7所示:
循環(huán)中斷OB30的循環(huán)時間可以調(diào)整。OB30中調(diào)用TRCV_C,主要用于在安全運(yùn)行組執(zhí)行前多次執(zhí)行接收保證能接收到新的安全校驗數(shù)據(jù)。
圖7.增加TCP接收指令
TRCV_C指令連接組態(tài),用于建立與伙伴的TCP連接。如圖8所示:
如果通信雙方屬于不同的項目,伙伴側(cè)選擇“未指定”。
圖8.連接參數(shù)組態(tài)
OB30中TRCV_C指令參數(shù)化,接收安全通信過程中符合profisafe規(guī)范的安全校驗數(shù)據(jù)。TRCV_C指令將接收到的安全校驗數(shù)據(jù)存放到DB2的數(shù)組"rcvAckArray"中。如圖9所示:
注意:數(shù)組"rcvAckArray"為Byte類型數(shù)組,數(shù)組長度與"send".ACK_RCV_LENGTH一致。
圖9.參數(shù)化TRCV_C
pre processing 指令塊將接收的安全校驗數(shù)據(jù)傳送至F-communication中。執(zhí)行安全運(yùn)行組之前,將數(shù)據(jù)傳送至安全通信DB中。如圖10所示:
圖10.數(shù)據(jù)傳送
post processing 指令塊進(jìn)行安全數(shù)據(jù)的發(fā)送。如圖11所示:
圖11.發(fā)送安全數(shù)據(jù)
安全主程序中將用戶全局DB數(shù)據(jù)傳送至F-communication中。如圖12所示:
圖12.安全主程序編程
下載項目到CPU中。
S7-1200F側(cè)編程組態(tài)
新建符合F的PLC數(shù)據(jù)類型,新增接收數(shù)據(jù)類型。如圖13所示:
圖13.添加PLC數(shù)據(jù)類型
設(shè)置Flexible F-Link。如圖14所示:
設(shè)置完成后,自動生成F-communication DB,具體結(jié)構(gòu)見前面圖C。
圖14.設(shè)置Flexible F-Link
新建FC塊,添加到pre processing和post processing。如圖15所示:
圖15.設(shè)置Pre/Post processing
添加循環(huán)中斷組織塊OB30,設(shè)置其循環(huán)時間為30ms。在OB30中調(diào)用TRCV_C指令用于建立TCP連接和接收數(shù)據(jù)。如圖16所示:
圖16.調(diào)用TCP接收指令
TRCV_C指令連接組態(tài)。如圖17所示:
圖17.組態(tài)連接參數(shù)
OB30中TRCV_C指令參數(shù)化,接收plc1發(fā)送的安全數(shù)據(jù)到DB4的數(shù)組"rcvArray"中。如圖18所示:
注意:數(shù)組"rcvArray"為Byte類型數(shù)組,數(shù)組長度與"receive".RCV_LENGTH一致。
圖18.參數(shù)化TRCV_C
pre processing 指令塊將接收的安全數(shù)據(jù)傳送至F-communication中。如圖19所示:
圖19.傳送數(shù)據(jù)
post processing 指令塊進(jìn)行安全校驗數(shù)據(jù)的發(fā)送。如圖20所示:
圖20.發(fā)送安全校驗數(shù)據(jù)
安全主程序中將接收的安全數(shù)據(jù)從F-communication傳送至用戶全局DB中。如圖21所示:
圖21.安全主程序編程
下載項目到CPU中。
通信監(jiān)控
接收端(plc2)進(jìn)行去鈍。如圖22所示:
圖22.去鈍
數(shù)據(jù)在線監(jiān)控,安全數(shù)據(jù)傳送完成。如圖23所示:
圖23.數(shù)據(jù)監(jiān)視
審核編輯:湯梓紅
-
plc
+關(guān)注
關(guān)注
5017文章
13394瀏覽量
465651 -
cpu
+關(guān)注
關(guān)注
68文章
10911瀏覽量
213144 -
通信
+關(guān)注
關(guān)注
18文章
6077瀏覽量
136476 -
S7-1200
+關(guān)注
關(guān)注
11文章
331瀏覽量
18084 -
S7-1500
+關(guān)注
關(guān)注
3文章
300瀏覽量
6527
原文標(biāo)題:S7-1500和S7-1200 F-CPU間Flexible F-Link通信
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
S7-1200與S7-1200/S7-1500不同項目下UDP通信
西門子plc S7-1200/S7-1500優(yōu)化的DB塊與標(biāo)準(zhǔn)的DB塊整體對比
![西門子plc <b class='flag-5'>S7-1200</b>/<b class='flag-5'>S7-1500</b>優(yōu)化的DB塊與標(biāo)準(zhǔn)的DB塊整體對比](https://file1.elecfans.com//web2/M00/8E/49/wKgaomTDomqAQySDAACAnNBD494583.jpg)
WinCC V7.2與S7-1200的PLC通訊
![WinCC V7.2與<b class='flag-5'>S7-1200</b>的PLC通訊](https://file.elecfans.com/web2/M00/49/DF/pYYBAGKhvG6AS5FfAAAUy5IkQp0690.jpg)
基于WinCC V7.2與S7-1200/1500 PLC通訊步驟介紹
![基于WinCC V7.2與<b class='flag-5'>S7-1200</b>/<b class='flag-5'>1500</b> PLC通訊步驟介紹](https://file.elecfans.com/web2/M00/49/E3/pYYBAGKhvHCAMWtLAAAZlIuwE14784.jpg)
如何使用博途平臺上完成西門子的S7-1500與S7-1200以太網(wǎng)通信?
![如何使用博途平臺上完成西門子的<b class='flag-5'>S7-1500</b>與<b class='flag-5'>S7-1200</b>以太網(wǎng)<b class='flag-5'>通信</b>?](https://file.elecfans.com/web1/M00/56/C8/o4YBAFtCwquAElyYAAANDG1sw8Y424.jpg)
關(guān)于S7-1200或S7-1500 PLC的通信
新的故障安全通信Flexible F-Link
WinCC與 S7-1200/S7-1500 PLC之間的通信解析
S7-1200能仿真通信嗎?
![<b class='flag-5'>S7-1200</b>能仿真<b class='flag-5'>通信</b>嗎?](https://file.elecfans.com/web2/M00/93/22/poYBAGP1yomAAajwAAEP0Whqb3k837.jpg)
S7-1200 CPU與S7-200 SMART S7通信指南
S7-1500和S7-1200存儲區(qū)域保持性設(shè)置
一文解析S7-1200與S7-1500 S7通信
![一文解析<b class='flag-5'>S7-1200</b>與<b class='flag-5'>S7-1500</b> <b class='flag-5'>S7</b><b class='flag-5'>通信</b>](https://file1.elecfans.com/web2/M00/82/C9/wKgaomRh-D-ATKLkAAAYHNQIW4o566.jpg)
評論