64数控机床PLC控制应用实例doc.docx
- 文档编号:29430293
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:36
- 大小:343.76KB
64数控机床PLC控制应用实例doc.docx
《64数控机床PLC控制应用实例doc.docx》由会员分享,可在线阅读,更多相关《64数控机床PLC控制应用实例doc.docx(36页珍藏版)》请在冰豆网上搜索。
64数控机床PLC控制应用实例doc
6.4数控机床PLC控制应用实例
前面已经提到,在PLC设计方面需要详细了解被控过程的工作过程和工作原理;在编程方面可以学习和参考系统提供的标准例程和编程说明书以及其它专门介绍PLC编程语言的参考书。
因此本书对具体的编程方法不作详细的介绍,只针对数控机床PLC控制中比较典型的三个应用进行过程和安全互锁分析,每个应用提供一种不同编程语言的PLC程序。
应用实例中的PLC均采用DC24VNPN型晶体管接口电路,即低电平有效。
一.主轴系统
1.过程分析
主轴的控制包括正转、反转、停止、制动和冲动等。
要求按正转按钮是电动机正转;按反转按钮时电动机反转;按停止按钮时电动机停止,并控制制动器制动2秒;按下冲动按钮电动机正转0.5秒,然后停止;电动机过载报警后正/反转和冲动按钮无效。
2.安全互锁
参考本章第二节。
3.程序设计
电气部分的设计如图6.4.1所示,主轴为普通三相异步电动机,由交流接触器控制正反转;继电器采用直流24V供电,自带续流二极管;交流接触器采用交流110V供电。
图中各器件的含义如下:
序号
名称
含义
序号
名称
含义
1.
QF3
主轴带过载保护电源空开
2.
KM3
主轴正转交流接触器
3.
KM4
主轴反转交流接触器
4.
KA1
由急停控制的中间继电器
5.
KA4
主轴正转中间继电器
6.
KA5
主轴反转中间继电器
7.
KA6
主轴制动中间继电器
8.
KA9
刀具松中间继电器
9.
SB11
主轴正转按钮
10.
SB12
主轴反转按钮
11.
SB13
主轴停止按钮
12.
SB14
主轴冲动按钮
13.
RC2
三相灭弧器
14.
RC7,RC8
单相灭弧器
与主轴控制相关的输入/输出寄存器包括:
输入寄存器:
X1.4—正转,X1.5—反转,X1.6—停止,X1.7—冲动,X8.5—报警;
输出寄存器:
Y5.0—正转,Y5.1—反转,Y5.2制动,Y5.3—松刀。
在电气安全互锁设计方面,主轴正/反转在接触器和继电器分别进行了安全互锁;主轴正/反转对刀具松进行了安全互锁;急停对主轴运转进行了安全互锁。
指令语句表程序如下:
1.LDX1.4--读取主轴正转按钮
2.ORR0.0--R0.0自锁
3.ANDX8.5--无报警
4.ANIY5.3--刀具未松开
5.ANDX1.6--停止按钮未按下(停止按钮硬件上是常闭连接)
6.ANIY5.1--反转无输出
7.ANIY5.2--主轴未制动
8.OUTR0.0--则输出中间变量R0.0,并自锁
-------主轴正转条件都满足,则按下正转按钮后,输出R0.0并自锁-------
9.LDX1.7--读取主轴冲动按钮
10.ORR0.1--R0.1互缩
11.ANIT1--若T1计时未完成
12.OUTR0.1--则输出R0.1
13.OUTT1K5--T1计时0.5秒
-------------------按下主轴冲动按钮后,R0.1输出0.5秒后关闭---------------
14.LDR0.0--读取R0.0。
15.ORR0.1--或R0.0。
16.ANDX8.5--无报警。
17.ANIY5.3--刀具未松开。
18.ANDX1.6--停止按钮未按下。
19.ANIY5.1--反转无输出。
20.ANIY5.2--主轴未制动。
21.OUTY5.0--则输出Y5.0控制主轴正转。
-------主轴正转条件满足后,R0.0和R0.1任意一个有输出则输出Y5.0控制主轴正转,实现了主轴连续正转和每次按下主轴冲动按钮,主轴正向冲动0.5秒的功能。
-------------
22.LDX1.6--读取主轴停止按钮。
23.ORY5.2--主轴制动自锁。
24.ANIT2--若T2计时未完成。
25.OUTY5.2--则输出主轴制动。
26.OUTT2K20--T2计时2秒。
-------------按下主轴停止按钮后,Y5.2输出制动主轴2秒后断开-----------
27.LDX1.5--读取主轴反转按钮。
28.ORY5.1--主轴反转自锁。
29.ANDX8.5--无报警。
30.ANIY5.3--刀具未松开。
31.ANDX1.6--停止按钮未按下。
32.ANIY5.0--正转无输出。
33.ANIY5.2--主轴未制动。
34.OUTY5.1--则输出Y5.1控制主轴反转。
35.END
-------主轴反转条件都满足,则按下反转按钮后,输出Y5.1并自锁-------
二.定时润滑
1.过程分析
由PLC控制润滑电动机实现自动润滑功能,代替自动润滑站。
数控机床通电工作后,定时润滑即开始自动执行,不受外部按钮或M指令控制。
2.安全互锁
检测到没有润滑液或润滑电动机过热报警后向系统发出报警信息,并停止定时润滑的工作。
急停对润滑运转进行了安全互锁。
3.程序设计
电气部分的设计如图6.4.2所示,图中各器件的含义如下:
序号
名称
含义
1
M4
润滑电动机
2
QF6
润滑电动机带过载保护的电源空开
3
KM7
润滑电动机启动交流接触器
4
KA1
由急停控制的中间继电器
5
KA10
润滑电动机启动中间继电器
6
HL1
润滑报警指示灯
7
RC5
三相灭弧器
8
RC11
单相灭弧器
定时润滑涉及到的寄存器如下:
X1.5:
润滑液位低报警检测;X2.7:
润滑电动机过热报警检测;
Y0.7:
润滑电动机控制;Y1.6:
润滑系统报警指示灯;
数控机床的润滑系统一般要求每间隔数十分钟甚至几个小时工作几秒钟,而一般PLC的定时器没有这么大的定时范围,因此采用定时器和计数器相结合的方法来扩大定时范围,下面以每隔一小时润滑10秒为例设计定时润滑系统的PLC梯形图程序如下:
X1.5和X2.7硬件上均按常闭点连接,PLC再按常闭点判断则正常时都是断开的,Y1.6(报警指示灯)没有输出,一旦出现了一个或两个报警则硬件上为断开状态,PLC内部因取常闭点而闭合,Y1.6有输出提示报警。
开始上电时R0.0为0,C0、T1以及T2都处于复位状态,T0处于定时状态,时间为10秒,定时完成后R0.0自锁保持1状态,则对C0、T1、Y0.7没有影响。
若X1.5或X2.7任意一个出现了故障报警,则R0.0变为0,重新复位C0、T1以及T2,故障消除后,T0又开始计时,R0.0延时10秒后再变为1。
因此用R0.0的常闭点可以保证每次开机和故障消除后Y0.7能马上输出,控制润滑10秒。
R0.0变为1后,T0一直被复位,T1开始工作,定时时间是60秒,因此每隔60秒C0计数一次,C0的设定值是60,因此,1小时后C0计数完成,这期间T2一直处于复位状态。
C0计数完成后,常开点闭和,复位T1,而T2开始计时,T2的设定时间是10秒,10秒钟后T2的常开点闭合复位C0,因此C0的1状态只维持10秒即变为0,同时把T2复位,由于T2、C0、T1都处于复位状态,R0.0为1,T1又开始计时,每隔60秒向C0发送一个脉冲,进入新一轮循环。
可见每隔1小时,C0即输出10秒钟,用C0的常开点控制Y0.7即实现了控制的要求。
三.自动换刀
1.车床刀架
(1)过程分析
以四工位自动刀架为例,刀架电动机采用三相交流380V供电,正转时驱动刀架正向旋转,各刀具按顺序依次经过加工位置(如图6.4.4所示),刀架电动机反转时,刀架自动锁死,保证刀具能够承受切削力。
每把刀具各有一个霍尔位置检测开关。
换刀动作由T指令或手动换刀按钮起动,换刀过程如下:
(a)刀架电动机正转;
(b)检测到所选刀位的有效信号后,停止刀架电动机,并延时(100ms);
(c)延时结束后刀架电动机反转锁死刀架,并延时(500ms);
(d)延时结束后停止刀架电动机,换刀完成。
车床刀架不存在刀具交换的问题,刀具选好后既可以开始加工,因此车床的换刀由T指令(选刀指令)完成,而不需要换刀指令(M06指令)的参与。
(2)安全互锁
(a)刀架电动机长时间旋转(如20秒),而检测不到刀位信号,则认为刀架出现故障,立即停止刀架电动机,以防止将其损坏并报警提示;
(b)刀架电动机过热报警时,停止换刀过程,并禁止自动加工;
(c)其余参考本章第二节。
(3)程序设计
电气部分的设计如图6.4.5所示。
图中各器件的含义如下:
序号
名称
含义
1
M2
刀架电动机
2
QF3
刀架电动机带过载保护的电源空开
3
KM5、KM6
刀架电动机正、反转控制交流接触器
4
KA1
由急停控制的中间继电器
5
KA6、KA7
刀架电动机正、反转控制中间继电器
6
S1~S4
刀位检测霍尔开关
7
SB11
手动刀位选择按钮
8
SB12
手动换刀启动按钮
9
RC3
三相灭弧器
10
RC9、RC10
单相灭弧器
自动刀架控制涉及到的输入/输出寄存器如下:
X2.7:
刀架电动机过热报警输入;
X3.0~X3.3:
1~4号刀到位信号输入;
X30.6:
手动刀位选择按钮信号输入;
X30.7:
手动换刀启动按钮信号输入;
Y0.6:
刀架正转继电器控制输出;
Y0.7:
刀架反转继电器控制输出。
PLC程序按定时循环扫描的方式执行,与换刀相关的的程序扫描周期为16mS,用plc1_time表示。
程序中利用这一点实现定时(延时)功能。
程序中用到的变量说明如下:
*sys_ext_alm():
用于设定外部报警,为一16位二进制数,每一位代表一个报警,可设定0~15共16个外部报警。
某位为1时,相对应的外部报警显示,为0时则清除相对应的报警。
mod_T_code(0):
T指令代码,一般为三位十进制数,百位表示刀号,个位十位表示刀偏号。
置“-1”时T指令完成。
T_stage:
定义换刀顺序标记的局部变量(字符型)。
T_stage_dwell:
定义换刀延时时间的局部变量(无符号整型)。
T_NO:
定义所选刀号的局部变量(字符型)。
车床刀架用T指令换刀的C语言PLC处理程序如下:
if((X[2]&0x80)==0)//若电机过热(X2.7为0)
{
*sys_ext_alm()|=4;//则显示2号外部报警:
刀架电动机过热。
mod_T_code(0)=-1;//强制T指令完成。
return;//从T指令处理程序返回到PLC主程序(以下简称“返回”)。
}
else//否则
*sys_ext_alm()&=~4;//清除2号外部报警。
T_NO=mod_T_code(0)/100;//由T指令获得所要选的刀号,
//例如T121,指选1号刀,刀偏值取21号。
if(T_stage_dwell>plc1_time)//若设定的换刀延时时间未完成
{
T_stage_dwell-=plc1_time;//则延时时间减去本程序执行周期的扫描时间。
return;//并且返回。
}
else//否则
T_stage_dwell=0;//清零为下次延时准备,
//进入switch结构,执行换刀顺序的下一步。
switch(T_stage)//读取换刀顺序标记
{
case0:
//换刀第0步
Y[0]|=0x40;//输出Y0.6,刀架正转。
break;//退出switch结构(以下简称“退出”)。
case1:
//换刀第1步
if((X[3]&0xF)!
=(1<<(T_NO-1)))
{//若本扫描周期读取的刀位信号不是所选刀
T_stage=0;//则,回到换刀第0步,即保持正转继续找刀。
T_change_time+=plc1_time;//记录正转时间。
If(T_change_time>8000)//若超过8秒没有找到目标刀位
{
*sys_ext_alm()|=8;//则显示3号外部报警:
换刀超时。
Y[0]&=~0x40;//停止电动机。
mod_T_code(0)=-1;//T指令强制完成。
break;//退出。
}
else
*sys_ext_alm()&=~8;//否则清除3号外部报警。
break;//退出。
}
Y[0]&=~0x40;//否则,表示以到达所选刀位,Y0.6置零,停止刀架正转。
T_stage_dwell=100;//设定停止延时=100毫秒。
break;//退出。
case2:
//换刀第2步。
Y[0]|=0x80;//Y0.7置1,刀架电动机反转锁死刀架。
T_stage_dwell=500;//反转时间为500毫秒。
break;//退出。
case3:
//换刀第3步
Y[0]&=~0x80;//Y0.7置0,刀架电动机停止旋转。
mod_T_code(0)=-1;//置T指令完成标记。
break;//退出。
}
T_stage++;//换刀顺序标记加1。
//若顺利,下面的程序扫描周期中,
//待延时时间完成后自动进入换刀顺序过程的下一步。
换刀可以用手动按钮实现,PLC处理程序与上面相似,只是换刀号“T_NO”的获取方法不是靠T指令,而是靠选刀按钮设定,读者可尝试自己编写车床自动刀架手动换刀的PCL程序。
2.加工中心刀库
(1)
过程分析
以立式加工中心16位转塔式刀库为例,刀库由直流电动机+凸轮机构驱动,可以正/反双向选刀;由一个无触点接近开关检测刀位信号;刀库左右移动以及松刀有液压阀驱动;松刀时有吹气机构清洁主轴的锥孔以保证下次紧刀的质量。
机床换刀机构如图6.4.6所示。
该机床要求Z轴与刀库的位置要相互配合才能完成换刀,换刀中,它们的位置如图6.4.7所示。
Z轴位置1:
主轴上的刀具与刀库上的刀具在同一水平高度,在该位置刀库靠近主轴后,可以做从主轴上取刀前的松刀动作,也可以作往主轴上上刀前的刀具夹紧动作,此时主轴必须是定向状态;
Z轴位置2:
在此位置主轴底端面高于刀库上刀柄的最高位置,此时不论刀库在哪里,若主轴上没有刀具,则主轴不会与刀库的回转发生干涉;
刀库位置1:
又称刀库远离主轴,刀库最右侧与主轴的最左侧无重叠区,此时刀库与Z轴任意位置的上下移动都不发生干涉;
刀库位置2:
又称刀库靠近主轴,此时刀库最右侧的刀位(刀柄)与主轴同轴。
T1—T16指令指定刀具号(选刀),M06指令起动换刀,换刀过程如下:
(a)Z轴带动主轴移动到Z轴位置1(要求有回参考点的功能),同时主轴定向;
(b)刀库靠近主轴移动到刀库位置2将主轴上的刀具置入空刀位;
(c)松刀,吹气,同时Z轴上移到Z轴位置2;
(d)刀库按最近的路线旋转到所选刀具的位置;
(e)Z轴带动主轴下移到Z轴位置1,同时主轴吹气;
(f)刀具夹紧;
(g)刀库后退返回到远离主轴的刀库位置1,主轴取消定向;
(h)保存当前到位信息,换刀完成。
由于这种刀库没有机械手,换刀时必须先取下主轴上的刀具,然后才能选刀和上刀,换刀后留下的空刀位必须正对主轴,以便下次换刀时取主轴上的刀具,因此刀具和刀位是一一对应的,无法提前选刀和随机放刀。
采用机械手换刀的加工中心,则可以提前选好刀具,换刀时用机械手同时取下主轴上的刀具和所选刀具,然后机械手旋转180同时将所选刀具放入主轴和把主轴上的刀具放入刀库。
这样从主轴上换下的刀具就放入了刚刚取下刀具的刀位,因此刀具号和刀位号不是一一对应的。
可见,采用本书的例子,选刀指令(T指令)和换刀指令(M06)一般要求在同一程序段内,而机械手式刀库,选刀指令(T指令)和换刀指令(M06)既可以在同一条程序段内,也可以在两条程序段内分别独立执行。
(2)安全互锁
参考本章第二节。
(3)程序设计
电气部分的设计如图6.4.7所示。
刀库由单相交流电动机驱动,工作电压为交流100V,由继电器KA13控制电动机的启停,继电器KA14通过选择切换电动机工作的绕组来控制刀库电动机的旋转方向以实现刀库的双向就近选刀。
设计有制动模块(BREAKUNIT)实现刀库电动机的快速停转,刀库的定位由凸轮结构保证,电动机每旋转一圈,刀库转过一个刀位,并且由刀位计数器(S1:
无触点感应开关)向PLC发送一个脉冲用于判断当前刀位号。
刀库的平移、主轴吹气、松刀等动作由电磁阀控制,电磁阀的工作电压是交流220V。
电磁阀的线圈由中间继电器控制,继电器工作电压为直流24V。
图中各器件的含义如下:
序号
名称
含义
1
M4
刀库电动机
2
QF12
刀库电动机带过载保护的电源空开
3
R1、R2
刀库电动机制动用电阻
4
C1
刀库电动机启动电容
5
YV1
松刀电磁阀,通电时主轴上刀具松开;失电时刀具夹紧
6
YV2
主轴吹气阀,刀具夹紧前,用高压气体将刀柄吹干净,以保证刀具的夹紧质量。
7
YV3
刀库退回位阀,得电时控制刀库向远离主轴的方向平移。
8
YV4
刀库换刀位阀,得电时控制刀库向靠近主轴的方向平移。
9
KA9~KA12
控制电磁阀的中间继电器。
10
KA13、KA14
控制刀库电动机启停和旋转方向的中间继电器。
11
KA15
得电时起动主轴定向功能。
12
SQ6、SQ7
判断刀具是否可靠地夹紧和松开。
13
SQ19、SQ20
判断刀库是否完成了远离主轴和靠近主轴的动作。
14
SQ5
主轴罩开关,主轴罩
15S
SQ8
防护门开关,防护门打开后不能换刀,以免出现事故。
16
RC8~RC11
单相灭弧器
刀库换刀控制涉及到的输入/输出寄存器如下:
X1.6:
气压报警输入;
X1.7:
刀位计数器输入;
X2.0:
刀具夹紧到位回答信号输入;
X2.1:
刀具松开到位回答信号输入;
X2.2:
刀库远离主轴到位回答信号输入;
X2.3:
刀库靠近主轴到位回答信号输入;
X3.1:
主轴速度为零回答信号输入;
X3.3:
主轴定向完成回答信号输入;
Y0.5:
控制松刀的继电器指令输出信号;
Y1.2:
控制主轴吹气的继电器指令输出信号;
Y1.3:
控制主轴定向的输出信号;
Y1.4:
控制刀库离开主轴的继电器的指令输出信号;
Y1.5:
控制刀库靠近主轴的继电器的指令输出信号;
Y1.6:
控制刀库电动机启停的继电器的指令输出信号;
Y1.7:
控制刀库电动机旋转方向的继电器的指令输出信号;
与车床PLC程序相同可以利用PLC定时循环扫描周期(plc1_time)实现自动换刀各顺序步之间的延时处理。
和自动换刀相关的程序主要包括五个子程序:
Tool_Change_Enable():
用于判断换刀条件是否满足,以及报警;
exec_T(0):
用于处理T指令(选刀指令);
exec_M(0):
用于处理M指令(辅助功能),主要介绍和换刀相关的部分;
Tool_Find():
用于控制刀库旋转选择刀具;
Tool_Change():
用于交换刀具。
由于本例中刀库上刀具号和刀位号是一一对应的,因此,只需要对主轴上(刀位0)上所装刀具号进行断电保存处理即可。
另外为了调试方便,设定了单步调试功能,相关定义如下:
P[96]=0:
连续换刀;P[96]=1:
单步换刀,
单步换刀时由按钮X30.6启动下一步开始。
还增加一些辅助的M指令用于单独调试和自动换刀相关的机床动作,如刀库进/退,主轴定向,刀具松/紧等。
程序中用到的变量说明如下:
*sys_ext_alm():
用于设定外部报警,参考车床刀架自动换刀PLC程序说明。
mod_M_code(0):
M指令代码,M00~M99。
置“-1”时M指令完成。
mod_T_code(0):
T指令代码,T1~T16。
置“-1”时T指令完成。
*axis_stat
(2):
坐标轴2即Z轴状态,共16位每一位表示一种状态,用一个较直观的字符串表示,例如,AX_COORD_SETUP:
已回参考点建立了机床坐标系;AX_LOCK:
锁住。
*tot_mag_pos():
总刀位数,本例包括刀库(16)和主轴
(1)共17位。
*cutter_in_mag(0):
当前主轴(0刀位)上的刀具号。
get_axis_pos
(2):
读轴2(Z轴)机床坐标位置。
set_axis_moveto(2,l,to_pp8ms(5000)):
令轴2(Z轴)以5000毫米/分钟的速度移动到机床坐标值为l的位置。
to_pp8ms(5000):
将5000毫米/分钟的进给速度转换为脉冲当量/插补周期。
get_axis_den
(2):
0:
轴2(Z轴)未完成定位;1:
轴2已完成定位。
plc1_time:
PLC扫描周期(16毫秒)。
spdl_ctrl:
主轴控制字,0:
停止,1:
正转,2:
反转。
mac_lock():
机床锁住标记,0:
未锁,1:
锁住。
mst_lock():
MST指令锁住标记,0:
未锁,1:
锁住。
z_lock():
Z轴锁住标记,0:
未锁,1:
锁住。
mod_T_buf:
T指令缓存。
Tool_Counter:
选刀时转过的刀位数(-7~-1,1~8)负号表示反转。
Tool_New_Pos:
新刀具的位置,0~16。
Tool_Find_Ctrl:
选刀控制,0:
无选刀要求,1:
有选刀要求。
Tool_Find_Stage:
选刀过程的顺序标记。
Tool_Find_Finish:
选刀过程完成标记,0:
未完成,1:
完成。
Z_Old_Pos:
换刀前Z轴的机床坐标位置。
Tool_Change_ctrl:
换刀控制,0:
无换刀要求,1:
有换刀要求。
Tool_Change_stage:
换刀过程的顺序标记。
Tool_Change_finish:
换刀过程完成标记,0:
未完成,1:
完成。
Tool_Change_dwell:
换刀过程各顺序步之间的延时时间(单位:
毫秒)。
Air_Dwell:
主轴吹气延时时间(单位:
毫秒)。
C语言PLC程序如下:
换刀使能判断子程序:
intTool_Change_Enable(void)//换刀使能判断子程序。
{
if((X[1]&0x40)==0x40)//如果气压报警(X1.6为1)
*sys_ext_alm
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 64 数控机床 PLC 控制 应用 实例 doc