厲復(fù)興 張煥煜 李 強(qiáng)
作者通聯(lián):日照港股份公司第一港務(wù)分公司設(shè)備技術(shù)科山東日照市黃海一路126號 276826
E-mail:13963037815@163.com
日照港第一港務(wù)分公司共有84條流程,89臺翻車機(jī)、皮帶機(jī)及取料機(jī)等流程設(shè)備,根據(jù)使用經(jīng)驗(yàn),這些采用單一PLC技術(shù)的流程設(shè)備控制系統(tǒng)存在以下諸多問題。
(1)按單條流程進(jìn)行設(shè)備的連鎖編程,需要大量的互鎖和連鎖程序段。
(2)每次生產(chǎn)擴(kuò)建添加新設(shè)備、新流程時(shí),需要仔細(xì)閱讀并大幅改動原有程序,難度大。
(3)PLC不擅長數(shù)據(jù)計(jì)算、循環(huán)控制和字符串賦值,每次涉及這類功能,都需要大篇幅程序。
(4)程序編寫過程中產(chǎn)生大量的中間過渡點(diǎn),占用PLC內(nèi)存,減緩了PLC處理數(shù)據(jù)速度。
為此,公司結(jié)合數(shù)據(jù)庫技術(shù)、高級匯編語言和原有PLC重新設(shè)計(jì)流程設(shè)備的控制方式。
依托數(shù)據(jù)庫,在數(shù)據(jù)庫表格中建立設(shè)備編號表、流程編號表、流程中設(shè)備順序編號表。利用ODBC數(shù)據(jù)源管理器建立數(shù)據(jù)庫與上位機(jī)之間的數(shù)據(jù)連接,上位機(jī)提取數(shù)據(jù)庫表格中的信息。采用高級語言對提取的信息進(jìn)行賦值、循環(huán)計(jì)算,通過上位機(jī)與PLC的連接,由PLC發(fā)送流程設(shè)備啟動、停止指令,并采集流程設(shè)備信息,進(jìn)行上位監(jiān)控(圖1)。
(1)利用 Microsoft Access表格建立日照港設(shè)備數(shù)據(jù)表格。①設(shè)備分列表(表1),對流程設(shè)備排序;②流程分列表(表2),對流程號排序;③流程中設(shè)備順序分列表(表3),對每條流程的設(shè)備順序編號,將每條流程的設(shè)備號從上游到下游進(jìn)行順序排列。
圖1 流程設(shè)備控制系統(tǒng)設(shè)計(jì)流程
表1 設(shè)備編號
表2 流程編號
(2)結(jié)合上述設(shè)備數(shù)據(jù)表格,利用MicrosoftAccess建立關(guān)系型數(shù)據(jù)庫(圖2)。制作設(shè)備起始—結(jié)束列表( 表 4),挑選出每個(gè)流程的起始設(shè)備和結(jié)束設(shè)備,如1#流程起始設(shè)備是 110#設(shè)備(2#翻車機(jī)),結(jié)束設(shè)備是114#設(shè)備(1#堆料機(jī))。制作設(shè)備信息綜述表格( 表 5),對流程號、設(shè)備號、流程中設(shè)備編號進(jìn)行綜述,如1#流程順序依次是110#設(shè)備(2#翻車機(jī))、17#設(shè)備(3-4皮帶機(jī))、80#設(shè)備(3-3皮帶機(jī))、16#設(shè)備(3-2皮帶機(jī))、84#設(shè)備 (3-1皮帶機(jī))、14#設(shè)備(1#堆料機(jī))。
基于Window自帶的ODBC數(shù)據(jù)源管理器,通過ODBC數(shù)據(jù)源系統(tǒng)DNS建立Window與日照港設(shè)備 Microsoft Access表格的連接(圖3)。上位機(jī)使用SQL語言,可利用ODBC直接讀取、填寫數(shù)據(jù)表格中的數(shù)據(jù)。
表3 設(shè)備順序編號
圖2 關(guān)系型數(shù)據(jù)庫
表4 設(shè)備起始—結(jié)束列表
表5 設(shè)備信息綜述列表
圖3 ODBC數(shù)據(jù)源管理器
(1)在上位機(jī)創(chuàng)建每條皮帶機(jī)的啟動、停止點(diǎn),并建立上位機(jī)與PLC的通信。
(2)在上位機(jī)建立組態(tài)畫面。以CIMPLI-CITY編程軟件為例建立上位畫面(圖4)。
圖4 上位畫面
利用圖4腳本VB語言編寫循環(huán)語句,通過起始和終點(diǎn)設(shè)備選出流程號及其流程設(shè)備。
利用SQL語言通過ODBC數(shù)據(jù)源管理器打開設(shè)備開始—結(jié)束分表格,選擇流程號。
通過選出的流程號,利用SQL語言選擇前3個(gè)設(shè)備進(jìn)行顯示,由操作人員確認(rèn)流程是否正確。
操作員點(diǎn)擊流程啟動按鈕,將對應(yīng)流程里的所有設(shè)備進(jìn)行賦值。上位機(jī)采用VB語言的循環(huán)語句賦值,PLC同時(shí)收到整流程所有設(shè)備的啟動、停止信號。
(1)流程設(shè)備PLC啟動控制。利用上游皮帶機(jī)的啟動信號作為本條皮帶機(jī)的啟動、運(yùn)轉(zhuǎn)連鎖(圖5)。
(2)流程設(shè)備PLC停止控制。流程皮帶機(jī)的皮帶機(jī)長度/皮帶機(jī)轉(zhuǎn)速=順序停機(jī)的設(shè)定時(shí)間(圖6)。
圖5 啟動PLC控制方式
圖6 停止PLC控制方式
流程設(shè)備控制系統(tǒng)改進(jìn)后,新設(shè)備的添加只需在數(shù)據(jù)庫表格中進(jìn)行,避免了因添加設(shè)備進(jìn)行大篇幅修改程序的工作??刂瞥绦虬凑哲浖攸c(diǎn)進(jìn)行優(yōu)化分配,上位機(jī)擅長處理畫面和高級語言,PLC擅長開關(guān)量信號,確保軟件發(fā)揮出特長,有效簡化了程序段長度。