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