ZMC408CE 高性能总线型运动控制器
ZMC408CE是正运动推出的一款多轴高性能EtherCAT总线运动控制器,具有EtherCAT、EtherNET、RS232、CAN和U盘等通讯接口,ZMC系列运动控制器可应用于各种需要脱机或联机运行的场合。
ZMC408CE支持PLC、Basic、HMI组态三种编程方式。PC上位机API编程支持C#、C++、LabVIEW、Matlab、Qt、Linux、VB.Net、Python等接口。
ZMC408CE硬件功能特性:
1.支持8轴运动控制(脉冲+EtherCAT总线),EtherCAT同步周期可快至125us;
2.24路通用输入、16路通用输出,模拟量AD/DA各两路;
3.8路10MHz高速差分脉冲输出,总线轴、脉冲轴可混合插补;
4.高性能处理器,提升运算速度、响应时间和扫描周期等;
5.一维/二维/三维、多通道视觉飞拍,高速高精;
6.位置同步输出PSO,连续轨迹加工中对精密点胶胶量控制和激光能量控制等;
7.多轴同步控制,多坐标系独立控制等;
8.直线插补、任意空间圆弧插补、螺旋插补、样条插补等;
9.应用灵活,可PC上位机开发,也可脱机独立运行;
ZMC408CE视频介绍,点击→“高性能EtherCAT总线运动控制器,带你玩转“8通道独立PSO”应用场景”查看。
更多关于ZMC408CE的详情介绍,点击“推荐|8通道PSO的高性能EtherCAT总线运动控制器”查看。
PCIE464M PCIe EtherCAT总线运动控制卡
PCIE464M是一款基于PCIe的PCI Express的EtherCAT总线运动控制卡,具有多项实时和高精度运动控制控制功能。
PCIE464M运动控制卡上自带16进16出,第三方图像处理工控机或PC无需额外配置IO数据采集卡和PLC,即可实现IPC形态的机器视觉运动控制一体机,简化硬件架构,节省成本,软硬件一体化。
PCIE464M硬件功能特性:
1.可选6-64轴运动控制,支持EtherCAT总线/脉冲/步进伺服驱动器;
2.联动轴数最高可达16轴,运动周期最小为100μs;
3.标配16进16出,其中4路高速锁存输入、4路高速PWM和12路高速硬件比较输出PSO;
4.支持PWM输出、1D/2D/3D PSO硬件位置比较输出、视觉飞拍、连续轨迹插补等;
5.支持30+机械手模型正逆解模型算法,比如SCARA、Delta、UVW、4轴/5轴 RTCP...;
6.支持掉电存储和掉电中断,多重加密,提供程序更安全机制;
7.8路单端脉冲轴、4路单端编码器轴;
8.具有一维、二维螺距补偿控制,实现更高的加工精度;
PCIE464M视频介绍,点击→“超高速PCle EtherCAT控制卡PCIE464M,即刻提升高速高精智能装备生产力!”查看。
更多关于PCIE464M的详情介绍,点击“PCIE464M-高速高精,超高速PCIe EthrtCAT实时运动控制卡”查看。
ECI2A18B 高性价比10轴运动控制卡
ECI2A18B是正运动推出的一款高性价比10轴脉冲型、模块化的网络型运动控制卡,采用优化的网络通讯协议可以实现实时的运动控制,同时支持多种通信协议,方便与其他工业控制设备连接和集成。安装配置相对便捷,适合于模块化和灵活性要求较高的控制系统。
ECI2A18B控制卡最大可扩展至12脉冲轴,支持8路高速输入和4路高速输出,集成丰富的运动控制功能,包含多轴点位运动、电子凸轮,直线插补,圆弧插补,连续插补运动等,满足多样化的工业应用需求。
ECI2A18B硬件功能特性:
1.支持6路差分脉冲轴+4路单端脉冲轴运动控制;
2.支持1路专用的手轮输入接口;
3.差分脉冲轴最大输出脉冲频率10MHz;
4.标配24+12进16+6出,其中支持4路高速锁存,4路高速PWM,2路高速硬件比较输出PSO(可选支持HW2功能);
5.可支持RTSys+其他高级上位机编程语言的混合编程支持;
6.支持RTBasic多任务编程;
ECI2A18B视频介绍,点击→“【加量不加价】高性价比十轴脉冲运动控制卡ECI2A18B 让您的设备在自动化行业内卷中脱颖而出!”查看。
更多关于ECI2A18B的详情介绍,点击“【加量不加价】正运动网络型运动控制卡ECI2618B/ECI2A18B”查看。
▶▶▶ 使用LabVIEW进行项目开发
1.找到厂家提供的光盘资料里面的LabVIEW的VI库文件,路径如下。
1)进入厂商提供的光盘资料找到“04PC函数”文件夹,并点击进入。
2)选择“01 PC函数库V2.1”文件夹。
3)选择“Windows平台”文件夹。
4)选择“Labview文件夹”,里面有32位和64位的动态库和例程。
2.将厂商提供的LabVIEW的VI库文件复制到LabVIEW安装路径下LabVIEW/user.lib的文件夹内。
1)找到解压的VI库文件夹(zaudll是32位的VI库,64的VI库是newZauxDll64)。
2)选中LabVIEW右击打开文件所在位置(这里以LabVIEW2013-32位为演示)。
3)将整个VI库文件夹直接复制放到user.lib该目录,然后关闭LabVIEW软件重新启动。
3.重新启动LabVIEW后,选择新建VI,然后右键点击VI程序框图空白处,选择用户库来找到添加的VI库,或者直接搜索VI,最后将需要的函数直接拖到面板上。
▶▶▶ 例程相关函数说明
PC函数手册可在光盘资料查看,具体路径如下。
指令3 | ZAux_OpenEth | ||||
指令原型 | int32 __stdcall ZAux_OpenEth(char *ipaddr, ZMC_HANDLE * phandle) | ||||
指令说明 | 以太网连接控制器。 | ||||
输入参数 |
| ||||
输出参数 |
| ||||
返回值 | 成功返回值为0,非0详见错误码说明。 | ||||
指令示例 | 网口连接控制器 | ||||
详细说明 | 1.网口采用RJ45标准网线接口,通讯速率为100Mbit/s。 2.控制器出厂的IP地址为192.168.0.11,端口号为502。对端通讯设备需与控制器处于同一网段,才可进行连接。 3.最常用的控制器连接方式。 4.ZMC_HANDLE类型:Zmotion库中,专门用于控制卡连接数据定义类型; |
指令5 | ZAux_Close | ||||
指令原型 | int32 __stdcall ZAux_Close(ZMC_HANDLE handle) | ||||
指令说明 | 关闭控制器连接。 | ||||
输入参数 |
| ||||
输出参数 | / | ||||
返回值 | 成功返回值为0,非0详见错误码说明。 | ||||
指令示例 | 串口连接控制器 | ||||
详细说明 | / |
指令281 | ZAux_CycleUpEnable | ||||||||||
指令原型 | int32 __stdcall ZAux_CycleUpEnable(ZMC_HANDLE handle, uint32 cycleindex, float fintervalms, const char* psetesname); | ||||||||||
指令说明 | 使能周期上报。 | ||||||||||
输入参数 |
| ||||||||||
输出参数 | / | ||||||||||
返回值 | 成功返回值为0,非0详见错误码说明。 | ||||||||||
指令示例 | 周期上报 | ||||||||||
详细说明 | (1)每个通道上传的字节数不能超过1000字节. (2)每个参数占用的空间有区别,一个IO只占一个bit,4系列以上产品缺省使用double数据类型,3系列和XPLC产品缺省使用float数据类型。 (3)只有网口连接才能周期上传 (4)需要zmotion.dll与控制器固件同时支持 (5)可以通过提前设置经常读取的参数主动周期上报, 可以减少PC主动轮询的时间 | ||||||||||
详细说明2 | 上报支持参数: VP_SPEED(命令当前速度),MPOS(反馈位置),DPOS(命令位置), MSPEED(反馈当前速度),AXISSTATUS(轴状态),FE(随动误差), MOVES_BUFFERED(当前缓冲数),IDLE(运动状态), MOVE_CURMARK(当前运动标号),MARK(锁存触发), VECTOR_BUFFERED(),MTYPE(当前运动类型), DRIVER_FE(驱动器当前随动误差), DRIVER_TORCH(驱动器当前力矩), DRIVER_STATUS(驱动器状态), IN(输入),OUT(输出),AIN(模拟量输入),AOUT(模拟量输出), TABLE(寄存器). 4系列控制器增加参数:REMAIN_BUFFER1,剩余的直线运动缓冲数,MTYPE=1的情况. |
指令282 | ZAux_CycleUpDisable | ||||||
指令原型 | int32 __stdcall ZAux_CycleUpDisable(ZMC_HANDLE handle, uint32 cycleindex); | ||||||
指令说明 | 关闭周期上报使能。 | ||||||
输入参数 |
| ||||||
输出参数 | / | ||||||
返回值 | 成功返回值为0,非0详见错误码说明。 | ||||||
指令示例 | 周期上报 | ||||||
详细说明 | 需要zmotion.dll 与控制器固件同时支持 通过提前设置经常读取的参数主动周期上报,可以减少PC主动轮询的时间 |
指令283 | ZAux_CycleUpGetRecvTimes | ||||||
指令原型 | uint32 __stdcall ZAux_CycleUpGetRecvTimes(ZMC_HANDLE handle, uint32 cycleindex); | ||||||
指令说明 | 获取周期上报收到的包次数。 | ||||||
输入参数 |
| ||||||
输出参数 | / | ||||||
返回值 | 周期上报收到的包次数 | ||||||
指令示例 | 周期上报 | ||||||
详细说明 | 需要zmotion.dll与控制器固件同时支持. 超过溢出调试使用. |
指令284 | ZAux_CycleUpForceOnce | ||||||
指令原型 | int32 __stdcall ZAux_CycleUpForceOnce(ZMC_HANDLE handle, uint32 cycleindex); | ||||||
指令说明 | 强制上报一次。 | ||||||
输入参数 |
| ||||||
输出参数 | / | ||||||
返回值 | 成功返回值为0,非0详见错误码说明。 | ||||||
指令示例 | 周期上报 | ||||||
详细说明 | 在运动指令后idle可能不准确的情况下调用 |
指令286 | ZAux_CycleUpReadBuffInt | ||||||||||
指令原型 | uint32 __stdcall ZAux_CycleUpReadBuffInt(ZMC_HANDLE handle, uint32 cycleindex, const char *psetname, uint32 isetindex, int32*pvalue); | ||||||||||
指令说明 | 从周期上报里面读取内容,内容获取数据类型为整型 | ||||||||||
输入参数 |
| ||||||||||
输入参数 |
| ||||||||||
返回值 | 成功返回值为0,非0详见错误码说明。 | ||||||||||
指令示例 | 周期上报 | ||||||||||
详细说明 | 需要zmotion.dll 与控制器固件同时支持。 通过提前设置经常读取的参数主动周期上报,可以减少PC主动轮询的时间。 |
▶▶▶ 周期上报
1.控制器采用周期上报数据相比PC主动轮询的优势主要体现在以下方面:
(1) 降低CPU资源占用
轮询的瓶颈:PC主动轮询需要持续发起请求并等待响应,频繁的I/O操作会占用大量CPU资源。
周期上报的优化:控制器自主按固定周期发送数据,无需PC反复查询,显著降低CPU占用率。
(2) 提高数据传输效率
减少冗余通信:轮询可能导致大量无效请求(如数据未更新时仍需传输包头信息),而周期上报仅发送有效数据。避免轮询引发的多包数据传输耗时问题,提升带宽利用率。
(3) 增强系统实时性
确定性响应:周期上报以固定时间间隔发送数据,适合工业控制等高实时性场景,而轮询可能因网络延迟或CPU繁忙导致响应不稳定。
(4) 提升系统稳定性
避免资源争用:高频轮询易引发进程冲突,而周期上报通过规范化时序减少资源争用风险。
降低硬件负担:减少总线上的数据包数量,可缓解硬件过热或通信拥塞问题,延长设备寿命。
2.周期上报注意事项:
(1)每个通道上传的字节数不能超过1000字节。
(2)每个参数占用的空间有区别,一个IO只占一个bit,4系列以上产品缺省使用double数据类型,3系列和XPLC产品缺省使用float数据类型。
(3)只有网口连接才能周期上传。
(4)需要zmotion.dll与控制器固件同时支持。
(5)可以通过提前设置经常读取的参数主动周期上报,可以减少PC主动轮询的时间。
3.周期上报支持参数:
VP_SPEED(命令当前速度) | MPOS(反馈位置) |
DPOS(命令位置) | MSPEED(反馈当前速度) |
AXISSTATUS(轴状态) | FE(随动误差) |
MOVES_BUFFERED(当前缓冲数) | IDLE(运动状态) |
MOVE_CURMARK(当前运动标号) | MARK(锁存触发) |
VECTOR_BUFFERED(缓冲剩余距离) | MTYPE(当前运动类型) |
DRIVER_FE(驱动器当前随动误差) | DRIVER_TORCH(驱动器当前力矩) |
DRIVER_STATUS(驱动器状态) | IN(输入) |
OUT(输出) | AIN(模拟量输入) |
AOUT(模拟量输出) | TABLE(寄存器) |
4系列控制器增加参数:REMAIN_BUFFER1(剩余的直线运动缓冲数,MTYPE=1的情况)
▶▶▶ 例程说明
1.例程界面如下。
2.例程简易流程图。
3.要想通过上位机操控控制器,就必须先链接控制器。因为只有网口连接才能周期上传,所以只能通过网口链接方式的链接按钮的事件响应函数来链接控制器。
网口连接用的是ZAux_OpenEth接口。
4.在开启周期上报前,要填写周期上报通道号和上报间隔时间,选择周期上报参数,填写起始地址和数量,选择是否上报。
参数选择使用的是字符串组合框,在字符串组合框的属性→编辑项可以进行编辑参数。
5.开启/关闭周期上报。
通过在事件里面添加条件机构,可以实现启动周期上报选项勾上就开启周期上报,取消勾上启动周期上报选项就关闭周期上报。
(1)开启周期上报,根据设置的周期上报参数使能周期上报并通过改变布尔的值,让超时事件定时读取控制器周期上报的事件。
(2)关闭周期上报,关闭周期上报使能、计算每次周期上报的平均时间并通过改变布尔的值,让超时事件停止定时读取控制器周期上报的事件。
6.超时事件定时读取控制器周期上报的次数和数据。
7.周期上报时间计时。
8.强制上报,强制控制器上报一次数据。
9.清空,清空界面显示的周期上报数据。
10.教学视频可点击→“LabVIEW运动控制(四):EtherCAT运动控制器的周期上报功能_哔哩哔哩_bilibili”查看。
完整代码获取地址
▼
本次,正运动技术LabVIEW运动控制(四):EtherCAT运动控制器的周期上报功能,就分享到这里。
本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。