(计算机应用技术专业论文)plc通用性数据通信接口的研究与实现.pdf_第1页
(计算机应用技术专业论文)plc通用性数据通信接口的研究与实现.pdf_第2页
(计算机应用技术专业论文)plc通用性数据通信接口的研究与实现.pdf_第3页
(计算机应用技术专业论文)plc通用性数据通信接口的研究与实现.pdf_第4页
(计算机应用技术专业论文)plc通用性数据通信接口的研究与实现.pdf_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 随着工业自动化的发展,监控组态软件在工业控制系统中得到了广泛的应用。p l c 驱 动程序的设计和开发成为经常遇到的问题。信道利用率和数据采集效率直接影响到整个监 控系统的性能。 本课题就是作者在北京昆仑通态公司实习期间,针对出现的实际问题开展的。m c g s 组态软件是昆仑通态公司开发的组态软件,具有功能强大、使用方便的优点。但是在使用 中,需要自动控制工程师开发大量的m c g s 上应用的硬件设备的驱动程序。这些驱动程序 的开发耗时费力,并且数据采集的效率不尽令人满意。 本课题进行了相关的调查和研究,实现了组态软件与p l c 设备的通用性设备驱动框架 的设计。在c 6 s 与p l c 设备数据通信中,本课题主要解决几个关键问题:i ) 驱动框架的 通用性设计2 ) 数据采集的优化:3 ) 常用设备命令的封装;4 ) 设备运行实时信息的显示。 本文中分析和总结了现有通信程序中存在的问题,给出p l c 驱动框架的功能规格说明并一 一实现;并且着重对有限信道下的数据采集问题提出并实现若干优化措施。现在已有多个 开发出的实例投入使用,经实践检验,能够提高p l c 设备驱动的采集效率,缩短开发周期, 降低开发难度。 在本课题的基础上,可快速开发p l c 驱动实例。在实际生产中,已有多个实例投入应 用。根据应用的情况来看,到达了预期的目标,具有广阔的应用前景和经济价值。 在本文最后对所做的工作进行了总结,并提出了进一步的研究方向和目标。 关键词:组态软件;可编程逻辑控制器;驱动;m c g s 垒堕堕 一一 _。-。_-。_。-。_。-_。_。_。-。_。_。_1。_1。1。一 a b s t r a c t w i t ht h ed e v e l o p m e n to fi n d u s t r ya u t o m a t i o n ,h o wt od e s i g na n dd e v e l o p m e n tp l cd r i v e r p r o g r a m si sc o m i n gi n t ob e e no n eo ft h em o s tc r i t i c a lp r o b l e m s t h ee f f i c i e n c yo f c h a n n e ld a t a p r o c e s s i n gi st h ek e yo f t h ew h o l es y s t e m t h i st h e s i si sf o rr e s o l v i n gt h ep r o b l e mm e e ti nt h ek u n l u nt o n g t a ic o m p a n yd u r i n gm y p r a c t i c ep e r i o d m c g si sac o n f i g u r a t i o ns y s t e md e v e l o p e db y t h ek u n l u nt o n g t a ic o m p a n y , w i t ht h em e r i t ss u c ha st h ep o w e r f u lf u n c t i o na n da d v a n t a g e o u su t i l i t y h o w e v e r , t h ed r i v e r so f t h eh a r d w a r ea p p l i e di nm c g sn e e dd e v e l o pb ye n g i n 螂t h e ed e v e l o p m e n t sa l w a y s 1 p 圮d l o n gh o u r s a n dt h ed a t ac o l l e c t e do f t h ee f f i c i e n c i e sa r ev e r yl o w t h ea r t i c l ed i s c u s sf e wk e yp r o b l e m s , s u c h 勰c u r r e n c yd a t ac o m m u n i c a t i o ni n t e r f a c e d e s i g n ;i m p r o v ed a t ac o l l e c te f f i c i e n c y ;p a c k a g ec o u l m o n u s ee q u i p m e n t so r d e r s ;s h o wr u n t i m e i n f o r m a t i o no f e q u i p m e n t w ed i s c u s sm c g sa n dp l cd a t ac o m m u n i c a t i o np r o c e s s i nt h i sp a p e r , h o wt od e s i g na n d d e v e l o p m e n tt h ep l cd r i v e rp r o g r a mi se x p l o r e d t h i sp a p e rg i v ed e t a i ld e s i g no fp l c d r i v e r f u n c t i o na n ds o l v es e v e r a lk e yp r o b l e m sa b o u tc h a n n e ld a t ap r o c e s s i n gb a s et h ea r t i c l e ,t h ep l c d r i v e rp r o g r a mc a nb ed e v e l o p m e n tq u i c k l y t h ee x p e r i m e n t a lr e s u l t ss h o wt h a t ,i tc a ns a v ec o s t a n di m p r o v ee f f i c i e n c y f i n a l l y , t h es u m m a r yi sg i v e no ns e t t l et h i n g sa n d t l e x tr e s e a r c h i n gc o n t e n ti sp r o p o s e d k e y w o r d s :s c a d a ;p l c ;d r i v e ;m c g s i i 第一章绪论 1 1 课题的目的和意义 第一章绪论 随着计算机科学技术、工业控制等方面的新技术的迅速发展,计算机监控系统由早期 的集中式监控向全分布式的方向发展,计算机监控系统软件也随着面向对象技术、分布式 对象计算、多层次c l i e n t s e r v e r 技术的成熟,从早期面向功能的系统,发展为面向具体 现场设备为特征的面向对象的计算机监控系统。 这期间,计算机监控系统规模越来越大,不同厂家生产的现场设备的种类也在不断的 增加,其中使用组态软件与现场p l c 设备进行数据交换得到了广泛的应用。这类数据交换 往往具有以下的特点,即数据量大,采集点分散,带宽较窄。由于不同厂家所提供的p l c 现场设备的通讯机制并不相同,组态软件需要开发的设备通信驱动程序越来越多这种复 杂的设备驱动程序的开发不但存在开发周期长,难度大,难以通用的问题,而且对于有限 带宽限制条件下的大数据量传输,普遍存在着信道利用率低,系统效率差,不稳定的情况。 本课题是作者在北京昆仑通态公司实习期问,针对出现的实际问题而开展的。在课题 中进行了相关的调查和研究,实现了组态软件与p l c 设备的通用性数据通信接口即m c g s 中的p l c 设备驱动框架的设计,在此基础上开发的多个实例,在实际生产中已投入应用。 根据应用的情况来看,能够有效克服上文提到的各项弊病,具有广阔的应用前景和经济价 值。 同时,在目前已有的数据交换标准中,对于如何提高有限带宽条件下的信道利用率还 没有成熟的设计。本课题在这方面做了一些有益的尝试,有助于进一步的深入研究。 1 2 组态软件的现状和发展 1 2 1 组态软件的产生 组态的概念最早来自英文c o n f i g u r a t i o n ,含义是使用软件工具对计算机及软件的 各种资源进行配置,达到让计算机或软件按照预先设置自动执行特定任务、满足使用者要 求的目的【”。 监控组态软件是面向监控与数据采集( s u p e r v i s o r yc o n t r o la n dd a t aa c q u i s it i o n 简称s c a d a ) 的软件平台工具。在监控组态软件出现之前,工控领域的用户通过手工或委 托第三方编写h m i 应用,开发时间长,效率低,可靠性差;或者购买专用的工控系统,通 常是封闭的系统,选择余地小,往往不能满足需求,很难与外界进行数据交互,升级和增 加功能都受到严重的限制。组态软件的出现,把用户从这些困境中解脱出来,可以利用组 态软件的功能,构建一套最适合自己的应用系统。 1 第一章绪论 监控组态软件最早出现时,h m i ( h u m a nm a c h i n ei n t e r f a c e ) 或m m i ( m a nm a c h i n e i n t e r f a c e ) 是其主要内涵,即主要解决人机图形界面问题。随着它的快速发展,实时数据 库、实时控制、s c a d a 、通讯及联网、开放数据接口、对i 0 设备的广泛支持已经成为它 的主要内容。 世界上第一个把组态软件作为商品进行开发销售的专业软件公司是美国w o n d e r w a r e 公司,它于2 0 世纪8 0 年代末率先推出第一个商品化监控组态软件i n t o u c h 。此后监控组态 软件在全球得到了蓬勃发展,目前世界上的组态软件有几十种之多,总装机量有几十万套。 伴随着信息化社会的到来,监控组态软件在社会信息化进程中将扮演越来越重要的角色, 每年的市场增幅都会有较大增长,未来的发展前景十分看好。 8 0 年代中后期,随着个人计算机的普及和开放系统( o p e ns y t e m ) 概念的推广,基于个 人计算机的监控系统开始进入市场,并发展壮大。组态软件作为个人计算机监控系统的重 要组成部分,比p c 监控的硬件系统具有更为广阔的发展空间。这是因为,第一,很多d c s 和 p i c 厂家主动公开通讯协议,加入“p c 监控”的阵营。目前,几乎所有的p l c 和一半以上 的d c s 都使用p c 作为操作站。第二,由于p c 监控大大降低了系统成本,使得市场空间得到 扩大,从无人值守的远程监视( 如防盗报警、江河汛情监视、环境监控、电信线路监控、交 通管制与监控、矿井报警等) 、数据采集与计量( 如居民水电气表的自动抄表、铁道信号 采集与记录等) 、数据分析( 如汽车机车自动测试、机组设备参数测试、医疗化验仪 器设备实时数据采集、虚拟仪器、生产线产品质量抽检等) 到过程控制,几乎无处不用。 第三,各类智能仪表、调节器和p c b a s e d 设备可与组态软件构筑完整的低成本自动化系 统,具有广阔的市场空间。第四,各类嵌入式系统和现场总线的异军突起,把组态软件推到 了自动化系统主力军的位置,组态软件在工业自动化系统中占有了越来越重要的地位。 1 2 2 常见的组态软件 目前世界上的组态软件有近百种之多。国际上知名的工控组态软件有美国商业组态软 件公司w o n d e r w a r e 公司的i n t o u c h 、i n t e l l u t i o n 公司的f i x 、n c m as o f t 公司的p a r a g o n 、 t ae n 2 i n e e r i n 2 公司的a i m a x 、通用电气公司的c i m p l i c i w 、r o c k w e l l 公司的r s v i c w 3 2 、 信肯通公司的t h i n k & d o 、n a t i o n a li n s t r u m e n t s 公司的l a b v i e w 、l e o n i t s 公司的g e n e s i s , 德国西门子公司的w i n c c ,以色列p cs o f t 公司的w i z c o ,澳大利亚c i t e c h 公司的c i t e c h 等。国内的组态软件起步也比较早,目前实际工业过程中运行可靠的有北京昆仑通态自 动化软件科技有限公司的m c g s 、北京三维力控科技有限公司的力控、北京亚控科技发展 有限公司的组态王以及台湾研华的g e n i e 等。 目前绝大多数工控组态软件都可运行在w i n d o w s9 8 n t 2 0 0 0 环境下,界面友好, 易于操作。从结构上来说,工控组态软件一般都是由系统开发环境( 或称组态环境) 与系统 一2 第一章绪论 运行环境两大部分组成。整体结构比较相似。系统开发环境是自动化工程设计师为实旌其 控制方案,在组态软件的支持下进行应用程序的系统生成工作所必须依赖的工作环境,通 过建立一系列用户数据文件,生成最终的图形目标应用系统,供系统运行环境运行时使 用。系统运行环境将目标应用程序装入计算机内存并投入实时运行。有些工控组态软件虽 然系统组成上包含多种部件,但就其功能结构来说均可以认为是组态环境与运行环境的 结合。维系组态环境与运行环境的纽带是实时数据库。如图1 1 所示。 z 授动隧稳逢 蜜 运 = i := 穗梭掇动蘑 流程控铡设计 薅 对= c 敬 j 邑场控制 缀绥系统缀恣 箍行 缀衾麴线缀卷 琢 荪 繇 撒饕彳嚣撕髭舔 鹱 摇 壤 报袭曲线打掰 二竣餐缓磊 库 v o 竣锯晌应 1 2 3m c g s ,m c g s e 图l 1 组态环境与运行环境关系示意图f l 】 与本课题密切相关的是j e 京昆仑通态公司生产的全中文工控组态软件m c g s 。它包括 通用版( m c g s ) 、网络版( m c g s v 0 、嵌入版( m x o s e ) - - 个版本。是目前国内嵌入系统中占 有市场份额最大的产品【2 1 m c g $ ( m o n i t o ra n dc o n l l o lg e n e r a t e ds y s t e m ,通用监控系统) 是一套用于快速构造和 生成计算机监控系统的组态软件,它能够在基于m i c r o s o f t ( 各种3 2 位w i n d o w s 平台上) 运行,通过对现场数据的采集处理,以动画显示、报警处理、流程控制、实时曲线、历史 曲线和报表输出等多种方式向用户提供解决实际工程问题的方案,它充分利用了w i n d o w s 图形功能完备、界面一致性好、易学易用的特点,比以往使用专用机开发的工业控制系统 更具有通用性,在自动化领域有着更广泛的应用【3 1 。 m c g s e ( m c g s 嵌入版) 是在m c g 8 通用版的基础上开发的,专门应用于嵌入式计 算机监控系统的组态软件,m c g s 嵌入版包括组态环境和运行环境两部分,它的组态环境 能够在基于m i c r o s o f t 的各种3 2 位w i n d o w s 平台上运行,运行环境则是在实时多任务嵌入 式操作系统w i n d o w s c e 中运行。适应于应用系统对功能、可靠性、成本、体积、功耗等 综合性能有严格要求的专用计算机系统。通过对现场数据的采集处理,以动画显示、报警 处理、流程控制和报表输出等多种方式向用户提供解决实际工程问题的方案,在自动化领 域有着广泛的应用。此外m c g s 嵌入版还带有一个模拟运行环境,用于对组态后的工程进 行模拟测试,方便用户对组态过程的调试。 m c g s w ( m c g s 网络版) 采用c s 模式,全面支持i e 浏览技术,可以实现远程的控制 功能,并能够提高网络远程控制的安全性。 一3 第一章绪论 本课题的p l c 设备驱动框架,是基于m c g s 三个版本的软件所开发,可以支持m c g s 通用版、嵌入版和网络版。 1 2 4m c g s 的可扩充性与设备驱动程序 通常,m c g s 需要与多个设备进行通信。如图1 2 所示。 图1 2m c g s 与多个设备通信 在通信过程中,m c g s 核心软件没有直接与设备核心软件进行交互。而是通过设备驱 动程序来进行的。如图1 3 所示。 箍回遮舔 图1 3m c g s 与p l c 设备通信原理图 我们所要开发的p l c 通用性数据通信接口就是m c g s 中设备驱动程序的通用性框架。 m c g s 的设备驱动程序在上位机与p l c 的通信中起到了重要的作用。在监控软件的运行模 式下,监控软件会定时或在事件激发时调用设备驱动程序,而设备驱动程序根据需要再调 用设备核心函数。这个设备驱动程序表现形式为一个a c t i v ed l l 构件。m c g s 通过规范的 o l e 接口将其挂接在m c g s 中,使其与m c g s 主程序在界面显示、数据交互等方面融为 一个整体。所以也把设备驱动程序叫做设备驱动构件。 目前m c g s 已自带了许多设备驱动程序,能够连接的设备种类包括:带数字通讯接口 ( r s 2 3 2 瓜s 4 2 2 瓜s 4 8 5 、以太网、现场总线等) 的智能仪表,如流量计等计量设备、报警 器等安防设备、遥测传感设备;p c 总线工业计算机设备;带开放接口的基于p c 的数据处 4 第一章绪论 理系统;某些d c s 、p l c 类型的控制设备。 虽然m c g s 已提供了很多的设备驱动程序,但是,无论从数量还是种类上来讲,仍然 不能满足全部用户的需要。我们希望通过开发p l c 通用性设备驱动框架,达到缩短开发周 期,降低开发难度,提高数据采集速度的目的。 1 3p l c 设备在过程控制领域中的应用 1 3 1p l c 的产生和发展 可编程控制器( p r o g r a m m a b l ec o n l r o l l a r ) 是计算机家族中的一员,是为工业控制应用 而设计制造的。早期的可编程控制器称作可编程逻辑控制器( p r o g r a m m a b l el o g i c c o n t r o l l e r ) ,简称p l c ,它主要用来代替继电器实现逻辑控制f 4 j 。随着技术的发展,这种装 置的功能已经大大超过了逻辑控制的范围,因此,今天这种装置称作可编程控制器,简称 p c 。但是为了避免与个人计算机( p e r s o n a lc o m p u t e r ) 的简称混淆,所以将可编程控制器 简称p l c 。关于p l c 的定义很多,其中,在1 9 8 7 年国际电工委员会( i n t e r n a t i o n a le l e c t r i c a l c o m m i t t e e ) 颁布的p l c 标准草案中对p l c 做了如下定义: p l c 是一种专门为在工业环 境下应用而设计的数字运算操作的电子装置。它采用可以编制程序的存储器,用来在其内 部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能通过数字式 或模拟式的输入和输出,控制各种类型的机械或生产过程。p l c 及其有关的外围设备都应 该按易于与工业控制系统形成一个整体,易于扩展其功能的原则而设计。 p l c 具有通用性强、使用方便,适应面广、可靠性高、抗干扰能力强、编程简单等特 点,在工业自动化控制特别是顺序控制中具有重要的地位。目前,世界上有2 0 0 多个厂家 生产p l c ,知名的有美国的a b 通用电气、莫迪康公司:日本的三菱、富士、欧姆龙、松 下电工等公司;德国的西门子公司;法国的t e 施耐德公司;韩国的三星、【n 公司等。 1 3 。2p l c 的工作过程 p l c 设备的工作过程大概分以下几个过程:首先,扫描输入信号模块,包括d i ,a i ; 然后计算和执行控制指令;接下来输出控制信号d o ,a o ,完成通讯功能。当扫描周期结 束时重新开始,循环执行。 p l c 提供大量的数据寄存器,并把寄存器分成各种功能块,包括开关量输入继电器区, 开关量输出继电器区,模拟量输入寄存器区,模拟量输出寄存器区,中间继电器区,数据 寄存器区,定时器,计数器等功能寄存器区。所有的控制信息均放在以上的寄存器区,p c 机通过控制要求修改这些寄存器值,就实现了控制p l c 运行的目的。 5 一 第一章绪论 1 3 3p l c 的通讯方式 p l c 具有通信联网的功能,它使p i x 与p l c 之间、p l c 与上位计算机以及其他智能设 备之间能够交换信息,形成一个统一的整体,实现分散集中控制。多数p l c 具有r s 一2 3 2 接口,还有一些内置有支持各自通信协议的接口。p l c 的通信目前还未实现互操作性,i e c 规定了多种现场总线标准,p l c 各厂家均有采用。如图1 4 所示。 生产商产品型号通讯方式 c p m l r s 2 3 2 r s 4 2 2 0 m r o n r s 2 3 2 r s 4 2 2 、 c q m lc o i i i i p o i ;u s s 、 c o m p o b u s o c 1 0 0 0 h c 2 0 0 0 h r s 2 3 2 r s 4 2 2 、 c 2 0 0 ha c o n t r o l l e r l i n k 、s y s m a cl i n i ( 、s y s n e t 、 c v m c v e t h e r n e t 、c o m p o b u s s 、 c s l c o m p o b u s d c 2 0 h - c 6 0 h r s 2 3 2 r s 4 2 2 f x 系列 r s 2 3 2 r s 4 2 2 m i s t u b i s h r s 2 3 2 r s 4 2 2 u s b 、 a 系列 q 系列 p r o f i b u s 、m o d b u s 、 m e l s e c n e t l o 、c c l i n k 、e t h e r n e t c o n t r o l l o g i x r s 2 3 2 r s 4 2 2 、 a 1l e n b r a d l e yp l c 5 s l c 5 0 0 d h + d h 4 8 5 、c o n t r o l n e t 、e t h e r n e t 、d e v i c e n e t f p o f p l r s 2 3 2 r s 4 2 2 、 松下 f p 3 f p i o s h e t h e r n e t 、壮w n e t 、c _ n e t u 1 9 0 一3 0r s - 2 3 2 4 2 2 、e t h e r n e t 、g e n i u sb u s 、p r o f i b u s 、 g ef a n u c l m 9 0 7 0 w o r l d f i p 、i n t e r b u s s n a n or s 4 8 5 s c h n e i d e r t s x - m i c r o r s 2 3 2 r s 4 2 2 t s x - p r e m i u m e t h e r n e t 、m o d b u s p l u s 、r s 2 3 2 ( m o d b u s ) 、 t s x - q u a n t u m t s x m o m e n t u m w o r l d f i p 、i n t e r b u s 、p r o f i b u s s 5p r o f i b u s s i e m e n s $ 7 - 2 0 0p p i s 7 3 0 0 、$ 7 - 4 0 0m p i 、p r o f i b u s 、e t h e r n e t 6 第一章绪论 1 4 课题目标和主要研究内容 1 4 1 课题的总体目标 本课题的目标是,实现一个基于p l c 设备与上位监控系统m c g s 间的通用性高效设备 驱动框架,并实现示范性的实例。此模块需要考虑在有限带宽情况下的多种情况,能够具 有良好的通用性,降低应用开发的难度。并且,对于大数据量传输、采集点分散的情况, 提供较好的数据采集方式,提高了系统效率和信道利用率。最终能够在实际生产中投入使 用,提高生产效率,获得可观的经济效益。 1 4 2 研究的主要内容 本课题主要的研究内容,基于如图1 5 所示的p l c 设备的通用性数据通信接口的总体 设计结构。 【飘。e 设备驱动与m c g s 的接珏 l l l jl li l l ll l lp l c 界面模块p l c 基本数处理 i国e v p a g e )援缴d e v b a s ) l 。 l i 。l l l l l l l 毒 i ,通道数据读写模块 。轴姆 。+ 1 i l p 燃鹾件设备 图1 5p l c 设备驱动框架程序结构 下面就本课题所做工作的主要内容,进行一下简要说明: ( 1 ) 分析p l c 设备通信的需求。分析和总结了现有通信程序中存在的问题。给出总体 的实现方法并给出p l c 通信框架的功能规格说明。 ( 2 ) 框架的设计与实现: 一7 - 第一章绪论 类的设计与接口的划分; 实现框架与m c g s 的接口; 课题中对与m c g s 通信的1 5 个接口函数的实现。 实现框架的各项功能 包括数据的处理,数据的读写,界面的设计,对通信协议的封装,关键变量的设 计,以及数据采集,设备命令等功能。 对有限信道下的数据采集问题提出并实现若干优化。 主要有三种采集模式的划分,动态分块算法等。 记录设备日志信息的实现。 主要是驱动运行过程中,1 2 个运行状态参数以及4 k 的通讯日志。这些是p l c 驱 动运行时的状态信息,可以帮助驱动调试人员或现场维护人员发现和解决问题。 ( 4 ) 针对此接口给出示范性开发实例。为一般的p l c 设备驱动程序的设计提供设计 思路与实现方法。 ( 5 ) 对p l c 设备驱动框架进行测试; 本论文的章节安排如下; 第二章,提出了p l c 通用性数据通信接口的总体研究思路:第三章,p l c 通用性数据 通信接口的具体设计与实现;第五章,提出并实现了p l c 框架开发的范例,第五章,提出 并实现了p l c 通用性框架的测试过程;第六章,针对本文的工作进行了总结,并对未来的 发展做出了期望。 一8 第二章p l c 设备驱动框架的总体设计 第二章p l c 设备驱动框架的总体设计 本章首先分析和总结了目前通信及设备驱动开发中存在的不足和希望改进之处,然后 提出了本课题的总体设计思路,并给出p l c 设备与组态软件间通信接口的功能、性能等各 方面的规格描述。 2 1 对现有设备驱动程序的分析 在昆仑通态进行课题调研的期间,作者对目前设备驱动存在的问题进行了调查、分析 和总结。调查主要是通过三个渠道。一是向客户发放并回收调查问卷;二是通过直接的用 户反馈;三是调查总结技术部门驱动开发中出现的问题。 目前设备驱动开发中存在的一些问题主要体现在两大类,一类是驱动开发过程中存在 的问题,另一类是使用开发出的p l c 设备驱动程序与监控系统问通信存在的。具体如下: 一、组态软件如m c g s 在出厂时,会自带一部份p l c 设备的驱动程序。但是支持的 数量毕竟是有限的。因此需要开发人员不断开发新的p l c 驱动程序,或是自控系统集成工 程师根据m c g s 提供的接口自己动手进行编程。这样就出现了许多问题。随着监控系统普 及程度的提高,针对p l c 设备驱动的编程量和出错率到了令人很不满意的程度。p l c 通信 比较复杂,开发需要相对长的时间。一方面,由于各编程人员的水平参差不齐,许多软件 的功能和可靠性都存在问题;另一方面,由于每个编程人员的编程习惯和编程思路都不同。 程序可维护性和重用性比较差。 二、大部分开发者仅满足于完成驱动的协议解析部分,即最基本的通信功能。而没有 对数据缓冲,功能覆盖,性能调度等一系列问题投以足够的重视。这样造成p l c 驱动程序 的通信质量不尽如人意。但是要使每一位开发者都能具备非常高的开发能力,也是不切实 际的。 三、p l c 类设备起到承上启下的作用。它一方面连接为数众多的下位设备如传感器 等,另一方面需要与组态软件进行通讯。由于连接的下位设备很多,因此p l c 需要处理非 常多的通道。丽信道的物理带宽是有限的,这造成了通信中的瓶颈。在目前的驱动开发中, 存在着采集效率低,信道利用率的问题。 四、在已有的驱动中,一直没有记录设备驱动的内部工作状态。因此在控制现场,一 旦通信出现问题,查找驱动出错原因非常困难,从而造成了经济损失和系统地维护难度。 尤其是在一些重要的应用现场,如造币厂,发电站等,一旦出现问题,造成的经济损失非 常巨大。 五、目前,要想取得较好的通讯效率,在实际使用中,需要最终用户进行参数配置, 如设置最小采集时闻等。本意是希望可以通过人工配置得到最优的通信结果。但绝大部分 的最终用户,缺乏相关的专业知识。对他们来说这是一件很困难的工作。因此降低使用难 第二章p l c 设备驱动框架的总体设计 度,是非常必要的。 通过我们的总结发现,用现有开发方式开发出的设备驱动,无论在采集速度、回写速 度、稳定性和支持p l c 种类各项评价设备驱动的指标上,都不够理想。 总的来看,设备驱动的不足已经严重影响了组态软件的实施、推广和利润,影响了各 现场自动监控系统的实施,造成了人力、物力、财力的浪费。解决此问题,成为一项迫在 眉睫且很有意义的工作。 2 2p l c 设备通用性数据通信接口的总体设计思路 通过上文的分析,我们已了解到要想提高数据通信的效率,降低设备驱动开发的难度, 开发p l c 设备的通用性数据通信接口是非常必要的。本节中将给出p l c 通用性数据通信 接口总体的设计思路。 2 2 1 开发方法 在本课题开发过程中,应用了研究生课程软件开发与程序设计方法学中的部分理 论与方法。如需求分析阶段使用用例明确需求、u m l 建模嘲、黑盒测试和白盒测试的理 论与方法等【6 1 。 生命周期采用瀑布模型。开发经历阶段分为需求分析、概要设计、详细设计、编码、 测试与实例开发。并针对开发出的实例做测试。 需求分析阶段的主要工作是调查需求,确定驱动框架的功能规格说明,要作到明确、无 歧义。不涉及具体实现方法。在确定软件开发可行的情况下,对软件需要实现的各个功能 进行分析。概要设计阶段的主要工作是确定技术路线,给出整体的解决方案,并指出关键 技术难点等。详细设计阶段是对概要设计的迸一步细化,要完成具体细节的设计。编码阶 段是根据详细设计的要求进行编码。在软件设计完成后是测试阶段。接下来是实例开发, 在驱动框架用户的角度上进行实例开发。最后是对比测试,设计测试用例测试接口的效率, 验证课题是否达到目标。 2 2 2 开发环境 任何监控系统不可能脱离执行设备而单独存在,设备驱动开发也必须依托一定的硬件 环境,最终开发的驱动构件才能正确的驱动设备工作。 硬件环境:包括p c 机一台,通讯设备( 若干p l c ,主要有西门子2 0 0 系列p l c 、松 下f p 系列p l c 等) 及通讯所需的通讯电缆。比如:设备只支持r s 4 8 5 ,p c 机只能r s 2 3 2 通讯,需要r s 2 3 2 4 8 5 的模块。 软件环境:操作系统w i n 2 0 0 0 + s p 4 ( 以上补丁) , w m d o w sx p 。m c g s 和m c g s e 组 第二章p l c 设备驱动框架的总体设计 态环境、运行环境的d e b u g 版本,用于设备驱动调试。 开发工具:使用v c + + 6 0 和e v c a 0 进行开发。v c 6 0 0 + s p 5 ,e v c a 0 0 + s p 2 。 其中,使用v c + + 6 0 开发的驱动框架适用于m c g s 通用版和m c g s 网络版。适用于 m c g s 嵌入版的驱动框架需要使用e v c 4 0 进行编译。 开发出的驱动框架由一系列头文件、库文件和一个样例驱动、一个v c ( e v c ) 的驱 动模板工程组成。 2 2 3 框架规格说明 p l c 设备驱动框架的目标用户有两类。对于开发人员,希望使用p l c 设备驱动框架可 以降低开发难度,提高通信效率。对于最终用户,希望使用p l c 设备驱动框架基础上开发 的实例,可以提高可用性,提高通信效率。因此p l c 设备驱动框架主要的功能规格说明如 下。 通用性设计 框架将p l c 设备驱动的大部分功能封装,在此基础上,开发者只关注于协议的分析和 实现,只需要极少的时问和精力就可以开发出新的不同协议的p l c 驱动。简化编写驱动的 复杂度,快速高效率编写p l c 驱动程序。这为日后开发其他设备的通用化设备驱动具有良 好的借鉴意义。 以下功能驱动开发人员将不再关心: 与m c g s 的交互;判断通道优先级,判断通道是否需要采集;通道的分块控制;常用 设备命令的实现。 在驱动框架基础上开发需要关心的内容: 定义设备本身的属性;定义设备的寄存器类,实现读写的打包和解包过程。 封装通信过程 框架提供了一次采集( 或下写) 过程中,通讯参数的配置途径和通讯次数的控制途径 ( 某些驱动完成一次采集需要一次以上的发收过程,如西门子$ 7 2 0 0 ) 。最多可提供一次采 集( 或下写) 过程进行9 次发收过程。 完成通道优先级控制。在框架中实现保证了采集按优先级正常进行,驱动开发人员不 用关心优先级,降低开发难度。框架完全封装了采集和写设备时的通讯过程,驱动开发中 不需调用通讯相关函数,发送接收过程自动完成。对有限信道下的通讯给出多种优化方式, 第二章p l c 设备驱动框架的总体设计 包括三种采集模式的划分,动态分块算法等。提高数据通讯效率,保证p l c 设备与监控系 统间的高效、稳定、快速的数据交换。 常用功能设计 采集功能:通过三种不同的采集方式实现。提高采集效率和信道利用率。 读写设备命令功能:将常用设备命令集成至框架中。如没有特殊的要求,驱动开发时 将不需要专门为设备编写设备命令的实现代码。常用的有读命令,写命令等。 读命令r e a d ( 寄存器名,寄存器地址,数据类型描述,数据变量名) 。从指定寄存器的 制定地址中,按照指定数据类型读取一个数据,读出来的数据放置到数据变量中。 写命令w r i t e ( 寄存器名,寄存器地址,数据类型描述,数据值) 。向指定寄存器地址中, 按照指定数据类型,写入指定数据值。 记录设备信息功能 提供现场故障及时发现,诊断和处理手段。应记录设备运行状态等重要信息。框架记 录驱动运行过程中,1 2 个运行状态参数以及4 k 的通讯日志。这些信息包含了p l c 驱动运 行时的大部分状态,可以帮助驱动调试人员或现场维护人员发现和解决问题。要查看日志 信息,只需要在运行窗1 3 空白处( 无构件的地方) 按下鼠标1 0 秒,即可弹出驱动日志信 息窗口,通过导出功能,还可以将这些信息导出到文本文件中。 其他方面的目标 易用性: 提供一个统一,友好的设备组态管理界面,引导用户能自然方便的组态出最优化采集 方式。降低最终用户使用监控系统的难度。框架以通道刷新时间来控制采集优先级,用户 组态容易理解。 兼容性: 需要兼容已有的m c g s 驱动接口。 采集速度: 1 ) 通道采集更新时间( 在窗口中显示两次更新的闻隔) :密集采集模式下,最坏情况是 所有通道一次采集时间或设定采集周期的最大值+ 一个动画刷新周期。按需要采集模 式下,最坏情况:所有通道一次采集的总时间+ 一个动画刷新周期。最好的情况,一 第二章p l c 设备驱动框架的总体设计 次采集的时问。定时采集模式下,最坏情况,m a x ( 所有通道一次采集时间,指定的刷 新时间卜一个动画刷新周期 2 ) 通道写更新时间( 发生通道写命令到执行成功的时间间隔) :最坏情况,次通道采 集时问+ 一次向下写的时间。最好情况,一次向下写的时阿。 资源占用率: 1 ) c p u 占用率:密集采集模式下:线程会始终处于忙碌状态,只有通讯过程中进行通讯 等待的时问可以切换给其它线程使用,所以对动画显示等其它低优先级有较大影响。 按需要采集模式下,只在需要时进行一次所有通道采集,资源占用率低。定时采集模 式,跟目前的采集相比占用率稍高一些。 2 ) 内存占用率:一个数据缓冲区,大小一般不超过4 k 。 2 3 本章小结 本章主要提出了p l c 通信框架的总体设计思路。在本章的开始,分析并总结目前通信 及设备驱动开发中存在的不足和希望达成的目标,然后提出了总体设计思路,并给出p l c 设备驱动框架的功能、性能各方面的规格描述。 第三章p l c 设需驱动框架的实现 第三章p l c 设备驱动框架的实现 本章将详细讲解本课题p l c 设备驱动框架的设计与实现。概述部分给出程序总体结构 和主要数据结构、类的设计。然后依次详细说明接口函数和主要功能的实现。 3 1 概述 3 1 1 程序结构 我们将整个p l c 设备通讯驱动框架的结构主要设计为四部分。如图3 1 所示。 i 飘疋设备驱动与m c g s 豹接口 i t i l ll li l l 毒 lp l c 界面模块lp l c 基本数处理 i ( d e v p a g e ) 穰j 敷c d e v b a s ) l jl i 。 jl ll i i 善 i 通道数据读写模块 i d e v i j r i p 蜓硬件设备 图3 1 程序模块划分 第一部分是提供给m c g s 的1 5 个接口函数。这1 5 个函数的作用就是使组态软件能够 认出本程序,并且利用程序读出的主站和从设备的参数构造设备组态的对话框。这些函数 的名称、参数是由m c g s 主程序确定的,具体的函数的实现需要自己实现。这部分的实现 将在3 2 节中详细讲解。 第二部分是界面模块。包括与生成设备组态对话框有关的c d e v p a g e ,c d e v p a g a d d , c _ m c g s g r i d , c l n f o p a g e 四个类。c d e v p a g e 类和c d e v p a g a d d 类是通过添加对话框控件, 第三章p l c 设备驱动框架的实现 添加对应的函数的方法实现的,比较简单。c d e v p a g e 类用来构建设备属性对话框, c d e v p a g a d d 类用来构建添加参数设置对话框。另外,c l n f o p a g e 用于构建实时信息对话 框。c _ m c g s g r i d 类中的函数的作用仅限于在c d e v p a g e 类里对话框控件中用到的 m c g s e d i t g r i d 的a c t i v e x 控件中使用,这个类也是通过调用m c g s e 提供的自动化方法实 现的。 第三部分是对数据进行处理的c o w n e r o b j c c t , c o w n e r a r c h i v e , c d e v b a s 三个类。 c o w n e r o b j e c t 类是为了流化而设计,作为各个需要流化的类的基类。c o w n e r a r c h i v e 类的 功能就是对数据的流化c d e v b a s 类中主要有2 5 个成员函数,实现实时数据的采集 ( m l c o l l e e t d e v d a t a 0 ) 、数据的解析( m t e x p l a i n c o m m b t y e d a t a 0 ) 、数据的转化 ( s v r d o u b l e 2 s t r 0 ,s v r s 缸2 d o u b l e o , s v r h b y t e 2 s t r 0 ,s v r s 血2 h b y t e ) , d e vd a t a 结构的初始化 ( m f c h e c k d e v d a t a l n i t o ) ,d e v b l o e k 和d e v r o w 的初始化( m f l n i t b l o e k a n d r o w 0 ) 等针对开发 人员设计的接口。 第四部分是通道数据读写模块。包括c d c v s c r v e r ,c d e v b l o e k , c d e v r o w , c d e v t a b l e 四个类。c d e v s e r v e r 类主要含有1 7 个服务型成员函数,完成对串口的读写操作,对组态后 的参数进行存储等操作。并且还含有一些工具函数。c d c v b l o c k 中主要实现分块的操作。 c d e v r o w 和c d e v t a b l e 类对通讯的数据进行组织,并且其中一些函数的作用是控制在 c d e v p a g e 类和c d e v p a g a d d 类里面进行属性值以及属性名称、数目等参数的实现。 另外还有程序和m c g s e 通过的自动化接口进行通信的两个自动化客户端类: i d a t a c e n t r e 和i m c g s s e t ,这两个类是通过由自动化客户端的类c o l e d i s p a t c h d r i v e r 派生得 到的,能够利用m c g s e 提供的自动化服务器端的方法和属性。其中,i m c g s s e t 用于组态 软件的组态环境,

温馨提示

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

最新文档

评论

0/150

提交评论