由于用纯PLC程序做插补,在速度方面有缺陷,所以我们选择最简单的逐点比较法在做这个程序。 我们尽量用最简单的指令来实现这个数学算法,这样可以方便移植到各种PLC中去。 这里我们用alt指令的一次开和关,表示一次脉冲输出,插补扫描用我们就用PLC的扫描周期。这样的话脉冲输出更慢,到了扫描周期的一半,所以这种方法作出的脉冲输出,最大也就1KHZ,实际过程中估计用处不大,但是比较粗糙,且要求不高的地方是可以用的。 程序结构如下:
PLC的程序我们主要实现以下4条常用的G代码!
G00—快速定位
格式:G00 X(U)__Z(W)__
说明:(1)该指令使刀具按照点位控制方式快速移动到指定位置。移动过程中不得对工件
进行加工。
(2)所有编程轴同时以参数所定义的速度移动,当某轴走完编程值便停止,而其他
轴继续运动,
(3)不运动的坐标无须编程。
(4)G00可以写成G0
例:G00 X75 Z200
G0 U-25 W-100
先是X和Z同时走25快速到A点,接着Z向再走75快速到B点。
G01—直线插补
格式:G01 X(U)__Z(W)__F__(mm/min)
说明:(1)该指令使刀具按照直线插补方式移动到指定位置。移动速度是由F指令
进给速度。所有的坐标都可以联动运行。
(2)G01也可以写成G1
例:G01 X40 Z20 F150
两轴联动从A点到B点
G02—逆圆插补
格式1:G02 X(u)____Z(w)____I____K____F_____
说明:(1)X、Z在G90时,圆弧终点坐标是相对编程零点的绝对坐标值。在G91时,
圆弧终点是相对圆弧起点的增量值。无论G90,G91时,I和K均是圆弧终点的坐标值。
I是X方向值、K是Z方向值。圆心坐标在圆弧插补时不得省略,除非用其他格式编程。
(2)G02指令编程时,可以直接编过象限圆,整圆等。
注:过象限时,会自动进行间隙补偿,如果参数区末输入间隙补偿与机床实际反向间隙
悬殊,都会在工件上产生明显的切痕。
(3)G02也可以写成G2。
例:G02 X60 Z50 I40 K0 F120
格式2:G02 X(u)____Z(w)____R(+\-)__F__
说明:(1)不能用于整圆的编程
(2)R为工件单边R弧的半径。R为带符号,“+”表示圆弧角小于180度;
“-”表示圆弧角大于180度。其中“+”可以省略。
(3)它以终点点坐标为准,当终点与起点的长度值大于2R时,则以直线代替圆弧。
例:G02 X60 Z50 R20 F120
格式3:G02 X(u)____Z(w)____CR=__(半径)F__
格式4:G02 X(u)____Z(w)__D__(直径)F___
这两种编程格式基本上与格式2相同
G03—顺圆插补
说明:除了圆弧旋转方向相反外,格式与G02指令相同。
下位机解析 这四条代码的方法:
我们分析发现每一条代码最大有四个参数
这样我们定义下面的寄存器
D0(指令序号,正在执行的x条代码)
(第1条)D1 (指令代码) D2 (第1个参数) D3(第2个参数) D4 (第3个参数) D5(第4个参数)
(第2条)D6 (指令代码) D7 (第1个参数) D8(第2个参数) D9 (第3个参数) D10(第4个参数)
(第3条)D11(指令代码) D12 (第1个参数)D13(第2个参数)D14 (第3个参数) D15(第4个参数)
(第4条)D16 (指令代码) D17 (第1个参数) D18(第2个参数) D19 (第3个参数) D20(第4个参数)
.................
如果我们要发送下面的四条代码,那么我只需发送相应的参数到PLC中就可以了。
1 G00 X75 Y200
2 G01 X40 y20 F150
3 G02 X60 Y50 I40 K0 F120
4 G03 X10 Y50 R20 F120
..................
有了上面的理解,我们就不不难写上位机程序了,其实上位机程序不难,用触摸屏,VB,组态修改上面的寄存器即可。
|