白 雷,沈安文,鄭定富
1 前言
目前DCS在過程控制領(lǐng)域的應(yīng)用日益廣泛,其基本結(jié)構(gòu)為工業(yè)控制計(jì)算機(jī)/現(xiàn)場(chǎng)控制儀表或控制單元模塊/現(xiàn)場(chǎng)控制對(duì)象和執(zhí)行機(jī)構(gòu)三層。工業(yè)控制計(jì)算機(jī)實(shí)現(xiàn)生產(chǎn)過程信息、模擬畫面顯示、控制回路組態(tài)、生產(chǎn)過程優(yōu)化處理、運(yùn)行趨勢(shì)報(bào)表顯示等功能;現(xiàn)場(chǎng)控制儀表及控制單元模塊完成過程數(shù)據(jù)I/O、直接數(shù)字的過程控制、設(shè)備監(jiān)視和系統(tǒng)測(cè)試診斷等功能;執(zhí)行機(jī)構(gòu)和控制對(duì)象則接收控制信號(hào)實(shí)施最后的操作。目前,國(guó)內(nèi)外多家組態(tài)軟件公司提供了功能強(qiáng)大、應(yīng)用方便的組態(tài)軟件,用于DCS各層之間的協(xié)調(diào)連接和數(shù)據(jù)共享,在工控機(jī)上采用組態(tài)軟件編程成為DCS的一種趨勢(shì)。全中文工控組態(tài)軟件MCGS(Monitor and Control Generated System,通用監(jiān)控系統(tǒng))是一套用于快速構(gòu)造和生成計(jì)算機(jī)監(jiān)控系統(tǒng)的組態(tài)軟件,它能夠在基于Microsoft的各種32位Windows平臺(tái)上運(yùn)行,通過對(duì)現(xiàn)場(chǎng)數(shù)據(jù)的采集處理,以動(dòng)畫顯示、報(bào)警處理、流程控制和報(bào)表輸出等多種方式向用戶提供解決工程實(shí)際問題的方案,在工業(yè)控制領(lǐng)域有著廣泛的應(yīng)用。
筆者承擔(dān)了湖北大冶鐵礦球團(tuán)廠全過程自動(dòng)化的改造項(xiàng)目。大冶鐵礦豎爐球團(tuán)采用自制煤氣供其他工段使用,為達(dá)到穩(wěn)定供氣目的,采用DCS對(duì)出口煤氣的流量、壓力等參數(shù)進(jìn)行了控制。重慶宇通公司(以下簡(jiǎn)稱宇通公司)生產(chǎn)的ST2000是現(xiàn)場(chǎng)采用的數(shù)據(jù)采集單元,MCGS沒有提供其設(shè)備驅(qū)動(dòng),在實(shí)際應(yīng)用中用戶需要利用組態(tài)軟件提供的接口規(guī)范自行編制,本文研究了ST2000智能儀表在MCGS下的設(shè)備驅(qū)動(dòng)開發(fā)問題。
2 系統(tǒng)分析
制氣工段中,我們共設(shè)置3臺(tái)ST2000儀表對(duì)現(xiàn)場(chǎng)30個(gè)數(shù)據(jù)進(jìn)行采集,采集到的數(shù)據(jù)送到主機(jī),即研華610工控機(jī)上,通過主機(jī)與其他輸入輸出設(shè)備溝通。ST2000與主機(jī)之間采用422/485接口連接,其硬件系統(tǒng)圖如圖1所示。
圖1 ST2000數(shù)據(jù)采集硬件系統(tǒng)圖
該數(shù)據(jù)采集系統(tǒng)在整個(gè)煤氣發(fā)生爐控制系統(tǒng)里實(shí)際上是一個(gè)數(shù)據(jù)源,在現(xiàn)場(chǎng)運(yùn)行的環(huán)境下,必然要求數(shù)據(jù)的及時(shí)與可靠??紤]到整個(gè)軟件系統(tǒng)的運(yùn)行周期以及硬件設(shè)備的執(zhí)行周期,設(shè)置構(gòu)件的調(diào)用周期為1s。同時(shí),因?yàn)橛卸嗯_(tái)儀表同時(shí)運(yùn)行,考慮到該工程量大、一次性投資多等原因,為避免設(shè)備構(gòu)件的重復(fù)使用,擬訂用單設(shè)備構(gòu)件采集多設(shè)備。
宇通公司生產(chǎn)的ST2000智能儀表是一種集數(shù)據(jù)采集、控制、顯示、傳輸及輸出為一體的現(xiàn)場(chǎng)可操作儀表??砂闯绦蜃詣?dòng)完成模擬量和數(shù)字量的輸入輸出,同時(shí)與上位機(jī)按照203_Optomux協(xié)議進(jìn)行通信,通訊端口為COMM232。在大冶鐵礦煤氣發(fā)生爐控制系統(tǒng)中,該儀表用來實(shí)現(xiàn)工作現(xiàn)場(chǎng)數(shù)據(jù)的采集和轉(zhuǎn)換。
3 設(shè)備驅(qū)動(dòng)的開發(fā)
ST2000提供了可供用戶使用的串行通信協(xié)議,它提供了多種讀寫指令,由于這里只進(jìn)行數(shù)據(jù)采集,選取讀指令格式為:
1byte |
2 byte |
2 byte |
2 byte |
2 byte |
1 byte |
> |
Address |
L |
Channel |
Checksum |
CR |
標(biāo)識(shí)符 |
設(shè)備地址 |
命令名 |
設(shè)備通道號(hào) |
校驗(yàn)和 |
空格 |
其返回指令格式為:
1byte |
m*4bt,m為返回的數(shù)據(jù)個(gè)數(shù) |
2byte |
1byte |
A |
Data |
Checksum |
CR |
標(biāo)識(shí)符 |
數(shù)據(jù)位 |
校驗(yàn)和 |
空格 |
整個(gè)通訊過程為:在一個(gè)數(shù)據(jù)采集周期內(nèi),上位機(jī)調(diào)用ST2000設(shè)備驅(qū)動(dòng),向ST2000儀表發(fā)送讀指令,同時(shí)準(zhǔn)備接收返回的數(shù)據(jù);ST2000收到上位機(jī)發(fā)送的指令,自動(dòng)校驗(yàn)并識(shí)別指令含義及其所帶信息,將指令要求的數(shù)據(jù)以返回格式發(fā)送給上位機(jī);上位機(jī)收到應(yīng)答指令,校驗(yàn)并解析指令識(shí)別數(shù)據(jù)。
通訊設(shè)置為:
通訊端口 |
波特率 |
數(shù)據(jù)位 |
數(shù)據(jù)采集方式 |
停止位 |
校驗(yàn)方式 |
串口1 |
9600 |
8 |
同步采集 |
1 |
奇校驗(yàn) |
MCGS系統(tǒng)提供了一套可擴(kuò)充的接口規(guī)范和配套的高級(jí)開發(fā)工具包來開發(fā)擴(kuò)充構(gòu)件,以多種方式與其他應(yīng)用程序?qū)崿F(xiàn)數(shù)據(jù)交互,以滿足各方用戶的需求。
MCGS用Active DLL構(gòu)件的方式來實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)程序,通過規(guī)范的OLE接口掛接到MCGS中,使其構(gòu)成一個(gè)整體,由于設(shè)備驅(qū)動(dòng)構(gòu)件和MCGS運(yùn)行在同一個(gè)進(jìn)程內(nèi),故設(shè)備構(gòu)件運(yùn)行速度快,可靠性高,不存在傳統(tǒng)DDE方式連接時(shí)的數(shù)據(jù)流通不暢和傳輸速度慢等問題。同時(shí),OLE是一個(gè)可擴(kuò)充的開放標(biāo)準(zhǔn),可實(shí)現(xiàn)不同語(yǔ)言軟件之間的相互操作。
MCGS把實(shí)際外部設(shè)備分為獨(dú)立的設(shè)備、父設(shè)備和子設(shè)備三類,獨(dú)立設(shè)備是可獨(dú)立工作,完成特定數(shù)據(jù)輸入輸出功能的設(shè)備,如PC接口卡;父設(shè)備是本身不處理數(shù)據(jù)輸入輸出,但起到管理其它設(shè)備工作的設(shè)備,如串行口設(shè)備、IDCN-893的通訊卡;子設(shè)備是本身具有處理數(shù)據(jù)輸入輸出的功能,但只有和對(duì)應(yīng)的父設(shè)備一起才構(gòu)成完整工作系統(tǒng)的設(shè)備,如PLC設(shè)備、帶智能通訊功能的儀器儀表等。MCGS提供通用串口父設(shè)備構(gòu)件,可直接掛接子設(shè)備和設(shè)置通訊屬性。
利用MCGS組態(tài)軟件的多語(yǔ)言支持功能和所帶的豐富的接口函數(shù),很容易地進(jìn)行編程,考慮到VB的簡(jiǎn)潔和工整,可利用它進(jìn)行開發(fā)工作。同時(shí),利用MCGS提供的在線測(cè)試功能,可靈活的進(jìn)行程序的在線調(diào)試。
需要注意的是,在編制設(shè)備構(gòu)件程序的過程中,兩個(gè)接口函數(shù)即RunDevCommand()和CollectDevDat()的運(yùn)用。這兩個(gè)接口函數(shù)分別對(duì)應(yīng)“設(shè)備命令”和“采集數(shù)據(jù)”兩個(gè)設(shè)備構(gòu)件的基本功能。用戶在編制程序時(shí)遇到需要分批采集數(shù)據(jù),如采集多個(gè)同類設(shè)備,就要考慮到時(shí)序配合的問題。RunDevCommand()接口用于用戶自己定制命令,完成特殊功能,一般用來讀寫單個(gè)數(shù)據(jù),而CollectDevDat()接口則可進(jìn)行數(shù)據(jù)的批量讀寫,且可以直接和MCGS的組態(tài)環(huán)境數(shù)據(jù)庫(kù)中的變量聯(lián)系起來,較前者更方便可靠。
圖2 MCGS設(shè)備構(gòu)件開發(fā)流程圖
MCGS內(nèi)部的ST2000通訊狀態(tài)可由其通訊測(cè)試圖來顯示。ST2000回路控制器作為一個(gè)數(shù)據(jù)源通過組態(tài)同工程其他環(huán)節(jié)協(xié)調(diào)工作,協(xié)助實(shí)現(xiàn)控制策略、實(shí)時(shí)報(bào)表、界面演示等功能。
不同設(shè)備,它所支持的通訊協(xié)議不同,其驅(qū)動(dòng)程序的編制也就不盡相同。但只要給出其數(shù)據(jù)傳輸?shù)膮f(xié)議,在掌握開發(fā)工具的條件下開發(fā)驅(qū)動(dòng),對(duì)于一般編程人員,都不是一件難事,驅(qū)動(dòng)程序大致的開發(fā)流程如圖2所示。
4 結(jié)語(yǔ)
圖3為實(shí)際運(yùn)行時(shí)ST2000的數(shù)據(jù)顯示界面。經(jīng)長(zhǎng)期運(yùn)行檢驗(yàn),該驅(qū)動(dòng)程序效果良好,保證了數(shù)據(jù)采集的及時(shí)可靠,為進(jìn)一步實(shí)現(xiàn)控制算法提供了準(zhǔn)確穩(wěn)定的數(shù)據(jù)來源。
圖3 ST2000數(shù)據(jù)顯示界面
隨著科技的日新月異,各種先進(jìn)設(shè)備不斷涌現(xiàn),給從事流程工業(yè)控制的工程人員帶來前所未有的挑戰(zhàn)。開發(fā)設(shè)備驅(qū)動(dòng)不論是對(duì)于軟、硬件開發(fā)工程人員還是對(duì)于第三方的專業(yè)、業(yè)余開發(fā)者或用戶來說,都越來越成為必要的技能。本文所介紹的在MCGS環(huán)境下開發(fā)智能型多功能儀表,方便易懂,簡(jiǎn)潔明了,已經(jīng)成功運(yùn)用于大冶鐵礦球團(tuán)廠自動(dòng)化改造項(xiàng)目中,具有較高的參考價(jià)值。
參考文獻(xiàn):
[1] 北京昆侖通態(tài)自動(dòng)化軟件科技有限公司[Z]. 全中文工控組態(tài)軟件MCGS參考手冊(cè). 1998.
[2] 北京昆侖通態(tài)自動(dòng)化軟件科技有限公司[Z]. 全中文工控組態(tài)軟件MCGS用戶指南. 1998.
[3] 魯思慧. 全中文工控組態(tài)軟件MCGS[J]. 自動(dòng)化博覽, 2002.3.
[4] 沈德耀. 開放式集散控制系統(tǒng)與現(xiàn)場(chǎng)總線技術(shù)[J]. 岳陽(yáng)師范學(xué)院學(xué)報(bào)(自然科學(xué)版), 2000,13(3).
[5] Brian Siler,Jeff Spotts Visual Basic 6.0開發(fā)使用手冊(cè)[M]. 北京: 機(jī)械工業(yè)出版社, 1999,4.