zoukankan      html  css  js  c++  java
  • 倍福TwinCAT(贝福Beckhoff)应用教程13.1 TwinCAT控制松下伺服 NC高级

    本节主要演示了使用自定义函数实现电机的运动(梯形曲线和S曲线都有实现),这里的JOG+和JOG-,针对单个关节实现了PTP的运动(跟贝福的MoveAbsolute功能块实现效果一致),在此没有介绍运动控制算法的具体原理,不理解的可以网上搜索梯形曲线和S曲线的文章,并不只是非标自动化需要用到控制电机的PTP运动,比如升降机,电梯,或者凡是需要匀滑启停的电机控制,都逃不过要用到这方面的知识,读者也可以自己测试5次或者7次等其他自定义加速曲线,每一种运动给出的位置,速度,加速度都会有不同的效果。

     

    上一节我们提到了使用简单的Y=X+V*t的方式控制轴JOG正反转,并且位置曲线是折线(因为速度从0直接下一个周期就是目标速度,速度没有一个平滑过渡,导致位置也是不平滑的)。这里我们除了可以监控位置,还可以监控速度和加速度。可以发现给出的位置,速度都比较光滑,没有锐利的过渡(加速度是三角形,如果设置为不同的A,V,J参数,也可能是梯形,但是不管怎样,这样的运动效果是比较稳定可靠的)

     

    为了让函数更加简单和通用,JOG运动可以认为是多轴联动的一种特殊情况。比如AB两轴,A_1和B_1是他们的起始位置,A_2和B_2是他们的结束位置,如果A_2=A_1+99999(一个很大的值),B_2=B_1,那就成了针对A轴的正向JOG运动,而如果A_2不等于A_1,B_2也不等于B_1,那么就是最一般的多轴的联动(可以参考机器人学导论,整个流程大致是计算最大关节差值,根据给定的速度,加速度,加加速度对每个轴均一化,然后在每个周期都给出针对每个轴的方程位置),因此在本程序的最后也给出了两点PTP运动的实现(标记A点,走到A点,标记B点,走到B点以及AB两点的循环运动),当然也可以人为的填写一个要走的目标位置,然后走(MOVEJHMI)。

     

    JOG按钮按下的时候切换到一个状态,松开的时候再切换到另一个状态。由于没有使用贝福的运动功能块,停止的时候也不再使用贝福的Halt命令。而是采集当前的位置,速度,并以指定的加速度平滑的减速到0(读者可以自己尝试把减速度改大改小,看滑出去的距离,也可以取消这种平滑过渡,直接下个周期不给位置,看立即停下来的效果。尤其是当正在进行运动的时候,TWINCAT每个周期都会计算出来下一个周期的位置,速度,加速度,当切换状态的时候,不给位置或者给的位置和当前位置差异太大,都会造成机器的震动,停止不平滑对机器是有损伤的,不断测试状态切换的时候给位置的效果可以加深对运动控制和TWINCAT实时性的理解)

     

    比上一节有所改进,除了标记零点,还实现了位置和速度的软限位(标记零点的数据文件是Bias.txt,限位的数据文件是Limit.txt,都在C盘根目录下,这些文件打开是乱码,但是实际上保存的确实是要保存的数据)。当位置或者速度超差的时候(一般软限位会做在硬限位前面一点,如果碰到硬限位开关再停止,万一速度太大撞过去也刹不住,还是会有损害)。需要注意的是,虽然我在控制的是直线模组,但是我还是可以认为每个轴指定的是角度(跟机器人一样看,我要限制的位置比如是-30弧度到50弧度,那么就是对应几百几千度,也可能对应了几百mm,只是一个限制值而已没有必要太精确,但是这样却可以统一单位,我控制两轴模组到某个目标点,也是发给他每个关节的弧度值,显示在HMI上是角度值)

     

    此外还有很多其他额外的小功能可以研究,例如使用一个按钮对所有电机全部上下使能(上使能之后等一会就执行ExtFeed Enable),例如运动的暂停和继续,急停和解除急停。总而言是,进行到这里整个代码量已经比较大了,也比较容易构建成一个完整的两轴运动的项目,如果要继续扩充三轴或者更多轴,也是比较方便的。当然这里还没有涉及到运动学和动力学算法,比如没法控制机器画直线画圆,这些将在下一节继续讲,有了这部分的基础后续的算法就会比较好做(至少我们无须担心算法的错误导致电机飞车,因为有位置和速度的保护)

     

     

    更多教学视频和资料下载,欢迎关注以下信息:

    我的优酷空间:

    http://i.youku.com/acetaohai123

     

    我的在线论坛:

    http://csrobot.gz01.bdysite.com/

     

    问题交流:

    QQ:910358960

    邮箱:acetaohai123@163.com

     

     

     

  • 相关阅读:
    关于在MAC上进行 LARAVEL 环境 Homestead 安装过程记录
    js 贷款计算器
    js 实现阶乘
    js 两点间距离函数
    composer Your requirements could not be resolved to an installable set of packages
    vue 项目优化记录 持续更新...
    vue 项目打包
    vue 真机调试页面出现空白
    vue 真机调试
    谈谈-Android状态栏的编辑
  • 原文地址:https://www.cnblogs.com/acetaohai123/p/6823736.html
Copyright © 2011-2022 走看看