基于PC机的软PLC的研究

更新时间:2023-06-03 12:33:02 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于PC机的软PLC的研究

华中科技大学

硕士学位论文

基于PC机的软PLC的研究

姓名:陈隽

申请学位级别:硕士

专业:机械电子工程

指导教师:冯清秀

2003.4.25

基于PC机的软PLC的研究

华中科技大学硕士学位论文

摘要

本文主要研究软PLC的工作原理和系统结构,重点是梯形图和指令表语言的处理算法以及两种语言之间的互相转换算法。围绕着该系统的设计,课题包含以下主要工怍:软PLC总体结构的研究、梯形图模型的建立和处理、指令表语言解释处理器、梯形图和指令表语言的互换算法。

梯形图程序是一种用于由继电器、开关、线圈等组成的顺序控制系统编程的语言。首先把梯形图程序简化为二值逻辑系统,在此基础上利用矩阵方面的数学知识对梯形图进行逻辑分析处理。

指令表源程序也是一种类似高级编程语言编写的程序,其编译过程与其它高级语言的编译过程相似,要用编译原理的方法来实现。但是指令表程序又有自己的特点,本文根据编译原理的知识,充分利用STL技术实现了指令表语言解释编译器。

梯形图程序用图符来表示操作指令,用图符的串并来表示指令之间的运算关系。梯形图的这种结构非常类似于数据结构中的网络拓扑图,可以按照一定的准则把梯形图抽象为网络拓扑图,再对网络拓扑图进行拓扑排序实现梯形图向指令表语言的转化。

将指令表程序转换成梯形图,就是用与指令相对应的连接方式将各个软元件对应的图符连接起来。本文采用二叉树结构来表达各指令间的逻辑关系,以此结构为中介将指令和梯形图联系起来,实现从指令到梯形图的转换。

/整个系统遵循软件工程的开发思想和面向对象的建模方法进行设计,使得系统l、

结构清晰、修改调用方便,代码重用度高。

本文最后展望了本课题的发展并提出了今后的研究重点。1广关键词:软PLC-梯形图指令表、解释编译器、实时控制

基于PC机的软PLC的研究

华中科技大学硕士学位论文

Abstract

1-heworkingprinciplesofsoftProgrammableLogic

structureisControllers(PLC)anditssystemdiscussedinthepaperEspecially,theprocessingofLadderDia野am(LD)andInstructionList(IL),translationalgorithmbetweenthetwolanguagesisdiscussedindetailTheresearchinvolvesofthestudyOnthewholestructureofsoftPLC,themodelconstructionofLDanditsprocessingalgorithm,thecompileinterpreterofILandthetranslationalgorithmbetweenILandLD

TheLDistheprogramminglanguageforthesequencecontrolsystem,composedoftherelays,switches,wiresetc.AftertheLDprogramissimplifiedintotwo—valuelogicalsystem,itcanbelogicallyanalyzedandeffectivelyprocessedbythematrixknowledge

q-heILprogramissimilartotheprogramwfiaeninadvancedprogrmnminglanguageltsprocessresemblesthatofotheradvancedlanguages,whichisrealizedbythecompileprinciples.However.ILprogrmnhasitso、Ⅳncharacters.Therefore.thecompile—interpreter

onofILisimplementedbytheStandardTemplatekibrao'(STL)basedcompileprinciples

TheLDpresentsthefunctionwithsymbolsandshowstherelationshipbetweentheinstructionswithseries—parallelconnections.ThestructureoftheLDisverymuchlikenettopolo毋calgraphicindatestructureTheLDcanbeabstractedasnettopologicalgraphicaccordingtosomerulesThetopologicalsortinnettopologicalgraphicisusedtorealizethetranslationfromtheLDtotheIL

ThetranslationfromtheILtOtheLDactuallymeanstolinkthesymbolsaccordingsomerulesInthepaper,binarytreestructureisusedtoexpressthelogicrelationshipbetweentheinstructions.Thisstructure

LDtorealizetheirtranslationservesasamediumthatlinkstheinstructionand

ThewholesystemisdesignedfollowingsoftwareengineeringdevelopmentthoughtandObject—OrientedModel(OOM)Sothe

SOHI'Cestructureofthesystemisclear,convenientformaintaining.AndthecodeishighlyreusableⅡ

基于PC机的软PLC的研究

华中科技大学硕士学位论文

Intheend,lookforwardtothedevelopmentoftheresearchandputforwardwhatwouldbefocusedoninthefutureresearch.

KeyWord:softPLCLadderDiagramInstructionListCompileInterpreter

Real.TimeConla'olllI

基于PC机的软PLC的研究

华中科技大学硕士学位论文

1绪论

1.1课题来源、目的及意义

本课题是教育部远程教学项目的一个组成部分。

可编程逻辑控制器PLC(ProgrammableLogicalController)是微机技术与继电器常规控制技术相结合的产物,是在顺序控制器和微机控制器的基础上发展起来的新型控制器,是~种以微处理器为核心的用作数字控制的专用计算机“1。工作时,逻辑运算、顺序控制、定时、计数、算术运算等控制功能以一种系统指令的形式存储在存储器里,以微处理机为中心,根据用户编写的程序来控制生产过程。3。

软PLC(SoftProgrammableLogieController)是一种基于PC(PerSonalComputer)机的软逻辑控制软件”。,具体来说就是在PC机现有硬件平台和现代操作系统的基础上,采用开放式的软件控制技术,使一台标准的PC机具有传统PLC全部功能的过程控制器。工作时,利用I/0输入模块采集现场信号,再由软PLC处理模块根据用户编写的程序对信号进行处理,最后通过输出模块完成相应的控制任务。…“1

国际上日益流行的自动化正朝着PC.basedControl“’方向发展,PC.basedContml,顾名思义就是基于汁算机控制。广义上看,PLC、DCS和工业现场总线都是PC-basedControli】,但这里要介绍的是其狭义定义。这里没有上位机的概念,PC机作为控制主机或作为监控站与系统完全结合成一个整体,通过以太网或工业现场总线的方式,在计算机上直接透明控制和操作lJO设备。让PC机代替传统PLC的CPU,不仅可以完成各种逻辑控制、运动控制,还可以实现HMl人机操作界面、历史记录、报警管理、配方功能、续效分析、设备点检、分段控制、标志识别、智能专家等传统PLC难以达到的功能。

传统PLC可靠性高、抗干扰能力强,适用于恶劣的工业控制现场,在工业控制领域得到了广泛的应用。但是传统PLC的生产厂家众多,各种机型互不兼容,价格昂贵,没有明确一致的标准,在编程元件的种类、数目、编程语言等方面各不相同。

基于PC机的软PLC的研究

华中科技大学硕士学位论文

以往各个生产厂家的产品不仅硬件各异,其软件编程也是五花Jkf3,比如梯形图是PLC使用最普遍的编程方法,但在图形符号、I/o点编号、内部继电器等元件编号图形构成等方面各不相同。对于用户而言,每使用一种PLC时,不仅要重新熟悉其硬件结构,还必须重新学习软件编程的方法和规定;对于制造商丽言在软件编程上投入大量人力、物力也是令人头痛的事;对于企业而言,经常由于引进成套设备的原因,或出于特殊功能要求的考虑,购买了不同生产厂家不同机型的PLC,然而它们互不兼容,这给他们的使用、开发和维护带来极大的不便。因此,用户对软件编程标准化的呼声很高。。1

随着传统PLC缺点的日益暴露和计算机技术的快速发展和广泛应用,人们逐渐认识到传统PLC的通用性和兼容性不好以及价格昂贵制约了其快速发展,同时由于工业自动化控制领域的国际标准IECll31.3。91的推出和实施,打破了以前各PLC生产厂商产品互不兼容的局限性,按照这个国际标准,充分利用PC机的硬件资源和软件资源,全部用软件来实现传统PLC的功能,这就是国际上出现的高新技术--SoftPLC技术。

另外,PLC在保证运行稳定性和可靠性的同时,充分发挥网络功能在控制领域的重要作用和意义,用户不仅可以把PLC加入现有的分布式控制网络中,实现基于PLC的分布式控制网络,而且可以方便的在控制室或者其它任何地方通过网络来检测和控制设备的运行。““工业自动化控制系统的网络结构发展越来越分散化,同时系统越来越复杂,内部的连接越来越高速化紧密化,对驱动器和用户接口的要求也越来越高,传统的可编程控制器PLC和现场总线技术已难以适应系统拓扑结构的分散化需求。

如果能以一个软件实现传统PLC的全部功能,并用图形方式实现风格一致的编程、调试,这不仅可以在众多应用场合取代传统型PLC,而且可以取代众多的PLC编程调试软件,实现不同PLC应用程序在功能相同前提下的相互转换。另一方面,从技术应用角度看,软PLC成本低,性价比高,应用领域广泛,既可用于逻辑控制中,例如机床控制、电梯控制、起重机控制等电器控制领域中,又可用于模拟量控制领域,如P1D运算的闭环系统控制等,因此具有良好应用前景。

本文的目的在于通过对软PLC关键技术的研究,结合IECll31—3标准,用高级2

基于PC机的软PLC的研究

华中科技大学硕士学位论文

语言:矸发出系统原型,以对软PLC技术的发展起到推动作用,对以后PLC的软件实现和离线仿真软件的设计也有较好的参考价值。

1.2国内外研究概况

1.2.1PLC的发展“1m:

虽然PLC问世时间不长,但是随着微处理器的出现,大规模,超大规模集成电路技术的迅速发展和数据通讯技术的不断进步,PLC也迅速发展,其发展过程大致可分四个阶段:

1.早期的PLC(60年代末一70年代中期)早期的PLC一般称为可编程逻辑控制器。这时的PLC多少有点继电器控制装置的替代物的含义,其主要功能只是执彳亍原先由继电器完成的顺序控制、定时等。在硬件上以准计算机的形式出现,在I/0接口电路上作了改进以适应-E_qk控制现场的要求;在软件编程上,采用广大电气工程技术人员所熟悉的继电器控制线路的方式一梯形图。早期的PLC的性能要优于继电器控制装置,其优点包括简单易懂、便于安装、体积小、能耗低、有故障指使、能重复使用等。PLC特有的编程语言一梯形图也~直沿用至今。

2中期的PLC(70年代中期一80年代中,后期)在70年代,微处理器的出现使PLC发生了巨大的变化。美国、日本、德国等一些厂家先后开始采用微处理器作为PLC的中央处理单元(CPU),使PLC的功能大大增强。在软件方面,除了保持其原有的逻辑运算、计时、计数等功能以外,还增加了算术运算、数据处理、传送、通讯、自诊断等功能。在硬件方面,除了保持其原有的开关模块以外,还增加了模拟量模块、远程11'0模块、各种特殊功钷模块,并扩大了存储器的容量,使各种逻辑线圈的数量增加,还提供了一定数量的数据寄存器,使PLC的应用范围进一步扩大。

3、近期的PLC(80年代中、后期--90年)进入80年代中、后期,由于超大规模集成电路技术的迅速发展,微处理器的市场价格大幅度下跌,使得各种类型的PLC所采用的微处理器的档次普遍提高。而且,为了进一步提高PLC的处理速度,各制3

基于PC机的软PLC的研究

华中科技大学硕士学位论文

造厂商还纷纷研制开发了专用逻辑处理芯片。这样使得PLC软、硬件功能发生了巨大变化,成为机械工业自动化的三大支柱之一。

4、PLC的最新发展动态。其中有两个趋势,一是网络化技术的发展,PLC网络系统己经不再是自成体系的封闭系统,而是迅速向开放式系统发展,可以与上位计算机管理系统联网,实现信息交流,成为整个信息管理系统的一部分:另一方面,现场总线技术得到广泛的采用,PLC与其他安装在现场的智能化设备,按照同一通信规约互相传输信息,由此构成一个现场工业控制网络。二是PLC向高性能小型化发展。PLC已不再是早期那种只能进行开关量逻辑运算的产品了,而是具有越来越强的模拟量处理能力,以及其他过去只有在计算机上才能具有的高级处理能力,如浮点数运算、PlOD调节、温度控制、精确定位、步进驱动、报表统计等。PLc与通用Pc间的区别越来越小,联系越来越紧密,因此,研究基于PC机的软PLC技术也是目前研究的一个重要方向。

1.2.2国内外研究概况“3。“

在国际市场上已有多家厂商推出符合IECll31—3标准的软PLC控制软件包,如以色列PCSoftInternational公司的WizPLC支持IECll31—3全部5种编程语言,具有位操作、逻辑操作、数学运算、数据格式转换和任务控制等功能:可执行与PLC相似的循环,读取输入点状态,执行逻辑,将结果写到输出点。WizPLC可与该公司的WizconSCADA数据采集系统紧密集成一体,执行Wizcon指令。它还支持世界上主要的现场总线协议,如FF,Profibus,CAN,DeviceNET,SDS,ImerbusS。

德国Beckhoff(倍福)公司的TWmCATPLC是TwinCAT工控软件的一部分。它是在WindowsNT40环境下的一种实时多任务PLC软件,支持IECll31—3全部5种编程语言,最多可设16个PLC任务。PLC任务可在中央处理器的CPU上执行,也可在分散的CPU上执行。

法国Schneider(施耐德)公司的ModiconTSXQuantum自动化系列产品曾因缺少符合IECll31—3标准的编程软件而推迟进入欧洲市场,但在该公司1999年产品目录中的产品已采用两种编程软件包:Concept和Modsoft。Concept是一种Microsoft4

基于PC机的软PLC的研究

华中科技大学硕士学位论文

Windows编程软件包。遵循IECll31-3标准规定的全部5种编程语言。Concept提供一个能迅速扩展配置并具有可重复利用编码特点的宽松环境,从而大大减少了控制系统用于整个设计、启动和维护的费用。Concept也支持984梯形逻辑编程,并可输入已有的Modsoft程序。用户可任意选择5种不同的IEC语言或984梯形逻辑语言的组合,以适应不同用户的要求。ModSofl是Modicon原有产品在DOS下的编程块。采用984梯形逻辑语言,用户可借助Concept将Modsoft升级至Quantum。

此外,像法国CJInternational公司的IsaGRAF软件,支持Windows环境下IECll3l一3全部5种编程语言,并将继续增加新的特征和操作环境,如UNIX、WindowsNT和OS/2。美国WizdomControlInteUution公司的Paradym31软件包支持IECll31—3四种编程语言及C语言。““

但是这些产品也有一些不足,如德国Kw—SoftWare公司的M【『ITIPROG

IECll3l,开发环境为非集成化的多窗口界面。

1.2.3wt32不支持五种编程语言之间的相互转换;法国CJ公司的1SaGRAF不完全符合国际标准IECll31.3标准编程语蕾”。19

131—3标准是有关可编程序控制器的硬件、安装、试验、编程、通讯等方IECl

面的国际标准。它共分5个部分,IECll3l一3是有关编程的标准。该标准共规定了5种编程语言,其中3种是图形化语言,另外两种是文本化语言。图形化语言有梯形图LD(LadderDiagram),顺序功能图SFC(SequentialFunctionChart),功能块图FBD(FunctionBlockDiagram)。文本化语言有指令表IL(InstructionList)和结构文本ST(StructuredText)。5种编程语言各有特长:

顺序功能图是一个相对高层的图形语言,使用步,动作、转换、分支的状态语言,提供了总的结构并与状态定位处理或机器控制应用相互协调。它用图解的方法来定义一个顺序,类似流程框图。

功能块图包括数学运算、PID控制、双稳、比较.转换、计时/计数、逻辑、通讯、诊断等功能。功能块图用来将功能块组成功能块网,网上的每一个功能块处理多个输入变量,并提供一个或多个输出,因此功能块图类似信号流程图。它提供了一个5

基于PC机的软PLC的研究

有效的开发环境,特别适合于模拟量过程控制的应用。用户还可用简单的功能块图自行构成复杂的功能块,装入功能块扩充库,以扩充功能块图的编程功能梯形图类似使用继电器时的电气原理图,不仅对开关量的顺序控制、逻辑控制特别适用,而且还具有把功能块图指令载入梯形图的能力。

结构文本是一种类似Basic或Pascal高级文本语言。它常用于那些原来在计算机上用高级语言编写的程序,是高级语言向控制领域扩展的例子,最适合复杂算法和数据处理,如过程的初始化或一些包括复杂数学运算的过程计算。

指令表与汇编语言相似,是一个布尔指令集,为优化编程提供了一个环境,常用于自行编制一些没有标准功能块的特殊算法。IEC并不要求每个产品都运行上述全部5种语言,可以只运行其中一种或几种,但这几种语言必须符合标准。

1,2.4C++和STL程序开发技术。”。

在这里,有必要提及一下C++程序开发技术和STL泛型库,因为研究过程中的核心算法都是用c++结合STL泛型库来完成。

STL(StandardTemplateLibrary,标准模板库)它是由AlexanderStepanov、MengLee和DavidRMusser在惠普实验室工作时所开发的~个复用程度极高的组件库。STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。

.在实际的开发过程中,数据结构本身的重要性不会逊于操作于数据结构的算法的重要性,当程序中存在着对效率要求很高的部分时,数据结构的选择就显得更加重要。经典的数据结构数量有限,但是我们常常重复着一些为了实现向量、链表等结构而编写的代码,这些代码都十分相似,只是为了适应不同数据的变化而在细节上有所出入。STL容器就为我们提供了这样的方便,它允许我们重复利用已有的实现构造自己的特定类型下的数据结构,通过设置一些模版类,STL容器对最常用的数据结构提供支持,这些模板的参数允许我们指定容器中元素的数据类型,可以将我们许多重复而乏味的工作简化。在验证论文算法的过程中,可以充分利用STL提供的这种便利,提高开6

基于PC机的软PLC的研究

发效率。

1.3课题研究的主要内容

本课题的主要研究内容是软PLC的软件系统架构和梯形图语言及指令表语言的正确建立和实现部分。系统主要包含以下模块:

第~个模块是软PLC的编辑系统,主要功能是在YO接口卡和伺服控制卡等硬件基础上完成用户的软件编程任务以及信号的定义。

第二个模块是梯形图语言的处理。根据梯形图语言的特点和相关的数学建模的知识,对梯形图语言提出了一种较好的数学运算模型,并用软件进行了验证测试,在此基础上实现向指令表语言的转化。

第三个模块是指令表语言的解释子模块。首先分析指令表语言的关键指令和相关的操作数,再结合编译原理的知识,对指令表语言进行词法分析识别出正确的指令,再对识别出的单词串进行语法分析,识别出一个合适的操作指令,再对指令进行语义分析,保证程序的正确执行,在此基础上实现向梯形图程序的转化。

第四个模块是动画仿真模块。主要测试用户开发的程序是否和用户的需求相一直,并根据试验结果对控制软件作进一步的完善。7

基于PC机的软PLC的研究

华中科技大学硕士学位论文

2软PLC系统总体结构的研究及设计

软PLC(SoftPLC,也称软逻辑SoftLogic)是一种基于PC机的软件控制系统,它具有硬PLC在功能、可靠性、速度、故障查找等方面的特点,利用软件技术将标准的:亡业PC转换成全功能的PLC过程控制器。软件PLC综合了计算机和PLC的开关量控制、模拟量控制、数学运算、数值处理、网络通信、PID调节等功能,提供强大的指令集、快速而准确的扫描周期、可靠的操作和可连接各种I/O系统及网络的开放式结构。所以,软PLC提供了与硬PLC同样的功能,同时又提供了基于PC控制系统的各种优点。

整个系统在分析现有的计算机控制技术和硬PLC的工作原理的基础一k,来研究软PLC的工作原理和总体结构,在考虑以后系统的开放性的基础上给出软PLC的具体解决方法。IECll31—3标准“””1规定了5种可选的PLC标准语言。其中,语句表语言和梯形图语言以其简单易用而得以广泛应用,因此研究梯形图语言和语句表语言的模型建立和相互转换算法,对实现软PLC系统具有重要的意义。

2.1传统PLC的工作原理心”25

在讨论软PLC的工作原理以前,首先需要了解一下传统PLC的工作原理。

2.1.1传统PLC的硬件结构

如图2.1所示,传统PLC主要由中央处理单元CPU、存储器、输入、输出等部分组成,各部分之间采用总线连接。

(1)中央处理单元(CPU)8

基于PC机的软PLC的研究

华中科技大学硕士学位论文

一…一……——…‘………一………一……。……一………一、

}本体部分;

图2.1PLC的硬件结构

中央处理单元(CPU)是PLC的控制中枢。它按照PLC系统程序赋予的功能接收并存储从编程器键入的用户程序和数据;检查电源、存储器、I/0以及警戒定时器的状态,接收现场各输入装置的状态和数据,并分别存入I/0映象区,然后从用户程序存储器中逐条读取用户程序,经过命令解释后将逻辑或算术运算的结果送入I/0映象区或数据寄存器内。等所有的用户程序执行完毕之后,将I/0映象区的各输出状态或输出寄存器内的数据传送到相应的输出装置,如此循环运行,直到出现故障或接收到停止命令。

t:2)存储器

PLC的存储器用来存放程序和数据,分为系统程序存储器、用户程序存储器和变量数据存储器。系统程序存储器存放系统软件;用户程序存储器存放应用软件;而变量存储器存放PLC的内部逻辑变量。

(3)输入输出接口

输入输出接口是CPU与工业现场装置之间的连接部件,是PLC的重要组成部分。输入接口的功能是采集现场各种开关接点状态信号,并将其转换成标准的逻辑电平:输出接口负责将运算结果输出到各种负载。

(4)编程器9

基于PC机的软PLC的研究

编程器用于用户程序的编制、编辑、调试、检查和监视,通过通信端口与CPU联系,完成人机对话连接。

2.2.2传统PLC的扫描工作方式

PLC运行时,工作过程一般分为三个阶段:输入采样、用户程序执行、输出刷新。

图2.2PLC运行过程

(1)输入采样阶段

在输入采样阶段,PLC以扫描方式依次读入所有输入状态和数据,并将它们存入I/O映象区中的相应单元内。

输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/0映象区中相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。

(2)用户程序执行阶段

在用户程序执行阶段,PLC总是按由上而下的顺序依次地扫描用户程序(梯形图)。在扫描梯形图时,先扫描梯形图左边的由各触点构成的控制线路,并按先左后10

基于PC机的软PLC的研究

右、先上后下的顺序对控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态;或者刷新该输出线圈在I/O映象区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。即在用户程序执行过程中,只有输入点在I/0映象区内的状态和数据不会发生变化,而其他输出点和软设备在I/0映象区或系统RAM存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到,F一个扫描周期才能对排在其上面的程序起作用。

(3)输出刷新阶段

当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。

为了提高工作的可靠性,及时接收外来的控制命令,PLC在每次扫描期间,除完成上述三步操作外,通常还要进行故障自诊断。每次扫描开始,先执行一次自诊断程序,对各输入输出点、存储器和CPU等进行诊断,诊断的方法通常是测试出各部分的当前状态,并与正常的标准状态进行比较,若两者一致,说明备部分工作正常,若不一致则认为有故障。此时,PLC立即启动关机程序,保留现行工作状态,并关断现有输出点,然后停机。若没有发现故障,PLC将继续往下扫描,进行编程器的通信完成相关的处理。

处理完通信后,PLC继续往下扫描,输入现场信息,顺序执行用户程序,输出控制信号,完成一个扫描周期。然后又从自诊断开始,进行第二轮扫描。PLC就这样不断反复循环,实现对机器的连续控制,真到接收到停机命令,或因停电、出现故障才停止工作。

2.2计算机实时控制系统陋2“软PLC采取的是基于通用PC机的解决方案,用于取代传统PLC,属于实时计

基于PC机的软PLC的研究

华中科技大学硕士学位论文

算机控制系统软件。因此它要求达到一般实时计算机控制系统的设计要求。

图2.3实时计算机控制系统

计算机实时控制系统是指受控制的对象或受控过程,每当请求处理或请求控制时,控制机能及时处理并进行控制的系统,要求计算机对来自生产过程的信息在规定的时间内作出反应或控制。如图2.3所示,简单的说,计算机实时控制系统通常由传感器输入信号,经计算机处理后,由驱动器完成对设备的控制。

一个完整的计算机控制系统的结构和配置如图2.4所示,各种现场工作信号通过不同类型的传感器检测,经信号变换器变换为标准电压或电流信号,由信号隔离装置输入到与计算机总线适配连接的AD输入输出接口板。模拟量输入时,做A/D转换把模拟量转化为数字量,供汁算机处理。模拟量输出时,做D/A转换把计算机处理得到的结果变为模拟信号,供执行机构去控制系统中的外部设备和现场工作过程。

计算机接收到的信号和处理结果同时也由某些专用或通用设备进行分析处理:或者,通过网络传输给相关的或上一级计算机系统,组成集控制和决策管理一体化的智能控制系统。

图2.4计算机控制系统硬件结构除了硬件结构和配置外,计算机控制系统最重要的是软件开发环境和程序设计

基于PC机的软PLC的研究

华中科技大学硕士学位论文

技术。实时控制软件有5个主要特征:

首先,具有较好的实时性,即控制系统的各个任务,包括输入、输出、控制计算和数据传输必须在确定时刻开始,在有效的截止时间停止。推理和计算的结果不仅依赖于逻辑的正确,而且依赖于结果产生的时间。

第二,系统要求具有较好的可靠性,正常情况下,系统要正确运行,同时要具有故障诊断和保护机制。

第三,因为控制系统的持久性和实时性,程序要常驻内存,集中操作系统资源。保证执行系统的响应时间,也就是具有多任务处理能力。

第四,程序必须具有及时处理随机事件的能力。

第五,程序具有一定的普遍性。所有运行程序是与外部设备联机的运行过程,而输入输出设备数量多、类型各异,因此系统软件应该能适应各种要求。

2.3软PLC的总体结构

根据以上的分析,软PLC选用可靠性较好的WindowsNT作为操作平台,以I/O板卡采集现场控制信号,采集到的信号由软PLC执行系统模块根据用户编写的PLC程序进行相应的逻辑运算,然后再将处理好的信号通过通用I/O板卡输出到工业控制现场,完成相应的控制任务。

2.3.1软PLC的硬件组成n3

软PLC的软件部分根据用户编写的程序来完成控制任务,如图2.5所示,硬件部分则负责信号的输入输出。各种现场工作信号通过不同类型的传感器检测,经信号变换器变换为标准电压或电流信号,由信号隔离装置输入到与计算机总线适配连接的AD输入输出接口板。模拟量输入时,做Aft)转换把模拟量转化为数字量,供计算机处理。模拟量输出时,做D/A转换把计算机处理得到的结果变为模拟信号,供执行机构去控制系统中的外部设备和现场工作过程。

软PLC充分利用通用PC机的资源,共享PC机的CPU和存储器等已有资源,13

基于PC机的软PLC的研究

华中科技大学硕士学位论文

利用软件来完成运算处理任务。

图2.5软PLC硬件结构图

2.3.2软PLC的软件结构

输出显示

图2.6软PLC软件模块图

如图2.6所示,系统软件主要包括两部分:开发编辑系统和执行系统,核心部分是执行系统,要求实时控制,且具有最高优先级,运行时操作系统的其它任务不能中断执行系统的执行,因而必须在前台准确执行,而一些实时性要求不高的任务如程序的读入显示等任务,则在后台执行。另外根据需要添加动画仿真模块,以对用户程序模拟工业现场运行,检验用户程序的正确性。14

基于PC机的软PLC的研究

华中科技大学硕士学位论文

作为一个低瑞智能产品,PLC最主要的功能就是能够正确识别执行PLC指令程序,即PLC中最为重要的就是指令解释执行系统,由它负责将用户编写的程序解释为PLC执行机构能够理解的命令执行动作。作为传统PLC的替代品,软PLC的核心技:尜也是解释执行系统。解释执行系统主要包括读指令模块和解释指令模块两大功能。

读指令模块的关键技术在于,要提高读指令的容错性、代码的抵抗性。如果读指令模块仅仅能够读格式非常正规的程序,而遇到用户编程格式不太严格但无语法错误的程序时,却无法判断或是指令报错,就会大大降低软件的通用性。为此,利用编译原理技术中的词法分析和语法分析技术,并加入严格的指令内核判断,最大程度放宽非语法错误的差异程序兼容,把用户编写的PLC程序编译成解释执行系统易于识别的目标文件正确格式。

解释执行模块是整个程序的核心模块,为了保证程序的实时性和准确性,利用多线程技术编程实现。解释执行系统必须能够识别经过预处理的目标文件的指令格式,即能够提取基本指令进行执行。所以,该模块的主体就是~个复杂的智能判断模块。需要解决的关键技术有:第一,很多元件的相关指令是重合的,例如,定时器、计数器都可以使用RST复位指令,解释程序执行时需要能够判断出用户是在操作哪一种元件,这就需要利用面向对象技术建立很好的元件类来实现:第二,对关联指令的正确执行,例如移位指令,需要依次设定数据输入端、移位脉冲输入端、复位端分六条指令来实现,简单的依次解释执行就难以正确执行,为此需要很好的监控关联指令的执行。

系统中实时性任务和非实时性任务的划分和优先级的确定:其中实时性任务根据规定的时间执行,并按照规定的循环时间严格执行,同时还要处理软件运行环境中可能出现的各种异常,具有很高的优先级;非实时性任务不受时间限制,主要是界面管理和动态显示等任务。

2.4软PLC的工作原理““i“…“

我们可以先由一个例子程序来解释软PLC的工作原理:15

基于PC机的软PLC的研究

华中科技大学硕士学位论文

图2.7梯形图

以上为最简单的梯形图程序,表示:继电器触点X001和X002同时闭合时,继电器线圈Y001动作;继电器触点X003和X004有一个闭合时,继电器线圈Y002动作。,

用软PLC时,需要外加I/O输入输出模块,将现场信号转换成PC机可接受的信号电平,同时可以把PC机的信号电平转换成现场控制部分所需要的电平。一般采用通用的YO输入输出模块以提高系统的可靠性和性价比。

以图2.7所示梯形图为例,可以提出一个简化的软PLC模型来完成同样的控制任务。其中输入继电器X001、X002、X003、X004与输入端口连接;而输出继电器Y001、Y002与输出端口连接,具体如图2.8、图2.9。

}7{615}4{352}1j0;l —rr--J——-——-l---———i----。。‘£。----—。l。‘—,---L。。‘。—— i-。_J

fL——Y002

图2.8输入端口L——~Y001图2.9输出端口

我们可以用伪码写的程序来实现与梯形图程序同等的控制功能:

cOnStON=true;OFF--false;

enum

enum

enulllInputTable{X001,X002,X003,x004};//输入映象表OutputTable{Y00l,Y002};//输出映象表//内部映象表InRelayTabel{};

voidIjLSCAN()

//输入扫描

intintemp=_inp(InBaseAddress);

X001=temp&(0x8);16

基于PC机的软PLC的研究

华中科技大学硕士学位论文

X002=temp&(Oxl0);

X003--temp&(0x20);

X004--temp&(0x40);

f嗡出

intoutpu嘲xFF;

if(Y001)output"--out'put&(0xF7);

if(Y002)output--output&(0xEF);

_outp(OutBaseAddress,output);

//根据继电器的性质赋初始值

voidInitialize()

“埝恕

Y00I=OFF;

Y002=OFF;

//梯形图程序解释处理部分

voidProgram_Scan()

if(X001&&X002)Y001=ON;

elseYOOI=OFF;

if(X003flX004)Y002=ON;

elseY002=OFF;

//主程序

intmain()

Initialize();

while//以一定的周期循环运行,此处属于简化处理

(17

本文来源:https://www.bwwdw.com/article/9kk1.html

Top