鄭劍 郝浩 劉思君 胡恩 俊玉
摘要:本文通過C#高級語言開發(fā)西門子S7-300PLC的上位機系統(tǒng),運用西門子提供的PRODAVE軟件包解決PC上位機與PLC之間的通訊問題,實現造粒生產線的自動控制。運行發(fā)現這種方法能對 PLC數據存儲器進行快速準確地讀寫,控制系統(tǒng)具有良好的動態(tài)性能。本文針對造粒生產線的實際要求詳細介紹了基于PRODAVE的PC-PLC通訊,同時也闡述了整個造粒生產線控制系統(tǒng)的設計。
關鍵詞:PRODAVE;PLC;造粒生產線;上位機系統(tǒng)
中圖分類號:TP273 文獻標識碼:A 文章編號:1007-9416(2020)08-0003-04
0 引言
在非金屬顆粒生產中,造粒對于顆粒質量起決定性作用。從廣義上講造粒就是對粉體、液體等狀態(tài)原料進行加工,將其成型為特定形狀的過程。隨著自動化技術的迅速發(fā)展,為了提高產品質量和生產效率,廠商紛紛要求引入自動化生產線[1-2]。
在工業(yè)控制系統(tǒng)中一般可使用組態(tài)軟件來完成PLC與上位機的通訊,但難以滿足個性化需求。結合造粒生產的實際問題,本文提出了基于Prodave造粒生產線控制系統(tǒng),通過西門子提供的PRODAVE MPI/IE 6.2模塊(下文提及PRODAVE指此版本),解決了上下位機通信問題,實現造粒機生產線的自動控制;上位機在Win7環(huán)境下采用C#語言編程,實現對造粒生產線全過程的實時監(jiān)測、故障報警、統(tǒng)計分析、視頻監(jiān)控等方面的功能;下位機主要由PLC來承擔動作執(zhí)行及數據采集等功能。
1 造粒機生產線功能需求分析
造粒生產線控制就是按照指定的配方比例,混合各種原料,經過充分混合后進行高溫密煉加工,然后由造粒機生產特定形狀的顆粒,最后打包并通過機器人在指定位置碼垛,完成整個生產過程[3-4]。如圖1為造粒機生產線加工過程圖。
作為一套完整的工業(yè)生產線控制系統(tǒng),不僅要求精準的動作控制,還要求能夠正確處理一些異常情況;同時要能實時的查看每個工位,每個設備的工作狀態(tài)及重要的參數,獲取生產現場的視頻監(jiān)控,對于出現異常數據及時的報警,并且做出相應的記錄;為了便于對員工的績效考核,統(tǒng)計出個人完成工作的數量及質量。最后還需將產品的關鍵信息存入后臺數據庫中支持歷史查詢等功能。
2 基于PRODAVE的PC和PLC之間的通訊
PRODAVE MPI/IE是西門子提供的專門用于解決PC與西門子PLC的通訊問題的軟件包,支持通過“DB_ Read/Write”、“Field_Read/Write”方式與西門子S7系列PLC進行數據傳輸。通過PRODAVE軟件包實現上位機對PLC的讀寫速度快,而且傳輸正確率高[5-6]。在造粒生產線控制系統(tǒng)調試過程中,大大縮短開發(fā)周期。
2.1 PRODAVE通信流程
PRODAVE軟件提供了豐富的基于Windows操作系統(tǒng)的DLL函數,為開發(fā)人員解決PLC和PC通訊的問題提供了極大地便利,開發(fā)人員可以通過PRODAVE建立與PLC的通訊。如圖2為通信流程圖。
2.2 建立PC-PLC通訊
2.2.1 設置PG/PC接口
首先設置上位機PG/PC接口。本項目選用CP5611通訊卡,PCI板卡與PLC的DP口通過PROFIBUS電纜連接,然后在PC上安裝CP5611驅動程序,對PG/PC接口進行設置,在訪問路徑標簽下選擇對應的CP5611(PROFIBUS)即可。
2.2.2 通訊實現
(1)建立連接。由于PRODAVE庫函數中用到了union結構,而C#無此類型需要進行轉化。共同體結構占用同一個開始地址,結束地址取決于其中最長的變量長度,結合本項目union占據6個byte的長度,因此使用C#中的System.Runtime.InteropServices.Marshal類為其分配6個byte長度的內存,聲明一個長度為6的byte類型數組。
然后調用LoadConnection_ex6連接PLC,返回值為0則連成功。調用SetActiveConnection_ex6激活連接。激活完成之后即可進行數據的傳輸。如果上述過程連接或激活不成功可調用GetErrorMessage_ex6獲取返回值用以指示錯誤位置。
(2)實現讀寫。由于PLC中數據儲存格式與PC中不一致,PC中32位Int整形的高位在左,低位在右,而PLC中正好與之相反,因此在寫入之前和讀取之后要對讀寫的內容做相應的格式轉換。
這里以PLC中DB2.DBD16的位置寫入一個DINT類型的數據a為例說明此問題。DINT型是32位的占據4個字節(jié),該數據占據了16~19號地址位,分別寫入的內容如表1所示。
然后將轉換后的結果放在一個數組中賦值給field_ write_ex6函數中對應的參數,執(zhí)行field_write_ex6即可寫入成功。同理對調用field_read_ex6函數讀出來的數組也要進行上面相反的格式轉換上位機才能正確顯示。
封裝是C#等面向對象程序設計語言的重要特征之一,為了便于在主程序中調用讀寫函數,對讀寫函數進行封裝。對DB數據塊中D、I、M、T、Z類型Write/Read封裝,封裝后只需填寫參數要即可完成寫的操作,如果返回值為0則寫入成功,反之出現故障,按返回值來查詢出現故障的原因。
(3)斷開連接。PRODAVE在一個進程中只能與一臺PLC建立連接,如果不斷開連接會導致在下一次連接無法成功。為了防止上位機通訊系統(tǒng)異?;蛩罊C等異常發(fā)生兼顧通信效率,每一次完成讀寫操作前先檢測是否連接,退出系統(tǒng)調用UnloadConnection_ex6函數斷開與PLC的連接。
(4)C#通訊中定時器的使用。為了實時監(jiān)測生產線各設備工作狀況,上位機需要周期性的讀取PLC寄存器中的數據,因此定時器的精度對數據的采集有很大程度的影響。
C#中共有三種timer 來實現定時功能:
①System.Windows.Forms.Timer
②System.Timers.Timer
③System.Threading.Timer
第一種也就是從工具箱中拖拽到WinForms窗體上的定時器timer,它是通過Windows消息機制實現的,由于消息的優(yōu)先級別比較低,容易造成數據的丟失。另一方面由于占用UI線程,如果timer_Tick事件代碼過長則會引起主窗體的卡頓,定時精度只能達到50ms左右,定時不準確。另外兩種timer類似,都是開啟獨立的計時線程計時精準,也不影響UI線程但使用時需要注意跨線程的操作。本系統(tǒng)采用第二種timer來實現定時采樣。
3 造粒生產線控制系統(tǒng)設計
造粒生產線控制系統(tǒng)有上下位機兩部分組成,上位機采用C#高級語言編程,在VS2010中開發(fā);下位機使用西門子S7-300PLC以及相應的模塊;兩者通過PRODAVE實現數據的傳輸。
3.1 硬件連接
本控制系統(tǒng)通過訪問SQL數據庫獲取配方的原料種類和添加質量以及生產過程中所需要的工藝參數,另一方面通過工業(yè)以太網和下位機PLC相連接完成數據傳輸[7]。硬件連接如圖3所示。
3.2 軟件結構
上位機主要充當用戶與下位機之間的媒介。本系統(tǒng)上位機軟件采用C#的三層架構技術來設計。表示層是直接呈現給用戶的,也就是軟件界面的設計;業(yè)務邏輯層是結合具體的情況對相應數據的業(yè)務邏輯處理,供表示層調用;數據訪問層是對數據庫的直接訪問與操作,供業(yè)務邏輯層調用。結構如圖4所示。由于使用三層架構,本系統(tǒng)具有良好的開放性和可擴充性,維護和升級方便,同時安全性也比較高。
3.3 功能模塊
造粒生產線控制系統(tǒng),主要功能模塊如圖5所示。用戶管理用于對用戶身份、權限的管理;生產計劃管理,主要對生產計劃進行管理;工藝管理是對生產過程工藝參數的管理;過程監(jiān)控是對生產數據、設備狀態(tài)的顯示、故障告警及各工位的視頻監(jiān)控;數據報表是根據管理需要開發(fā)對應的報表,實現報表的自動生產;數據庫管理主要是對數據庫的備份、還原等常規(guī)管理。
4 結語
調試表明PRODAVE一次連接與斷開PLC的時間在200ms左右,讀取一條數據時間0.7ms左右,因此要盡可能一次連接完成所有讀寫任務。此讀寫速度足以滿足造粒生產線控制系統(tǒng)的實時性要求。
工程實際應用表明本文提出的基于PRODAVE的造粒生產線控制系統(tǒng)從生產實際出發(fā),有效地解決了造粒生產中工藝數據和設備信息難以有效結合的問題,有效地提高了生產效率,降低了加工工人的勞動強度,進一步提高了造粒生產線的自動化水平。
參考文獻
[1] 楊文亮.煙花自動生產線及其造粒系統(tǒng)的設計與研究[D].天津:河北工業(yè)大學,2014.
[2] 李亞軍.集成過程分析技術和群體粒數衡算模擬的造粒過程決策支持系統(tǒng)的研究[D].廣州:華南理工大學,2018.
[3] 楊旭東,胡駿馬,王志磊,等.基于PLC的混合造粒控制系統(tǒng)設計[J].機械與電子,2017,35(1):36-38.
[4] 于洋.基于PLC的造粒過程控制系統(tǒng)設計[J].微型電腦應用,2019,35(4):102-104.
[5] 白鵬飛,齊巖磊,陳棫端,等.基于Visual C++和PLC的風量監(jiān)控系統(tǒng)的設計[J].機電工程技術,2017,46(5):103-105.
[6] 王琳,尹鵬,武建新,等.基于PRODAVE通訊的柔性制造仿真系統(tǒng)設計[J].制造技術與機床,2019(3):36-39.
[7] 吉孟蘭,何俊強.一種礦用挖掘機PLC與上位機通信軟件的設計[J].山西冶金,2018,41(5):22-24.