一种基于PLC将梯形图转化为树形图进行编辑显示的方法与流程

文档序号:12549759阅读:1279来源:国知局
一种基于PLC将梯形图转化为树形图进行编辑显示的方法与流程

本发明涉及一种基于PLC将梯形图转化为树形图进行编辑显示的方法,属于高级语言编译的技术领域。



背景技术:

可编程控制器PLC是一种专门为工业自动控制而开发的通用自动控制装置。它具有可靠性高、编程简单、使用方便、功能完善、通用性好等特点,并具有在线修改功能,给控制系统带来了很好的柔性。它可以灵活地以不同的组态来适应不同控制对象、控制规模和控制功能的要求,是实现“机电一体化”较理想的控制设备。一般的PLC控制系统分为两部分,一部分为编程环境:包括梯形图编辑显示,变量编辑,工程配置,程序编译等;另一部分为运行环境:主要将编程环境编译生成工程文件解释并执行。

梯形图绘制的时候是按照二维数组进行绘制的,根据二维数组的坐标及大小,可以快速的通过程序绘制出二维的梯形图,然而,对二维数组的插入、删除操作算法非常复杂,二维数组属于线性表,平均复杂度为O(N),并且插入时需要改变后面所有元素的坐标。对二维数组删除时,同样需要修改该元素后面的所有元素的坐标,并且删除元素时会导致元素之间的关系发生变化,情况非常复杂,容易出错。

而对于树的操作则非常简单,平均复杂度为O(logN),添加元素和删除元素时逻辑关系非常清晰,操作起来不容易出错。



技术实现要素:

针对现有技术的不足,本发明提供了一种基于PLC将梯形图转化为树形图进行编辑显示的方法;

本发明把对梯形图的操作转化为对树的操作,即可快速实现梯形图的编辑,编辑完成后,将树转化为二维数组然后在进行显示绘制即可。

本发明的技术方案为:

一种基于PLC将梯形图转化为树形图进行编辑显示的方法,包括先将梯形图转化为树形图,再对树形图进行相应的插入、删除操作,最后将操作完成的树形图转化为二维数组进行显示绘制。

根据本发明优选的,将梯形图转化为树形图,包括:

(1)将梯形图的前连接关系转化成树形连接关系;所述前连接关系是指梯形图中每个元素的左侧与前一个元素的连接关系,梯形图中的第一个元素作为根节点,根节点不具有前连接关系,将梯形图所有元素的前连接表示为多叉树;对梯形图的插入和删除操作,对应多叉树的插入和删除操作,梯形图的初始状态为具有两个元素的二维数组,将二维数组的第一个元素作为根节点,第二个元素作为子节点,即可将梯形图转化为树的操作。

(2)通过梯形图的后连接关系补充完善步骤(1)得到的多叉树中各元素的输入与输出,得到树形图,所述后连接关系是指元素右侧和后一个元素的连接关系,梯形图的后连接关系在多叉树中表示为指针,即当前元素(节点)通过指针指向后一个元素(节点),由此得到树形图;对梯形图进行插入操作时,对新插入元素的前连接的操作相当于对树的插入操作,后连接指向当前选定元素的后一个元素。

根据本发明优选的,将操作完成的树形图转化为二维数组,包括

A、树形图中树的根节点坐标为(0,0),当树形图中只有一个枝干的,则判定该枝干为最右边的枝干,该树形图的最右边的枝干上的元素的Y轴坐标均为0,该树形图的最右边枝干上的元素的X轴坐标随着元素个数由1依次递增,每次递增加1,得到该树形图中所有元素的坐标,结束;当树形图中的枝干数大于1时,进入步骤B;

B、该树形图的最右边的枝干上的元素的Y轴坐标均为0,该树形图的最右边枝干上的元素的X轴坐标随着元素个数由1依次递增,每次递增加1;剩余树形图中的由右至左枝干上的元素的Y轴坐标由1依次递增,每次递增加1,以此类推,得到该树形图中所有元素的坐标,元素的坐标即为二维数组的下标。

本发明的有益效果为:

1、本发明把对梯形图的操作转化为对树的操作,即可快速实现梯形图的编辑,编辑完成后,将树转化为二维数组然后在进行显示绘制即可,该方法相对于二维数组的插入删除具有逻辑关系清晰、执行速度快、操作方便、节省内存等有点。

2、在对梯形图编辑完成后,在将树转化为二维数组,即可实现梯形图的绘制,二维数组的绘制不牵扯插入和删除操作,只需要按照顺序进行绘制即可。通过该方法,具有绘制简单,快速等优点。

3、本发明对梯形图的保存采用XML格式进行存储。相对于普通的内存存储方式,该方法具有逻辑关系清晰,读写简单,并且可以采用通用的XML操作方法进行读取和写入。具有较高的可移植性。适用于多种操作系统平台的应用。

附图说明

图1为实施例所示梯形图示意图;

图2为实施例所示梯形图二维数组示意图;

图3为实施例所示梯形图枝干分析示意图;

图4为图3中梯形图前连接关系转化为多叉树的示意图;

图5为图3中梯形图后连接关系转化为树形图的示意图。

具体实施方式

下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。

实施例

一种基于PLC将梯形图转化为树形图进行编辑显示的方法,包括:

(1)将梯形图转化为树形图,梯形图绘制的时候是按照二维数组进行绘制的,根据二维数组的坐标及大小,可以快速的通过程序绘制出二维数组的梯形图,二维数组表示如图2所示,该二维数组对应的梯形图如图1所示;

梯形图枝干分析示意图如图3所示,实线连接的线条体现的是前连接关系,是梯形图中每个元素的左侧与前一个元素的连接关系,梯形图中的第一个元素作为根节点,根节点不具有前连接关系;将梯形图所有元素的前连接表示为多叉树;通过对图3的分析,可以看出梯形图的前连接关系为树形连接关系。梯形图的前连接为一颗歪倒的树,把树扶正后如图4所示;

图3中虚线连接的线条体现的是后连接关系,后连接关系这里定义为快速连接,后连接关系是指元素右侧和后一个元素的连接关系,梯形图的后连接关系在多叉树中表示为指针,即当前元素(节点)通过指针指向后一个元素(节点),图5描述了梯形图树的快速连接关系,黑色的虚线为快速连接,该关系说明了该元素的计算结果输出给后面的那个元素。在梯形图的树形表示中,快速连接为指向另外一个节点的指针。通过该指针,可以快速的找出该元素指向的元素,通过快速连接可以计算该元素的输出和被链接元素的输入,由此得到树形图;

(2)对多叉树的删除插入操作可以通过迭代的方式进行,对数的插入删除算法均是现有技术,不做描述。

(3)将操作完成的树形图转化为二维数组,包括:

A、树形图中树的根节点坐标为(0,0),当树形图中只有一个枝干的,则判定该枝干为最右边的枝干,该树形图的最右边的枝干上的元素的Y轴坐标均为0,该树形图的最右边枝干上的元素的X轴坐标随着元素个数由1依次递增,每次递增加1,得到该树形图中所有元素的坐标,结束;当树形图中的枝干数大于1时,进入步骤B;

B、该树形图的最右边的枝干上的元素的Y轴坐标均为0,该树形图的最右边枝干上的元素的X轴坐标随着元素个数由1依次递增,每次递增加1;剩余树形图中的由右至左枝干上的元素的Y轴坐标由1依次递增,每次递增加1,以此类推,得到该树形图中所有元素的坐标。

C、梯形图的保存如果保存二维数组,则还需要对二维数组转化成树才能进行对树的操作。为了避免二维数组转化成树,直接将树保存成xml文件,载入时直接载入整颗树。多个网络表示成多棵树,多棵树组成森林,xml文件保存了整个森林。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1