Power PMAC中运动程序的编写 —— 下

  • 1. 坐标系和轴定义
    • 1.1 轴定义
    • 1.2 坐标系定义
    • 1.3 坐标系及轴的定义例程
  • 2. 运动模式的介绍
    • 2.1 相对模式与绝对模式
    • 2.2 运动模式(直线、圆弧、样条、PVT)
  • 3. 运动程序的编写
    • 3.1 编写流程
    • 3.2 运动程序模板(重要!)
  • 4. 数据跟踪
  • 5. 编程实例
  • 声明

1. 坐标系和轴定义


定义坐标系的两种方法:

  1. 坐标轴定义语句,用于将电机映射到具有简单线性数学关系的轴;
  2. 运动学子程序,通常用于映射电机和轴之间的非线性关系,或用于非笛卡尔坐标系(如球面);

    对于第2种方法,在《Power PMAC运动控制器 —— 学习笔记4》进行讲解,本文只针对第1种做介绍:

1.1 轴定义

    在PMAC中,运动是通过轴来实现控制的,每个轴可以有多个电机,但一个电机只能指定一个轴。

    轴可以由以下字母来表示:A、B、C、U、V、W、X、Y、Z、AA、BB、CC、DD、EE、FF、GG、HH、LL、MM、NN、OO、PP、QQ、RR、SS、TT、UU、VV、WW、XX、YY、ZZ(注意没有II、JJ、KK),共计32个。

    其中II、JJ、KK是XX/YY/ZZ三维空间的向量名,A、B、C、AA、BB、CC通常被编程为旋转,X/Y/Z、XX/YY/ZZ、U/V/W、UU/VV/WW允许实时的3x3矩阵转换。其运动单位是由用户指定的,在《Power PMAC运动控制器 —— 学习笔记3》一文中已经介绍过。

轴有4种类型:

  1. 笛卡尔坐标系轴,由X/Y/Z、XX/YY/ZZ、U/V/W、UU/VV/WW指定,X/Y/Z、XX/YY/ZZ可实现三维空间的圆弧插补,刀具补偿指定在X/Y/Z
  2. 进给轴,默认情况下[x,y,z]是进给轴
  3. 旋转轴,由A、B、C、AA、BB、CC指定
  4. 运动学轴,采用运动学时要指定的轴,通过I来指定
  5. 虚轴,顾名思义,虚拟的不存在的轴,虚轴设定程序在《Power PMAC运动控制器 —— 学习笔记1》一文中已经给出。

    在一般情况下,我们可以狭义的认为一个轴对应一个电机,且可以抛开以上概念,直接指定电机对应的轴关系。如果是非线性的则必须使用逆运动学。

定义语法如下:

undefine  // 清除当前已寻址的坐标系的轴
undefine all    // 清除所有坐标系的轴定义
#n->{axis label}     //指定电机n到{axis label}轴
#n->0        //指定电机n到0轴,即未定义电机4
#1->1000X+500Y  // 线性轴的定义

另外,轴组成的坐标系可以实现平移和旋转,如下例:

正确的轴定义应如下图所示:

例程见1.3

1.2 坐标系定义

    如下图所示,坐标系是由一个或多轴组成的,它是一组电机和一系列电机与坐标轴之间的数学关系,需要联动的轴应该分组到相同的坐标系中,独立运动的坐标轴应该位于独立的坐标系中。

    对于坐标系的定义,比较简单,从上图可以看出,一个运动程序中可以有多个坐标系,此时运行的是相同的程序。

坐标系是在运动程序Motion Program中定义的,其定义语法如下:

&n   //n代表坐标系序号
&1  // 则代表定义1号坐标系

1.3 坐标系及轴的定义例程

undefine  all // 非必须
&1  // 定义/选择坐标系1
#1->1000X  // 将电机1分配到X轴上,每个用户单元电机走1000个计数
#2->500Y  // 将电机2分配到Y轴上,每个用户单元电机走500个计数

博主经验:
    对于任何一款运动控制器而言,最大联动数直接影响到产品的价格和型号,因此在购买控制器前,应先确定需求并联系技术咨询应该购买什么型号的控制器。

2. 运动模式的介绍


2.1 相对模式与绝对模式

  • abs: 绝对定位。PMAC会将传入的参数识别为绝对位置,从而进行运动
  • inc: 相对定位。PMAC按相对值执行

2.2 运动模式(直线、圆弧、样条、PVT)

  • Linear: 线性插值混合移动
  • Circle: 以指定的中心或半径和端点作圆周运动
  • Spline: 使用三次b样条插值器移动
  • Rapid: 使用pmac顺序的Jog动作。
  • PVT: 以指定的端点位置、速度和指定的移动时间移动。使用Hermite样条插值(机器人常用)

    在本文中主要讲解LinearPVT两种模式的区别,更详细的说明请参考手册《Power PMAC Users Manual》。

  1. 在使用Linear模式时,如文章开头所提,如果Blending是关闭的状态,给定电机一串轨迹点,电机在执行的时候会出现卡顿现象,这是因为此时没有开启速度插补,到达指定点时电机速度会降为0,因此电机在执行这串轨迹点的过程时是一个不断加速减速的过程(如下图Blending OFF所示);在Blending开启状态,电机会启动速度插补,因此会是一个连续过程,此时位置是连续的,从下图可以看出速度曲线不平滑,因此在多数情况下该模式用于回零或者指定点运动。

    使用示例如下:
linear  // Linear move mode
TM 1000 TA 500 TS 0  // Move time 1000 msec, Acc. Time 500 msec, No S-Curve Time
abs  // Absolute endpoint mode
X 20 Y 10  // Go to X=20, Y=10
  1. 在使用PVT模式时,此时会指定各轨迹点在执行过程中所对应的位置-速度-时间数据,此时速度曲线经过Hermite插值之后是平滑的,因此此模式在机械臂或多轴机床联动控制上最常用

使用语法如下:

pvt {time}  // time为上一点距离该点的时间间隔
{Axis} {Position}:{velocity} // Axis是要运动的轴,Position是相对于上一点绝对位置的增量位置

例程:

undefine  all
&1  // Address C.S. 1
#1->100X    // 100 counts is 1 user unit for X axis
open prog 4  // Open Program 4 buffer and clearinc  // Incremental endpoint definitionPVT 200  // PVT mode with move time T=200 msecX 133.333:1000  // Move 1: ΔP=133.333, V=1000PVT 100  // Change PVT move time to T=100 msecX 100:1000  // Move 2: ΔP=100, V=1000X 96.667:900  // Move 3: ΔP=96.667, V=900PVT 200  // Change PVT move time to T=200 msecX 140:500  // Move 4: ΔP=140, V=500PVT 500  // Change PVT move time to T=500 msecX 83.333:0  // Move 5: ΔP=83.333, V=0
close  // Close program buffer


    从上图我们可以看出,速度曲线是比较平滑的。

注意: 此模式需在相对模式(inc)执行,指定的时间间隔、位置均为相对值

3. 运动程序的编写


3.1 编写流程

  • step1:定义坐标系、关联电机和轴
  • step2:创建程序结构体open-close
  • step3:选择移动模式(Linear, Circle, Spline, Rapid, PVT)
  • step4:选择绝对(abs)或增量(inc)位置编程模式
  • step5:配置适当的速度、加速度和时间设置
  • step6:编写运动程序段
  • step7:下载运动程序
  • step8:测试/启动程序,首先伺服使能(#1j/)、电机回零(#1 homez),然后在终端中使用&m bn r命令执行,在PLC程序或者其他程序中可用cmd"&mbnr"或者start m:n来执行

3.2 运动程序模板(重要!)

坐标系号
电机指向
open prog  程序名      // 注意,程序名可为数字和大小写组成的字符串绝对/相对编程模式移动模式移动内容
close

例:
    当程序名称为大小写字母组成的字符串GatherExample时,终端的运行命令应该为:&1b GatherExample r
    此时应该注意,b、r与字符串名字之间应有空格作为分隔符!

&1   // 指定坐标系为坐标系1,即&nbmr中的n
#1->10X  //把电机1与X轴关联起来,比例系数为10open prog 1 //定义prog程序块,指定程序名称为1,即&nbmr中的mlocal data; //定义局部变量,使用local关键字声明abs         //指定是相对模式还是绝对模式linear       //指定运动模式TA 500      //加减速参数设置TS 500X 10     //运动到10的位置,此单位跟设置有关,如果用户单位设置为1,则此处运动到100cts的位置,由于程序开头10倍系数的存在dwell 1000 //延时1秒X 20close     //与open相对应的

    从上述程序来看,运动程序可分为2个模块:运动关联指定、函数体,其中函数体是open prog {name} - close结构,在函数体内又可分为两部分:运动参数指定和运动指令。对于PVT模式下的模板,请参考以下例程,其他运动模式用法,请参考手册《Power PMAC Software Reference Manual》和《Power PMAC Users Manual》。

undefine  all
&1  // Address C.S. 1
#1->100X    // 100 counts is 1 user unit for X axis
open prog 4  // Open Program 4 buffer and clearinc  // Incremental endpoint definitionPVT 200  // PVT mode with move time T=200 msecX 133.333:1000  // Move 1: ΔP=133.333, V=1000PVT 100  // Change PVT move time to T=100 msecX 100:1000  // Move 2: ΔP=100, V=1000X 96.667:900  // Move 3: ΔP=96.667, V=900PVT 200  // Change PVT move time to T=200 msecX 140:500  // Move 4: ΔP=140, V=500PVT 500  // Change PVT move time to T=500 msecX 83.333:0  // Move 5: ΔP=83.333, V=0
close  // Close program buffer

4. 数据跟踪


    在测试程序时,如何知道电机正确的按照给定数据执行的?

    我们可以使用数据跟踪工具来对电机执行过程中的数据进行采样监控。

有两种方法可以实现:

  1. 手动采集


  2. 在程序中自动采集
        缓存区大小的设置,从上图左下角红框内可以看到,我们可以根据实际需求设定最大采样时间以及采样周期。

    Gather.Enable  = 3;        //无限采集
    Gather.Enable  = 2;        //采集到之前设置的缓冲区大小Gather.Enable  = 1;     //停止采集;数据收集指针在缓冲区的末尾
    Gather.Enable  = 0;        //停止采集;将收集指针重置为缓冲区的起始点
    

    例子:

     ```dwell 0 Gather.Enable  = 2; dwell 0  //  开始采集Gather.Enable  = 0; dwell 0        // 停止采集```
    

    对于以上两种方法,采集完的数据处理方式是一样的,同样在绘图界面进行操作,首先点击上传数据,然后通过>>把要绘制的数据添加到数据处理以及绘制框内,最后点击绘制数据即可,此操作需要联机操作,故本文略去详细操作步骤。

5. 编程实例


&1
#1->1000X;
#2->1000Y;
open prog 1linear; abs; tm500; ta100; ts100;dwell 0 Gather.Enable  = 2; dwell 0 // 开始采集X0 Y10; X10 Y10; X10 Y0; X0 Y0; dwell 100; // 延时100msGather.Enable  = 0; dwell 0  // 停止采集
close

注意:
    ① 插补之间如果不加Dwell会超前执行下一条,导致轨迹错误
    
    ②多轴同时联动时,同一时刻各联动轴的数据应写在一行,否则PMAC脚本将按行执行。如下所示,例1将实现X和Y轴的联动,而例2先执行X100,再执行Y100
    

例1:X100 Y100
例2:X100
     Y100



声明


    1. 仅为技术分享交流,码字不易,转载请说明出处,违者必究,谢谢合作!
    2. 部分图片来源于PMAC手册,版权归欧姆龙所有。

Power PMAC运动控制器 —— 学习笔记3相关推荐

  1. Power PMAC运动控制器 —— 学习笔记1

    Power PMAC运动控制器--学习笔记1 说明 1. 硬件介绍 2. 准备工作 3. PMAC与上位机的连接 4. 创建自己的伺服控制项目 5. 程序下载流程 6. 学习途径 后记     有很多 ...

  2. Power PMAC运动控制器 —— 学习笔记2

    Power PMAC中运动程序的编写 -- 上 0. 说明 1. Power PMAC与驱动器的的连接 2. Power PMAC中Project的结构树介绍(重要!) 3. 硬件在控制器中的配置(重 ...

  3. Power PMAC运动控制器 —— 学习笔记6

    Power PMAC与上位机的Modbus通信 1. 启动modbus服务器 2. 用户共享内存缓冲区变量说明 3. 读取和发送数据 3.1 发送数据 3.2 读取数据 4. EtherCAT网络的使 ...

  4. Power PMAC运动控制器 —— 学习笔记7

    本文主要说明Power PMAC中EtherCAT通信的驱动器下循环力矩模式(CST)的使用,主要通过操作PDO实现,对于循环速度模式(CSV)同上. 第一步:设置System时钟(默认1kHz),E ...

  5. 【PMAC学习笔记——第0篇】初识PMAC运动控制卡以及 Microsoft Visual C++ 2019,PeWin32 PRO2环境搭建

    一.PMAC概述 PMAC ( Programmable Multi-Axis Controller) 可编程多轴运动控制器,是美国Delta Tau Data System 公司推出的PC 机平台上 ...

  6. Microsoft Power BI 学习笔记

    ​   Power Bi 学习笔记 一   Power BI 是微软发布的一系列的软件服务.应用和连接器,这些软件服务.应用和连接器协同工作,将不相关的数据源转化为合乎逻辑.视觉上逼真的交互式见解. ...

  7. 2015.05.15,外语,学习笔记-《Word Power Made Easy》 01 “如何讨论人格特点”

    2015.03.17,外语,读书笔记-<Word Power Made Easy> 01 "如何讨论人格特点"学习笔记 SESSIONS 1 本来这些章节都是在一两年前 ...

  8. Power BI学习笔记

    Power BI学习笔记 友好建议 1.excel文件.xls,.xlsx导入到Power BI经常会出现错误,建议保存和导入.csv格式表格 2.如果表格已经加载进来,对表格进行修改后,直接点击刷新 ...

  9. UE5 Shader基础学习笔记——13-20 DetailNormal/Smoothstep/Length/CeilFloorRound/DDXDDY/SinCos/Power

    UE5 Shader基础学习笔记--13-20 DetailNormal/Smoothstep/Length/CeilFloorRound/DDXDDY/SinCos/Power Lec13 Deta ...

最新文章

  1. 2020薪资排名第一的专业公布,除了计算机还有这些!
  2. jetbrains intellij IDEA 常用插件和配置
  3. ccs6 linux安装教程,【图片】【吧主帖】在LINUX(ubuntu)系统下装CCSv6方法(原创)【dsp吧】_百度贴吧...
  4. linux下安装12c中间件,linux下静默安装 weblogic12.2.1.3中间件
  5. HDU2548 两军交锋【数学计算+水题】
  6. ios打包时候提示三方文件库错误,整理下解决的思路
  7. 新浪滚动新闻的json数据获取页面
  8. SAP内部订单BAPI扩展字段
  9. node.js+mysql实现分库分表存查数据:
  10. vue+elementui+html+css+js昵图网
  11. 爬虫爬取站长素材图片 (使用scrapy和imagespipeline)
  12. 汉诺塔问题——递归算法
  13. 最近把beecloud,芝麻信用,智能门锁接入了系统。闲下来把遇到的一些坑排下,也能给后人一些指导
  14. 驱动复习(mor8)
  15. 误删的文件不在回收站如何找回?2招任选,完成恢复
  16. 2007年web开发技术预言
  17. Leica 全站仪GSI数据格式(平面)
  18. Ion ABI 变更
  19. 硬核体验:裸考深度学习工程师认证考试,是一种怎样的感受?
  20. ps入门教程高阶教程各工作领域视频教程合集

热门文章

  1. vue前端项目引用高德离线地图
  2. 对slideToggle()的进一步了解
  3. 抗渗等级p6是什么意思_砼抗渗等级S6和P6有何区别
  4. PJblog教程:无缝滚动友情连接菜单
  5. vSphere and Virtual Machines--vSphere和虚机
  6. ffmpeg编译及使用 (转载)
  7. [我所知道的BIOS]-[Chipset Config] 5
  8. lsi 搜驱动 H755 H740P chipset
  9. Arturia Synthi V for Mac(音频模拟合成软件)
  10. android实现屏幕截图,Android-屏幕截图功能实现