APP下载

加工中心远程控制系统的设计与开发

2010-08-07张爱红

制造技术与机床 2010年1期
关键词:调用机床编程

张爱红

(无锡职业技术学院,江苏无锡2l4l2l)

作者:张爱红,男,l97l年生,副教授,研究方向:数控、机器人等机电一体化技术。

加工中心为柔性制造系统(FMS)重要的底层设备之一,能够对工件各加工面自动地进行钻孔、铣削等多工序加工。为能实现上位计算机对加工中心的远程控制,有三种方案可供选择:(l)基于数控系统厂家动态链接库的二次开发[l];(2)增加外置控制器并修改机床PLC程序;(3)配置通信适配器、实现系统功能扩展。在无锡职院FMS中用了前两种方案,分别用于配置FANUC 0i-TC系统的数控车床(CL-20A)和配置SINUMERIK 8l0D系统的加工中心(DMC 63V)。其中第二种方案的实现基于开发人员对机床接口信号的灵活应用,也是远程控制中较为便捷、实用的一种方法。

1 系统配置

加工中心远程控制系统如图l所示。上位机控制程序与外置PLC以串口通信方式,读/写PLC内部数据,完成I/O信号的输入/输出控制。目前除可以控制机床门、气动夹具、与工业机器人的联动控制,外置PLC的输出信号还作为加工中心PLC的输入信号,并在数控系统内部传递信息(PLC→NCK),实现机床远程起动与复位、数控程序选择(主程序根据输入信号位的变化,调用不同的子程序)等功能;与此同时,上位计算机也可实时获取机床的运行状态(NCK→PLC)。

2 软件开发

为了实现加工中心远程控制并调用不同程序加工,除了增加外置PLC、输入/输出接线以及机床PLC的信号(SM)模块组态外,关键要完成4部分程序的编制,即:机床PLC程序、外置松下PLC程序、数控加工程序以及上位机控制程序。它们的编程软件各不相同,其中机床PLC为S73l5,其编程指令与西门子S7300 PLC兼容,采用SIMATIC STEP 7软件;外置PLC为松下FP0-C32T,编程软件为FPWIN GR2;机床配置了SINUMERIK 8l0D数控系统,数控程序有自己的语法规范;上位机采用Visual C++6.0编程、串口通信方式。虽然编程软件不同,但各部分之间的接口明确,因而实现起来并不困难。下文以机床PLC程序、数控加工程序与上位计算机控制程序的开发为例说明系统软件的开发流程。

2.1 机床PLC程序

机床出厂时已经有完善的PLC控制程序,但是不能满足远程控制功能,因此需要修改源程序。如图2所示,先要能建立与机床PLC的通信连接,其中K2电缆须由机床提供DC24 V电源;接着要设置通信端口参数,再将机床PLC程序上传至计算机分析。经过机床操作、诊断(Diagnosis)后,发现控制面板(MCP)循环起动信号地址为Il.7,查阅SINUMERIK 8l0D/840D系统调试说明书[2]后,得到PLC→NCK的内部起动信号为 DB2l.DBX7.l。结合上传的 PLC程序,信号Il.7、DB2l.DBX7.l 在功能块 FCl l4、FC43 中调用,部分程序如下:

在FCl l4内:

在FC43内:

而经过SIMATIC STEP7软件下的“交叉参考”标签找出机床未使用的信号有 I37.5、I37.4、I37.l 等,在本系统中将它们分别定义为:机床远程起动、复位与程序选择信号。为了实现远程起动功能,如果直接在OBl主程序中增加置位语句(使 DB2l.DBX 7.l为l),将发现机床不能正常运行。经过多次试验、比较后发现可参照操作机床控制面板(MCP)循环起动信号Il.7的编程方法,将信号I37.5与之并联,故上面的程序修改如下:

在FCl l4内:

在FC43内:

修改后的程序在信号I37.5在“0→l→0”变化过程中,机床将执行系统已装载的程序,至此系统的远程起动功能已经实现。其他功能包括复位功能(DB2l.DBX7.7,信号方向:PLC→NCK),机床运行状态检测功能(DB2l.DBX 35.0,信号方向:NCK→PLC)。其处理过程与之类似,限于篇幅,不再赘述。

虽然上述设计都很成功,但考虑到柔性制造系统应能实现小批量、多品种的零件加工,系统需有调用不同程序加工的能力,因此需进一步完善系统功能。经研究发现:与FANUC 0i系统相比,SINUMERIK 8l0D/840D系统的接口功能更加强大,系统提供了一个独立的内部数据区用于NCK与PLC高速数据交换。这个内部数据预置了l 024字节,PLC可通过FC2l与NCK交换数据,数控程序可通过读/写NC变量$A_DB*来读取PLC数据。机床PLC端实现的具体要求是在OBl块中调用FC2l功能。程序如下:

CALL FC 2l

IN0 :=I37.5 (I37.5,上位计算机远程起动信号)

INl:=B#l6#4

IN2 :=P#I 37.0 BYTE l

IN3:=0 (将IB37字节的内容写入到变量$A_DBB[0])

IN4:=-l

OUT5:=Q49.l

OUT6:=MWl2

第l个参数I37.5是使能信号,为l时将激活FC2l功能,否则FC2l功能不执行。第2个参数是块功能,字节类型,取值为3时,读NCK变量;取值为4时,写NCK变量。第3个参数是PLC的数据地址,起始地址为指针,后面表示数据的长度,以P#I 37.0 BYTE l为例,I37.0为起始地址,BYTE l代表一个字节长度。第4个参数为整型参数,在第2个参数取值3或4时,该参数指位置偏置,即相对起始地址的偏置值,通常设为0;第5个参数为整型参数,在第2个参数为3或4时,取值为-l。最后两个参数为输出参数,分别为错误指示信号(Q49.l),错误代码(MWl2),正常输出时,为 0;出错时,Q49.l 置位,并有相应错误代码输出到MWl2。对于上面这段程序,FC2l正常调用的结果将IB37字节的内容写入到NC变量 $A_DBB[0]中。

2.2 数控加工程序

SINUMERIK 8l0D/840D的NCK系统中有4种用于读/写PLC变量,分别是$A_DBB、$A_DBW、$A_DBD、$A_DBR,可用于操作8位字节、l6位字、32位双字和32位实数。本应用中只需使用8位字节变量,根据FC2l调用的结果将IB37的状态写入到NC变量$A_DBB[0]中,而第l位信号I37.l用于程序的选择,因此需进行按位操作的方式,根据位的变化决定程序的调用或转移。SINUMERIK 8l0D/840D系统数控编程时,可进行与、或、非等位操作运算[3]。基于此,编写的数控程序如下:

IF$A_DBB[0]B_AND‘B000000l0’GOTOF PROGl

PROGl:…

将变量$A_DBB[0]与000000l0按位与,如果结果不为0,程序将跳转到标号PROGl处继续执行。因此利用PLC外部输入信号的变化来执行不同的加工程序段或调用子程序,以实现多品种零件的加工。

2.3 上位机程序开发

Visual C++6.0作为Windows系统开发的主要语言之一,以其具有良好的图形用户界面并支持面向对象的程序设计,使得编程效率提高,应用功能增强。因此本系统采用Visual C++为上位机开发软件,实现对机床的远程控制。建立的人机交互界面如图3所示。

程序界面分成3个区域:

(l)左边的是树型结构,手动模式下,节点双击后可发出相应的指令。这些指令有:配置、打开或关闭端口,开/关机床门、松/紧夹具、起动/复位机床等。

(2)右边上面区域是响应命令的事件状态及接收时间。

(3)右边下面是log信息。

树型结构展开,主节点有“PLC协议”和“机床手动控制”等,下面分别有3个和6个命令节点。鼠标左键双击命令节点,执行相应的操作,这些节点都是为手动操作而设置的。在自动模式下,除“PLC协议”节点下“配置端口”、“打开端口”操作需手动完成外,其他操作都是程序自动完成的。

机床起动/复位、实时状态检测、自动门开/关、程序选择等操作可由计算机向PLC发送读/写指令来控制。以“起动机床”为例,程序代码如下:

void CPLCProtoc::startMachine()

{ …

m_ControlCharacter=START;

SendReceivePort(LPCTSTR(m_ControlCharacter));

if(m_backData.Mid(6,2)==_T("0l"))//机床运行

…}

CPLCProtoc为PLC协议类,封装了与PLC串行通信的底层操作,基于此调用成员函数startMachine()发送控制指令。分析了松下电工FP系列PLC通信协议的定义后,将 START定义为字符串“%0l#WDD0000l0000l0200** ”,向l号站的数据寄存器DTl发送0002H,PLC应答数据存放到字符串m_backdata中。机床运行时前8个字符的返回值为:“%0l$RD0l”,复位时返回值为“%0l$RD02”,可通过CString类成员函数Mid(6,2)分离出 DTl数值,并作相应判断,如为“0l”说明机床运行,为“02”说明机床复位等。而字符串的发送与返回码的接收由函数SendReceivePort完成。

3 结语

数控机床的远程控制功能是柔性制造系统底层设备控制的重要组成部分,本文利用Visual C++开发远程控制软件,应用松下PLC与加工中心交换信息,实现了一种操作界面友好,适用于工业现场的数控机床远程控制系统。该系统方便柔性制造系统调度模块的调用,便于功能扩展,现已成功应用于我院产教结合型柔性制造系统,并已申获计算机软件著作权(软件名称:加工中心DNC控制软件,登记号:2008SR26399)。

l 张爱红.基于CORBA的数控机床DNC模块开发.深圳职业技术学院学报,2006(4)

2 SIEMENS.SINUMERIK 840D/8l0D简明调试指南.SIEMENS,2002.

3 SIEMENS.SINUMERIK 840D/8l0Di/8l0D/FM_NC编程指南高级篇.SIEMENS,200l.

猜你喜欢

调用机床编程
机床展会
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
核电项目物项调用管理的应用研究
系统虚拟化环境下客户机系统调用信息捕获与分析①
2019,中国机床变中求进
基于通用机床的100%低地板有轨电车轮对旋修
机床挤刀装置的控制及应用