嵌入式
返回首页

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

2025-09-09 来源:elecfans

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

01 手轮作用及原理

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

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

pYYBAGRa9UKAfkqVAAAjQY5kNhc085.png

02 手轮介绍

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

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

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

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

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

pYYBAGRa9VaAdIKGAAiu0_KQ_Q8424.png


pYYBAGRa9VyARycwAAF5hjg17y0417.png手轮接口图示

03 控制器手轮接口接线

1.硬件介绍

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

poYBAGRa9XaAZOTXAAGP4Czafr4728.png

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定义

接口引脚号信号说明
pYYBAGRa9auAOD2fAAA6XogkohM647.png1H-5V5V电源输出正极,专为手轮供电
2HA-编码器A相信号(IN40)
3HB-编码器B相信号(IN41)
4HEMGN紧急停止信号(IN51)
5NC悬空
6HX1选择X1倍率(IN42)
7HX10选择X10倍率(IN43)
8HX100选择X100倍率(IN44)
9HSU轴选3(IN48)
10HSV轴选4(IN49)
11EGND5V电源输出负极,信号公共端
12HSW轴选5(IN50)
13HSZ轴选2(IN47)
14HSY轴选1(IN46)
15HSX轴选0(IN45)
注意:
1.5V电源输出仅为手轮供电,切勿为其他设备供电。
2.该接口中的所有信号均为数字输入信号,编号为IN(40-51)。

3.手轮接线参考

poYBAGRa9baATk4GAAHO0wQuDTE721.png

4.注意事项

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


04 程序配置


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


2.上电后请选EtherNET、RS232、RS485任一种接口连接ZDevelop;


3.配置轴号:该控制器手轮接口无可用默认AXIS轴号(映射需避开脉冲轴号),必须进行重映射,操作步骤如下:



BASE(目标轴号)     '重映射的轴号

ATYPE(目标轴号)=0  '轴类型设为0

BASE(8)            '手轮接口初始轴号8(无效的)

ATYPE(8)=0         '手轮接口初始轴类型设为0

AXIS_ADDRESS (目标轴号)= (-1<<16)+8      '将初始轴号8绑定到目标轴号

ATYPE(目标轴号)=3     '设置手脉轴轴类型为正交编码器类型


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


程序示例如下,运行下方程序后,便可实现手轮的控制。



'不同控制器型号,手轮轴号,倍率和轴选择IN编号不一样,参考控制器使用手册,本例程使用控制器型号为ZMC408CE

'不同手轮控制轴数不一样,本例程控制轴数为6个

'轴号设置

global const axis_X  = 0    'X轴

global const axis_Y  = 1    'Y轴

global const axis_Z  = 2    'Z轴

global const axis_U  = 3    'U轴

global const axis_V  = 4    'V轴

global const axis_W  = 5    'W轴

global const def_R      = 8    '手轮默认轴号

global const axis_R  = 10    '手轮重新映射轴号

'倍率IN编号设置

const io_Handlow = 42  '1倍率

const io_Handmid = 43  '10倍率

const io_Handhigh = 44  '100倍率

'轴选择IN编号设置 

const io_HandX = 45    '手轮X轴

const io_HandY = 46    '手轮Y轴

const io_HandZ = 47     '手轮Z轴

const io_HandU = 48   '手轮U轴

const io_HandV = 49     '手轮V轴

const io_HandW = 50   '手轮W轴

'紧急停止信号IN编号设置

const io_HandEMGN = 51   '急停

global dim conflag      '手轮连接轴标记

conflag = -1

ATYPE(def_R) = 0 '还原轴 8 轴类型

ATYPE(axis_R) = 0 '还原轴 10 轴类型

AXIS_ADDRESS(axis_R) = (-1<<16)+ def_R '将 MPG 手脉轴地址映射到轴 10

ATYPE(axis_R) = 3 '设置手脉轴轴类型为正交编码器类型

UNITS(axis_R) = 1 '设置手脉轴脉冲当量脉冲为单位

While 1

 if  in(io_handX) = on  then

   if in(io_handlow) = on then

     connect(1, axis_R) axis(axis_X)  '链接到轴X, 倍率 1

   elseif in(io_handmid) = on then

     connect(10, axis_R) axis(axis_X)  '链接到轴X, 倍率 10

   elseif in(io_handhigh) = on then

     connect(100, axis_R) axis(axis_X)  '链接到轴X, 倍率 100

   endif

   conflag = axis_X

 elseif  in(io_handY) = on  then

   if in(io_handlow) = on then

     connect(1, axis_R) axis(axis_Y)  

   elseif in(io_handmid) = on then

     connect(10, axis_R) axis(axis_Y)  

   elseif in(io_handhigh) = on then

     connect(100, axis_R) axis(axis_Y)  

   endif

   conflag = axis_Y

 elseif  in(io_handZ) = on  then

   if in(io_handlow) = on then

     connect(1, axis_R) axis(axis_Z)

   elseif in(io_handmid) = on then

     connect(10, axis_R) axis(axis_Z)  

   elseif in(io_handhigh) = on then

     connect(100, axis_R) axis(axis_Z)  

   end if

   conflag = axis_Z

 elseif  in(io_handU) = on  then

   if in(io_handlow) = on then

     connect(1, axis_R) axis(axis_U)

   elseif in(io_handmid) = on then

     connect(10, axis_R) axis(axis_U)  

   elseif in(io_handhigh) = on then

     connect(100, axis_R) axis(axis_U)  

   endif

   conflag = axis_U

 elseif  in(io_handV) = on  then

   if in(io_handlow) = on then

     connect(1, axis_R) axis(axis_V)

   elseif in(io_handmid) = on then

     connect(10, axis_R) axis(axis_V)  

   elseif in(io_handhigh) = on then

     connect(100, axis_R) axis(axis_V)  

   endif

   conflag = axis_V

 elseif  in(io_handW) = on  then

   if in(io_handlow) = on then

     connect(1, axis_R) axis(axis_W)

   elseif in(io_handmid) = on then

     connect(10, axis_R) axis(axis_W)  

   elseif in(io_handhigh) = on then

     connect(100, axis_R) axis(axis_W)  

   endif

   conflag = axis_W

 elseif conflag <> -1 then    '取消连接

   cancel(2) axis(conflag)

   conflag = -1

 elseif   in(io_HandEMGN) = off  then

     RAPIDSTOP(2)

 endif 

Wend


本次,正运动技术EtherCAT运动控制器在数控加工手轮随动中的应用,就分享到这里。


进入嵌入式查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • FollowMe 第二季:3 - EK_RA6M5 开发板入门

  • FollowMe 第二季: 1 Adafruit Circuit Playground Express及任务讲解

  • Azure RTOS step by step workshop

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • 从0到1:树莓派与物联网教程(英文)

精选电路图
  • 1瓦线性调频增强器

  • 1瓦四级调频发射机

  • 500W MOS场效应管电源逆变器,12V转110V/220V

  • 红外开关

  • LM317过压保护

  • 0-30V/20A 大功率稳压电源(采用LM338)

    相关电子头条文章