本文导读
今天,正运动小助手给大家分享一下6轴步进光栅尺全闭环的EtherCAT运动控制器之ZMC432CL-V2的硬件接口与功能。
一、ZMC432CL-V2产品简介
ZMC432CL-V2高性能多轴运动控制器是一款兼容EtherCAT总线和脉冲型的独立式运动控制器,具备高速实时反馈功能,支持脉冲全闭环控制,能够实现高精度、高响应速度的运动控制。高精度定位,有效消除机械传动误差,满足高精密加工场景应用要求。

1.ZMC432CL-V2硬件功能
(1)丰富的运动控制功能:支持直线、圆弧、空间圆弧、螺旋插补等。
(2)硬件接口丰富:支持脉冲轴(带编码器反馈)和EtherCAT总线轴,具备24路输入和12路输出的通用IO,部分为高速IO,2路模拟量输出(DA)。
(3)EtherCAT刷新周期最快达250us,满足高速通信需求。
(4)支持4通道硬件比较输出、硬件定时器、运动中精准输出,适用于多通道视觉飞拍等场合。
(5)支持掉电检测、掉电存储,多种程序加密方式,能够有效防止系统故障,保护项目工程文件数据,并提高系统的可靠性。
(6)通过纯国产IDE开发环境RTSys进行项目开发,可实时仿真、在线跟踪以及诊断与调试,简便易用,支持多种高级上位机语言联合编程进行二次开发。

更多关于ZMC432CL-V2详情介绍点击→步进控制的光栅尺全闭环解决方案:32轴EtherCAT总线运动控制器ZMC432CL-V2。
二、硬件接口


三、硬件接线
1.数字量输入口IN接线

输入口通用接线图

输入口单端编码器接线图
2.数字量输出口接线

输出口通用接线图

输出口单端脉冲轴接线图
四、脉冲全闭环应用
1.使用现成的API开发

2.步进电机的外置光栅尺全闭环解决方案
①ZMC4系列高效的网口读写,PCIe/PCI系列卡可共享内存接口(共享内存的批量读写3-5us)
②内置反向间隙补偿,双向螺距补偿,2D平面补偿等
③可以同时支持脉冲轴和EtherCAT轴运动混合使用
④开放的PT/PVT接口客户可自定义加减速算法的二次编程
3.脉冲全闭环接线

全闭环运动控制器产生相应的控制信号,发送到步进驱动器来驱动电机运动,同时负责接收来自光栅尺的反馈信号,并与预设的目标值进行比较。
步进驱动器接收来自控制器的控制信号,并将其转换为角位移去驱动电机。步进驱动器能够精确控制电机的步进角度和速度,从而实现高精度的运动控制。
光栅尺用于实时监测物体的位置和运动状态。在脉冲全闭环系统中,光栅尺通常被安装在电机的运动部件上,以测量其实际位置。
脉冲全闭环运动控制系统,具备外部光栅尺的全闭环位置反馈,实时纠正平台机械传动误差,通过实时反馈,确保步进系统的高精度闭环与加工精度。
ZMC432CL-V2控制器脉冲轴Axis0~Axis5都可以支持脉冲发送DPOS与编码器反馈MPOS,也可以通过参数设置实现脉冲发送与编码器反馈的实时全闭环。
五、步进驱动器接口接线
1.ZMC432CL-V2与步进驱动器接线(差分接法)

2.ZMC432CL-V2与步进驱动器接线(单端共阳极接法)

六、光栅尺的接口接线
1.ZMC432CL-V2与增量式光栅尺接线(差分接法)

2.ZMC432CL-V2与绝对值光栅尺接线

七、脉冲全闭环测试代码
测试程序如下:
'/************************************************************
'任务编号: 无
'函数功能: 系统初始化
'Input: 无
'Output: 无
'返回值: 无
'备注: 无
'*************************************************************/
GLOBAL SUB SysInit()
'测试固件信息
'?"测试固件信息: ver 24.8.28 : "version_build, "SERVO_PERIOD: "SERVO_PERIOD
'轴分配
GLOBAL CONST TestAxisId=5
'线程分配
GLOBAL CONST IntCycleTask=1
GLOBAL CONST OtherTask=2
'其他变量
GLOBAL gvCLStstus,gv_HandMode
GLOBAL gv_P,gv_I,gv_D
GLOBAL gv_VF,gv_AF,gv_OV
'轴初始化参数
GLOBAL gv_Speed,gv_Accel,gv_Decel
GLOBAL gv_Sramp,gv_Inch
GLOBAL gv_Units
GLOBAL gv_mpos,gv_input
GLOBAL VpMode
'*********************轴参数初始化*********************
gv_Units=100
gv_mpos =4000
gv_input=-20043
gvCLStstus=0
gv_Speed=10
gv_Accel=100
gv_Decel=100
gv_Sramp=0
gv_Inch=1
gv_HandMode=0
VpMode=0
'**********************系统初始化**********************
RAPIDSTOP(2) '停止所有轴
WAIT IDLE
DELAY(100)
DATUM(0) '清除轴报警
WAIT IDLE
'**********************轴参数初始化*********************
BASE(TestAxisId)
'关闭闭环功能
SERVO=OFF
ENCODER_SERVO=OFF
'关闭闭环功能后要远程ATYPE从0到4的切换
ATYPE = 0
DELAY(100)
ATYPE = 4
'轴坐标清零
DPOS=0
MPOS=0
'更新轴参数
UpDataAxisPara()
'更新PID参数
UpDatePid(0)
ENDSUB
'/************************************************************
'任务编号: 无
'函数功能: Hmi扫描函数
'Input: 无
'Output: 无
'返回值: 无
'备注: 无
'*************************************************************/
GLOBAL SUB SysScan()
'更新闭环状态
IF SERVO(TestAxisId) = ON AND ENCODER_SERVO(TestAxisId)=ON THEN
gvCLStstus=1
ELSE
gvCLStstus=0
ENDIF
ENDSUB
'/************************************************************
'任务编号: 无
'函数功能: 轴参数设置
'Input: 无
'Output: 无
'返回值: 无
'备注: 无
'*************************************************************/
GLOBAL SUB UpDataAxisPara()
BASE(TestAxisId)
UNITS = gv_Units
ENCODER_RATIO (gv_mpos,gv_input)
VP_MODE = VpMode
SPEED = gv_Speed '更新轴速度
ACCEL = gv_Accel '更新轴加速度
DECEL = gv_DEcel '更新轴减速度
SRAMP = gv_Sramp '设置S曲线时间
MERGE = ON '打开连续插补功能
FS_LIMIT = 10000 '正向软限位
RS_LIMIT = -10000 '负向软限位
FE_LIMIT= 500 '设置最大随动误差
FE_RANGE = 500 '报警时随动误差
ENDSUB
'更新闭环状态
'/************************************************************
'任务编号: 无
'函数功能: Pid参数更新
'Input: 无
'Output: 无
'返回值: 无
'备注: VR(0-10)
'*************************************************************/
GLOBAL SUB UpDatePid(Dir)
IF Dir=0 THEN
IF VR(0)=1314 THEN
gv_P = VR(1) 'P:比例增益
gv_I = VR(2) 'I:积分增益
gv_D = VR(3) 'D:微分增益
gv_VF =VR(4) '速度反馈的前馈增益
gv_AF =VR(5) '加速度反馈的前馈增益
gv_OV =VR(6)
ELSE
gv_P = 100 'P:比例增益
gv_I = 50 'I:积分增益
gv_D = 50 'D:微分增益
gv_VF = 1000 '速度反馈的前馈增益
gv_AF = 2000 '加速度反馈的前馈增益
gv_OV = 0
'数据更新到VR
TABLE(1,gv_P,gv_I,gv_D,gv_VF,gv_AF,gv_OV)
Local lv_i
VR(0)=1314
FOR lv_i=1 to 6
VR(lv_i) = TABLE(lv_i)
NEXT
ENDIF
ELSE
VR(0)=0
VR(1) = gv_P 'P:比例增益
VR(2) = gv_I 'I:积分增益
VR(3) = gv_D 'D:微分增益
VR(4) = gv_VF '速度反馈的前馈增益
VR(5) = gv_AF '加速度反馈的前馈增益
VR(6) = gv_OV
VR(0) = 1314
TRACE "PID参数保存成功"
ENDIF
ENDSUB
'/************************************************************'
任务编号: 无
'函数功能: 全闭环功能切换
'Input: 无
'Output: 无
'返回值: 无
'备注: 无
'*************************************************************/
GLOBAL SUB ClosedLoop(Mode)
IF Mode=0 THEN
IF gvCLStstus= 0 THEN
'配置脉冲轴TestAxisId为全闭环的功能
'配置PID参数
BASE(TestAxisId)
P_Gain = gv_P 'P:比例增益
I_GAIN = gv_I 'I:积分增益
D_GAIN = gv_D 'D:微分增益
VFF_GAIN = gv_VF '速度反馈的前馈增益
AFF_GAIN = gv_AF '加速度反馈的前馈增益
OV_GAIN = gv_OV '速度增益
'打开闭环功能
AXIS_ENABLE=1
ENCODER_SERVO = ON '0-不开启(缺省). 1-开启闭环功能
'重要,打开servo之前打开encoder_servo后
'要完成一次atype由0变为4的切换,否则会报axis:0 config not support Servo.
'无法打开闭环控制,原因未知
ATYPE = 0
DELAY(20)
ATYPE = 4 '脉冲输出+正交编码反馈
SERVO = ON '0-不开启(缺省). 1-开启闭环功能
DELAY(20)
IF SERVO = ON THEN
?"闭环参数配置完成,闭环控制已打开,使用move指令移动,并在示波器中监测运动参数。"
ELSE
?"闭环参数配置完成,闭环控制打开失败,请检查轴配置。"
ENDIF
ELSE
BASE(TestAxisId)
SERVO = OFF
ENCODER_SERVO = OFF
'关闭ENCODER_SERVO后需要完成一次 ATYPE从0到4的切换,保证闭环功能完全关闭
ATYPE = 0
DELAY(100)
ATYPE = 4
?"已关闭闭环控制开关(switch),使用开环移动"
ENDIF
ELSEIF gvCLStstus=1 THEN
'配置脉冲轴TestAxisId为全闭环的功能
BASE(TestAxisId)
P_Gain = gv_P 'P:比例增益
I_GAIN = gv_I 'I:积分增益
D_GAIN = gv_D 'D:微分增益
VFF_GAIN = gv_VF '速度反馈的前馈增益
AFF_GAIN = gv_AF '加速度反馈的前馈增益
OV_GAIN = gv_OV '速度增益
?"PID参数已更新 "
ENDIF
ENDSUB
测试结果:

本次,正运动技术步进的光栅尺全闭环EtherCAT运动控制器ZMC432CL-V2(一):硬件接口介绍,就分享到这里。
更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。
本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

正运动技术专注于运动控制技术研究和通用运动控制软硬件产品的研发,是国家级高新技术企业。正运动技术汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校协同运动控制基础技术的研究,是国内工控领域发展最快的企业之一,也是国内少有、完整掌握运动控制核心技术和实时工控软件平台技术的企业。主要业务有:运动控制卡_运动控制器_EtherCAT运动控制卡_EtherCAT控制器_运动控制系统_视觉控制器__运动控制PLC_运动控制_机器人控制器_视觉定位_XPCIe/XPCI系列运动控制卡等。
|