李丹清,韓利峰,陳志軍,李國(guó)輝,陳永忠
(中國(guó)科學(xué)院 上海應(yīng)用物理研究所 系統(tǒng)工程部,上海 201800)
圖1 EPICS控制系統(tǒng)架構(gòu)Fig.1 EPICS Control system architecture
圖2 IOC軟件結(jié)構(gòu)Fig.2 IOC Software structure
傳統(tǒng)上的化石能源包括天然氣、石油以及煤炭等,這些能源在人類文明發(fā)展的過(guò)程中起到了巨大的推動(dòng)作用,然而這些能源的不可再生性以及對(duì)于環(huán)境的巨大污染導(dǎo)致人們迫切地去尋找替代能源。這些替代能源包括核能與可再生能源等清潔能源,清潔能源的發(fā)展能夠保障能源安全,應(yīng)對(duì)氣候變化,實(shí)現(xiàn)可持續(xù)發(fā)展。其中氫氣作為新興的二次能源的載體,具有儲(chǔ)能豐富、熱值高、絕對(duì)清潔以及可運(yùn)輸?shù)葍?yōu)勢(shì)。當(dāng)今世界各國(guó)越來(lái)越重視氫能產(chǎn)業(yè)的發(fā)展[1-3],并制定了相關(guān)發(fā)展規(guī)劃,將氫能和燃料電池確定為新一代能源技術(shù)發(fā)展的重要方向之一。在中國(guó),國(guó)家發(fā)展改革委、國(guó)家能源局在《能源技術(shù)革命創(chuàng)新行動(dòng)計(jì)劃2016-2030 年》[4]規(guī)劃了能源技術(shù)革命重點(diǎn)創(chuàng)新行動(dòng)路線圖,將“氫能與燃料電池技術(shù)創(chuàng)新”列為15 項(xiàng)具體重點(diǎn)研究任務(wù)之一,首次將氫能產(chǎn)業(yè)提升至國(guó)家能源發(fā)展戰(zhàn)略高度[5]。氫能產(chǎn)業(yè)的發(fā)展,能夠帶動(dòng)新能源汽車以及高端裝備制造業(yè)的快速發(fā)展。傳統(tǒng)上最為廣泛的制氫方法是電解制氫,然而傳統(tǒng)的電解制氫方法在能源、工藝以及設(shè)備方面成本過(guò)高[6],這嚴(yán)重地阻礙了氫能產(chǎn)業(yè)的發(fā)展。
中國(guó)科學(xué)院20KW 高溫電解制氫實(shí)驗(yàn)裝置,旨在研究新一代高溫電解制氫技術(shù)。作為新一代的制氫技術(shù),主要是通過(guò)高溫將水加熱成水蒸氣,然后在通過(guò)電解水蒸氣為氫氣和氧氣的方法完成制氫,與傳統(tǒng)的電解制氫方法相比,高溫電解制氫可以降低20%~30%的電能消耗,并將電解效率提高至90%~100%,這極大地降低了制氫的能源成本與工藝成本。同時(shí)可以用相對(duì)廉價(jià)的金屬氧化物來(lái)替代傳統(tǒng)上的貴金屬作為電極材料,這也可以降低設(shè)備成本。高溫電解制氫技術(shù)可以使用核反應(yīng)堆的熱能對(duì)水進(jìn)行加熱,從而實(shí)現(xiàn)多能融合的核能——可再生能源復(fù)合系統(tǒng)。
本文主要設(shè)計(jì)并實(shí)現(xiàn)了中國(guó)科學(xué)院20KW 高溫電解制氫實(shí)驗(yàn)裝置的控制系統(tǒng)。控制系統(tǒng)主要監(jiān)控高溫電解制氫實(shí)驗(yàn)裝置的設(shè)備和管道溫度、流量、壓力、設(shè)備狀態(tài)、電流以及電壓等。通過(guò)人機(jī)界面完成各個(gè)設(shè)備的控制,在客戶端電腦上發(fā)出指令,完成設(shè)備的開(kāi)機(jī)、停機(jī)、復(fù)位、緊急復(fù)位等。運(yùn)行人員和實(shí)驗(yàn)人員可以通過(guò)控制系統(tǒng)向系統(tǒng)設(shè)備或管道設(shè)定目標(biāo)溫度、流量、壓力等,從而完成整個(gè)裝置的工況調(diào)節(jié),為實(shí)驗(yàn)和計(jì)算提供相應(yīng)的支持。
本系統(tǒng)基于EPICS 進(jìn)行開(kāi)發(fā),EPICS[7,8](實(shí)驗(yàn)物理以及工業(yè)控制系統(tǒng),Experimental Physics and Industrial Control System)是國(guó)內(nèi)外加速器、大型實(shí)驗(yàn)裝置、高能實(shí)驗(yàn)系統(tǒng)以及天文臺(tái)常用的開(kāi)發(fā)工具。如圖1 所示,它是一個(gè)標(biāo)準(zhǔn)的分布式控制系統(tǒng)。它包含三層架構(gòu),包括客戶端控制層、輸入輸出控制層以及設(shè)備控制層[9]。客戶端控制層提供人機(jī)交互界面(OPI),為操作人員與系統(tǒng)的交互提供接口。輸入輸出控制層是整個(gè)EPICS 系統(tǒng)的核心部分,負(fù)責(zé)從設(shè)備控制層獲取數(shù)據(jù),提供數(shù)據(jù)給客戶端控制層,同時(shí)也負(fù)責(zé)將客戶端控制層中的操作指令發(fā)送給設(shè)備控制層。設(shè)備控制層是整個(gè)系統(tǒng)基礎(chǔ),負(fù)責(zé)設(shè)備電氣和邏輯控制等。
輸入輸出控制層的主要部分是輸入輸出控制器(IOC),其內(nèi)部軟件結(jié)構(gòu)如圖2 所示。其中,IOC 數(shù)據(jù)庫(kù)(IOC Database)是一個(gè)常駐于內(nèi)存的實(shí)時(shí)數(shù)據(jù)庫(kù)。Database Access 為數(shù)據(jù)訪問(wèn)例程提供了訪問(wèn)IOC 內(nèi)部數(shù)據(jù)的接口。記錄支持(Record Support)為記錄類型提供支持,如模擬輸入量(ai)、模擬輸出量(ao)、數(shù)字輸入量(bi)、數(shù)字輸出量(bo)等,并且每種記錄類型對(duì)應(yīng)于一種記錄支持。設(shè)備支持(Device Support)負(fù)責(zé)設(shè)備,一個(gè)記錄類型對(duì)應(yīng)于多個(gè)設(shè)備支持程序,生成多個(gè)基于設(shè)備的各種記錄(record)。設(shè)備驅(qū)動(dòng)(Deivce Drive)負(fù)責(zé)復(fù)雜外部設(shè)備的驅(qū)動(dòng)連接。驅(qū)動(dòng)程序擁有相應(yīng)的設(shè)備驅(qū)動(dòng)中端程序。通道訪問(wèn)模塊(Channel Access)用于外部連接以形成基于以太網(wǎng)的分布式控制系統(tǒng)。
圖3 20KW高溫制氫控制系統(tǒng)物理架構(gòu)Fig.3 Physical structure of 20kw high temperature hydrogen production control system
中國(guó)科學(xué)院20KW 高溫制氫實(shí)驗(yàn)裝置包含數(shù)個(gè)工藝系統(tǒng)。它們是制氫系統(tǒng)、壓縮系統(tǒng)、存儲(chǔ)系統(tǒng)、冷凍水系統(tǒng)、吸附干燥純化系統(tǒng)、蒸汽系統(tǒng)以及壓縮空氣系統(tǒng)。冷凍水系統(tǒng)包含冷水機(jī)與純水機(jī)。冷水機(jī)利用傳統(tǒng)的Modbus 協(xié)議進(jìn)行設(shè)備通訊,純水機(jī)在內(nèi)部架設(shè)了TCP/IP 服務(wù)器可以使用EPICS 的S7-TCP/IP 驅(qū)動(dòng)支持模塊進(jìn)行通訊。其他系統(tǒng)采用基于Siemens PLC 為核心的控制器來(lái)實(shí)現(xiàn)和完成,這些系統(tǒng)可以通過(guò)EPICS 的通訊支持模塊S7nodave 來(lái)進(jìn)行通訊,如圖3 所示。系統(tǒng)需要保存實(shí)驗(yàn)數(shù)據(jù)以供實(shí)驗(yàn)分析和事件定位,本系統(tǒng)使用EPICS 最新的數(shù)據(jù)歸檔系統(tǒng)Archiver Appliance 來(lái)完成數(shù)據(jù)歸檔和歷史數(shù)據(jù)存儲(chǔ)。
如圖4 所示,本系統(tǒng)的客戶端控制層使用Web 來(lái)展示歷史數(shù)據(jù),并利用Web 對(duì)歷史數(shù)據(jù)歸檔系統(tǒng)進(jìn)行管理、數(shù)據(jù)檢索以及下載實(shí)驗(yàn)數(shù)據(jù)等。CSS 是EPICS 客戶端人機(jī)界面制作工具,提供了大量的控件用于人機(jī)界面的制作。此外還提供了傳統(tǒng)上的RDB channel Archiver[10]歸檔插件以及警報(bào)系統(tǒng)插件等。輸入輸出控制層包括IOC 以及Archiver Appliance 歷史數(shù)據(jù)歸檔系統(tǒng),Archiver Appliance 通過(guò)Engine 進(jìn)程從IOC 獲取歷史數(shù)據(jù),并完成數(shù)據(jù)存儲(chǔ)。
本系統(tǒng)在Centos7 環(huán)境下完成EPICS 的各個(gè)組件的安裝與編譯,如圖5 所示。其中選擇的EPICS 核心版本是Base-3.15.5,所有的驅(qū)動(dòng)支持組件和IOC 都需要依賴于EPICS 核心Base。其中AYSN 4-34 是EPICS 的設(shè)備異步驅(qū)動(dòng)支持組件。所有組件的依賴關(guān)系需要在本組件RELEASE文件里添加其他組件的根目錄的路徑,從而實(shí)現(xiàn)依賴關(guān)系的建設(shè),然后進(jìn)行編譯和安裝即可。
圖4 高溫制氫邏輯架構(gòu)Fig.4 High temperature hydrogen production logic architecture
圖5 EPICS模塊依賴關(guān)系圖Fig.5 EPICS Module dependency graph
表1 Modbus通訊協(xié)議數(shù)據(jù)格式Table 1 Modbus communication protocol data format
Modbus[10]是一種常用的串行總線協(xié)議,如今擁有串口、以太網(wǎng)等多種版本。本系統(tǒng)通過(guò)ZLAN 串口服務(wù)器,將串口轉(zhuǎn)換成以太網(wǎng)。Modbus 協(xié)議的數(shù)據(jù)格式如表1 所示。其中,設(shè)備地址通常可以在設(shè)備里自定義設(shè)置,默認(rèn)通常是1。功能碼指明了當(dāng)前Modbus 協(xié)議的具體操作,通常寫操作的功能碼為5,6,15,16,而讀操作碼為1,2,3,4。
EPICS 的Modbus 通訊協(xié)議,首選需要根據(jù)依賴關(guān)系完成安裝。然后,需要對(duì)啟動(dòng)文檔modbus.cmd 進(jìn)行如下配置。
1)drv Asyn IP Port Configure("H T S E L SJ","192.168.1.158:502",0,0,1)
2)modbusInterposeConfig("HTSELSJ",0,2000,0)
3)asynSetOption("HTSELSJ",0, "disconnectOnReadTimeout", "Y")
4)drvModbusAsynConfigure("ModAI01", "HTSELSJ", 0,3, 04000, 040, 0, 100, "Koyo")
5)dbLoadTemplate(“HTSELSJ.substitutions”)
其 中drvAsynIPPortConfigure 負(fù) 責(zé)IP 與 端 口 名的配置,完成異步連接。"HTSELSJ"為協(xié)議端口名,"192.168.1.158:502"為Modubs 設(shè)備端的IP 地址與服務(wù)端口。最后3 個(gè)參數(shù)分別為進(jìn)程優(yōu)先級(jí),重連以及結(jié)尾標(biāo)識(shí)符。
modbusInterposeConfig 命令負(fù)責(zé)驅(qū)動(dòng)的一些配置,"HTSELSJ"為drvAsynIPPortConfigure 定義的端口名指明此操作的連接對(duì)象。第二個(gè)參數(shù)為連接類型,0 代表TCP/IP連接,1 代表RTU,2 代表ASCII。最后兩個(gè)參數(shù)分別表示最大延時(shí)上限,設(shè)備寫延時(shí)。
drvModbusAsynConfigure 實(shí)現(xiàn)最終Modbus 端口驅(qū)動(dòng),參數(shù)定義如下所示:
參數(shù)1:Modbus 表端口名(tablename)。
參數(shù)2:drvAsynIPPortConfigure 定義的端口名。
參數(shù)3:從站地址SlaveAdress。
參數(shù)4:為Modbus 功能碼,如表1 所示。
參數(shù)5:為Modbus 數(shù)據(jù)的起始地址。
參數(shù)6:Modbus-Length 為Modbus 數(shù)據(jù)表長(zhǎng)度。
參數(shù)7:為數(shù)據(jù)類型。
參數(shù)8:為讀寫延時(shí)。
參數(shù)9:為PLC 類型說(shuō)明字符串。
dbLoadTemplate 加載宏文件,通過(guò)宏文件和宏文件中的模板文件生成db 文件,db 文件定義了記錄(record)的具體類型。宏文件格式如下:
file "../../db/longin.template" { pattern
{P, R, PORT, OFFSET, SCAN}
{HTSELST:, AX01, ModAI01, 0, "I/O Intr"}
{HTSELST:, AX02, ModAI01, 1, "I/O Intr"}
{HTSELST:, AX02, ModAI01, 2, "I/O Intr"}
{HTSELST:, AX03, ModAI01, 3, "I/O Intr"}
}
PORT 字段(ModAI01)與啟動(dòng)文件中的命令drvModbusAsynConfigure 的第一個(gè)參數(shù)(Modbus 表端口名)應(yīng)相同,從而實(shí)現(xiàn)表名與基于Modbus 協(xié)議格式數(shù)據(jù)的設(shè)備物理地址相互映射。完成db 文件中的record 與Modbus 協(xié)議數(shù)據(jù)的連接。其中l(wèi)ongin.template 為db 文件的模板文件,格式如下:
record(longin,"$(P)$(R)") {
field(DTYP,"asynUInt32Digital")
field(INP,"@asynMask($(PORT) $(OFFSET)0xFFFF)")
field(SCAN,"$(SCAN)")}
宏文件中的P 字段與R 字段,在運(yùn)行時(shí)替換模板函數(shù)中的$(P)與$(R)從而完成record 的PV 變量名的組合。PORT 字段和地址偏移量(OFFSET)結(jié)合啟動(dòng)文件中的其他命令完成數(shù)據(jù)尋址。
此外,Modbus 還有其他模板函數(shù)可供選擇,如bi_bit.template,bo.template,ai.template 等。通過(guò)啟動(dòng)modbus.cmd 加載宏文件,使用模板文件生成的數(shù)據(jù)相關(guān)的record,通過(guò)記錄調(diào)用記錄支持,設(shè)備支持以及驅(qū)動(dòng)完成數(shù)據(jù)通訊。
EPICS 的S7-TCP/IP 驅(qū)動(dòng)支持模塊是支持TCP/IP 方式的設(shè)備數(shù)據(jù)通訊協(xié)議的驅(qū)動(dòng)模塊,將設(shè)備PLC 控制器架設(shè)成TCP/IP 服務(wù)器,通過(guò)TCP/IP 的方式實(shí)現(xiàn)設(shè)備到EPICS IOC 的數(shù)據(jù)收發(fā)。首先通過(guò)以下命令創(chuàng)建空IOC 應(yīng)用。
MakeBaseApp.pl -t ioc S7plc
MakeBaseApp.pl -i -t ioc S7plc
將S7-TCP/IP 驅(qū)動(dòng)支持包放入S7plcApp/src 目錄下,修改Makefile,添加以下內(nèi)容:
LIBRARY = s7plc
LIB_SRCS += s7plc_registerRecordDeviceDriver.cpp
LIB_SRCS += drvS7plc.c
LIB_SRCS += devS7plc.c
PROD_DEFAULT = s7plcApp
s7plcApp_LIBS += s7plc
s7plcApp_DBD += base.dbd
s7plcApp_DBD += s7plc.dbd
DBD += s7plcApp.dbd
s7plcApp.dbd.d: s7plc.dbd
s7plc.dbd: s7plcBase.dbd s7plcCalcout.dbd s7plcReg.dbd cat
更改ioc 下的st.cmd,添加以下內(nèi)容:
dbLoadDatabase(“dbd/s7plcApp.dbd”)
s7plcApp_registerRecordDeviceDriver
s7plcConfigure ("HTSECSJ", "192.168.0.10", 2000, 1024,32, 1, 500, 100)
dbLoadRecords(“../../example.db”)
在TOP/db 目錄下添加example.db 格式如下:
record (ai, "HTSECSJ-AI01") {
# map range 0...1000 to 0.0000...10.0000
field (DTYP, "S7plc")
field (INP, "@HTSECSJ:0/0 'T=INT16 L=0 H=1000'")
field (EGUF, "10")
field (LOPR, "-10")
field (HOPR, "10")
field (LINR, "LINEAR")
field (PREC, "2")
field (SCAN, "I/O Intr")
}
其中,record 的INP 字段定義了設(shè)備通訊協(xié)議的端口地址與數(shù)據(jù)類型。
S7nodave 是 Siemens PLC 的 EPICS 驅(qū)動(dòng)支持模塊。目前該模塊可以實(shí)現(xiàn) Siemens S7 系列的多種PLC 通信協(xié)議支持,與S7-TCP/IP 通訊協(xié)議不同的是S7nodave 可直接訪問(wèn)PLC 中的內(nèi)存映射表內(nèi)容,無(wú)需在PLC 端進(jìn)行通訊配置。首先根據(jù)S7nodave 的依賴關(guān)系,將S7nodave 作為單獨(dú)模塊添加到 EPICS 的設(shè)備驅(qū)動(dòng)塊目錄下并編譯,編譯成功后,在S7nodave 的TOP 目錄下的lib 目錄和dbd 目錄中分別有庫(kù)文件S7nodave 和dbd 文件S7nodave.dbd 生成。然后建立空IOC 應(yīng)用,并且在IOC 的RELEASES 中配置S7nodave 安裝路徑,如下所示:
S7NODAVE=/usr/local/epics/modules/s7nodave
修改在IOC 程序的src 目錄中的makefile 文件,在文件中配置庫(kù)文件S7nodave 和dbd 文件S7nodave.dbd。
nodave_DBD + = s7nodave.dbd
nodave_LIBS + = s7nodave
S7nodave 設(shè)備支持可以直接讀取和寫入PLC 的內(nèi)存地址,利用記錄record 的設(shè)備地址字段INP 和OUT,指定S7nodave 認(rèn)可的PLC 設(shè)備地址。IOC 程序的st.cmd 文件中添加以下內(nèi)容:
dbLoadDatabase("dbd /S7nodave.dbd")
S7nodave_register R ecordDeviceDriver pdbbase
S7nodaveConfigureIsoTcpPort( "HTSE02","192.168.1.1”,0,0,0)
S 7 n o d a v e C o n f i g u r e P o l l G r o u p( "H T S E 0 2","HTSE02group",0.1,0)
dbLoad R ecords “db/HTSE02.db”
由于PLC 與SoftIOC 間通過(guò)以太網(wǎng)基于TCP/IP 的方式交換信息,需要指明PLC 的IP 地址,后面3 個(gè)數(shù)字分別代表PLC 機(jī)架號(hào)、卡槽站號(hào)和線程優(yōu)先級(jí)。db 文件記錄格式如下:
record(ao," $(user):W R ITEVOLTAGE_W8")
{
field( DTYP,"s7nodave" )
field( OUT,"@HTSE02(DLV=0,DHV = 27648) DB1.DBW8 int16" )}
record(ai,"$ (user):WRITEVOLTAGE_W8" )
{
field(DTYP,"s7nodave")
field(INP,"@HTSE02( DLV = 0,DHV = 27648) DB1.DBW16 int16)
}
record 中OUT 與INP 字段負(fù)責(zé)外部連接,其中分別需要指定端口名,數(shù)據(jù)上下限以及數(shù)據(jù)塊地址等。
EPICS 傳統(tǒng)上廣泛使用的歷史數(shù)據(jù)歸檔系統(tǒng)是RDB Channel Archiver。RDB Channel Archiver 是基于關(guān)系型數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的,然而由于關(guān)系型數(shù)據(jù)庫(kù)其本身嚴(yán)格定義的數(shù)據(jù)結(jié)構(gòu)、多表查詢以及事務(wù)處理機(jī)制等因素而導(dǎo)致讀寫性能上存在瓶頸。當(dāng)數(shù)據(jù)量到達(dá)一定量級(jí)是會(huì)存在檢索延時(shí)等情況,20KW 高溫制氫實(shí)驗(yàn)裝置需要通過(guò)歷史數(shù)據(jù)進(jìn)行快速歷史事件定位。因此,需要快速地響應(yīng)歷史數(shù)據(jù)檢索結(jié)果??紤]到基于關(guān)系型數(shù)據(jù)庫(kù)的RDB Channel Archiver 的性能限制,本系統(tǒng)使用EPICS 最新的歸檔系統(tǒng)Archiver Appliance 來(lái)進(jìn)行歷史數(shù)據(jù)存儲(chǔ)。
SLAC(Stanford Linear Accelerator Center,美國(guó)國(guó)家加速器實(shí)驗(yàn)室)在2016 年EPICS 年度大會(huì)上展示了它們最新研發(fā)的EPICS Archiver Ap-pliance[11]系統(tǒng)。EPICS archiver appliance 重點(diǎn)關(guān)注于提高數(shù)據(jù)的聚合性能,同時(shí)研發(fā)了相應(yīng)的管理界面,通過(guò)管理界面可以查看數(shù)據(jù)的歸檔狀態(tài),數(shù)據(jù)的變化趨勢(shì)曲線等。
Archiver Appliance 本質(zhì)上是一個(gè)Tomcat 服務(wù)器,提供了4 個(gè)Tomcat 進(jìn)程。它們分別是數(shù)據(jù)歸檔引擎(Engine)、數(shù)據(jù)管理模塊(ETL)、數(shù)據(jù)檢索模塊(Retrieval)以及邏輯業(yè)務(wù)執(zhí)行模塊(Mgmt)。Engine 的作用在于根據(jù)PV 變量名從IOC 采集數(shù)據(jù)。Retrieval 則負(fù)責(zé)從數(shù)據(jù)庫(kù)收集數(shù)據(jù),并整合數(shù)據(jù)以滿足用戶檢索需求。Mgmt 則負(fù)責(zé)執(zhí)行業(yè)務(wù)邏輯,管理頁(yè)面以及保存配置文件等。ETL 負(fù)責(zé)存儲(chǔ)數(shù)據(jù)的管理,負(fù)責(zé)將數(shù)據(jù)在3 個(gè)存儲(chǔ)階段間進(jìn)行轉(zhuǎn)移。Archiver Appliance 存在3 個(gè)歷史數(shù)據(jù)存儲(chǔ)階段,它們是短期存儲(chǔ)階段(Short Term Store,STS),中期存儲(chǔ)階段(Medium term store,MTS)和長(zhǎng)期存儲(chǔ)階段(Long Term Store,LTS)。STS 數(shù)據(jù)通常存放在內(nèi)存中,它負(fù)責(zé)存儲(chǔ)數(shù)小時(shí)內(nèi)的數(shù)據(jù)。MTS 負(fù)責(zé)存儲(chǔ)數(shù)天內(nèi)的數(shù)據(jù),它通常存放在固態(tài)硬盤和系統(tǒng)硬盤中。LTS 則負(fù)責(zé)更為長(zhǎng)期的歷史數(shù)據(jù)存儲(chǔ),ETL 負(fù)責(zé)將數(shù)據(jù)在各個(gè)存儲(chǔ)階段進(jìn)行轉(zhuǎn)移。Archiver Appliance 的架構(gòu)如圖6 所示。
本系統(tǒng)在Lenovo TS560 塔式服務(wù)器上搭建Archvier Appliance,總存儲(chǔ)容量約為3TB 左右。20KW 高溫制氫實(shí)驗(yàn)裝置,需要監(jiān)控的量約為250 個(gè)PV 變量。以每秒采樣率為3 計(jì)算,一個(gè)record 的一年占用存儲(chǔ)約為1.8GB,本服務(wù)器可以存儲(chǔ)6 年以上連續(xù)不斷的實(shí)驗(yàn)產(chǎn)生的數(shù)據(jù),足以滿足實(shí)驗(yàn)的需求。圖7 為Archiver Appliance 系統(tǒng)主界面,圖8 為數(shù)據(jù)檢索界面。
圖6 Archiver Appliance原理圖Fig.6 Schematic diagram of the Archiver Appliance
圖7 Archiver Appliance系統(tǒng)主界面Fig.7 Main page of archiver appliance
圖8 Archiver Appliance數(shù)據(jù)檢索界面Fig.8 Retrieval page of Archiver Appliance
圖9 高溫制氫系統(tǒng)界面Fig.9 High temperature hydrogen production system interface
系統(tǒng)界面通過(guò)EPICS 人機(jī)界面工具CSS 來(lái)實(shí)現(xiàn),本文以制氫模塊為例,如圖9 所示。系統(tǒng)界面主要分為工藝部分與關(guān)鍵數(shù)據(jù)圖表部分。工藝部分描述了系統(tǒng)的工藝流程圖、設(shè)備警報(bào)狀態(tài)以及頁(yè)面導(dǎo)航按鈕。在工藝流程圖上需要顯示溫度、流量、液位以及壓力等實(shí)時(shí)數(shù)據(jù)。在工藝流程圖下方則是各個(gè)關(guān)鍵設(shè)備的警報(bào)狀態(tài)顯示圖標(biāo),綠色表示設(shè)備正常,紅色表示設(shè)備異常。導(dǎo)航按鈕通過(guò)下拉框的形式實(shí)現(xiàn)各個(gè)子系統(tǒng)界面之間的切換。左邊部分為關(guān)鍵數(shù)據(jù)圖標(biāo)部分,通過(guò)實(shí)時(shí)曲線的方式顯示關(guān)鍵數(shù)據(jù),從而為實(shí)驗(yàn)工況調(diào)節(jié)與事件定位提供支持。
本文基于EPICS 實(shí)現(xiàn)了20KW 高溫制氫實(shí)驗(yàn)裝置的控制系統(tǒng)。首先利用西門子S7-PLC 實(shí)現(xiàn)了系統(tǒng)大部分設(shè)備的本地控制,通過(guò)分析EPICS 的多個(gè)通訊協(xié)議支持組件,實(shí)現(xiàn)了20KW 高溫制氫實(shí)驗(yàn)裝置控制系統(tǒng)的遠(yuǎn)程數(shù)據(jù)收發(fā)。考慮到系統(tǒng)實(shí)驗(yàn)與實(shí)驗(yàn)事件定位需要,本系統(tǒng)采用EPICS最新歷史歸檔系統(tǒng)Archiver Appliance 來(lái)存儲(chǔ)歷史數(shù)據(jù)。整套控制軟件均在Centos7 操作系統(tǒng)下基于EPICS 開(kāi)發(fā),簡(jiǎn)化了軟件系統(tǒng)結(jié)構(gòu)和代碼維護(hù)量,提高了整套系統(tǒng)運(yùn)行的穩(wěn)定性,為20KW 高溫制氫實(shí)驗(yàn)裝置的控制系統(tǒng)提供了可靠的技術(shù)保障。