張 興,周 炳,司江舸,唐乾偉,徐正榮,馬振超
(中海油能源發(fā)展股份有限公司工程技術分公司,天津 300452)
某些海上老齡平臺發(fā)電機組儀表系統(tǒng)缺乏有效數字化監(jiān)測手段,機組元器件多采用模擬量指針儀表,誤差大。為進一步優(yōu)化發(fā)電機組監(jiān)控系統(tǒng),本文提出一種數字化儀表系統(tǒng),通過總線技術、PLC控制技術和嵌入式Linux技術,實現了數字化、網絡化儀表系統(tǒng)。
發(fā)電機組一般儀表監(jiān)控系統(tǒng)常用獨立傳感器+儀表的簡單組成形式,儀表系統(tǒng)硬件多、線路復雜,無通信擴展接口或接口不統(tǒng)一,有的儀表系統(tǒng)在機旁與遠程控制箱各設置1套儀表系統(tǒng),維護成本高。
對發(fā)電機組控制系統(tǒng)而言,除上述儀表用傳感器以外,還需要各種控制開關器件,如機組溫度測量。除了滿足測量儀表使用外,還必須安裝溫控開關滿足控制要求,有時預報警、報警、停機等功能對應多個控制開關,極大增加了系統(tǒng)繁雜性。
常見儀表監(jiān)控系統(tǒng)構成如圖1所示。

圖1 傳統(tǒng)儀表及控制系統(tǒng)布置圖
雖然這種系統(tǒng)結構簡單,但功能單一,器件多,硬件體積大,不能實現網絡化、數字化、信息化等高級管理功能。
數字化儀表系統(tǒng)綜合采用模擬量傳感器、變送器、總線型儀表作為數據采集前端,通過 Modbus總線數據采集模塊實現數據處理,而后通過PC機或PLC控制器+HMI實現數據輸出與顯示。
發(fā)電機組數字化儀表系統(tǒng)的硬件構成見圖2。

圖2 發(fā)電機儀表監(jiān)測系統(tǒng)硬件結構
該系統(tǒng)由本地、遠程系統(tǒng)2部分組成,本地部分實現現場測量和本地數據顯示,遠程部分用于實現數據網絡化和信息化。
現場數據采集模塊采用研華ADAM4017+8通道16位AD模擬量輸入采集模塊,可采集電壓和電流模擬量信號,8通道都提供了可獨立編程量程范圍,支持 Modbus協議。本設計主要利用ADAM4017+來監(jiān)測發(fā)電機組運行參數。各項傳感數據經采集模塊的RS485接口總線發(fā)送到PLC控制器(西門子S7-1200系列PLC),PLC解析數據后將參數顯示在本地HMI上,同時再經過RS485通信模塊繼續(xù)把參數傳輸到Linux嵌入式工控機,而后由工控機軟件系統(tǒng)處理數據,最終實現機組各項運行參數的存儲、報警處理和顯示功能。
硬件設計部分包括:
1)根據ADAM4700系列軟件配置各個端口類型,選擇端口對應信號類型(4-20Ma或0-5V),配置ADAM4700+模塊Modbus總線地址、通信速率、通道量程范圍、數據格式、工作方式和通信協議等。
2)組態(tài)PLC硬件組態(tài),需使用2個CM1241 RS485通信接口模塊,其中 1#模塊用于與ADAM4700+通信,2#模塊用于與嵌入式 Linux工控機通信。
3)博途TIA軟件對S7-1200PLC編程,使用Modbus-RTU協議,將ADAM4700+模塊監(jiān)測參數,包括發(fā)電機組壓力、水溫和速度等數據存儲在 DB模塊。
4)通過Profinet協議,將DB數據過濾處理后傳輸并顯示在HMI界面上,硬件采用MCGS帶以太網接口觸摸屏,它自帶西門子1200PLC網絡驅動,能快捷實現數據顯示。
5)PLC控制器通過2# CM1241模塊,把DB數據發(fā)送到上位機系統(tǒng),并加載到平臺設備實時數據庫中,為其他部門提供開放數據平臺,實現數據統(tǒng)計、分析和優(yōu)化等功能。
軟件系統(tǒng)結構如圖3所示。

圖3 上位機軟件系統(tǒng)
上位機軟件包括2部分程序:一部分程序是基于C的后臺數據通信程序,主要實現Linux系統(tǒng)與PLC控制器之間的數據通信和傳輸,并將數據存儲在 Sqlite數據庫中;另一部分程序是基于 PHP的Web系統(tǒng),運行在嵌入式Linux系統(tǒng)下,該Web系統(tǒng)實現數據可視化綜合處理。軟件部分工作具體包括:
1)嵌入式 Linux工控機配置,主要包括安裝Nginx引擎、PHP服務器、Sqlite3數據庫、串口驅動,也可通過安裝LNMP方式快速安裝。
2)編寫數據處理程序,接收PLC控制器發(fā)送的數據,并存儲在Linux系統(tǒng)中。針對Modbus-RTU協議,在Linux系統(tǒng)中使用Mobus庫libmodbus-dev,安裝后直接在C程序中調用<modbus.h>文件。
3)輕量級Sqlite3數據庫,廣泛用于通信、工業(yè)生產等嵌入式應用系統(tǒng)中,并提供C/C++的API接口,主要如下。
(1)sqlite3_open(const char *filename, sqlite3**ppDb),打開一個指向SQLite數據的文件連接。
(2)Sqlite3_exec(sqlite3*, const char *sql,sqlite_callback, void *data, char **errmsg),執(zhí)行SQL命令,由 sql提供,語句格式為標準 SQL語句;sqlite_callback是回調函數。
(3)sqlite3_close(sqlite3*),關閉sqlite3_open()打開的數據庫連接。
利用上述API函數,通過C語言編寫數據接口程序,實現將各運行參數存儲在SQL數據庫中。
編寫Web網絡系統(tǒng)程序,主要基于PHP軟件,包括數據監(jiān)測界面、數據管理后臺等。利用SpeedPHP框架設計系統(tǒng),采用MVC模式,將數據和邏輯分開處理,同時封裝數據庫操作,可實現高效Web系統(tǒng)設計。
通過研華ADAM4700+遠程IO模塊采集數據,經過Modbus-RTU總線傳輸數據到PLC系統(tǒng),再由PLC系統(tǒng)通過通信模塊與嵌入式Linux系統(tǒng)工控機連通起來,實現一套自上而下的數字化現場儀表監(jiān)控系統(tǒng)。
與普遍采用常規(guī)儀表控制相比,簡化了系統(tǒng)組成,降低了布線量,提升了系統(tǒng)數字化性能,同時軟件系統(tǒng)配置靈活,總線組網可以不斷擴展功能。另外也可將ADAM4000模塊直接與MCGS軟件連接通信,能進一步降低監(jiān)控系統(tǒng)成本。