基于LabVIEW的数控维修实训平台故障设置模块设计

2013-02-28 01:28齐洪方杨鸣谦
机械设计与制造工程 2013年10期
关键词:刀架下位串口

齐洪方,杨鸣谦

数控机床在机械制造行业已经得到了广泛的应用。在机床的使用过程中如果出现故障,需要尽快排除故障,保证生产的正常进行,这就需要配备大量数控机床故障诊断与维修方面的人才。数控机床故障诊断与维修对实践训练的要求较高,需要有专门的设备提供给学生进行动手训练,然而目前市场所拥有的数控机床故障诊断与维修实习实训设备难以满足教学的要求,并且价格较高,因此迫切需要研发一种新型的数控机床故障诊断与维修实训设备。

1 故障设置的基本思想

故障的设置采用PC机作为上位机,Arduino作为下位机,PC与Arduino使用串口进行通信,使用USB-B型线与Arduino相连,PC端使用Lab-VIEW开发的上位机软件,需要产生故障时,上位机发送指令给下位机,下位机驱动8位继电器板,根据不同的故障设置开闭继电器,从而产生故障,故障产生方式见表1。

故障的详细解释:

a.刀架不停。

表1 故障产生方式

数控刀架的换刀过程:当有手动或自动换刀指令时,经系统处理变为刀位信号,刀架正转有效,PMC使继电器线圈通电,继电器触点闭合,接通交流接触器的控制端,交流接触器吸合,刀架电动机正转;当PMC输入点检测到对应的刀位信号时,正转指令撤销,刀架停止正转;接着刀架反转,延时一段时间(该时间由参数设定,并根据现场情况调整);然后刀架反转停止,换刀过程完成。

当产生故障时,断开了2号刀霍尔元件的反馈信号,因此如果要执行T02指令,PMC将无法知道2号刀是否到位,因此会不停的正转。

b.机床门报警。

数控车床的电气柜设置有接触开关,当机床电气柜门关闭时,开关接通,机床方可正常运行,否则将触发门未关闭的报警。

当产生故障时,断开电气柜门接触开关的信号,PMC始终检测不到机床门关闭,因此会持续报警无法消除,实际情况中产生这种故障的原因可能是行程开关故障,线路断开,或者是机床门锁的间隙过大,导致门关上了也无法触发开关。

c.回不了原点。

本数控实训平台采用的是增量式的编码器,因此每次在使用前都应进行回参考点操作,Fanuc数控系统的回参考点方式为:轴向预定点方向快速运动,挡块压下零点开关后减速向前继续运动,直到挡块脱离零点开关后,数控系统开始寻找零点,当接收到第一个零点脉冲时,则以工作台当前位置作为参考点位置。

当故障产生时,切断机床的零点开关信号,因此机床在回原点的过程中并不会停下,而是直接走到机床对应轴的极限行程开关停下,并触发超程报警。

d.急停不消除。

Fanuc数控系统的PMC设定X8.4为急停报警接口。

当故障产生时,将24V电源直接接在 X8.4上,机床持续报警且不消除。

e.刀架不转。

和刀架不停类似,切断的是刀架正转信号,启动换刀命令时,继电器得不到来自PMC端的信号,刀架电源无法接通,因此刀架不转,程序停步。

f.所有PMC输出功能无效。

由于机床的PMC的IO信号比较多,通常采用的是继电器模块,而继电器模块的供电是由开关电源提供的。

故障产生时,切断继电器模块的供电,这时所有的IO输出功能无效。

g.主轴速度不正确。

主轴连接变频器,其转速和正反转控制都由变频器控制,其中,转速是由0~10V的电压控制的,如果切断来自NC端的模拟信号,或者连接一个恒定的电压,主轴将会旋转,但是速度变为不可控。

h.主轴不转。

本数控实训平台采用的是三菱RF-E740变频器,其正反转控制由STF和STR控制,这两个信号的公共接线端为SD。PMC控制主轴正反转时,PMC的DO信号控制中间继电器的通断,使STF和STR分别与公共端相连,从而控制正反转。

当产生故障时,切断公共端的连线,则正反转信号无效,体现为主轴不转。

2 下位机设计

下位机采用成熟的Arduino UNO控制板,Arduino是一个基于开放原始码的软硬体平台,构建于开放原始码simple I/O介面版,并且具有使用类似 Java,C 语言的 Processing/Wiring开发环境[1]。

Arduino是一款易用的AVR开发板,是对于AVR单片机的重新封装,自带USB模拟串口,可以通过串口刷新程序和通信,它没有复杂的单片机底层代码,没有难懂的汇编,只是简单而实用的函数[2]。

Arduino程序如下:

void setup(){

//initialize serial communication at 9600 bits per second:

Serial.begin(9600);

while(!Serial){

;//wait for serial port to connect.Needed for Leonardo only

}

}

//the loop routine runs over and over again forever:

……

if(ctrl== 'd'){

while(!Serial.available());

unsigned char do_data=Serial.read();

do_u8(do_data);

Serial.println(do_data);//反馈接收的数据,调试使用。

}

}

}

unsigned char out;

unsigned char i;//输出开始的引脚,输出引脚从2到9

void do_u8(unsigned char do_data){

for(i=2;i<10;i++){

out=do_data&0x01;//取最低位依次输出

if(out){

digitalWrite(i,HIGH);

}

else{

digitalWrite(i,LOW);

}

do_data>>=1;

}

}

本平台中使用的Arduino UNO开发板,采用了一块ATmega328芯片,利用USB直接供电和通信,14个数字IO口和6个模拟IO口,本项目中用8个数字IO口控制继电器模块,如图1所示。

图1 Arduino及故障设置继电器

继电器模块带有光耦隔离,常开接口最大负载:交流250V/10A,直流30V/10A,高低触发选择,当VREF端口通高电平,方式为低导通,反之为高导通,导通电流为3mA,继电器工作电流为70mA,当8个继电器同时导通的时候所需的驱动电流约为600mA,而电脑USB口额定的负载电流为500mA左右,因此在改进中,添加了一块LM2596直流电源模块,如图2所示,输入电压范围:直流3.2V ~40V,输出电压范围:直流1.2V~35V电压连续可调,将开关电源提供的24V电压转换成5V电压,用于驱动继电器模块,其最大的负载能力为3A,在驱动能力上提供了较大的余量。

图2 5V电源模块

3 上位机设计

上位机采用了LabVIEW编程,通过串口和下位机通信。LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式[3-4],如图3所示。一是使用简便,编程快捷;二是结构清晰,便于后续的扩展。

在和Arduino通信上,采用了经封装的一套类库,在Arduino上烧入下位机程序,就能通过Lab-VIEW程序对Arduino进行控制。

图3 程序前面板

程序的有关说明:(1)程序的主体结构是一个循环事件结构,当故障设置按钮为按下状态时,每100ms一次,将按键的状态发送至下位机,并接收调试用的返回信号。(2)事件结构的超时时间设置为0,如果在循环中没有事件发生,就立即跳出事件结构,防止死循环。当故障设置按键弹起时,触发故障设置值改变事件,程序进入事件结构,所有的故障取消,释放串口资源。(3)init为初始化串口通信,DO为数字量输出,closedevice为释放串口资源。

4 结论

本文主要基于LabVIEW的数控维修实训平台故障设置模块进行了详细设计,该模块设置故障方便、系统稳定,能够很好地满足教学过程中实验教学的需要,当然目前设计的故障数量还比较少,还需要对故障设置的数量以及故障内容进行更加深入的研究。

[1] Language Reference,Arduino[EB/OL].http://arduino.cc/en/Reference/HomePage.

[2] 程晨.Arduino开发实战指南(AVR篇)[M].北京:机械工业出版社,2012.

[3] 郑对元.精通LabVIEW虚拟仪器程序设计[M].北京:清华大学出版社,2012.

[4] 阮奇桢.我和 Lab VIEW:一个 NI工程师的十年编程经验[M].2版.北京:北京航空航天大学出版社,2012.

猜你喜欢
刀架下位串口
浅谈AB PLC串口跟RFID传感器的通讯应用
两例CA6140 刀架卡紧故障的解决方案
C730B车床PLC改造
发射机房监控系统之下位机
车床刀架快速移动电机是怎样控制刀架横向和纵向移动的?
景洪电厂监控系统下位机数据传输网络改造
围观党“下位”,吐槽帝“登基”
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
CAN总线并发通信时下位机应用软件设计