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 所示。
上一篇:三菱FX-PLC定位控制模块