点击上方“正运动小助手”,随时关注新动态!
今天,正运动小助手给大家分享一下EtherCAT运动控制卡之ECI2828的硬件接线和如何使用LabVIEW进行硬件外设读写与回零运动。
一ECI2828硬件介绍
ECI2828系列运动控制卡支持多达16 轴直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随、虚拟轴和机械手指令等;采用优化的网络通讯协议可以实现实时的运动控制。
ECI2828系列运动运动控制卡支持以太网,232 通讯接口和电脑相连,接收电脑的指令运行,可以通过EtherCAT总线和CAN总线去连接各个扩展模块,从而扩展输入输出点数或运动轴。
ECI2828系列运动控制卡的应用程序可以使用 VC、VB、VS、C++以及C#等软件来开发,程序运行时需要动态库 zmotion.dll。调试时可以把ZDevelop软件同时连接到控制器,从而方便调试,方便观察。
ECI2828系列典型连接配置图
二
LabVIEW进行运动控制开发
1.将“光盘资料”里面LabVIEW的Vi函数库“zauxdll”文件夹下载到电脑中,然后复制到Labview安装路径下labview/user.lib的文件夹内。
Zauxdll函数库路径
Zauxdll函数库粘贴路径
2.查看PC函数手册,熟悉相关函数接口。
(1)PC函数手册也在光盘资料里面,具体路径如下:“光盘资料\8.PC函数\函数库2.1\ZMotion函数库编程手册 V2.1.pdf”
(2)PC编程,一般如果网口对控制器和工控机进行链接。网口链接函数接口是ZAux_OpenEth();如果链接成功,该接口会返回一个链接句柄。通过操作这个链接句柄可以实现对控制器的控制。
ZAux_OpenEth()接口说明:
指令7
|
ZAux_OpenEth
|
指令原型
|
int32 __stdcall ZAux_OpenEth(char *ipaddr, ZMC_HANDLE * phandle)
|
指令说明
|
以太网链接控制器。
|
输入参数
|
输入参数1个,详细见下面说明。
|
ipaddr
|
链接的IP地址。
|
输出参数
|
输出参数1个,详细见下面说明。
|
Phandle
|
返回的链接句柄。
|
返回值
|
详细见错误码说明。
|
(3)使用轴参数设置相关的指令操作链接句柄“g_handle”,对控制器进行轴参数的设置,轴参数设置相关的指令如下。
4.2 基本轴参数的初始化
|
ZAux_Direct_SetAtype
|
设置轴类型
|
ZAux_Direct_SetUnits
|
设置轴脉冲当量
|
ZAux_Direct_SetInvertStep
|
设置脉冲输出模式
|
ZAux_Direct_SetSpeed
|
设置轴速度
|
ZAux_Direct_SetAccel
|
设置轴加速度
|
ZAux_Direct_SetDecel
|
设置轴减速度
|
ZAux_Direct_SetSramp
|
设置轴S曲线
|
ZAux_Direct_GetAtype
|
读取轴类型
|
ZAux_Direct_GetUnits
|
读取轴脉冲当量
|
ZAux_Direct_GetInvertStep
|
读取脉冲输出模式
|
ZAux_Direct_GetSpeed
|
读取轴速度
|
ZAux_Direct_GetAccel
|
读取轴加速度
|
ZAux_Direct_GetDecel
|
读取轴减速度
|
ZAux_Direct_GetSramp
|
读取轴S曲线设置
|
轴类型设置:
指令79
|
ZAux_Direct_SetAtype
|
指令原型
|
int32 __stdcall ZAux_Direct_SetAtype(ZMC_HANDLE handle, int iaxis, int iValue)
|
指令说明
|
设置轴类型。
|
输入参数
|
共有3个输入参数,见下方说明。
|
handle
|
链接标识。
|
iaxis
|
轴号。
|
fset
|
Atype类型
|
描述
|
0
|
虚拟轴。
|
1
|
脉冲方向方式的步进或伺服 。
|
2
|
模拟信号控制方式的伺服 。
|
3
|
正交编码器 。
|
4
|
步进+编码器 。
|
6
|
脉冲方向方式的编码器,可用于手轮输入。
|
7
|
脉冲方向方式步进或伺服+EZ信号输入。
|
8
|
ZCAN扩展脉冲方向方式步进或伺服 。
|
9
|
ZCAN扩展正交编码器。
|
10
|
ZCAN扩展脉冲方向方式的编码器。
|
|
轴脉冲当量设置:
指令83
|
ZAux_Direct_SetUnits
|
指令原型
|
int32 __stdcall ZAux_Direct_SetUnits(ZMC_HANDLE handle, int iaxis, float fValue)
|
指令说明
|
设置脉冲当量,当设置为1时,表示单位为1个脉冲。
|
输入参数
|
共有3个输入参数,见下方说明。
|
handle
|
链接标识。
|
iaxis
|
轴号。
|
fValue
|
设置的脉冲当量。
|
其他轴参数设置指令说明具体看《ZMotion函数库编程手册 V2.1.pdf》。
(4)使用单轴运动相关的指令操作链接句柄“g_handle”,对控制器进行单轴运动控制,单轴运动相关的指令如下。
单轴回零运动:
指令78
|
ZAux_Direct_Single_Datum
|
指令原型
|
int32 __stdcall ZAux_Direct_Single_Datum(ZMC_HANDLE handle, int iaxis, int imode)
|
指令说明
|
单轴回零运动。
|
输入参数
|
共有3个输入参数,见下方说明。
|
imode
|
模式
0 清除所有轴的错误状态。
1 轴以CREEP速度正向运行直到Z信号出DPOS值重置为0同时纠正MPOS。
2 轴以CREEP速度反向运行直到Z信号出现。DPOS值重置为0同时纠正MPOS。
3 轴以SPEED速度正向运行,直到碰到原点开关。然后轴以CREEP速度反向运动直到离开原点开关。DPOS值重置为0同时纠正MPOS
4 轴以SPEED速度反向运行,直到碰到原点开关。然后轴以CREEP速度正向运动直到离开原点开关。DPOS值重置为0同时纠正MPOS。
5 轴以SPEED速度正向运行,直到碰到原点开关。然后轴以CREEP速度反向运动直到离开原点开关,然后再继续以爬行速度反转直到碰到Z信号。DPOS值重置为0同时纠正MPOS
6 轴以SPEED速度反向运行,直到碰到原点开关。然后轴以CREEP速度正向运动直到离开原点开关,然后再继续以爬行速度正转直到碰到Z信号。DPOS值重置为0同时纠正MPOS。
|
设置正限位信号:
指令122
|
ZAux_Direct_SetFwdIn
|
指令原型
|
int32 __stdcall ZAux_Direct_SetFwdIn(ZMC_HANDLE handle, int iaxis,int iValue)
|
指令说明
|
设置正向限位信号,-1 表示取消,参见软件手册里面的“ FWD_IN”
指令。
|
输入参数
|
共有3个输入参数,见下方说明。
|
handle
|
链接句柄。
|
iaxis
|
轴号。
|
iValue
|
IO口编号, -1 时为取消设置。
|
设置负限位信号:
指令124
|
ZAux_Direct_SetRevIn
|
指令原型
|
int32 __stdcall ZAux_Direct_SetRevIn(ZMC_HANDLE handle, int iaxis,int iValue);
|
指令说明
|
设置负向限位信号, -1 表示取消,参见软件手册里面的“ REV_IN”指令。
|
输入参数
|
共有3个输入参数,见下方说明。
|
handle
|
链接句柄。
|
iaxis
|
轴号。
|
iValue
|
IO口编号, -1 时为取消设置。
|
设置信号反转:
指令128
|
ZAux_Direct_SetInvertIn
|
指令原型
|
int32 __stdcall ZAux_Direct_SetInvertIn(ZMC_HANDLE handle, int
ionum, int bifInvert)
|
指令说明
|
设置反转输入状态,参见软件手册里面的“ INVERT_IN”指令。
|
输入参数
|
共有3个输入参数,见下方说明。
|
handle
|
链接句柄。
|
ionum
|
输入口编号。
|
BifInvert
|
状态 0-常开 1-常闭
|
设置原点信号:
指令120
|
ZAux_Direct_SetDatumIn
|
指令原型
|
int32 __stdcall ZAux_Direct_SetDatumIn(ZMC_HANDLE handle, int
iaxis, int iValue)
|
指令说明
|
设置轴原点信号, -1 表示取消,参见软件手册里面的
“ DATUM_IN”指令。
|
输入参数
|
共有3个输入参数,见下方说明。
|
handle
|
链接句柄。
|
iaxis
|
轴号。
|
iValue
|
IO口编号, -1 时为取消设置。
|
3.LabVIEW进行回零运动开发。
(1)新建Vi,在前面板,右键鼠标,选择控件进行UI设计。
(2)在前面板设计完UI界面后,进入程序框图,会看到各个控件对应的接线端。
(3)在程序编辑框中点击右键鼠标,选择“编程”-“结构”-“平铺顺序结构”,接着选中平铺顺序结构右键鼠标,选择在前面添加帧,做到如下效果,对局部变量进行初始化。
(4)在程序编辑框中通过鼠标,选择“平铺顺序结构”然后右击选择“在后面添加帧”,接着在后面添加的帧里面添加“While循环”,在“While循环”里面又添加“事件结构”,通过事件结构里面的“超时处理”对控制器的运动状态、运动速度、运动位置进行实时监控。
(5)选择事件结构,右击选择添加事件分支,选择“连接”值改变,然后在该事件分支中使用“Z Aux Open Eth.vi”函数对控制器进行连接,以实现连接控制器按钮的功能。
(6)选择事件结构,右击选择添加事件分支,选择“断开”值改变,然后在该事件分支中使用“Z Aux Close.vi”函数对控制器断开连接,以实现断开链接按钮的功能。
(7)选择事件结构,右击选择添加事件分支,选择“启动回零”值改变,然后在该事件分支中使用相关Vi函数对控制器运动参数进行设置并开始运动,以实现运动按钮的功能。
A.通过该事件分支中的“层叠式顺序结构”第0帧中调用轴参数设置相关的Vi函数,先对控制器轴参数进行设置。
B.通过该事件分支中的“层叠式顺序结构”第1帧中调用进行配置信号点,原点信号,正负限位以及模拟量大小设置。
C、通过该事件分支中的“层叠式顺序结构”第2帧中调用动作回零运动,调用”Z Aux Direct Single Datum.vi”
(8)选择事件结构,右击选择添加事件分支,选择“停止”值改变,然后在该事件分支中使用“Z Aux Direct Single Cancel.vi”函数停止控制器的轴运动,以实现停止按钮的功能。
(9)选择事件结构,右击选择添加事件分支,选择“坐标清零”值改变,然后在该事件分支中使用“Z Aux Direct Set Dpos.vi”函数设置控制器轴位置等于0,以实现坐标清零按钮的功能。
三调试与监控
编译运行例程,同时连接ZDevelop软件进行调试,对运动控制的轴参数和运动情况进行监控。
1.连接ZDevelop软件通过软件右侧的轴参数进行控制器状态监控,也可以点击“视图”→“示波器”打开示波器对轴运动情况进行监控。
2.运行上位机软件进行调试监控。
3.调试视频。
video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_1984587284209270788
本次,正运动技术EtherCAT运动控制卡和LabVIEW构建智能装备(二),就分享到这里。
更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。
本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。
回顾往期内容
运动控制卡应用开发教程之MATLAB
EtherCAT运动控制卡开发教程之python
EtherCAT运动控制卡和LabVIEW构建智能装备(一)
EtherCAT运动控制卡的电子凸轮追剪飞剪等应用(一)
EtherCAT运动控制卡的PWM与模拟量输出和运动速度同步
EtherCAT运动控制卡硬件比较输出以及编码器锁存
EtherCAT运动控制卡IO动作与运动控制的同步
EtherCAT运动控制卡实时程序的运行和读写控制
EtherCAT运动控制卡的SCARA等机器人指令的应用
关于正运动技术
正运动技术专注于运动控制技术研究和通用运动控制软硬件产品的研发,是国家级高新技术企业,主要产品有运动控制器、运动控制卡、视觉运动控制一体机、人机界面以及扩展模块等。
正运动技术汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校协同运动控制基础技术的研究,是国内工控领域发展最快的企业之一,也是国内少有、完整掌握运动控制核心技术和实时工控软件平台技术的企业。
|