Equipment Manufactring Technology No.10,2007
收稿日期:2007-08-05作者简介:张铁异(1963—,男,广西荔浦人,广西大学机械工程学院讲师,硕士,主要研究方向:机电一体化技术。
基于松下电工F P1型PLC 的直线插补程序设计 张铁异,黄炳琼,卢福宁,黎毓鹏,曹晓中 (广西大学机械工程学院,广西南宁530004
摘要:PLC 在机械设备自动控制中有着广泛的应用,在PLC 上开发直线及圆弧插补功能将拓展PLC 在数控机床等领域的应用范围。介绍了在松下电工FP1型PLC 上开发直线插补程序实现对二维数控平台控制的方法。关键词:PLC ;直线插补;松下电工中图分类号:TP273
文献标识码:A
文章编号:1672-545X(200710-0068-03
可编程序控制器(PLC 在工业控制中有着广泛的应用,FP1是日本松下电工生产的小型PLC 系列产品,性能价格比
高,适合在我国中小企业应用。FP1的硬件配置较全,除主机外还可加I/O 扩展模块、A/D 、D/A 模块。机内有高速计数器,可同时输入两路频率高达10kHz 的脉冲,还可以输出频率可调的脉冲信号(晶体管输出型。该机配有RS-422接口,通过和
RS-232的接口适配器,可实现PC 机与PLC 之间的通信,并可
直接在PC 机上用梯形图进行编程调试。但该机型没有直线插补和圆弧插补功能,需要自行开发,而直线插补和圆弧插补功能则是在数控机床等领域必须使用的功能,可利用该机型所具有的基本指令和高级指令来设计,本文介绍该机型直线插补功能的实现方法,圆弧插补功能的实现可参照直线插补来进行。
设计采用由步进电机驱动的BDH-1型X-Y 绘图仪来模拟二维数控平台,作为用PLC 实现直线插补程序功能的执行机构,通过绘图仪能否绘出所要求的直线来验证插补程序的设计是否正确,最终实现PLC 对二维数控平台的控制。系统所用
PLC 型号为松下电工FP1-C40,步进电机的型号为45BF005-Ⅱ,步进电机的工作方式为三相六拍,用PLC 的输出Y1、Y2、Y3控制X 轴方向步进电机的A 、B 、C 三相,用PLC 的输出Y4、Y5、Y6控制Y 轴方向步进电机的A 、B 、C 三相,X0为启动
按钮(无自锁。
1直接控制步进电机正反转的设计
首先需要解决用松下电工FP1-C40型PLC 主控单元直接控制步进电机正反转的问题,步进电机正反转控制程序由以下部分组成:脉冲产生电路、环形分配电路、相脉冲分配电路。
1.1脉冲产生电路的设计
脉冲产生电路是利用定时器来组成,根据转动信号R4、R14、R5、R15输出脉冲宽度为一个扫描周期、脉冲间隔为给定定时值的脉冲,脉冲间隔的大小决定步进电机的转速。
1.2环形分配器设计
环形分配器设计是利用一个移位寄存器构成循环移位寄 存器来产生完成一个通电循环的6个节拍,也可用高级指令F121
(ROL 数据循环指令来完成。当系统启动后,移位数据输入端输入一个数据位“1”,数据位“1”移进最低位并有输出后立即断开,当移位次数等于步进电机的通电相序数时,则将最高位的输出信号反馈到移位数据输入端。控制X ,Y 轴方向移动的环行分配器分别采用了移位寄存器SR W2及SR W3。
1.3相脉冲分配电路设计
相脉冲分配电路的作用是将环形分配器工作时的输出,按节拍分别接通步进电机对应相序的相绕组。本设计中控制X 轴方向移动的SR W2的移位输出信号与步进电机正反转的通电相序符合以下的对应关系:
SR W2的移位输出信号:R20R21R22R23R24R25
步进电机正转通电相序:A AB B BC C CA 步进电机反转通电相序:A AC C CB B BA
可以看出,驱动A 相绕组的PLC 输出继电器的控制信号无论步进电机正转还是反转,均由R20、R21和R25接通。而驱动B 相绕组的输出继电器,在正转时由R21、R22和R23接通,在反转时由R23、R24和R25接通,驱动C 相绕组的输出继电器,在正转时由R23、R24和R25接通,在反转时由R21、
R22和R23接通。
驱动Y 轴方向A 、B 、C 三相绕组的输出继电器的控制与X 轴类似。 1.4步进电机的PLC 输出驱动电路
为了提高步进电机的转动频率,PLC 的输出类型应采用晶体管输出。为了能提供给步进电机较大的驱动电流,需要在
PLC 输出端增加功率放大电路。 2进行直线插补程序设计
在数控系统中刀具最小移动单位是一个脉冲当量,刀具的运动轨迹是折线,要用插补计算的方法确定刀具的运动轨迹。
2.1逐点比较法直线插补原理
1对于第一象限直线OA ,O 为插补起点,A 为插补终点, 68
《装备制造技术》2007年第10期
M为插补中间点,由插补原理可得到偏差函数为: F(x,y=yx a-xy a
其递推公式为:F(x+1,y=F(x,y-y a F(x,y+1=F(x,y-x a
当F(x,y>0时,M(x,y点在直线上方,进给机构向+X走一步。 当F(x,y=0时,M(x,y点在直线上,进给机构也向+X走一步; 当F(x,y<0时,M(x,y点在直线下方,进给机构向+Y方向走一步。
2终点判别:当x=Xa及y=Ya时,表示插补到达终点,停止插补,否则继续插补。 图1被插补直线 2.2直线插补的象限处理
对于第二象限直线L2,当偏差函数F≥0时,X轴的进给方向与第一象限直线L1不同,为-X方向;而对于偏差计算,当偏差函数F<0时,则要将Xa取绝对值,代入第一象限的插补运算公式进行偏差运算。同理,第三象限直线L3、第四象限直线L4象限也要将Xa、Ya取绝对值后代入第一象限的插补运算公式进行插补运算,同时要对进给方向进行判断。所以不同象限的直线插补运算只需要用同一种公式,所不同的是进给方向。
表1XY平面内不同象限直线插补的进给与偏差计算
2.3直线插补程序设计
从直线插补的原理可以看出,直线插补程序主要解决的问题是递推运算及直线的象限判断,这需要使用到较多的高级指令才能完成,如数据传输指令、数据比较指令、算术运算指令等,对擅长于逻辑控制的PLC来说,用梯形图来完成各种运算和判断需要对高级指令做充分的了解。
直线插补程序的开始首先要进行初始化,用高级指令中的数据传输指令F0(M V把X轴、Y轴的起点与终点坐标值分别存放入相对应的寄存器中,把X轴、Y轴起点坐标(0,0存入寄存器DT1、DT2中,(寄存器DT1、DT2同时也作为存放插补中间点的坐标值用,把X轴、Y轴终点坐标值(Xa,Ya存入寄存器DT3、DT4中,偏差F判别寄存器DT5清0。
要控制步进电机的进给方向是沿X轴方向进给还是沿Y 轴进给、是正转还是反转,要解决的问题是要判断出待插补的直线是位于第几象限。如果按照要判断出待插补的直线具体是位于第几象限的方法来编程,则会给梯形图设计带来很大的困难,为了编程简便,我们采用只比较终点坐标值DT3、DT4(Xa, Ya与起点坐标值DT1、DT2(也是插补中间点坐标值的大小,判断出待插补的直线是位于哪两个象限的方法,就可以给出步进电机的进给方向,这样简化了梯形图设计。将终点坐标值与起点坐标值进行比较,使用了比较指令F60(CM P,比较的结果(大于、等于、小于存放在内部特殊继电器R900A、R900B、R900C当中,用中间继电器R8、R2、R9保存终点的X坐标值与起点(或中间点的X坐标值进行比较的结果,并用中间继电器R10、R3、R11保存终点Y坐标值与起点(或中间点的Y 坐标值进行比较的结果,然后再用数据比较指令F60(CM P来比较偏差F判别寄存器存放的数据是大于0还是小于0,就可以根据表1决定步进电机的进给方向是沿X轴方向正转或反转还是沿Y轴正转或反转,用中间继电器R4、R14、R5、R15来存放,当其中某一继电器的值为ON时,则步进电机沿着该轴的转动方向进给一个脉冲,当R2与R3的值均为ON时,则该直线的插补运算结束,步进电机停止转动。