EtherCAT运动控制器在数控加工手轮随动中的应用
供稿:深圳市正运动技术有限公司
- 关键词:运动控制器,正运动技术,EtherCAT
- 作者:正运动小助手
- 摘要:以具备专用手轮接口的ZMC408CE控制器为例,讲解手轮接口接线。
接口 引脚号 信号 说明 1 H-5V 5V电源输出正极,专为手轮供电 2 HA- 编码器A相信号(IN40) 3 HB- 编码器B相信号(IN41) 4 HEMGN 紧急停止信号(IN51) 5 NC 悬空 6 HX1 选择X1倍率(IN42) 7 HX10 选择X10倍率(IN43) 8 HX100 选择X100倍率(IN44) 9 HSU 轴选3(IN48) 10 HSV 轴选4(IN49) 11 EGND 5V电源输出负极,信号公共端 12 HSW 轴选5(IN50) 13 HSZ 轴选2(IN47) 14 HSY 轴选1(IN46) 15 HSX 轴选0(IN45) 注意: 1.5V电源输出仅为手轮供电,切勿为其他设备供电。 2.该接口中的所有信号均为数字输入信号,编号为IN(40-51)。 2.上电后请选EtherNET、RS232、RS485任一种接口连接ZDevelop; 程序示例如下,运行下方程序后,便可实现手轮的控制。'不同控制器型号,手轮轴号,倍率和轴选择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运动控制卡_EtherCAT控制器_运动控制系统_视觉控制器__运动控制PLC_运动控制_机器人控制器_视觉定位_XPCIe/XPCI系列运动控制卡等等。