最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能生产

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

发布时间:2014-05-12 作者:谢劲松 梁宏斌  来源:万方数据
本文通过研究传统PLC对五轴数控铣床开关量的控制过程,遵循IEC61131—3标准分析并设计了软PLC控制系统的构成,论述了运行系统各模块的功能和具体实现方法,以及SERCOS—III在软件化数控系统中的应用。最后,利用Visual C++开发了软PLC运行系统仿真界面,通过实验验证,实现了对五轴数控铣床开关量的控制。

2 软PLC运行系统的设计

  2.1 系统管理模块

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

软PLC任务线程执行过程
图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系统中的跳转指令,而是指梯形图程序中复杂的并联分支块引起的跳转。

软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个区域,每个区域存储相应变量数据。其中,按位寻址的尾部编址采用了字节号加分隔符加位号的形式。

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。