(机械电子工程专业论文)应用opc技术的plc控制系统仿真研究.pdf_第1页
(机械电子工程专业论文)应用opc技术的plc控制系统仿真研究.pdf_第2页
(机械电子工程专业论文)应用opc技术的plc控制系统仿真研究.pdf_第3页
(机械电子工程专业论文)应用opc技术的plc控制系统仿真研究.pdf_第4页
(机械电子工程专业论文)应用opc技术的plc控制系统仿真研究.pdf_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

山东大学硕士学位论文 摘要 o p c ( o l e f o rp r o c e s sc o n t r 0 1 ) 技术是过程控制领域中的新兴基础技术之一,它 为数据源( 如现场设备或数据库) 和与其连接的应用程序之间的接口制定了统一 的标准,使其间的数据交换更加简单化。 一 许多用p l c 进行控制的大型复杂控制系统都应用了o p c 技术,这使系统中数 据源和应用程序之间的数据交换更加简单化和标准化。但在某些非生产应用的情 况下,如训练系统操作员及系统调试时,开启整个控制系统会造成很大的人财物 的浪费,甚至造成不必要的损坏。 本课题设计了一个仿真p l c 系统。在这个系统中,包括用v i s u a lc + + 编写实 现的仿真p l c ,以及为该仿真p l c 开发的o p cd a 服务器。我们可以利用o p c “即 插即用”的特性,通过其拥有的通用o p c 接口,将仿真p l c 系统无缝连接到整个 大型系统中。在非生产应用时,o p c 客户端的监控、报表等应用软件就可以与拥 有o p c 接口的仿真p l c 系统交换数据,而不必启动实物p l c 系统从而解决了上 述在非生产应用时遇到的问题。 仿真p l c 的软件实现是根据编译原理等相关理论,对s t l 语言编写的用户程 序文件进行词法分析和语法分析,获得用户程序的语法结构,然后根据语法结构 用程序块对各项指令的逻辑进行仿真,从而实现能够根据用户程序读取输入点状 态,把运算结果写到输出点。仿真p l c 软件用一个d l l 动态链接库封装,目的是 方便与o p cd a 服务器交换仿真数据。 仿真p l c 的o p cd a 服务器是根据o p c 规范编写的。o p c 规范对o p cd a 服务器的各个对象和接口以至接口的方法都进行了框架级的规定,所以课题的主 要开发工作集中在了对接口方法的实现和与仿真p l c 程序的数据通讯上。o p cd a 服务器通过静态加载仿真p l c 的d l l ,获取仿真数据,并放在数据存储区中。o p c 客户端应用程序通过相关接口调用数据存储区或仿真d l l 中的仿真数据。 课题用一个液体加注系统做为应用实例,将其p l c 用户程序做为仿真p l c 的 输入文件代入,对仿真p l c 及其o p cd a 服务器进行了性能测试,各项运转正常, 从而验证了整个仿真系统的正确性和可行性。 关键词:p l c :仿真;c o m 技术:o p cd a 服务器 i v 山东大学硕士学位论文 a b s t r a c t o p c ( o l e f o rp r o c e s sc o n t r 0 1 ) i so n eo ft h en e wb a s i ct e c h n o l o g i e si nt h ef i e l do f p r o c e s sc o n t r 0 1 i ti st h eu n i f o r ms t a n d a r do fi n t e r f a c eb e t w e e na n yd a t as o u r c e ( s u c ha s ad e v i c eo nt h ef a c t o r yf l o o ro rad a t a b a s ei nac o n t r o lr o o m ) a n da n yc l i e n ta p p l i c a t i o n s ( s u c h a ss o f t w a r em o n i t o r so nc l i e n tc o m p u t e r ) t h i ss t a n d a r dm a k e si te a s i e rf o rc l i e n t a p p l i c a t i o n st oa c c e s sd a t af r o ma n y d a t as o u r c e t h e r ea r em a n ya p p l i c a t i o n so fo p c t e c h n o l o g yi nm a n yl a r g ep l cc o n t r o ls y s t e m s i nt h e s es y s t e m s ,d a t ac o m m u n i c a t i o ni ss t a n d a r da n dc o n v e n i e n t h o w e v e r , i ti saw a s t e a n de v e nad e s t r u c t i o no fr e s o u r c e st om a k et h ew h o l ec o n t r o ls y s t e mr u ni n n o n p r o d u c t i v ea p p l i c a t i o ns u c ha st r a i n i n gu n s k i l l e dm a n p o w e ro rd e b u g g i n gt h e s y s t e m t h i ss t u d yd e s i g n sas i m u l a t i v ep l cs y s t e m i nt h i ss y s t e m ,t h e r ea r eas i m u l a t i v e p l ci m p l e m e n t e db yv i s u a lc + + a n da i lo p cs e r v e rf o ra f o r e m e n t i o n e ds i m u l a t i v e p l c a f t e rt h es i m u l a t i v ep l cs y s t e mi sd e s i g n e d ,i ti sl i n k e dw i t hw h o l ec o n t r o l s y s t e mb yo p ci n t e r f a c e su s i n g p l u ga n dp l a y ”c h a r a c t e r i s t i c o fo p c i n n o n p r o d u c t i v ea p p l i c a t i o n ,o p cc l i e n ta p p l i c a t i o n sc a na c c e s sd a t af r o ms i m u l a t i v e p l cs y s t e m ,i n s t e a do fr e a lp l cs y s t e m t h i ss c h e m ec a ns o l v et h o s ep r o b l e m si n n o n p r o d u c t i v ea p p l i c a t i o n t h es i m u l a t ep l ci sb a s e do ns e v e r a lt h e o r i e s ,i nw h i c ht h em o s ti m p o r t a n to n ei s c o m p i l e rc o n s t r u c t i o np r i n c i p l e a c c o r d i n gt ot h i st h e o r y , w ec a nd ol e x i c a la n a l y s i s a n ds y n t a xa n a l y s i sf o ru s e rp r o g r a mw r i t t e nb yg t ll a n g u a g ea n dc a ng e tt h es y n t a x s t r u c t u r eo f p l cu s e rp r o g r a m w es i m u l a t ea l ll o g i cf u n c t i o n so f i n s t r u c t i o n sb a s e do n t h es y n t a xs t r u c t u r e ,a n dt h e nc a nr e a di n p u tp o i n t sa n dw r i t ed a t ao u t p u t s i no r d e rt o e x c h a n g es i m u l a t e dd a t aw i t l lo p cs e r v e re f f e c t i v e l ya n dc o n v e n i e n t l y , d y n a m i cl i n k l i b r a r y ( d l l ) i sd e s i g n a t e da st h ef i l et y p eo f s i m u l a t ep l c o p cs e r v e ro fs i m u l a t e dp l ci sb a s e do no p c s p e c i f i c a t i o nt h a ts p e c i f i e st h ef r a m e o fo p co b j e c t s ,i n t e r f a c e sa n de v e nf u n c t i o n s b e c a u s eo ft h i s ,w ew i l ld om o r ea b o u t s o u n dc o d ea n dd a t ac o m m u n i c a t i o n si n s t e a do fb u i l d i n gp r o g r a mf r a m e o p cs e r v e r v 山东大学硕士学位论文 一 g e t ss i m u l a t e dd a t ab yl i n k i n gi m p l i c i t l yt h ed l l o fs i m u l a t e dp l ca n dp u t ss i m u l a t e d d a t ai n t od a t am e m o r i z e r ( c a c h e ) o p cc l i e n ta p p l i c a t i o n s a l ea l l o w e dt oa c c e s s s i m l l l a t e dd a t af r o mm e m o r i z e r ( c a c h e ) o rs i m u l a t e dd l l ( d e v i c e ) b yi n t e r r e l a t e do p c i n t e f f a c e s a tl a s t ,t h i ss t u d yg i v e sal i q u i ds y s t e ma sat y p i c a la p p l i e de x a m p l e t h el i q u i d s y s t e m sp l c u s e rp r o g r a mi st a k e na st h ei n p u tf i l eo fs i m u l a t e dp l cp r o g r a mt ot e s t d e r f b n n a n c eo fs i m u l a t e dp l ca n d i t so p cs e r v e r t h et e s tr e s u l ti n d i c a t e sa l lr u nw e l l , a n da c c o r d i n 西yc e r t i f i e st h ec o l t e c t l l e s sa n df e a s i b i l i t yo f t h ew h o l es i m u l a t e ds y s t e m k e y w o r d s :p l c ;s i m u l a t e ;c o m ;o p c d as e r v e r ,v i - 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不 包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研 究作出重要贡献的个人和集体,均已在文中以明确方式标明。本声明 的法律责任由本人承担。 一 论文作者签名:墨埠日 期:坦! ! ,f 莎 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学 校保留或向国家有关部门或机构送交论文的复印件和电子版,允许论 文被查阅和借阅;本人授权山东大学可以将本学位论文的全部或部分 内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段 保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:垂乙牟导师签名: 山东大学硕士学位论文 1 1 研究背景 第1 章绪论 随着工业自动化水平的不断提高和计算机技术的迅速发展,工业控制领域的 各种新技术层出不穷。其中,有一项新技术在工业数据通信领域中发展迅速,这 就是o p c ( o l ef o rp r o c e s sc o n t r 0 1 ) 技术。 信息技术的发展使自动化系统对大范围的数据交换与信息共享的需求加强, 从而对工控系统的开放性提出了越来越高的要求。在o p c 技术没有出现之前,我 们要为每一对需要交换数据的应用程序和设备单独开发设备驱动程序,驱动程序 的开放性和通用性很低。o p c 技术的出现,使我们只需为某个设备开发一次驱动 ( 即o p cd a 服务器) ,任何拥有o p c 客户端的应用程序都能与其进行数据交换。 o p c 技术适应了工业数据交换的需要,实现了不同厂商生产的软硬件之间的系统 集成与数据交换。因此,它迅速成为工业数据交换的有效工具。 在工业控制装置中,可编程控制器p l c 作为工控领域的标准控制装置一直应用 广泛,特别是在大型复杂控制系统中,p l c 以其灵活、通用、可靠性高、抗干扰能 力强的优点,成为控制系统中不可替代的主角。当o p c 技术出现以后,许多大型 厂矿企业都为p l c 控制系统开发o p c j 务器,使p l c 设备能通过自己的o p c j 眼务器 与处于o p c 客户端的各种应用程序方便的交换数据,而不用再为其单独开发专用 驱动程序。该控制系统的一般构成如图l l 所示“1 。 这种应用o p c 技术的p l c 控制系统结合了o p c 技术和p l c 装置的优点: ( 1 ) 在对现场设备层的控制中,p l c 通过在存储器中的程序实现控制功能,若 控制功能需要改变,只需修改程序及少量接线即可:而且,同一台p l c 还可用于不 同控制对象,通过改变软件则可实现不同控制的控制要求;同时,p l c 可在各种恶 劣工作环境和条件( 如电磁干扰、灰尘等) 下可靠工作,将故障率降至最低; ( 2 ) 在过程控制层和生产管理层中,由于应用 o p c 技术,使得p l c 等设备和 应用程序之间的软件接口标准化。我们按照o p c 标准为p l c 等设备开发o p c j 务 山东大学硕士学位论文 器,并提供统一的o p c 接口1 2 o 服务器就充当起了数据源向外发布数据的代理。各 种具有o p c 客户端的应用软件都可以通过统一的o p c 接口随时访问连接至i j p l c 控 制系统或其他软硬件的o p c f l 匣务器上的数据,实现了来自不同供应商的软硬件“即 插即用( p l u ga n d p l a y ) ”的连接。 一。太、工 画画 一p ”r o 嚣i 黧:竺。 嗍5 1 偎解。 - r fb u s d 一l 由由鼾司 _r!_t+=i,i二p=r二1r一理_皤垃_ 囱圃圆圆圃回 生产管理层 过程控制层 现场设备层 图1 - 1 应用o p c 技术的p l c 控制系统 这种控制系统的优点很多,却有一个与其他大型复杂控制系统共有的不足之 处。在系统的日常应用中,除了正常运转外,控制系统还要面临诸如在生产管理 层和过程控制层训练系统操作员及系统调试等非生产应用。由于生产管理层的应 用程序必须通过过程控制层调用现场设备的数据,每次训练系统操作员或系统调 试时,都必须开启整个控制系统。这样不但会加快系统的磨损,还会浪费大量的 人力、财力和物力,有时甚至还会造成设备的损坏。对于生产企业来说,这样既 不利于设备的维护,也不利于生产成本的控制。 1 2 课题的提出 要解决图1 1 所示的控制系统在非生产应用时存在的问题,我们先来分析一下 生产管理层和过程控制层的工作:在生产管理层上,系统操作员通过o p c 客户端 应用程序所做的工作一般是监控现场设备、根据设备的运行情况绘制趋势图或报 表。他们通过过程控制层的o p c 服务器实际上获得的就是设备运行的某些具体数 据。如果我们用软件开发一套仿真p l c 系统,用来仿真p l c 及其控制系统的功能, 模拟产生设备运行时的数据,然后为这套仿真p l c 系统开发一个o p c 服务器,那 2 山东大学硕士学位论文 么o p c 应用程序就可以直接连接这个o p c 服务器而得到仿真p l c 系统的仿真数 据。对于在生产管理层和过程控制层训练操作员等非生产应用来说,只要仿真数 据是正确的,就和真实数据没有什么不同。这就可以使o p c 客户端的应用程序任 意选择访问实物p l c 系统或仿真p l c 系统的数据,从而达到不开启实物p l c 系 统就能训练系统操作员或调试系统的目的矗跏 所构想的仿真p l c 系统接入图l - l 所示的系统后,整个控制系统就变成如图1 2 所示的架构: 一 画画画 生产管理层 过程控制层 现场设各层 图l - 2 包括仿真p l c 系统的o p c 控制系统 这样,整个系统的工作原理是:在实际生产过程中,图中左侧部分由真实硬 件组成的控制系统正常运转,处于生产管理层的o p c 客户端的应用程序可正常访 问控制系统的数据,进行数据采集;在遇到培训系统操作员及系统调试等情况下, 可只开启右侧部分仿真p l c 系统,o p c 客户端应用程序仍然可以像访问实物 p l c 系统的数据一样,来采集仿真p l c 系统的数据。软件实现的仿真p l c 系统完 全仿真了p l c 的功能,所以其产生的数据也同实物p l c 的数据一样,对于o p c 客户端来说,感觉不出数据来源的差别。这套仿真p l c 系统可顺利完成在生产管 理层培训系统操作员或系统调试等任务,又有利于成本的控制和设备的维护,故 在厂矿企业有很大的应用价值。 归纳起来,本课题的理论与实际意义有如下几点: ( 1 ) 训练系统操作员 ( 2 ) 优化系统设计 ( 3 ) 系统故障再现,发现故障原因 ( 4 ) 验证系统设计的正确性 3 山东大学硕士学位论文 1 3 相关领域的研究进展及存在的不足 许多型号的p l c 都有生产厂家为其专门开发的o p c 服务器;这些服务器中有 时也会有一个仿真p l c 函数,来仿真p l c 产生数据。但这个仿真p l c 函数实现 的功能非常少,只是一些随机数据的产生,不能读取真正的p l c 用户程序,更谈 不上根据用户程序产生运行数据了。所以,真正编写仿真p l c 程序且为其开发o p c 服务器并用于生产实践的研究不多。但o p c 技术和仿真p l c 这两个领域的研究在 国内外都有许多团体和研究机构分别进行。下面就这两个领域的研究进展及存在 的不足分别做一概述。 1 3 1 仿真p l c 的研究进展 随着生产自动化水平的提高,p l c 的应用越来越广泛。但就目前的情况看, 许多公司的p l c 提供的编程软件仅有在线监视和程序调试功能,离线仿真运行功 能只有个别品牌的个别型号的编程软件才具有。于是就出现了许多种方法来仿真 p l c 。这些方法可大体归纳为以下几种。1 : ( 1 ) 应用开关盒简单仿真一种常用仿真调试手段是在p l c 的输入模块上接 入一个包含多个不同类型开关的开关盒,编程人员在p l c 运行状态通过拨动开关 或( 和) 按按钮来模拟p l c 顺序控制系统的信号输入,通过观察p l c 输出模块的 显示二极管的状态或观察p l c 编程器上显示的继电器的o n ( o f f ) 来判断控制软 件是否正确。对于简单梯形图软件可以采用这种方法进行仿真调试;对于复杂控制 系统梯形图软件的仿真调试需要多个开关、按钮,若输入信号多且有时序要求, 采用这种方法难以达到仿真调试的要求,更不可能起到训练新工人的目的。 ( 2 ) 软件和硬件相结合的仿真另一种p l c 仿真调试方式是:微机通过r s 2 3 2 端口与p l c 连接,微机对p l c 在线编程时,把p l c 置于运行状态,此时在微机 的梯形图上可以清楚地看出p l c 运行状态及运行结果。但这种方式同样需要通过 拨动开关或( 和) 按按钮,或( 和) 在微机或p l c 上强制输入继电器o n ( o f f ) 来模 拟p l c 顺序控制系统的信号输入,当输入信号多且有时序要求时,同样也难以达 至u p l c 梯形图仿真调试的要求。在一般p l c 控制系统开发中,系统开发人员采用 山东大学硕士学位论文 以上两种方法相结合,并在系统实际运行过程中逐步完善。 ( 3 ) 双p l c 仿真有人提出了一种双p l c 模拟仿真系统,该系统采用一台p l c 作为主控器,存放控制软件;另一台p l c 作为仿真器,存放仿真软件:主控器与 仿真器通过硬件电路连接。仿真时,主控器输出相应的执行驱动信号,仿真器模 拟执行机构使输入传感器状态发生变化来实现主控器与仿真器的交互运行。该系 统可以较好地实现p l c 控制梯形图软件的仿真,但在通用性上受到一定的限制。 _ 。 ( 4 ) 软件仿真随着计算机技术的发展,已经完全能够做到只用软件就能仿真 p l c 及其控制系统。各种研究机构对于用软件实现p l c 的功能的研究比较广泛,包 括梯形图离线仿真“1 、p l c 教学仿真。1 、p l c 通用仿真及商业仿真软件等。各种仿真 用途不同,方法也不同,但实现的功能都大体相同,都是用计算机仿真模型来代 替实物模型,在计算机仿真环境中对p l c 控制系统进行设计、验证和调试。 实现仿真的方法也是多种多样。有采用l a b v i e w 的图形化编程语言开发旧,用 户在该平台上用梯形图形式的框图程序为p l c 系统建立仿真;还有用专业的建模 仿真软件s i m u l i n k 或t u b r oc 、c + + 等编程语言仿真的,但最多的还是采用目前流 行的面向对象设计的开发语言v i s u a lc + + ( 简称v c ) 进行设计。v c 功能强大,尤 其是面向对象技术,充分利用c + + 语言的封装、继承、多态、重载和虚函数等特 性,使代码和数据分离,进而程序可移植性好,可扩充性好,易于维护“1 。 虽然有许多人在做这方面的工作,甚至有商业软件可完成此项功能,但他们 的源代码却比较难得到。而在本课题中,要使软件实现的p l c 仿真程序与整个应 用o p c 技术的系统紧密结合,也拥有一套标准的o p c 接口,就必须要用到p l c 仿真软件的源代码,所以还得自己编写才能完成其他工作。 另外还有许多研究机构在开发软件p l c ( s o f i p l c ,也称为软逻辑s o f i l o g i c ) , 它与软件仿真p l c 是不一样的。软件p l c 是一种基于p c 机开发结构的控制系统, 它利用软件技术将标准的工业p c 转换成全功能的p l c 过程控制器,并具有与硬 p l c 同样的功能。1 。而软件仿真p l c 并不能从功能上替代硬p l c ,不能控制硬件 设备,它只是硬p l c 功能的仿真,是对硬p l c 在数据仿真方面的补充。软件仿真 p l c 比软p l c 的实现要简单得多,但它在实现时也可以借鉴软p l c 实现时的部分 方法,如对p l c 用户程序的解释器部分。 5 山东大学硕士学位论文 1 3 2o p c 领域的研究进展 o p c 技术的研究正式开始于1 9 9 6 年8 月,o p c 基金会的成立“1 。如今,国内 外有许多公司和团体都在从事o p c 技术的研究开发工作。o p c 在国外的发展比较 好,美国、欧洲、日本等已将o p c 技术应用于电力、交通、航空、楼宇等许多行 业。国内由于起步较晚,现在在o p c 方面的研究还比较少,应用于实际工程中的 就更少了。 o p c 服务器的开发是o p c 技术应用的一大难点。目前,国内外许多公司已开 发出o p c 服务器软件开发包,如北京华富惠通技术有限公司的h u a f uo p c t o o l k i t - - - o p cs e r v e r 快速开发工具,中国科学院沈阳自动化研究所的中科博微 n c s - s m a r t o p co p c 开发工具等。这些快速开发工具把服务器的对象和接口部分 进行了封装,能提高o p c 服务器程序的开发速度和质量,而且设计者不需了解底 层的实现细节。但快速开发工具中的某些实现部分是通过d l l 的形式封装起来, 当用户需要增加某些特定功能时会收到一定限制。许多人也选择用o p c 基金会提 供的o p c 规范直接开发o p c 服务器0 3 ,而不使用快速开发工具。这样可以选择要 实现的功能,使用灵活,但需要了解c o m d c o m 规范的许多技术细节,设计起 来难度较大。国内外这两种开发方式都有人使用。 现在各种知名的p l c 产品几乎都已经由厂家开发出o p c 服务器程序,所以大 部分p l c 都可以直接用于o p c 控制系统中。但针对仿真p l c 系统所开发的o p c 服务器程序并不多见。相比之下,为仿真p l c 系统开发o p c 服务器不用考虑硬件 的数据通讯、输入输出接口等细节,只需在各个程序模块中通过变量的方式传递 仿真数据,故开发难度有所降低。 1 4 课题研究内容 根据图1 - 2 可知,本课题实际上是解决整个控制系统图中的右侧部分一仿 真p l c 系统( 可简化为图1 3 ) ,即用软件实现仿真p l c ,然后给仿真p l c 开发 o p c 服务器,使其拥有o p c 接口,以无缝地接入整个应用o p c 技术的系统中, 方便各种o p c 客户端程序调用仿真p l c 的数据。 6 山东大学硕士学位论文 图t - 3 课题所研究的控制系统简化图 在本论文中,课题的主要内容可分为以下几方面: ( 1 ) 用编写程序软件的方法仿真实现p l c 这部分根据p l c 的工作原理及编程 方法构造仿真p l c 的总体结构,然后根据总体结构分别实现词法分析模块、语法 分析模块、指令仿真模块等程序块。 p l c 根据企业需求及实验器材选择s i m a t i cs 7 2 0 0 系列中的c p u 2 2 4 。 ( 2 ) 为仿真p l c 开发0 p cd a 服务器这部分首先探讨了开发o p cd a 服务器1 的相关理论知识,然后根据o p cd a 服务器的总体结构分步骤进行设计,包括o p c 各种对象( s e r v e r 、g r o u p 、i t e m ) 标准接口的开发实现及数据项的封装,与p l c 仿 真软件的数据交换等;最后对设计好的服务器进行性能测试。 ( 3 ) 应用实例根据前面的理论分析具体实现一个给容器加注的实例,并用通 用的o p c 客户程序调用该实例的o p cd a 服务器进行系统性能测试,以验证理论 的正确性。 数据访问服务器,o p c 服务器的核心服务器。第313 节将详细讲述开发o p cd a 服务器的理由 7 山东大学硕士学位论文 第2 章用软件仿真实现p l c 用软件仿真实现p l c 就是用编写程序的方式,来仿真实现实物p l c 的各种逻 辑功能。 要仿真实现p l c ,首先应了解实物p l c 的工作状况,掌握其输入输出原理, 然后才能编写程序来仿真,实现根据用户编写的p l c 程序进行相应的逻辑运算, 正确的输出数据。根据生产厂家的实际情况及实验室的实验条件,p l c 选取 s i m a t i cs 7 2 0 0 系列的p l c ,其工作原理及编程方法可以参见附录l 。“3 。 选取的仿真语言是v i s u a lc + + 6 0 。之所以选择v c 是基于以下几点考虑: ( 1 ) v i s u a lc + + 语言本身功能的强大、灵活等特性,足可以完成仿真p l c 的任 务。 ( 2 ) o p cd a 服务器通常是用v i s u a lc + + 开发,这里也使用它,可以不用考虑不 同开发语言的接口问题,从而可以直接在仿真p l c 程序和o p cd a 服务器程序之 间方便的传递数据,降低了工作的复杂度。 2 1 仿真p l c 的总体结构 由p l c 的工作原理及编程方法( 见附录1 ) 可以看出,软件实现p l c 的核心, 是使计算机模仿真实p l c ,根据用户程序( 如梯形图程序) 运行起来。也就是说, 将p l c 用户程序解释为软件p l c 能够理解的命令执行动作。这就需要编写一个仿 真程序,能够读入p l c 用户程序( 如梯形图程序) ,并按照p l c 的工作原理解释 用户程序,最后把结果送到仿真设备中,驱动仿真设备运行。 既然用软件实现p l c 控制系统的仿真的实质,是使计算机仿真模型能模拟仿 真实p l c ,根据用户程序( 梯形图程序或s t l 程序等) 运行起来。那么,软件仿 真p l c 的实质就是一个指令的读取、分析和解释过程。我们可以把程序分成几大 模块:第一部分是读输入模块,也就是识别用户程序的模块,这部分程序可扫描 用户编写的p l c 程序,并将其作为字符文件读入。根据编译原理,这部分也就是 词法分析模块;第二部分是语法分析模块。这部分程序从结构上识别每一种命令 语言,完成分析用户程序结构分析的任务:第三部分是指令仿真模块,这部分程 8 序按照读入的字符结构为p l c 用户程序赋予其本身的意义,实现各种指令的逻辑 功能。另外还有一个数据源存储区,用来存放各种仿真数据。最后,再给程序构 造一个窗口作为操作面板,以实现操作人与仿真p l c 程序的交互,就完成了p l c 控制系统的仿真。仿真p l c 的总体结构如图2 1 所示。 一刚拥拥l 姻l u 出一 l 程序- 程序程序程序 鼍主 ,; 、! ! 土! 一i 一翻篓; 一一_ - = = 一j 图2 1 仿翼p l c 的总体结构 整个仿真p l c 被编写成一个d l l 程序。这样做的主要目的是为了更方便的为 o p cd a 服务器程序提供仿真数据源。在0 p cd a 服务器程序中隐式联接该d l l , 这样操作系统在加载o p cd a 服务器程序的同时加载该d l l 程序。p l c 仿真 d l l 开始工作并产生仿真数据,d l l 导出函数负责把仿真数据源中需要提供给 o p cd a 服务器的数据传递出去。 p l c 用户程序选用s t l 指令表程序。这是因为读指令的词法分析程序一般只 识别字符源文件。如果把梯形图或功能块图程序作为输入源文件,则在仿真p l c 程序中还需要包括转换程序,将梯形图转换成指令表程序( 字符源文件) 。直接选 用指令表程序作为源程序,可省去这段转换程序。对于原先就以梯形图或功能块 图编写的用户程序,可以利用s t e p7 的导出功能将程序转为a w l 格式的文件,即 转变成指令表程序( 这个转换过程可单独完成,不包括在仿真p l c 程序中) 。 本章接下来的五小节分别分析程序的几个模块:词法分析模块、语法分析模 块、指令解释模块、数据源存储区和程序操作面板。 2 2 词法分析模块( s c a n n e r ) 词法分析( 1 e x i c a la n a l y s i s ) “2 “”1 或称扫描程序阶段从源代码中读取字符并形 成由编译器的以后部分( 通常是分析程序) 处理的逻辑单元。由词法分析程序生 成的逻辑单元称作记号( t o k e n ) 。记号与自然语言中的单词类似:每一个记号都是 - 9 山东大学硕士学位论文 表示源程序中信息单位的字符序列。典型的有:关键字( k e y w o r d ,字母的固定串) ; 标识符( i d e n t i f i e r ,由用户定义的串) ;特殊符号( s p e c i a ls y m b o l ,如+ 、+ 、 s t a t e m e n t _ s e q u e n c eb i t _ s t r u t = s t a t e m e n f - s e q u e n c es t a t e m e n tb i t _ s t r u t = s t a t e m e n t _ s e q u e n c eb i t _ _ s t m tb i t _ s t m t = s t a t e m e n tb i t _ s t r u tb i t _ _ s t m t = b i t _ s t r u tb i t _ s t r u tb i t _ _ s t m t 这个推导所对应的分析树如图2 7 所示。 一一一一一一、 s t a l e r n e n l s e q u e n c e s t a t e m e n t i s t a t e m e n t s e q u e n c e s t a t e m e n t b i t _ s t m t j s t a t e m e n t b i t _ s t m t i 6 打s t m t 图2 - 7 推导对应的分析树 推导的每一步都是替换的最左边的非终结符,所以这个推导叫最左推导。如 果不是替换最左边的非终结符,也就是说如果替换顺序不同,就有多种推导方式, 而这其实是一个很表面的差别。为了将终结符串的结构从推导的主要特征中抽取 一1 7 山东大学硕士学位论文 出来,同时将表面的差别按顺序分解开来,我们用语法树表示这种结构。如上面 提到的s t l 语言的b n f ,就可以用图2 8 所示的语法树表达: s t a t e m e n f - s e q u e n c e b i t - s t m r _ b i t - s t m 卜_ b i f f m f 图2 - 8 推导对应的语法树 这个语法树利用了树的标准最左孩子右同属来表示各个s t r u t 的同属连接关系。 2 3 2 递归下降分析算法 用作识别上下文无关文法结构的算法大致分成两种:自顶向下分析和由底向 上分析。这些算法也必须使用递归调用或显式管理的分析栈。自顶向下的分析算 法通过在最左推导中描述出各个步骤来分析记号串输入。这种算法不如由底向上 分析算法强大,但构造比较简单,对于手写的分析程序,自顶向下分析算法应该 是首选。自顶向下分析算法分成两类:递归下降分析和l l ( 1 ) 分析。l l ( 1 ) 分析在 实际中并不常用,而递归下降分析很常用,且它对于手写的分析程序最为适合。 所以在对s t l 语言的文法结构进行分析时,选用最常用的递归下降分析算法。 递归下降分析算法是这样定义的:将一个非终结符a 的文法规则看作将识别 a 的一个过程的定义。a 的文法规则的右边指出这个过程的代码结构:一个选择 中的终结符对应着相匹配的输入,非终结符对应对其他过程的调用,而选择本身 与在代码中的替代情况( c a s e 语句和i f 语句) 相对应。如b i ts t r u t 的文法规则 b i t _ s t m t - - - l d _ s t m t 1 d n _ s t m t a _ s t m t l o _ _ s t m t i 其递归下降程序的伪代码就可以这样编写: 1 8 一一一一 2 3 3 语法分析程序的实现 因为p l c 用户程序的语

温馨提示

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

评论

0/150

提交评论