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

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

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

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