APP下载

陶瓷快速成型机数控系统软PLC模块的实现

2010-04-11陈婵娟

制造业自动化 2010年13期
关键词:成型机梯形图数控系统

高 帅, 陈婵娟, 张 强

GAO Shuai, CHEN Chan-juan, ZHANG Qiang

(陕西科技大学 机电工程学院,西安 710021)

陶瓷快速成型机数控系统软PLC模块的实现

Implementation of soft plc module for ceramic rapid prototyping cnc

高 帅, 陈婵娟, 张 强

GAO Shuai, CHEN Chan-juan, ZHANG Qiang

(陕西科技大学 机电工程学院,西安 710021)

基于开放式数控系统平台,结合GT400运控卡丰富的I/O资源,利用C++语言成功开发出了符合IEC61131-3标准的软PLC功能模块。主要包括程序编辑器、虚拟存储区及其寻址方式的设计,通过回调函数加循环的方法,实现对PLC功能的软件“封装”。能够较好地完成陶瓷快速成型机的控制要求,扩展性强,便于移植到其他数控系统中。

快速成型;软PLC;虚拟存储区;指令函数

0 引言

快速成型技术(RP)是一种全新的敏捷制造技术,在陶瓷零件的制造中具有较好的使用前景。为了进一步改善陶瓷零件的制造工艺,采取将激光薄片叠层制造(LOM)与熔融沉积成型(FDM)相结合的技术,将去除材料的雕刻机改造成为添加材料的快速成型机[1]。针对新工艺的控制要求,在构建开放式陶瓷快速成型机数控系统的过程中,开发性能优越的软PLC功能模块显得尤为必要。笔者分析了新型陶瓷快速成型机的工作原理和控制要求,在Windows操作系统下利用C++语言成功开发出了陶瓷快速成型机数控系统的软PLC功能模块。

1 新型陶瓷快速成型机的工艺流程和软PLC的控制方案

陶瓷快速成型机的工艺流程为:首先在工作台上铺设一定厚度的石蜡层,待其冷却之后,再铣削雕刻每一层的形状,以利于后继陶瓷浆料的填充。敷料运动主要分为水平运动和竖直运动。加热和搅拌在整个过程中一直进行,并且石蜡料斗和陶瓷料斗不能同时开合。在刻刀回位后,水平电机再重新工作,并且要匀速带动料斗平稳运行,保证铺料均匀。当以自动方式结束一个循环时,系统又处于初始状态[2]。因此,陶瓷快速成型机的工作过程需要丰富的I/O控制功能。

软PLC技术是一种基于IPC或EPC的将PLC的控制功能“封装”在软件内的控制技术。它不但具有传统PLC的控制功能,而且具有系统开放、开发灵活、易于与网络链接的特点[3]。根据软PLC的特点,将其分为开发系统和运行系统,两者运行于同一个IPC平台。由于GT-400运动控制器具有丰富的I/O接口资源,软PLC系统采用基于IPC的控制方案,如图1所示。

图1 软PLC系统的控制方案

2 软PLC模块的设计与实现

软PLC系统的各功能模块如图2所示。

2.1 开发系统的设计

开发系统的编辑模块用来实现PLC程序的录入,编译模块将PLC程序准确翻译成运行系统可以识别的C语言代码,通信接口负责与运行系统进行通讯。

2.1.1 编辑模块的开发:

本系统以梯形图和指令表作为编程语言[4]。由于系统的开放性,可以方便地将IEC61131-3标准中的其他三种编程语言加载到系统中来。

图2 软PLC系统各功能模块

对于梯形图编辑器,首先设置梯形图的数据结构并存储在双向链表的节点中,通过对链表地具体操作来实现。指令表是一种字符型的文件,通过在对话框中加入CEdit类控件即可实现指令表的编辑。在梯形图向指令表的转化中,采用基于二叉树数据结构的转换算法,利用二叉树与梯形图的结构相似性,建立梯形图和语句表之间的联系,以实现其转换。编辑界面如图3所示。

图3 梯形图编辑界面

2.1.2 编译模块的开发:

为了使PLC程序通过运行系统实现控制功能,需要将指令表编译为运行系统能够识别的代码。

编译程序是一个高度复杂的程序,尤其是词法分析和语法分析部分任务繁杂,这里采用可以在Windows操作系统下运行的Bison和Flex软件的结合来自动准确地生成C语言的分析程序[5]。

2.2 运行系统的设计

运行系统是PLC程序的运行载体,主要功能是与开发系统的通信、目标代码的执行和各种I/O硬件的驱动。

2.2.1 软PLC虚拟存储区的设计

由于基于堆栈的数据处理方式方便快捷,本设计采取基于堆栈的数据处理方案来进行函数调用。首先,将PLC的存储区定义为一个结构体变量,成员分别为PLC的各存储区,类型定义为字节型变量(char)。

该结构体定义的部分代码如下:

在设计中,虚拟存储区的输入映像区和输出映像区是用来与外围硬件设备进行数据交流的通道,利用GT400自带的两个输入输出函数来实现,函数定义如下[6]:

2.2.2 数据寻址方式

由于操作数的类型组要有位变量、字节型变量、字型变量、双字型变量等类型,因此需要不同的寻址方式[7]。本设计采用通用的处理方式,即首先获取结构体的首指针,计算出结构体成员的偏移地址,再计算出结构体成员的绝对地址,之后由程序获取段内的偏移地址,计算操作数的绝对地址。为了便于操作不同类型的数据,需要将获得的结构体指针强制转换成指令函数操作数类型的指针,从而读取对应的存储数据。所用的计算公式,采用宏定义来表示:#define STRUCT_OFFSET(stru_name,element) (int)&((struct stru_name*)0)->element

2.2.3 指令运行原理与指令函数的编写

本系统在运行时采用回调函数加循环的方法来实现指令的执行过程,即将每个指令设计成函数的形式,并把函数的指针存到一个函数数组中,由于这些函数的形参都是PLC变量区结构体指针、操作数结构体变量指针、系统控制区结构体指针等,具有相同的变量参数,这样就可以定义一个指针函数,这个函数的变量类型和指令函数的类型相同。这种方法对任何指令都是有效的,具有很好的通用性和可扩展性,要添加其他指令,只要增加指令函数和函数指针数组,然后实现其中的运行函数即可。

图4 LD 11.2解释流程图

以基本逻辑指令为例,其操作数是以位来读取的,因此专门设计了一个结构体模拟堆栈,对PLC 指令的操作采用堆栈处理,栈深为8层,用这个堆栈来存储逻辑运算的结果。该结构体的定义如下:

2.2.4 系统实时性问题的解决方案

传统PLC具有硬实时性,可以提供快速、确定而且可重复的响应,但Windows是一种消息驱动系统,无法保证控制的实时性要求。

由于微软公司提供了精确定时器的底层API函数库,这里利用Windows的多媒体定时器技术来解决这个问题。它拥有独立的执行线程,而且优先级很高,能在非常精确的时间间隔内完成一个事件、函数或过程的调用,可以实现毫秒级的高精度定时, 能够满足大多数的精度控制要求。该函数原型如下:

3 结束语

本文创新点:程序编辑器结构简单,编辑界面可直接设置参数,开放性好;运行系统的虚拟存储区采取基于堆栈的数据处理方法,执行效率高;指令运行采用回调函数加循环的方法,适用于任何PLC指令,具有很好的通用性与扩展性。

试验表明,在开放式陶瓷快速成型机数控系统中,该软PLC功能模块可以较好地实现进给轴的使能控制,限位保护及复位控制,辅助信号控制等功能,同时还可以实现I/O接口的开关量控制功能。

[1] 陈婵娟,袁斌.新型陶瓷快速成型装置数控系统的研究[J].工程设计学报,2009,(10):335-339.

[2] 王秀峰,罗宏杰.快速成型制造技术[M].北京:中国轻工业出版社,2001:79-92.

[3] 陈凤兰,孙竹梅.软PLC技术的发展趋势与应用前景[J].电力学报,2006,(2):88-90.

[4] Open-PLC programming using IECll31-3,http://www.engineeringtalk.com.

[5] 田文琦,于东,高伟,纪元.Flex和Bison在软PLC编译器中的应用[J].微计算机信息,2009,(19):235-237.

[6] 深圳固高科技.GT系列运动控制器编程手册[M].深圳:固高科技,2003.

[7] 罗燕华.嵌入式软 PLC 技术的研究与实现[M].武汉:华中科技大学,2006.

TH166

A

1009-0134(2010)11(下)-0098-03

10.3969/j.issn.1009-0134.2010.11(下).35

2010-07-13

陕西省教育厅2010年专项科研计划项目( 2010JK438);陕西科技大学研究生创新基金资助

高帅(1985 - ),男,河南洛阳人,硕士研究生,研究方向为数控技术、控制工程。

猜你喜欢

成型机梯形图数控系统
基于PLC和MCGS组态的离子膜成型机控制系统设计
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发
数控系统中GUI软件平台设计和实现
电热刀具在聚苯乙烯快速成型机上的应用
基于聚合物微纳米制造技术的热压成型机研制
低成本手动生物质燃料成型机的设计方案
PLC编译功能的实现
S7—200PLC基本编程教学案例