运动控制卡应用开发教程之激光振镜控制

2020-12-21


今天,正运动技术为大家分享一下应用C++开发一个激光振镜的运动控制例程。
我们主要从新建MFC项目,添加函数库讲起,最后通过项目实战——激光振镜打标例程讲解,来让大家熟悉它的项目开发。
在正式学习之前,我们先了解一下正运动技术的运动控制器ZMC420SCAN。这款产品是20轴运动控制器。
ZMC420SCAN 总线控制器支持 ECAT/RTEX 总线连接,支持多达20轴运动控制,支持直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随、虚拟轴设置等;采用优化的网络通讯协议可以实现实时的运动控制。
ZMC420SCAN 总线控制器支持脉冲轴/总线轴/振镜轴混合插补。
ZMC420SCAN 支持10路脉冲输出与编码器反馈且支持4路振镜轴,板载24点输入,12点输出,2AD,2DA,所有输出口都支持高速PWM控制。
接线方式如下图1所示:

图片

图1
ZMC420SCAN使用一套API函数,支持C、C++、C#、LabVIEW、Python、Delphi等开发语言,支持VC6.0、VB6.0、Qt、.Net等平台,支持Windows、Linux、WinCE、iMac等操作系统。 


图2

图片

ZMC420SCAN 的PWM 输出受正常输出功能的控制,输出口“ON”状态下才能进行PWM输出,便于控制激光能量。
ZMC420SCAN 的输出0-7的具有精准输出的功能,每个输出的精准输出功能相互独立,通过MOVEOP_DELAY 与AXIS_ZSET ,来设置每个MOVE_OP 指令是否使用精准输出以及精准输出的延时,从而实现激光的PSO 控制。
ZMC420SCAN 的输出0-7支持精准输出且相互独立,通过指令:MOVE_OP,AXIS_ZSET,MOVEOP_DELAY来分别控制激光的开关,精准输出开关及延时,从而实现激光PSO控制。
振镜轴:


ZMC420SCAN支持XY2-100振镜协议,支持运动控制与振镜联合插补运动。
上位机通过网口与控制器相连,获取对应控制器的句柄,通过XY2-100协议控制振镜轴,通过总线协议或者脉冲模式控制伺服或步进轴。

图片

图片

本地轴号4/5可以ATYPE=21 配置为第1个振镜, 本地轴号6/7可以ATYPE=21 配置为第2个振镜,可通过 AXIS_ADDRESS 配置轴号。


以下是激光振镜控制开发流程




新建MFC项目 添加函数库

1.在VS2017菜单“文件”→“新建”→“项目”,启动创建项目向导。

图片

2.选择开发语言为“Visual C++”和程序类型“MFC/ATL”中的“MFC应用程序”。

图片

3.选择类型为“基于对话框”,下一步或者完成。下一步则往后继续配置,完成就直接完成即可。把类型选好,其他的可以在项目中编辑。

图片

4.找到厂家提供的光盘资料,路径如下(64位库为例):

A.进入光盘资料找到PC函数文件夹。

B.选择函数库2.1。

C.Windows平台。

图片

D.根据需要选择对应的函数库这里选择64位库。

E.解压C++的压缩包,里面有C++对应的函数库。


F.函数库具体路径如下。

图片

5.将厂商提供的C++的库文件和相关头文件复制到新建的项目里面。


6.在项目中添加静态库和相关头文件。

静态库:zauxdll.lib, zmotion.lib

相关头文件:zauxdll2.h, zmotion.h

A.先右击头文件,接着依次选择:“添加”→“现有项”。

图片

B.在弹出的窗口中依次添加静态库和相关头文件。

图片

7.声明用到的头文件和定义控制器连接句柄。

图片

至此项目新建完成。

 



查看PC函数手册 了解其用法

1.PC函数手册也在光盘资料里面,具体路径如下:

图片

2.PC编程,一般先根据控制器连接方式选择对应的连接函数连接控制器,返回控制器句柄。接着用返回的控制器句柄,实现对控制器的控制。

3.比如通过网口连接控制器,先使用ZAux_OpenEth()链接控制器,获取控制器句柄handle。



4.通过获取到的控制器句柄handle,对控制器进行激光振镜轴类型的设置。

图片

第三个参数的值有以下的模式选择,使用振镜轴需选择轴类型为21的模式,设置轴为振镜轴类型,振镜轴类型系统周期与刷新周期都要比普通轴快很多。

图片

5.通过获取到的控制器句柄handle,控制控制器的振镜轴进行多轴运动控制,可以进行搭配振镜轴与普通轴进行混合插补运动。

图片