运动控制器/运动控制卡的EtherCAT总线ZMIO310扩展模块使用

电子说

1.3w人已加入

描述

· 章节引导 ·

一、ZMIO310系列扩展模块

二、ZMIO310-ECAT通讯模块的接线及使用

三、ZMIO310子模块接线参考

四、ZMIO310-ECAT扩展数字量IO、模拟量AD/DA地址偏移设置

五、ZMIO310-ECAT扩展模块模拟量量程修改及通道使能

六、ZMIO310扩展模块常见问题分析





ZMC432CL-V2 脉冲全闭环的32轴总线型运动控制器

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

EtherCAT总线

1.硬件功能特性

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

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

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

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

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

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

2.主要特点

(1)使用现成的API开发各种装备

EtherCAT总线

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

EtherCAT总线





 

01 ZMIO310系列扩展模块

ZMIO310系列扩展模块是立式总线扩展模块,可支持EtherCAT和CAN两种总线方式扩展数字量IO、模拟量AD和DA。

当控制器本体的IO、AD和DA等资源不够时,可以通过耦合器模块(ECAT、CAN通讯模块)搭配其他扩展子模块进行扩展;子模块包含数字量输入口DI、数字量输出口DO、模拟量输入口AD、模拟量输出口DA模块。

耦合器和可组合的子模块如下:

EtherCAT总线

后续子模块扩展能力

ZMIO310-ECAT通讯模块最多可扩展16个子模块,支持混合扩展。但可扩展的各类别子模块有数量限制,ZMIO310-16DI最多16个,ZMIO310-16DO最多16个,ZMIO310-8AD最多8个,ZMIO310-8DA最多8个。实际数量需要以各模块功耗进行限定。

例如:ZMIO310-ECAT耦合器扩展了8个AD,8个DA后就不能再扩展其它子模块;或ZMIO310-ECAT耦合器扩展了16个DI后,就不能再扩展其它子模块。


 

02 ZMIO310-ECAT通讯模块的接线及使用

ZMIO310-ECAT通讯模块EtherCAT接口采用的是标准百兆以太网RJ45网口,支持EtherCAT协议。

接线准备材料:

1、运动控制器主站1个

2、ZMIO310-ECAT通讯模块(根据扩展需求选择数量,最多不超过16个)

3、ZMIO310后级扩展子模块(根据需求选择)

4、直流24V电源若干

5、网线若干:选用超六类屏蔽双绞线、水晶头带有金属壳;

6、导线若干

接线步骤(可参考下方接线图)

1、将一个DC24V电源的正负极分别对应接到主控制器的E+24V和EGND上;(电源正极 — E+24V;电源负极 — EGND)

2.将另一个DC24V电源的正负极分别对应接到ZMIO310-ECAT通讯模块的+24V和GND上;(电源正极 — +24V;电源负极 — GND)

3.将其他电源分别对应接到后级扩展子模块上的电源输入接口上。(详细接线参考本文第三节:子模块接线参考)

4.使用一根网线一头接入主控制器的EtherCAT接口上,另一头则接入ZMIO310-ECAT模块的EtherCAT IN口。若扩展多个EtherCAT模块,则用另一根网线接入第一个ZMIO310-ECAT模块的EtherCAT OUT口,另一头则接入下一级模块的EtherCAT IN口,以此类推…

5.检查接线无误后,将电源通电。上电后ZMIO310-ECAT的ERR报错灯常亮红灯,此时需要进行下一步操作。(分两种情况:若有使用总线驱动器,则直接使用总线初始化模板程序下载即可;若无使用总线驱动器,则只需完成第6步操作即可。)

6.通电后ZMIO310-ECAT还需要先进行总线开启操作。可在RTSys“在线命令”发送:

 

SLOT_SCAN(0)       ‘总线扫描
SLOT_START(0)      ‘总线开启
EtherCAT总线

 

按上述步骤操作后,ZMIO310-ECAT通讯模块的ERR灯不亮表示总线开启成功。 

提示:接线时注意EtherCAT IN连接上一级模块,EtherCAT OUT连接下一级模块,IN和OUT口不可混用。

EtherCAT总线

EtherCAT接口规格参数

EtherCAT总线



 

03 ZMIO310子模块接线参考

ZMIO310-16DI数字量输入子模块接线参考

输入端口NPN型接线参考:
 

EtherCAT总线

输入端口PNP型接线参考:

EtherCAT总线

ZMIO310-16DO/DOP数字量输出子模块接线参考

输出端口NPN型接线参考:

EtherCAT总线

输出端口PNP型接线参考:

EtherCAT总线

ZMIO310-4AD模拟量输入子模块接线参考

电压输入端口接线示意图:

EtherCAT总线

电流输入端口接线示意图:

EtherCAT总线

ZMIO310-4DA模拟量输出子模块接线参考

电压输出端口接线示意图:

EtherCAT总线

电流输出端口接线示意图:

EtherCAT总线


 

04 ZMIO310-ECAT扩展数字量IO、模拟量AD/DA地址偏移设置

地址偏移的目的:由于扩展模块连接的主站(运动控制器)或其他从站设备(驱动器等)可能已有一定数量的IO或者AD/DA,在使用扩展模块上的数字IO或模拟量资源时,防止资源使用冲突,需要对扩展模块的资源进行编号映射。即:将扩展模块上的数字量IO和模拟量AD/DA的起始地址进行偏移。

注意:数字量IO和模拟量IO地址均不可与其他主从站的IO地址一致!

  数字量IO地址偏移:

1.进行IO映射前需要先查看主站(控制器)自身的最大IO编号(包括外部IO接口和脉冲轴内的IO接口等)。

2.采用ZMIO310-ECAT通讯模块连接的数字量IO起始地址偏移直接使用NODE_IO指令即可实现。

指令具体使用语法参见下表:

EtherCAT总线

举例:

若主站是运动控制器ZMC432-V2,直接连接第一个扩展模块ZMIO310-ECAT+ZMIO310-16DI+ZMIO310-16DO,再连接第二个扩展模块ZMIO310-ECAT+ZMIO310-16DOP。

1.确定设备槽位号及设备编号

槽位号:指控制器上总线接口的编号,EtherCAT总线槽位号为0。由于ZMC432-V2是单总线控制器,因此使用EtherCAT接口的槽位号为0;若使用的主站是双总线控制器,并同时使用EtherCAT和RTEX总线,那么EtherCAT总线接口槽位号为0,RTEX总线接口槽位号为1;否则仅使用任意一个总线,则槽位号均为0。

设备编号:设备号是指一个槽位上连接的所有设备的编号,从0开始,按设备在总线上的连接顺序自动编号,可以通过NODE_COUNT(slot)指令查看总线上连接的设备总数。该例子中第一个扩展模块ZMIO310的设备编号为0,第二个扩展模块设备编号为1。

2.确定主站的数字量IO最大编号

需先通过主站控制器的用户手册,即《ZMC432-V2控制器用户手册》查看得到控制器自身的数字量输入IN最大编号是29,数字量输出OUT最大编号是17,那么取较大数值29为主站已使用的IO最大编号数。

ZMIO310扩展模块则需要将数字量IO地址偏移至29以上,由于指令语法限制,起始编号只能设置为8的倍数,则得到ZMIO310的数字IO地址至少应为32。

3.使用指令进行IO起始地址偏移

使用NODE_IO指令进行设置,在EtherCAT初始化程序中或RTSys的“在线命令”发送:NODE_IO(0,0)=32

EtherCAT总线

4.修改后可打开RTSys中的“控制器状态-槽位0节点”查看IO地址是否已修改成功。

EtherCAT总线


模拟量AD/DA地址偏移:

1.进行IO映射前需要先查看主站(控制器)自身的最大模拟量编号。

2.采用ZMIO310-ECAT通讯模块连接的模拟量AD/DA起始地址偏移直接使用NODE_AIO指令即可实现。

EtherCAT总线

举例:操作方法同理数字量IO地址偏移。区别在于使用指令不同:“NODE_AIO”。

在EtherCAT初始化程序中或RTSys的“在线命令”发送:NODE_AIO(0,0)=8

EtherCAT总线

修改后可打开RTSys中的“控制器状态-槽位0节点”查看。

EtherCAT总线





 

05 ZMIO310-ECAT扩展模块模拟量量程修改及通道使能

本文仅介绍模拟量量程修改及通道使能功能,更多功能可参考《ZMIO310扩展模块用户手册》,指令用法与下文所述功能大体一致,不同功能对应数据字典不同。

(一)量程修改相关概念了解

修改模拟量量程前,我们先了解几个必备概念:

量程类型

ZMIO310模拟量精度可达16位,支持的量程类型范围多达6种。按信号类型分类可分为电压信号和电流信号;按极性分类可分为单极性和双极性。默认量程类型是:0~10V。具体如下表:

EtherCAT总线

本地后级扩展地址

ZMIO310-ECAT通讯模块上电后,会扫描本地后级扩展接口,为扫描出的每一个扩展子模块分配一个扩展地址。

ECAT通讯模块上电后扫描,子模块的地址从0开始,按接入的顺序依次分配地址。通讯模块连接的第一块扩展子模块的扩展地址为0,第二块扩展子模块的扩展地址则为1,以此类推…

举例:如ECAT通讯模块(ZMIO310-ECAT)的本地后级接口依次接入3个输入模块(ZMIO310-16DI)、2个输出模块(ZMIO310-16DO或ZMIO310-16DOP)、1个AD模块(ZMIO310-4AD)和1个DA模块(ZMIO310-4DA)的情况。地址分配情况如下表:

EtherCAT总线

数据字典

修改模拟量量程即是对ZMIO310-ECAT模块进行写入操作,此时需要先找到控制修改量程的数据字典,并配合使用总线指令SDO_WRITE进行写入。该数据字典如下表:

EtherCAT总线

根据上表可得到如下信息:

索引号:由5001h+要操作的模拟量子模块所在的扩展地址决定。即当模拟量子模块的扩展地址为0时,则索引号为5001h,当模拟量子模块的扩展地址为3时,则索引号为5004h,以此类推…

子索引:01h则是控制修改量程的子索引;02h则是控制模拟量4个通道使能功能的子索引。

数据类型:00h数据类型为无符号8位;01h为无符号16位;02h为无符号16位。

数据值:参考表中小表格的数值定义。例如:01h中AD模块的0~20mA量程类型对应数据值为5;02h中AD子模块全通道开启对应数据值为15。

(二)修改/读取模拟量量程相关指令了解

了解上述关键信息后即可使用SDO_WRITE指令进行模拟量量程修改了,读取模拟量量程则使用“SDO_READ”。现在了解一下这个指令的语法,如下表:

EtherCAT总线EtherCAT总线

综合上述“数据字典”和“SDO_WRITE指令语法”两个表格可写出:

ZMIO310-ECAT模块修改模拟量量程的指令写法为:

SDO_WRITE(slot,node, $(5001+扩展子模块地址),1,6,value);

读取量程类型值的指令写法为:

SDO_READ(slot,node, $(5001+扩展子模块地址) ,1,6,tablenum)

AD模拟量通道使能的指令写法为:

SDO_WRITE(slot,node, $(5001+扩展子模块地址),2,6,value)

(三)修改模拟量量程操作步骤

举例:假设使用设备为:运动控制器ZMC432-V2做主站,通过EtherCAT接口连接扩展模块ZMIO310-ECAT + ZMIO310-16DI + ZMIO310-16DO + ZMIO310-16DOP + ZMIO310-4DA + ZMIO310-4AD。由于默认量程类型为0~10V,此时若要将4DA和4AD子模块量程类型修改为0~20mA。操作如下:

1.确定槽位号及设备编号。由ZMC432-V2是单总线控制器可知:EtherCAT 槽位号为0;由ZMC432-V2直接连接ZMIO310扩展模块可知:设备编号为0。

2.确定本地后级扩展子模块地址。由“(一)本地后级扩展地址”内容可得:DA模块的扩展地址为3,AD模块的扩展地址为4。

3.确定对应要操作的数据字典索引号及子索引号、数据类型。根据“(一)数据字典表格”及步骤1得到的扩展地址,可得:DA模块的数据字典索引号为5001+3=5004h;AD模块的索引号为5001+4=5005h。根据表格可得修改模拟量量程对应的子索引号均为01h。数据类型为UNSIGNED16。

4.确定修改后的量程类型对应数据值。根据“(一)量程类型”可得:DA模块的0~20mA对应数据值13;AD模块的0~20mA对应数据值5;

5.使用SDO_WRITE指令修改量程。根据“(二)SDO_WRITE指令语法”及上述得到的参数信息以及数据类型UNSIGNED16对应数值6,在程序中写入或“在线命令”发送:

 

SDO_WRITE(0,0,$5004,1,6,13)     '修改DA模块的模拟量量程为0~20mA
SDO_WRITE(0,0,$5005,1,6,5)      '修改AD模块的模拟量量程为0~20mA
EtherCAT总线

 

6.读取量程则使用SDO_READ指令。根据“(二)SDO_READ指令语法” 及上述得到的参数信息,在程序中写入或“在线命令”发送:

 

SDO_READ(0,0,$5004,1,6,0)      '读取DA模块的量程类型数据值存到table(0)寄存器中
?table(0)                      '打印读取寄存器内的值
SDO_READ(0,0,$5005,1,6,10)     '读取AD模块的量程类型数据值存到table(10)寄存器中
?table(10)                     '打印读取寄存器内的值
EtherCAT总线

 

完整用例请参考“(五)ZMIO310各功能完整用例”。

(四)模拟量AD各通道使能操作步骤

举例:

假设使用设备为:运动控制器ZMC432-V2做主站,通过EtherCAT接口连接扩展模块ZMIO310-ECAT + ZMIO310-16DI + ZMIO310-16DO + ZMIO310-16DOP + ZMIO310-4DA + ZMIO310-4AD。一般默认通道为全开启,假设只开启4AD模块的通道0和通道1,其余通道关闭。操作如下: 

1.确定槽位号及设备编号。由ZMC432-V2是单总线控制器可知:EtherCAT 槽位号为0;由ZMC432-V2直接连接ZMIO310扩展模块可知:设备编号为0。

2.确定本地后级扩展子模块地址。由“(一)本地后级扩展地址”内容可得:AD模块的扩展地址为4。

3.确定对应要操作的数据字典索引号及子索引号、数据类型。根据“(一)数据字典表格”及步骤1得到的扩展地址,可得:AD模块的索引号为5001+4=5005h。根据表格可得修改通道使能对应的子索引号均为02h。数据类型为UNSIGNED16。

4.确定通道0、1上使能的对应数据值。根据“(一)数据字典”可得:AD模块仅开启通道0、1的对应数据值为3;

使用SDO_WRITE指令修改通道使能。根据“(二)SDO_WRITE指令语法”及上述得到的参数信息以及数据类型UNSIGNED16对应数值6,在程序中写入或“在线命令”发送:

 

SDO_WRITE(0,0,$5005,2,6,3)     '仅开启AD模块的通道0和通道1
EtherCAT总线

 

(五)ZMIO310各功能完整用例

假设使用设备为:运动控制器ZMC432-V2做主站,通过EtherCAT接口连接扩展模块ZMIO310-ECAT + ZMIO310-16DI + ZMIO310-16DO + ZMIO310-16DOP + ZMIO310-4DA + ZMIO310-4AD。一般默认量程类型为0~10V和通道全开启,要求将4DA和4AD子模块量程类型修改为0~20mA。且4AD子模块只开启通道0和通道1,其余通道关闭。操作如下:

 

FOR i=0 to 3  
    SLOT_STOP(0)		         '停止总线  
    delay(200)                '延时200ms    
    SLOT_SCAN(0)		         '扫描总线    
    IF NODE_COUNT(0) THEN EXIT FOR  '读取总线连接设备个数非0时跳出循环    
    DELAY(1000)              '延时1000ms
NEXT
IF NODE_COUNT(0) <  > 0 THEN    
    SDO_WRITE(0,0,$5004,1,6,13)     '修改DA模块的模拟量量程为0~20mA    
    SDO_WRITE(0,0,$5005,1,6,5)     '修改AD模块的模拟量量程为0~20mA    
    SDO_READ(0,0,$5004,1,6,0)      '读取DA模块的量程类型数据值存到table(0)寄存器中    
    ?table(0)              '打印读取寄存器内的值    
    SDO_READ(0,0,$5005,1,6,10)     '读取AD模块的量程1类型数据值存到table(10)寄存器中    
    ?table(10)             '打印读取寄存器内的值    
    SDO_WRITE(0,0,$5005,2,6,3)     '仅开启AD模块的通道0和通道    
    DELAY(200)    
    SLOT_START(0)		       '启动总线    
    ?"总线开启成功"
ELSE    
    ?"总线开启失败"
ENDIF

 

根据上述章节完成正确接线后,在RTSys软件中新建一个项目文件(.zpj)和basic文件,将上述代码复制到basic文件编程区域。给basic文件设置自动运行任务号,点击下载到RAM/下载到ROM即可。如下图所示。(完整的RTSys新建流程可参考《RTSys使用手册》)

EtherCAT总线





 

06 ZMIO310扩展模块常见问题分析

(一)扫描不到ZMIO310-ECAT扩展模块(可在RTSys软件的【控制器状态】→【槽位0节点】查看是否有扩展设备显示)

1、检查扩展模块的电源接线。电源是否上电;端子接线是否松动;接线处是否卡到绝缘胶层等;

1、检查EtherCAT接口网线是否松动;

2、检查/替换网线。网线建议使用超六类屏蔽双绞线;

3、检查是否有其他节点报警或掉线导致;

(二)ZMIO310-ECAT模块上电ERR灯常亮

1.未进行总线初始化。使用EtherCAT协议接口的设备均需进行总线初始化操作,即总线扫描→总线开启等流程;(操作方法可参考本文“二、ZMIO310-ECAT通讯模块的接线与使用”的步骤5、6)

(三)ZMIO310-ECAT模块3个指示灯状态对应情况如下表:

EtherCAT总线

(四)ZMIO扩展模块的模拟量输入无反应/输出值读取不到

1、检查电源接线。是否给模拟量模块单独供电;供电电压是否为DC24V;

2、检查模拟量模块通道接线是否正确。电压类型量程和电流类型量程接线不同。(接线可参考本文“三、ZMIO310子模块接线参考”)

3、检查使用的量程类型和量程范围是否与实际接线一致。

4、检查使用的AD模块通道是否使能。(使能方法参考本文“五、模拟量AD各通道使能操作步骤”)

5、检查扩展模块的模拟量编号范围是否与其他设备冲突。(可通过RTSys软件的【控制器状态】→【槽位0节点】查看模拟量编号。映射方法可参考本文“四、ZMIO310-ECAT扩展数字量IO、模拟量AD/DA地址偏移设置”)

(五)ZMIO扩展模块数字量输入输出无法使用或使用异常

1、检查是否给输入/输出模块单独供电。供电电压是否为DC24V;

2、检查16DI和16DO子模块的输入/输出接口上接线是否正确或松动;

3、检查外部IO设备的输入类型与ZMIO扩展模块的类型是否一致。(ZMIO310的输入模块支持NPN型和PNP型输入,但电源接线方式不同,具体参考本文“三、ZMIO310子模块接线参考”)

4、检查扩展模块的IO编号范围是否与其他设备冲突。(可通过RTSys软件的【控制器状态】→【槽位0节点】查看IO。映射方法可参考本文“四、ZMIO310-ECAT扩展数字量IO、模拟量AD/DA地址偏移设置”)

教学视频可点击→“运动控制器/运动控制卡的EtherCAT总线ZMIO310扩展模块使用”查看。



本次,正运动技术运动控制器/运动控制卡的EtherCAT总线ZMIO310扩展模块使用,就分享到这里。

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

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

EtherCAT总线

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

审核编辑 黄宇
 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分