如何实现数控系统内嵌式软PLC编辑器的设计

描述

1、引言

ANC-45M 全功能数控系统是大连机床厂高新技术开发中心与日本AVAIL 技研株式会社合作开发的立式、半闭环三轴加工中心数控系统。她使用了32 位RISC 型CPU,专用的多任务实时操作系统,改进的哈佛结构,9″彩色液晶显示器,双CPU、双主板设计,其中一个CPU 所在的主板是加工中心的控制子系统,另一个CPU 及其主板是它的输入、输出子系统,它是机床的人机用户界面。本文详细论述了数控ANC-45M 加工中心PLC 编辑器的设计与实现。

2、ANC—45M 加工中心的组成结构

两个CPU 及其主板之间用一根通信电缆线将两个主板上的RS-232 异步串行通信接口连接起来,用报文形式进行数据交换。其中交换的数据包括:MMC 侧(人机接口控制器)和CNC侧加工程序以及PLC 梯形图程序等的交换,MMC 侧和CNC 侧的实时坐标数据、机床状态参数的交换等。

3、软件系统结构

3.1 主程序算法结构

PLC 编辑器是MMC 部分的一个子程序,为了能更好地描述本文的内容,我们应首先分析一下MMC 部分主程序的设计算法,其三个主要程序模块算法如下:

(1) main 函数算法如图1 所示。

plc

图 1 Main 函数算法

(2) 任务管理模块如图 2 所示。

plc

图 2 任务管理模块算法

(3) 状态任务模块如图 3 所示。

plc

图3 状态任务模块算法

主程序为每一个子功能模块预留了对应的两个子函数,PLC 编辑器有其相应的无键处理子函数和向键处理子函数。在向键处理子函数中进行输入键值的判断处理,而无键处理子函数则进行实时状态参数的屏幕刷新处理。对于每个子功能模块,都有一个共同的特点,那就是其无键处理子程序相对于向键处理子程序较为短小。在当前子功能模块状态下、没有键值输入时就调用无键处理子函数,并且每一主程序循环周期都要调用它;当在有键值输入的情况下,就转而调用向键处理子程序。一旦有按键输入,系统是以中断方式被CPU 所接收的,它首先进行相应的预处理,然后再调用任务管理模块子程序。任务管理模块程序是通过判断当前状态变量是否为初始状态,如果是则进入相应的初始处理,如果不是则判断是否按键状态,如是则分别进入相应的分支程序。

在有按键的情况下,程序首先判断该键值的类型,如果是改变功能子函数模块的命令时,则首先调用相应的功能键值子函数模块,并送去状态变量值TASKSTART,同时把当前运行中的功能子模块放入后台等待该中断执行完后,接着执行完;如果不是改变功能子模块,而是在当前功能子函数状态下的键值输入,系统则调用该功能键值处理子函数模块,并且送去TASKRUN 状态,这样也就进入了各子程序的键值处理子程序。

3.2 操作系统

该数控系统的操作系统采用的是AVAIL 公司自行开发设计的,并已经成功应用于公司生产的绣花机上,该公司生产的绣花机多年行销中国大陆等地,已经得到实践和用户的验证和认可。该操作系统是专门为任务相对比较单一的控制系统所设计的,其中有一个非常重要的时间任务控制模块,它负责对各任务的处理分配运行时间,并对任务执行时间进行监控。我们知道,对于一个实时系统来说,系统的正确性不仅取决于计算的逻辑结果,而且还依赖于产生结果的时间。为了保证数控加工的精度,该操作系统采用一种硬实时任务的管理模式,即系统给一个特定的任务指定了一个最后的期限,而系统必须在这个最后期限之前处理完所规定的任务,否则系统就会强制中断该任务的执行。这个时间任务模块决定了该数控系统的加工精度,依赖于多种因素的制约,比如CPU 执行速度的快慢、通讯口传输速率等等。由于该操作系统功能简单、任务可预测且单一,这就为该系统可靠性更高,稳定性更强提供了根本的保证。

4 梯形图主要功能实现

4.1梯形图符号的输入和编辑

该梯形图编辑器采用软键盘按菜单梯形图编辑器[1-4]工具绘制相应的图形符号,具有增加、删除、修改等功能,操作方便。操作者在使用时,只需移动到合适的位置,然后用键盘按相应的梯形图符号,即可在该位置画出该符号,并可以标注编号。将作图窗口划分成一定间隔的行与列,使插入的图形符号只能定位在网格点上。这既不影响梯形图编辑的直观性,又使解释程序易于实现。

4.2 梯形图符号的存储和提取

每个梯形图符号是一幅位图,我们存储每幅位图的类型、位置、文本显示信息等。提取时仍按照原来的顺序绘制各幅位图。由于梯形图的行数是不能预知的,因此,对梯形图的编辑采用动态数据存储,以双向链表数据结构来记录梯形图的所有信息。由于双向链表的每个链结都具有向前和向后的指针,既能向前查找,又可向后访问,因此各类操作十分灵活方便。

4.3 语法检查

主要检查所绘制的梯形图是否符合规定的格式,如果梯形图不符合格式要求,则会给出错误信息。首先对存储好的文件进行逐行扫描,看支路是否有输出,如有则指出错误,没有则继续扫描;继续检查编号是否为X、Y、R、T等事先规定好的字母,如不是则指出错误,正确则继续扫描;然后看编号后面是否为数字,是则正确,检查数字是否小于127,是则语法检查成功,不是则报警。

4.4 逻辑检查

由于在编辑梯形图时,存储的是行与行之间的顺序以及每行中各元素的信息,并没有存储各个元素间的逻辑关系,所以检查比较困难。我们采用先把梯形图转换成语句表的方法来达到目的。本文提出了以二叉树为中心的转换方法。二叉树的特点:一个父结点有且只有两个子结点。这种数据结构用来表示逻辑关系很方便。梯形图中有序排列的阶梯,可以表示成若干有序排列的二叉树森林,通过对每棵二叉树设计遍历算法,可以唯一地得到相应指令集。

5 语句表主要功能设计与实现

5.1 MMC 部分主程序的设计原理

MMC 部分主程序采用的是主循环的总体结构,每隔大致30ms 就对各子程序模块扫描执行一次。而每一模式下的子程序又包括向键任务子程序和无键任务子程序,在主程序的每一扫描周期中,有键值输入的情况下,则运行相应的向键任务子程序,如果没有输入键值,则运行相应的无键任务子程序。在每一次循环之前,先进行模式的检查,如果当前模式已经改变,则把相应模式的子程序调入前台执行,而把在这之前运行的前台程序转入后台继续执行。

5.2 设计原理

MMC 部分main 主程序采用定周期循环读取键值的处理方式,当遇到某一中断,首先对其合法化进行判断,在其合法的情况下,将其中断子程序从后台转移至前台执行并显示之。所以,全屏幕编辑子程序采用每一个循环周期接收一个字符或一个控制指令并执行之的思路。

5.2.1 指令的输入处理

考虑到编辑器应能适应顺序输入语句表程序以及进行程序段中间某部分的修改两种情况,每输入一个指令时首先应对其合法性进行检查判断,合法的情况下,首先应将当前位置后面的所有字符后移一位,然后在当前位置处依次、前后相连地把该指令字符存放在一缓存里。在存入缓存的同时将其显示在监视器上,监视器采用的是800×600 的LCD,其普通字符模式下显示参数为50×18。字符和数字输入的算法如图4 所示。

plc

图 4 输入流程图

5.2.2 确认键的输入处理

(1)编辑功能。当一PLC 语句表程序段编辑完以后必须按下确认键才能进行下一程序段的编辑工作。一旦按下确认键,编辑器需要对该程序段依次进行查错、容错、格式化和规整化一系列处理。语法检查用户语句程序有无拼写、指令格式、指令地址越界等语法错误;语言程序逻辑检查语句表程序是否存在逻辑错误。

(2)检错功能。开发系统在将PLC程序转换为中间代码之前必须先检查PLC程序是否有语法错误。该系统为了方便PLC编程者修改PLC程序,按照梯形图的梯级顺序进行,编译过程中要进行语法检查,主要是检查所编译的梯形图是否符合规定的格式,如果梯形图不符合格式要求,则会给出错误信息,同时,在编译过程中还要校验梯形图中的信号代码与信号定义模块中所定义的信号是否一致,如果不一致,则提示该信号代码未定义。用户通过查看编译过程中所给出的错误信息,进行相应的修改,直到没有错误为止。

5.2.3 其它功能键的处理

在PLC 编程中为了方便用户进行指令的编辑,还提供了行选择、行复制、行粘贴、字选择、字复制、字粘贴,行号检索等功能。当然在进行屏幕编辑以及上面介绍的所有功能中还会遇到上、下自动移屏显示,这是每个编辑器都应具有的最基本的功能。值得指出的是:在这个编辑系统中,光标总是随着输入自动地指向下一位置处,指导用户将输入的字符输到当前位置处,光标是不能随便自由地移到屏幕的空格处。并且在行选择和字选择时均以反色形式重新在原位置处对所选内容重新刷新一遍。

6 结束语

本文提出的内嵌式软PLC 编辑器体现了数控系统的开放性要求,易于实现与硬件无关性要求,统一的数据结构易于实现深度的系统开放,方便的编程环境、灵活的编程方式可降低PLC 编程门槛,方便用户使用,另外该方法降低了系统成本。该PLC 编辑器根据输入的离散信息,在内部进行逻辑运算,并完成输入输出控制功能,完全能够满足经济型数控加工中心的要求。PLC 已成功应用于ANC_45M 经济型加工中心的数控系统设计中,随着数控产品即将销往全国各地。


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分