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