脉冲全闭环EtherCAT运动控制器ZMC432CL-V2(一):硬件接口介绍
本文导读
今天,正运动小助手给大家分享一下6轴步进光栅尺全闭环的EtherCAT运动控制器之ZMC432CL-V2的硬件接口与功能。
一、ZMC432CL-V2产品简介
(ZMC432CL-V2-EtherCAT控制器_运动控制卡_视觉定位_运动控制系统_机器人控制器-正运动技术)
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,视觉控制器-EtherCAT运动控制卡-运动控制PLC-正运动技术。
二、硬件接口
三、硬件接线
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 ENDIFENDSUB'/************************************************************'任务编号: 无'函数功能: 轴参数设置'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参数保存成功" ENDIFENDSUB'/************************************************************'任务编号: 无'函数功能: 全闭环功能切换'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参数已更新 " ENDIFENDSUB
测试结果:
本次,正运动技术步进的光栅尺全闭环EtherCAT运动控制器ZMC432CL-V2(一):硬件接口介绍,就分享到这里。
更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。
本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。(EtherCAT控制器_运动控制卡_视觉定位_运动控制系统_机器人控制器-正运动技术)
相关文章
发表评论