你现在位置:首页>技术论文>经验技巧>PLC通用技巧>正文
面向对象的可编程控制器程序设计方法
日期:2008-7-29 23:51:48 来源:本站整理  
点击: 作者:未知
点击【】放大字体.
WWW_PLC※JS_COM-PmLC-技.术_网

1 引言
WW.W_PLC※JS_C,OM-PL,C-技.术_网

可编程控制器PLC因其操作简单、性能可靠而得到广泛使用。各种类型的可编程控制器充斥着市场。作为可编程控制器系统的设计者来说,面对不同型号的PLC控制器要进行不同的设计。系统的整体设计和硬件设计随控制器型号的变化通常只需做很小的改动,甚至根本不必作出修改。但是对于程序设计部分来说,改动结果往往是面目全非。有时还不如根据新的控制器型号重新设计。虽然可编程控制器程序相对于各种大型计算机应用软件来说要简单得多,但是应用软件设计中遇到的问题在可编程控制器程序设计中也同样存在,如:交流问题、需求不断变化及软件复用等问题。面向对象技术正是解决这些问题的方法。本文首先总结几个常用的设计方法,然后提出一种面向对象的可编程控制器程序设计方法。
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

2 常用方法介绍
WWcW_PLCJS_COM-PLC-技.术_网

1.组合逻辑函数法
WW.W_PLCJS_COM-PLC-技.术_网

可编程控制器是随传统继电器逻辑的发展而诞生的。电气控制线路与逻辑代数有一一对应的关系。具体设计时是首先根据控制要求列出逻辑代数表达式,然后对逻辑代数进行化简,最后根据化简后的逻辑代数表达式画出梯形图,得出程序。
plcjs.技.术_网

此种方法简单直观。程序经化简后而得,显得非常精练。对于那些对电气控制线路熟悉的设计人员来说,容易接受这种设计方法。 但是,换个角度来说,程序化简后系统的冗余性和安全性不好体现。精练的程序使得调试时很难判断出问题的确切位置,并且程序很小的变化往往涉及全盘变动。另外,逻辑代数只适用于系统开关量的设计,模拟量需求助于其它的方法。然而,一个系统的开关量和模拟量设计往往是紧密结合不可分的。
WWW_PLC※JS_COM-PmLC-技.术_网

2.功能转移图法
WWW_PLCJS@_COM%-PLC-技.术_网

这是一种顺序控制系统的图解表示法。适用于处理顺序、随机等类型的问题。此种方法就象制造工厂的流水线,干完一道工序才能进行下一道工序,直至最后整个工艺流程结束。系统在设计时,首先按控制要求划分出一个个功能块,然后根据工艺流程将各个功能块进行排序,最后整合成满足用户需求的系统。
WW.W_PLCJS_COM-PLC-技.术_网

很显然,在利用这种方法编制的程序中每个功能块只与前后功能块有接口,之间仅仅存在功能转移的关系。对于柔性制造系统,它的各个组成元素需并行运行,协同动作,对资源并具有竞争性。前两种方法都是无法满足这种要求的。
WW.W_PLCJS_COM-PLC-技.术_网

3.Petri网分析法
P.L.C.技.术.网——可编程控制器技术门户

用Petri网描述的系统有一个共同的特征:系统的动态行为表现为资源(物质资源和信息资源)的流动。可编程控制器的控制逻辑充分体现了这一特点,即谁条件满足谁就得电,得电者才能动作。该方法的具体设计步骤如下:
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

(1)各个执行元件、位置检测元件、启动信号等都作为Petri的状态元素。
WW.W_PLCJS_COM-PLC-技.术_网

(2)对每个切换主令信号采用一个转换表示。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

(3)设置启动状态,并列出各个状态标志。
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

(4)设计Petri网的各个分程序。
WWW.PLCJS.COM——可编程控制器技术门户

(5)对于协调控制系统,将要协调的各个单元主令信号进行约束。
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

(6)对竞争控制系统、并发性的系统采用并行程序,循环型的系统采用与单序列程序相似的方法处理。
——可——编——程——控-制-器-技——术——门——户

(7)分配地址,列出逻辑方程,进行编程。
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

Petri 网具有图形的性质,能清楚地描述并行系统的所有现象。系统中的死锁等不安全因素都能通过可达树和关联矩阵等分析手段揭示出来。Petri网分析方法不仅可用于可编程控制器的程序设计,而且还可用于对程序中模型进行分析。然后根据构造出的模型直接设计程序,控制并行系统的运行。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

Petri网的优良特性受到人们的喜爱,但其状态空间爆炸是性能数量分析技术面临的主要问题。Petri网理论的不断发展虽然对解决状态空间爆炸带来一定的进展,但是不能从根本上解决状态空间随模型增长而指数性增长的问题,因而对复杂和大规模系统模型的分析求解仍然是极大的挑战。
WWcW_PLCJS_COM-PLC-技.术_网

3 面向对象的程序设计方法
WW.W_PLCJS_COM-PLC-技.术_网

面向对象技术在计算机程序设计中,OOA(面向对象分析)阶段建立的系统模型映射到OOP(面向对象程序设计)阶段的程序代码非常方便,因为象C++、VC++、JAVA等编程语言都是面向对象的程序设计语言。类的封装、重载、继承都很容易实现。OOA阶段建立的系统模型包括基本模型和补充模型两部分。基本模型是一个类图。补充模型提供了帮助理解基本模型的主题图和反映系统如何满足用户需求的交互图。本文首先分析可编程控制器程序设计OOA阶段的系统模型,主要涉及类图和交互图的建立,然后将建立好的类图和交互图与具体的梯形图联系起来。在面向对象分析方法中用类图来表示对象模型。在可编程控制系统中对象的发现非常方便,即就是控制对象。对控制对象进行相应的控制就是代表用户的需求。然后将系统中所有对象进行分类,相同的归为一类。
WWW.PLCJS.COM——可编程控制器技术门户

1.基类的建立
plcjs.技.术_网

最基本的控制对象无外乎就是单个的继电器,如图1实线部分。此对象的属性即是继电器的状态。服务操作是控制继电器的触点开关。
WWcW_PLCJS_COM-PLC-技.术_网

 
WWW_PLC※JS_COM-PmLC-技.术_网

图1
WWW_P※LCJS_CO※M-PLC-技-.术_网

大部分基类均可如上图所示建立,只需将属性替换掉,换成定时器或计数器等。相应的服务更名为定时器启动和定时器停止,属性则为启动定时器和停止定时器。
WW.W_PLCJS_COM-PLC-技.术_网

对于一些PID模块,我们不必考虑太多其积分、比例、微分等参数,因为这些都是人为事先设定的,其它模块以及PID模块本身都无法改变它们,所以顶多将它们设为属性,而不必为它们设置相应的服务。这样,我们对PID模块类只需根据它的输入输出添加一些服务和属性,如图1虚线部分。
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

2.派生类的建立
WWW_P※LCJS_CO※M-PLC-技-.术_网

其实,对那些稍微有一些PLC基础的设计人员来说,基类早已存在他们的脑中,拿来即可用。建立派生类才是真正的PLC程序设计的开始。
WWW_PLCJS_COM-PLC-技.术_网

——类的继承
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

在C++编程中,我们可以先编好拥有画图的基类,把共同需要的画刷、画笔、背景等都设置好,并且还可定义很多共同需要的成员变量和成员函数。具体画矩形还是圆先不管,最后在基类的基础上再派生出相应的画矩形类和画圆类。在PLC编程时继承非常容易实现,只需将基类梯形图中的继电器线包换成定时器或计数器。前头的控制逻辑不必变。如果要继承的并不是简单的一个定时器或计数器,而是另一段逻辑回路,则只需取一个基类继电器的触点引入到自己的回路中。这样即可原封不动地继承基类的控制逻辑。
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

——类的重载
WW.W_PLC※JS_C,OM-PL,C-技.术_网

当然有时派生类只想继承部分基类的逻辑,某些部分则保留自己的特色。在此只能先复制基类的逻辑图,然后在需重载的部分做小范围的修改,而保留基类的大部分逻辑。
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

——类的虚拟与多态
WWW_PLCJS_COM-PLC-技.术_网

此处与类的重载有一定的相似,都是对基类的某一小部分进行修改而派生出自己所需的类。但是为实现类的虚拟还需做一些特殊处理。在基类的构造时,将需要实现虚拟的逻辑部分独立出来,用一中间继电器代表虚拟部分实现的功能。这样以后的派生类需重载虚拟部分时非常容易实现,只需将相应的中间继电器逻辑做一些改动,不会牵涉太多其它的逻辑回路。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

3.对象模型的封装
plcjs.技.术_网

在我们把所需的基类和派生类建立好后,就要考虑对象模型的建立。对象模型即就是把对象内部的具体逻辑回路的实现细节封装起来,提供程序设计人员一个简单直观的接口。如图2实现了一个变频器控制的简单封装。 
P.L.C.技.术.网——可编程控制器技术门户

 
WWW_P※LCJS_COM-PLC-)技.术_网

 
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

图2
WW.W_PLCJS_COM-PLC-技.术_网

此变频器控制要求:开变频器时先将J1(给变频器供电的接触器)吸合,延时一段时间T1后才把B1(变频器启动接触器)吸合,启动变频器;变频器停止时,先停掉变频器,即断开B1,延时T2时间后才去断开J1接触器,断开变频器的电源。如图2实现了一个这样的变频器控制。此变频器对外的接口为:为J1、B1继电器状态提供四个属性,而外来触点BP1形成此类的两个服务。至于T1、T2定时器完全被封装在此类中,属于该类的细节。如果用到一些中间继电器,它们都可封装为内部细节。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

其实,我们为了减轻后头交互图的复杂度,完全可以进一步封装。例如:在一个化学水处理系统中,先把所需型号的阀门、泵、分析仪表等基本控制对象逻辑封装好,然后在对每一个阳床、阴床、混床(每种床都包括若干个阀门、分析仪表等)进一步封装。这个时候我们需要按照具体的工艺流程编排各个阀门、泵等的动作。该高层类接口对外提供:属性仅为一些主要部件的工作状态,从动设备的状态则无需理会;服务则可以是一系列工作方式,即阳床和阴床根据不同的工作方式实现不同的控制。封装到这一层后,我们的水处理系统的程序设计部分就已经完成了大半工作。最后只需根据不同的工作方式组织对象模型。

本新闻共2页,当前在第11 2  
P.L.C.技.术.网——可编程控制器技术门户

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行