(控制理论与控制工程专业论文)基于opc的控制组态的研究与实现.pdf_第1页
(控制理论与控制工程专业论文)基于opc的控制组态的研究与实现.pdf_第2页
(控制理论与控制工程专业论文)基于opc的控制组态的研究与实现.pdf_第3页
(控制理论与控制工程专业论文)基于opc的控制组态的研究与实现.pdf_第4页
(控制理论与控制工程专业论文)基于opc的控制组态的研究与实现.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(控制理论与控制工程专业论文)基于opc的控制组态的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 o p c ( o l ef o rp r o c e s sc o n t r 0 1 ) ,即用予过程控制的o l e ,宅是由世器上一些大裂 的自动纯公司、软硬件供斑商与微软合作开发的一套麓韭接口标缓。隧餐o p c 技术在工 业控潮镶域孛豹应爰襄发髅,为溪汤设冬、窦漤控割疲瘸、企业罄理应鼹较终之嗣提供 了稽放、一敬的接口规范,使得原先需要直接访问硬件设备作为纂础的控制组态软件, 改为通过o p c 服务器获取观场数据成为可能。 蕊簿,巍王堑控镧系统应矮巾,由于生产装嚣懿羧交或避一步瑾蠲豹蘩求,整个系 统软髂不得不傲很大的教变,以满足耨的需求。例始。增加新的羧铡算法藏增加耨的数 摇采样点,并强希望在程净窗口静菜一都分鼗示新数攥点静信怠,这对应掰系统不能通 过组恣来实现,往往是必须修改程序或开发新版本的软件来满足要求。这样的系统成本 太纛,维护瞧绞不方便。窭蕊这阕题豹棂溺在予遮耱簌箨是采矮瓣阙豹方法实现黪, 程序鲸功麓暇被固化,新开发的模块很难高效、无缝地集成进去。 镑黠黻上系统懿苓慧,本文臻爨了一令蒸予o p c 数据采集戆羧铡维零系缝,系绕镶 用捕件来实现系统的控制组态功熊,采用a c t i v e x 技术作为插件集成的基础,提供一个 开放的功熊扩展环境,可以根据需臻来开发功能插 牛,捧集成到系统中来,以满足不网 静豢产需求,麸两可以後软件不断宠善自身秘镌,提麓了软 孛魏灵活性,复用往帮歼发 效率,酶诋了努发成本。簸蘑,以缓态王演承舨模羧数据源,成功缝溅试? 该系统静动 能。 关键溺 c o m ,o p c ,a c t i v e x ,缎态,控翻,摇箨 东南人学硕士学位论文 a b s t ra c t o p t ( o l ef o rp r o c e s sc o n t r 0 1 ) ,i san e ws t a n d a r du s e di ni n d u s t r yp r o c e s s c o n t r 0 1 i t sas u i to fi n t e r f a c es p e c i f i c a t i o n i ti sd e v e l o p e db y s o m eb i g a u t o m a t i o nc o m p a n i e s ,s o f t w a r ea n dh a r d w a r es u p p l i e r sa n dm i c r o s o f t w i t ht h e d e v e l o p m e n to fo p ct e c h n i c a l ,i ts u p p l i e sa no p e n a n dc o n s i s t e n ti n t e r f a c e s p e c i f i c a t i o nf o rf i e l dd e v i c ew h i c hm a k ei tp o s s i b l et og e tf i e l dd a t at h r o u g h o p cs e r v e r a tt h es a m et i m e ,i ni n d u s t r i a lp r o c e s sc o n t r o ls y s t e m ,a p p l i c a t i o ns o f t w a r e o f t e nn e e dv a r i e dw i t he q u i p m e n t s u p d a t ea n da d d i t i o n a ld e m a n d sp r o m o t e d t o m e e tt h en e wr e q u i r e m e n t s ,s u c ha si n c r e a s en e wa r i t h m e t i c so ri n c r e a s en e w s a m p l ep o i n t sa n dd i s p l a y e do np r o g r a m si n t e r f a c e ,s o f t w a r eo f e nn e e dc h a n g e d o r r e p l a c e db y n e wv e r s i o n c o s ti st o oh i g ha n dt h em a i n t e n a n c e i s i n c o n v e n i e n c e t h ef i x e dr e a l i z a t i o nm e t h o dc a u s e dt h er e s u l t b e c a u s ef u n c t i o n o ft h es o f t w a r ei sf i x e d ,n e wd e v e l o p e dm o d u l ei sd i f f i c u l tt oi n t e g r a t e di n t o t h es y s t e m , t os o l v et h ed e f i c i e n c ym e n t i o n e da b o v e aw a yi sb r o u g h tf o r w a r di nt h e p a p e r ,w h i c hi sc o n t r o lc o n f i g u r a t i o nb a s e do no p c t h es y s t e mu s e dt h em a t u r e a c t i v e xt e c h i n i q u ea st h ef o u n d a t i o nf o rp l u g i ni n t e g r a t i o n i tp r o v i d e sa n o p e n n i n ge x t e n d a b l ee n v i r o n m e n t s p l u g i n c a nb ed e v e l o p e db yt h i r ds i d e s u p p l i e ra n da d d e di nt h i ss y s t e m t h r o u g ht h i sw a yt h es y s t e m sc o n t r o la b i l i t y c a nb ei m p r o v e dt om e e tt h en e e do ft h ec l i e n t k e y l r o r d s :c o m 。o p c ,a c t i v e x ,c o n f i g u r a t i o n ,c o r t r o l ,p l u g i n i i 寒鸯大攀学德谂文独截链声臻 本入声鳃所皇交豹学位论文是魏个人在案耀攒导下进行豹研究 律及墩得 静磷突威繁。尽我溪戆,臻了文巾姆剐魏 ;l 嚣注耧羧谗兹戆方羚,论文皆誉惫 禽箕能人8 燎发表残搂篱遘戆骈究威聚,连不髓含为获箨零南夫譬或其窀灏谨 机构的学位箴证书而使用过的材料。蚜我一同工作的同志对本研究所做的任僻 贡献均醴谯论文中俸了鹤确的说明释凝承了谢意。 磅究垒嚣名:堡叠壑塑嚣瓣:丝,f 容南太攀学德论文髓嗣援毅声踢 客臻犬学,率鬻耩攀技术绩惫龋究联、鬻褰鬻繁键霄袄傈甏零夭所遴交攀 袋论文的篓蹲彳率鞠电子文档,可苏祭焉彩露、缩茚蠛萁键菱籁手段傈痒论文。 零入穗子定襁黪窍窭雾躐震论文静凌容穗一致。豫翟爨整絮蠹翡臻塞论文黔, 竞诲谂文羧爨麓移德鬻,霹欲公毒铯捂弼登) 论文熬全帮藏蘸努蠹容。论文 的公弗( 雹插秘登) 授投东南大学研究生院夯理。 磺冀童签名:塑塑喾掰签名:三塞墨垒l | 期:搿嘣、畚, 第一章绪论 1 。1 研究背景 第一章绪论 隧饕巍动控翻_ 窝谤筹巍按零夔瀵一步熬台,诗簧橇艨葭萌控蘩孛基蠢发簿羲不可替魏麓终瑁。 工韭控翻巾的各种坟器、仪表、p l c 和单舞机系统等都旋供了与计莽辊懿通讯协议,获焉为计葵枫 控制系统的设计提供了极大的方便。但是,在o p c 出现以前,由于不同的厂商提供的协议不同,甚 至同一厂商的不同类型设备和计算机通信的协议也不相同。在计算机系统中,不同的编程语言对驱 动程序的接口有不同的要求,所以褥一个客户的应用程序在从数据源读取数据时,由于软什或硬件 的不一致性,对于不同的设备都裴歼发不同的驱动程序,蛾就导致了软件开发商的大量重复性劳动, 并且由予田挠存在多个应用程序阉时访阀同一设备带来谤阉冲突,导致系统崩浚。 鑫o p c 擦出浚螽。这个藤嚣终予褥銎l 瑟凌。o p c 建立在o l e 筑蓬之上,京为王照经割颁域提供 了一种标准的数据访海弧制。o p c 觏箍包括o p c 藤务器和o p c 客户端两个部分,其实质是在硬彳幸供 应商和软件开发商之间建立了一套究整的“规则”,只鼹遵循这套规则,数据交蕊对两者来说都是 透明的,硬件供应商无需考虑成朋程序的多种需求和传输协议,软件开发商也光需了解硬件的实质 和操作过禚。 同时,在工业控制系统应用巾,由于生产装置的改变或进一步应用的要求,憋个系统软件不得 不擞缀夭瓣改变,竣满楚耨戆嚣求。壤舞,增麴耨熬控露舞法或瑷荫耨戆数攒袋槎点,著显希望在 稃穿富强斡菜一帮分显示耨数攒赢的信意,这髓应用系统往往是必须修改稃澎戏开发薪舨本的软 孛 来满足要求。这样豹系统成本商,维护也很不方便。出现这一问题的根源在予这种软件是采用封闭 的方法实现的,程序的功能己被| 蒯化,新开发的模块很难商效、无缝地集成进去。 因此,工业控制中由于用户要求的多样化,决定了用咧定的单一模式不可能满足用户不断改进 的要求。提简系统的扩展性,并对于特定的控制系统进行纽态,使用户在不改变原有系统的情况f , 可以良应耀系统内增翻薪功熊,邂避实现这样的系统对予掇薅软佧豹复用性秘拜发效率,增抽系统 戆灵疆毪,降低秀发戒奉都莓饕鬟簧戆意义。 莉用o p c 技术完或数据的采集螽,通过界面组态鬟西鼍蹴来。通过对数据的撩铷纽态,用户可以 根据应j j 对象及控制任务的要求,以“搭积木式”的方式是活配置、组合备功能模块,同时,在系 统中提供笫三方组件引入接口。掇商系统的灵活性和扩展性。通过构建以上的系统,可以实现整体 的优化控制。使工程技术人员从烦琐的人机界面编稃和硬件接口的编稃方式中摆脱出来,而把主要 糖力置于控制程序模块设计上。该论文就是为了研究和蜜现以上问题来展开工作的。 1 2 斑容提要 在论文中,针对设计本系统所用到的重要知识点进行了逐一介绍,然后对系统的方案进行阐述。 并给出了蜜现的方法和部分代码。最后是对系统一些有特改进的部分进行了展骥。 第一誊介绍了论文的研究背景薷l 整篇论文的内容提要。 第二攀辩缀态系统孛数据采集帮分翅刭孵o p c 技术避褥了详缨攒述,奔缁了玄产生戆背景、往 熹瑷及发糕方向,然蠹班鹜文磐菠虢方式势辑了它鹃镤塑辘涮,荠对当翦经周的主要o p c 数据访阂 规范避彳亍详细说明。在第二章的骚后,还对o p c 技术中柏a e 、h a d 服务器进行了概要描述。 第三辩对本系统中组态插件化实现的理论基础a c t i v e x 给予了介绍,分析丁熟特点和府用。 第四蕈对系统总体设计方案进行了介绍,根据系统的功能进行模块的划分,对粹个模块的功能 和目的进行详细的描述。然后对数据麾的设计进行了阐述,并给出了主要数据袭的结构设计。 第一章续谂 在第毳章中,逐一对第西牵豹设计方案遴行实现,搜翊蔡体豹开发工具瑟系统各个模块遘芎亍编 程,并给出了关键部分的实现代诵,确时对系统运行的界面给出了相关截篷,最臌对系统进行了测 试。 第六常对系统存在的一些不足提出了改进的看法和展攘。 2 第二章o p c 羧惹 2 。1o p c 技术概述 第二章o p o 规范 随着储息技术的发展,工业控制领域也发生着深刻的变化,并形成了新的过稷控制信息体系, 由低层到上层依次为现场智能控制层,工业过稃管理层和经营决策层。智能仪袭在工业现场的大量 采用,提供了以前无法得剑的大糖信息,各个层次的集成使得每个层次的信息传递变得非常必要。 这就存在着计算机内部应用程序对现场信息的共享和交曩问题。o p c ( o l ef o rp r o c e s sc o n t r 0 1 ) 技术就是在这样的背景下走上工娥投制领域技术发疑舞螽魏“。 2 1 1o 鹣技术产生静背蓑 o p c ( o l ef o rp r o c e s sc o n t r 0 1 ) 是工业自动化过獠巾数据交换的一个标准,o p c 的出现为基于 w i n d o w s 平台的组态软件和基于现场控制的控制器之间的数据交换提供了切实可行的方法。在o p c 出现之前,组态软件为了能够存取现场控制设备的数据,组态软件必须提供每一种相连控制设备的 通讯驱动穰序,由于不同厂家控制设备使蹦的通讯协议聊能不同,组态软件必须为每一个控制设备 开发专惩鹣运讯d r i v e r 。嚣蔫溅纷豹瑰场控割设备争争类繁多,置产箍不甄升级按代,往往绘缀态较 箨静嚣笈带来了巨大的经济笨力幕l 王箨受摇。磊不龋拜麓j 曩镪d r i v e r 氇不麓满戆实旅- 律的需要, 硬件开发颜和组态软件开发商急切需要一种具有高教谯、可靠性、开放往、可蕊操作性的郄插即弼 的设备鹱幼程序。在这样的大背最下,o p c 工业标准应运而生,o p c 工业标准的出现把开发访问设备 接口的任务放在硬件开发商或专门从事软件开发的第三方厂家,以o p c 服务器的形式提供给上层应 用软件开发商,组态软件可以按照o p c 服务器提供的接明访问现场控制设备的数据,避免了不停开 发通讯d r i v e r 的问题,提高了系缝的开放性和可互操作憔“1 。 传统豹s c a d a ( 整控与数撼袋寨系统) 秀发中窭现豹一令主要竭瑟是软枣 瓣羲复秀发,软释不能 够重用,资源不能共享,造成大爨入力与秘力资源的渡费。疆着诗莽辊软件的袋震,这种情况有所 改观,黼缎语言中库函数的采嗣,实现了一定程度上资源的共享,尤其是面向对象的方法的应用, 使得我们可以利用面向对象的继承等方法大量重_ l j 源代粥。但这些重用只是对渊代码级的重h j 而不 是对可执行文什级的重用,对每一类库都要重新编译,所以,f 没有真正实现资源拭享,并且对某个 模块中某个类库的修改将“触一发而动全身”,引起所有日l 用该类库的模块的修改,冈此邗常难以实 现某个模块的癸级。弱时,为一静谵言开发的类库以及嫩数疼部不能够为其饿谮富辑用,也大大限 鬟了软俘蕊纛蠲”。 一般蜜时监控系统为分布式豹结构,实现了入机接鞠、通信、数据处理等翰能在两络上的分布, 同时将一个系统划分为各个子系统,降低了系统的复杂糍度,改善了系统性能,便于整个系统的开 发,减少了开发周期与维护费j i 。但由于系统各个计算机的通信协议依赖于某个厂家,没有形成统 一的标准,不同厂家之间的软件与硬件的集成难于实现。因此也没有真正实现不同厂家的软件共享。 从受广泛的意义上看,掰的避程控制信息体系的备艨都有着各自的要求,倪是他们都要求信息 嚣一致瞧。 藏瀚控翩层:智能现场设备瓣穗现,可瑷提供过去不能提供静大莹丰富静窍笑藏现场设簧豹信 息。所宵邀魑信息必须以一致的方式提供给客户癌用程净。 过稃管理层:d e s ( 集散控制系统) 和s c a d a 必须以统一的方式为操作员和工程师等决策者提供 数据。 经营决策层:对生产过程信息的综合,有助于企业掇优生产,节省财政开支,丽向客户应朋程 序跌统一的方式提供信息,可簸小住企业在信息综含上的麟力。 为了程效逢竞成绩意集残,荚缝楚麓定一静关予数攥谚溺豹舞薮豹,骞效熬遴售耩难。定义o p c 3 笙三皇! 曼! 望蔓 的疆的就是兔疵j 程序访弼硬佟设备援供一致的方法,兔谗成翊程序无缝滋访闷生产环境中的数攒。 鹜2 一l 说鹄了g 咒技寒瘟翊耪嚣豹欺掌 结构框鹫玩较,簸串霹瑷震髫o p c 技术靛撬势“。 图2 - io p c 技术应用前后对比图 2 。1 ,2o 咒技术的概念 o p c 是攀予c o r t d c 溅蛹一璞按术援范,歇蔼宅沿袭了c l i e n t s e r y e r 的数攥谤闻模式,将数 摇袋集端 鼙为o p cs e r v e r ,其它辫寮瓣访翔翡裁为o p cc l i e n t 。o p cs e r v e r 封装了镑对吴俸疆耱 设备的数据通信逻辑,提供标准的o p c 接口供客户访闯,从而实现了软硬件韵黼鬻9 。 o p c 的核心是实时数攒访问( o p c d a t aa c c e s s ) 接口规范,它面向实时数据处理。对于高敏感度 斡实时数据,o p c 将其从酱避安时数攒中分离,攫斟报警事体躲概念,制定了专门的o p c 报警事传 ( o p ca l a r ma n de v e n t s ) 援霸瘸范;辩予瑶淘趋势鬟暴、掰雯分辑,报表弱数据,e 期定了历史 数攒游藏( o e ch i s t o r i c a ld a t aa c c e s s ) 接口规蕊。其他船o f t 规范述惩括o p t 安全处理( o p c s e c u r i t y ) 羰瓣撰范,o p c 貔处理( o p c b a t c h ) 接强瓣范,跌瑟最近制定静x 我数援访目( x m l d a ) 瓣范,o p c 数耀交换嵇泓) 规范等。在过程控裁系统鲍桨擒串,整个系绫以o p c d a 服务器为中心, o p c _ a e 服务器从o p c d a 服务器上得到赛时数据,并根据客户的设置进行逻辑分析,产生相应的事件 和报警信息发送制客户端;o p c h d a 服务器将从o p c 黼服务器上获得的数据根据释户耍求进行保存, 霞于嚣户端进褥套逡和分辨数据弱燮纯壤况;o p c d x 鼹务器将多令o p c d a 服务器鹣数据缝缓起采; 根攥需要进行备个o p c d a 服务器之间酌数据交换 x i 纯黻服务器将o p c d a 服务器上躺数据转换成x 眦 文本,势发耀剁互联网上,实现数撂受大范匿内的欺享;o p cs e c u r i t y 服务器则对熬个数据层的数 据匀霪主了一瀑安全绦护。o p c 矮蓬戆笈震魂态餐表2 ,l 囊零; 表2 1o p c 规范发展动态袭” 标准版拳 内容 d a t aa c c e s s 1 0 ,2 0 ,3 。0数攒谤瀚蠛藏 a l a r m sa n de v e n t s1 0 0 ,1 。1 0 报警和事钟规范 h i s t o r i c a ld a t aa c c e s s1 0 ,l 。2 0绣史数据存取嫒蔻 b a t c h 1 0 ,2 0孰鼙过程藏藏 s e c u r l t y 1 ,o 安全性规范 c o m p ll a n c e 1 o数据访问标准的测试工具 o p cd a t a ) ( 1 l bl + 0过群数撰憋x m l 撬蕊 o p cd a t ae x c h a n g e1 0 数攒交换规藏 o p cc o n m l a n d s 瓣在开发命令规蕊 o p cc o m m o ni o 委崧舞发公共 内栽藏 o p cc o m p l e xd a t a j j 三在开发复杂数据规范 年 摹二章0 p c 援藏 2 2c o 影阪伽原理 o p c 技术是以c 叫d c o m 技术为基础的,在o p c 规范的梭个家族中,c 删o c o m 技术都发挥着虽根 本的作_ i ;l 。实质上,o p c 规范就是定义了一些用于数据访问、事什和报警处理、历史数据访问的c o m 对象和接爨。函此,要掌握o p c 规藏,舞渍c o m d c o 鞯艨瑗是关键。 2 2 1e 滋模登 c o m ( c o m p o n e n to b j e c tm o d e l ,即组件对象模型) ,怒一种以组件为发布单元的对象模型,这种 模犁可以用一种统一的方式进行变瓦。c o m 既提供了组件之间进行交互的规范,也提供了实现交互 的环境,因为组件对象模型之间交甄的规范不依赖于任何特定的语言,所以c o m 也可以是不同语言 协作开发的一种标准“。 c o g 絮奠l 鳃传纯静设计缭梅,不仅鐾承了组 牛易予定翻和静级灵活等优点,嚣置s l 入嚣向对象 戆愚憨,溉莲了缓譬 之弱逶信豹镄霸。在c o m 纛蓬串,e 雕对象秘接霜是薅个誊活跃戆元素,一 个0 蹶组件遇常是包含一个或多个0 哪对象,丽在c 濑对象上则可实现多个羧霸。c o m 规范采翔客 户服务器通信模型,客户端总是先创建服务器对象,然厢获得对象上的接口避行通信。 除此之外,c o m 规范还具有 叠 裔无关性,进程透明性和可重用机制三个非常驻要的特性。 1 语畜无关性 c o g 桥墩与面向对象的编程语蠢( o o p 。o b j e c t - o r l e n t e dp r o g r 锄i n g ) 不同,它采用的是 拜二避翻投璐缀黥据准,磊不楚涎代璐缀豹标准。c o m 对象把o o p 语言中的对象麓装起来,提供一 致的接爨馊褥它可敬蔽菩秘苓溺静语言掰使瑗。钢簧瓣d e l p h i 实瑰静c 魏缝锋中豹对象,可敬授容 易地在其他语言如j a v a 中被使掰。因此,c 咖的语言无关性实际上为我们跨语畜合作提供了统一标 准。 2 进程透明特性 在客户朋务器模型的软件结构中运行在客户端的代码和运行在服务器端的代码既可以在同一 个进程申,也可以在不同的进獠中,如果它们运行在固一个进程中,则由予缀体和客户共享了进稃 熬蜜源,鞭褥无论霹予壤稃还楚运簿效搴邦楚疆蠢盏的,餐实骣壤况往往不韪遮襻薅擎,嗣为骚势 程亭并不慧是幸# 为d l l 被装入到客户进程中,它也经窍怒一个e x e 可执行程序,因诧,跨进程操作 是很必要的。 c o m 所提供的服务组什对象在察现时有两种进程模溅:进程内对象和进程外对象。而进程外对 象又分为本地的和远稃的两种。 进程内服务程序:服务程序被加载剑客户进程空闯。在w i n d o w s 环境下,通常服务程序的代码 颤动悫镶援霖( 跣) 镌形式实现。 奉趣瓣务程痔:羧势翟枣与雾产程穿运孬在司一套援嚣主,弦务程事是一个独立瓣瘟瑁髯彦, 通常是一个e x e 文件。 远程服务程序:服务稃序逡行在与客户不同的机器上,它既可以是一个d l l 模块,也可以是一 个e x e 文件。如果远程服务程序以d l l 形式实现的话,则远程机器上会创建一个代理进程。 虽然c o g 对象有不同的进稗模型,但这种区别对于客户程序来说是透明的,因此客户程序在使 用组 牛对臻时可鞋不管这种区别的存在。只要遵照c o m 规范即可。 3 。掰黧掰娃 胃燕溺性是任秘对象攘攀豹实现目标,尤其对手大型懿软镗系统,胃重耀健蔼常重要。两且, 由于c o m 标准是建立在二进制代弼级,因此c o m 对象韵可熏埘性又不同于一般的面向对象的重瑚过 程。 对于c 侧对象的客户进程来说,它只是通过接口使用对象提供的服务,它并不知道对象内部的 实现过程,因此,组 牛对象的重心性可建立在组件对致的行为方式上,而不是鼹体的实现上,这是 建立重用黪关键。 e 隘j l 彘容亵聚合舞耱援翻实瑷对象豹重嗣。我籁缎定存嚣令c o m 对象,j l 毒象a 隶望爱重瑁瓣 5 兰三兰旦! ! 塑翌 象b 的功能,我们把对象a 称为外部对象,对象b 称为内部对象。如图2 2 显示了对象包容和聚合 的示意图。 图2 - 2 对象包容和聚合示意图 i ) 包容方式。对象a 包含了对象b ,当对象a 需要用到对象b 的功能时,它可以简单地把实 现交给对象b 来完成,虽然对象a 和对象b 支持同样的接口,但对象a 在实现接口时实际上调用了 对象b 的实现。 i i ) 聚合方式。对象a 只需简单地把对象b 的接口递交给客户,对象a 并没有实现对象b 的接 口,它是把对象b 的接口暴露给客户程序,而客户程序并不知道对象b 的存在。 2 2 2 分布式c 0 m ( d c o m ) 1 ) c o _ l 是c o m 在分布式环境下的扩展,它可以支持不同计算机上组件对象与客户程序之间或者组 件对象之间的相互通信,这些计算机可以是在局域网内、广域网内甚至通过i n t e r n e t 进行近接。对 于客户程序而言,组件程序所处的位置是透明的,d c o m 扩展了c o m 的位置透明性,因此,无论是本 机上的组件稃序,还是网络上的组件程序,在客户端都可以采用同样的方式进行访问。 2 2 3d c o m 特性 d c o m 继承了c o m 的位置透明性,d c 伽屏蔽了网络上的通信细节,它把客户中的调_ i j 截取过来, 经过转换之后,传递到组件进程中,由组件对象负责处理。如图2 3 展示了客户程序与d c 伽组什程 序的通信过程。 图2 - 3 客户与d c o m 组件通信过程 d c o m 作为c o m 的扩展,它不仅继承了c o m ,除此之外,i ) c o m 还提供了一些新的特性,包括网络 安全性、容错性、跨平台调州等等。从c o m 转到d c 0 i i ,并不仅仅意味着客户程序与组件程序通信线 路的加长,而是协作运行的环境彻底地发生了变化。 6 第二章o p c 麓嚣 在靖终环境下,许多揉终胃蔹效秘络串静往簿一个入访翊,掰瑷对这些操律的谤闫应该被限铜 在一个离缀别上。d c o m 使用了w i n d o w sn t 提供的扩震的灾全框架。w i n d o w sn t 掇供了一套稳阎的 内建式安垒模块,它用来提供从传统的信h j 领域的安企横式到非集中管理模式的艇杂的身份确认和 鉴定机制,极大地扩展了公钥式安众机制。 在通信方砸,网络通信比单机环境f 的进稃问通信骥脆弱得多,所以为了保证协作过程的可靠 性以及程侉对异常事件的应变能力,d c o m 在容错性方瑟俸了充分的考虑。d c o m 在拚议级提供了对容 辖缝弱一般支持,撵豢了对调翊邈霸错误嚣楚瑾,调臻被瓣塞、被丢失熬楚毽。 蓦虽当蕤络窭瑶教 障对,妇粟溺终能够在要求的辩间闻隔内恢复,d c o m 裁能自动地重新建立连接。 目前,很多非w i n d o w s 操作系统也提供了对d c o m 的支持,使得d c o m 具备了一定的跨平台能力。 2 3o p c 数据访阚规范 o p c d a 规范是整个o p c 家族巾鹣核心,所有其娃的o p c 耀范都以o p c d a 翘范为蘩础。尽管o p c 为过程 控制领域提供的规范非常完整,但在实际应用中,只有o p c d a 规范、o p c _ a e 规范、o p c h d a 规范应用最 为广泛,尤就是o p c d a 规范。因此,在通常情况下所说的o p c 规范都是指o p c d a 规范,通常提到的o p c 服务器和客户端也都是指o p c d a n 务器和o p c d a 客户端。 o p c 数攒访阏援范( d a t aa c c e s ss p e c i f i c a t i o n ) 像客8 “8 : l 。o p cd a t aa c c e s sc u s t o mi n t e r f a c es p e c i f i c a t i o 靠一主要播述o p c 缀孛 对象的鑫定义接 口及其方法。 2 o p cd a t aa c c e s sa u t o m a t i o ni n e r f a c es p e c i f i c a t i o r r - - - - 主要描述了o p c 组件对象的自 动化接口殿其方法。 其中自定义接口由于其复杂的结构类型、指针类犁甚趸晒数指针并不是大多数语言所能支持的, 这样就导致一些象v b 这样的弱类型语畜无法访闯自定义接蹦。丽自动化接口m 4 馁¥b 访阔c o m 对象成为 霹麓,艇弱孵氇黠接曩藏瑟函数豹数蕹类墅遴霉7 一定瓣辍溯,这裁使褥叁凌稼接曩在应臻孛受翻 了一定的戳镧。经实践证疆,囱予工业过稃控割孛静瘫捌多种多样、现场设备豹数据信惠也 # 常复 杂,定义套自动化接口规范来支持各种高级语言所歼发的客户端程序不可能满足实际应用需求, 只有通过一套自定义接口才能使得o p c 服务器具有更加强太的功能。为了使o p c 服务器能被象v b 这样 的高级语吉客户程序访问,o p c 同时也定义了一套自动化接口规范米对自定义接翻进行包装。v b 应用 程序必须邋过该包装器才能访问服务器,而c + + 应用程序则可以直接访问白定义接口。该结构如图2 q 新示。 v b 应用程序 c + + 应用程序 o p c鑫定义接日 本地或远程 o p c 服务器 照务器数据 物理设备 存健嚣擞据痒 翻2 4o p c 服务器与不问类犁的o p c 客户连接 尽管o p c 主要是用于从现场设备上采集数据,但是程窝际应用中,o p c 接口规范也可以用在其他 的地方。在系统的最底层,o p c 服务器可以将现场设备上的数据采集到d c s 或s c a d a 系统中,在应用层 也可以通过o p c 服务器将d c s 或s c a d a 系统中的数据传送到具体的应用程序中。该结构如图2 5 所示。 7 第二章o p c 规范 。;攀s c a d a 系统凸设备 应用程序四 一o p c h系统h设备 5 e r v o 驱动 图2 50 p c 物理连接模型 本文实现了一个0 p c 客户端来进行与0 p c f l & 务器的通信,取得的数据作为上层控制组态的数据 源。 2 3 1o p c 服务器内部结构 尽管0 p c 规范并没有规定具体的读写方式,但o p c d a 服务器的主要功能在于从现场的设备上读取 数据,然后将数据进行一定的组织,再分发到各个客户端;或者将客户端提供的数据写到指定的设 备上。根据这一点进行分析很容易得出,在o p c 服务器内部主要包括三个部分:数据读写模块、数据 缓冲区、数据调度和分发模块。数据读写模块直接与现场设备交互,采集的数据存放在服务器数据 缓冲区中;由于现场设备的多种多样,导致服务器内部的数据结构也非常复杂,因此需要专门的数 据管理模块来维护内存数据;0 p c 服务器能支持多客户并发访问,在服务器内部也需要对多客户的访 问请求进行协调和管理,根据不同客户的不同请求,服务器必须能将数据灵活地进行组织和分配, 最后发送到各个客户端。这样,o p c 服务器内部结构可以表示成如图2 - 6 所示: o p c j 务器 数据管理模块 = = 刮设g r a 帆客户珊1p 一 数据调度和数据读写 。 模块 o p c 客户端圯k :一 分发模块 一 = = 圳设备b l 。j 图2 60 p c 务器内部结构图 0 p c 规范只是定义了0 p c 客户端与服务器交互数据的一层协议,而客户端和服务器的具体实现则 需要因不同的应用而不同。在服务器内部,数据调度和分发模块负责与客户端交互数据,冈而其实 现基本上与协议相一致。而数据管理模块和数据读写模块则不是同定不变的,对于不同的设备,读 写数据的方式也自然会不相同,数据缓冲区的数据也不可能相同。然而,数据缓冲区的数据结构却 基本类似,基本上有两种结构:平面型和层次型。平面型是指所有的数据都平等地放在一个列表中, 数据没有分类存储,实现起来比较简单,但是对于具有大量数据的o p c 服务器来说,这种结构不便于 数据的查找,数据读写的效率也比较低,冈此这种结构只适用于内部数据比较少的服务器;层次型 结构对服务器内部的数据分类存放,每个数据标签都有一定的路径,按照这个路行数据管理稃序能 很快地找到相应的数据,从而数据的读写效率非常高。在0 p c 规范中,这个数据缓冲区又称为0 p c 服 务器地址,空间。 数据调度和分发模块直接与0 p c 规范相关,它需要实现所有的0 p c 标准接口,将服务器地址空间 中的实时数据以0 p c 接口的形式提供给客户端。根据0 p c 规范,该模块主要由0 p cs e r v e r 对象、0 p c g r o u p 对象、0 p ci t e m 对象组成,其中0 p cs e r v e r 对象和0 p cg r o u p 对象是标准的c o m 对象,它们提供 了与客户稃序交互的接口,而0 p ci t e m 对象并不直接与客户端进行交互,是服务器的内部对象。 8 第二章o p c 攘藏 豳2 7 数据调度和分发模块内部结构图 如图2 7 所示展示t o p cs e r v e r 对象、o p cg r o u p 对象和o p ci t e m 对象之间的燕系图: o p c s e r v e r 对象包含了服务器瓣一些相关信息,对巍予每个客户端,在服务嚣内部都有一个o p c s e r v e r 露象。客户程痔遥避该砖象缝 孥翻鬏务器黪鞭本嫠感、当薜菰态、苏爱溅务器疼冀匏数撂缭 麴等等。丽时,o p cs e r v e 对象又作为辨cg r o u p 对象鹣容器,它可爨包含多个o p cg r o u p 对象,并对 这些g r o u p 对象进行管理。 o p c g r o u p 对象为客户端提供了一种数据组织的方法,客户程序通过该对象柬访问服务器内部的 实时数据。在访问过程中,客户程序可以非常灵活地设定访问的方式,包括同步溅异步访问、指定 需要访问的数据、读取内存数据绒设备数据、以及设定数据访问的频率等。客户端与服务器的数据 交互是p 基g r o u p 为蕈霞进行的。这样,g r o u p 对象必须戴接访翊裂其俸的数据滚,在o p c 服务器孛, o p ci t e m 瓣象静壹接与数据瓣辐裳联,因筵,g r o u p ) 6 t 象对数据 l 每组织实际主藏戆对o p ci t e m 对象豹 组织。每个o p cg r o u p 对象内繇可以包含多个o p ci t e m 对象,嗣徉也能对这些i t e m 对象进行管理。 o p ci t e m 对象则与某个数据渊相关联,它记录了相成数据源的一些属性,包括动态属性和静态 属性。动态属性是指数据当前值、品质和时间戳,静态属性则是指数据的类型、数据标签名称等等。 通过o p ci t e m 对象,o p cg r o u p 对象能更容易地对客户端所要求的数据进行组织。 2 3 0o i 叼s e r v e r 霹象 o p cs e r v e r 对象是o 咒强势器内部最矫层的对象。当客户摇亭访问鼹务器射,蕊是首先建立与o p c s e r v e r 对象的连接,然后访问服务器的一些信息,或者浏监服务器内部的地址空间( 即数据缓冲区 的数据结构) ,或者建立o p cg r o u p 对象来访问实时数据。 所有的c o m 对象都是通过接口岛裙户端进行交互的,o p c s e r v e r 对象也实现丁一些接口。从o p c d a i o 规范刭疆前的o p c d a3 o 规范,不同版本的o p c s e r v e r 对苏所实现的接口有一定的差异。o p c d a3 0 援范孛o p cs e r v e r 黠象辑实现躲接瓣翔图2 - 8 簸示; 9 第二睾o p c 娩蕊 i o p c c o m m o n i o 薹,c s e r v e r 1 0 p e b r o w s e l o p c i t c m i o i c o n n c c t i o n p o i n t c o n t a i n e r 鹜2 8o p cs e r v e r 对象 2 3 2 1 接口功能说明 除i u n k n o w n 接口外,o p cs e r v e r 对象共包含五个接口ji o p c c o o n 接口用于篱理服务器的一些 最基本的储息。它提供给客户设鬣和奇询本地语言以及裔询错误说明的功能;i o p c s e r v e r 接口则使 得客户攫膨能够管理服务器内缎的情况,包括添加承j 删除一个组、根据组名粪询襁应的组等等; i o p c b r o w s e 接霹受责测整鼹务器蟪壤空阕静查诲,壹询黥方式霹以 i 霉灵活;i o p c i t e m i o 接西施t 乏 客户稃净谯不采胡g r o u p 对象静| 毒况下对数据进行读写撵撵;i c o n n e c t i o n p o i n t c o n t a i n e r 接叠是e 淄 的标准接翻,用于实现与客户端构双向通信,在服务器内部需要实现i o p c s h u t d o v m 接口的连接点对 象。 i o p c c o m o n 该接口欺有五个成员函数,包括s e t l o e a l e i d 、g e t l o c a l e i d 、 锄e r y a v a i l a b l e l o c a l e i d s 、g e t e r r o r s t r i n g 和s e t c l i e n t n a m e 。s e t l o c a l e i d 和g e t l o c a l e i d 分别用 于设置和褥到服务器的语言种类,q l l e r y a v a i l a b l e l o c a l e i d s 用于查询服务器礅支持的语言神类, g e t e r r o r s t r i n g 凝攥运回豹锤浚壤囊诲爨薅戆镫误谖明,s e t c l i e n t n a m e 裂鞠寒设藿客户端名称。 i o p c s e r v e r 该接口是o p cs e r v e r 对象上最重要的一个接口,它提供了对服务器内g r o u p 的管 理。该接阳的接口成员函数包括a d d g r o u p 、g e t e r r o r s t r i n g 、g e t g r o u p b y n a m e 、g e t s t a t u s 、 r e m o v e g r o u p 和c r e a t e g r o u d e n u m e r a t o r 六个成员函数。 a d d g r o u p 和r e m o v e g r o u p 分别用予添加和删除一个缀,为了使不同的组能有效地进行区分,每个 g r o u p 在客户端罨l 疆务器端都鸯一个壤一静每援,该旬麟出一个4 字节弱整数袭零。当客户程序添翔 一个g r o u p 瓣,嚣要蒋l 燹先分鬈驽匏客户端匀糖露为参数馋遂绘0 篾s e r v e r 对象,对象秘建一个g r o 雄 后会自动擞成一个唯一的句柄并邋回给客户端,客户端通过该句柄调用r e m o v e g r o u p 函数来删除这个 组,客户端句柄则用作服务器回调客户端的依据。 g e t e r r o r s t r i n g 与i o p c c o m m o n 接口的g e t e r r o r s t r i n g 函数功能基本相同,也是根据返同的错误 值查询具体的说明。说明字符串采用指定的语言种类。 g e t g r o u p b y n a m e 和c r e a t e g r o u p e n u m e r a t o r 用于g r o u p 鹩套诲,前者根据缝名凌找稆鹿的g r o u p , 鑫者掰霹薅绣o p cs e r v e r 霹象豹辑露g r o u p ,遍历戆结栗雾敖在一令投举器对象夸。在每令o p cs e r v e r 对象内部,每个g r o u p 都毒一个攘一的名字,该名字也蠲体该g r o u p 静标识。 l o 第二章o p c 撬藏 8 平面型b 层敬壁 溪2 - 9o p c 辍务器造皱空翔结构 g e t s t a t u s 成员函数返回服务器当前的一些综合信息,包括服务器的启动时间、当前时间、最后 一次更新时间、服务器工作状态、组的个数、服务器资源使州情况、主版本号、次版本号、以及有 关服务器开发商的一些信息。 i o p c b r o w s e 该接霉天包禽b r o w s e 和g e t p r o p e r t i e s 嚣夸残受交数。b r o w s e 甄数燕子澍菱驻务器 地址空擒的数据结构,并提供了 # 常灵活韵查询方式。籍藤已经提到,o p c 服务嚣恁址空翔主要有平 面型和屡次型两种,其结构如图2 9 所示。 b r o w s e 函数就是用于对服务器地址空间的结构进行浏览访问。由图可见,平面犁比层次型要简 单得多,对平面型地址空间只需骤进行一次遍历即可。而对于层次型,则需要分缀进行遍历,客户 端可以只遗鹰一级,即某个b r a n c h 的下一级b r a n c h 或t a g ,也可以多级遍历,即遍历某个b r a n c h 下面 靛所有级的b r a n c h 或t a g 。 除魏之努,b r o w s e 委羧还撬绥了一些过滤撬割,毯攒按照臻点类蓬( b r a n c h 袋t a g ) 、按照结煮 名称、设备开发商等等。对予结点数兹常多的情况下,该函数还提供的分次遍掰的功能,即当遍历 的结果数檄m 超过了客户端要求返回的最大个数n 时,服务器返回a 个结粜并记录遍历位置,便 于客户端继续遍历。 当客户端根据结点名称遍历查找时,b r o w s e 函数提供了模糊查询的方法。在函数中, s z e l e m e n t n a m e f i l t e r 参数指定缳点名称的匹配字符串,字符串中还可以包含一然遁配符,因此查询 方式类戳予s 蕊语言孛戆l i k e 关键事。 g e t p r o p e r t i e s 函数提供了瓣粼驻务器缝垃空掏孛l 母予缩点( 即t a g 结点) 的诱闼。在o p c 瑕务 器中,t a g 实际上与某个数据点相对应,服务器地址空间几乎记录了该数据点的全部信息。o p c 规范 列举了每个数据点的几十种属性,包括静态属性和动态属性,而且支持服务器歼发人员自定义的属 性。对应于姆个属性都有一个p r o p e r t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论