五轴数控铣床软PLC控制系统的研究

来源:万方数据 作者:谢劲松 梁宏斌

点击:1642

A+ A-

所属频道:新闻中心

关键词:五轴数控铣床 PLC 控制系统

    0 引言

      随着开放式数控系统的发展,采用软件控制缩小硬件规模、降低成本是目前高端数控机床的发展趋势。软PLC以软件形式实现了传统PLC的控制功能,具有开放的体系结构、强大的网络通讯功能和更强的数据处理能力等特点。目前,国外已有成熟的软PLC产品,如:Servo Works软件中的PLC引擎模块、SOFTPLC公司的SoftPLC、西门子的SIMATIC WinAC等等。国内对软PLC也进行了研究,取得了一些进展。文献给出了一种基于DSP/BIOS嵌入式的软PLC执行系统构架,文献提出了一种基于tLC/OS.II的软PLC的实现方法,从一定程度上提升了软PLC的稳定性,但他们采用的是专用操作系统,不符合开放的要求和趋势,且软PLC控制系统的功能和稳定性与国外相比有很大差距。

      五轴数控铣床具有很高的加工精度和效率,能够一次性完成三轴铣床很难加工的大型、复杂的自由曲面,但需要其软PLC控制系统更快地做出响应。因此,性能稳定的软PLC和更快的数据传输速率非常重要。文献提出了一种基于SERCOS接口的软PLC系统,但未对软PLC运行系统深人分析,文献则详细描述了软PLC多任务的实现方法,但未给出实现函数等细节。因此,本文针对上述问题对五轴数控铣床的软PLC控制系统进行了研究。

    1 软PLC控制系统的总体结构

      1.1 软件平台的选择

      与其它开放的操作系统相比,Windows具有丰富的软件资源和极高的市场占有率,有利于多任务软件的开发。但它不是实时操作系统,无法满足软PLC实时性的要求归j。可向WindowsXP系统内核嵌入实时扩展子系统RTX(Real—Time Extension)解决实这一问题。所以本文选用WindowsXP+RTX5.0作为软PLC的开发和运行的软件平台,既符合开放的要求,又能满足数控系统和软PLC的实时性。

      1.2 软PLC控制系统的总体结构

      五轴数控铣床软PLC的控制流程如图1所示。当有加工信息输入时,首先软CNC进行分析、译码,然后将M、S、T等开关量信息交由软PLC进行处理,最后将CPU处理完的开关量信息通过I/O接口输出,通过控制主电路电器元件通断来驱动铣床部件动作。

    图1五轴数控铣床软PLC的控制流程

      软PLC控制系统由开发系统和运行系统两部分组成。开发系统是一个标准通用的开发环境,采用国际标准IEC61131.3中的五种开发语言编写用户程序,利用通信接口模块将可执行的目标代码传送给运行系统。运行系统是整个软PLC控制的核心,负责解释和执行用户程序,将开关量控制信息输出给电气部分,以驱动设备动作。

      合理的设计软PLC的结构有利于提升控制系统的稳定性。根据软件组件的思想,可将软PLC控制系统分为几个具有独立功能的模块,模块间定义规范的接口。五轴数控铣床软PLC控制系统总体结构如图2所示。

    图2软PLC控制系统结构框图

      由于软PLC开发系统只是提供一个开发环境和控制方案,而目标代码的执行是由运行系统完成,因此下面重点对软PLC运行系统各模块进行分析。

    2 软PLC运行系统的设计

      2.1 系统管理模块

      系统管理模块是软PLC运行系统的“大脑”,用于运行时分配系统资源,调度任务线程并监控系统的运行状态。在一个扫描周期内,如何调度各任务线程是保证软PLC稳定运行的关键。本文利用RTXAPI函数库中提供的RtSetThreadPriority()函数根据执行的先后顺序设定各任务线程优先级,当某一任务事件触发后,线程队列中等级最高的线程优先获得CPU时间片被执行,从而实现任务线程的合理调度。任务线程执行过程如图3图示。

    图3软PLC任务线程执行过程

      2.2 通信接口模块

      通讯接口模块用于建立软PLC运行系统与开发系统、软CNC、人机操作面板以及其它应用程序进行数据通讯任务。其中,软PLC开发系统与运行系统采用COM组件方式进行通讯,即开发系统作为客户端向运行系统传送目标代码,运行系统作为服务器端接收目标代码并反馈软PLC的运行状态。

      软PLC运行系统与软CNC、人机操作面板通过访问自创建的共享内存区单元PLC—CNCbuffer、PLC—Platebuffer进行数据交换。由Communication类来实现上述通信任务。

      2.3 存储模块

      存储模块用来保存软PLC运行过程中所需的数据、操作指令和数据地址,可表示为:存储模块=数据地址+数据+操作指令,因此将其分为三个子模块:用户程序存储模块、数据存储模块和指令存储模块。

      用户程序存储模块用于保存开发系统编译完成的目标代码。这些目标代码是C/C++语句;例如ANDx0操作对应如下C++代码:

      {strcpy(m—statement.m—basicorder.address[O],”x0”); //提取软元件X0中保存的数据m—statement.m—basicorder.funcname=INSTRUCTION—AndBit;//提供对数据Xo的操作p_execute一>pstru—fun·clist一>insertAtBack(m—statement); //更新链表数据域中的数据}

      数据存储模块用于存储输入/输出端子的状态、内部继电器、定时器的状态和功能块逻辑运算的中间结果等数据。这些数据作为全局变量供软PLC控制系统各模块进行访问和修改。在执行用户程序过程中,CPU根据指令存储模块中指令参数的地址来访问数据存储模块区,获取数据进行逻辑运算。

      指令存储模块用于存储PLC指令。每条指令对应一个C++函数,函数中封装了对数据的操作。例如:逻辑与指令对应函数ReadInputAndBit(),具体实现如下:

      2.4 程序执行模块

      程序执行模块用于解释和执行目标代码,通过调用相应的C++函数对堆栈进行操作,获取控制信息。下面以五轴数控铣床主轴正转梯形图程序(图4)说明软PLC指令的执行过程。

    图4五轴数控铣床主轴正转梯形图程序

      图3所示梯形图程序执行过程如下:

      第一步:清除堆栈stack,遇到X0串联,将X0压人栈顶;第二步:遇到xl串联,弹出栈顶元素,将xl和X0逻辑或运算的结果压人栈顶;第三步:遇到并联分支点A;创建临时变量temp=0,将栈顶元素的值赋给temp,并弹出栈顶元素;第四步:遇到)(3串联,将)(3压人栈顶;第五步:遇到X4串联,弹出栈顶元素)(3,将X4与X3进行逻辑或运算,结果压人栈顶;第六步:遇到并联分支点B,弹出栈顶元素,将栈顶元素与temp进行逻辑或运算,结果赋给temp;第七步:遇到Y0串联,将Y0压入栈顶;第八步:遇到Y1串联,弹出栈顶元素Y0,将Yl和Y0逻辑与运算的结果压入栈顶;第九步:遇到并联分支点C;弹出栈顶元素,将栈顶元素与temp进行逻辑或运算,结果赋给temp;第十步:遇到x2串联,将temp与X2逻辑与运算的结果压入栈顶;第十一步:遇到Y0线圈,将栈顶元素的值赋给Y0并弹出堆栈;第十二步:将Y0值输出,清除堆栈stack。程序执行模块不断循环解释执行软PLC指令,直到执行END指令。软PLC程序执行模块工作过程如图5所示。注意:这里的跳转指令不是指PLC系统中的跳转指令,而是指梯形图程序中复杂的并联分支块引起的跳转。

    图5软PLC解释和执行指令流程图

      2.5 I/O接口模块

      I/O接口模块是软PLC与输入输出设备进行数据交换的通道,用于将I/O板卡采集到的机床信号写进输人映像寄存器,同时将输出映像寄存器中软元件的状态输出给端子。I/O读写过程分为两步:第一,根据五轴数控铣床电气I/O端口分配表在软PLC系统内存中建立对应物理I/O节点变量,完成端口配置;第二,调用I/O接口模块内部的读写函数,在下一个扫描周期开始将软元件状态输出,完成数据交换。

      为智能读取数据和进一步提高I/O接口物理层的开放性,软PLC采用图6所示结构对I/O数据存储区的变量统一编址。

    图6按字节、字和双字方式编址

      I/O接口模块采用按位、字节、字和双字的寻址方式向读写函数提供操作数地址,并把I/O数据存储器变量区划分为6个区域,每个区域存储相应变量数据。其中,按位寻址的尾部编址采用了字节号加分隔符加位号的形式。

    3 软PLC控制系统的接口设计

      SERCOS(Serial Real—time Communication System)是一种用于CNC和数字伺服传动系统之间通信的数字接口和数据交换协议,能够实现工业控制计算机与数字伺服系统、传感器和可编程控制器I/O口之间的实时数据通信。SERCOS—III是SERCOS发展的最新阶段,采用光纤传输,速率高达100Mbit/s;可利用软件SoftSERCANS对主站进行控制,缩减了数控系统的硬件;此外还具有双环型拓扑结构¨引,增强了系统的安全性。软PLC控制系统采用sERCOS一Ⅲ接口可缩减数据采集的时间,进一步提升系统的响应能力、开放性和可靠性。基于SERCOS.III接口的开放式数控系统结构如图7所示。

    图7 基于SERCOS·Ⅲ接口的开放式数控系统结构

      图7 基于SERCOS·Ⅲ接口的开放式数控系统结构SERCOS.III采用报文形式实现主从站的通讯,报文有三种类型:主站数据报文MDT、应答报文AT和以太网报文。其工作时序如图8所示。

    图8 SERCOS-Ⅲ工作时序

      SERCOS-III主站在接收到AT后将所有报文信息存储到SofiSERCANS创建的共享缓存区。软PLC和软CNC通过指针访问该存储单元获取所需数据。类CPLCIOControl提供了访问该共享区域的接口。

    4 软PLC运行系统的仿真测试

      软4牛-3己台为WindowsXP+RTX5.0,硬件平台为PC。利用VC++6.0编辑开发的软PLC运行系统仿真界面如图9所示。运行软PLC运行系统,当点击主轴正转按钮时,所对应的软逻辑在输入映像区的状态发生改变,通过调用程序中的指令,将主轴正转控制信号输出,主轴正转指示灯亮。

      经图10所示五轴数控铣床测试,软PLC控制系统实现了对五轴数控铣床开关量的控制。

    5 结束语

      通过研究传统PLC对五轴数控铣床开关量信号的控制,利用C++面向对象技术和模块化的思想编辑开发了软PLC控制系统,实现了对五轴数控铣床开关量的控制,进一步增强了数控系统的开放性,促进了全软件开放式数控系统和软PLC技术的进一步发展。


    (审核编辑: 沧海一土)