1.2 嵌入式软PLC的软件结构
嵌入式软PLC程序包括两类:一类是编辑状态,实现PLC程序的输入和编译功能;另一类是面向生产过程的应用程序。系统软件结构由4部分组成,分别是编辑模块、编译模块、执行模块和监控模块。
2 系统关键组成部分的设计与实现
2.1 梯形图编辑器
Qt/Embedded是著名的Qt库开发商Trolltech推出的面向嵌入式系统的Qt版本。Qt/Embedded具有可移植性强和支持跨平台开发等优点。本系统采用Qt编写界面,梯形图编辑器的界面如图3所示。
2.1.1 梯形图的数据结构设计
梯形图编辑具有方便、逻辑直观的特点,梯形图编辑器借助于梯形图的内部数据结构来实现显示、插入、删除、代码转化等功能。
PLC语言中,各种元素包括单个节点(如常开触点、常闭触点等)和逻辑块(如与逻辑块、或逻辑块),它们都含有相同的操作,如插入、删除、绘图等。可以把组成梯级的各个逻辑块看成组成梯级的各个部分,把组成逻辑块的子逻辑块和单个节点看成是组成逻辑块的各个部分,符合“部分一整体”的层次结构。可以采用面向对象的设计思想,使用composite模式递归地创建树状结构。使用组合结构,能够把相同的操作应用在组合和个别的对象上。大多数情况下,可以忽略对象组合和个别对象之间的差别,简化程序代码,增强了软件的可维护性。
LadderElement是一个抽象类,为组合对象的接口。代表梯形图语言的任何一个图形元素,它既可以代表元件又可以代表逻辑块,在适当的情况下可以实现所有类共同的缺省行为,如绘图和代码转换等;LadderCell为所有元件类(如常开触点、常闭触点、输出、置位、复位)的基类;LadderBlock为所有逻辑块(如与逻辑块类、或逻辑块类等)的基类。