劉柏松, 劉 燁, 李丙林, 尤 文
(1.長春天然氣有限責(zé)任公司,吉林長春 130033;2.長春工業(yè)大學(xué)電氣與電子工程學(xué)院,吉林長春 130012)
數(shù)據(jù)通信協(xié)議可以分為面向連接的協(xié)議和無連接的協(xié)議,前者在進(jìn)行數(shù)據(jù)交換之前,必須與通信伙伴建立連接。面向連接的協(xié)議具有較高的安全性[1-3]。
連接是指兩個通信伙伴之間為了執(zhí)行通信服務(wù)建立的邏輯鏈路,而不是指兩個站之間用物理媒體(例如電纜)實現(xiàn)的連接。連接相當(dāng)于通信伙伴之間一條虛擬的“專線”,它們隨時可以用這條“專線”進(jìn)行通信。一條物理線路可以建立多個連接[4]。
S7連接屬于需要組態(tài)的靜態(tài)連接。
基于連接的通信分為單向通信和雙向通信。在雙向通信中,通信雙方都需要調(diào)用通信塊,一方調(diào)用發(fā)送塊來發(fā)送數(shù)據(jù),另一方調(diào)用接收塊來接收數(shù)據(jù)。
在雙向S7通信中,使用SFB12“BSEND”可以將數(shù)據(jù)塊安全地傳輸?shù)酵ㄐ呕锇?,直到通信伙伴的接收功能SFB13“BRCV”接收完數(shù)據(jù),數(shù)據(jù)傳輸才結(jié)束。只有S7-400之間才可以進(jìn)行雙向通信。可傳輸字節(jié)達(dá)64K。從S7-PLCSIM V5.4+SP3開始,用戶可以使用S7-PLCSIM在一個STEP 7項目中同時仿真多CPU,并建立CPU間的通訊。S7通信可以用于工業(yè)以太網(wǎng)、PROFIBUS或MPI網(wǎng)絡(luò)[5-6]。這些網(wǎng)絡(luò)的S7通信的組態(tài)和編程方法基本相同。下面基于Ethernet網(wǎng)絡(luò)介紹S7雙向通信的組態(tài)和編程方法。
在STEP7中創(chuàng)建一個名為“S7_PLCSIM_SFB12SFB13”的項目,用鼠標(biāo)右鍵點擊項目的圖標(biāo),用出現(xiàn)的快捷菜單中的命令插入一個SIMATIC 400站點,選中SIMATIC管理器左邊窗口出現(xiàn)的站,雙擊右邊窗口中的“硬件”圖標(biāo),打開硬件組態(tài)工具HW Config,將電源模塊和CPU 416-3PN/DP插入機(jī)架。在自動出現(xiàn)的“屬性-Etherne接口”對話框的“參數(shù)”選項卡中,設(shè)置IP地址為192.168.0.1。點擊“新建”按鈕,生成一條名為“(1)”的以太網(wǎng),編譯并保存組態(tài)信息。
在“S7_PLCSIM_SFB12SFB13”項目中生成另一個SIMATIC 400站點。在HW Config中,將電源模塊和CPU 416-3PN/DP插入機(jī)架。在自動出現(xiàn)的“屬性-Etherne接口”對話框的“參數(shù)”選項卡中,設(shè)置IP地址為192.168.0.2。選中“子網(wǎng)”列表中的“Ethernet(1)”。編譯并保存組態(tài)信息。
Ethernet網(wǎng)接口屬性對話框如圖1所示。
組態(tài)好兩個S7-400站后,打開NetPro窗口,看到連接到以太網(wǎng)上的兩個站,選中416-3PN/DP所在的小方框,在NetPro下面的窗口出現(xiàn)連接表,如圖2所示。
圖1 Ethernet網(wǎng)接口屬性對話框
圖2 網(wǎng)絡(luò)與連接的組態(tài)
插入新連接與連接屬性對話框如圖3所示。
圖3 插入新連接與連接屬性對話框
雙擊連接表的第1行,在出現(xiàn)的“插入新連接”對話框中(見圖3左側(cè)),系統(tǒng)默認(rèn)的通信伙伴為同一項目的站SIMATIC 400(2)中的416-3 PN/DP,默認(rèn)的連接類型為S7連接。單擊“確定”按鈕,確認(rèn)默認(rèn)的設(shè)置,出現(xiàn)S7連接屬性對話框,在“本地連接端點”區(qū),復(fù)選框“單向”禁止選中,因此連接是雙向的,在圖3的連接表中,生成了相同的“本地ID”和“伙伴ID”。復(fù)選框“建立主動的連接”是默認(rèn)的設(shè)置,選中該復(fù)選框時,連接表的“激活的連接伙伴”列將顯示“是”。在運行時,由本地節(jié)點建立連接。反之,顯示“否”,由通信伙伴建立連接。
組態(tài)好連接后,編譯并保存。組態(tài)信息被保存在系統(tǒng)數(shù)據(jù)中。將硬件和連接的組態(tài)信息下載到各自的CPU。
雙方的通信程序基本上相同。首先生成DB201和DB200,在數(shù)據(jù)塊中生成20個字節(jié)元素的數(shù)組ARAY。然后生成OB100,分別將M0.1和M1.0預(yù)置為1。然后創(chuàng)建功能塊FB100,在兩個FB100中分別調(diào)用系統(tǒng)功能SFB12和SFB13。最后在主程序OB1中分別調(diào)用FB100。組態(tài)和編程完成后的SIMATIC管理器如圖4所示。
圖4 SIMATIC管理器
SIMATIC 400(1)的OB1程序如圖5所示。
圖5 SIMATIC 400(1)的OB1的程序
在硬件組態(tài)時,CPU屬性對話框的“周期/時鐘存儲器”選項卡設(shè)置MB2為時鐘存儲器字節(jié)。第1秒計數(shù)器C1的值加上1,并存到地址DB201.DBW0中。
在FB100中調(diào)用SFB12,程序片段如圖6所示。
圖6 FB100中調(diào)用SFB12的程序片段
輸入?yún)?shù)ID為連接的標(biāo)識符,R_ID用于區(qū)分同一連接中不同的SFB調(diào)用,發(fā)送方與接收方的R_ID應(yīng)相同。
SIMATIC400(2)的OB1調(diào)用FB100的程序。FB100中調(diào)用SFB13。程序片段如圖7所示。
圖7 FB100中調(diào)用SFB13的程序片段
SFB13將接收的數(shù)據(jù)存到DB200.DB_VAR,并MOVE到QW1中。
仿真實驗過程如下:
1)在SIMATIC Manager中打開S7-PLCSIM,帶有實例標(biāo)簽“S7-PLCSIM1”的第一個被仿真CPU的對話框被打開。
2)用戶從下拉框中選擇被組態(tài)的接口類型作為“TCP/IP”接口。
3)在SIMATIC Manager中,選中第一個S7站的塊文件夾,并裝載到S7-PLCSIM1中。
4)增加輸入、輸出等子窗口來監(jiān)視并控制程序。
5)為了仿真其它CPU,用戶執(zhí)行菜單命令“Simulation>New PLC”。“S7-PLCSIM2”對話框打開。
6)為了仿真第二個CPU,用戶從下拉框中選擇被組態(tài)的接口類型作為“TCP/IP”接口。
7)在SIMATIC Manager中,選擇第二個CPU的塊文件夾并裝載所有塊到實例“S7-PLCSIM2”中。在裝載之前必須選擇實例“S7-PLCSIM2”。同樣,添加輸入、輸出等子窗口。
仿真兩個S7-400CPU通訊的畫面如圖8所示。
圖8 仿真兩個S7-400CPU通訊的畫面
在S7-PLCSIM1(仿真站1)中,IB1控制計數(shù)器C1每秒加上1,然后發(fā)送計數(shù)值到S7-PLCSIM2(仿真站2)的QW1中[7-8]。如要仿真其它CPU,則重復(fù)4)~7)步。
S7通信主要用于西門子工控產(chǎn)品之間的通信,例如,S7-300/400CPU之間的主-主通信、CPU與人機(jī)界面和組態(tài)軟件WinCC之間的通信。文中通過PLCSIM仿真兩個S7-400PLC之間基于TCP/IP的S7通信,描述了實現(xiàn)S7通信的組態(tài)和編程方法。對于兩個以上的PLC之間的通信仿真,PLCSIM同樣支持。S7通信可以用于工業(yè)以太網(wǎng)、PROFIBUS或MPI網(wǎng)絡(luò)。這些網(wǎng)絡(luò)的S7通信的組態(tài)和編程方法基本相同。PLCSIM同樣支持S7-400基于MPI的S7通訊以及S7-400基于DP的S7通訊的仿真。
[1] 康軍,戴冠中.工業(yè)以太網(wǎng)遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計[J].計算機(jī)工程與設(shè)計,2005,26(6):1633-1638.
[2] 曹懷虎,余鎮(zhèn)危,王磊,等.以太網(wǎng)DCS中基于MODBUS/TCP協(xié)議通信的設(shè)計與實現(xiàn)[J].計算機(jī)工程與設(shè)計,2004,25(2):314-317.
[3] 馬光兵,張維勇,胡敏.基于TCP/IP網(wǎng)絡(luò)中多PLC通信的設(shè)計和實現(xiàn)[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2003,26(2):218-222.
[4] 胡立坤,王慶超.基于以太網(wǎng)通信過程的實時改進(jìn)方法研究[J].計算機(jī)工程與設(shè)計,2006,27(9):1516-1520.
[5] 廖常初.S7-300/400PLC應(yīng)用教程[M].北京:中國機(jī)械工業(yè)出版社,2008.
[6] 劉楷,周海.深入淺出西門子S7-300PLC[M].北京:北京航空航天大學(xué)出版社,2004.
[7] 李丙林,宋殿斌,劉克平.PLC和觸摸屏在耐壓試驗監(jiān)控系統(tǒng)中的應(yīng)用[J].長春工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2011,32(4):394-398.
[8] 唐重和,劉克平,金晶,等.DCS控制系統(tǒng)在分子蒸餾生產(chǎn)工藝中的應(yīng)用[J].長春工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2012,33(2):130-134.