一種基于epics的控制系統(tǒng)跨平臺(tái)數(shù)據(jù)傳輸實(shí)現(xiàn)方法
【專利摘要】本發(fā)明公開了一種基于EPICS的控制系統(tǒng)跨平臺(tái)數(shù)據(jù)傳輸實(shí)現(xiàn)方法,實(shí)現(xiàn)將底層控制器上傳的設(shè)備信號轉(zhuǎn)換為有效的EPICS軟件的過程變量PV(Process Variable),通過通道訪問協(xié)議CA(Channel Access)與操作員接口計(jì)算機(jī)OPI(Operator Interface)客戶端建立一個(gè)連接通道;也可以將EPICS軟件的過程變量PV轉(zhuǎn)換為底層控制器能夠識別的信號類型,實(shí)現(xiàn)對現(xiàn)場層設(shè)備的控制;方便實(shí)驗(yàn)人員通過人機(jī)交互界面實(shí)現(xiàn)對現(xiàn)場設(shè)備的監(jiān)控,報(bào)警和數(shù)據(jù)存檔等。
【專利說明】
一種基于EPI CS的控制系統(tǒng)跨平臺(tái)數(shù)據(jù)傳輸實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及EPICS控制系統(tǒng)領(lǐng)域,具體是一種基于EPICS的控制系統(tǒng)跨平臺(tái)數(shù)據(jù)傳輸實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]實(shí)驗(yàn)物理和工業(yè)控制系統(tǒng)軟件EPICS(ExperimentalPhysics and IndustrialControl System)是用于大型科學(xué)裝置控制系統(tǒng)的開發(fā)和運(yùn)行的軟件工具集;采用分布式結(jié)構(gòu),兼容多種硬件設(shè)備。目前已在大型的實(shí)驗(yàn)物理和加速器裝置中得到廣泛的應(yīng)用,如加速器,北京正負(fù)電子對撞機(jī),射電天文望遠(yuǎn)鏡等,采用EPICS軟件應(yīng)用的控制系統(tǒng)平臺(tái)具有可擴(kuò)展性,可重用性,可移植性等特點(diǎn)。
[0003]EPICS軟件體系結(jié)構(gòu)共有三層:
1.輸入輸出控制器10C(InputOutput Controller),它的核心是一個(gè)常駐內(nèi)存的分布式數(shù)據(jù)庫,以記錄的形式存在,存放設(shè)備間的實(shí)時(shí)數(shù)據(jù),通過記錄的名稱來訪問記錄的值和屬性;
2.通道訪問協(xié)議CA(ChanneIAccess),建立在TCP/IP協(xié)議基礎(chǔ)上的一種訪問機(jī)制。為OPI和1C提供應(yīng)用接口。提供通道定位,數(shù)據(jù)讀寫,訪問監(jiān)控,連接監(jiān)測和自動(dòng)重接,主要為數(shù)據(jù)庫提供網(wǎng)絡(luò)透明訪問服務(wù)。
[0004]3.0PI(0perator Interface):操作員接口計(jì)算機(jī),主要包括用戶界面/運(yùn)行工具、報(bào)警管理工具、數(shù)據(jù)存檔工具等,利用通道訪問協(xié)議訪問1C中的運(yùn)行數(shù)據(jù)庫,實(shí)現(xiàn)監(jiān)測等功能的運(yùn)行工具。
[0005]目前,EPICS控制系統(tǒng)存在不同操作系統(tǒng)和不同軟件之間不同數(shù)據(jù)格式的信號傳輸和轉(zhuǎn)換的問題。
[0006]
【發(fā)明內(nèi)容】
本發(fā)明的目的是提供一種基于EPICS的控制系統(tǒng)跨平臺(tái)數(shù)據(jù)傳輸實(shí)現(xiàn)方法,以解決現(xiàn)有技術(shù)不同操作系統(tǒng)和不同軟件之間不同數(shù)據(jù)格式的信號傳輸和轉(zhuǎn)換的問題。
[0007]為了達(dá)到上述目的,本發(fā)明所采用的技術(shù)方案為:
一種基于EPICS的控制系統(tǒng)跨平臺(tái)數(shù)據(jù)傳輸實(shí)現(xiàn)方法,其特征在于:在輸入輸出控制器1C中構(gòu)建設(shè)備支持模塊程序和設(shè)備驅(qū)動(dòng)支持模塊程序,實(shí)現(xiàn)將底層控制器上傳的設(shè)備信號轉(zhuǎn)換為有效的EPICS軟件的過程變量PV(Process Variable),同時(shí)將基于EPICS軟件的過程變量PV轉(zhuǎn)換為底層控制器能夠識別的信號類型,實(shí)現(xiàn)對現(xiàn)場層設(shè)備的控制;
設(shè)備支持模塊程序定義了設(shè)備支持的入口表及注冊信息,建立與EPISC軟件控制系統(tǒng)中數(shù)據(jù)庫的連接;設(shè)備支持模塊程序根據(jù)設(shè)備支持的入口表里的設(shè)備支持初始化模塊名和設(shè)備支持模塊名,調(diào)用底層的設(shè)備驅(qū)動(dòng)模塊程序;根據(jù)數(shù)據(jù)庫記錄的DTYP字段初始化記錄;根據(jù)記錄的特定字段處理和調(diào)用記錄,執(zhí)行1/0操作,對于輸入數(shù)據(jù),將原始數(shù)據(jù)轉(zhuǎn)換成PV;對于輸出數(shù)據(jù),將PV數(shù)據(jù)轉(zhuǎn)換成原始數(shù)據(jù);
設(shè)備驅(qū)動(dòng)支持模塊程序定義了設(shè)備驅(qū)動(dòng)入口表,建立與EPI SC軟件控制系統(tǒng)中數(shù)據(jù)庫的連接;初始化和底層控制器連接的硬件接口,實(shí)現(xiàn)和底層控制器的數(shù)據(jù)輸入輸出操作;并行運(yùn)行輸出線程,建立和設(shè)備控制層相關(guān)的操作;并行運(yùn)行輸入線程,接收到應(yīng)答后,調(diào)用I/O Intr中斷請求,設(shè)備支持模塊程序進(jìn)行EPICS的記錄處理,存入EPICS實(shí)時(shí)數(shù)據(jù)庫;
客戶端的人機(jī)操作界面通過EPICS的通道訪問協(xié)議CA實(shí)現(xiàn)從1C中的數(shù)據(jù)庫的過程變量PV的訪問,方便操作人員直觀監(jiān)控設(shè)備現(xiàn)場。
[0008]本發(fā)明的有益效果為:
本發(fā)明公開了一種基于EPICS的控制系統(tǒng)跨平臺(tái)數(shù)據(jù)傳輸實(shí)現(xiàn)的方法,有效地解決了基于EPICS軟件的Linux操作系統(tǒng)和底層控制器之間數(shù)據(jù)傳輸?shù)膯栴}。本發(fā)明開發(fā)了一種支持控制系統(tǒng)跨平臺(tái)的數(shù)據(jù)傳輸?shù)耐ㄓ肊PICS設(shè)備/驅(qū)動(dòng)支持程序,實(shí)現(xiàn)將底層控制器上傳的設(shè)備信號轉(zhuǎn)換為有效的EPICS軟件的過程變量PV(Process Variable),通過通道訪問協(xié)議CACChannel Access)與操作員接口計(jì)算機(jī)0PI(0perator Interface)客戶端建立一個(gè)連接通道;同時(shí)將監(jiān)控層基于EPICS軟件的過程變量PV轉(zhuǎn)換為底層控制器能夠識別的信號類型,實(shí)現(xiàn)對現(xiàn)場層設(shè)備的控制;方便實(shí)驗(yàn)人員通過人機(jī)交互界面實(shí)現(xiàn)對現(xiàn)場設(shè)備的監(jiān)控,報(bào)警和數(shù)據(jù)存檔等。
【附圖說明】
[0009]圖1為基于EPICS控制系統(tǒng)結(jié)構(gòu)圖。
[0010]圖2為基于EPICS的控制系統(tǒng)跨平臺(tái)數(shù)據(jù)傳輸實(shí)現(xiàn)的程序軟件結(jié)構(gòu)圖。
[0011]圖3為設(shè)備支持記錄調(diào)用入口。
【具體實(shí)施方式】
[0012]一種基于EPICS的控制系統(tǒng)跨平臺(tái)數(shù)據(jù)傳輸實(shí)現(xiàn)的方法,有效地解決了基于EPICS軟件的Linux操作系統(tǒng)和底層控制器之間數(shù)據(jù)傳輸?shù)膯栴}。
[0013]基于EPICS軟件的控制系統(tǒng)是由監(jiān)控層,過程控制層和設(shè)備控制層三個(gè)層次組成的。分別對應(yīng)操作員接口計(jì)算機(jī)OPI(Operator Interface),輸入輸出控制器10C( InputOutput Controller),設(shè)備控制器(Device controller),如圖1所不。
[0014]由于控制系統(tǒng)的基于不同的操作系統(tǒng)和軟件的控制器采用了不同的數(shù)據(jù)包格式,為了實(shí)現(xiàn)在基于EPICS軟件的監(jiān)控層能夠?qū)崟r(shí)有效的顯示和控制現(xiàn)場設(shè)備,根據(jù)EPICS系統(tǒng)的設(shè)備接口規(guī)范,開發(fā)了一個(gè)通用的EPICS設(shè)備/驅(qū)動(dòng)支持程序,如圖2所示,程序在基于EPICS軟件的Linux系統(tǒng)的1C上開發(fā)運(yùn)行,1C和底層控制器之間的數(shù)據(jù)交互采用多線程并發(fā)運(yùn)行的端對端通訊方式。一個(gè)1C可以同時(shí)連接多臺(tái)同種類型的底層控制器。
[0015]開發(fā)的通用的EPICS設(shè)備/驅(qū)動(dòng)支持程序包括設(shè)備支持模塊和驅(qū)動(dòng)支持模塊程序。上層是EPICS數(shù)據(jù)庫記錄支持模塊,下層是和底層控制器的通訊接口模塊。
[0016]建立設(shè)備支持模塊與數(shù)據(jù)庫的連接,設(shè)備支持模塊頭上有一個(gè)“設(shè)備支持入口表”,進(jìn)行設(shè)備支持入口表的定義和注冊,根據(jù)設(shè)備支持初始化模塊名和設(shè)備支持模塊名,調(diào)用底層的設(shè)備驅(qū)動(dòng)程序;調(diào)用涉及到三個(gè)文件:數(shù)據(jù)庫記錄*.db文件,數(shù)據(jù)庫定義*.dbd文件,設(shè)備支持源文件devXXX.c文件,。如圖3所示。數(shù)據(jù)庫定義文件*.dbd定義了設(shè)備支持模塊與數(shù)據(jù)庫的連接。
[0017]根據(jù)設(shè)備支持和設(shè)備驅(qū)動(dòng)程序,初始化和底層控制器的硬件接口,建立設(shè)備驅(qū)動(dòng)模塊與數(shù)據(jù)庫的連接,在設(shè)備驅(qū)動(dòng)模塊頭上有一個(gè)“驅(qū)動(dòng)入口表”,定義設(shè)備驅(qū)動(dòng)入口表,從而建立了和數(shù)據(jù)庫的聯(lián)系。
[0018]1C初始化時(shí),每個(gè)記錄使用DTYP字段指定的設(shè)備支持的initRecord來初始化記錄。該規(guī)則驗(yàn)證INP和OUTP字段,檢查硬件地址是否存在,分配記錄的存儲(chǔ)空間,操作硬件寄存器,以及設(shè)定記錄的特定字段來將記錄中的原始值轉(zhuǎn)換成工程數(shù)據(jù),或工程數(shù)據(jù)轉(zhuǎn)換成原始數(shù)據(jù)。
[0019]實(shí)現(xiàn)方法如下:
I.設(shè)備支持入口表定義和注冊;
2.驅(qū)動(dòng)程序的驅(qū)動(dòng)入口表定義,建立和數(shù)據(jù)庫的聯(lián)系;
3.設(shè)備支持調(diào)用入口表指出的設(shè)備驅(qū)動(dòng)程序;
4.記錄初始化函數(shù)和記錄讀寫函數(shù);
5.對記錄的連接域INP進(jìn)行解析,建立輸入輸出控制器1C和底層控制器的連接;
6.記錄處理時(shí),根據(jù)記錄名解析得到控制信號名和控制參數(shù);
7.并行運(yùn)行輸出線程,建立和設(shè)備控制層相關(guān)的操作;
8.并行運(yùn)行輸入線程,接收到應(yīng)答后,調(diào)用I/OIntr中斷請求,進(jìn)行EPICS的記錄處理;
9.記錄處理時(shí),讀是將硬件中的值并拷貝到precord->rval,轉(zhuǎn)換成過程變量PV;寫是將過程變量PV precord->rval中的值輸出到硬件;
10.存入實(shí)時(shí)數(shù)據(jù)庫;
11.操作員接口計(jì)算機(jī)OPI人機(jī)界面實(shí)時(shí)監(jiān)視當(dāng)前的過程變量PV。
[0020]本發(fā)明開發(fā)了一種支持控制系統(tǒng)跨平臺(tái)的數(shù)據(jù)傳輸?shù)耐ㄓ肊PICS設(shè)備/驅(qū)動(dòng)支持程序,實(shí)現(xiàn)將底層控制器上傳的設(shè)備信號轉(zhuǎn)換為有效的EPICS軟件的過程變量PV(Prc)cessVariable),通過通道訪問協(xié)議CA(ChanneI Access)與操作員接口計(jì)算機(jī)OPI(OperatorInterf ace)客戶端建立一個(gè)連接通道;也可以將EPICS軟件的過程變量PV轉(zhuǎn)換為底層控制器能夠識別的信號類型,實(shí)現(xiàn)對現(xiàn)場層設(shè)備的控制;方便實(shí)驗(yàn)人員通過人機(jī)交互界面實(shí)現(xiàn)對現(xiàn)場設(shè)備的監(jiān)控,報(bào)警和數(shù)據(jù)存檔等。
【主權(quán)項(xiàng)】
1.一種基于EPICS的控制系統(tǒng)跨平臺(tái)數(shù)據(jù)傳輸實(shí)現(xiàn)方法,其特征在于:在輸入輸出控制器1C中構(gòu)建設(shè)備支持模塊程序和設(shè)備驅(qū)動(dòng)支持模塊程序,實(shí)現(xiàn)將底層控制器上傳的設(shè)備信號轉(zhuǎn)換為有效的EPICS軟件的過程變量PV,同時(shí)將基于EPICS軟件的過程變量PV轉(zhuǎn)換為底層控制器能夠識別的信號類型,實(shí)現(xiàn)對現(xiàn)場層設(shè)備的控制; 設(shè)備支持模塊程序定義了設(shè)備支持的入口表及注冊信息,建立與EPISC軟件控制系統(tǒng)中數(shù)據(jù)庫的連接;設(shè)備支持模塊程序根據(jù)設(shè)備支持的入口表里的設(shè)備支持初始化模塊名和設(shè)備支持模塊名,調(diào)用底層的設(shè)備驅(qū)動(dòng)模塊程序;根據(jù)數(shù)據(jù)庫記錄的DTYP字段初始化記錄;根據(jù)記錄的特定字段處理和調(diào)用記錄,執(zhí)行I/O操作,對于輸入數(shù)據(jù),將原始數(shù)據(jù)轉(zhuǎn)換成PV;對于輸出數(shù)據(jù),將PV數(shù)據(jù)轉(zhuǎn)換成原始數(shù)據(jù); 設(shè)備驅(qū)動(dòng)支持模塊程序定義了設(shè)備驅(qū)動(dòng)入口表,建立與EPI SC軟件控制系統(tǒng)中數(shù)據(jù)庫的連接;初始化和底層控制器連接的硬件接口,實(shí)現(xiàn)和底層控制器的數(shù)據(jù)輸入輸出操作;并行運(yùn)行輸出線程,建立和設(shè)備控制層相關(guān)的操作;并行運(yùn)行輸入線程,接收到應(yīng)答后,調(diào)用I/O Intr中斷請求,設(shè)備支持模塊程序進(jìn)行EPICS的記錄處理,存入EPICS實(shí)時(shí)數(shù)據(jù)庫;客戶端的人機(jī)操作界面通過EPICS的通道訪問協(xié)議CA實(shí)現(xiàn)從1C中的數(shù)據(jù)庫的過程變量PV的訪問,方便操作人員直觀監(jiān)控設(shè)備現(xiàn)場。
【文檔編號】G05B19/04GK106094583SQ201610425083
【公開日】2016年11月9日
【申請日】2016年6月13日
【發(fā)明人】何詩英, 黃連生, 高格, 傅鵬, 王廣紅, 朱黎黎, 沈君, 王澤京, 李令鵬, 陳曉嬌
【申請人】中國科學(xué)院等離子體物理研究所