论文部分内容阅读
随着科学技术的发展和制造技术的进步,自动化程度更高的数控系统在制造业中占有越来越重要的地位。随着制造业竞争的加剧和计算机技术的迅猛发展,为了不断增强数控系统的柔性和适应性,数控系统也向着开放式的体系结构方向发展。随着数控技术的发展,也对数控系统中的整个运动控制核心的机床逻辑控制提出了较高的要求。传统的机床逻辑控制器都是由硬件来实现的,即硬件PLC。为了适应数控系统的发展,我们使用软件的方法来实现硬件PLC的功能,即本课题所研究的软件PLC。硬PLC采用循环扫描工作方式,逐条读取用户程序,经过命令解释后,产生相应的控制信号。因为解释执行按动态顺序重复翻译,每次都需对源程序逐条语句执行,这种重复性大大降低运行速度。软PLC采用编译工作方式优于硬PLC的循环扫描工作方式。本文以凯奇数控公司的NC110数控系统为硬件平台,以高级语言SIPROM编写用户的机床逻辑程序,用C语言编写编译程序完成对数控系统软PLC的编译系统的设计。软PLC的编译程序包括词法分析、语法分析、语义分析和目标代码生成四个阶段。本文用正规表达式描述SIPROM语言的单词符号,并利用有穷自动机原理完成词法分析任务。我们用功能强大且高效的自底向上分析法中的SLR(1) 分析法完成语法分析的任务。我们把语法分析分解为对字表达式的分析和对信号表达式的分析,提高了分析程序的运行效率。本文对语义分析采用语法制导翻译的语义分析方法来产生语义规则。在目标代码生成阶段,我们通过对机床逻辑源程序的编译,生成机器码形式的目标代码,对分析过程中产生的错误进行分析处理。我们只需要对机床逻辑源程序编译一次,以后每次直接运行编译所生成的目标代码就可以了。这样可以大大提高程序的运行效率,更好的满足数控系统的实时性要求。总之,软件PLC有着硬件PLC不可比拟的优越性,适应开放式数控系统的发展趋势。