您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > 数控机床PLC程序设计
PLC程序设计【实际的PLC代码以实际应用为准】设计思想PMAC内嵌了PLC功能,以支持数控系统的逻辑处理和I/O控制,并且具有一般PLC的运行特征,即循环运行方式,但通常是通过语句程序实现的,而且没有明确的集中处理约束,因此在进行复杂PLC程序设计时应借鉴常规PLC的设计方法和原则,才能保证程序逻辑的准确性。要实现PLC的集中输入输出特性,首先要保证I/O语句在程序中的位置,即首先将输入端口的状态数据读入映象寄存器中,使运行程序只检测该寄存器的状态,将输出结果存放在输出映象寄存器中,昀后将输出映象寄存器的内容映射到实际物理端口。在配置了ACC-34A端子板的PMAC系统中,程序格式如下:(1)数据定义M1000-TWS:1;输入端口定义M1001-D:$0010F0;建立输入映像M800-Y:$0010F0,0;分解输入字节M801-Y:$0010F0,1……M1002-TWS:6;输出端口定义M1003-D:$0010F1;建立输出映像M900-Y:$0010F1,0;分解输出字节M901-Y:$0010F1,1;分解输出字节……上述定义中,M1000和M1002分别对应输入和输出端口物理地址,由PMAC系统即时刷新端口状态;M1001和M1003为对应的映象变量,并指向PMAC固定存储器,以便在上电或复位时自动清零。把缓冲器字节分解成位,并由M变量直接进行位操作,方便了对端口各位的独立操作。(2)PLC程序openplc1;建立或打开程序缓冲区clear;清除缓冲区内容M1001=M1000;输入采样……;用户编制的程序逻辑M1003=M1002;输出刷新close;关闭缓冲区上述程序格式完全符合了PLC的基本工作方式,用户程序只需对M1001和M1003映象变量或分解后的M变量操作,不要直接访问M1000和M1002。梯形图是编制PLC程序的有效方法,将其引入PMAC的PLC程序设计中,代替直接使用编程语句的设计方法,在很大程度上降低了PLC程序设计难度。为描述该设计方法,以图1所示典型的电机正反转控制电路为例进行说明。在PMAC数控系统中,将按钮SB1、SB2、SB3和热继电器KR的常开触点接在端子板的输入端,将KM1和KM2接触器线圈接在输出端,则其控制逻辑可表达为图2所示的梯形图。KM1SB2KM1KM2SB1M800M801M901M900M900KM2SB3KM2KM1M901SB1M800M802M900M901KRM803KRM803图1电机正反转控制电路KRKM1SB1SB2KM1KM2KM2KM1KM2SB3图2电机正反转控制梯形图图2中的M变量分别对应按钮在PMAC中的输入位和输出位,因此M具有逻辑变量特性,即只能取值0或1。容易根据梯形图写出由布尔逻辑表达的PMAC程序语句:M900=(M800^1)&(M801|M900)&(M901^1)&(M803^1);M901=(M800^1)&(M802|M901)&(M900^1)&(M803^1);语句中的“|”是“位或”操作符,表示节点并联;“&”是“位与”操作符,表示节点串联;PMAC中没有“位反”指令,但可使用“异或”操作符“^”表示梯形图中的常闭节点,即有:M按位取反=M^1→M常闭节点显然,采用梯形图设计使逻辑关系清晰明了,尤其对于复杂的逻辑程序设计,采用布尔逻辑表达式避免了因大量使用If…Else…EndIf条件语句而造成的逻辑混乱,而且程序语句运算简单,有利于加快程序的执行速度。使用梯形图方式设计逻辑和变量分配,用位操作结合PMAC的结构控制语句将梯形图转换为程序语句。设计程序:系统安全程序PLC1,机床回零程序PLC2,固定功能程序PLC3。接口类变量使用M10~M39,M90~M99:PLC接受的命令:M10~M19M10:回零指令,1:执行回零控制过程,回零结束变量自动复位;0:取消回零运动。M11:断电命令,1:切断伺服驱动电源,断电后变量自动复位。M12:主轴启动,1:主轴运行,变量自动复位。M13:主轴停止,1:主轴停止运行,变量自动复位。M14:刀具坐标修正,变量自动复位。在改变刀具时必须调用。M15:XZY坐标回零指令,变量自动复位。M16:数控复位指令,变量自动复位。M17~M19:未定M90,X轴JOG+,自动复位M91,X轴JOG-,自动复位M92,Y轴JOG+,自动复位M93,Y轴JOG-,自动复位M94,Z轴JOG+,自动复位M95,Z轴JOG-,自动复位M96,A轴JOG+,自动复位M97,A轴JOG-,自动复位M98,B轴JOG+,自动复位M99,B轴JOG-,自动复位Q98:刀具长度mmQ99:刀具半径mmQ127:主轴转速rpmQ128:XYZ直线点动移动增量mmQ129:AB旋转点动移动增量°Q130:倍率值PLC反馈的系统错误状态:M20~M29M20:伺服断电M21:伺服开环(已隐含致命跟随误差检查)M22:到达硬限位M23:到达限位(硬限位+软限位)M24:致命跟随误差M25:报警跟随误差M26:运行或计算错误M27:硬件或通讯错误M28:直线电机换向搜索零点开关报警M29:机床未回零报警PLC反馈的操作状态:M30~M39M30:机床回零成功M31:机床状态正常。如M31=0时,上位机操作时应检查M20~M29状态,并且操作许可为:如M22或M23或M28或M29为1,可以进行机床回零操作;如只有M23为1,可以进行点动操作或手动操作,使其离开软极限点;如只有M26为1,应检查NC程序中的参数错误,或逆解程序错误或其他计算错误。其他情况不能操作,建议用户重新冷启动系统。M32:NC程序正在运行。此时可以等待或数控复位或其他操作。M33~M39:未定操作补充:1、在MDA或JOG或Auto方式转换时,如已启动主轴,应保持主轴状态,不要自动关闭;2、任何方式下,都可通过按键启动主轴,但在Auto方式下不得通过按键停止主轴,在MDA或JOG方式下可以通过按键停止主轴。3、不要使用“A”指令,如需要退出运行程序时,应启动数控复位指令。使用的中间变量:M40~M69,M75~M79M40~M59:回零程序(PLC2)使用。M60~M69:安全程序(PLC1)使用。M75~M79:功能程序(PLC3)使用。注:M0~M9在程序中不得使用,保留给PMAC系统或自定义伺服算法。安全PLC程序梯形图M1001=M1000输入采样M121M22M122M221M222M321M322M521M522M621M622M800M68=10000M20驱动故障标志M138M21到达硬限位标志M238M338M538M638电机开环标志M131M23M132M231M232M331M332M531M532M631M632到达限位标志M142M24M242M342M542M642M141M241M341M541M641致命跟随误差M25报警跟随误差CMD^KM60M5182M26运行错误标志M5181M83M27硬件错误标志M84M86CMD“#1J/#2J/#3j/#5j/#6j/”M62M60M20M61断电脉冲产生M61M60M61M20驱动故障开环驱动正常闭环延时M62M20M63通电脉冲产生M63M62M63M20延时M10=0,M30=0CMD“#7O0”M901=1,M12=0M12主轴启动M10=0,M30=0要求主轴开环M13M20M900M21M23报警指示输出M24M25M26M27M11=0断电命令复位M20M28M902M21驱动上电保持M10M22M24M28M11M900M31运动使能标志M30M901=0M20强行停止主轴M21M779=Q127*I769/12000设定主轴转速M901=0,M13=0主轴停止M738CMD“#7O0”M5197=Q130*I10设定倍率M30M29未回零标志M5180M32程序正在运行输出刷新M1002=M1003上述延时均表达为:M68=2000;M69=M68;WHILE(M690);M69=M69-1;ENDWHILE本程序占用变量M60~M69M28由回零程序传过来,使直线电机负向搜索断电。M30为回零程序传过来的回零成功标志。M29为机床未回零报警标志M11为断电指令,M12为主轴启动指令,M13为主轴停止指令。主轴转速设定中,12000表示昀大转速,即12000rpm/10V,该值在变频器中已确定,即变频器10V-200Hz-12000rpm。主轴转速的设定方法:在开环状态下,使用“o0”后,直接通过M779(已定义指向7#电机PID内部滤波结果寄存器,16bitDAC)设定DAC输出,等效于“o数据”。倍率设定方法:直接将倍率值×I10写入M5197(已定义指向1#坐标系主命令时基寄存器),I10为伺服中断时间。机床回零PLC程序梯形图WHILE(M10=0orM20=1orM21=1)等待回零指令CMD^AM40HOME指令M121I123=-ABS(I123)直1负向搜索人工上电While(m140!=1)EndwM41CMD“#1HM”M40~M51=0,M58=1000,M28=0I123=ABS(I123),I223=ABS(I223),I323=ABS(I323)M145=0,M245=0,M345=0,M545=0,M645=0M41=1,M42=0,M28=1M40=1,M30=0复位HM状态CMD”#1j/#2j/#3j/#5j/#6j/”M51M21M51=0ENDWHILEM10=0M20M21退出运动程序延时CMD“#1HM#2HM#3HM#5HM#6HM”等待在“位置”M321I323=-ABS(I323)直3负向搜索人工上电While(m340!=1)EndwM45CMD“#3HM”M45=1,M46=0,M28=1M221I223=-ABS(I223)直2负向搜索人工上电While(m240!=1)EndwM43CMD“#2HM”M43=1,M44=0,M28=1M222I223=ABS(I223)直2正向搜索人工上电While(m240!=1)EndwM44CMD“#2HM”M44=1,M43=0,M28=1M322I323=ABS(I323)直3正向搜索人工上电While(m340!=1)EndwM46CMD“#3HM”M46=1,M45=0,M28=1M122M42直1正向搜索I123=ABS(I123)人工上电While(m140!=1)EndwCMD“#1HM”M42=1,M41=0,M28=1M245M57M145M645M345M545到机床零位M621I623=-ABS(I623)Y负向搜索M622I623=ABS(I623)Y正向搜索While(m640!=1)EndwM49While(m640!=1)EndwCMD“#6HM”M50CMD“#6HM”M49=1,M50=0M50=1,M49=0M51M57M521M47I523=-ABS(I523)X负向搜索While(m540!=1)EndwM522I523=ABS(I523)CMD“#5HM”M47=1,M48=0M48X正向搜索While(m540!=1)EndwCMD“#5HM”M48=1,M47=0M57延时×5全部坐标回零M30=1M10=0减小跟随误差M5187M14=1CMD“Z”回零成功标志Z坐标修正回零结束上述延时均表达为:M58=2000;M59=M58;WHILE(M590);M59=M59-1;ENDWHILE延时的作用是:电机稳定后,才接受CMD命令,通过延时等待电机稳定。本程序占用M40~M59变量。图中,M10为机床回参考点指令,M10=1机床复位回参考点(HOME);回零过程结束后自动复位M10=0。M10=0可强行停止回零运动。通过M30可以检查回零状态,M30=1表示完成回零操作,M30=0失败。M28=1时(直线电机换向搜索),会传送给安全程序,自动断电,必须通
本文标题:数控机床PLC程序设计
链接地址:https://www.777doc.com/doc-5056784 .html