陸中杰, 郭勝軍
(中海網(wǎng)絡(luò)科技股份有限公司,上海 200135)
?
一種門式起重機(jī)監(jiān)控管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
陸中杰,郭勝軍
(中海網(wǎng)絡(luò)科技股份有限公司,上海 200135)
為提高大型起重機(jī)械的安全管理水平,預(yù)防和減少起重機(jī)械重大事故發(fā)生,以S7-300系列可編程邏輯控制器(Programmable Logic Controller, PLC)為基礎(chǔ)進(jìn)行數(shù)據(jù)采集,應(yīng)用視窗控制中心(Windows Control Center, WinCC)組態(tài)軟件、VB、JAVA EE框架和關(guān)系數(shù)據(jù)庫(kù)的軟件技術(shù)設(shè)計(jì)和實(shí)現(xiàn)起重機(jī)監(jiān)控管理系統(tǒng)(Crane Management System, CMS)。該系統(tǒng)不僅對(duì)提高港口大型起重機(jī)的安全管理水平、預(yù)防和減少起重機(jī)重特大事故發(fā)生具有重要意義,也為起重機(jī)管理信息化打下了基礎(chǔ)。
PLC; WinCC; 數(shù)據(jù)庫(kù); JAVA EE; VB
門式起重機(jī)屬于大型起重機(jī)械的一種,具有場(chǎng)地利用率高、作業(yè)范圍大、適用面廣及通用性強(qiáng)等特點(diǎn),在港口貨場(chǎng)得到了廣泛使用,主要用于料場(chǎng)貨、港口散貨等貨物的裝卸[1]。其金屬結(jié)構(gòu)像門形框架;承載主梁下安裝有2條支腳,可直接在地面的軌道上行走;主梁兩端具有外伸懸臂梁。由于大型起重機(jī)械的安全生產(chǎn)形勢(shì)較為嚴(yán)峻,國(guó)家特種設(shè)備安全部門等相關(guān)機(jī)構(gòu)聯(lián)合制定了《大型起重機(jī)械安裝安全監(jiān)控管理系統(tǒng)實(shí)施方案》,要求推動(dòng)大型起重機(jī)械監(jiān)控管理系統(tǒng)的使用工作,以提高大型起重機(jī)械的安全性能,進(jìn)而預(yù)防和減少起重機(jī)械重特大事故的發(fā)生。[2]
起重機(jī)監(jiān)控管理系統(tǒng)(Crane Management System, CMS)是一個(gè)綜合性系統(tǒng),融合了自動(dòng)化、計(jì)算機(jī)、信息化、通信和檢測(cè)等多個(gè)領(lǐng)域的技術(shù),具有集設(shè)備工作狀態(tài)監(jiān)視、設(shè)備維護(hù)和保養(yǎng)、故障檢測(cè)和預(yù)防、運(yùn)營(yíng)和管理等功能于一體的管理平臺(tái)。[3]這里就起重機(jī)監(jiān)控管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)進(jìn)行敘述。
起重機(jī)監(jiān)控管理系統(tǒng)以可編程邏輯控制器(Programmable Loic Controller, PLC)為基礎(chǔ)進(jìn)行數(shù)據(jù)采集,以服務(wù)器為數(shù)據(jù)管理中心進(jìn)行數(shù)據(jù)管理,以視窗控制中心(Windows Control Center, WinCC)和WEB頁(yè)面為前端界面進(jìn)行信息展示和交互,對(duì)起重機(jī)運(yùn)行過程中的數(shù)據(jù)進(jìn)行挖掘、處理和存儲(chǔ),進(jìn)而實(shí)現(xiàn)對(duì)起重機(jī)的全面監(jiān)控和管理。
1.1硬件架構(gòu)
起重機(jī)監(jiān)控管理系統(tǒng)架構(gòu)見圖1,其由本地LCMS系統(tǒng)和遠(yuǎn)程RCMS系統(tǒng)兩部分構(gòu)成,二者之間通過無線局域網(wǎng)進(jìn)行數(shù)據(jù)交換。
1) 本地LCMS系統(tǒng)由信號(hào)采集PLC、LCMS客戶端、視頻系統(tǒng)、交換機(jī)及無線AP組成。LCMS中的信號(hào)采集PLC用于采集起重機(jī)的數(shù)據(jù)和信號(hào);攝像機(jī)、編碼器和硬盤錄像機(jī)用于采集、存儲(chǔ)及傳輸視頻數(shù)據(jù);LCMS客戶端用于監(jiān)控起重機(jī)的過程數(shù)據(jù)和視頻數(shù)據(jù),并通過無線局域網(wǎng)與RCMS通信。
2) RCMS系統(tǒng)由RCMS客戶端、WEB/數(shù)據(jù)庫(kù)服務(wù)器、交換機(jī)及無線AP組成。RCMS客戶端用于管理各個(gè)LCMS客戶端的數(shù)據(jù),數(shù)據(jù)存儲(chǔ)在本地服務(wù)器,數(shù)據(jù)主要通過與LCMS端的數(shù)據(jù)庫(kù)進(jìn)行同步來獲得;此外,服務(wù)器還提供WEB服務(wù)。
1.2軟件架構(gòu)
從軟件的邏輯架構(gòu)看,系統(tǒng)可分為數(shù)據(jù)存儲(chǔ)層、數(shù)據(jù)訪問層、數(shù)據(jù)通信層、業(yè)務(wù)邏輯層和應(yīng)用層,其中:數(shù)據(jù)存儲(chǔ)層用于對(duì)數(shù)據(jù)庫(kù)進(jìn)行CRUD(Create, Retrieve, Update, Delete)操作;數(shù)據(jù)訪問層封裝了數(shù)據(jù)存儲(chǔ)層的具體實(shí)現(xiàn),為業(yè)務(wù)邏輯層訪問數(shù)據(jù)存儲(chǔ)層提供訪問接口;數(shù)據(jù)通信層通過WinCC的通信組件與PLC進(jìn)行數(shù)據(jù)交換;業(yè)務(wù)邏輯層封裝了CMS系統(tǒng)的各個(gè)功能模塊,包含軌跡錄制、軌跡回放、視頻監(jiān)控、報(bào)警管理和設(shè)備管理;應(yīng)用層包含了WEB應(yīng)用組件。系統(tǒng)邏輯架構(gòu)見圖2。
圖1 系統(tǒng)結(jié)構(gòu)
圖2 系統(tǒng)邏輯架構(gòu)
1.3系統(tǒng)特點(diǎn)
系統(tǒng)以西門子WinCC組態(tài)系統(tǒng)軟件為主框架,結(jié)合ActiveX數(shù)據(jù)對(duì)象(ActiveX Data Objects, ADO)和VB控件進(jìn)行開發(fā),具備數(shù)據(jù)和狀態(tài)實(shí)時(shí)監(jiān)控、歷史信息查詢、設(shè)備管理及報(bào)警管理等功能;其LCMS系統(tǒng)與RCMS系統(tǒng)間的故障和業(yè)務(wù)等信息具備實(shí)時(shí)一致性;同時(shí),系統(tǒng)提供WEB服務(wù),intranet用戶可通過瀏覽器查詢起重機(jī)的相關(guān)數(shù)據(jù)及其運(yùn)行狀態(tài)。[4-5]
2.1運(yùn)動(dòng)軌跡記錄與回放
當(dāng)起重機(jī)出現(xiàn)故障或發(fā)生事故時(shí),發(fā)生時(shí)間點(diǎn)前后的相關(guān)數(shù)據(jù)(如起重機(jī)的位置、速度和載重,電機(jī)的轉(zhuǎn)速、電流等)能為故障或事故發(fā)生原因分析提供很大幫助。
通常軌跡記錄可使用定時(shí)可視化Basic腳本(Visual Basic Script, VBS)將需要記錄的數(shù)據(jù)寫入數(shù)據(jù)庫(kù),但是數(shù)據(jù)記錄的頻率高、數(shù)量大,同時(shí)VBS的執(zhí)行效率低,若長(zhǎng)期頻繁地進(jìn)行大規(guī)模的記錄插入操作,會(huì)導(dǎo)致軟件運(yùn)行緩慢,影響系統(tǒng)響應(yīng)速度。而WinCC本身具有變量記錄功能,其方式也是將數(shù)據(jù)記錄在數(shù)據(jù)庫(kù)內(nèi)。相比前一種數(shù)據(jù)錄制方案,其性能更優(yōu),能以高頻率(10 ms級(jí)別)記錄大量變量而不影響軟件的整體性能。需注意,WinCC在寫入數(shù)據(jù)庫(kù)時(shí)對(duì)數(shù)據(jù)進(jìn)行了壓縮,讀取時(shí)需用特別的方式進(jìn)行還原。
軌跡回放時(shí),先將選定時(shí)間長(zhǎng)度的所有數(shù)據(jù)從數(shù)據(jù)庫(kù)中讀取到對(duì)應(yīng)的內(nèi)存數(shù)組中,隨后在回放時(shí)按系統(tǒng)采集頻率遍歷數(shù)組的數(shù)據(jù)。
2.2WinCC平臺(tái)視頻監(jiān)控
通過硬盤錄像機(jī)和攝像機(jī)可簡(jiǎn)單地實(shí)現(xiàn)視頻監(jiān)控功能,并能在硬盤錄像機(jī)上查看圖像畫面。然而,系統(tǒng)為體現(xiàn)其整體性、提高集成度、實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)一管理,考慮將視頻監(jiān)控功能嵌入到WinCC中,充分縮減上位機(jī)操作軟件的類型和數(shù)量,提高系統(tǒng)的操作體驗(yàn)。
由于WinCC屬于二次開發(fā)平臺(tái),而硬盤錄像機(jī)提供的開發(fā)包是基于一次開發(fā)平臺(tái)的,因此不能直接在WinCC中針對(duì)硬盤錄像機(jī)進(jìn)行編程開發(fā)。通常視頻編碼器提供SDK ActiveX控件,而WinNCC可嵌入VB控件,因此將視頻編碼器作為WinCC的視頻數(shù)據(jù)源。視頻信號(hào)經(jīng)過視頻編碼器編碼后輸出到WinCC,通過對(duì)VB開發(fā)控件編程可實(shí)現(xiàn)在WinCC中視頻監(jiān)控的功能。
2.3RCMS與PLC通信
RMCS主要用于集中管理碼頭的所有起重機(jī)。與LCMS側(cè)重于起重機(jī)的實(shí)時(shí)監(jiān)控不同,RCMS側(cè)重于起重機(jī)的數(shù)據(jù)管理,提供起重機(jī)歷史數(shù)據(jù)的查詢、分析和報(bào)表等功能。因此,選用VB進(jìn)行開發(fā)比選用WinCC更為合適。但是,RCMS也應(yīng)具有部分實(shí)時(shí)數(shù)據(jù)監(jiān)控功能作為輔助,因此必須與PLC通信來獲取數(shù)據(jù)。這里以西門子PLC為例,采用以太網(wǎng)連接方式,備選有以下3種通信方式。
1) MODBUS/TCP協(xié)議方式。需將PLC作為從站進(jìn)行編程,調(diào)用標(biāo)準(zhǔn)MODBUS通信功能塊發(fā)送和接收數(shù)據(jù);將VB作為主站,使用WINSOCKET 控件對(duì)MODBUS協(xié)議進(jìn)行編程發(fā)送。采用該方式的優(yōu)點(diǎn)是TCP協(xié)議與MODBUS協(xié)議的標(biāo)準(zhǔn)性和開放性,缺點(diǎn)是當(dāng)需要改變監(jiān)控?cái)?shù)據(jù)時(shí)必須修改PLC程序。
2) OPC(OLE for Process Control)方式。需在RCMS端組態(tài)和配置OPC SERVER,同時(shí)在PLC中配置好S7連接通道。在VB環(huán)境中引用Simens OPC Daautomation 2.0后即可用西門子OPC SERVER的接口函數(shù),對(duì)連接服務(wù)器、添加OPC組對(duì)象、添加數(shù)據(jù)項(xiàng)及同步數(shù)據(jù)讀寫進(jìn)行編程。采用該方式的優(yōu)點(diǎn)是在修改通信內(nèi)容時(shí)不必改動(dòng)PLC,直接修改OPC SERVER的配置即可;此外,OPC作為一個(gè)標(biāo)準(zhǔn),使得RCMS端可連接不同廠商的PLC。采用該方式的缺點(diǎn)是數(shù)據(jù)需經(jīng)過OPC SERVER中轉(zhuǎn),通信延遲較高,數(shù)據(jù)刷新速度較低。
3) S7CONNECTION方式。使用S7協(xié)議可很容易地讀寫出各PLC內(nèi)的I,Q,M,DB等區(qū)域的數(shù)值。由于S7協(xié)議是保密的,無法直接編程,因此PLC廠家專門開發(fā)了封裝S7通信協(xié)議的組件PRODAVE,提供了豐富的操作接口函數(shù)。采用該方式的優(yōu)點(diǎn)是可以快速訪問PLC內(nèi)任意存儲(chǔ)器的數(shù)據(jù),且改變通信數(shù)據(jù)時(shí)無需改動(dòng)PLC的配置和程序。采用該方式的缺點(diǎn)是其不支持并發(fā)連接,當(dāng)前激活的連接只有1個(gè)時(shí),必須將其關(guān)閉后才能切換到其他連接。
這里采用的是使用PRODAVE進(jìn)行S7通信的方式。對(duì)比MODBUS/TCP方式,該方式無需修改PLC端程序;對(duì)比OPC方式,OPC服務(wù)器占用RCMS端資源多、通信延遲高、故障恢復(fù)周期長(zhǎng)。對(duì)于其他品牌的PLC,既可選擇使用MODBUS/TCP和OPC等標(biāo)準(zhǔn)方式進(jìn)行通信,也可針對(duì)PLC專用協(xié)議進(jìn)行編程實(shí)現(xiàn)。
3.1PLC數(shù)據(jù)采集
起重機(jī)械的控制系統(tǒng)本身具有主控PLC,包含了大部分監(jiān)控系統(tǒng)中需要采集的數(shù)據(jù),可直接使用。但是,為將起重機(jī)控制系統(tǒng)本身與CMS管理系統(tǒng)區(qū)分開,同時(shí)又不破壞原起重機(jī)的PLC程序,需在LCMS中采用一套獨(dú)立的PLC來采集數(shù)據(jù)。LCMS的PLC可通過PROFIBUS-DP現(xiàn)場(chǎng)總線協(xié)議或MODBUS-RTU協(xié)議與起重機(jī)本地PLC通信來讀取需要監(jiān)控的數(shù)據(jù)。此外,PLC中還配置了開關(guān)量信號(hào)、4~20 mA電流信號(hào)、0~10 V直流電壓信號(hào)和熱電阻信號(hào)的處理模塊,連接安裝在起重機(jī)上用來進(jìn)行安全監(jiān)測(cè)的傳感器以采集數(shù)據(jù)。
LCMS的PLC控制器一方面會(huì)將采集到的各種信號(hào)經(jīng)處理后傳輸?shù)絎inCC的監(jiān)控畫面上顯示,另一方面會(huì)判斷當(dāng)前的狀態(tài)是否會(huì)觸發(fā)系統(tǒng)報(bào)警。在控制器中,根據(jù)不同的報(bào)警設(shè)置了不同的報(bào)警觸發(fā)位,一旦該位被置位,WinCC的報(bào)警系統(tǒng)就會(huì)給出報(bào)警提示。
3.2接口模塊
接口模塊是一種為WinCC和底層數(shù)據(jù)庫(kù)提供服務(wù)的中間件,其封裝了對(duì)數(shù)據(jù)庫(kù)的CRUD操作及一些業(yè)務(wù)邏輯,為WinCC訪問底層數(shù)據(jù)庫(kù)提供了統(tǒng)一的接口。接口模塊的開發(fā)環(huán)境是基于Visual Basic 6.0設(shè)置的[6]。
3.2.1模塊的結(jié)構(gòu)
模塊的主體是類模塊,包含報(bào)警、回放和數(shù)據(jù)管理等3個(gè)模塊,用于存放一些共享屬性和方法,供類模塊中的方法調(diào)用。數(shù)據(jù)庫(kù)的訪問則使用了微軟的ADO應(yīng)用接口。
3.2.2模塊中主要包含的函數(shù)
模塊中主要包含以下函數(shù)。
(1) Private Sub Class_Initialize():類模塊初始化,設(shè)置模塊必須的參數(shù)。
(2) Private Sub Class_Terminate():類模塊銷毀時(shí),釋放所占用的資源。
(3) Public Sub OpenSQLServer():打開數(shù)據(jù)庫(kù)連接。
(4) Public Sub CloseSQLServer():關(guān)閉數(shù)據(jù)庫(kù)連接。
(5) Public Sub DBExecuteSQL(SQLStr As String):執(zhí)行字符串語(yǔ)句SQL命令;參數(shù)SQLStr為字符串類型。
(6) Public Function DBGetRecordset(SQLStr As String) As ADODB.Recordset:查找字符串指定的數(shù)據(jù)庫(kù)記錄,返回記錄集對(duì)象;參數(shù)SQLStr為字符串類型SQL語(yǔ)句。
(7) Public Function CMSGetAlarmHistory(AlarmD As String, AlarmT As String, QType As Integer) As ADODB.Recordset:查找符合條件的歷史報(bào)警記錄,返回記錄集對(duì)象;參數(shù)AlarmD為日期字符串。
(8) Public Sub CMSAlarmProcessList(ByVal TagIDM As String):查詢當(dāng)前的報(bào)警記錄。
(9) Public Sub CMSStartPlaying(ByVal SPointer As Integer):運(yùn)動(dòng)軌跡回放。
3.2.3模塊的使用
在開發(fā)環(huán)境中將接口模塊編譯成可執(zhí)行文件并運(yùn)行。在WinCC的VBS腳本編輯器中調(diào)用CreateObject方法創(chuàng)建接口模塊的對(duì)象實(shí)例,并通過對(duì)象實(shí)例調(diào)用類的方法實(shí)現(xiàn)業(yè)務(wù)邏輯。
3.3監(jiān)控功能設(shè)計(jì)
LCMS端主要用于實(shí)時(shí)監(jiān)控,其軟件采用西門子WinCC開發(fā),根據(jù)功能分為起重機(jī)狀態(tài)實(shí)時(shí)監(jiān)控、起重機(jī)運(yùn)動(dòng)軌跡回放、報(bào)警管理和視頻監(jiān)控等界面。
3.3.1起重機(jī)狀態(tài)實(shí)時(shí)監(jiān)控
起重機(jī)需要監(jiān)控的數(shù)據(jù)量通常較大,將其全部顯示在同一個(gè)界面上顯然不太合適。因此,將狀態(tài)實(shí)時(shí)監(jiān)控界面分為總體監(jiān)控界面和分部監(jiān)控界面兩部分,其中:總體監(jiān)控界面中只顯示起重機(jī)最重要的數(shù)據(jù);分部監(jiān)控界面則根據(jù)起重機(jī)的特性,按照功能結(jié)構(gòu)設(shè)計(jì)有大車監(jiān)控、小車監(jiān)控、起升監(jiān)控和鉤移監(jiān)控界面,所有監(jiān)控的信號(hào)和數(shù)據(jù)都會(huì)在這些界面上顯示出來。
LCMS中的PLC負(fù)責(zé)采集起重機(jī)上所有需要監(jiān)控的信號(hào)和數(shù)據(jù),是起重機(jī)狀態(tài)實(shí)時(shí)監(jiān)控的數(shù)據(jù)源。為將PLC采集到的數(shù)據(jù)顯示在界面上,必須在WinCC內(nèi)建立通信變量,變量地址與PLC的內(nèi)部地址對(duì)應(yīng)。由于起重機(jī)會(huì)同時(shí)包含多個(gè)相同的部件,因此若需要?jiǎng)?chuàng)建的變量相同,則可以利用結(jié)構(gòu)變量簡(jiǎn)化工作量。此外,為保證數(shù)據(jù)的實(shí)時(shí)性,選用工業(yè)以太網(wǎng)作為傳輸介質(zhì)。
3.3.2起重機(jī)運(yùn)動(dòng)軌跡回放
運(yùn)動(dòng)軌跡回放是指將人工選定時(shí)間段內(nèi)的起重機(jī)狀態(tài)信號(hào)和數(shù)據(jù)動(dòng)態(tài)地還原出來。這些數(shù)據(jù)來源于數(shù)據(jù)庫(kù),當(dāng)系統(tǒng)運(yùn)行時(shí)起重機(jī)狀態(tài)數(shù)據(jù)會(huì)以較高的頻率存入數(shù)據(jù)庫(kù)。運(yùn)動(dòng)軌跡回放界面的功能主要包含獲取數(shù)據(jù)、保存數(shù)據(jù)和回放數(shù)據(jù)等3部分。
(1) 獲取數(shù)據(jù):以起始時(shí)間和結(jié)束時(shí)間為條件查詢狀態(tài)數(shù)據(jù),將得到的記錄集通過數(shù)據(jù)表格控件在界面上顯示出來,每一行數(shù)據(jù)代表某一個(gè)時(shí)刻所有記錄點(diǎn)的數(shù)據(jù)集合。
(2) 保存數(shù)據(jù):創(chuàng)建EXCEL對(duì)象,將之前顯示在表格控件中的數(shù)據(jù)按行依次寫入EXCEL對(duì)象的表單中,最后保存為EXCEL文件。每執(zhí)行一次軌跡回放,都將分別在本地和RCMS端生成一個(gè)數(shù)據(jù)文件。
(3) 回放數(shù)據(jù):從生成的數(shù)據(jù)文件列表中選取一個(gè)數(shù)據(jù)文檔,讀取文檔中的起始時(shí)間、結(jié)束時(shí)間、記錄數(shù)目和每天記錄的具體數(shù)值,將其存放到一個(gè)2維數(shù)組中(其中:列表示每個(gè)不同的數(shù)據(jù)點(diǎn)對(duì)應(yīng)到相應(yīng)的變量;行表示不同的時(shí)間點(diǎn))?;胤艜r(shí),根據(jù)采集的頻率將2維數(shù)組中的數(shù)據(jù)按行寫入對(duì)應(yīng)的變量。界面上,通過將圖像的幾何屬性鏈接到變量實(shí)現(xiàn)動(dòng)畫效果,圖像的幾何屬性隨著變量數(shù)值的變化而變化,能夠還原所選時(shí)間段內(nèi)起重機(jī)運(yùn)行的軌跡;同時(shí),對(duì)于一些數(shù)值型的屬性(如電流),使用圖表控件顯示其波形。
3.3.3報(bào)警管理
報(bào)警列表分為當(dāng)前報(bào)警列表和歷史報(bào)警列表,其中:當(dāng)前報(bào)警列表只顯示當(dāng)前存在的報(bào)警信息;歷史報(bào)警列表包含之前所有發(fā)生過的報(bào)警信息。當(dāng)前報(bào)警列表的刷新由事件觸發(fā),當(dāng)PLC報(bào)警信號(hào)出現(xiàn)時(shí),系統(tǒng)將報(bào)警相關(guān)信息記錄到當(dāng)前報(bào)警和歷史報(bào)警的數(shù)據(jù)表中;當(dāng)PLC報(bào)警信號(hào)消失時(shí),當(dāng)前報(bào)警數(shù)據(jù)表中對(duì)應(yīng)的記錄將被刪除,同時(shí)更新歷史報(bào)警數(shù)據(jù)表中對(duì)應(yīng)記錄的狀態(tài)。
RCMS端的數(shù)據(jù)庫(kù)將會(huì)同步本地的當(dāng)前報(bào)警和歷史報(bào)警記錄。當(dāng)本地更新當(dāng)前報(bào)警和歷史報(bào)警時(shí),將會(huì)把記錄同步到RCMS端。
3.3.4視頻監(jiān)控
以MOXA視頻編碼器為例,通過其提供的SDK ActiveX控件[8]可將視頻監(jiān)控畫面嵌入到WinCC中。畫面打開時(shí)必須初始化控件的以下屬性。
(1) HttpPort:Http的端口,通常是80。
(2) VideoProtocol:設(shè)置連接協(xié)議,可以是UDP/TCP/HTTP/Multicast。
(3) CHIndex:選擇顯示的視頻通道。
(4) StreamingType:設(shè)置編碼類型,可以是MPEG4/MJPEG/H.264。
(5) ServerIP:編碼器的IP地址。
此外,開發(fā)時(shí)需要用到的方法主要有以下幾種。
(1) Connect:連接到編碼器。
(2) Disconnect:斷開編碼器連接。
(3) SendCameraCommand:發(fā)送控制命令給攝像機(jī),支持左移、右移、上移、下移、放大及縮小等指令。
3.4管理功能設(shè)計(jì)
RCMS端主要用于起重機(jī)群的管理,包含報(bào)警管理、運(yùn)動(dòng)軌跡回放管理、起重機(jī)運(yùn)行維護(hù)管理、起重機(jī)實(shí)時(shí)監(jiān)控等功能,側(cè)重于數(shù)據(jù)的查詢和報(bào)表。管理功能的數(shù)據(jù)源存儲(chǔ)在本地?cái)?shù)據(jù)庫(kù)中,其中:報(bào)警和運(yùn)動(dòng)軌跡的數(shù)據(jù)由所有LCMS的數(shù)據(jù)庫(kù)通過事件觸發(fā)同步;運(yùn)行維護(hù)的數(shù)據(jù)需要本地輸入。
以西門子PLC為例,運(yùn)用PRODAVE提供的接口進(jìn)行編程,實(shí)現(xiàn)RCMS與PLC的數(shù)據(jù)通信[9]。PRODAVE主要提供以下API。
(1) LoadConnection_ex6 :用于建立連接,初始化參數(shù)和適配器。
(2) UnloadConnection_ex6:關(guān)閉連接,必須在退出應(yīng)用前調(diào)用。
(3) db_read_ex6:讀取背景數(shù)據(jù)塊中的數(shù)據(jù)。
(4) db_write_ex6:向背景數(shù)據(jù)塊中寫入數(shù)據(jù)。
(5) field_read_ex6:讀取I,Q,M等區(qū)域中的數(shù)據(jù)。
(6) field_write_ex6:向I,Q,M等區(qū)域中寫入數(shù)據(jù)。
3.5WEB 應(yīng)用
服務(wù)器為接入到本系統(tǒng)的intranet用戶提供WEB應(yīng)用,主要功能是在線數(shù)據(jù)查詢、分析和報(bào)表。
WEB應(yīng)用的架構(gòu)屬于輕量級(jí)JAVA EE,采用MVC架構(gòu)模式使表現(xiàn)層、業(yè)務(wù)邏輯層和實(shí)體之間的代碼分離[10]。其基于STRUTS2和HIBERNATE框架,前者是較為成熟的MVC框架,核心是采用攔截器來處理請(qǐng)求;后者是著名的ORM框架,可使用對(duì)象編程思維來操縱數(shù)據(jù)庫(kù)[11-13]。在請(qǐng)求方式上,運(yùn)用AJAX使頁(yè)面能夠?qū)崟r(shí)響應(yīng)請(qǐng)求,具體采用JQUERY+JSON實(shí)現(xiàn)。JQUERY是AJAX的一個(gè)框架,其實(shí)際上是一個(gè)輕量級(jí)的JavaScript庫(kù)。要實(shí)現(xiàn)異步請(qǐng)求就需要使用JQUERY中的.ajax()函數(shù),該函數(shù)將請(qǐng)求通過GET或POST方式發(fā)送至服務(wù)器,STRUTS2的攔截器攔截到ACTION后執(zhí)行相應(yīng)的SERVICE,SERV-ICE通過DAO層對(duì)數(shù)據(jù)庫(kù)進(jìn)行讀寫。當(dāng)請(qǐng)求成功后,$.ajax()會(huì)回調(diào)一個(gè)包含STRUTS2返回?cái)?shù)據(jù)的函
數(shù),可以把返回?cái)?shù)據(jù)顯示在頁(yè)面上。JSON是一種”KEY/VALUE”形式的數(shù)據(jù)格式,其優(yōu)點(diǎn)是相比XML更小、更快、更容易解析。須注意,在STRUTS2中只有引入JSON的插件包才能使STRUTS2支持JSON。
將ADO,SQL及控件等技術(shù)應(yīng)用到WinCC的平臺(tái)上開發(fā)了起重機(jī)監(jiān)控管理系統(tǒng),并結(jié)合PLC控制、信息技術(shù)、視頻技術(shù)及相關(guān)組件的應(yīng)用構(gòu)建了一個(gè)綜合性的系統(tǒng)平臺(tái),實(shí)現(xiàn)了大型起重機(jī)的監(jiān)控與管理。系統(tǒng)在架構(gòu)上結(jié)合了自動(dòng)化技術(shù)和信息化技術(shù),借助互聯(lián)網(wǎng)技術(shù)將底層的過程數(shù)據(jù)融入到了企業(yè)的生產(chǎn)管理中,對(duì)提高企業(yè)的生產(chǎn)效率和管理水平具有積極作用。該系統(tǒng)的架構(gòu)不局限于起重機(jī)監(jiān)控領(lǐng)域的應(yīng)用,同樣適用于其他類型設(shè)備的監(jiān)控系統(tǒng)。
[1]大型船廠造船門式起重機(jī)安全監(jiān)控管理系統(tǒng)研究與開發(fā)[J].機(jī)電工程,2014,31(1):72-75.
[2]GB/T 28264—2012,起重機(jī)械安全監(jiān)控管理系統(tǒng)[S].北京:中國(guó)標(biāo)準(zhǔn)出版社出版,2012.
[3]楊繼雪,李麗.門座起重機(jī)網(wǎng)絡(luò)安全監(jiān)控管理系統(tǒng)[J].起重運(yùn)輸機(jī)械,2012(10):75-77.
[4]SCEPPA D. ADO.NET 2.0技術(shù)內(nèi)幕[M].北京:清華大學(xué)出版社,2007.
[5]楊輝,劉海龍.塔式起重機(jī)遠(yuǎn)程安全監(jiān)控管理系統(tǒng)設(shè)計(jì)[J].自動(dòng)化儀表,2012(10):27-29.
[6]羅朝盛.Visual Basic 6.0程序設(shè)計(jì)教程[M].3版.北京:人民郵電出版社,2009.
[7]姜桂洪.SQL Server 2005數(shù)據(jù)庫(kù)應(yīng)用與開發(fā)[M].北京:清華大學(xué)出版社,2010.
[8]VPort SDK ActiveX Control,Moxa,2014.
[9]PRODAVE MPI/IE V6.2 Manual,simens,2012.
[10]李剛.輕量級(jí)Java EE企業(yè)應(yīng)用實(shí)戰(zhàn):Struts 2+Spring 3+Hibernate整合開發(fā)[M].北京:電子工業(yè)出版社,2008.
[11]誒克爾.JAVA編程思想[M].陳昊鵬北京:機(jī)械工業(yè)出版社,2007.
[12]李剛.Struts 2.x權(quán)威指南[M].北京:電子工業(yè)出版社,2012.
[13]孫衛(wèi)琴.精通Hibernate:Java對(duì)象持久化技術(shù)詳解[M].北京:電子工業(yè)出版社,2010.
Design and implementation of Crane Management System
LU Zhongjie,GUO Shengjun
(ChinaShippingNetworkTechnologyCo.,Ltd,Shanghai200135,China)
The Crane Management System uses S7-300 PLC for data collection and the combination of software technologies, such as the WINCC, Java EE framework, visual basic and database technology, to build the crane management system. The system is an effective tool for improving the safety management, and the information management as well.
PLC; WINCC; database; Java EE framework; VB
2015-10-16
陸中杰(1982—),男,上海市人,工程師,主要從事工業(yè)自動(dòng)化系統(tǒng)設(shè)計(jì)工作。
1674-5949(2016)01-076-05
TH213.5; TP277
A