最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能生产

软PLC逻辑控制元件图形化分析与实现

发布时间:2013-06-15 作者:代征宇 杨观赐 李少波  来源:万方数据
关键字:图形元件 梯形图 PLC 
基于大型中央空调实际运行过程中存在的能耗问题,将软PLC(Programmable Logic Controller,可编程逻辑控制器)应用于大型中央空调的节能控制系统中,针对不同的应用需求对硬件模块进行功能开发、软件管理及升级维护。基于Qt平台,针对该系统中的图形元件的创建以及功能实现进行研究,介绍了图形元件类设计、功能实现以及元件间的数据交互。从而实现系统运行的高效性与稳定性。通过实例应用,系统稳定可靠,能够很好的实现各功能模块功能。

2 图形元件类设计与功能实现

  2.1 图形元件类设计

  根据《Logix5550控制器指令集参考手册》,元件基类应定义元件预扫描函数、梯级输入函数、梯级输出函数、元件逻辑功能函数、元件输出函数等一些公有属性的函数。

梯形图元件基类的关键代码如下:

代码

  2.2 图形元件功能实现

  梯形图是由梯级和图形元件构成,用图形元件的串联或并联以及它们的位置和顺序来表示实际元件之间的逻辑关系,而元件之间的逻辑运算是通过各个元件之间的函数进行关联。在定义元件类时,把元件数据定义为私有,把元件函数定义为公有,以此方式来实现元件的功能。如图2所示。

元件间的逻辑运算方式
图2元件间的逻辑运算方式 

  以计时器计数器类中TON指令为例,

  (1)对象初始化CLogicElement*myElement=new CLogicCounterTON:

  (2)数据初始化myElement->SetDataInput(myData,output,preScan);其中myData为当前元件的数据,output为在梯形图运行中的输出值。preScan为当前元件是否预扫描。

  (3)程序执行myElement->Output();

  (4)将数据返回到存储与交换数据中间件类myElement->ModifyData(Instance);并非每个元件运行后都修改数据,因此对未修改数据的元件类此方法内容为空。

  (5)在执行中元件类数据的修改myElement一>UpdateDataValues(Instance);此方法可以将已经在存储与交换数据中间件类中更新的数据传人元件类中,在执行过程中调用,如图3为元件运算流程图。

元件运算漉程圈
图3元件运算漉程圈 

3 图形元件功能测试

  遵循软件测试原则,采用黑盒测试方法。根据《Logix5550控制器指令集参考手册》中规定的元件功能来设计测试用例,对部分图形元件功能进行测试。其中,XIC指令检查数据位是否是置位状态,当数据位置位时,则使能下一条指令并且梯级输出条件为真。CTU指令为向上计数指令,当指令被使能时加计数使能位(.CU)是清零状态,则CTU指令使计数器加I。RES指令复位TIMER、COUNTER和CONTROL结构。当RES指令被使能时。指令清零TIMER和COUNTER型的累加值和控制状态位,清零CONTROL型的位置值和控制位。如图4,其中变量2、4为元件数据初始值;to图5元件功能测试用例,其主要测试XIC、CTU、RES指令的逻辑功能是否实现。

元件数据初蟾值

  当XIC数据位为1时,梯级输出为真;CTU指令使能,累加值加1;当遍历到第二个梯级时,检测ctu_test的DN位,其值为1则使能RES指令,并清零ctu_test的累加值(.ACC)。运行结果如图6。

元件功能测试

4 结束语

  图形元件是梯形图的重要组成部分,而在编辑图形元件时,实现图形元件类的高效、简洁、高可重用性至关重要。把各种元件定义为相应的类以后,在计算机屏幕上显示元件时,程序生成一个该元件类的对象,并且这个对象的属性和函数就描述了相应的元件。程序就是通过判断或运算这些对象的属性来实现元件的各种功能的。实现了系统的高效性,减少系统代码冗余,大大提高的系统运行效率。

 
2
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。