关注公众号“正运动小助手”,随时关注新动态!
今天,正运动小助手给大家分享一下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曲线设置
|
(4)获取table寄存器内容,导入示波器数据源
指令163
|
ZAux_Direct_GetTable
|
指令原型
|
int32 __stdcall ZAux_Direct_GetTable(ZMC_HANDLE handle, int
tabstart, int numes, float *pfValue)
|
指令说明
|
读取TABLE中的数据。
|
输入参数
|
共有2个输入参数,见下方说明。
|
handle
|
链接句柄。
|
start
|
操作 TABLE 开始的起始编号
|
inum
|
读的个数
|
输出参数
|
一个参数
|
pfValue
|
数据列表。
|
获取规划位置:
指令97
|
ZAux_Direct_GetDpos
|
指令原型
|
int32 __stdcall ZAux_Direct_GetDpos(ZMC_HANDLE handle, int iaxis, float *pfValue)
|
指令说明
|
读取轴当前位置。
|
输入参数
|
共有2个输入参数,见下方说明。
|
handle
|
链接标识。
|
iaxis
|
轴号。
|
输出参数
|
共有1个输出参数,见下方说明。
|
pfValue
|
当前轴位置。
|
获取反馈速度:
指令107
|
ZAux_Direct_GetMspeed
|
指令原型
|
int32 __stdcall ZAux_Direct_GetMspeed(ZMC_HANDLE handle, int iaxis, float *pfValue)
|
指令说明
|
读取当前反馈速度,单位units。
|
输入参数
|
共有2个输入参数,见下方说明。
|
handle
|
链接标识。
|
iaxis
|
轴号。
|
输出参数
|
共有1个输出参数,见下方说明。
|
pfValue
|
返回的反馈速度。
|
获取规划速度:
指令112
|
ZAux_Direct_GetVpSpeed
|
指令原型
|
int32 __stdcall ZAux_Direct_GetVpSpeed (ZMC_HANDLE handle, int iaxis, float *pfValue)
|
指令说明
|
读取轴运动速度,单位units/s。
|
输入参数
|
共有2个输入参数,见下方说明。
|
handle
|
链接标识。
|
iaxis
|
轴号。
|
输出参数
|
共有1个输出参数,见下方说明。
|
pfValue
|
返回当前的速度。
|
获取反馈位置:
指令99
|
ZAux_Direct_GetMpos
|
指令原型
|
int32 __stdcall ZAux_Direct_GetMpos(ZMC_HANDLE handle, int iaxis, float *pfValue)
|
指令说明
|
读取轴反馈位置。
|
输入参数
|
共有2个输入参数,见下方说明。
|
handle
|
链接标识。
|
iaxis
|
轴号。
|
输出参数
|
共有1个输出参数,见下方说明。
|
pfValue
|
当前轴位置。
|
电子凸轮运动:
指令6
|
ZAux_Direct_Cam
|
指令原型
|
int32 __stdcall ZAux_Direct_Cam(ZMC_HANDLE handle,int iaxis, int istartpoint, int iendpoint, float ftablemulti, float fDistance)
|
指令说明
|
电子凸轮,CAM指令根据存储在TABLE中的数据来决定轴的运动。
|
输入参数
|
共有6个输入参数,见下方说明。
|
handle
|
链接标识。
|
iaxis
|
轴号。
|
istartpoint
|
起始点TABLE编号,存储第一个点的位置。
|
iendpoint
|
结束点TABLE编号。
|
ftablemulti
|
位置乘以这个比例,一般为脉冲当量。
|
fDistance
|
参考运动的距离,用来计算总运动时间。
|
3.LabVIEW进行运动控制的数据采集数据源获取。
(1)新建Vi,在前面板,右键鼠标,选择控件进行UI设计,如图所示,左边是连接界面以及获取点数、数据源等,右边是示波器图形规划的位置。
(2)在程序编辑框中通过鼠标,在添加的帧里面添加“While循环”,在“While循环”里面又添加“事件结构”,右击选择添加事件分支,选择“超时”事件,获取当前获取到数据源的采样点数,并将数据源数据导入到示波器中按波形显示出来。
(3)选择事件结构,右击选择添加事件分支,在循环结构中,当句柄为空时自动进行获取当前ip的控制器,然后在该事件分支中使用“Z Aux Open Eth.vi”函数对控制器进行连接,以实现连接控制器按钮的功能。
(4)选择事件结构,右击选择添加事件分支,选择“断开”值改变,然后在该事件分支中使用“Z Aux Close.vi”函数对控制器断开连接,以实现断开链接按钮的功能。
(5)选择事件结构,右击选择添加事件分支,选择“触发”值改变,然后在该事件分支中使用“Z Aux Trigger.vi”函数进行触发示波器抓取,以实现触发指令抓取数据源将数据存储到table寄存器中。
(6)选择事件结构,右击选择添加事件分支,选择“启动采集”值改变,然后在该事件分支中使用“Z Aux Execute.vi”函数调用指令SCOPE进行启动获取数据源数据,存放到table寄存器中。
(7)选择事件结构,右击选择事件,选择“XY图:”鼠标改变,然后在该事件分支实时读取XY示波器以及XY2示波器对应范围内鼠标的坐标位置,并显示在界面上。
图一
图二
(8)选择条件结构,当正弦运动按钮按下时两段触发正弦运动使用平铺顺序结构按顺序执行两段电子凸轮运动指令,使用“Z Aux Cam.vi”函数按照提前加载在table寄存器内的数据进行对应电子凸轮运动。
三调试与监控
编译运行例程,同时连接ZDevelop软件,并对应使用单轴小例程运动一个正弦波形轨迹,进行抓取波形进行对比LabVIEW示波器波形以及ZDevelop软件波形对比。
1.生成正弦波形数据的算法指令如下。
DIM num_p,scale,m,t '变量定义num_p=100scale=500FOR p=0 TO num_p TABLE(p,((-SIN(PI*2*p/num_p)/(PI*2))+p/num_p)*scale) 'table存储凸轮表运动参数NEXT
2.抓取示波器图形。
A.ZDevelop软件示波器波形如下图所示:
B.LabVIEW示波器波形,示波器数据源是DPOS数据内容,与ZDevelop软件示波器dpos波形一致:
C.LabVIEW示波器波形,示波器数据源是VP_Speed数据内容,与ZDevelop软件示波器VP_speed波形一致:
3.ZDevelop软件调试视频。
video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_2026455525491539976
本次,正运动技术EtherCAT运动控制卡在LabVIEW中的运动控制与数据采集,就分享到这里。
更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。
本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。
回顾往期内容
运动控制卡应用开发教程之MATLAB
EtherCAT运动控制卡开发教程之python
EtherCAT运动控制卡和LabVIEW构建智能装备(一)
EtherCAT运动控制卡和LabVIEW构建智能装备(二)
EtherCAT运动控制卡和LabVIEW构建智能装备(三)
EtherCAT运动控制卡和LabVIEW构建智能装备(四)
EtherCAT运动控制卡和LabVIEW构建智能装备(五)
EtherCAT运动控制卡的电子凸轮追剪飞剪等应用(一)
EtherCAT运动控制卡的PWM与模拟量输出和运动速度同步
EtherCAT运动控制卡硬件比较输出以及编码器锁存
EtherCAT运动控制卡IO动作与运动控制的同步
EtherCAT运动控制卡实时程序的运行和读写控制
EtherCAT运动控制卡的SCARA等机器人指令的应用
EtherCAT运动控制卡的运动暂停、恢复与系统安全设置
EtherCAT运动控制卡小线段前瞻的连续插补运动
EtherCAT运动控制卡的多轴插补运动和手轮运动
EtherCAT运动控制卡的辅助调试工具与方法介绍
EtherCAT运动控制卡的总线轴参数设置和轴运动
EtherCAT运动控制卡的硬件接线与C#的单轴运动控制
EtherCAT运动控制卡的硬件接线与C#的硬件外设读写与回零运动
EtherCAT运动控制卡的总线轴参数设置和轴运动
关于正运动技术
正运动技术专注于运动控制技术研究和通用运动控制软硬件产品的研发,是国家级高新技术企业,主要产品有运动控制器、运动控制卡、视觉运动控制一体机、人机界面以及扩展模块等。
正运动技术汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校协同运动控制基础技术的研究,是国内工控领域发展最快的企业之一,也是国内少有、完整掌握运动控制核心技术和实时工控软件平台技术的企业。
|