0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

步进的光栅尺全闭环EtherCAT运动控制器ZMC432CL-V2(二):RTSys编程调试

正运动技术 来源:正运动技术 作者:正运动技术 2025-02-20 11:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文导读

上节课程给大家介绍了ZMC432CL-V2硬件接口(详情点击→步进的光栅尺全闭环EtherCAT运动控制器ZMC432CL-V2(一):硬件接口介绍),本节主要讲解如何通过RTSys开发软件调试ZMC432CL-V2的脉冲闭环功能。

一、ZMC432CL-V2产品简介

ZMC432CL-V2高性能多轴运动控制器是一款兼容EtherCAT总线和脉冲型的独立式运动控制器,具备高速实时反馈功能,支持脉冲全闭环控制,能够实现高精度、高响应速度的运动控制。高精度定位,有效消除机械传动误差,满足高精密加工场景应用要求。

wKgZPGetViKASJf2AAgr3c3EXSs544.png

1.ZMC432CL-V2硬件功能

(1)丰富的运动控制功能:支持直线、圆弧、空间圆弧、螺旋插补等。

(2)硬件接口丰富:支持脉冲轴(带编码器反馈)和EtherCAT总线轴,具备24路输入和12路输出的通用IO,部分为高速IO,2路模拟量输出(DA)。

(3)EtherCAT刷新周期最快达250us,满足高速通信需求。

(4)支持4通道硬件比较输出、硬件定时器、运动中精准输出,适用于多通道视觉飞拍等场合。

(5)支持掉电检测、掉电存储,多种程序加密方式,能够有效防止系统故障,保护项目工程文件数据,并提高系统的可靠性。

(6)通过纯国产IDE开发环境RTSys进行项目开发,可实时仿真、在线跟踪以及诊断与调试,简便易用,支持多种高级上位机语言联合编程进行二次开发。

wKgZPGetVleADB-1AASfdqC8VW0538.png

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

二、RTSys调试ZMC432CL-V2的脉冲闭环功能

1.新建RTSys的项目文件

点击【文件】→【新建工程】→【输入文件名】→【保存】。

wKgZPGe2mKKARpAOAAIEWLEcIGk198.png

2.新建RTBasic文件和RTHmi文件

点击【新建】→【选择Basic/Hmi】→【确定】,完成Basic和Hmi文件的创建,其中Basic文件用于运动逻辑的编写,Hmi文件用于人机交互界面的设计。

右击【工程视图】下的HMI文件名称,在弹出的选项框中选择【设置任务号】,并将其设置为0,表示控制器启动后将一任务0去执行Hmi文件程序。

wKgZO2e2mKyAB3T5AAFDL7s2JWE817.png

3.在BasicMain.bas文件里面编写系统初始化函数和周期扫描函数

'/****************************************************************************
'任务编号:无
'函数功能:系统初始化
'Input:无
'Output:无 
'返回值:无
'备注:无        
'******************************************************************************/
GLOBAL SUB SysInit()
    '测试固件信息
    ?"测试固件信息:ver 24.8.28 : "version_build, "SERVO_PERIOD: "SERVO_PERIOD
    '轴分配
    GLOBAL CONST TestAxisId=0
    '线程分配
    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=2000
    gv_mpos =4000
    gv_input=-20043
    gvCLStstus=0
    gv_Speed=2
    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()
'更新闭环状态
IFSERVO(TestAxisId)=ONANDENCODER_SERVO(TestAxisId)=ONTHEN
         gvCLStstus=1
    ELSE
         gvCLStstus=0
    ENDIF
ENDSUB

4.组态人机界面Hmi文件的编辑

先点击【工程视图】里面的Hmi.hmi文件,在弹出来的【属性】窗口里面输入【初始化函数】和【周期函数】的函数名。

Hmi.hmi文件运行后会先执行一次【初始化函数】一般完成系统的初始化操作,【初始化函数】运行完后Hmi.hmi文件会周期性的执行【周期函数】和周期性的扫描Hmi界面上的按钮等控件的操作情况。

wKgZO2e2mOiAWF0XAALK0NntNOo013.png

点击【控件箱】,可把控件箱里面的【控件】拖拽到Hmi窗口上进行人机界面的设计。

wKgZO2e2mO2ACzVNAAMxQ2sB0qk518.png

5.Hmi人机界面的按钮如何调用Bas文件里面的函数

(1)点击【全闭环开关】按钮实现脉冲全闭环功能的开启与关闭。

先在BasicMain.bas文件中新建函数来完成全闭环功能开关的逻辑程序。

'/*************************************************************************
'任务编号:无
'函数功能:全闭环功能切换
'Input:Mode: 0 开关闭环功能  1:更新闭环Pid参数
'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 = ON    '单轴使能打开情况下,全闭环才有效果
            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
                ?"闭环参数配置完成,闭环控制已打开"
            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

点击【全闭环开关】按钮控件,在属性界面的【点击调用函数栏】输入要调用的函数名即可,并且同时进行函数形参的传递。

wKgZPGe2maSAcRFhAAL7NQziLXs059.png

(2)手动按钮功能的实现。

先在BasicMain.bas文件中新建函数来完成手动按钮的逻辑程序。

'/********************************************************************
'任务编号:无
'函数功能:寸动运动与测试
'Input:Mode:1表示寸动运动,0表示手动运动 
'Input:Dir:运动方向  1正向运动 -1负向运动 0停止运动
'Output:无 
'返回值:无
'备注:无        
'*********************************************************************/
GLOBAL SUB InchAndSub(Mode,Dir)
    BASE(TestAxisId)
    SPEED = gv_Speed
    ACCEL = gv_Accel
    DECEL = gv_DEcel
    SRAMP = gv_Sramp
    IF Mode=1 THEN
        '寸动运动
        MOVE(gv_Inch*Dir) AXIS(TestAxisId)
        ?"寸动运动"
    ELSE
        IFDir=1THEN
            '手动运动正方向
            MOVEABS(FS_LIMIT(TestAxisId))
        ELSEIFDir=-1THEN
            '手动运动负方向
            MOVEABS(RS_LIMIT(TestAxisId))
        ELSE
           '手动运动按钮松开的时候停止轴运动
            CANCEL(2)
        ENDIF
    ENDIF
ENDSUB

点击【手动按钮】相关控件,在属性界面点击【动作栏】选择按下和松开的调用函数,在【动作函数名】和【松开调用函数】栏分别输入按钮按下和松开想要调用的函数,并输入对应函数的形参(函数形参可以是立即数也可以是全局变量或者寄存器)。

wKgZO2e2mdeAbd3NAANIL2OItCM632.png

6.下载程序测试代码逻辑

点击【连接】通过网口IP连接上控制器后,点击【下载到RAM】(程序掉电不保存)或者【下载到ROM】(程序掉电保存)即可完成程序的下载。

wKgZPGe2meKAQgYoAAT3RmEds9w597.png

点击【工具】→【插件】→【Xplc Screen】即可在电脑上显示人机界面,进行相关功能的测试。

wKgZO2e2me-ADoSjAAOWFiWsO-A507.png

三、通过RTSys示波器对比开环控制和全闭环控制的情况

示波器的使用可以参考正运动小助手的历史推文《运动控制看的更清楚细致!RTSys示波器功能简介》。

1.开环控制情况分析

wKgZO2e2mgiAPbKmAABS7TorRIE839.pngwKgZO2e2mhGAagUpAAHbEYZdh1k007.png

测试发现步进驱动器的开环控制,运动过程中随动误差(规划位置和光栅尺反馈位置的差值)一直维持在0.02个用户单位左右(这里一个用户单位即一个UNITS设置的是1mm)。

当运动结束时光栅尺的反馈位置和指令规划位置也不相等,大概差了0.0025个用户单位,折算为脉冲数是0.0025*用户单位=5个脉冲。

2.闭环控制情况分析

wKgZPGe2miaAf1g9AACDgl-krG8260.pngwKgZO2e2miuAHkm-AAHOUkT6wTo714.png

测试发现步进驱动器的闭环控制,运动过程中随动误差(规划位置和光栅尺反馈位置的差值)除了启动和停止以外大部分保持在0个脉冲当量左右。

相比较开环控制有较大的提升,当运动结束时光栅尺的反馈位置和指令规划位置也是相等的。

四、总结

1.启用控制器闭环的时候要注意:

在打开ENCODER_SERVO后,打开servo之前要完成一次ATYPE从0到4的切换,这样才可以正常打开控制器闭环的功能。

2.启用控制器闭环同时还需要:

打开单轴使能axis_enable,这样才能保证控制器闭环的正常启用。

'打开闭环功能
BASE(TestAxisId)
AXIS_ENABLE = ON          '单轴使能打开情况下,全闭环才有效果
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

3.为保证控制器闭环功能的完全关闭:在关闭ENCODER_SERVO后需要完成一次ATYPE从0到4的切换,这样才能保证控制器闭环功能完全关闭。

BASE(TestAxisId)
SERVO = OFF
ENCODER_SERVO =OFF
'关闭ENCODER_SERV0后需要完成一次ATYPE从0到4的切换,保证闭环功能完全关闭
ATYPE =0
DELAY(100)
ATYPE=4
?"已关闭闭环控制开关(switch),使用开环移动"

完整代码获取地址

wKgZPGe2moKAOWUvAACsli09dig314.png

本次,正运动技术步进的光栅尺全闭环EtherCAT运动控制器ZMC432CL-V2(二):RTSys编程调试,就分享到这里。

更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。

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

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 运动控制器
    +关注

    关注

    2

    文章

    470

    浏览量

    25898
  • 编程
    +关注

    关注

    90

    文章

    3708

    浏览量

    96778
  • RTS
    RTS
    +关注

    关注

    0

    文章

    23

    浏览量

    14899
  • ethercat
    +关注

    关注

    19

    文章

    1377

    浏览量

    43482
  • 光栅尺
    +关注

    关注

    1

    文章

    72

    浏览量

    13449
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    定位系统为步进电机+光栅尺闭环系统,位置补偿算法一般都采用哪些呢?

    如题,定位系统为步进电机+光栅尺闭环系统,麻烦问下各位大佬位置补偿算法一般都采用哪些呢?PID吗?重复精度需要提高到10几微米左右,求助求助
    发表于 01-09 08:01

    光栅尺是什么_光栅尺的工作原理

    光栅尺,也称为光栅尺位移传感光栅尺传感,是通过利用光栅的光学原理工作的测量反馈装置。
    发表于 12-12 18:51 4.6w次阅读
    <b class='flag-5'>光栅尺</b>是什么_<b class='flag-5'>光栅尺</b>的工作原理

    光栅尺安装方法_光栅尺安装注意事项(位移传感

    光栅尺,也称为光栅尺位移传感光栅尺传感),是利用光栅的光学原理工作的测量反馈装置。
    发表于 12-12 19:01 3.3w次阅读

    全国产EtherCAT运动控制边缘控制器-ZMC432H

    全国产EtherCAT运动控制边缘控制器ZMC432H是正运动的一款软硬件全国产自主可控,
    的头像 发表于 07-29 09:15 1525次阅读
    全国产<b class='flag-5'>EtherCAT</b><b class='flag-5'>运动</b><b class='flag-5'>控制</b>边缘<b class='flag-5'>控制器</b>-<b class='flag-5'>ZMC432</b>H

    全国产EtherCAT运动控制边缘控制器(一):ZMC432H硬件接口

    运动技术EtherCAT运动控制边缘控制器ZMC432H接口介绍。
    的头像 发表于 08-03 09:18 1772次阅读
    全国产<b class='flag-5'>EtherCAT</b><b class='flag-5'>运动</b><b class='flag-5'>控制</b>边缘<b class='flag-5'>控制器</b>(一):<b class='flag-5'>ZMC432</b>H硬件接口

    EtherCAT运动控制RTSys控制器的监控与设置原理

    本节内容主要包括以下几个部分:RTSys的简介/安装/在线升级、ZMC432H与RTSys的开发诊断、RTSys控制器的监控与设置以及
    发表于 10-15 15:42 1895次阅读
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>运动</b><b class='flag-5'>控制</b>:<b class='flag-5'>RTSys</b>对<b class='flag-5'>控制器</b>的监控与设置原理

    EtherCAT运动控制边缘控制器ZMC432H的轴参数配置和单轴运动控制

    全国产EtherCAT运动控制边缘控制器ZMC432H是正运动的一款软硬件全国产自主可控,
    的头像 发表于 10-16 09:49 2002次阅读
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>运动</b><b class='flag-5'>控制</b>边缘<b class='flag-5'>控制器</b><b class='flag-5'>ZMC432</b>H的轴参数配置和单轴<b class='flag-5'>运动</b><b class='flag-5'>控制</b>

    脉冲闭环EtherCAT运动控制器的固件升级

    固件是常用功能。推荐优先使用最新的RTSys软件。 本文以ZMC406R-V2运动控制器为例给大家介绍正运动固件升级的多种方式。
    的头像 发表于 11-07 10:58 1492次阅读
    脉冲<b class='flag-5'>全</b><b class='flag-5'>闭环</b><b class='flag-5'>EtherCAT</b><b class='flag-5'>运动</b><b class='flag-5'>控制器</b>的固件升级

    步进控制光栅尺闭环解决方案:32轴EtherCAT总线运动控制器ZMC432CL-V2

    高精度光栅尺的脉冲闭环,改善步进系统的亚微米加工性能!
    的头像 发表于 11-27 14:37 1405次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>控制</b>的<b class='flag-5'>光栅尺</b><b class='flag-5'>全</b><b class='flag-5'>闭环</b>解决方案:32轴<b class='flag-5'>EtherCAT</b>总线<b class='flag-5'>运动</b><b class='flag-5'>控制器</b><b class='flag-5'>ZMC432CL-V2</b>

    步进光栅尺闭环EtherCAT运动控制器ZMC432CL-V2(四):LabVIEW编程调试

    通过LabVIEW调试ZMC432CL-V2的脉冲闭环功能
    的头像 发表于 05-20 15:55 526次阅读
    <b class='flag-5'>步进</b>的<b class='flag-5'>光栅尺</b><b class='flag-5'>全</b><b class='flag-5'>闭环</b><b class='flag-5'>EtherCAT</b><b class='flag-5'>运动</b><b class='flag-5'>控制器</b><b class='flag-5'>ZMC432CL-V2</b>(四):LabVIEW<b class='flag-5'>编程</b><b class='flag-5'>调试</b>