论文部分内容阅读
运动控制语言及其编译系统是嵌入式运动控制器关键的底层技术,对运动控制器的开放性、易用性具有重大的影响。传统的控制语言已经不能满足开放式运动控制器的发展要求,本文开发一种具有运动控制功能和PLC逻辑控制功能,结构化的高级语言形式的控制语言,并且构建了该语言的集成开发环境。 在分析研究其它运动控制和PLC逻辑控制语言以及运动控制器的基础上,定义了一种新的运动控制语言——EP语言。通过用正则文法定义词法,用上下文无关文法定义语法,文字描述形式定义了语义,最终明确地定义了EP语言。该语言采用类似C语言的形式,扩充了运动控制和PLC逻辑控制指令,支持函数和事件,具有运算能力强,结构化、易编写、通用性强的特点。EP语言能够满足多轴的运动轨迹和位置控制,数字和模拟信号I/O端口输入输出处理及逻辑控制。 EP语言编译系统采用源程序由上位机编译器编译成针对解释器的类似JAVA字节码形式的目标代码文件,下载到运动控制器中程序存储器,然后再由解释器解释执行的方案。上位机编译器工作在win2000操作系统PC机上;解释器作为系统任务构建在uC/OS-Ⅱ实时嵌入式操作系统上。解释器和操作系统共同构成虚拟机的形式,增加了解释器的可移植性。 编译器由词法分析、语法分析、语义分析、目标代码生成、符号表管理、错误处理六部分组成。词法分析根据词法分析源程序的字符串,输出标记(Token)序列。语法分析采用自底向上分析方法,根据语言语法分析标记序列,构建程序的语法树。语义分析模块前序遍历语法树,构建符号表;然后后序遍历语法树,进行语义检查。目标代码生成模块通过深度遍历语法树,根据不同节点类型产生不同的目标代码片断,最终生成整个目标代码。语法树采用结构体链表实现。符号表采用哈希表来实现。该编译器经检验可以准确快速产生目标代码。 解释器任务具有取指令和解释执行两个模块。EP语言解释器采用基于栈的运行时环境,全局存储区可以进一步分为事件入口地址区、I/O端口和轴号信息区、全局变量区。解释及其相关任务优先级从高到低为:I/O端口扫描任务、键盘扫描和液晶显示任务、数据通信任务、解释任务。 最后以VC++开发了图形界面的EP语言集成开发环境。并通过一个实际例程说明了EP程序的编程思路,并且验证EP编译系统的可行性和正确性。