论文部分内容阅读
数控技术在现代制造业中占有重要地位,而开放式数控系统是目前数控技术的发展方向。在开放式数控系统中,PLC模块的开发在高性能CNC系统中有着重要的作用。 本课题的主要工作就是研究代码可重用的与数控系统配套的寄生式PLC模块,探讨其在通用系统中的结构实现以及在不同CNC产品中的移植问题。 寄生式PLC是一种低成本,高性能的PLC方式,是开放式数控系统的有机组成部分,但与CNC的插补系统相对独立。所谓寄生式PLC是指PLC的功能寄生于软件模块中,该软件模块的运行依赖CNC系统的主CPU及其它硬件资源,可称CNC主系统是寄生式PLC的宿主机。无论何种宿主机,寄生式PLC的构成具有同样的组成部分与结构形式。 寄生式PLC系统的实现一般分为编辑环境和运行环境两部分。编辑环境主要包括编辑器和编译器等模块,编辑器用来输入用户程序,主要有语句表和梯形图两种编程语言;编译器把用户程序编译成中间代码。运行环境主要有逻辑虚拟机和系统服务两大模块,逻辑虚拟机是寄生式PLC的核心,它主要是执行由编辑环境编译得到的中间代码指令;而系统服务模块主要是为逻辑虚拟机的执行提供一些系统服务,例如定时器服务以及上位机通讯服务等。 在本课题中,笔者采用C语言编写PLC逻辑虚拟机的源代码。为了得到简洁、高效并且具有可移植性的源代码,笔者在其代码编写过程中考虑了如下几点:①把各种依赖于具体宿主平台的函数尽可能的集中在一个或者几个源文件中。充分利用定义文件方式表达系统参变量。②在工/O刷新函数模块中,通过一个端口配置文件来得到外部端口地址,以及与之对应的内存单元地址。③设计合理的中间代码。这是因为,从某种意义中来讲,PLC逻辑虚拟机相当于一种CPU,而中间代码是其指令,因此中间代码的设计直接影响了PLC逻辑虚拟机源代码的简洁性以及它的执行效率。