将Excel的VBA应用到FANUC的NC数据处理来诊断NC参数

描述

对于数控机床,最常见也是最难解决的问题就是由于错误设定NC参数而引起的机床异常,这种错误通常是由误操作引起,很难发觉,机床也没有任何报警,但运行时却会表现异常。数控系统的NC参数通常多至4千~8千,如何从如此众多的参数中找到设定错误的参数就变得十分棘手。基于这种情况,可以巧妙利用Excel强大的数据处理能力,来对NC参数进行诊断。

1. 导入NC参数

想要诊断NC参数,首先是要将NC参数的输出文件导入Exce中,可以使用“导入数据”功能,选择数据来源是文本即可。

对应程序代码如下:

filename2 = Application.GetOpen Filename(“(i5)NC参数文件(文本文件) ,*.txt”)

If filename2 = False Then Exit Sub

If filename1 = filename2 Then

MsgBox “选择的是同一文件”,vbInformation, “提示”

Exit Sub

End If

i = 1

Dim TextObj

Application.ScreenUpdating = False

Set fs = CreateObject(“Scripting. _FileSystemObject”)

Set TextObj = fs.OpenTextFile (filename2)

Do While Not TextObj.AtEndOfLine

txtline = Trim(TextObj.ReadLine)

If InStr(1, txtline, “:”) > 0 Then

Cells(i, 3) = Mid(txtline, 1, InStr(1, txtline, “:”) - 1)

Cells(i, 4) = Mid(txtline, InStr(1, txtline, “:”) + 1, Len(txtline))

Else

Cells(i, 3) = txtline

End If

i = i + 1

Loop

Set fs = Nothing

Application.ScreenUpdating = True

Excel导入NC参数文件后部分参数如表1所示。

NC

2. 参数诊断

为了更加方便地诊断参数,需要将所有的轴参数、主轴参数和通道参数进行分别提取,放在不同列中,便于分类进行诊断,这里使用Excel自有的函数功能即可实现。

首先,提取各轴及通道参数,如提取X轴数据为

=IFERROR(IF(SEARCH ( “ A ” ,A3,1)>1,MID (A3,SEARCH(“A1”,A3)+3,SEARCH( “ A2 ” ,A3 )-3-SEARCH( “ A1 ” , A3)),””),””)

提取参数后部分如表2所示。

NC

将提取的参数进行汇总比较,轴参数分类成X轴参数、Y轴参数、Z轴参数、四轴参数、主轴参数及通道参数,在这里将通道参数及主轴参数汇总到B轴参数列表中,X轴参数汇总公式

IF(A2=””,””,IF(LOOKUP(A2,Sheet1!C:C,Sheet1!D:D)<>””,LOOKU

P(A2,Sheet1!C:C,Sheet1!D:D),”非轴参数”))

Y轴参数汇总公式

=IF(A2=””,””,IF(LOOKUP(A2,Sheet1!C:C,Sheet1!E:E)<>””

LOOKUP(A2,Sheet1!C:C,Sheet1!E:E),IF(ISNUMBER(MATCH(A2,Sheet7

!D:D,0)),”M参数”,IF(ISNUMBER(MATCH(A2,Sheet7!E:E,0)),”主轴参数”,”通用参数”))))

Z轴参数汇总公式

=IF(A2=””,””,IF(LOOKUP(A2,Sheet1!C:C,Sheet1!F:F)<>””,LOOKUP

(A2,Sheet1!C:C,Sheet1!F:F),”→”))

四轴、主轴及通道参数汇总公式

=IF(A2=””,””,IF(B2=”非轴参数”,MID(LOOKUP(A2,Sheet1!C:C,Sh

eet1!H:H),2,15),LOOKUP(A2,Sheet1!C:C,Sheet1!G:G)))

参数汇总后如表3所示。

NC

在比较参数时遇到如下问题:不同型号的机床电动机不同,意味着参数不同,不可简单进行参数比较,需要将待诊断的NC参数文件的电动机参数进行提取、模糊匹配、注入以及再比较。也就是说,通过模糊匹配调出待诊断NC参数文件中真实的电动机代码,再从标准库中调出相应的电动机参数注入到标准NC参数列表中,然后与待诊断NC参数文件进行比较,电动机参数一致后,在诊断时受到的干扰就大大减少了。

电动机固有参数,顾名思义就是指电动机的特征参数,绝大部分都是只读参数。根据电动机固有参数的参数值就可以确定电动机的具体型号。笔者做过统计,伺服轴的参数是101个,主轴参数是69个。

很多时候,电动机代码参数与实际电动机并不一致,所以要利用电动机固有参数进行模糊匹配,匹配度最高的即是真实电动机代码。

由于电动机固有参数有一小部分是可以修改的,所以这里要用到模糊匹配方法找到待诊断的NC参数文件中电动机的真实代码。本文所用到的模糊匹配属于一维模糊匹配,方法很简单,是将所有的电动机参数文件汇总,然后逐组进行调用并与待诊断的NC参数文件中电动机固有参数进行比较,然后将匹配率最高的电动机代码返回给标准NC参数文件。

通过模糊匹配的方法获取到待诊断NC参数文件的真实电动机代码,然后再将汇总的电动机参数调用出来注入到已经提取到的标准NC参数列表中。这样一来,待诊断NC参数文件与标准NC参数文件电动机方面的参数就是一致的了,如果待诊断的NC参数文件与标准电动机参数不一致,则用紫色对参数进行标注,作为特别提醒予以重点关注。

之后,将有问题的NC参数文件同标准参数文件进行比较,即可找到异常参数,将不同的参数标记成数字255,255是红色的数字代码,然后进行单独提取。如X轴参数比较公式

=IF(B2=F2,””,IF(OR(F2=””, F2=”无此参数”),IFERROR(IF (VALUE(B2)=0,” “,255),””),255))

比较参数后如表4所示。

NC

最后将提取出来的异常参数根据参数重要性进行归类并标示颜色,方便以后在界面上进行标识。颜色标识归类的公式为:

IF(N2=49152,””,IF(ISNUMBER(MATCH(A2,Sheet8!N:N,0)),49152,IF(ISNUMBER(MATCH(A2,Sheet8!O:O0)),65535,IF(ISNUMBER(MATCH(A2Sheet8!P:P,0)),16776960,IF(ISNUMBER(MATCH(A2,Sheet8!Q:Q,0)),16711935,IF(ISNUMBER(MATCH(A2,Sheet8!R:R,0)),255,””))))))

根据参数的重要性将异常参数定义成不同数值,分别为49152、65535、16711935及16776960。再根据不同轴数、不同NC型号建立相应的标准NC参数库,在诊断NC参数文件时就可以进行相应选择并调用与之相同的NC参数进行比较诊断了。

3. 诊断界面

在Excel的开发选项中提供了VB界面,方便将数据以界面的方式展现出来。在Excel界面下,按Alt+F11,显示VBA编程页面。可以根据实际功能进行页面设计及功能定义。设计功能界面按钮如图1所示。

NC

设计好诊断界面后,将Excel中的数据导入到界面中,并根据参数重要性进行颜色上的区分显示如表5所示。

NC

由于异常参数的重要性是根据颜色的不同来确定的,所以在查找问题参数时,可以根据颜色来进行,在这里将绿色标识的参数号定义为对机床无影响参数,黄色为优化参数,蓝色为有影响参数,紫色为电动机固有参数。优先考虑的顺序为紫色、蓝色、黄色,绿色不考虑。如图2所示。

为更加方便查找问题,可以将诊断结果进行过滤。当主轴出现问题时,只看主轴部分的异常参数,当伺服轴出现问题时,只看伺服轴部分参数,这样更加方便快捷。为验证Excel处理数据所需要的时间,在程序的首行和末行添加上时间功能,显示结果如图3所示。

仅需7s就能轻松诊断出异常的NC参数,其效率要远远高于操作人员手动查询效率。

4. 结语

本文将Excel的VBA应用到FANUC的NC数据处理上,使得机床调试更加方便快捷,极大地提高了效率。由于数控系统的版本和机床制造厂家的设置不同,切莫生搬硬套文中的导入方法和函数公式,要参照机床说明书的具体要求导出数据表格,正确利用Excel的自动处理功能来诊断NC参数。


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分