產品簡介
詳細介紹
高級業務顧問;竭誠為你服務.
本公司主營西門子數控伺服S7-200.S7-300,S7-400系列PLC,伺服電機,ET200系列產品 變頻器 西門子人機界面,觸摸屏,操作屏,西門子電線電纜,西門子網卡,西門子接頭,西門子維修等
如何基于工業庫在PCS 7中集成S7-300 CPU
1、工業庫簡介
SIMATIC PCS 7工業庫(SIMATIC PCS 7 Industry Library,以下簡稱IL)為PCS 7 V8.0以上版本提供了全新的控制功能庫,是對PCS 7高級過程庫(APL)的擴展,集成了非標準PCS 7 系統的工廠組件,包括S7-300控制器或者WinCC Flexible操作員面板。此外,IL中還集成了多個行業庫,例如,水、廢水處理行業庫和樓宇自動化行業庫。PCS 7 IL與PCS 7 APL一起使用,可對不同領域內的控制任務實現協調*的總體解決方案。
圖1-1 PCS 7工業庫
在多數PCS 7應用場合中,除了和過程控制直接相關的核心組件之外,工廠中還廣泛存在需要獨立控制的機器和設備,這些所謂的“成套設備”都是可以實現特定生產任務的控制子單元。由于點數規模較小、控制任務相對單一、邏輯運算為主等特點,所以,部分“成套設備”的控制都采用S7-300配合操作員面板使用。關于如何基于工業庫在PCS 7中集成操作員面板請參考如下應用文檔:
《如何基于工業庫在PCS 7中集成Panel》 下載中心文檔編號: 更多關于工業庫安裝前提條件、支持的S7-300版本、安裝過程以及功能特性,可以參考如下文檔: 《PCS 7工業庫安裝指南》 |
為了實現在PCS 7中集成S7-300 CPU,在PCS 7 V8.0中工業庫提供了兩個子庫:IL for PCS 7和IL for S7,其中的“IL for S7”主要就是面向S7-300 CPU環境下的應用需求。而在PCS 7中集成S7-300 CPU主要有兩個方式,一個是以S7-400 CPU為主,S7-300 CPU作為類似RTU的角色與S7-400 CPU通訊,提供相應的數據;另一個方式則是S7-300 CPU獨立組態,包含OS或操作員面板等,無須額外的作為主控的S7-400 CPU站。
本文分別按照兩個不同方式介紹具體的實現步驟,并在此過程中重點介紹“IL for S7”中功能塊調用、與S7-400 CPU的通訊以及分層操作等三個方面。
2、S7-300 CPU組態工業庫
在集成S7-300 CPU的PCS 7系統項目中,S7-300 CPU及其對應的操作員面板是一相對獨立的單項目,該項目可以在PCS 7項目中創建生成,也可以來自成套設備提供商。同時,相關的功能塊還需要在OS上產生圖標和操作面板,實現類似于APL功能塊一樣的操作。為此,集成的S7-300 CPU的程序需要基于IL S7庫來組態。具體組態過程如下:
2.1 創建多項目框架
由于PCS 7的創建項目向導中沒有集成S7-300 CPU的選項,所以需要按照手動的方式床架如下圖所示框架的多項目。其中的“300_IL_St”單項目就是包含了S7-300 CPU站和操作員面板組態項目。
示例項目采用CPU 317-2DP和MP370,只見通過IE完成通訊連接。具體S7-300 CPU站點的組態與常規項目組態*。
圖2-1 基本項目框架
在PCS 7軟件環境中組態S7-300 CPU,還需要為其創建工廠層級,一方面可以和多項目中的其他項目結構保持*,另一方面也可以實現跨單項目的OS分配等功能。更多關于多項目的功能使用可以參考:
2.2 用戶程序組態
針對S7-300 CPU進行編程,所使用的功能塊必須要從“Industry Lib S7 V80”庫中拖拽。在庫中提供了通訊、控制、監控等常用功能,還包含了與操作員面板的接口功能塊(“PANEL”)。
需要注意的是,由于PCS 7軟件中不能提供基于S7-300 CPU的模塊驅動,所以該庫中無APL庫類似的“Channel”功能塊。
圖2-2 Industry Lib PCS 7 V80
2.2.1 電機控制
在層級文件夾下創建CFC,雙擊打開,從“Industry Lib S7 V80”庫中分別拖拽“S7Mot”(來自DRIVES)和“S7PMot”(來自PANEL),并按照如下圖所示連接:
圖2-3 S7PMot與S7Mot連接
CFC中功能塊之間的連線過程較為簡單,只需要將S7PMot的輸出管腳“QOP_ACTIVE”、“QOP_RESET”“QOP_AUT_ON”、“QOP_MAN_ON”和“MSG_FILTER”分別連接到S7Mot塊的同名輸入管腳即可。
需要注意的是,為了實現在操作員面板上的指針連接,在S7程序Blocks文件夾中要新建一個自定義共享DB塊,其中創建數據類型為INT的參數“Motor”,用于連接S7PMot接口功能塊。對于需要操作員面板上顯示的對象,據需要在該共享DB塊中定義一個INT類型的變量。將“S7PMot”功能塊的輸出“IDBNR”連接到共享DB的“Motor”即可。
圖2-4 創建共享DB
2.2.2 閥門控制
與電機控制一樣,分別從庫中拖放“S7Vlv”和“S7PVlv”兩個功能塊到CFC中,完成連線即可:
圖2-5 S7Vlv和S7PVlv之間的連接
閥門的其他過程輸入輸出與常規編程*,只是不再使用驅動功能塊而已。
2.2.2 PID控制
“IL for S7”庫中還提供了PID控制功能塊“S7PIDCon”,同時也提供了在操作員面板上使用的“S7PPID”接口功能塊。具體連接更為簡單:
圖2-6 S7PIDCon和S7PPID之間的連接
“S7PPID”功能塊要獲取PID功能塊的狀態,只需要將“BlockCon”管腳與PID的任何一輸出相連接即可,這一點與其他類型的功能塊連接略有不同。
2.3 操作員面板組態
“IL for S7”成功安裝完成之后,會在WinCCFlexible中集成一個“IL_S7_Flex_80”庫文件(Program files SIEMENSSTEP7S7LIBS),其中包含了針對各類對象的塊圖標和面板,當在畫面中添加面板和塊圖標時會自動創建變量、連接、文本列表等,用戶只需要根據項目情況做適當調整即可。
圖2-7 S7PIDCon和S7PPID之間的連接
在WinCCFlexible中的具體組態過程可以參考《如何基于工業庫在PCS 7中集成Panel》應用文檔。
3、S7-300 CPU作為RTU組態
在多數情況下,S7-300 CPU控制的設備需要集成到現有的PCS 7整體體系中。而對于一個典型的PCS 7系統而言,OS服務器/單站都是和S7-400 CPU的AS站通訊獲取數據,不會直接和S7-300 CPU這樣的RTU通訊。為此,S7-300 CPU站點作為RTU角色,除了基本控制程序組態之外,還需要考慮和S7-400 CPU的AS站點的通訊問題。
在S7-400 CPU配合S7-300 CPU完成控制的架構中,需要對S7-400 CPU和S7-300 CPU的角色和功能有明確的定義。一般而言,S7-300 CPU控制器負責具體控制實現,而S7-400 CPU作為OS獲取S7-300數據的渠道——當然,如果有需要,也可以在S7-400中完成一些在設備控制之上的連鎖、復雜算法等等。
更具體實現過程而言,S7-300 CPU中的編程方式與上一章節的描述無異,但在S7-400 CPU中,如何利用S7-300 CPU通訊傳輸過來的數據,并采用和其他功能塊類似的ICON/操作面板風格在OS上體現,則是需要重點考慮的。針對這個需求通常有兩個方案:
- 自定義功能塊/ICON/操作面板
創建一個新的功能塊,定義相應的管腳連接通訊過來的數據。同時定義功能塊及相關管腳的屬性,同時在其中可以調用SFB35(“Alarm_8P”)產生相應的消息。在OS上,可以參照系統集成的ICON和面板來制作針對新功能塊的圖標和操作面板。
更多關于自定義功能塊/圖標/面板的信息可以參考:
《PCS 7 - Programming Instructions for Blocks》
PCS 7安裝目錄STEP7S7MANUALpcs7librarys7jpa70b.pdf - 利用現有的控制功能塊
在S7-400 CPU的編程中,可以利用PCS 7中現有的功能塊,例如標準庫下的Motor/Valve等。將S7-300 CPU中的相關數據與功能塊連接即可。
這種方案無需人為定義程序、面板等,而且由于可以采用和其他程序一樣的功能塊,所以編程、OS操作方式等都較為方便。但是,利用這種方法需要注意上下兩層控制的協調問題,典型情形就是OS和S7-300 CPU站本身的操作員面板之間的協調問題,為此,IL中還提供了相應的功能塊來解決分層操作的問題。
另外,由于S7-300 CPU和S7-400 CPU中的功能塊不同,可能存在數據無法*對應的問題。更為重要的是,OS上的信息并不能全部通過輸出管腳傳送到S7-300 CPU中。例如S7-400 CPU中采用標準塊Motor,而S7-300 CPU站點中采用S7Mot,而Motor塊操作面板上的“Reset”就無法通過輸出管腳下達到S7Mot中。
這兩個方案可以根據實際情況選擇使用,在此就不贅述。以下就重點介紹如何實現S7-300 CPU和S7-400 CPU站點的通訊。
3.1 與單S7-400 CPU通訊
3.1.1 組態S7連接
在S7-400 CPU的AS所在的單項目中點擊工具欄上的按鈕 ,打開網絡組態NetPro。在CPU上右鍵菜單中選擇“Insert New Connection”創建新的連接:
圖3-1 打開NetPro
在彈出的新窗口中選擇連接伙伴方。如果S7-300 CPU和S7-400 CPU處在同一個項目中,則可以直接選擇;如果處在不同的項目中,則需要選擇一個“Unspecified”(未),點擊“Apply”應用即可。
圖3-2 選擇通訊伙伴方
在如下所示的S7連接屬性設置窗口中填寫通訊伙伴方的IP地址,然后點擊“Address Details…”按鈕:
圖3-3 配置連接參數一
在詳細信息中修改伙伴方的槽位為2,點擊OK確認。
圖3-4 配置連接參數二
將建立好的連接下載到S7-400站即可。
3.1.2 通訊程序調用
在通訊功能塊調用之前,需要在S7-300 CPU中準備和S7-400 CPU通訊用的共享DB塊。示例中創建DB50和DB51,分別對應“輸出”和“輸入”數據。
在S7-400 CPU側調用“S7Put”完成向S7-300 CPU寫入數據,調用“S7Get”從S7-300 CPU側讀出數據:
圖3-5 功能塊調用
在上圖左側“S7Get”的功能塊中,S7-300 CPU站側的DB50里從DBB0開始的10個字節會被讀取到S7-400 CPU側的DB10里DBB18開始的10個字節區域中;
在上圖右側“S7Put”的功能塊中,S7-400 CPU站側的DB11里從DBB52開始的10個字節會寫入到S7-300 CPU側的DB51里從DBB0開始的10個字節區域中。
3.2 與S7-400 HCPU通訊
3.1.1 組態S7連接
由于S7-300 CPU和S7-400H CPU之間無法建立S7容錯連接,所以在連接創建的時候,需要分別從S7-400H CPU的兩個CPU分別建立到S7-300 CPU(或者Unspecified)的連接:
圖3-6 HCPU中0機架上的連接
圖3-7 HCPU中1機架上的連接
從S7-400H CPU的兩個CPU分別創建一個到“Unspecified”的S7連接,可以看到,這兩個連接的ID號是不同的。參照前文所述修改連接參數之后將連接下載到S7-400 CPU中。
HCPU到S7-300 CPU站點的通訊鏈路由兩個S7連接實現,如何基于這兩個連接可靠地完成數據交換則是需要考慮的重點。具體的方案較多,可以采用兩個連接同時工作,接受方通過判斷連接狀態來選擇數據的方式,也可以采用“心跳信號”的方式判斷出可用的連接之后再完成傳輸等。
在下載中心網頁上提供了一個“H_Status”的功能塊(下載地址:,可以方便地顯示HCPU的冗余狀態。基于“H_Status”提供的冗余狀態來選擇具體的通訊連接,具體編程如下:
圖3-8 HCPU下的通訊程序組態
上圖中,“H_Status”功能塊讀取0機架和1機架上CPU的主備狀態,通過管腳“R0_MSTR”/“R1_MSTR”輸出。這兩個輸出連接到負責通訊讀寫的“S7Put”和“S7Get”功能塊的使能管腳,這樣,當機架0為主CPU時,“R0_MSTR”為1,其所連接的通訊功能塊被使能,通訊從S7連接1中進行,反之亦然。
4、分層操作
PCS 7系統一般可以劃分多個操作層級,如*控制室、區域控制室、就地控制室、就地操作等等,每個層級都可以對同一現場設備進行操作。例如,現場控制站S7-300 CPU會配合一個操作員面板實現設備的就地監控,而控制室的PCS 7 OS負責整體的監控。有些情況,用戶希望只是位于就地的操作員面板可以操作設備,而位于中控室的計算機禁止操作,或者要求不能同時操作設備,防止多點操作造成設備的誤動作,保證人身安全、設備可靠穩定運行,因此分層操作控制是*的。分層操作可以在工廠范圍內協調各個層級的操作,提高工作效率、優化人員調配。
PCS 7 APL功能庫OpStations可以實現基于操作站的分層控制,而操作員面板與操作站OS之間權限控制的功能,可以通過PCS 7工業庫的S7UsrM功能塊來實現。組態步驟如下:
關于APL庫“OpStations”功能塊的使用請參考下面文檔:
《PCS 7 V7.1 SP2中OpStations功能塊的應用》 下載中心文檔編號: A0532 |
4.1 建立枚舉變量
為了能夠在程序塊圖標上顯示現場設備所屬的操作層級,需要創建枚舉變量“OP_Conf1”。如下圖所示,新建“Shared Declarations”,在“Shared Declarations”—“Enumerations”中新建枚舉變量,命名為“OP_Conf1”。
在其中創建需要的操作層級,對應的值依次從1到8,例如本地OS為1,控制室為2,*塊操作員界面為3等等。同時還定義數值0為“NoOperation”,以表示當前操作層級。
圖4-1 創建“OP_Conf1”
4.2 組態S7UsrM
將功能塊“S7UsrM”添加至新的或者先前的CFC中。“OPDEAV_1~8”8個層級是否可用。“KeySwitch”定義操作層級是否可以在OS中手動選擇,或當KeySwitch為1時通過程序設置KS_Device值來操作層級。“MaxLevel”定義在OS中顯示的大操作層級數量。連接S7UsrM至S7Mot和S7PMot,將輸出“QPERMIS”分別連接到兩個功能塊的“PERMIS”管腳,如下圖所示。
圖4-2 S7UsrM連接
為了讓S7Mot能夠從操作員面板上控制,可以將S7PMot的輸出管腳“QOP_ACTIVE”和“OP_ACTIVE”相連接。這樣在操作員面板獲得操作權限之后,可以對S7Mot塊進行手自動切換、復位等操作。
4.3 操作層級權限組態
4.3.1 OS組態
在WinCC Explorer打開操作站的OS項目,在Tag Management ® Internal tags ® Split Screen Manager中找到內部變量@Permission,其屬性StartValue定義為操作層級的起始值。若S7Mot參數“PERMIS”值與@Permission相等,則表示可以在OS中對設備進行操作。
圖4-3 @Permission默認值設置
4.3.2 操作員面板組態
在接口功能塊“S7PMot”中設置參數“PanelPerm”,用于操作面板的操作層級。只有當PanelPerm值等于S7PMot功能塊的OP_PERMIS參數值時才可能在操作員面板中對設備進行操作。
圖4-4 S7PMot的操作層級設置
當WinCC Flexible中添加面板時,會自動創建文本列表,用于面板操作層級的顯示。修改“Permission_S7”文本列表,使其與枚舉變量“OP_Conf1”*。
圖4-5 WinCC Flexible文本列表
4.4 操作運行
通過S7UsrM選擇LocalOS控制(因為@Permission設置為1),OS操作站上可以實現對電機的操作,而操作員面板不可操作,但顯示設備當前的操作層級。切換到Panel1,操作員面板上即可使能操作。
圖4-6 S7UsrM操作運行效果
關鍵詞
PCS 7 工業庫,S7-300 CPU,操作員面板,時間同步,多用戶操作