LabVIEW运动控制(一):EtherCAT运动控制器的SCARA机械手应用

news2025/1/14 14:13:07

ZMC408CE 高性能总线型运动控制器

ZMC408CE是正运动推出的一款多轴高性能EtherCAT总线运动控制器,具有EtherCAT、EtherNET、RS232、CAN和U盘等通讯接口,ZMC系列运动控制器可应用于各种需要脱机或联机运行的场合。
在这里插入图片描述

ZMC408CE支持PLC、Basic、HMI组态三种编程方式。PC上位机API编程支持C#、C++、LabVIEW、Matlab、Qt、Linux、VB.Net、Python等接口。
在这里插入图片描述

ZMC408CE硬件功能特性:
1.支持8轴运动控制(脉冲+EtherCAT总线),EtherCAT同步周期可快至125us;
2.24路通用输入、16路通用输出,模拟量AD/DA各两路;
3.8路10MHz高速差分脉冲输出,总线轴、脉冲轴可混合插补;
4.高性能处理器,提升运算速度、响应时间和扫描周期等;
5.一维/二维/三维、多通道视觉飞拍,高速高精;
6.位置同步输出PSO,连续轨迹加工中对精密点胶胶量控制和激光能量控制等;
7.多轴同步控制,多坐标系独立控制等;
8.直线插补、任意空间圆弧插补、螺旋插补、样条插补等;
9.应用灵活,可PC上位机开发,也可脱机独立运行;

PCIE464M PCIe EtherCAT总线运动控制卡

PCIE464M是一款基于PCIe的PCI Express的EtherCAT总线运动控制卡,具有多项实时和高精度运动控制控制功能。
在这里插入图片描述

PCIE464M运动控制卡上自带16进16出,第三方图像处理工控机或PC无需额外配置IO数据采集卡和PLC,即可实现IPC形态的机器视觉运动控制一体机,简化硬件架构,节省成本,软硬件一体化。
在这里插入图片描述

PCIE464M硬件功能特性:
1.可选6-64轴运动控制,支持EtherCAT总线/脉冲/步进伺服驱动器;
2.联动轴数最高可达16轴,运动周期最小为100μs;
3.标配16进16出,其中4路高速锁存输入、4路高速PWM和12路高速硬件比较输出PSO;
4.支持PWM输出、1D/2D/3D PSO硬件位置比较输出、视觉飞拍、连续轨迹插补等;
5.支持30+机械手模型正逆解模型算法,比如SCARA、Delta、UVW、4轴/5轴 RTCP…;
6.支持掉电存储和掉电中断,多重加密,提供程序更安全机制;
7.8路单端脉冲轴、4路单端编码器轴;
8.具有一维、二维螺距补偿控制,实现更高的加工精度;

ECI2A18B 高性价比10轴运动控制卡

ECI2A18B是正运动推出的一款高性价比10轴脉冲型、模块化的网络型运动控制卡,采用优化的网络通讯协议可以实现实时的运动控制,同时支持多种通信协议,方便与其他工业控制设备连接和集成。安装配置相对便捷,适合于模块化和灵活性要求较高的控制系统。
在这里插入图片描述

ECI2A18B控制卡最大可扩展至12脉冲轴,支持8路高速输入和4路高速输出,集成丰富的运动控制功能,包含多轴点位运动、电子凸轮,直线插补,圆弧插补,连续插补运动等,满足多样化的工业应用需求。
在这里插入图片描述

ECI2A18B硬件功能特性:
1.支持6路差分脉冲轴+4路单端脉冲轴运动控制;
2.支持1路专用的手轮输入接口;
3.差分脉冲轴最大输出脉冲频率10MHz;
4.标配24+12进16+6出,其中支持4路高速锁存,4路高速PWM,2路高速硬件比较输出PSO(可选支持HW2功能);
5.可支持RTSys+其他高级上位机编程语言的混合编程支持;
6.支持RTBasic多任务编程;

▶▶▶LabVIEW进行运动控制开发

1.找到厂家提供的光盘资料里面的LabVIEW的VI库文件,路径如下。
1)进入厂商提供的光盘资料找到“04PC函数”文件夹,并点击进入。
在这里插入图片描述

2)选择“01 PC函数库V2.1”文件夹。
在这里插入图片描述

3)选择“Windows平台”文件夹。
在这里插入图片描述

4)选择“LabVIEW文件夹”,里面有32位和64位的动态库和例程。
在这里插入图片描述
在这里插入图片描述

2.将厂商提供的LabVIEW的VI库文件复制到LabVIEW安装路径下LabVIEW/user.lib的文件夹内。

1)找到解压的VI库文件夹(zaudll是32位的VI库,64的VI库是newZauxDll64)。
在这里插入图片描述
在这里插入图片描述

2)选中LabVIEW右击打开文件所在位置(这里以LabVIEW2013-32位为演示)。
在这里插入图片描述

3)将整个VI库文件夹直接复制放到user.lib该目录,然后关闭LabVIEW软件重新启动。
在这里插入图片描述

3.重新启动LabVIEW后,选择新建VI,然后右键点击VI程序框图空白处,选择用户库来找到添加的VI库,或者直接搜索VI,最后将需要的函数直接拖到面板上。
在这里插入图片描述
在这里插入图片描述

▶▶▶例程相关函数说明

PC函数手册可在光盘资料查看,具体路径如下。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

▶▶▶SCARA机械手说明

01 SCARA机械手算法与原理

SCARA(Selective Compliance Assembly Robot Arm,中文译名:选择顺应性装配机器手臂)是一种圆柱坐标型的特殊类型的工业机器人。

SCARA机器人具有3个旋转自由度和一个移动自由度,可以实现水平和垂直运动。可以被制造成各种大小,最常见的工作半径在100毫米至1000毫米之间,此类的SCARA机器人的净载重量在1千克至200千克之间。

SCARA系统在x,y方向上具有顺从性,而在Z轴方向具有良好的刚度。其结构简单、体积小、质量轻、动作迅速、刚性好及定位精度高。故SCARA系统大量用于装配印刷电路板、电子零部件、集成电路板此外,塑料、汽车、电子产品、药品和食品等工业领域也有广泛的应用。
在这里插入图片描述

(1)空间中的自由度:以标准SCARA为例,末端的工作点可以在xy方向移动(2 轴),可以绕z旋转(3 轴),可以z方向上下(4 轴),最多有4个自由度。
(2)关节坐标系:包含机械手所有关节,各关节之间相互独立,坐标单位为角度,一般简写作J。操作其中一个关节时不影响其他关节坐标。J1:0° J2:0° J3:0° J4:0°
(3)世界坐标系:世界坐标系是被固定在空间上的标准直角坐标系,其位置根据机械手类型确定。虚拟轴操作时就是根据世界坐标系运动,此时各关节会自动解算需要旋转的角度。
(4)关节轴:关节轴是指实际机械结构中的旋转关节,在程序中一般显示旋转角度(某些结构也是平移轴)。由于电机与旋转关节会存在减速比,所以设置UNITS时要按照实际关节旋转一圈来设置,同时TABLE中填写结构参数时也要按照旋转关节中心计算,而不是按照电机轴中心计算。
(5)虚拟轴:虚拟轴不是实际存在的,抽象为世界坐标系的6个自由度,依次为X、Y、Z、RX、RY、RZ。可以理解为直角坐标系的三个直线轴和三个旋转轴,用来确定机械手末端工作点的加工轨迹与坐标。
(6)正解运动:通过操作关节坐标,再根据机械结构参数可以计算出末端位置在直角坐标系的空间位置,这个过程称为正解运动,此时操作的是实际关节轴,虚拟轴自动计算坐标。
(7)控制器使用CONNREFRAME指令建立正解模式:此指令作用在虚拟轴上,此时只能操作关节轴,关节轴也可以做各种运动,但实际运动的轨迹不是直线圆弧,正解模式一般用于手动调整关节位置或上电点位回零。
(8)逆解运动:给定一个直角坐标系中的空间位置,反推出各关节轴坐标,这个过程称为逆解运动,此时操作的是虚拟轴,实际关节轴自动解算坐标并运动。控制器使用CONNFRAME指令建立逆解模式,此指令作用在关节轴上,此时只能操作虚拟轴,对虚拟轴发送运动指令,可以在笛卡尔坐标系中做直线,圆弧,空间圆弧等运动,关节轴在CONNFRAME的作用下会自动运动到逆解后的位置。

02 机械手指令算法

1.CONNFRAME–建立逆解连接

描述:将当前关节坐标系的目标位置与虚拟坐标系的位置关联;关节坐标系的运动最大速度受SPEED参数的限制;当关节轴告警等出错时,此运动会被CANCEL。
语法:CONNFRAME(frame,tablenum,viraxis0,viraxis1)
frame:坐标系类型,1-scara
tablenum:存储转换参数的TABLE位置,frame=1时,以此存放:第一个关节轴长度,第二个关节轴长度,第一个关节轴一圈脉冲数,第二个关节轴一圈脉冲数。
viraxis0:虚拟坐标系第一个轴
viraxis1:虚拟坐标系第二个轴

2.CONNREFRAME–建立正解连接
描述:将虚拟轴的坐标与关节轴的坐标关联,关节轴运动后,虚拟轴自动走到相应的位置。
语法:CONNREFRAME(frame,tablenum,viraxis0,viraxis1)
frame::坐标系类型, 1- scara
tablenum::存储转换参数的TABLE位置,frame=1时,以此存放:第一个关节轴长度,第二个关节轴长度,第一个关节轴一圈脉冲数,第二个关节轴一圈脉冲数。
axis0:关节坐标系第一个轴
axis1:关节坐标系第二个轴
FRAME描述:Frame=1,SCARA,如下图,旋转轴为关节轴,末端对应位置为虚拟的位置。
在这里插入图片描述

在TABLE中设置好机械结构相关参数。建立机械手连接时,需要将机械结构参数按照如下次序依次填写到TABLE数组中。
在这里插入图片描述

# ▶▶▶例程说明

1.SCARA机械手例程界面如下。
在这里插入图片描述

2.例程简易流程图。
在这里插入图片描述

3.要想通过上位机操控控制器,就必须先链接控制器,上位机连接控制器的接口有四种,分别是网口连接、串口连接、PCI和LOCAL连接。

例如通过LOCAL链接方式的链接按钮的事件响应函数来链接控制器。
在这里插入图片描述

LOCAL连接用的是ZAux_FastOpen接口。
在这里插入图片描述

4.链接控制器后,通过判断条件来进行启动超时事件。例如通过超时获取轴坐标、机械手状态。
在这里插入图片描述

A.超时获取关节轴坐标。
在这里插入图片描述

B.超时获取关联的虚拟轴坐标。
在这里插入图片描述

当机械手状态为逆解时,关节轴的MTYPE(当前运动的指令类型)会变为33(机械手逆解运动),机械手状态为正解时,虚拟轴的MTYPE(当前运动的指令类型)会变为34(机械手正解运动),可以通过判断关节轴和虚拟轴的MTYPE的值就可以判断机械手的状态。

C.获取关节轴的当前运动的指令类型。
在这里插入图片描述

D.获取关联的虚拟轴当前运动的指令类型。
在这里插入图片描述

E.通过判断关节轴和虚拟轴的MTYPE的值就可以判断机械手的状态。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.写入机械手参数。
在这里插入图片描述
在这里插入图片描述

在SCARA参数界面设置完机械手参数后,然后点击手动界面就会显示手动界面、把机械手参数分别写入不同的数组、改变参数写入的布尔值,而超时事件会因为参数写入布尔值的改变,把之前写入不同的数组的机械手参数写入控制器当中。

A.把机械手参数分别写入不同的数组。
在这里插入图片描述

B.改变参数写入的布尔值。
在这里插入图片描述

C.超时事件因为参数写入布尔值的改变,把之前写入不同的数组的机械手参数写入控制器当中。
在这里插入图片描述

6.手动操作。
在这里插入图片描述

(1)机械手上锁/解锁

机械手上锁/解锁其实就是打开/关闭关节轴的使能,机械手在逆解状态不能关闭关节轴的使能。
在这里插入图片描述
在这里插入图片描述

(2)示教待机位与运动至待机位。
示教待机位就是把当前的关节轴位置坐标写入示教位置数组里,因为机械手所有关节轴轴一起运动可能会造成碰撞,所以得让关节轴按顺序运动到示教位置,要实现关节轴按顺序运动到示教位置,就要等待前一个顺序的关节轴运动完成,再让下一个关节轴运动,这就有个等待关节轴运动完成的过程,如果这个过程放在事件里面,就会造成阻塞,界面就会卡住,所以为了解决这个问题,处理关节轴顺序运动就放在了超时事件里面,运动至待机位按钮事件只是负责改变一个布尔值和一个变量值,超时事件就用这布尔值作为关节轴顺序运动至待机位是否开启的判断条件,用这变量值确保关节轴顺序至待机位的步骤从头到尾只执行一次。

A.按下示教待机位按键。
在这里插入图片描述

B.按下运动至待机位。
在这里插入图片描述

C.超时事件中的回到待机位。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)手动速度比例增加/减小

手动速度比例最大为200%,最小为5%,当手动速度比例小5%,手动速度比例就会变为寸动距离或角度,寸动距离或角度最小是0.01。

手动速度比例的增加/减小是分区间的:
200%-100%:每次增加/减小50%;
100%-25%:每次增加/减小25%;
25%-5%:每次增加/减小5%;
当手动速度比例小5%:手动速度比例就会变为寸动距离或角度;
1-0.01:每次乘以/除以10。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)关节轴/虚拟轴手动按键。

要实现手动按住按钮,轴就运动,松开按钮,轴就停止,就要首先把按钮动作设置为保持转换直到释放,然后在按钮值改变事件中添加用按钮布尔值作判断。

布尔值为真时,根据机械手状态,判断要不要进行机械手正/逆解,然后根据手动速度比例是否大于5,来判断使用单轴持续运动接口,还是使用单轴相对运动接口;
布尔值为假时,会根据手动速度比例是否大于5,判断是否使用单轴停止接口。下面以按键负向1为例子说明:
A.把按钮动作设置为保持转换直到释放
在这里插入图片描述

B.根据机械手状态,判断要不要进行机械手正/逆解
在这里插入图片描述

C.根据手动速度比例是否大于5,来判断使用单轴持续运动接口,还是使用单轴相对运动接口
在这里插入图片描述
在这里插入图片描述

D.按键松开时,会根据手动速度比例是否大于5,判断是否使用单轴停止接口。
在这里插入图片描述

操作演示可点击→“LabVIEW运动控制(一):EtherCAT运动控制器的SCARA机械手应用”查看。

本次,正运动技术LabVIEW运动控制(一):EtherCAT运动控制器的SCARA机械手应用,就分享到这里。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2276513.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【韩顺平Java笔记】第8章:面向对象编程(中级部分)【327-337】

327. 断点调试(Debug) 一个实际需求 在开发中,程序员在查找错误时,可用断点模式在断点调试过程中,是运行状态,是以对象的运行类型来执行的。 A extends B; B b new A(); b.xx();//按照运行类型来执行的 …

金融项目实战 01|功能测试分析与设计

前置内容:金融项目准备的内容笔记可直接看如下笔记 只看:一、投资专业术语 和 二、项目简介 两部分文章浏览阅读2.3k次,点赞70次,收藏67次。安享智慧理财金融系统测试项目,测试用例,接口测试,金…

学习threejs,使用TrackballControls相机控制器

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.TrackballControls 相…

ASP.NET Core - .NET 6 以上版本的入口文件

ASP.NET Core - .NET 6 以上版本的入口文件 自从.NET 6 开始,微软对应用的入口文件进行了调整,移除了 Main 方法和 Startup 文件,使用顶级语句的写法,将应用初始化的相关配置和操作全部集中在 Program.cs 文件中,如下&…

html5各行各业官网模板源码下载 (4)

文章目录 1.来源2.源码模板2.1 html实现酷炫美观的可视化大屏(十种风格示例,附源码)2.2 HTML5实现古典音乐网站源码模板22.3 HTML5实现古典音乐网站源码模板32.4 HTML5实现小鸟过管道小游戏源码2.5 HTML5实现俄罗斯方块小游戏2.5 HTML5实现剪刀石头布小游戏(附源码)…

springboot vue uniapp 仿小红书 1:1 还原 (含源码演示)

线上预览: 移动端 http://8.146.211.120:8081/ 管理端 http://8.146.211.120:8088/ 小红书凭借优秀的产品体验 和超高人气 目前成为笔记类产品佼佼者 此项目将详细介绍如何使用Vue.js和Spring Boot 集合uniapp 开发一个仿小红书应用,凭借uniapp 可以在h5 小程序 app…

播放音频文件同步音频文本

播放音频同步音频文本 对应单个文本高亮显示 使用audio音频文件对应音频文本资源 音频文本内容(Json) [{"end": 4875,"index": 0,"speaker": 0,"start": 30,"text": "70号二啊,","tex…

数据分析-使用Excel透视图/表分析禅道数据

背景 禅道,是目前国内用得比较多的研发项目管理系统,我们常常会用它进行需求管理,缺陷跟踪,甚至软件全流程的管理,如果能将平台上的数据结公司的实际情况进行合理的分析利用,相信会给我们的项目复盘总结带来…

No. 31 笔记 | Web安全-SQL手工注入技术学习 Part 2

一、研究背景 背景介绍 SQL注入是一种常见且高危的Web安全漏洞。攻击者可以通过构造恶意SQL查询语句来绕过验证机制,执行未授权操作,如获取敏感信息、篡改数据库内容甚至控制服务器。 研究内容 本笔记探讨以下数据库的手工注入技术: MySQLAc…

基于FPGA的多功能数字钟设计

基于FPGA的多功能数字钟设计 前言基础知识按键数码管 系统概述按键使用说明模块描述模块设计button_debouncebutton_controllerclock_controllerdigital_tube 整体资源用量测试视频 前言 本工程主要是数码管、按键、LED的应用开发。 注:本工程所有IP均使用源码开发…

人工智能实验(五)-基于神经网络的模式识别实验

一、实验目的 理解BP神经网络的结构和原理,掌握反向传播算法对神经元的训练过程,了解反向传播公式。通过构建BP网络模式识别实例,熟悉BP网络的原理及结构 二、实验内容 基于提供的数据集,训练1个BP神经网络模型: 1. …

【伪随机数】关于排序算法自测如何生成随机数而引发的……

以 Random 开始 可能一开始&#xff0c;你只是写到了排序算法如何生成随机数 public static void main(String[] args) {Random random new Random();int[] nums new int[10];for (int i 0; i < nums.length; i) {nums[i] random.nextInt(100);}System.out.println(&q…

【LeetCode】力扣刷题热题100道(26-30题)附源码 轮转数组 乘积 矩阵 螺旋矩阵 旋转图像(C++)

目录 1.轮转数组 2.除自身以外数组的乘积 3.矩阵置零 4.螺旋矩阵 5.旋转图像 1.轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 class Solution { public:void rotate(vector<int>& nums, int k) …

IDEA中创建maven项目

1. IDEA中创建maven项目 在IDEA中创建Maven项目&#xff0c;前提是已经安装配置好Maven环境。如还未配置安装Maven的&#xff0c;请先下载安装。如何下载安装&#xff0c;可参考我另外篇文章&#xff1a;maven的下载与安装教程本篇教程是以创建基于servlet的JavaWeb项目为例子&…

【PyQt】如何在mainwindow中添加菜单栏

[toc]如何在mainwindow中添加菜单栏 如何在mainwindow中添加菜单栏 主要有两种方法&#xff1a; 1.直接创建mainwindow进行添加 2.使用ui文件加载添加 第二种方法更为常见&#xff0c;可以应用到实际 1.直接创建mainwindow进行添加 import sysfrom PyQt5.QtWidgets import …

Kubernetes1.28 编译 kubeadm修改证书有效期到 100年.并更新k8s集群证书

文章目录 前言一、资源准备1. 下载对应源码2.安装编译工具3.安装并设置golang 二、修改证书有效期1.修改证书有效期2.修改 CA 证书有效期 三、编译kubeadm四、使用新kubeadm方式1.当部署新集群时,使用该kubeadm进行初始化2.替换现有集群kubeadm操作 前言 kubeadm 默认证书为一…

Web前端:JavaScript标识符与变量

JavaScript介绍 JavaScript 是一种轻量级的脚本语言。所谓“脚本语言”&#xff0c;指的是它不具备开发操作系统的能力&#xff0c;而是只用来编写控制其他大型应用程序的“脚本”。 JavaScript 是一种嵌入式&#xff08;embedded&#xff09;语言。它本身提供的核心语法不算…

【从零开始使用系列】StyleGAN2:开源图像生成网络——环境搭建与基础使用篇(附大量测试图)

StyleGAN2 是英伟达团队 NVIDIA 提出的生成对抗网络&#xff08;GAN&#xff09;的一种改进版本。 它通过创新的网络架构&#xff0c;能够生成细节丰富、逼真的图像&#xff0c;特别在高频细节&#xff08;如皮肤纹理、光照等&#xff09;的表现上表现卓越。与传统 GAN 相比&am…

【时时三省】(C语言基础)经典笔试题2

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 题目 这个代码有什么问题&#xff1f; 过程&#xff1a; 从主函数开始进入Test函数&#xff0c;在这个Test函数里面&#xff0c;创建了一个str指针变量&#xff0c;str里面放了一个空指针&…

Therabody 与Garmin联手,共同推进运动恢复与健康科技新突破

本次合作以数据整合、人工智能驱动的数字教练与科学研究为重点&#xff0c;旨在更好地了解科学恢复对运动表现的影响 &#xff08;2025年1月13日&#xff0c;中国上海&#xff09;全球健康领导者Therabody宣布与智能手表品牌Garmin佳明建立战略合作关系&#xff0c;共同致力于…