刘培跃,张亚寒
(石家庄职业技术学院机电工程系,河北石家庄050081)
目前国内大部分企业对数控机床的运行状态监控和动静态数据采集管理仍然停留在单机在线或串口通信方式阶段,无法实现集成管理,形成了信息化孤岛。计算机网络技术的发展尤其是现场总线以及工业以太网技术的发展,使企业数控设备集成监管成为了可能。为实现多台数控机床的集中管理与控制,计算机必须能获取各数控机床的运行数据,包括[1-3]:(1)机床的运行状态:是处于加工运行还是待机;是否有报警;正在运行哪一个程序;是否结束了此次的加工任务等。(2)数控系统与机床的信息与数据,如CNC 存储的加工程序、主轴上的刀具号、已加工的工件数、加工时间、程序的运行时间、CNC 参数、伺服参数、主轴参数、机床参数、PMC 参数、PMC的梯形图、宏变量、报警号与信息等。就是说,计算机需能够实时监视各数控机床的运行状况,了解对机床进行维护的信息。另外,计算机还必须能够做到[4]:(1)对各机床进行必要、实时的控制如机床的暂停、急停;(2)信息与数据的上传与在线调试,如上传加工程序、在线调试PMC 程序等。
文中以FANUC 系统为例介绍基于以太网的数控机床集成技术,使用Visual Basic 调用FOCAS 函数库,并通过网络传输与OpenCNC 连接,读取和管理CNC数据,开发数控机床网络化集成系统,实现在线监测机床状态、评估运行趋势、诊断机床故障等功能。
数控机床网络化集成系统结构如图1所示[5],计算机与配置快速以太网板(Fast Ethernet Board)和数据服务器板(Fast Data Server Board)的数控机床通过以太网连接,利用Visual Basic 开发机床机床应用程序,通过FOCAS(FANUCOpen CNC API Specifications)提供的动态链接库FWLIB32.DLL 调用和上传机床数据,并由专用数据库管理机床数据。
图1 系统构架
系统的主要功能包括[6-7]:
(1)数据管理。通过计算机对联网机床的NC 程序、刀具偏移数据、刀具寿命管理数据、螺距误差补偿数据、用户宏变量等集中管理上传、下载、编辑等。
(2)运转监视。显示当前绝对轴实时坐标、加工进给率、主轴转速、进给倍率、模式、机床状态、主轴转速、进给速度等NC 机床的运转实况和机床通电时间、运转时间、加工部件数、待机、暂停、手动时间分布等加工成绩情况统计。
(3)维护维修。实现机床强制保养,机床维修用各种数据的备份/恢复,定期收集用于故障分析的CNC 履历数据,梯形图顺序的监视器显示和编辑,机床信号的状态显示、PMC 参数的显示和更改设定等机床维修功能。
应用程序需要调用FOCAS 提供的动态链接库FWLIB32.DLL,并通过TCP/IP 通信协议建立计算机与CNC 之间的连接。当连线成功时,控制器会回传一数据类型为Integer(32)型的Handle 值,在离线时释放。Handle 值将作为资料读取时的钥匙,利用此钥匙才能正确使用其余功能语法来读取相对应的资料。
Visual Basic 应用程序需调用基本连线功能函数cnc_allclibhndl3 来建立连接,并确定CNC 的IP 地址、部件号和连接时间。具体语法为:Declare Function cnc_allclibhndl3 Lib" FWLIB32.DLL"(ByVal Ipaddr As String,ByVal Port As Short,ByVal Timeout As Integer,ByRef FlibHandle As Integer)As Short。
其中:Ipaddr(String)是以字串方式指定欲连接的CNC 控制器的网络位置(即IP 地址)或者主机名称(Host Name),例如:" 192.168.0.1 " 或" CNC-1.FACTORY";Port(Short)为欲连接CNC控制器的部件号(Port Number);Timeout(Integer)代表指定连线时间,以s 为单位。上述调用的回传值为EW_OK(0)时表示连线成功。
连接释放时,调用cnc_freelibhndl 函数,只需输入连接成功时所返回的Handle 值,具体语法为:Declare Function cnc_freelibhndl Lib " FWLIB32.DLL"(ByVal FlibHandl As Integer)As Short。FlibHandl 为连接时返回的Handle 值,当返回值为W_OK(0)时表示连接释放成功。
上述操作是通过调用基本连线功能实现的。除此之外,FOCAS 共提供CNC 控制轴和控制主轴相关功能、CNC 程序相关功能、CNC 工件管理相关功能、CNC 历史记录相关功能、PMC 相关功能等18 类功能函数[2],借助这些函数可充分实现计算机与CNC 的交互,读取或回传所需数据。下面就该系统运转监视模块的坐标轴数据读取和数据管理模块的宏变量的读写详述开发过程。
CNC 的伺服坐标轴表示方式分为机械、绝对和相对坐标3 种,同时也可以显示各坐标轴的剩余位移量。读取坐标轴位置方法有多种,例如:cnc_absolute 可以读取绝对坐标,cnc_ relative 可以读取相对坐标。文中使用功能较为全面的cnc_rdposition 来读取各轴坐标信息。
cnc_rdposition 函数需输入查询的CNC 的Handle地址和欲查询的坐标类型,回传信息为ODBPOS 数据,坐标值读取回传状态及错误信息。回传的ODBPOS 信息结构包括abs、mach、rel 和dist 四项,分别表示伺服轴的绝对、机械和相对坐标,以及各轴执行的剩余位移量。图2 为CNC 坐标轴读取流程。
图2 读取伺服轴坐标值流程
下面以该系统读取各坐标轴功能为例简述开发过程。GetPositionData 为存储各坐标轴信息的变量,包含机械(Machine)、绝对(Absolute)、相对(Relative)坐标值,及程序剩余位移量(DistanceToGo)等资料。数据结构为Pos(Double)、Name(String)以及Unit(String),分别代表坐标值、轴名称及使用单位。示例程序如下:
Spl_number=3//设置轴数;
Cnc_Handle="1111"//设置连接Handle;
ReDimGetPositionData.Machine(spdl_number)
//重设GetPositionData.Machine(i)的大小;
Dim RefODBPOS As New ODBPOS//定义数据回传存储结构ODBPOS;
Cnc_rdposition(cncHandle,1,spdl_number,RefODBPOS)//调用cnc_rdposition 函数
For I As Integer=0 To spdl_number-1 Step 1
GetPositionData.Machine(i).Parameter=tODBPOS.Pos(i).mach.data/10(tODBPOS.Pos(i).mach.dec);//存储坐标值进入GetPosition Data.Machine(i).Parameter 中;
GetPositionData_Machine(i).Name=(tODBPOS.Pos(i).mach.name).ToString;//存储轴名称进入Get-PositionData_Machine(i).Name;
SelectCasetODBPOS.Pos(i).mach.unit.ToString
Case”0”
GetPositionData.Machine(i).Unit=”mm”
Case”1”
GetPositionData.Machine(i).Unit=”inch”
Case”2”
GetPositionData.Machine(i).Unit=”degree”
Case Else
GetPositionData.Machine(i).Unit=””
End Select
Next//存储坐标单位进入GetPositionData.Machine(i).Unit 中。
在FANUC CNC 数控系统中,宏变量分为局部变量、全局变量和系统变量3 种,前两项为用户编写数控程序时指定,最后一项为系统状态变量。FOCAS规定:局部变量只能读取,全局变量和系统变量既可读又可写。宏变量操作分为单一和多重阵列读写两类,宏变量单一读写较为简单,因此下面以多重阵列变量的读取为范例介绍开发过程,见图3。
图3 宏变量读取流程
Cnc_rdmacror 为多重阵列读取函数,只能用于局部和全局变量的读取,系统变量不能使用。Cnc_rdmacror函数需要输入查询CNC 的(1)Handle 地址;(2)读取范围起始编号(s_number);(3)结束编号(e_number);(4)存储回传数据的IODBMR 资料结构;(5)IODBMR 资料大小等。若函数读取成功,则开始回传,依次读出各变量编号数值,读取DATA 资料结构中的变量数字(mcr_val)及小数点位数(dec_val),并根据回传数字及小数点位数换算变量实际数值,公式为(mcr_val/10dec_val))。
FANUC 的以太网功能主要通过TCP/IP 协议实现,使用时需在数控系统上设定IP、TCP 和UDP 端口数据等信息。下面以内嵌式以太网为例说明设定方法[9]:首先修改20 号参数为5;按SYSTEM→公共键,出现IP 地址设定画面,如图4所示,当系统与多台数控机床连接时,需要填写路由器地址,如不需要,则不用填写;然后按下FOCAS2 键,进行FOCAS2 的设置,如图5所示,TCP 设定为8193,UDP一般设定为8192,时间间隔一般设定为10。
图4 数控系统IP 地址设定
图5 FOCAS2 设定
远程网络化制造是数控技术发展的趋势,数控机床管理与使用走向网络化、智能化已成为必然。基于以太网、TCP 协议和Socket 编程技术的数控系统网络化集成系统可以实现一台服务器联网管理多台数控机床并进行远程监控,可以提高企业生产资源的生产效率和有效利用率,具有较高推广和实用价值。
[1]张爱红.数控机床网络故障诊断系统的开发与应用[J].机床与液压,2011,39(11):154-156.
[2]张允刚,常春,刘伟,等.基于Socket 和多线程的远程监控系统[J].控制工程,2006,13(2):175-177.
[3]庄殿铮.数控机床Internet 远程监控中提高实时性的方法[J].组合机床与自动化加工技术,2004(4):2-83.
[4]徐鸣鹤,冷春艳,熊鸿康.机床数控系统的组网与远程监控的实现[J].机床与液压,2011,39(12):85-88.
[5]尚德波.面向加工车间的网络数控操作平台研究与设计[J].制造业信息化,2009,31(9):108-110.
[6]陈贤清,黄河,古文伟,等.数控机群数据信息采集系统的研究与设计[J].机床与液压,2011,39(10):99-106.
[7]邹品军,王宵,刘会霞.网络监听在FANUC 机床联网上的应用[J].机床与液压,2005(8):93-198.
[8]BEIJING FANUC 公司.FOCAS1_2 动态链接库函数光盘(A02B-0207-J737#ZZ11)[CD].
[9]BEIJING FANUC 公司.以太网板/数据服务器板操作说明书(B-63354EN)[M].