張 興,周 炳,司江舸,唐乾偉,徐正榮,馬振超
(中海油能源發(fā)展股份有限公司工程技術(shù)分公司,天津 300452)
某些海上老齡平臺(tái)發(fā)電機(jī)組儀表系統(tǒng)缺乏有效數(shù)字化監(jiān)測(cè)手段,機(jī)組元器件多采用模擬量指針儀表,誤差大。為進(jìn)一步優(yōu)化發(fā)電機(jī)組監(jiān)控系統(tǒng),本文提出一種數(shù)字化儀表系統(tǒng),通過總線技術(shù)、PLC控制技術(shù)和嵌入式Linux技術(shù),實(shí)現(xiàn)了數(shù)字化、網(wǎng)絡(luò)化儀表系統(tǒng)。
發(fā)電機(jī)組一般儀表監(jiān)控系統(tǒng)常用獨(dú)立傳感器+儀表的簡(jiǎn)單組成形式,儀表系統(tǒng)硬件多、線路復(fù)雜,無通信擴(kuò)展接口或接口不統(tǒng)一,有的儀表系統(tǒng)在機(jī)旁與遠(yuǎn)程控制箱各設(shè)置1套儀表系統(tǒng),維護(hù)成本高。
對(duì)發(fā)電機(jī)組控制系統(tǒng)而言,除上述儀表用傳感器以外,還需要各種控制開關(guān)器件,如機(jī)組溫度測(cè)量。除了滿足測(cè)量?jī)x表使用外,還必須安裝溫控開關(guān)滿足控制要求,有時(shí)預(yù)報(bào)警、報(bào)警、停機(jī)等功能對(duì)應(yīng)多個(gè)控制開關(guān),極大增加了系統(tǒng)繁雜性。
常見儀表監(jiān)控系統(tǒng)構(gòu)成如圖1所示。
圖1 傳統(tǒng)儀表及控制系統(tǒng)布置圖
雖然這種系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,但功能單一,器件多,硬件體積大,不能實(shí)現(xiàn)網(wǎng)絡(luò)化、數(shù)字化、信息化等高級(jí)管理功能。
數(shù)字化儀表系統(tǒng)綜合采用模擬量傳感器、變送器、總線型儀表作為數(shù)據(jù)采集前端,通過 Modbus總線數(shù)據(jù)采集模塊實(shí)現(xiàn)數(shù)據(jù)處理,而后通過PC機(jī)或PLC控制器+HMI實(shí)現(xiàn)數(shù)據(jù)輸出與顯示。
發(fā)電機(jī)組數(shù)字化儀表系統(tǒng)的硬件構(gòu)成見圖2。
圖2 發(fā)電機(jī)儀表監(jiān)測(cè)系統(tǒng)硬件結(jié)構(gòu)
該系統(tǒng)由本地、遠(yuǎn)程系統(tǒng)2部分組成,本地部分實(shí)現(xiàn)現(xiàn)場(chǎng)測(cè)量和本地?cái)?shù)據(jù)顯示,遠(yuǎn)程部分用于實(shí)現(xiàn)數(shù)據(jù)網(wǎng)絡(luò)化和信息化。
現(xiàn)場(chǎng)數(shù)據(jù)采集模塊采用研華ADAM4017+8通道16位AD模擬量輸入采集模塊,可采集電壓和電流模擬量信號(hào),8通道都提供了可獨(dú)立編程量程范圍,支持 Modbus協(xié)議。本設(shè)計(jì)主要利用ADAM4017+來監(jiān)測(cè)發(fā)電機(jī)組運(yùn)行參數(shù)。各項(xiàng)傳感數(shù)據(jù)經(jīng)采集模塊的RS485接口總線發(fā)送到PLC控制器(西門子S7-1200系列PLC),PLC解析數(shù)據(jù)后將參數(shù)顯示在本地HMI上,同時(shí)再經(jīng)過RS485通信模塊繼續(xù)把參數(shù)傳輸?shù)絃inux嵌入式工控機(jī),而后由工控機(jī)軟件系統(tǒng)處理數(shù)據(jù),最終實(shí)現(xiàn)機(jī)組各項(xiàng)運(yùn)行參數(shù)的存儲(chǔ)、報(bào)警處理和顯示功能。
硬件設(shè)計(jì)部分包括:
1)根據(jù)ADAM4700系列軟件配置各個(gè)端口類型,選擇端口對(duì)應(yīng)信號(hào)類型(4-20Ma或0-5V),配置ADAM4700+模塊Modbus總線地址、通信速率、通道量程范圍、數(shù)據(jù)格式、工作方式和通信協(xié)議等。
2)組態(tài)PLC硬件組態(tài),需使用2個(gè)CM1241 RS485通信接口模塊,其中 1#模塊用于與ADAM4700+通信,2#模塊用于與嵌入式 Linux工控機(jī)通信。
3)博途TIA軟件對(duì)S7-1200PLC編程,使用Modbus-RTU協(xié)議,將ADAM4700+模塊監(jiān)測(cè)參數(shù),包括發(fā)電機(jī)組壓力、水溫和速度等數(shù)據(jù)存儲(chǔ)在 DB模塊。
4)通過Profinet協(xié)議,將DB數(shù)據(jù)過濾處理后傳輸并顯示在HMI界面上,硬件采用MCGS帶以太網(wǎng)接口觸摸屏,它自帶西門子1200PLC網(wǎng)絡(luò)驅(qū)動(dòng),能快捷實(shí)現(xiàn)數(shù)據(jù)顯示。
5)PLC控制器通過2# CM1241模塊,把DB數(shù)據(jù)發(fā)送到上位機(jī)系統(tǒng),并加載到平臺(tái)設(shè)備實(shí)時(shí)數(shù)據(jù)庫中,為其他部門提供開放數(shù)據(jù)平臺(tái),實(shí)現(xiàn)數(shù)據(jù)統(tǒng)計(jì)、分析和優(yōu)化等功能。
軟件系統(tǒng)結(jié)構(gòu)如圖3所示。
圖3 上位機(jī)軟件系統(tǒng)
上位機(jī)軟件包括2部分程序:一部分程序是基于C的后臺(tái)數(shù)據(jù)通信程序,主要實(shí)現(xiàn)Linux系統(tǒng)與PLC控制器之間的數(shù)據(jù)通信和傳輸,并將數(shù)據(jù)存儲(chǔ)在 Sqlite數(shù)據(jù)庫中;另一部分程序是基于 PHP的Web系統(tǒng),運(yùn)行在嵌入式Linux系統(tǒng)下,該Web系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)可視化綜合處理。軟件部分工作具體包括:
1)嵌入式 Linux工控機(jī)配置,主要包括安裝Nginx引擎、PHP服務(wù)器、Sqlite3數(shù)據(jù)庫、串口驅(qū)動(dòng),也可通過安裝LNMP方式快速安裝。
2)編寫數(shù)據(jù)處理程序,接收PLC控制器發(fā)送的數(shù)據(jù),并存儲(chǔ)在Linux系統(tǒng)中。針對(duì)Modbus-RTU協(xié)議,在Linux系統(tǒng)中使用Mobus庫libmodbus-dev,安裝后直接在C程序中調(diào)用<modbus.h>文件。
3)輕量級(jí)Sqlite3數(shù)據(jù)庫,廣泛用于通信、工業(yè)生產(chǎn)等嵌入式應(yīng)用系統(tǒng)中,并提供C/C++的API接口,主要如下。
(1)sqlite3_open(const char *filename, sqlite3**ppDb),打開一個(gè)指向SQLite數(shù)據(jù)的文件連接。
(2)Sqlite3_exec(sqlite3*, const char *sql,sqlite_callback, void *data, char **errmsg),執(zhí)行SQL命令,由 sql提供,語句格式為標(biāo)準(zhǔn) SQL語句;sqlite_callback是回調(diào)函數(shù)。
(3)sqlite3_close(sqlite3*),關(guān)閉sqlite3_open()打開的數(shù)據(jù)庫連接。
利用上述API函數(shù),通過C語言編寫數(shù)據(jù)接口程序,實(shí)現(xiàn)將各運(yùn)行參數(shù)存儲(chǔ)在SQL數(shù)據(jù)庫中。
編寫Web網(wǎng)絡(luò)系統(tǒng)程序,主要基于PHP軟件,包括數(shù)據(jù)監(jiān)測(cè)界面、數(shù)據(jù)管理后臺(tái)等。利用SpeedPHP框架設(shè)計(jì)系統(tǒng),采用MVC模式,將數(shù)據(jù)和邏輯分開處理,同時(shí)封裝數(shù)據(jù)庫操作,可實(shí)現(xiàn)高效Web系統(tǒng)設(shè)計(jì)。
通過研華ADAM4700+遠(yuǎn)程IO模塊采集數(shù)據(jù),經(jīng)過Modbus-RTU總線傳輸數(shù)據(jù)到PLC系統(tǒng),再由PLC系統(tǒng)通過通信模塊與嵌入式Linux系統(tǒng)工控機(jī)連通起來,實(shí)現(xiàn)一套自上而下的數(shù)字化現(xiàn)場(chǎng)儀表監(jiān)控系統(tǒng)。
與普遍采用常規(guī)儀表控制相比,簡(jiǎn)化了系統(tǒng)組成,降低了布線量,提升了系統(tǒng)數(shù)字化性能,同時(shí)軟件系統(tǒng)配置靈活,總線組網(wǎng)可以不斷擴(kuò)展功能。另外也可將ADAM4000模塊直接與MCGS軟件連接通信,能進(jìn)一步降低監(jiān)控系統(tǒng)成本。