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

基于开放式数控系统平台的软件PLC

发布时间:2014-09-03 作者:尚 靖 周会成 陈吉红  来源:万方数据
关键字:开放式 数控系统 PLC 
本文设计了基于Linux数控系统的PLC程序执行机和PLC程序的描述模型,并设计了PLC程序的开放性通用可执行数据结构。开发了梯形图语言的图形化编程环境,实现了梯形图草图的绘制、修改和保存等编辑功能。在华中Linux数控系统平台上开发了PLC程序执行模块。通过在数控机床主轴控制中的应用实例,说明了图形化编程环境的使用方法和软件PLC执行机的原理。

0 引言

  软件PLC的开发中,各编程语言模块的开发是关键环节。在IEC1131 3标准提出的5种编程标准语言中,指令语言和梯形图语言应用最为广泛。指令表语言的解析过程主要是根据编译原理,通过词法分析、语法分析及语义分析等环节,最终生成中间代码。梯形图是图形化的编程语言,其编程模块包括编辑和编译2部分,其中面向用户的编辑环境已经有很成熟的应用。另外,对于不同操作系统的数控系统,PLC程序的控制执行策略是不同,如何设计简单高效的程序执行机也是软件PLC的重点环节。以前的一些研究在一定程度上实现了软件PLC的部分功能,但都没有涉及程序的描述模型的概念,提出针对所有语言的通用解决方案。在此提出了PLC程序的描述模型和通用可执行数据结构,开发了梯形图的图形化编程模块,并设计了基于RT Linux的数控系统的PLC程序的执行机。

1 梯形图编程环境

  梯形图的编程环境包括编辑和检查2个环节。编辑的任务是提供一个编制PLC程序的工具,使之方便地完成程序草图的设计、修改、检查和储存等编辑功能。梯形图程序结构模型如图1所示。结构模型中,每个方框代表一个单元。单元类型可分为:输入单元(包括常开单元、常闭单元等。每个单元对应于输入寄存器中相应的地址);输出单元(基本功能单元、扩展功能单元等。输出单元对应逻辑运算结果输出地址);逻辑单元(主要指串联符号与并联符号,其一般不参与运算,但决定输入单元之间的逻辑关系,是逻辑计算依据);空单元(梯形图中的空白部分是空单元所处位置,空单元表示没有实际单元,但不意味没有含义。解析梯形图程序的过程中,空单元也需要加以分析,是有意义的);功能单元(包括计时器、计数器等其它实现特殊功能的单元)。模型中的最小元素是单元(即图1中的小方块),因此梯形图草图能够记录于一个二维数组lad-der_draft[MAX_ROW][MAX_COL]中。其中,MAX_COL表示图中的一列最多可以容纳的单元数量,MAX_ROW表示梯形图最多可以容纳的行的数量。数组中每个结构体成员记录着草图中每个单元的每项信息,包括单元的类型、单元寄存器的地址、寄存器类型、自然行号、列号和备注说明等。事实上,梯形图程序草图对应于一个面向对象的数组,还包括对数组的操作。对于用户,绘制草图的过程实质是对数组ladder_draft[MAX_ROW][MAX_COL]的操作过程。操作主要包括4种:De-lete cell,删除梯形图上已存在的一个单元;Deleterow,删除梯形图上的一自然行,其下的一行自动连接上;Undo,撤销上一次的删除操作;Redo,解除上一步的撤销操作。梯形图程序流程如图2所示,程序经编辑环节需进行检查,检查出错误需要报错。

梯形图程序结构模型

图1 梯形图程序结构模型

  a.程序的语法错误检查。语法检查负责检查各个单元的参数是否正确。如寄存器地址是否越界、重复,计时器、计数器的设定值是否超过了限定的最大值等。当发现错误时,保存错误类型即错误所在的行号和列号。流程如图2a所示。

  b.程序的逻辑错误检查。梯形图的逻辑错误负责检查指令位置,如并联单元的顺序,输出单元是不是存在,位置是否合理等等。当发现错误时,同样提示报错,流程如图2b所示。

程序流程

图2 程序流程

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