基于OPC技術(shù)的控制系統(tǒng)組態(tài)--畢業(yè)設(shè)計(jì)_第1頁(yè)
基于OPC技術(shù)的控制系統(tǒng)組態(tài)--畢業(yè)設(shè)計(jì)_第2頁(yè)
基于OPC技術(shù)的控制系統(tǒng)組態(tài)--畢業(yè)設(shè)計(jì)_第3頁(yè)
基于OPC技術(shù)的控制系統(tǒng)組態(tài)--畢業(yè)設(shè)計(jì)_第4頁(yè)
基于OPC技術(shù)的控制系統(tǒng)組態(tài)--畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、本科畢業(yè)設(shè)計(jì)(論文)摘 要OPC是微軟OLE技術(shù)在工業(yè)控制領(lǐng)域建立的一套符合工業(yè)控制要求的通信接口規(guī)范?;贠PC 規(guī)范,控制軟件可以高效、穩(wěn)定地對(duì)硬件設(shè)備進(jìn)行數(shù)據(jù)存取操作,極大地提高了控制系統(tǒng)的互操作性和適應(yīng)性。OPC 將現(xiàn)場(chǎng)信號(hào)按照統(tǒng)一的標(biāo)準(zhǔn)與控制管理軟件無(wú)縫連接,將硬件和應(yīng)用軟件有效地分離。針對(duì)當(dāng)前污水處理控制系統(tǒng)的規(guī)模不斷擴(kuò)大、監(jiān)控設(shè)備日益復(fù)雜、性能日益提高的狀況,傳統(tǒng)的監(jiān)控模式已經(jīng)制約了污水處理控制系統(tǒng)的發(fā)展。為此構(gòu)建了一種于0PC技術(shù)和CAN現(xiàn)場(chǎng)總線技術(shù)的分布式污水處理控制系統(tǒng)體系結(jié)構(gòu)。實(shí)現(xiàn)現(xiàn)場(chǎng)設(shè)備和監(jiān)控軟件的無(wú)縫集成。結(jié)合著活性污泥法污水處理工藝流程,說(shuō)明了監(jiān)控系統(tǒng)的硬件基本結(jié)構(gòu)

2、。給出了采用VB6.0開(kāi)發(fā)了0PC客戶應(yīng)用軟件的標(biāo)準(zhǔn)0PC接口的程序。在實(shí)際應(yīng)用中該方法取得良好的效果。關(guān)鍵詞: OPC(OLE for Process Control);工業(yè)控制;通信接口ABSTRACTOPC is a set of communication interface norms which are established on the basis of Microsoft OLE technology in the industrial control field and which accord with the requirements of industrial con

3、trol. According to the OPC norm , cont rol2software can efficiently and stably carry on a data access operation to the hard2 ware equipment and greatly improve the mutual operability and adaptability of the cont rol2system. The OPC technique connect s the spot signal to the cont rol2management softw

4、are according to the uniform standards ,and also effectively separates the hardware from the internet application software. Aim at the condition that control scale is extending continuously,equipments become complicated and its function raise increasingly in the process of sewage disposed monitor sy

5、stem,traditionary monitor mode have restricted the development of sewage disposed monitor systemA distributed system structure of sewage disposed monitor system based on 0PC technology and CANField Bus technology was constituted Seamless integration between 10caIe equipment and monitor software was

6、carried out The hardware structure of the monitor system was introduced associated with the sewage disposed craft The program developed by VB6.0 of the 0PC interface of 0PC client application software was providedThe experimental result shows satisfactory feasibility of the methodKeywords: OPC(OLE f

7、or Process Control); industrial control; communication interface目 錄前言第一章 OPC簡(jiǎn)介1 1. OPC摘要5第二章 使用visual basic開(kāi)發(fā)OPC應(yīng)用程序5 1 建立一個(gè)visual basic 工程9 2 建立一個(gè)OPC對(duì)象9 2.1 變量聲明10 2.2 連接OPC服務(wù)器和建立OPC組11 2.3 添加OPC標(biāo)簽11 2.4 斷開(kāi)OPC服務(wù)器12 3 同步數(shù)據(jù)讀寫(xiě)12 3.1 窗體設(shè)計(jì)12 3.2 命令按鈕的事件處理12 3.3 同步數(shù)據(jù)讀取13 3.4 同步數(shù)據(jù)寫(xiě)入13 3.5 運(yùn)行結(jié)果14第三章 使用Visu

8、al Basic開(kāi)發(fā)OPC ActiveX控件14 1 建立一個(gè)ActiveX控件15 1.1 添加控件的屬性,方法和事件15 1.2 建立屬性頁(yè)18 1.3 調(diào)試ActiveX控件20 1.4 生成ActiveX控件24第四章 使用ActiveX控件的OPC應(yīng)用程序24 1 使用EXCEL和VBA的OPC應(yīng)用程序26 2使用VBA建立OPC服務(wù)器數(shù)據(jù)訪問(wèn)程序26第五章 OPC技術(shù)在污水處理控制系統(tǒng)中應(yīng)用30 1 控系統(tǒng)結(jié)構(gòu)設(shè)計(jì)33 2 下面是對(duì)OPC接口開(kāi)發(fā)程序的介紹。33結(jié)論34參考文獻(xiàn)38致謝39附錄40前 言O(shè)PC(OLE for Process Control)不僅是生產(chǎn)系統(tǒng)中的關(guān)鍵

9、基礎(chǔ)技術(shù)之一,并且也是被終端用戶廣泛采用的軟件標(biāo)準(zhǔn)技術(shù)。在1980年阿爾溫·托夫勒,提出了繼農(nóng)業(yè)革命,產(chǎn)業(yè)革命之后將出現(xiàn)大的社會(huì)體系變革的所謂“第三次浪潮”理論。即是一次從集中向分散,從體力勞動(dòng)向腦力勞動(dòng),從機(jī)械向信息轉(zhuǎn)移的社會(huì)變革。這不僅僅只是實(shí)現(xiàn)信息化社會(huì)。由于來(lái)自舊社會(huì)勢(shì)力的抵抗和現(xiàn)存技術(shù)基板的制約,不可能馬上實(shí)現(xiàn)這種變革。但是20年后的今天,在制造業(yè)進(jìn)行的管理過(guò)程革新以及IT的飛躍發(fā)展正在逐步克服這些障礙。21世紀(jì)將是真正地受到第三次浪潮的沖洗而出現(xiàn)的新地表的世紀(jì)。在這其中,OPC正是在制造業(yè)的儀表控制領(lǐng)域內(nèi)所發(fā)生的“第三次浪潮”的主流。為了實(shí)現(xiàn)不同的硬件和軟件所構(gòu)成的計(jì)算機(jī)

10、之間的數(shù)據(jù)交換和通信,必須要花費(fèi)很多時(shí)間去開(kāi)發(fā)獨(dú)自的通信程序。但是正是由于現(xiàn)在有了數(shù)據(jù)交換和通信的工業(yè)標(biāo)準(zhǔn),才有可以實(shí)現(xiàn)象互聯(lián)網(wǎng)那樣,使不同的計(jì)算機(jī)相互連接的巨大網(wǎng)絡(luò)。所以在開(kāi)發(fā)企業(yè)的信息系統(tǒng)時(shí),采用符合工業(yè)標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)和客戶服務(wù)器接口,可以使有效的精力更多地投入到應(yīng)用程序本身功能的開(kāi)發(fā)中去。利用OPC的系統(tǒng),是由按照應(yīng)用程序(客戶程序)的要求提供數(shù)據(jù)收集服務(wù)的OPC服務(wù)器,使用OPC服務(wù)器所必需的OPC接口,以及接受服務(wù)的OPC應(yīng)用程序所構(gòu)成。OPC服務(wù)器是按照各個(gè)供應(yīng)廠商的硬件所開(kāi)發(fā)的,使之可以吸收各個(gè)供應(yīng)廠商硬件和系統(tǒng)的差異,從而實(shí)現(xiàn)不依存于硬件的系統(tǒng)構(gòu)成。我剛剛接觸OPC時(shí),最大的擔(dān)心

11、是這種新技術(shù)使用復(fù)雜的微軟的COM技術(shù)作為基礎(chǔ),這會(huì)使opc的普及變得困難,所以本課題試圖用一些有關(guān)微軟Visual Basic或者應(yīng)用程序的Visual Basic的基礎(chǔ)知識(shí)去開(kāi)發(fā)opc應(yīng)用程序,然而這并不要求你懂得COM和OPC的預(yù)備知識(shí)。首先這一章解釋了什么是OPC和為什么需要OPC,并且講述了OPC的開(kāi)發(fā)歷史和現(xiàn)狀。第1章說(shuō)明了開(kāi)發(fā)使用OPC數(shù)據(jù)訪問(wèn)自動(dòng)化接口應(yīng)用程序所需的OPC基礎(chǔ)知識(shí)。接下來(lái)解說(shuō)了有關(guān)OPC的一些重要概念,比如OPC服務(wù)器(server),OPC包裝(wrapper),OPC標(biāo)簽(item),服務(wù)器句柄(handler)等。最后詳細(xì)地講述了OPC對(duì)象。在閱讀了本章之

12、后,讀者應(yīng)該可以掌握所有開(kāi)發(fā)OPC應(yīng)用程序所需的基礎(chǔ)知識(shí)。第2章是說(shuō)明怎樣使用微軟Visual Basic去開(kāi)發(fā)OPC自動(dòng)化接口的客戶應(yīng)用程序。利用本章說(shuō)明的應(yīng)用程序,可以實(shí)現(xiàn)OPC自動(dòng)化接口(版本2.0)的同步和異步的生產(chǎn)過(guò)程數(shù)據(jù)讀寫(xiě)。第3章是在第2章的基礎(chǔ)上,解釋怎樣使用微軟Visual Basic去開(kāi)發(fā)使用OPC自動(dòng)化接口的ActiveX控件。ActiveX控件是一些可以多次被使用的軟件組件。例如當(dāng)你利用Visual Basic開(kāi)發(fā)去類似設(shè)備的控制監(jiān)視程序時(shí),你可以只開(kāi)發(fā)一個(gè)ActiveX控件去監(jiān)視控制一個(gè)設(shè)備,然后你可以使用這個(gè)ActiveX控件監(jiān)視控制其他類似設(shè)備。你僅僅需要調(diào)試好你

13、的ActiveX控件就可以了,這樣一來(lái)可以大大減少你的開(kāi)發(fā)成本和開(kāi)發(fā)時(shí)間。第4章是說(shuō)明怎樣使用微軟應(yīng)用程序的Visual Basic去開(kāi)發(fā)OPC自動(dòng)化接口的客戶應(yīng)用程序和使用OPC ActiveX控件的客戶應(yīng)用程序。使用Excel可以使開(kāi)發(fā)控制系統(tǒng)數(shù)據(jù)的圖形表示或打印應(yīng)用程序更為簡(jiǎn)單?;贠PC技術(shù)的控制系統(tǒng)組態(tài)第一章 OPC簡(jiǎn)介1. OPC摘要對(duì)于早期的計(jì)算機(jī)系統(tǒng),為了實(shí)現(xiàn)不同的硬件和軟件所構(gòu)成的計(jì)算機(jī)之間的數(shù)據(jù)交換和通信,必須要花費(fèi)很多時(shí)間去開(kāi)發(fā)獨(dú)自的通信程序。但是正是由于現(xiàn)在有了數(shù)據(jù)交換和通信的工業(yè)標(biāo)準(zhǔn),才有可以實(shí)現(xiàn)象互聯(lián)網(wǎng)那樣,使不同的計(jì)算機(jī)相互連接的巨大網(wǎng)絡(luò)。所以在開(kāi)發(fā)企業(yè)的信息系統(tǒng)

14、時(shí),采用符合工業(yè)標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)和客戶服務(wù)器接口,可以使有效的精力更多地投入到應(yīng)用程序本身功能的開(kāi)發(fā)中去。工業(yè)制造系統(tǒng)也存在同樣的問(wèn)題。也就是使由不同的供應(yīng)商提供的機(jī)器設(shè)備無(wú)須特別的軟件開(kāi)發(fā)就可以互相連接。例如在實(shí)現(xiàn)象圖1-1那樣的多層生產(chǎn)控制信息系統(tǒng)時(shí),從處理設(shè)備數(shù)據(jù)的現(xiàn)場(chǎng)設(shè)備層,到進(jìn)行過(guò)程處理的過(guò)程控制系統(tǒng)層,以至最上層的生產(chǎn)管理層,建立和普及一個(gè)有效的數(shù)據(jù)交換工業(yè)標(biāo)準(zhǔn)乃是當(dāng)務(wù)之急。在這種情況下,利用微軟Windows視窗中的OLE/COM技術(shù)實(shí)現(xiàn)工業(yè)制造系統(tǒng)過(guò)程控制中的數(shù)據(jù)交換標(biāo)準(zhǔn)化,正是OPC(OLE for Process Control)本來(lái)的目的所在。怎樣使用微軟應(yīng)用程序的Visua

15、l Basic去開(kāi)發(fā)OPC自動(dòng)化接口的客戶應(yīng)用程序和使用OPC ActiveX控件的客戶應(yīng)用程序。使用Excel可以使開(kāi)發(fā)控制系統(tǒng)數(shù)據(jù)的圖形表示或打印應(yīng)用程序更為簡(jiǎn)單。利用OPC的系統(tǒng),是由按照應(yīng)用程序(客戶程序)的要求提供數(shù)據(jù)收集服務(wù)的OPC服務(wù)器,使用OPC服務(wù)器所必需的OPC接口,以及接受服務(wù)的OPC應(yīng)用程序所構(gòu)成。OPC服務(wù)器是按照各個(gè)供應(yīng)廠商的硬件所開(kāi)發(fā)的,使之可以吸收各個(gè)供應(yīng)廠商硬件和系統(tǒng)的差異,從而實(shí)現(xiàn)不依存于硬件的系統(tǒng)構(gòu)成。OPC是為了不同供應(yīng)廠商的設(shè)備和應(yīng)用程序之間的軟件接口標(biāo)準(zhǔn)化,使其間的數(shù)據(jù)交換更加簡(jiǎn)單化的目的而提出的。作為結(jié)果,從而可以向用戶提供不依靠于特定開(kāi)發(fā)語(yǔ)言和開(kāi)

16、發(fā)環(huán)境的可以自由組合使用的過(guò)程控制軟件組件產(chǎn)品。到目前為止,硬件的驅(qū)動(dòng)器和與其連接的應(yīng)用程序之間的接口并沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)。 圖1-1 生產(chǎn)控制信息系統(tǒng)的構(gòu)成例如,在FA(Factory Automation)領(lǐng)域,連接PLC(Programmable Logic Controller)等控制設(shè)備和 SCADA/HMI軟件,需要不同的FA網(wǎng)絡(luò)系統(tǒng)構(gòu)成。根據(jù)某調(diào)查結(jié)果,據(jù)說(shuō)在控制系統(tǒng)軟件開(kāi)發(fā)的所需費(fèi)用中,各種各樣機(jī)器的應(yīng)用程序設(shè)計(jì)占費(fèi)用的7成,而開(kāi)發(fā)機(jī)器設(shè)備間的連接接口則占了3成。此外,在PA(Process Automation)領(lǐng)域,希望把DCS(Distributed Control Syst

17、em)中所有的過(guò)程數(shù)據(jù)傳送到生產(chǎn)管理系統(tǒng)時(shí),必須按照各個(gè)供應(yīng)廠商的各個(gè)機(jī)種開(kāi)發(fā)特定的接口(例如,利用C語(yǔ)言DLL連接的DDE服務(wù)器或者利用FTP的文本文件傳送等)。例如,在圖1-2所示的由4種控制設(shè)備和與其連接的監(jiān)視,趨勢(shì)圖以及表報(bào)3種應(yīng)用程序所構(gòu)成的系統(tǒng)時(shí),必須花費(fèi)大量時(shí)間去開(kāi)發(fā)分別對(duì)應(yīng)設(shè)備A,B,C,D的監(jiān)視,趨勢(shì)圖以及表報(bào)應(yīng)用程序的接口軟件共計(jì)12種驅(qū)動(dòng)器。同時(shí)由于系統(tǒng)中共存各種各樣的驅(qū)動(dòng)器,也使維護(hù)運(yùn)轉(zhuǎn)環(huán)境的穩(wěn)定性和信賴性更加困難。圖1-2 利用驅(qū)動(dòng)器的系統(tǒng)連接利用OPC的系統(tǒng),是由按照應(yīng)用程序(客戶程序)的要求提供數(shù)據(jù)收集服務(wù)的OPC服務(wù)器,使用OPC服務(wù)器所必需的OPC接口,以及接

18、受服務(wù)的OPC應(yīng)用程序所構(gòu)成。OPC服務(wù)器是按照各個(gè)供應(yīng)廠商的硬件所開(kāi)發(fā)的,使之可以吸收各個(gè)供應(yīng)廠商硬件和系統(tǒng)的差異,從而實(shí)現(xiàn)不依存于硬件的系統(tǒng)構(gòu)成。同時(shí)利用一種叫做Variant的數(shù)據(jù)型,可以不依存于硬件中固有數(shù)據(jù)型,按照應(yīng)用程序要求提供的數(shù)據(jù)格式。 利用OPC使接口標(biāo)準(zhǔn)化可以構(gòu)成如圖1-3所示的系統(tǒng)。用戶可以不依存于設(shè)備A,B,C,D的內(nèi)部結(jié)構(gòu)及它的供應(yīng)廠商,選用監(jiān)視,趨勢(shì)圖以及表報(bào)應(yīng)用程序。圖1-3利用OPC的控制系統(tǒng)構(gòu)成早期的OPC標(biāo)準(zhǔn)是由提供工業(yè)制造軟件的5家公司所組成的OPC特別工作小組所開(kāi)發(fā)的。Fisher-Rosement,Intellution,Rockwell Soft w

19、ell,Intuitive Technology以及Opto22早在1995年開(kāi)發(fā)了原始的OPC標(biāo)準(zhǔn),微軟同時(shí)作為技術(shù)顧問(wèn)給予了支持。 OPC基金會(huì)(OPC Foundation,OPC-F),是在1996年9月24日在美國(guó)的達(dá)拉斯舉行了第一次理事會(huì),并在同年10月7日在美國(guó)的芝加哥舉行了第一次全體大會(huì)上宣告正式成立的。之后為了普及和進(jìn)一步改進(jìn)于1996年8月完成的OPC數(shù)據(jù)訪問(wèn)標(biāo)準(zhǔn)版本1.0,開(kāi)始了全球范圍的活動(dòng)?,F(xiàn)在的OPC基金會(huì)的理事會(huì)是由Fisher-Rosement,Honeywell,Intellution,Rockwell Software,National Instrument

20、以及歐洲代表的Siements和遠(yuǎn)東代表的東芝所組成。 在日本為響應(yīng)以美國(guó)為中心的國(guó)際標(biāo)準(zhǔn)活動(dòng),由11家公司作為發(fā)起人,于1996年6月開(kāi)始基金會(huì)成立的準(zhǔn)備活動(dòng),并于1996年10月17日正式成立了日本OPC協(xié)會(huì)(OPC-J)。幾乎與其同時(shí)歐洲OPC協(xié)會(huì)(OPC-E)也相繼成立。在中國(guó)也于由5家公司作為發(fā)起人于2001年12月正式成立了中國(guó)OPC促進(jìn)會(huì)(OPC-C)。OPC基金會(huì)從成立開(kāi)始會(huì)員逐年增加,到目前為止在全球范圍內(nèi)已有近300家公司加入了這個(gè)國(guó)際標(biāo)準(zhǔn)組織。同時(shí)由控制設(shè)備廠商和控制軟件供應(yīng)商提供的OPC產(chǎn)品也日益增加,目前已有600種以上的OPC服務(wù)器產(chǎn)品和OPC應(yīng)用程序產(chǎn)品出現(xiàn)在由O

21、PC基金會(huì)發(fā)行的OPC產(chǎn)品目錄上。第二章 使用visual basic開(kāi)發(fā)OPC應(yīng)用程序1 建立一個(gè)visual basic 工程利用Visual Basic開(kāi)發(fā)OPC應(yīng)用程序時(shí),實(shí)現(xiàn)OPC自動(dòng)化接口的OPC包裝DLL是必須的。這個(gè)OPC包裝DLL一般應(yīng)該是由OPC服務(wù)器的供應(yīng)商提供的。這個(gè)OPC包裝DLL的名稱可能隨供應(yīng)商有所不同,具體信息請(qǐng)向你的OPC服務(wù)器供應(yīng)商查詢。首先啟動(dòng)Visual Basic,新建一個(gè)Visual Basic的工程。請(qǐng)選擇標(biāo)準(zhǔn) EXE作為新建工程的類型(如圖 2-1)圖2-1設(shè)置OPC包裝DLL: 因?yàn)樵谛陆ǖ腣isual Basic工程里OPC包裝DLL還沒(méi)有被

22、注冊(cè),必須用下述方法對(duì)OPC包裝DLL進(jìn)行注冊(cè)。 設(shè)置方法 :1) 從Visual Basic菜單里選擇工程(P)-引用(N)。2) 在可用的引用(A)的一覽表示中,請(qǐng)選擇對(duì)應(yīng)OPC包裝DLL的文件名。這里,我們選擇OPC Automation 2.0。(如圖2-2)圖2-2設(shè)置了對(duì)OPC包裝DLL的引用,我們就可以使用OPC自動(dòng)化對(duì)象了。如果希望查看在工程內(nèi)可以使用的COM組件的時(shí)候,可以使用對(duì)象瀏覽器。選擇Visual Basic菜單的視圖(V)-對(duì)象瀏覽器(O), 可以顯示對(duì)象瀏覽器的視窗。如果已經(jīng)設(shè)置了對(duì)OPC包裝的引用,那么對(duì)象瀏覽器左上角的列表框中應(yīng)該已經(jīng)包括了OPC Automa

23、tion的選項(xiàng)(圖2-3)。圖2-32 建立一個(gè)OPC對(duì)象 在Visual Basic里,是以對(duì)象的單位對(duì)OPC服務(wù)器進(jìn)行訪問(wèn)。OPC自動(dòng)化接口是由以下四種對(duì)象所定義。分別是OPC服務(wù)器;OPC組(OPC組集合);OPC標(biāo)簽(OPC標(biāo)簽集合);OPC瀏覽器 。這里只說(shuō)明OPC服務(wù)器,OPC組以及OPC標(biāo)簽對(duì)象的使用方法。具體的來(lái)說(shuō),先連接一個(gè)特定的OPC服務(wù)器,然后建立OPC組,最后添加OPC標(biāo)簽。 2.1 變量聲明 參考圖 2-4所示的示范代碼,先對(duì)OPC對(duì)象變量進(jìn)行聲明。變量的數(shù)據(jù)類型應(yīng)該指定為對(duì)象型。這些對(duì)象變量最好在窗體代碼的(通用)部分聲明。因?yàn)樵冢ㄍㄓ茫┎糠致暶鞯淖兞?,可以在窗體的

24、任何方法的代碼內(nèi)引用。除了變量的聲明以外,我們還推薦指定下述的VB選項(xiàng)。 1) 和C以及C+等編程語(yǔ)言相比,Visual Basic可以很簡(jiǎn)單地處理變量,即使不進(jìn)行變量聲明也可以使用變量,但是這也正是可能產(chǎn)生程序缺陷的原因。再有,如果進(jìn)行了變量的聲明,由于可以在程序編譯時(shí)對(duì)對(duì)象進(jìn)行事前結(jié)合,有助于提高運(yùn)轉(zhuǎn)性能。所以我們建議在模塊代碼的最初的部分,加上“Option Explicit”語(yǔ)句,表示模塊里的所有變量需要顯式的聲明。這樣進(jìn)行程序編譯時(shí)將對(duì)所有變量名進(jìn)行檢查,如果出現(xiàn)未聲明的變量名將會(huì)以編譯錯(cuò)誤作出提示。 2) 因?yàn)樵儆蠴PC自動(dòng)化接口的數(shù)組的索引要求必須從1開(kāi)始開(kāi)始,為了避免錯(cuò)誤建議在

25、代碼的最初加上“Option Base 1”語(yǔ)句。圖2-42.2 連接OPC服務(wù)器和建立OPC組 下面說(shuō)明怎樣連接OPC服務(wù)器和建立OPC組??紤]到代碼的可反復(fù)使用性,這里采用子程序進(jìn)行編程。 這里用“New”關(guān)鍵詞生成OPC服務(wù)器的對(duì)象,然后調(diào)用OPC服務(wù)器對(duì)象的“Connect”方法,和OPC服務(wù)器連接。在連接遠(yuǎn)程服務(wù)器的時(shí)候,需要指定作為選用參數(shù)的遠(yuǎn)程計(jì)算機(jī)名。 2.3 添加OPC標(biāo)簽 對(duì)OPC服務(wù)器進(jìn)行訪問(wèn)前,必須先在OPC組里添加要訪問(wèn)的OPC標(biāo)簽。 這里添加OPC標(biāo)簽的標(biāo)識(shí)符和數(shù)目是固定的,但是實(shí)際的OPC應(yīng)用程序往往要按照用戶的指定或讀取組態(tài)文件取得和處理需要添加的OPC標(biāo)簽的一

26、覽。 2.4 斷開(kāi)OPC服務(wù)器 連接著OPC服務(wù)器的OPC應(yīng)用程序,在退出前必須斷開(kāi)和OPC服務(wù)器的連接(表2-4)。因?yàn)镺PC服務(wù)器并不知道OPC應(yīng)用程序的退出,如果不先斷開(kāi)連接,那么OPC服務(wù)器使用的計(jì)算機(jī)資源就不會(huì)被釋放。如果這樣的問(wèn)題反復(fù)發(fā)生,久而久之,連續(xù)運(yùn)轉(zhuǎn)的自動(dòng)控制系統(tǒng)可能會(huì)使計(jì)算機(jī)資源漸漸枯竭從而發(fā)生嚴(yán)重問(wèn)題。3 同步數(shù)據(jù)讀寫(xiě) 到此為止,我們已經(jīng)基本說(shuō)明了OPC對(duì)象?,F(xiàn)在,讓我們制作一個(gè)實(shí)際的OPC數(shù)據(jù)訪問(wèn)應(yīng)用程序。首先讓我們先說(shuō)明同步方式的數(shù)據(jù)訪問(wèn)。 3.1 窗體設(shè)計(jì) 讓我們制作具有如圖2-5所示窗體的OPC應(yīng)用程序。這個(gè)程序讀取點(diǎn)的數(shù)據(jù),并用棒圖表示讀取的數(shù)據(jù)。棒圖的更新周

27、期為秒,使用定時(shí)器以秒的周期對(duì)OPC服務(wù)器進(jìn)行同步數(shù)據(jù)讀取。 當(dāng)文字框內(nèi)按下Enter鍵時(shí),對(duì)OPC服務(wù)器進(jìn)行同步數(shù)據(jù)寫(xiě)入。 再有,我們使用的演示用OPC服務(wù)器,OPC標(biāo)簽一旦被寫(xiě)入后就停止數(shù)據(jù)仿真,數(shù)據(jù)被固定在寫(xiě)入值不再變化。圖 2-53.2 命令按鈕的事件處理 當(dāng)按下在窗體上的命令按鈕的事件發(fā)生時(shí),通過(guò)調(diào)用在2.2節(jié)說(shuō)明的各種方法對(duì)發(fā)生的事件進(jìn)行處理。 為了在中止應(yīng)用程序時(shí)斷開(kāi)和OPC服務(wù)器的連接,在窗體的Unload事件處理中調(diào)用了斷開(kāi)OPC服務(wù)器連接的子程序。 3.3 同步數(shù)據(jù)讀取 在本示范程序中是利用定時(shí)器的定時(shí)器事件進(jìn)行更新數(shù)據(jù)的顯示。這時(shí)所有的數(shù)據(jù)是采用同步方式對(duì)OPC服務(wù)器進(jìn)行

28、讀取的。表2-10是定時(shí)器的事件處理以及同步讀取處理的代碼。定時(shí)器事件處理內(nèi)調(diào)用的“SyncRead”子程序如表2-11所示。再有在讀取前為了避免錯(cuò)誤發(fā)生,對(duì)OPC組和OPC標(biāo)簽數(shù)進(jìn)行檢查。3.4 同步數(shù)據(jù)寫(xiě)入 在本示范程序中是利用文字框的按鍵事件對(duì)OPC服務(wù)器進(jìn)行寫(xiě)入的。當(dāng)某文字框內(nèi)回車鍵按下時(shí),則對(duì)其對(duì)應(yīng)的OPC標(biāo)簽進(jìn)行寫(xiě)入。在文字框的按鍵事件處理中,首先先對(duì)按下的鍵進(jìn)行判別,如果是回車鍵則進(jìn)行同步寫(xiě)入。表2-12是按鍵事件處理以及同步寫(xiě)入處理的代碼。按鍵事件處理內(nèi)調(diào)用的“SyncWrite”子程序如表2-13所示。 3.5 運(yùn)行結(jié)果 本示范程序的OPC連接處理和OPC標(biāo)簽添加處理,只對(duì)應(yīng)

29、既定的OPC服務(wù)器和既定的OPC標(biāo)簽。在制作實(shí)際的OPC應(yīng)用程序時(shí),往往需要建立另外的視窗讓用戶可以選擇OPC服務(wù)器與OPC標(biāo)簽。再有,對(duì)于動(dòng)作幾乎相同的圖象,標(biāo)簽以及文字框是作為控件數(shù)組處理的,為了使記述更為簡(jiǎn)單。實(shí)際的運(yùn)行結(jié)果如圖 2-6所示。圖2-6第三章 使用Visual Basic開(kāi)發(fā)OPC ActiveX控件1. 建立一個(gè)ActiveX控件 在使用VB開(kāi)發(fā)OPC ActiveX控件時(shí),首先應(yīng)該新建一個(gè)具有ActiveX控件雛形的VB工程。從VB的菜單選擇文件(F)-新建工程(N),則顯示圖3-1的畫(huà)面。圖3-1請(qǐng)?jiān)谛陆üこ虒?duì)話框里選擇ActiveX控件圖標(biāo),然后按下確定,于是生成了

30、如圖3-2的畫(huà)面所示的一個(gè)新的ActiveX控件雛形。這樣已經(jīng)自動(dòng)生成了一個(gè)有UserControl1的ActiveX控件。從VB的菜單選擇運(yùn)行(R)-啟動(dòng)(S),可以用Internet Explore(以下簡(jiǎn)稱為IE)顯示這個(gè)新建的ActiveX控件。圖3-2因?yàn)樾陆ǖ腁ctiveX控件工程的默認(rèn)名稱是“Project1”,下面把這個(gè)名稱改變?yōu)椤癘PCTrend”。從VB菜單選擇工程(P)-Project1屬性(E).。請(qǐng)?jiān)诒硎镜腜roject1 工程屬性的對(duì)話框里改變以下的項(xiàng)目(圖3-3)。圖3-3 工程描述的定義將成為以后在工程(P)-部件(O)的一覽中表示的部件名稱。下面先將用戶控件的

31、屬性視窗的(名稱)屬性改變?yōu)椤癟rendGraph”(圖3-4)。這個(gè)名稱將成為建成OPC ActiveX控件的類名。例如用建成的OPC ActiveX控件配置在標(biāo)準(zhǔn)EXE文件的窗體時(shí),配置的OPC ActiveX控件的默認(rèn)名稱將是“TrendGraphX”。這里X是從1,2,3.的建成順序號(hào),在應(yīng)用程序中可使用這個(gè)名稱引用配置的OPCActiveX控件對(duì)象。圖3-4接著把用戶控件的BackColor屬性設(shè)置為“&H00000000&”(黒)。再在這個(gè)用戶控件上添加一個(gè)線(Line)控件對(duì)象,并將線的(名稱)屬性設(shè)置為“l(fā)inHorizon”,并將其Border Color屬性

32、設(shè)置為“&HFFFFFFFF&”(白)。于是這個(gè)用戶控件就變成圖3-5的樣子。圖3-5必需的引用和聲明: 我們制作的OPC ActiveX控件需要使用OPC自動(dòng)化包裝DLL,但是新建的VB工程并沒(méi)有注冊(cè)這個(gè)包裝DLL。首先需要在VB的引用設(shè)置里選擇OPC自動(dòng)化包裝DLL,并在用戶控件的代碼部分里對(duì)OPC自動(dòng)化對(duì)象進(jìn)行聲明。OPC自動(dòng)化包裝的引用:從VB菜單選擇工程(P)-引用(N).,然后選擇OPC Automation2.0(圖3-6)。圖3-6OPC對(duì)象和Windows API的聲明 :在OPC ActiveX控件的代碼框內(nèi)最初部分需要進(jìn)行OPC對(duì)象的聲明和Windows

33、API的聲明(表3-1),由此在OPC ActiveX控件內(nèi)就可以引用OPC自動(dòng)化對(duì)象,并且在圖形上表示數(shù)據(jù)時(shí)可以調(diào)用Windows的定時(shí)器API函數(shù)。2. 添加控件的屬性,方法和事件 這里說(shuō)明怎樣在VB工程里添加OPC ActiveX控件可以使用的過(guò)程(屬性,方法和事件)。 單擊確認(rèn)按鈕,則生成如圖 3-7所示的方法過(guò)程的雛形。圖3-7在代碼視窗打開(kāi)的狀態(tài)下選擇工具(T)-添加過(guò)程(P).,則顯示添加過(guò)程 視窗圖3-8.圖3-8單擊確認(rèn)按鈕,則生成如圖3-9所示的屬性過(guò)程的雛形。圖3-9上面的“Get RangeX()”屬性過(guò)程是讀取屬性值用的,而下面的“Let RangeX” 屬性過(guò)程則是

34、設(shè)置屬性值用的。新生成的過(guò)程的數(shù)據(jù)類型被自動(dòng)聲明為“As Variant”,但是如果考慮到處理速度,請(qǐng)指定具體的數(shù)據(jù)類型而不使用萬(wàn)能的“Variant” 類型。這里按照表3-7將數(shù)據(jù)類型變成“Double”型。建立屬性頁(yè) :下面我們要制作OPC ActivX控件的屬性頁(yè),用以設(shè)置以上我們添加的各種屬性。請(qǐng)從VB菜單選擇工程(P)-添加屬性頁(yè)(P),并選擇屬性頁(yè)的圖標(biāo),再按下打開(kāi)(O)的命令按鈕(圖3-10)。圖3-10在新建的屬性頁(yè),請(qǐng)配置三個(gè)標(biāo)簽和三個(gè)文件框(圖3-11)。圖3-113. 建立屬性這個(gè)屬性頁(yè)的畫(huà)面成為圖3-12的樣子。圖3-12 再在作成的通用屬性頁(yè)內(nèi),添加表3-13的處理代

35、碼。請(qǐng)使用上述同樣的方法, 在用戶控件TrendGraph的屬性框內(nèi)選擇PropertyPages屬性,可以確認(rèn)屬性頁(yè)的連接。選擇的屬性頁(yè)和順序應(yīng)該如圖3-13所示。圖3-13確認(rèn)屬性頁(yè)動(dòng)作的方法是將這個(gè)TrendGraph控件配置在VB的標(biāo)準(zhǔn)EXE窗體上,將鼠標(biāo)移至這個(gè)配置的TrendGraph1控件上并按下鼠標(biāo)右按鈕,在顯示的菜單中選擇屬性(R)項(xiàng)目,可以顯示作成的屬性頁(yè)。另外在配置的TrendGraph1控件的屬性框內(nèi),雙擊(名稱)欄下面的(自定義)也可以顯示作成的屬性頁(yè)。版本信息窗體:版本信息窗體是表示ActiveX控件的版本和供應(yīng)商的信息的對(duì)話框。在控件內(nèi)添加版本信息窗體,需要新建一

36、個(gè)顯示版本信息窗體的過(guò)程,再把這個(gè)過(guò)程的標(biāo)識(shí)符設(shè)置于版本信息窗體。從菜單選擇工程(P)-添加窗體(F)(圖3-14)。圖3-14選擇窗體圖標(biāo),再按下打開(kāi)(O)按鈕(圖3-15)。圖3-15在控件代碼窗體表示的情況下,從菜單選擇工具(T)-添加過(guò)程(P).。然后在表示的在添加過(guò)程對(duì)話框內(nèi),將名稱(N)定義為“ShowAboutBox”,選擇類型為子程序(S),再按下確定按鈕,則可以生成子程序的雛形(圖3-16)。圖3-16接著從菜單選擇工具(T)-過(guò)程屬性(A).,在表示的過(guò)程屬性對(duì)話框內(nèi),將名稱(N)設(shè)置為“ShowAboutBox”,再按下高級(jí)(V) >>按鈕,將過(guò)程標(biāo)識(shí)符(I)

37、:選擇為AboutBox。最后按下確定(圖3-17)。調(diào)試ActiveX控件:在上節(jié)作成的OPCTrend的VB工程之上,再添加一個(gè)調(diào)試用的VB工程,組成一個(gè)VB工程組,用于調(diào)試已初步完成的OPCTrend ActiveX控件。 從VB菜單選擇文件(F)-添加工程(D).,并在新建框內(nèi)選擇標(biāo)準(zhǔn)EXE工程類型。 新建的VB工程的默認(rèn)名稱為“Project1”,讓我們把這個(gè)名稱設(shè)置“OPCTrendTest”。工程名稱的設(shè)置,應(yīng)該從VB菜單選擇工程(P)-Project1屬性(E).。然后在表示的Project1工程屬性對(duì)話框內(nèi),改變以下的項(xiàng)目(圖3-18)。工程名稱(N):“OPCTrendTe

38、st”圖3-17圖3-184. 調(diào)試ActiveX控件 首先需要將調(diào)試用VB工程設(shè)置為啟動(dòng)工程。用鼠標(biāo)選擇OPCTrendTest工程(TestTrend.vbp)并按下鼠標(biāo)右按鈕,在顯示的彈出式菜單上選擇設(shè)置為啟動(dòng)(U)(圖3-19)。圖3-19在OPCTrendTest工程內(nèi),選擇配置的TrendGraph1控件并按下鼠標(biāo)右按鈕,在顯示的菜單中選擇屬性(R)項(xiàng)目,可以顯示作成的屬性頁(yè)。顯示OPC設(shè)置屬性頁(yè),并選擇自動(dòng)連接(A)復(fù)選框(圖3-20)。圖3-205. 生成ActiveX控件在作成的ActiveX控件充分調(diào)試之后,應(yīng)該生成一個(gè)可執(zhí)行文件。請(qǐng)選擇OPCTrend工程,再?gòu)腣B菜單選

39、擇文件(F)-生成OPCTrend.ocx(K).,在顯示的生成工程對(duì)話框內(nèi)按下確定命令按鈕,就可生成可執(zhí)行文件。(圖3-21)。圖3-21但是在第2次生成這樣的可執(zhí)行文件前,為了維持與以前生成的ActiveX控件的版本兼容性,需要設(shè)置版本的兼容性選項(xiàng)。如果不進(jìn)行這樣的兼容性設(shè)置,使用以前生成的OPCTrend.ocx控件的現(xiàn)存VB應(yīng)用程序,就不再能正常動(dòng)作了。請(qǐng)從VB菜單選擇工程(P)-Project1屬性(E).,在表示的Project1工程屬性對(duì)話框選擇部件選項(xiàng)卡,并進(jìn)行以下兼容性選項(xiàng)設(shè)置。選擇版本兼容的二進(jìn)制兼容(B)選項(xiàng)按鈕。 此外,按下.命令按鈕,顯示可兼容的ActiveX部件對(duì)話

40、框,將以前生成的OPCTrend.ocx設(shè)置為需要與其維持兼容性的文件(圖3-22)。圖3-22因?yàn)榘姹炯嫒菰O(shè)置為二進(jìn)制兼容后生成的可執(zhí)行的ActiveX控件可以維持與以前生成的部件的版本兼容性,所以使用以前生成的ActiveX控件的VB應(yīng)用程序還可以象以前一樣繼續(xù)正常動(dòng)作。第四章 使用ActiveX控件的OPC應(yīng)用程序1 使用EXCEL和VBA的OPC應(yīng)用程序在Excel的工作表上開(kāi)發(fā)象圖4-1表示的那樣的數(shù)據(jù)收集和顯示演示文件。這個(gè)演示文件可以在本書(shū)的示范程序的文件夾中找到,路徑“SamplesChap4Demo.xls”。圖4-1首先從Excel菜單選擇視圖(V)-工具欄(T)-控件工具

41、箱(圖4-2)。圖4-2在表示的控件工具箱里選擇其他控件命令按鈕。如圖4-3所示,當(dāng)按下命令按鈕后會(huì)顯示可使用的控件的一覽。請(qǐng)從中選擇名為OPCBar.BarMeter的OPC棒圖ActiveX控件。圖4-3注意,因?yàn)檫@里所表示的一覽是已存在的并且已注冊(cè)的ActiveX控件,將生成的ActiveX控件復(fù)制到使用的計(jì)算機(jī)上并加以注冊(cè)。 于是在工作表上已經(jīng)配置了一個(gè)OPC棒圖ActiveX控件。與在Visual Bacic的窗體上配置控件一樣,需要象圖4-4那樣在工作表上指定ActiveX控件的配置領(lǐng)域。圖4-4這時(shí)顯示的控件工具箱左上角的退出設(shè)計(jì)模式按鈕被按下著,即表示正處于設(shè)計(jì)模式狀態(tài)。如果進(jìn)

42、行試運(yùn)行的話,需要退出設(shè)計(jì)模式。釋開(kāi)左上角的退出設(shè)計(jì)模式按鈕,剛才配置的ActiveX控件就會(huì)自動(dòng)進(jìn)入運(yùn)行狀態(tài)。但是因?yàn)檫@時(shí)的OPC棒圖控件沒(méi)有連接任何OPC服務(wù)器,所以顯示不會(huì)有任何變化(圖4-5)。圖4-5于是讓我們?cè)倥渲靡粋€(gè)可以使OPC ActiveX控件與OPC服務(wù)器連接的命令按鈕。首先讓我們檢查一下剛才在工作表上配置的OPC棒圖的屬性。檢查控件的屬性時(shí),需要進(jìn)入設(shè)計(jì)模式,然后選擇配置的棒圖,再按下鼠標(biāo)右命令按鈕并選擇屬性(P)的項(xiàng)目(圖4-6)。圖4-6在屬性對(duì)話框里,檢查一下(名稱)是不是為“BarMeter1”,ItemID屬性是不是為SV1”。這兩個(gè)屬性分別表示配置的控件對(duì)象的

43、名稱為“BarMerter1”,而從OPC服務(wù)器要讀取項(xiàng)標(biāo)識(shí)符為“SV1”的數(shù)據(jù)(圖4-7)。圖4-7用剛才同樣的辦法,在控件工具箱里選擇命令按鈕,并在工作表上配置一個(gè)命令按鈕(圖4-8)。圖4-8配置后為了表明是一個(gè)用于OPC服務(wù)器連接的命令按鈕,在控件屬性框內(nèi)將Caption屬性改變?yōu)椤斑B接”(圖4-9)。圖4-9用同樣的方法,再配置一個(gè)斷開(kāi)OPC服務(wù)器連接的命令按鈕,并將Caption定義為“斷開(kāi)”。 到此為止,一個(gè)棒圖和用于連接與斷開(kāi)OPC服務(wù)器的兩個(gè)命令按鈕已經(jīng)準(zhǔn)備完畢。使用命令按鈕將會(huì)啟動(dòng)OPC服務(wù)器顯示棒圖或者退出運(yùn)行。2. 使用VBA建立OPC服務(wù)器數(shù)據(jù)訪問(wèn)程序 下面讓我們使用

44、OPC棒圖ActiveX控件的Connect和DisConnect方法,記述使棒圖與OPC服務(wù)器連接和斷開(kāi)的代碼。在進(jìn)入設(shè)計(jì)模式的狀態(tài)下,雙擊剛才配置的CommandButon1命令按鈕,啟動(dòng)Visual Basic編輯器。這時(shí)單擊CommandoButton1按鈕時(shí)發(fā)生時(shí)處理程序的雛形會(huì)自動(dòng)被自動(dòng)生成并表示出來(lái),這個(gè)程序的名稱為CommandButton1_Click。于是作為按鈕的單擊事件處理,讓我們?cè)谶@里記述使棒圖要求與OPC服務(wù)器連接的代碼。 完成了棒圖控件與OPC服務(wù)器連接的要求處理。用同樣的方法,在CommandButton2的按鍵處理程序CommandButton2_Click中

45、,寫(xiě)入斷開(kāi)與OPC服務(wù)器連接的處理代碼。到此為止,按下連接命令按鈕就使棒圖控件連接OPC服務(wù)器并自動(dòng)地進(jìn)行數(shù)據(jù)采集,按下斷開(kāi)命令按鈕就斷開(kāi)與OPC服務(wù)器的工作表已經(jīng)作成了。下面讓我們實(shí)驗(yàn)一下這個(gè)作成的程序。關(guān)閉Visual Basic編輯器,或者單擊工具欄上的Excel圖標(biāo),就可以返回到Excel工作表。 釋開(kāi)控件工具欄的設(shè)計(jì)模式圖標(biāo),退出設(shè)計(jì)模式,并同時(shí)啟動(dòng)配置的工作表上的控件對(duì)象。按下連接命令按鈕,從棒圖控件發(fā)出與OPC服務(wù)器連接的要求,使OPC服務(wù)器被啟動(dòng),并開(kāi)始定期采集以標(biāo)識(shí)符為“SV1”的OPC標(biāo)簽的數(shù)值,并用棒圖顯示采集到的數(shù)據(jù)。按下斷開(kāi)命令按鈕,斷開(kāi)與OPC服務(wù)器的連接并停止數(shù)據(jù)

46、采集(圖4-10)。圖4-10最后,讓我們?cè)O(shè)法在Excel工作表上表示棒圖控件從OPC服務(wù)器采集到的“SV1”數(shù)值。這個(gè)演示用的OPC BarMeter控件提供了將被采集數(shù)據(jù)的變化自動(dòng)通知Excel等應(yīng)用程序的事件。先進(jìn)入設(shè)計(jì)模式,雙擊BarMeter1棒圖控件名為“BarMeter1_DataChange2”的事件處理程序的雛形會(huì)自動(dòng)表示出來(lái) 這個(gè)DataChange2事件,是在棒圖表示的數(shù)值發(fā)生變化時(shí)由OPC服務(wù)器觸發(fā)的事件,應(yīng)用程序可以在事件處理程序中接受OPC服務(wù)器的通知。我們可以在這個(gè)事件的處理程序中將“SV1”的最新數(shù)值表示在Excel的工作表的單元格內(nèi)。在單元格內(nèi)數(shù)值表示可以使用

47、如表4-6所示的代碼實(shí)現(xiàn),即將“BarMeter1”的Value代入Cells(行號(hào),列號(hào)).Value中。這里是將棒圖的數(shù)值表示在第12行,第2列的單元格(圖4-11)。 圖4-11在Excel工作表上制作OPC應(yīng)用程序的基本方法,當(dāng)然也可以用同樣的方法開(kāi)發(fā)象圖4-2那樣的比較復(fù)雜的OPC演示應(yīng)用程序。第五章 OPC技術(shù)在污水處理控制系統(tǒng)中應(yīng)用1. 控系統(tǒng)結(jié)構(gòu)設(shè)計(jì)根據(jù)污水處理工藝要求,污水處理過(guò)程可分為幾個(gè)子過(guò)程,每個(gè)子過(guò)程的功能由控制系統(tǒng)的各個(gè)單元來(lái)完成,主要為調(diào)節(jié)池pH值控制單元、厭氧池溫度控制單元、好氧池曝氣控制單元、混凝劑控制單元和污泥循環(huán)控制單元。每個(gè)控制單元作為一個(gè)智能控制節(jié)點(diǎn)分

48、布在污水處理現(xiàn)場(chǎng),負(fù)責(zé)污水處理過(guò)程中各參數(shù)的監(jiān)控?,F(xiàn)場(chǎng)通信網(wǎng)絡(luò)采用CAN現(xiàn)場(chǎng)總線,CAN總線是當(dāng)前最有影響的現(xiàn)場(chǎng)總線之一,廣泛應(yīng)用在各個(gè)工控網(wǎng)絡(luò)中,其總線規(guī)范現(xiàn)已被ISO國(guó)際標(biāo)準(zhǔn)組織制定為國(guó)際標(biāo)準(zhǔn)。CAN總線是一種串行通訊網(wǎng)絡(luò),與一般的通訊總線相比,具有成本低、可靠性高和靈活性好等特點(diǎn)。在基于OPC技術(shù)的CAN總線控制網(wǎng)絡(luò)中,0PC服務(wù)器將污水處理現(xiàn)場(chǎng)各參數(shù)按照OPC標(biāo)準(zhǔn)與監(jiān)控軟件連接起來(lái),把系統(tǒng)硬件設(shè)備和監(jiān)控軟件有效地分離開(kāi)。監(jiān)控系統(tǒng)的結(jié)構(gòu)如圖3所示,CAN總線適配器連接在監(jiān)控計(jì)算機(jī)中,它與現(xiàn)場(chǎng)各控制節(jié)點(diǎn)相連,實(shí)現(xiàn)與分布在污水處理現(xiàn)場(chǎng)的各智能監(jiān)控節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交換。OPC服務(wù)器通過(guò)硬件驅(qū)動(dòng)程序

49、訪問(wèn)CAN總線適配器,連接在計(jì)算機(jī)網(wǎng)絡(luò)中的所有客戶端應(yīng)用程序均可通過(guò)OPC接口與OPC服務(wù)器進(jìn)行數(shù)據(jù)交換,間接獲取現(xiàn)場(chǎng)信息。OPC服務(wù)器包括OPC標(biāo)準(zhǔn)接口和硬件驅(qū)動(dòng)程序,根據(jù)不同網(wǎng)絡(luò)適配器的接口形式選擇不同的硬件驅(qū)動(dòng)程序。當(dāng)污水處理控制系統(tǒng)要增加其他的監(jiān)控設(shè)備或進(jìn)行當(dāng)前硬件設(shè)備升級(jí)時(shí),只需要改動(dòng)服務(wù)器程序中硬件驅(qū)動(dòng)程序部分即可,不會(huì)影響客戶端程序??紤]到污水處理現(xiàn)場(chǎng)的數(shù)據(jù)對(duì)傳輸速率要求不高,故CAN總線適配器采用了周立功公司的ZCAN232智能CAN接口卡,它通過(guò)PC的COM端口連接到CAN總線網(wǎng)絡(luò),可以實(shí)現(xiàn)CAN2.0B(A)協(xié)議的數(shù)據(jù)通訊,通信速率可在10kb/s1Mb/s之間選擇。OPC

50、服務(wù)器采用周立功公司提供的ZOPC Server,它支持周立功公司的所有CAN總線接口卡。實(shí)現(xiàn)的功能是通過(guò)ZLGCAN接口卡獲取現(xiàn)場(chǎng)的各CAN總線上的節(jié)點(diǎn)采集到的數(shù)據(jù)傳給監(jiān)控軟件或其他OPC客戶端。同時(shí)將監(jiān)控軟件或其他OPC客戶端寫(xiě)入的數(shù)據(jù)和控制命令通過(guò)OPC服務(wù)器傳給污水處理現(xiàn)場(chǎng)的各CAN總線節(jié)點(diǎn)。 監(jiān)控軟件只有通過(guò)OPC接口才能訪問(wèn)0PC服務(wù)器。若監(jiān)控軟件采用組態(tài)軟件開(kāi)發(fā),由于組態(tài)軟件本身即可作0PC客戶端也可作0PC服務(wù)器,直接將組態(tài)軟件的數(shù)據(jù)點(diǎn)連接到OPC服務(wù)器的數(shù)據(jù)項(xiàng)上即可實(shí)現(xiàn)訪問(wèn),不用另外開(kāi)發(fā)0PC標(biāo)準(zhǔn)接口。圖1 監(jiān)控系統(tǒng)結(jié)構(gòu)原理圖若監(jiān)控軟件采用VB6.0或其他的高級(jí)語(yǔ)言開(kāi)發(fā),需要

51、開(kāi)發(fā)訪問(wèn)OPC服務(wù)器的OPC接口。開(kāi)發(fā)出符合OPC規(guī)范的接口方法有2種:按照OPC DA的標(biāo)準(zhǔn)規(guī)范,利用VC+高級(jí)語(yǔ)言等開(kāi)發(fā)工具開(kāi)發(fā)符合標(biāo)準(zhǔn)的OPC接口,但開(kāi)發(fā)難度大,需要開(kāi)發(fā)人員對(duì)OPC技術(shù)和COM技術(shù)有深入了解;利用專用開(kāi)發(fā)工具包,由于開(kāi)發(fā)包已經(jīng)實(shí)現(xiàn)了OPC標(biāo)準(zhǔn)的底層封裝,既無(wú)需涉及煩瑣的0PC協(xié)議,也不必掌握復(fù)雜的COM技術(shù),直接調(diào)用相關(guān)函數(shù)即可減少了開(kāi)發(fā)周期和難度,但開(kāi)發(fā)出的OPC標(biāo)準(zhǔn)接口功能依賴于開(kāi)發(fā)包。2. 下面是對(duì)OPC接口開(kāi)發(fā)程序的介紹。定義全局變量:Dim WithEvents MyoPCServer As OPCServer定義OPC服務(wù)器Dim MyoPcGroup As

52、 OPCGroups定義OPC組Dim WithEvents My0PCGroupOut As 0PCGroupDim WithEvents MyoPCGroupIn As 0PCGroupDim MyoPcItemIn As OPCItems 定義OPC標(biāo)簽組Dim MyoPCItemout As OPCItemsDim HandlesIn()As Long 定義句柄Dim Handlesout()As LongDim ErrorsIn()As Long 定義錯(cuò)誤句柄Dim Errorsout()As LongDim clientHandlesl(13)As Integer旬柄索引Dim R

53、eadItemNum As Integer 定義讀出數(shù)據(jù)項(xiàng)個(gè)數(shù)Dim writeItemNum As Integer 定義寫(xiě)入數(shù)據(jù)項(xiàng)個(gè)數(shù)DimDataItem(13)As StrirIg記錄oPc讀出數(shù)據(jù)項(xiàng)名稱Dim DataReadValue(13)As Variant存放讀取0PC數(shù)據(jù)項(xiàng)Dim DataWriteItem(13)As Strirlg記錄OPC寫(xiě)入數(shù)據(jù)項(xiàng)名稱Dim DatawriteValue(13)As Variant存放寫(xiě)入OPC數(shù)據(jù)項(xiàng)的值連接服務(wù)器程序:ZOPC Server的數(shù)據(jù)存儲(chǔ)模式有字符串存儲(chǔ)和數(shù)值存儲(chǔ)兩種,在字符串存儲(chǔ)模式中,服務(wù)器會(huì)把從CAN總線接收到的CA

54、N幀數(shù)據(jù)組合成一個(gè)字符串傳送到客戶端;反之,服務(wù)器也會(huì)把從客戶端接收到的字符串轉(zhuǎn)換為CAN幀數(shù)據(jù)發(fā)送到CAN總線網(wǎng)絡(luò)中。在數(shù)值存儲(chǔ)模式中,服務(wù)器會(huì)把接收到的CAN幀數(shù)據(jù)分解為單個(gè)數(shù)值存放到13個(gè)讀通道數(shù)據(jù)項(xiàng)中,由客戶端讀取;同理,服務(wù)器把從客戶端發(fā)過(guò)來(lái)的13個(gè)寫(xiě)通道數(shù)據(jù)項(xiàng)的數(shù)值組合為CAN幀數(shù)據(jù)發(fā)送到CAN總線網(wǎng)絡(luò)中。筆者采用數(shù)值存儲(chǔ)模式,用兩個(gè)組對(duì)服務(wù)器進(jìn)行訪問(wèn)。Private Sub ConnecLCIick()NodeNameNodetext 遠(yuǎn)程計(jì)算機(jī)名ServerNameServertext 0PC服務(wù)器名Set My0PCServerNew OPCServer 生成OPC對(duì)象,My

55、OPCGroupDefaultGroupIsActiveTrue 組為激活狀MyOPCGroupDefaultGroupDeadbandO 設(shè)置組死區(qū)Set MyoPCGroupInMy0PcGroupAdd(”MyGrou聲ln”)Set My()PcGroupoutM“)PlCGroupAdd(”MyGroupout”)MyOPCGr0pInUpdateRate一1000 設(shè)置數(shù)據(jù)刷新時(shí)間MyoPCGroupInIsActive=True 設(shè)置組為激活狀態(tài)MyoPCGmupInIsSubscribed=Tfue設(shè)置組為后臺(tái)刷新Set My0PCItemInMyOPCGroupIn0PCIt

56、emsSet MyOPCItemoutMy0PCGroupoutoPCItemsFor i=O To 13C1ientHandlesl(i)=i 配置句柄索引Next I 將z0Pc server輸入通道數(shù)據(jù)項(xiàng)名寫(xiě)入到DataReadItem數(shù)組ReadItemNum=13MyOPCItemInAddItems ReadItemNum,DataReadItem,clientHandlesl,HandlesIn,ErrorsIn連接輸入數(shù)據(jù)項(xiàng)MyOPCGroupInIsSubscribed=True將zoPcserver的輸出通道數(shù)據(jù)項(xiàng)名寫(xiě)入到DatawriteItemWriteItemNum=13My0PCItemOutAddItems WriteItemNum,DataWriteItem,ClientH

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論