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

数控系统中PLC梯形图与指令表的转换算法

发布时间:2014-05-30 作者:罗海据 吴永明 梁娟  来源:万方数据
关键字:数控系统 PLC 指令表 
为了满足数控机床系统中PLC梯形图向指令表转换的要求,将梯形图的构成形式分成母线、环、半环、环母线等结构元素,利用这些结构元素检验梯形图的合法性,分析梯形图和指令表之间的关系,设计梯形图向指令表快速转换的算法。应用实例表明:该算法效率高,实时性好,能满足数控机床系统的要求。

  3.2 转换算法的实现

  梯形图的转换过程分两步完成:第一步:先从下往上,再从左到右遍历梯形图的元素,按照上面的约束条件扫描梯形图的准确性。如果遍历到竖线,接下来的触点便是起始触点,按照上面提及6 种类型判断便可得到相应的指令和压栈关系,申请PMCCMDSTR 变量pStr,将对应指令写入指向pStr 变量的成员cmd和stack TYpe之中。

  第二步:采用同第一步的扫描方法,梯形图转换的流程图如图5 所示。

转换流程图
图5 转换流程图

  3.3 转换算法的特点

 与二叉树和AOV图的转换算法相比,文中研究的数据结构和算法具有如下特点:

  (1)该算法自下至上扫描梯形图,将半环的指令链接到环母线的指令后面,并利用数据结构中的pStr成员保存,符合梯形图的执行顺序。与从上到下的扫描方式相比,减少重复扫描梯形图的次数和指令列表的频繁搜索、插入过程;

  (2)该算法主动改变X,Y 扫描某个触点的周围连接情况,与二叉树相比更容易得到单个触点的指令,算法实现过程简单;

  (3)如果每个元素的pStr 不是NULL,需要进行MAX_ROW MAX_COL 的指针链表的添加操作,存在浪费时间的缺点。但是在编辑梯形图时可以用变量保存梯形图的最大行号和列号从而极大减少遍历时间,在一定程度避免了这一个缺点。

  (4) 用数组arrayCell储存梯形图的元素,如果是空元素则存在浪费内存的情况,如果将arrayCell[MAX_ROW][MAX_COL]改为存放指针arrayCell[MAX_ROW][MAX_COL]的变量则会改善内存浪费的情况。

  综合看来,该算法增加了系统的内存消耗,但避免了AOV和二叉树算法复杂度高、转换时间长的缺点,同时采用自下往上扫描梯形图的方法,算法实现简单,适合用于机床或实时要求比较高的设备。


4 结束语

  研究探讨了梯形图的结构,用环、半环、环母线、母线等概念对梯形图进行析构,对梯形图的形状作出了约束,分析梯形图和指令之间的关系,并设计出转换算法。该算法已运用在中高档的数控系统上,体现了该算法的方便快捷的特点,对于工作人员在现场调试机床功能起了一定作用,受到用户的认可。 

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