• 运动控制器PSO位置同步输出(三):高精度等间距二维三维PSO输出


    上节课程我们讲述了多种PSO模式原理和使用方法,本节课程我们主要讲解一下如何使用PSO功能实现高精度等间距输出。

    在这里插入图片描述

    一、硬件说明

    硬件选型的首要要求是支持PSO功能,再分析PSO的应用场合和轴数等选择具体的型号。本例以ZMC460N双总线运动控制器为例展开介绍。

    PSO功能用于控制激光或点胶阀的高速开/关,直线插补和平面圆弧插补功能用于完成加工轨迹,连续插补功能用于让多段插补的速度连续,提高加工的效率。

    在这里插入图片描述

    ZMC460N双总线控制器

    ZMC460N双总线控制器是正运动技术推出的新一代网络60轴运动控制器(支持EtherCAT总线轴+RTEX总线轴+脉冲轴混合使用),自带六个脉冲轴接口(包含差分脉冲输出和差分编码器输入),通用输出口支持配置为单端脉冲输出,通用输入口支持配置成单端编码器输入。脉冲输出频率最大可达10MHZ,EtherCAT总线的通讯周期最快可达250微秒。

    支持12路PSO输出,输出口独立,支持12路同时输出,每个系统周期可比较输出多次,应用场景更为丰富。

    在这里插入图片描述
    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反转多次,HW_TIMER周期走完等待下一周期的触发。

    在这里插入图片描述

    (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次,等间距输出的方法参见下方例程的说明。

    例程:采用mode=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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    示波器采样波形如下:采样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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    波器采样波形如下:采样6个通道的波形,依次为轴0的目标位置,轴1的目标位置,轴2的目标位置,输出口0,轴0轴1轴2插补的矢量合成位置,轴0轴1轴2插补的运行速度。

    Table存储的比较点矢量位置为10,30,50,70,90,110,130,150,共8个点,每到一个点触发比较,由HW_TIMER可精准控制输出脉冲的宽度,输出频率更快,整体精度更高。

    在这里插入图片描述

    2.视频演示

    高精度等间距二维三维PSO输出演示视频

    本次,正运动技术运动控制器PSO位置同步输出(三):高精度等间距二维三维PSO输出,就分享到这里。

    本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

  • 相关阅读:
    UNI-APP中如何通过配置访问代理,解决跨域问题
    CentOS安装双版本MySQL
    通过篡改cred结构体实现提权利用
    洛谷 P8741 [蓝桥杯 2021 省 B] 填空问题 题解
    1.4_29 Axure RP 9 for mac 高保真原型图 - 案例28【中继器-后台管理系统6】功能-原位修改数据
    分布式ID系统设计(3)
    matlab的矩阵常用操作方法
    STL应用 —— bitset
    Could not create the Java virtual machine解决
    vue学习笔记
  • 原文地址:https://blog.csdn.net/weixin_57350300/article/details/125997629