游乐游手机版
首页/AI热点日报/热点详情

高精度等间距粒子群优化二维三维输出教程

类型:热点整理2026-07-06
上一讲梳理了PSO的几种典型模式及其原理,这次集中解决一个问题——如何利用PSO功能实现高精度的等间距输出。 ZMC460N双总线控制器 一、硬件说明 要实现这样的功能,硬件上需要满足什么条件?首先,支持PSO是必须的。接下来根据应用场景和轴数选具体型号。这里以ZMC460N双总线运动控制器为例展开
上一讲梳理了PSO的几种典型模式及其原理,这次集中解决一个问题——如何利用PSO功能实现高精度的等间距输出。 ZMC460N双总线控制器

一、硬件说明

要实现这样的功能,硬件上需要满足什么条件?首先,支持PSO是必须的。接下来根据应用场景和轴数选具体型号。这里以ZMC460N双总线运动控制器为例展开。 PSO的核心作用就是控制激光或点胶阀这类执行器的高速开关,直线插补和平面圆弧插补用来完成加工轨迹,连续插补则让多段插补的速度连贯起来,加工效率自然就上来了。

ZMC460N双总线控制器

ZMC460N是正运动技术推出的新一代网络60轴运动控制器,支持EtherCAT总线轴、RTEX总线轴和脉冲轴混合使用。自带六个脉冲轴接口(包含差分脉冲输出和差分编码器输入),通用输出口可配置为单端脉冲输出,通用输入口可配置为单端编码器输入。脉冲输出频率最高可达10MHz,EtherCAT总线通讯周期最快250微秒。 支持12路PSO输出,输出口独立,12路可同时输出,每个系统周期能比较输出多次,应用场景更丰富。 ZMC460N双总线控制器架构图 PSO功能主要通过“HW_PSWITCH2”硬件位置比较输出指令和“HW_TIMER”硬件定时指令实现。下面详细说说这两个指令的用法。

二、指令说明

1.HW_PSWITCH2 案例会用到HW_PSWITCH2的以下几个模式,指令语法说明如下: (1)Mode=6:矢量比较方式,周期模式,与HW_TIMER一起使用 HW_PSWITCH2(6,opnum,opstate,vectstart,repes,cycledis) * mode:6-启动比较器 * opnum:对应的输出口 * opstate:第一个比较点的输出状态 * vectstart:比较点VECTOR_MOVED当前运动距离 * repes:重复周期,一个周期只比较一次 * cycledis:周期距离,每隔这个距离输出一次 说明:此模式无需TABLE,坐标均参考矢量坐标。从vectstart的位置开始比较,每隔cycledis距离触发一次,重复比较的周期为repes。每次触发比较信号后,信号的脉冲宽度由HW_TIMER指令设置。HW_TIMER可以控制到达一个触发点后让OP反转多次,周期走完等待下一周期触发。 (2)Mode=7:矢量比较方式,采用TABLE,与HW_TIMER一起使用 HW_PSWITCH2(7,opnum,opstate,tablestart,tableend [,optimeus,optimes,cyctimeus]) * mode:7-启动比较器,opstate不翻转,方便与HW_TIMER配合 * opnum:对应的输出口 * opstate:第一个比较点的输出状态 * tablestart:第一个比较点VECTOR_MOVED坐标所在TABLE编号 * tableend:最后一个比较点VECTOR_MOVED坐标所在TABLE编号 [以下参数和HW_TIMER二选一,HW_TIMER单独写可以动态调整参数] * optimeus:动态调整HW_TIMER的有效时间 * optimes:动态调整HW_TIMER的触发脉冲数,0-不输出 * cyctimeus:动态调整HW_TIMER的脉冲周期时间 说明:比较点写在TABLE中,坐标均参考矢量坐标。每到达一个TABLE比较矢量位置触发OP,此时OP的脉冲宽度和每次触发的比较次数由HW_TIMER控制;到达下一个TABLE位置,OP再次触发。 2.HW_TIMER 硬件定时器,用于硬件比较输出后一段时间后还原电平。HW_TIMER只有1个,每次调用会强制停止之前的调用。不使用或比较完成时使用HW_TIMER(0)关闭。 HW_TIMER(mode,cyclonetime,optime,reptimes,opstate,opnum ) * mode:0停止,2-启动 * cyclonetime:周期时间,us单位 * optime:有效时间,us单位 * reptimes:重复次数,启动模式。reptimes =0时,软关闭HW_TIMER,原来的脉冲没有完成的会继续输出完成 * opstate:输出缺省状态,输出口变为非此状态后开始计时 * opnum:输出口编号,必须能硬件比较输出的口 说明:参数设置可参考下方示意图。此指令的效果是固定时间周期输出,设置每个周期的有效输出时间和重复输出次数。 使用HW_TIMER硬件定时无法仿真,只能在控制器平台运行。

三、二维等间距PSO输出

等距比较输出模式,不管运动速度和轨迹如何变化,始终固定距离输出脉冲,让输出在空间上均匀分布。示意图如下。 上一讲提到的几种模式中,有些能实现XY平面的等距输出。例如有一段上图所示的轨迹,由直线+圆弧+直线组成,每间隔10个距离比较输出一次,一共比较12次。等间距输出的具体方法看下面例程。 下面看个具体例子。这个例程用的就是模式6,矢量比较加HW_TIMER定时器。直接取两轴合成矢量位置作为比较基准,不需要事先算坐标,写起来省事,精度也高。
RAPIDSTOP(2) WAIT IDLE(0) WAIT IDLE(1) '基础轴参数设置 BASE(0,1) '选择XY轴 'ATYPE=4,4 '1-脉冲轴类型,比较DPOS;4-带编码器反馈轴类型,比较编码器的反馈位置MPOS UNITS=100,100 SPEED=100,100 ACCEL=1000,1000 DECEL=1000,1000 MERGE=ON,ON SRAMP=50,50 's曲线速度平滑 OP(0,OFF) '将当前位置设置为0,0 DPOS=0,0 MPOS=0,0 DIM WidthTime,Interval,StartPos,EndPos WidthTime = 20000 '脉冲宽度20000us Interval = 10 '脉冲间隔 StartPos = 10 '触发起始位置 EndPos = 130 '结束位置 FORCE_SPEED=60 'SP速度 MOVEABS(0) '运动到0位 WAIT IDLE VECTOR_MOVED = 0 '插补矢量距离清0 DIM iTime iTime =ABS(EndPos - StartPos) \ Interval '计算比较次数 TRACE StartPos,iTime,Interval,WidthTime HW_PSWITCH2(2) '清空HW比较缓冲区 HW_PSWITCH2(6,0,ON,StartPos,iTime,Interval) '从StrartPos触发比较间隔Interval比较iTime次 HW_TIMER(2,WidthTime+100,WidthTime,1,OFF,0) '输出触发变成ON后,打开WidthTime us后关闭输出 DELAY(10) TRIGGER '启动示波器 MOVEABS(50,0) '开始运动 MOVECIRCABSSP(75,25,50,25,0) MOVEABS(75,75) WAIT IDLE '等待运动停止 HW_PSWITCH2(2) '清空HW比较缓冲区 END
示波器采样波形如下:采样5个通道的波形,依次为轴0的目标位置,轴1的目标位置,输出口0,轴0和轴1插补的矢量合成位置,轴0和轴1插补的运行速度。 每间隔10个单位距离比较一次,一共比较12次。由HW_TIMER可精准控制输出脉冲的宽度,输出频率更快,整体精度更高。 XYZ模式下的比较输出波形: 总结一下:等距比较场合,模式6用起来最方便,只需要知道比较的距离和OP输出的时间就行。模式6适用于单轴和多轴插补场合。模式5和模式7也能实现同样的功能。

四、三维等间距PSO输出

1.三维等间距PSO输出示例 下面看一个三维等间距的例子,这次用模式7。模式6是按指令设置的固定触发距离周期输出,而模式7的输出位置由TABLE数据点控制,灵活性更高——既能实现上面的等距输出,也能实现间隔不固定的输出。
RAPIDSTOP(2) WAIT IDLE(0) WAIT IDLE(1) WAIT IDLE(2) '基础轴参数设置 BASE(0,1,2) '选择XY轴 'ATYPE=4,4,4 '1-脉冲轴类型,比较DPOS;4-带编码器反馈轴类型,比较编码器的反馈位置MPOS UNITS=100,100,100 SPEED=100,100,100 ACCEL=1000,1000,1000 DECEL=1000,1000,1000 MERGE=ON,ON SRAMP=50,50,50 's曲线速度平滑 OP(0,OFF) '将当前位置设置为0,0 DPOS=0,0,0 MPOS=0,0,0 FORCE_SPEED=60 'SP速度 MOVEABS(0,0,0) '运动到0位 WAIT IDLE VECTOR_MOVED = 0 '插补矢量距离清0 DIM WidthTime,T_Startnum,Pointnum WidthTime = 10000 '脉冲宽度10000us T_Startnum = 0 '比较点起始table编号 Pointnum = 8 '比较点个数 TABLE(T_Startnum,10,30,50,70,90,110,130,150) '比较点坐标设置,起始table位置T_Startnum,8个点 HW_PSWITCH2(2) '清空HW比较缓冲区 HW_PSWITCH2(7,0,ON,T_Startnum,T_Startnum+Pointnum-1) '模式7 HW_TIMER(2,WidthTime+100,WidthTime,1,OFF,0) '输出触发变成ON后,打开WidthTime us后关闭输出 DELAY(10) TRIGGER '启动示波器 MOVEABS(100,80,90) '三轴直线插补 WAIT IDLE '等待运动停止 HW_PSWITCH2(2) '清空HW比较缓冲区 END
示波器采样波形如下:采样6个通道的波形,依次为轴0的目标位置,轴1的目标位置,轴2的目标位置,输出口0,轴0轴1轴2插补的矢量合成位置,轴0轴1轴2插补的运行速度。 Table中存储的比较点矢量位置为10,30,50,70,90,110,130,150,共8个点。每到一个点触发比较,由HW_TIMER精准控制输出脉冲宽度,输出频率更快,整体精度更高。
来源:https://m.elecfans.com/article/1866931.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。