6.4数控机床PLC控制应用实例.doc

上传人:时光煮雨 文档编号:14873850 上传时间:2022-02-22 格式:DOC 页数:20 大小:2.04MB
返回 下载 相关 举报
6.4数控机床PLC控制应用实例.doc_第1页
第1页 / 共20页
6.4数控机床PLC控制应用实例.doc_第2页
第2页 / 共20页
6.4数控机床PLC控制应用实例.doc_第3页
第3页 / 共20页
6.4数控机床PLC控制应用实例.doc_第4页
第4页 / 共20页
6.4数控机床PLC控制应用实例.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《6.4数控机床PLC控制应用实例.doc》由会员分享,可在线阅读,更多相关《6.4数控机床PLC控制应用实例.doc(20页珍藏版)》请在三一文库上搜索。

1、64数控机床PLC控制应用实例前面已经提到,在PLC设计方面需要详细了解被控过程的工作过程和工作原理;在编程方面可以学习和参考系统提供的标准例程和编程说明书以及其它专门介绍PLC编程语言的参考书。因此本书对具体的编程方法不作详细的介绍,只针对数控机床PLC控制中比较典型的三个应用进行过程和安全互锁分析,每个应用提供一种不同编程语言的PLC程序。应用实例中的PLC均采用DC24V NPN型晶体管接口电路,即低电平有效。一 主轴系统1 过程分析主轴的控制包括正转、反转、停止、制动和冲动等。要求按正转按钮是电动机正转;按反转按钮时电动机反转;按停止按钮时电动机停止,并控制制动器制动2秒;按下冲动按钮

2、电动机正转0.5秒,然后停止;电动机过载报警后正/反转和冲动按钮无效。2 安全互锁参考本章第二节。3 程序设计电气部分的设计如图6.4.1所示,主轴为普通三相异步电动机,由交流接触器控制正反转;继电器采用直流24V供电,自带续流二极管;交流接触器采用交流110V供电。图中各器件的含义如下:序号名称含义序号名称含义1QF3主轴带过载保护电源空开2KM3主轴正转交流接触器3KM4主轴反转交流接触器4KA1由急停控制的中间继电器5KA4主轴正转中间继电器6KA5主轴反转中间继电器7KA6主轴制动中间继电器8KA9刀具松中间继电器9SB11主轴正转按钮10SB12主轴反转按钮11SB13主轴停止按钮1

3、2SB14主轴冲动按钮13RC2三相灭弧器14RC7,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-停止按钮未按下(停止按钮硬件上是常

4、闭连接)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.113. 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

5、. 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-主轴反转自锁。2

6、9. 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 程序设计电气部分的设

7、计如图6.4.2所示,图中各器件的含义如下:序号名称含义1M4润滑电动机2QF6润滑电动机带过载保护的电源空开3KM7润滑电动机启动交流接触器4KA1由急停控制的中间继电器5KA10润滑电动机启动中间继电器6HL1润滑报警指示灯7RC5三相灭弧器8RC11单相灭弧器定时润滑涉及到的寄存器如下:X1.5:润滑液位低报警检测;X2.7:润滑电动机过热报警检测;Y0.7:润滑电动机控制;Y1.6:润滑系统报警指示灯;数控机床的润滑系统一般要求每间隔数十分钟甚至几个小时工作几秒钟,而一般PLC的定时器没有这么大的定时范围,因此采用定时器和计数器相结合的方法来扩大定时范围,下面以每隔一小时润滑10秒为例

8、设计定时润滑系统的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的常闭点可以保证每次开机和故障消

9、除后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. 车床刀架

10、(1) 过程分析以四工位自动刀架为例,刀架电动机采用三相交流380V供电,正转时驱动刀架正向旋转,各刀具按顺序依次经过加工位置(如图6.4.4所示),刀架电动机反转时,刀架自动锁死,保证刀具能够承受切削力。每把刀具各有一个霍尔位置检测开关。换刀动作由T指令或手动换刀按钮起动,换刀过程如下:(a) 刀架电动机正转;(b) 检测到所选刀位的有效信号后,停止刀架电动机,并延时(100ms);(c) 延时结束后刀架电动机反转锁死刀架,并延时(500ms);(d) 延时结束后停止刀架电动机,换刀完成。车床刀架不存在刀具交换的问题,刀具选好后既可以开始加工,因此车床的换刀由T指令(选刀指令)完成,而不需要

11、换刀指令(M06指令)的参与。(2) 安全互锁(a) 刀架电动机长时间旋转(如20秒),而检测不到刀位信号,则认为刀架出现故障,立即停止刀架电动机,以防止将其损坏并报警提示;(b) 刀架电动机过热报警时,停止换刀过程,并禁止自动加工;(c) 其余参考本章第二节。(3) 程序设计电气部分的设计如图6.4.5所示。图中各器件的含义如下:序号名称含义1M2刀架电动机2QF3刀架电动机带过载保护的电源空开3KM5、KM6刀架电动机正、反转控制交流接触器4KA1由急停控制的中间继电器5KA6、KA7刀架电动机正、反转控制中间继电器6S1S4刀位检测霍尔开关7SB11手动刀位选择按钮8SB12手动换刀启动

12、按钮9RC3三相灭弧器10RC9、RC10单相灭弧器自动刀架控制涉及到的输入/输出寄存器如下:X2.7:刀架电动机过热报警输入;X3.0X3.3:14号刀到位信号输入;X30.6:手动刀位选择按钮信号输入;X30.7:手动换刀启动按钮信号输入;Y0.6:刀架正转继电器控制输出;Y0.7:刀架反转继电器控制输出。PLC程序按定时循环扫描的方式执行,与换刀相关的的程序扫描周期为16mS,用plc1_time表示。程序中利用这一点实现定时(延时)功能。程序中用到的变量说明如下:*sys_ext_alm():用于设定外部报警,为一16位二进制数,每一位代表一个报警,可设定015共16个外部报警。某位为

13、1时,相对应的外部报警显示,为0时则清除相对应的报警。mod_T_code(0):T指令代码,一般为三位十进制数,百位表示刀号,个位十位表示刀偏号。置“-1”时T指令完成。T_stage:定义换刀顺序标记的局部变量(字符型)。T_stage_dwell:定义换刀延时时间的局部变量(无符号整型)。T_NO:定义所选刀号的局部变量(字符型)。车床刀架用T 指令换刀的C语言PLC处理程序如下:if (X2&0x80)=0) /若电机过热(X2.7为0)*sys_ext_alm()|=4;/则显示2号外部报警:刀架电动机过热。mod_T_code(0)=-1;/强制T指令完成。return;/从T指令

14、处理程序返回到PLC主程序(以下简称“返回”)。else/否则*sys_ext_alm()&=4;/清除2号外部报警。T_NO=mod_T_code(0)/100; /由T指令获得所要选的刀号,/例如T121,指选1号刀,刀偏值取21号。if(T_stage_dwellplc1_time)/若设定的换刀延时时间未完成T_stage_dwell-=plc1_time;/则延时时间减去本程序执行周期的扫描时间。return;/并且返回。else/否则T_stage_dwell =0;/清零为下次延时准备,/进入switch结构,执行换刀顺序的下一步。switch(T_stage)/读取换刀顺序标记

15、case 0: /换刀第0步Y0|=0x40;/输出Y0.6,刀架正转。break;/退出switch结构(以下简称“退出”)。case 1:/换刀第1步 if(X3&0xF)!=(18000) /若超过8秒没有找到目标刀位*sys_ext_alm()|=8;/则显示3号外部报警:换刀超时。Y0&=0x40;/停止电动机。mod_T_code(0)=-1;/T指令强制完成。break;/退出。else*sys_ext_alm()&=8;/否则清除3号外部报警。break;/退出。Y0&=0x40;/否则,表示以到达所选刀位,Y0.6置零,停止刀架正转。T_stage_dwell=100;/设定

16、停止延时=100毫秒。break;/退出。case 2:/换刀第2步。Y0|=0x80;/Y0.7置1,刀架电动机反转锁死刀架。T_stage_dwell=500;/反转时间为500毫秒。break;/退出。case 3: /换刀第3步Y0&=0x80;/Y0.7置0,刀架电动机停止旋转。mod_T_code(0)=-1;/置T指令完成标记。break;/退出。T_stage+;/换刀顺序标记加1。/若顺利,下面的程序扫描周期中,/待延时时间完成后自动进入换刀顺序过程的下一步。换刀可以用手动按钮实现,PLC处理程序与上面相似,只是换刀号“T_NO” 的获取方法不是靠T指令,而是靠选刀按钮设定,

17、读者可尝试自己编写车床自动刀架手动换刀的PCL程序。2. 加工中心刀库(1) 过程分析以立式加工中心16位转塔式刀库为例,刀库由直流电动机+凸轮机构驱动,可以正/反双向选刀;由一个无触点接近开关检测刀位信号;刀库左右移动以及松刀有液压阀驱动;松刀时有吹气机构清洁主轴的锥孔以保证下次紧刀的质量。机床换刀机构如图6.4.6所示。该机床要求Z轴与刀库的位置要相互配合才能完成换刀,换刀中,它们的位置如图6.4.7所示。Z轴位置1:主轴上的刀具与刀库上的刀具在同一水平高度,在该位置刀库靠近主轴后,可以做从主轴上取刀前的松刀动作,也可以作往主轴上上刀前的刀具夹紧动作,此时主轴必须是定向状态;Z轴位置2:在

18、此位置主轴底端面高于刀库上刀柄的最高位置,此时不论刀库在哪里,若主轴上没有刀具,则主轴不会与刀库的回转发生干涉;刀库位置1:又称刀库远离主轴,刀库最右侧与主轴的最左侧无重叠区,此时刀库与Z轴任意位置的上下移动都不发生干涉;刀库位置2:又称刀库靠近主轴,此时刀库最右侧的刀位(刀柄)与主轴同轴。T1T16指令指定刀具号(选刀),M06指令起动换刀,换刀过程如下:(a) Z轴带动主轴移动到Z轴位置1(要求有回参考点的功能),同时主轴定向;(b) 刀库靠近主轴移动到刀库位置2将主轴上的刀具置入空刀位;(c) 松刀,吹气,同时Z轴上移到Z轴位置2;(d) 刀库按最近的路线旋转到所选刀具的位置;(e) Z

19、轴带动主轴下移到Z轴位置1,同时主轴吹气;(f) 刀具夹紧;(g) 刀库后退返回到远离主轴的刀库位置1,主轴取消定向;(h) 保存当前到位信息,换刀完成。由于这种刀库没有机械手,换刀时必须先取下主轴上的刀具,然后才能选刀和上刀,换刀后留下的空刀位必须正对主轴,以便下次换刀时取主轴上的刀具,因此刀具和刀位是一一对应的,无法提前选刀和随机放刀。采用机械手换刀的加工中心,则可以提前选好刀具,换刀时用机械手同时取下主轴上的刀具和所选刀具,然后机械手旋转180同时将所选刀具放入主轴和把主轴上的刀具放入刀库。这样从主轴上换下的刀具就放入了刚刚取下刀具的刀位,因此刀具号和刀位号不是一一对应的。可见,采用本书

20、的例子,选刀指令(T指令)和换刀指令(M06)一般要求在同一程序段内,而机械手式刀库,选刀指令(T指令)和换刀指令(M06)既可以在同一条程序段内,也可以在两条程序段内分别独立执行。(2) 安全互锁参考本章第二节。(3) 程序设计电气部分的设计如图6.4.7所示。刀库由单相交流电动机驱动,工作电压为交流100V,由继电器KA13控制电动机的启停,继电器KA14通过选择切换电动机工作的绕组来控制刀库电动机的旋转方向以实现刀库的双向就近选刀。设计有制动模块(BREAK UNIT)实现刀库电动机的快速停转,刀库的定位由凸轮结构保证,电动机每旋转一圈,刀库转过一个刀位,并且由刀位计数器(S1:无触点感

21、应开关)向PLC发送一个脉冲用于判断当前刀位号。刀库的平移、主轴吹气、松刀等动作由电磁阀控制,电磁阀的工作电压是交流220V。电磁阀的线圈由中间继电器控制,继电器工作电压为直流24V。图中各器件的含义如下:序号名称含义1M4刀库电动机2QF12刀库电动机带过载保护的电源空开3R1、R2刀库电动机制动用电阻4C1刀库电动机启动电容5YV1松刀电磁阀,通电时主轴上刀具松开;失电时刀具夹紧6YV2主轴吹气阀,刀具夹紧前,用高压气体将刀柄吹干净,以保证刀具的夹紧质量。7YV3刀库退回位阀,得电时控制刀库向远离主轴的方向平移。8YV4刀库换刀位阀,得电时控制刀库向靠近主轴的方向平移。9KA9KA12控制

22、电磁阀的中间继电器。10KA13、KA14控制刀库电动机启停和旋转方向的中间继电器。11KA15得电时起动主轴定向功能。12SQ6、SQ7判断刀具是否可靠地夹紧和松开。13SQ19、SQ20判断刀库是否完成了远离主轴和靠近主轴的动作。14SQ5主轴罩开关,主轴罩15 SSQ8防护门开关,防护门打开后不能换刀,以免出现事故。16RC8RC11单相灭弧器刀库换刀控制涉及到的输入/输出寄存器如下:X1.6:气压报警输入;X1.7:刀位计数器输入;X2.0:刀具夹紧到位回答信号输入;X2.1:刀具松开到位回答信号输入;X2.2:刀库远离主轴到位回答信号输入;X2.3:刀库靠近主轴到位回答信号输入;X3

23、.1:主轴速度为零回答信号输入;X3.3:主轴定向完成回答信号输入;Y0.5:控制松刀的继电器指令输出信号;Y1.2:控制主轴吹气的继电器指令输出信号;Y1.3:控制主轴定向的输出信号;Y1.4:控制刀库离开主轴的继电器的指令输出信号;Y1.5:控制刀库靠近主轴的继电器的指令输出信号;Y1.6:控制刀库电动机启停的继电器的指令输出信号;Y1.7:控制刀库电动机旋转方向的继电器的指令输出信号;与车床PLC程序相同可以利用PLC定时循环扫描周期(plc1_time)实现自动换刀各顺序步之间的延时处理。和自动换刀相关的程序主要包括五个子程序:Tool_Change_Enable():用于判断换刀条件

24、是否满足,以及报警;exec_T(0):用于处理T指令(选刀指令);exec_M(0):用于处理M指令(辅助功能),主要介绍和换刀相关的部分;Tool_Find():用于控制刀库旋转选择刀具;Tool_Change():用于交换刀具。由于本例中刀库上刀具号和刀位号是一一对应的,因此,只需要对主轴上(刀位0)上所装刀具号进行断电保存处理即可。另外为了调试方便,设定了单步调试功能,相关定义如下:P96=0:连续换刀;P96=1:单步换刀,单步换刀时由按钮X30.6启动下一步开始。还增加一些辅助的M指令用于单独调试和自动换刀相关的机床动作,如刀库进/退,主轴定向,刀具松/紧等。程序中用到的变量说明如

25、下:*sys_ext_alm():用于设定外部报警,参考车床刀架自动换刀PLC程序说明。mod_M_code(0):M指令代码,M00M99。置“-1”时M指令完成。mod_T_code(0):T指令代码,T1T16。置“-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_po

26、s(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轴锁住标记

27、,0:未锁,1:锁住。mod_T_buf:T指令缓存。Tool_Counter:选刀时转过的刀位数(-7-1,18)负号表示反转。Tool_New_Pos:新刀具的位置,016。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:换刀过

28、程完成标记,0:未完成,1:完成。Tool_Change_dwell:换刀过程各顺序步之间的延时时间(单位:毫秒)。Air_Dwell:主轴吹气延时时间(单位:毫秒)。C语言PLC程序如下:换刀使能判断子程序:int Tool_Change_Enable(void)/换刀使能判断子程序。if(X1&0x40)=0x40)/如果气压报警(X1.6为1)*sys_ext_alm()|=0x400;/则输出10号外部报警,显示气压报警。else /否则*sys_ext_alm()&=0x400;/清楚10号外部报警。if(*axis_stat(2)&AX_COORD_SETUP)=0)| /若Z轴未

29、回过参考点,或 (*axis_stat(2)&AX_LOCK)|/Z轴处于锁住状态,或(*sys_ext_alm()&1)|/有1号外部报警:主轴故障,或(*sys_ext_alm()&2)|/有2号外部报警:进给驱动故障,或(*sys_ext_alm()&0x400)/有10号外部报警,气压报警,则return 0; /返回“0”,禁止换刀,并且/从换刀处理程序返回到PLC主程序(简称“返回”)。else/否则return 1;/返回“1”,允许换刀,并且返回。T指令(选刀)处理子程序:由于T指令选刀必须在换刀的过程中间完成,因此T指令处理子程序只对T指令进行数据传递,即完成。void ex

30、ec_T(0) / T指令处理子程序。if(mod_T_code(ch)!=-1)/若有新的T指令输入,mod_T_buf=mod_T_code(0);/对T指令缓存。mod_T_code(0)=-1;/T指令完成。与换刀相关的M指令处理子程序:void exec_M(0)/ M指令处理子程序。if(mac_lock()|mst_lock()/若机床锁住或MST锁住, mod_M_code(0)=-1;/M指令完成。return;switch(mod_M_code(0)/判断当前M指令。case 6:/M06:换刀M指令。if(mod_T_buf16)|/若T指令不在1到16之间,或(mod_

31、T_buf=*cutter_in_mag(0)/所选刀已经是主轴上的刀,mod_M_code(ch)=-1;/M指令完成。break;/退出。if(Tool_Change_Enable()=0)/若换刀不允许,则*sys_ext_alm()| = 0x4000;/输出14号外部报警:换刀不允许。break;else/否则,*sys_ext_alm()&=0x4000;/清除换刀不允许报警。if(Tool_Change_ctrl=0)/若未换刀未启动(换刀控制字为0)。Tool_Change_ctrl=1;/则启动换刀程序(换刀控制字置1)。Tool_Change_finish=0;Tool_N

32、ew_Pos =mod_T_buf;/从T指令缓存读新刀位置。break;以下为检查、调试换刀过程时所需的临时M指令:case 21:/M21:刀库正转一个刀位。Y1|=0x40; /刀库电动机启动(Y1.6置1)。Y1&=0x80; /关刀库反转控制(Y1.7清0)。if(X1)&(R101)&0x80)/若读到刀位计数器信号(X1.7下降沿),Y1&=0xc0;/停止刀库。mod_M_code(0)=-1;/M指令完成。break;case 22: /M22:刀库反转一个刀位。Y1|=0x40; /刀库电动机启动(Y1.6置1)。Y1|=0x80; /刀库反转控制输出(Y1.7置1)。if

33、(X1)&(R101)&0x80) /若读到刀位计数器信号(X1.7下降沿),Y1&=0xc0; /停止刀库(Y1.6、Y1.7置0)。mod_M_code(0)=-1; /M指令完成。break;case 23: /M23:刀库停止。Y1&=0xc0; /停止刀库(Y1.6、Y1.7置0)。mod_M_code(0)=-1; /M指令完成。break;case 31: /M31:刀库退回位,即远离主轴到刀库位置1。Y1|=0x10;/输出刀库退回控制信号(Y1.4置1)。Y1&=0x20; /关断刀库靠近主轴控制信号(Y1.5置0)。mod_M_code(ch)=-1; /M指令完成。bre

34、ak;case 32: /M32:刀库换刀位,即靠近主轴到刀库位置2。if(*axis_stat(2)&AX_COORD_SETUP)=0)/若轴2(Z轴)未回参考点,mod_M_code(0)=-1; /M指令完成。break;if(get_axis_pos(2)(-110000)/若轴2(Z轴)位置低于Z轴位置1(-110.000),mod_M_code(0)=-1; /M指令完成。break;Y1&=0x10; /关断刀库退回控制信号(Y1.4置0)。Y1|=0x20;/输出刀库靠近主轴控制信号(Y1.5置1)。mod_M_code(0)=-1; /M指令完成。break;case 33

35、: /M33:关闭刀库平移控制阀。Y1&=0x10; /关断刀库远离主轴控制信号(Y1.4置0)。Y1&=0x20; /关断刀库靠近主轴控制信号(Y1.5置0)。mod_M_code(ch)=-1; /M指令完成。break;选刀处理子程序:void Tool_Find(void)/选刀处理子程序int p1,p2;/定义临时变量*tot_mag_pos()=16+1;/定义刀位数为16(刀库)+1(主轴)=17。if(Tool_Find_Ctrl=0) /若选刀控制标记为0,即禁止选刀,Tool_Find_Stage=0;/则选刀顺序标记清0,回到初始值。return;/返回。switch(

36、Tool_Find_Stage)/否则,开始选刀,读取选刀顺序标记。case 0:/选刀第0步Tool_Find_Finish=0;/选刀完成标记清0。Tool_Find_Stage=1;/置下次PLC扫描周期进入的选刀顺序标记为1。break; /退出switch结构,以下相同。case 1: /选刀第1步p1=Tool_New_Pos-*cutter_in_mag(0);/计算正转转过的刀位。if(p10) /若0,表示新刀位当前位。p1+=16;/计算正转转过的刀位绝对值。/如从14号刀到1号刀,需要正转1-14+16=3个刀位。p2=*cutter_in_mag(0)-Tool_New

37、_Pos; /计算反转转过的刀位。if(p20) /若当前位。 p2+=16; /计算反转转过的刀位绝对值。/如从1号刀到4号刀,需要反转1-4+16=13个刀位。if(p1p2) p1=-p2;/选则最短路径,并包含旋转方向。Tool_Counter=p1;/置旋转刀位数Tool_Find_Stage=2; /置下次PLC扫描周期进入的选刀顺序标记为2。break;case 2: /选刀第2步。if(Tool_Counter0)/若旋转刀位数0表示正转选刀。Y1| = 0x40;/输出Y1.6启动刀库电动机旋转。Y1&=0x80;/关闭反转控制Y1.7,电动机正转。if(Tool_Counter0)/若旋转刀位数0)/正转选刀, Tool_Counter-=1;/则旋转刀位数-1。if(Tool_Counterplc1_t

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1