張?jiān)? 劉一琳
摘 要 Cimplicity是一款由美國(guó)GE公司開(kāi)發(fā)的,運(yùn)用靈活的監(jiān)控和數(shù)據(jù)采集系統(tǒng),在數(shù)據(jù)采集和監(jiān)控領(lǐng)域應(yīng)用十分廣泛。特別是在PMC系統(tǒng)中普遍使用。該軟件支持較多的廠家類型的PLC硬件,同時(shí)支持OPC協(xié)議,可以使用Kepware等OPC軟件對(duì)其他廠家的PLC設(shè)備提供支持,該軟件平臺(tái)也支持VB和C#語(yǔ)言編寫腳本,在人機(jī)界面的支持上也十分友好,因此在各個(gè)工廠的生產(chǎn)制造控制系統(tǒng)中使用較多。
關(guān)鍵詞 Cimplicity;PLC硬件;開(kāi)發(fā)研究
引言
上汽通用五菱發(fā)動(dòng)機(jī)工廠中的PMC系統(tǒng)中,班次和時(shí)間控制功能(Time Schedule Control,以下簡(jiǎn)稱為TSC)使用TSC GUI和TSC Service軟件服務(wù)進(jìn)行控制。TSC Service軟件服務(wù)對(duì)系統(tǒng)要求較高,只能運(yùn)行在Windows Server 2003和Windows XP版本的32位操作系統(tǒng)中,而且軟件的配置也相對(duì)比較復(fù)雜不利于使用。隨著微軟對(duì)操作系統(tǒng)軟件版本的更迭,目前已經(jīng)停止了對(duì)Windows Server 2003和Windows XP操作系統(tǒng)的支持,為了保證操作系統(tǒng)層面的安全穩(wěn)定和班次時(shí)間控制模塊的功能穩(wěn)定,因此需要開(kāi)發(fā)不受操作系統(tǒng)制約的方法來(lái)控制PMC系統(tǒng)的班次時(shí)間功能已經(jīng)顯得尤為重要。
1 PMC系統(tǒng)時(shí)間控制功能的結(jié)構(gòu)
目前上汽通用五菱在用的PMC系統(tǒng)班次時(shí)間控制的結(jié)構(gòu)如下圖:
在已有的項(xiàng)目中,班次時(shí)間控制是通過(guò)如上4個(gè)部分實(shí)現(xiàn)的。首先,通過(guò)TSC GUI軟件對(duì)班次時(shí)間進(jìn)行配置;第二,數(shù)據(jù)庫(kù)軟件記錄配置好的班次時(shí)間;第三,TSC Service軟件服務(wù)實(shí)時(shí)讀取數(shù)據(jù)庫(kù)記錄的班次時(shí)間并與當(dāng)前時(shí)間比對(duì),當(dāng)?shù)竭_(dá)設(shè)定的時(shí)間后向Cimplicity軟件平臺(tái)對(duì)應(yīng)點(diǎn)發(fā)送指令代碼;第四,Cimplicity軟件平臺(tái)接到指令后執(zhí)行班次事件的相關(guān)動(dòng)作。
本次開(kāi)發(fā)的功能將采用Cimplicity軟件平臺(tái)的VBS腳本功能組件,通過(guò)編寫腳本程序來(lái)替代整個(gè)過(guò)程的第三步,即TSC Service軟件服務(wù)的功能,有效地避免了操作系統(tǒng)環(huán)境影響TSC Service軟件運(yùn)行,進(jìn)而降低操作系統(tǒng)對(duì)PMC工程的影響,同時(shí)也提高了整個(gè)PMC系統(tǒng)功能的靈活性[1]。
2 班次事件的定義
在PMC系統(tǒng)中,當(dāng)前班次的運(yùn)行狀態(tài)被稱作為班次事件,包括班次開(kāi)始、班次結(jié)束、休息開(kāi)始和結(jié)束以及之間的一系列狀態(tài),每個(gè)狀態(tài)都需要執(zhí)行特定的動(dòng)作,例如播放提示音、匯總班次產(chǎn)量以及產(chǎn)量清零等。為了更好地區(qū)分每一個(gè)事件并且便于PMC系統(tǒng)區(qū)分和執(zhí)行相應(yīng)的事件,通過(guò)使用一串?dāng)?shù)字作為事件代號(hào)來(lái)代替相應(yīng)的事件。例如101表示第一班次的班次開(kāi)始(第1個(gè)小時(shí)),102為第一班次的第2個(gè)小時(shí),201為第二班次的第1個(gè)小時(shí),303為第三班次的第3個(gè)小時(shí)[2]。
3 腳本功能開(kāi)發(fā)
在Cimplicity軟件平臺(tái)的腳本模塊中,編寫腳本來(lái)替代TSC Service軟件服務(wù)器的功能。腳本名為GetNextEvent.bcl(簡(jiǎn)稱GNE),設(shè)置為隨工程啟動(dòng)后運(yùn)行。
當(dāng)腳本運(yùn)行時(shí),先要加載使用到的各種點(diǎn)信息,完成加載后進(jìn)入循環(huán)執(zhí)行模式,直到用戶點(diǎn)擊退出按鈕后退出循環(huán)后執(zhí)行退出程序。
4 實(shí)現(xiàn)效果
工程啟動(dòng)時(shí)運(yùn)行GNE腳本,每分鐘從數(shù)據(jù)庫(kù)中獲取下一次執(zhí)行的事件信息。例如:腳本獲取到08:00時(shí)的時(shí)間信息,到08:00時(shí)腳本將V_RUN_FLAG值設(shè)置為101,即第一班次的第一小時(shí),系統(tǒng)根據(jù)該點(diǎn)值的變更執(zhí)行班次開(kāi)始的過(guò)程。
完成置位后腳本重新向數(shù)據(jù)庫(kù)查詢下一個(gè)需要執(zhí)行的時(shí)間,查詢到在09:00時(shí)需要將V_RUN_FLAG值設(shè)置為102,同時(shí)通過(guò)數(shù)據(jù)庫(kù)算出當(dāng)前時(shí)間與09:00相差3600秒,賦值到V_REM_GEN點(diǎn)后開(kāi)始倒計(jì)時(shí),每分鐘重新查詢更新結(jié)果,直到09:00時(shí)將V_RUN_FLAG點(diǎn)值設(shè)置為102后繼續(xù)下一個(gè)循環(huán)。
5 結(jié)束語(yǔ)
通過(guò)使用Cimplicity軟件平臺(tái)的腳本模塊功能,編寫GetNextEvent.bcl腳本查詢數(shù)據(jù)庫(kù)中配置的事件信息,在到達(dá)時(shí)間后將指令代碼寫入到工程V_RUN_FLAG點(diǎn),經(jīng)過(guò)測(cè)試能夠完全替代原TSC Service軟件服務(wù)的工作。通過(guò)GEN腳本功能,可以使班次時(shí)間的控制完全擺脫Windows Server 2003操作系統(tǒng)的限制,同時(shí)使用腳本的方式比原軟件方式更加方便靈活。使用腳本方式后班次的時(shí)間控制可以不必再單獨(dú)占用一臺(tái)服務(wù)器,從而降低服務(wù)器的占用,節(jié)省企業(yè)的軟硬件的投入,使企業(yè)在激烈的市場(chǎng)競(jìng)爭(zhēng)中更具有優(yōu)勢(shì)。
參考文獻(xiàn)
[1] 張敏,張鳴飛,婁玉穎.探討電子信息化技術(shù)在工業(yè)電氣自動(dòng)化中的應(yīng)用[J].科技創(chuàng)新導(dǎo)報(bào),2017,14(12):14.
[2] 王曉蕾,牛春波.電子信息化技術(shù)在工業(yè)電氣自動(dòng)化中的應(yīng)用[J].電腦迷,2018,(4):229.