软plc开发系统设计与实现

软plc开发系统设计与实现

ID:5276479

大小:196.49 KB

页数:3页

时间:2017-12-07

软plc开发系统设计与实现_第1页
软plc开发系统设计与实现_第2页
软plc开发系统设计与实现_第3页
资源描述:

《软plc开发系统设计与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、学兔兔www.xuetutu.com1匐化软PLC开发系统的设计与实现ThedesignandrealizationofSoftPLCprogrammingsystem魏晓晴,吴旭光,牛云,郭逸,腾林阳WElXiao-qing,WUXu—guang,NIUYun,GUOYi,TENGLin—yang(西北工业大学,西安710072)摘要:本文设计完成了一种软PLC编程开发系统,并研究了各部分的设计组成与实现方法。其中重点研究了梯形图到指令表编译解算的实现过程,并提出了一种解算的新策略,以一种“节点势”的形式将梯形图图元间的逻辑关系抽象

2、为数值关系,并以此建立二叉树,遍历生成语句表。实验表明,该系统能够方便准确地完成梯形图的编辑与解算,并且可以对梯形图进行逻辑查错和规范检查。关键词:软PLC;节点势;二叉树;梯形图;语句表中图分类号:TP319文献标识码:A文章编号:1009—0134(2012)09(下)一0114—03Doi:10.3969/J.issn.1009-0134.2012.9(下).360引言2梯形图编辑模块随着计算机技术、通讯技术和微电子技术的2.1设计组成迅速发展,软PLC技术己渐渐成为国内外工业控梯形图编辑模块即梯形图编辑器,主要功能制技术研究的

3、热点。软PLC是以标准的、通用的包括梯形图图元的绘制、编辑、保存和读取,如控制器硬件平台和专用控制卡作为硬件基础,基图1所示。于工业控制计算机(IPC)或嵌入式PC(EPC),使用软件实现PLC功能的软逻辑控制系统。因此,软PLC既可提供传统PLC的相应功能,也具备PC机或嵌入式系统的各种优点,具有更强的兼容性和可扩展性。软PLC开发系统实际上就是带有编译和调试功能的软PLC编程器Ⅲ,应当支持基于IEC61131—3国际标准的编程语言。在IEC61131.3定义的5种语言中,梯形图和语句表应用最为广泛,梯形图便于工程人员编程,语句表便

4、于控制器解析执行。图1梯形图编辑模块设计组成因此,在软PLC开发系统中实现从梯形图到语句表的转换解算尤为重要。现有的解算方法有很多,2-2编辑功能的实现但往往存在结构不清晰、建立过程繁琐、复杂节梯形图元件包括常开触点、输出线圈等简单点判断困难等问题川。为此,本文提出了一种梯元件和定时器、计数器等复杂元件。由c++面向形图到语句表转换的新策略。对象的继承特性,可以抽象出一个基类作为梯形1软PLC开发系统图图元的总体接口,再以这个类为基础,派生出本文研究并实现了一种软PLC开发系统。它具体的图元子类。梯形图图元的基类定义如下:运行在PC机

5、上,既可以与软PLC执行系统组成classElement:publicCObject一个完整的系统,又可以单独仿真运行。该开发{系统按功能可分为梯形图编辑模块,编译解算模public:块,通信监控模块三大部分,以VC++编程实现。inttype;收稿日期:2012-06-15基金项目:西北工业大学研究生创业种子基金资助项目(z2012010)作者简介:魏晓晴(1988一),女,山东临朐人,硕士研究生,研究方向为嵌入式系统开发。【1141第34卷第9期2012—9(下)学兔兔www.xuetutu.coml生匐似introw,col;图

6、元间的连接点。节点势,即节点的势值。因为public:梯形图每个图元都有左右两个节点,因此每个图Element();元拥有左节点势和右节点势。如图2所示,10.0的Element(inttype,introw,intco1);左节点势=0,右节点势=1。virtual~Element();梯形图到语句表的转换解算的过程大体分为virtualvoidDraw(CDCpDC);以下四步。>;1)定义梯形图的“节点势”。按从左右,从因每个图元继承自同一个基类,拥有共同的上下的顺序多次扫描梯形图,按一定规则给每属性,因此,界面上的所有图元可看

7、作一个集合,个图元左右节点赋值。通过各图元节点势的确定,称为集合类。对图元的各种操作,如绘制、选中、就将梯形图图元间逻辑关系抽象为数值关系了,删除、存取等,都是通过对集合类的操作进行,如左右节点势都相等的图元互为并联关系。如图2这里用到的集合类为c++的CPtrArray类。所示,10.1与10.6左节点势同为1,右节点势同为2,如绘制定时器图元的过程:程序响应鼠标左两者是并联关系。键消息,新建一个定时器子类对象,将该对象加入集合类并调用定时器子类的Draw()函数实现()l。。。。绘制。示例代码如下:Timertoftof;tof=

8、newTimertof(operation,row,co1);m图2节点势示例_ptrArray.Add(toO;tof->Draw(pDC);2)定义二叉树数据结构3编译模块typedefstructTree{inti

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。