
技术摘要:
本发明提出了一种基于PLC的提高二维圆弧插补轨迹精度的实现方法,包括:对PLC程序中的圆弧指令进行解析,计算圆弧半径和圆弧起始、目标点所在半径轴线的向量角,计算运行轨迹的圆弧长度;计算每个插补周期在轮廓上移动的距离及当前插补点的速度,得到当前圆弧插补段的 全部
背景技术:
在工业控制等场合大量使用的传统PLC一般基于嵌入式处理器,具有低成本、低功 耗、使用方便、性能可靠等优点。现在的中小型PLC普遍都具有高速脉冲输出口,输出频率可 以达到500KHz,因此可以用高速脉冲口来控制步进、伺服电机,实现设备所需要的位置或者 速度的精确控制。 目前PLC运动控制以脉冲型为主,一般只具备单轴的运动功能,较少部分PLC支持 两轴的直线、圆弧插补功能,但是普遍存在圆弧插补性能不高,只能用于对精度要求不高的 应用场合。 运动控制PLC经常使用的平面圆弧插补方法有以下几种: 第一种逐点比较法,其优点是运算简单,轨迹精度较高,缺点是无法实现速度曲线 的规划,并且对于没有FPGA的PLC来说,完全依靠MCU的软件运算来产生脉冲,插补速度无法 提上去。 第二种是DDA插补方法,这种方法易于实现多坐标联动,较容易实现二次曲线插 补,其缺点是无法实现曲线的速度规划,并且在累加过程中固定的时钟频率,各轴进给脉冲 的频率在相邻直线段衔接处会导致速度的突变。 第三种是基于时间分割的插补算法,采用粗、精二级插补,粗插补用直线逼近曲 线、精插补用FPAG将两轴脉冲在一个插补周期时间内均匀发送出去,对于FPGA来说,其控制 两轴发送的精插补段为直线,因此圆弧的轨迹精度随着速度的提高会明显下降。 第四种方法是采用扩展DDA插补方法,先在圆弧轨迹上进行速度规划,粗插补出圆 弧段,将圆弧段的相关信息发给FPGA,在FPGA中采用DDA插补的方式来进行圆弧段的插补, 这种方式优化了DDA法相邻直线段衔接速度突变的问题,并且插补精度也优于第一种方法, 但是其圆弧插补径向误差有可能会大于1个脉冲当量。
技术实现要素:
本发明的目的旨在至少解决所述技术缺陷之一。 为此,本发明的目的在于提出一种基于PLC的提高二维圆弧插补轨迹精度的实现 方法。 为了实现上述目的,本发明的实施例提供一种基于PLC的提高二维圆弧插补轨迹 精度的实现方法,包括如下步骤: 在PLC控制器中采用嵌入式MCU控制器和FPGA控制器的硬件架构,其中,由所述MCU 控制器执行PLC控制器的运行解释环境,对PLC编程语言所编写的程序解析执行,对圆弧插 补指令进行预处理和插补计算;由FPGA控制器实现插补段的精处理及PLC控制器对外的高 4 CN 111580453 A 说 明 书 2/6 页 速脉冲输出,其中,圆弧插补过程,包括如下步骤: 步骤S1,由所述MCU控制器对PLC程序中的圆弧指令进行解析,获取当前位置坐标、 目标位置坐标和圆心坐标,计算圆弧半径和圆弧起始、目标点所在半径轴线的向量角,计算 运行轨迹的圆弧长度; 步骤S2,由所述MCU控制器根据设定的指令速度Vs、加速度Acc、减速度Dec,计算运 行轨迹中加速段、减速段、匀速段的运行距离、所需时间,并计算每个插补周期在轮廓上移 动的距离及当前插补点的速度,得到当前圆弧插补段的起始点坐标Xi-1,Yi-1和末端点坐标 Xi,Yi; 步骤S3,由所述MCU控制器根据当前圆弧插补段的起始点坐标Xi-1,Yi-1和末端点坐 标Xi,Yi,计算得到各轴的移动增量、移动步数和时钟频率; 步骤S4,由所述MCU控制器在圆弧的圆心建立平行于当前坐标系的圆心坐标系,并 将圆弧插补段的起始点坐标变换到圆弧的圆心坐标系下; 步骤S5,由所述FPGA控制器接收来自所述MCU控制器的圆弧插补段的信息,进行初 始化,计算各轴行进的位置作为圆弧过象限的判断依据; 步骤S6,由所述FPGA控制器在每个时钟周期,执行偏差判别、坐标进给、偏差计算 和终点判别。 进一步,所述MCU控制器和所述FPGA控制器采用并行总线交互信息。 进一步,在所述步骤S2中,所述MCU控制器根据指令速度Vs、加速度Acc、减速度 Dec,按照加减速曲线类型和弧长L,采用如下公式计算运行轨迹中加速段、减速段、匀速段 的运行距离、所需时间: 其中,S为距离,V0为起始速度,Vt为终止速度,a为加速度,t为时间。 进一步,在所述步骤S3中,根据计算得到的移动增量与脉冲当量相除,从而计算得 到各轴的移动步数;然后由插补周期和总步数,计算得到时钟频率。 进一步,在步骤S4中,采用如下方式,将圆弧插补段的起始点坐标变换到圆弧的圆 心坐标系下: 设Xo,Yo为圆弧圆心在当前坐标系下的绝对坐标,Xi-1,Yi-1为圆弧插补段起始点绝 对坐标,则变换矩阵为 通过左乘变换矩阵,将当前坐标系下描述的点转换成圆心坐标系下的坐标。 进一步,在所述步骤S5中,所述FPGA控制器接收的圆弧插补段的信息,包括:半径 R、X轴步数、Y轴步数、时钟频率、插补段起始点坐标 进一步,在步骤S6中,所述FPGA控制器执行偏差判别,包括如下步骤: 根据所处的象限选择对应的公式计算偏差,采用如下公式计算偏差,其中R为圆弧 半径,Fi为偏差,(Xi,Yi)为当前点: 5 CN 111580453 A 说 明 书 3/6 页 a)当Fi≥0时,当前点位于圆弧轨迹之外,此时存在两种情况,往x轴负向走一个步 长或者往x轴负向、y轴正向各走一个步长: 往x轴负向走一个步长,此时计算下一个点的公式为: 往x轴负向、y轴正向各走一个步长,此时计算下一个点的公式为: 需要比较这两种情况下所走到的下一个点的偏差,选择偏差小的; b)当Fi<0时,此时往y轴正向走一个步长,计算下一个点的公式为: 进一步,在步骤S6中,所述FPGA控制器执行坐标进给,包括如下步骤:根据上述偏 差判别的计算结果将产生的x、y轴的单位脉冲步长和脉冲方向发送到对应的高速脉冲输出 口。 进一步,在步骤S6中,所述FPGA控制器执行偏差计算,包括如下步骤:根据高速脉 冲输出口输出的x、y轴的单位脉冲步长和脉冲方向,对应更新存储单元Tx、Ty,并判断当前 所处的象限。 进一步,在步骤S6中,所述FPGA控制器执行终点判别,包括如下步骤:更新步长计 数Total,如果Total为零,代表行程结束。 根据本发明实施例的基于PLC的提高二维圆弧插补轨迹精度的实现方法,实现对 逐点比较法的一种改进,结合了时间分割法的优点,可以对圆弧轨迹进行速度曲线的规划, 同时圆弧轨迹插补精度可以控制在一个脉冲当量,同时相比较时间分割法,具有更高的轨 迹精度。本发明采用时间分割及逐点比较进行圆弧轨迹的插补,可以对圆弧轨迹的速度曲 线进行规划,对插补段起始点进行坐标变换,将FPGA时钟频率的计算放到MCU中进行处理可 以实现两轴的同时进给。 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本发明的实践了解到。 附图说明 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得 明显和容易理解,其中: 图1为根据本发明实施例的基于PLC的提高二维圆弧插补轨迹精度的实现方法的 流程图; 图2为根据本发明实施例的插补轨迹的示意图。