EtherCAT运动控制器在数控加工手轮随动中的应用之C++

news2024/10/7 4:35:25

本文以正运动技术具备专用手轮接口的运动控制器ZMC408CE为例,介绍手轮、手轮的作用及原理、控制器手轮接口接线以及手轮程序配置。

上节讲解了使用正运动basic语言进行手轮应用配置,本节主要讲解C++调用API函数库接口实现手轮配置。

01 手轮作用及原理

手轮也称手摇脉冲发生器,主要用于数控机床、立体加工中心、卧式加工中心、龙门加工中心等数控设备。当手轮旋转时,编码器产生与手轮运动相对应的信号,通过数控系统选定座标并对座标进行定位。

手动脉冲发生器它中心有轴的光电码盘,其上有环形通、暗的刻线,摇动手轮后,由光电发射和接收器件读取,获得2组正弦波信号HA、HB,每个正弦波相差90度相位差。由于HA、HB两信号相差90度,可通过A相在前还是B相在前,给出正转脉冲或反转脉冲去控制伺服电机正转或反转。
在这里插入图片描述

02 手轮介绍

1.通过手轮上的“轴选择旋钮”选择需要移动的坐标轴;

2.通过“倍率选择旋钮”选择合适的移动倍(×1/×10/×100);

3.旋转“手轮摇柄”移动坐标轴。顺时针旋转为正向移动,逆时针旋转为负向移动,旋转速度快慢可以控制坐标轴的运动速度;

4.按钮“急停”,紧急停止手轮运动;

5.控制器手轮接口为双排标准DB15母头,需要手轮接头为双排标准DB15公头。

在这里插入图片描述

03 控制器手轮接口接线

1.硬件介绍

案例采用ZMC408CE运动控制器,具备专用的手轮接口。

在这里插入图片描述

ZMC408CE是正运动技术推出的一款高性能EtherCAT总线运动控制器,核心技术采用了先进的FPGA技术,实现硬件位置比较输出、精准输出功能,保证连续轨迹加工的出色性能和稳定性,以及动态数据捕获的实时性,从而实现更加精准控制和提高生产效率和品质。

ZMC408CE支持EtherCAT总线轴 + 脉冲轴混合插补,可脱机或联机运行,可控电机轴数8轴,特殊型号提供16或32轴可选,支持ZDevelop + 多种高级上位机混合编程,可以实现点位运动、电子凸轮、直线插补、圆弧插补、连续轨迹加工和30+种机器人模型的控制。

ZMC408CE产品亮点

1.高性能处理器,提升运算速度、响应时间和扫描周期等;

2.一维/二维/三维、多通道视觉飞拍,高速高精;

3.位置同步输出PSO,连续轨迹加工中对精密点胶胶量控制和激光能量控制等;

4.多轴同步控制,多坐标系独立控制等;

5.EtherCAT同步周期可快至125us;

6.EtherCAT总线和脉冲轴混合插补;

7.直线插补、任意空间圆弧插补、螺旋插补、样条插补等;

8.应用灵活,可PC上位机开发,也可脱机独立运行;

2.控制器手轮接口MPG定义
在这里插入图片描述

3.手轮接线参考
在这里插入图片描述

4.注意事项

手轮编码器轴接口接线原理如上图所示,手轮厂家的设计多种多样,请先查看手轮内部的设计图后与运动控制器确认正确后谨慎接线;请使用双绞屏蔽线,尤其是环境恶劣的场合,务必使屏蔽层充分接地。

04 函数接口指令说明

使用ZAux_Direct_Connect命令,将手轮连接到运动轴,指令说明如下表。

在这里插入图片描述

05 C++程序配置

1.配置步骤

(1)参考以上手轮接线示意图正确连接手轮和控制器;

(2)扫描文章末尾二维码,下载例程,使用Visual Studio 2022,打开C++手轮运动例程,运行之后根据型号选择EtherNET、串口、PCI、LOCAL任意一种接口连接控制器。

(3)配置轴号;不同控制器型号,手轮轴号,倍率和轴选择IN编号不一样,详情请参考控制器用户手册,本例程使用控制器型号为ZMC408CE,手轮接口轴号为8,该控制器手轮接口无可用默认AXIS轴号,必须进行映射才可以使用,映射避开脉冲轴号,此例程是将手轮映射到轴10。

(4)配置IO;根据需要赋予轴选(HSX,HSY,HSZ,HSU)和倍率(HX1,HX10,HX100)以及紧急停止 (HEMGN)功能;这些信号本质为数字输入信号,有固定的编号,但无固定的功能,需要ZDevelop开发;其名称为推荐配置的功能,轴选即为connect同步运动的被连接轴,倍率即connect比率。

(5)完成以上配置即可开始使用手轮。

2.程序运行界面

程序运行成功后会显示以下界面,未连接控制器之前,轴坐标和手轮轴坐标默认为0,手轮状态为“未连接”,手轮轴号为10,链接倍率为1,手轮轴脉冲方式为“脉冲+方向”,链接轴为“未选择”。

在这里插入图片描述

3.控制器链接

选择IP、串口,链接到控制器ZMC408CE,链接成功,手轮测试则会变成“已连接”,若失败则会有弹窗“链接失败”点击确定关闭弹窗,检查IP地址或串口地址重新链接。
在这里插入图片描述

在这里插入图片描述

4.手轮轴操作

程序链接上控制器成功之后,会获取轴坐标和手轮轴位置。通过手轮的“轴选择”旋转按钮选择链接轴,如果链接成功,手轮链接状态会变成“已链接”,链接轴也会显示出所链接的轴号和链接倍率。

如果想要切换连接轴和链接倍率,只需要旋转手轮“轴选择”按钮和“倍率选择”按钮即可。点击停止按钮之后,会自动断开链接,此时手轮的“轴选择”和“倍率选择”按钮处于无效状态,只有点击继续后才会重新链接,建议在链接轴之前先选好链接倍率,否则可能会出撞机的危险,点击坐标清零则会将X、Y、Z、手轮的坐标全部清零。
在这里插入图片描述

5.手轮轴轴号修改

此例程的手轮轴轴号绑定到轴10,如果要进行修改,可以在手轮设置中的手轮轴号,直接进行更改,手轮脉冲方式也是在此处进行修改。

6.手轮轴号映射

不同控制器的默认手轮轴接口不同,具体需要参考控制器手册,相同点是不管使用哪个型号的控制器都需要重新进行轴映射将手轮轴映射到其他轴号去。

在控制器手册中找到默认手轮接口轴号,使用ZAux_Direct_SetAtype(handle,重映射的轴号,0)将重映射的轴类型设置为0,还原轴设置, ZAux_Direct_SetAtype(handle,要修改的本地脉冲轴号,0)将要修改的本地脉冲轴号轴类型也设置为0,低版本不设置会报错。

使用本地轴映射指令ZAux_Direct_SetAxisAddress{ handle,重映射的轴号,(-1<<16) +要修改的本地脉冲轴号 }。

在这里插入图片描述

7.手轮轴参数配置

轴号映射参数修改完后,接着使用ZAux_Direct_SetAtype(handle,手轮轴轴号,3/6)进行修改手轮轴的类型,ATYPE=3正交编码器,ATYPE=6脉冲方向方式的编码器,设置好之后可在运行主界面进行切换。

使用ZAux_Direct_SetUnits(g_handle,手轮轴号,脉冲当量)根据实际需求修改手轮轴的脉冲当量。

在这里插入图片描述

8.建立手轮链接

查询控制器手册,找到手轮对应轴输入信号、倍率信号、急停信号,使用ZAux_Direct_GetIn(g_handle,输入口编号,&获取输入口的状态值)进行IO信号读取,这里运动轴是X、Y、Z对应控制器的0、1、2轴。
在这里插入图片描述

通过IO信号的判断使用同步运动指令ZAux_Direct_Connect(g_handle,链接比率,手轮轴,运动轴),进行轴的链接、绑定,使用单轴运动停止指令ZAux_Direct_Single_Cancel(g_handle,运动轴,停止模式),断开轴链接。
在这里插入图片描述

9.手轮轴位置获取、清零

建立链接之后,需要使用ZAux_Direct_GetMpos(g_handle,手轮轴号,&showpos[手轮轴号])来获取,手轮轴的当前位置,并显示在界面上。
在这里插入图片描述

使用ZAux_Direct_SetMpos(g_handle,手轮轴号,0)进行手轮坐标清零。

在这里插入图片描述

在这里插入图片描述

本次,正运动技术EtherCAT运动控制器在数控加工手轮随动中的应用之C++,就分享到这里。更多精彩内容请关注“正运动小助手”公众号。

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

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

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

相关文章

第一个gin程序

一、下载并安装gin go get -u github.com/gin-gonic/gin二、第一个gin程序 package mainimport "github.com/gin-gonic/gin"func sayHello(c *gin.Context) {// 返回给客户端一个JSON格式的数据&#xff0c;其中HTTP状态码为200&#xff0c;表示处理成功c.JSON(200…

成功的产品经理,应该了解一定的开发知识

产品经理在互联网产品开发中扮演着协调和推动的重要角色。然而&#xff0c;由于产品经理没有直接的实际权力&#xff0c;与开发团队合作时可能会遇到各种挑战。当你给开发人员分配任务时&#xff0c;他们可能会找各种借口推脱工作。 在项目开发中&#xff0c;所有成员必须共同…

【C++】详解STL中的list及其与vector的比较

目录 一、list的介绍及其使用1、list的介绍2、list的使用2.1 list的构造2.2 list iterator的使用3、list的元素访问接口4、list的调节器6、list的迭代器失效 二、list的模拟实现及反向迭代器1、模拟实现list2、list的反向迭代器 三、list和vector的比较 一、list的介绍及其使用…

142. 环形链表 II Python

文章目录 一、题目描述示例 1示例 2示例 3 二、代码三、解题思路 一、题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#x…

bug记录:遇到的tinycudann编译的N种错误

1. 编译成功&#xff0c;但是import tinycudann报错找不到DLL 编译成功&#xff0c;但是import tinycudann的时候&#xff0c;报错&#xff1a; 开始打断点&#xff0c;搜索电脑文件&#xff0c;发现_75_c.py应该是存在的&#xff0c;但就是读不到。 发现其所在的文件夹名称…

自定义组件间通信-2

目录 一、 父子组件间通信的3种方式 二、属性绑定&#xff0c;父-> 子 三、事件绑定&#xff0c;子-> 父 四、获取组件实例 一、 父子组件间通信的3种方式 属性绑定&#xff1a;用于父组件向子组件的指定属性设置设置数据&#xff0c;仅能设置JSON兼容的数据事件绑定&…

三分钟挖掘快速软件开发框架提高办公效率的秘诀

在科技日新月异的当今社会&#xff0c;学会利用快速软件开发框架&#xff0c;可以给企业带来更大的便利和市场价值。因为它拥有可视化设计、灵活简便、易操作、易上手等优势特点&#xff0c;在助推企业实现数字化转型的过程中有着举足轻重的作用。那么&#xff0c;快速软件开发…

自媒体品牌宣传策略注意哪些,是怎么种草的

众所周知&#xff0c;小红书平台有着极其强大的种草能力。不论新品牌孵化&#xff0c;还是大品牌扩张&#xff0c;都会将目光投注到这里&#xff0c;那么小红书的品牌宣传策略究竟是怎样的呢。 一、聚焦种草能力 前面已经提到了&#xff0c;小红书平台是一个以“种草”为特色的…

在 Python 中执行逐元素加法

文章目录 Python 中的逐元素加法在 Python 中使用 zip() 函数执行逐元素加法在 Python 中使用 map() 函数执行逐元素加法在 Python 中使用 NumPy 执行逐元素加法 我们将通过示例介绍在 Python 中按元素添加两个列表的不同方法。 Python 中的逐元素加法 在 Python 中使用列表时…

考情分析调研

文章目录 一、爬虫1、定向爬虫2、规律3、爬取策略4、整页抓取5、爬取方案5.1 Scrapy5.2 BeautifulSoup 二、文本提取三、问题四、数据源建模调研 一、爬虫 1、定向爬虫 定向爬虫可行性太低&#xff0c;因为网站可能发生改版、且网站类型较多。 2、规律 考情分析大多是找到相…

自定义组件的基本使用-1

目录 一、组件的引用方式分为&#xff1a; 局部引用和全局引用 二、组件和页面的区别&#xff1a; 三、组件样式隔离 四、data和properties的区别&#xff1a; 五、自定义组件-数据监听器 六、纯数据字段 七、组件的生命周期 八、插槽 一、组件的引用方式分为&#xff…

国产仪器 4945B/4945C 无线电通信综合测试仪

4945系列无线电通信综合测试仪是多功能、便携式无线电综合测试类仪器&#xff0c;基于软件无线电架构&#xff0c;集成了跳频信号发生与分析、矢量信号发生与解调分析、模拟调制信号发生与解调分析、音频信号发生与分析、音频示波器、自动测试等功能&#xff0c;它可完成无线通…

在线搭建其企业帮助中心的策略有什么?

在线搭建企业帮助中心是一个重要的策略&#xff0c;可以帮助企业更好地管理和共享知识&#xff0c;提高员工的工作效率和生产力&#xff0c;提升客户满意度和忠诚度。 探讨在线搭建企业帮助中心的策略&#xff1a; 一、确定帮助中心的定位和目标 在搭建企业帮助中心之前&…

大脑神经系统

阈值又叫临界值&#xff0c;是指刺激⽣物体时&#xff0c;释放某种反应所需的最⼩刺激强度。 突触神经元之间&#xff0c;或神经元与细胞、腺体之间通信的特异性接头。 注意⼒系统是⼀种散布的神经元连接系统&#xff0c;它将控制觉 醒、动机、奖励、执⾏功能和运动的各个区域…

matplotlib笔记:xkcd 将代码变成手绘风格

1 介绍 matplotlib.pyplot.xkcd(scale1, length100, randomness2) scale相对于不使用xkcd的风格图&#xff0c;褶皱的幅度length褶皱长度randomness褶皱的随机性 2 举例 2.0 不使用xkcd import matplotlib.pyplot as plt import numpy as np xnp.random.randint(0,100,10…

在esp32(esp8266) 提供软字库显示中文的解决方案

本方案已经开源到了 https://github.com/StarCompute/tftziku &#xff0c;详细内容请访问Github. 本方案在esp32 下经过测试在tft屏幕上可以正常输出文字&#xff0c;也就是说经过了验证。 目录 说明 缘起 系统结构 软字库的创建 软字库包含的内容&#xff1a; 软字库的…

用 Android Studio 打包 uni-app 的安卓apk;手把手教程、巨详细避坑

Uni-app 离线打包 apk 1. Android Studio 下载 Android Studio官网 2. HBuilderX下载 HBuilderX下载 3. App离线SDK下载 Android 离线SDK - 正式版 下载后解压文件&#xff0c;将 HBuilder-Integrate-AS 重命名 build-template 并拷贝到一个专门打包用的文件夹下作为打包…

DETR类环境快速搭建

DINO下载地址&#xff1a; git clone https://github.com/IDEA-Research/DINO.gitconda create -n detr python3.8 -y修改写入权限 sudo chmod aw /home/ubuntu/.conda/激活环境 source activate detr安装pytorch conda install pytorch1.12.1 torchvision0.13.1 torchaudio…

OpenHarmony Docker移植实践

Docker简介 从操作系统诞生之日起&#xff0c;虚拟化技术就不断的演进与发展&#xff0c;结合目前云原生的发展态势&#xff0c;容器无疑是其中的重要一环。 Docker是一个开源的软件项目&#xff0c;可以在Linux操作系统上提供一层额外的抽象&#xff0c;让用户程序部署在一个相…

React面试题汇总 ---1

1.React的严格模式如何使用&#xff0c;有什么用处&#xff1f; React中StrictMode严格模式_react.strictmode_前端精髓的博客-CSDN博客当我们使用 npx create-react-app my-app 创建一个项目的时候。项目中有一段如下所示的代码&#xff1a;ReactDOM.render( <React.Stric…