本节主要讲解如何通过Python编程调试ZMC432CL-V2的脉冲闭环功能。
ZMC432CL-V2产品简介ZMC432CL-V2高性能多轴运动控制器是一款兼容EtherCAT总线和脉冲型的独立式运动控制器,具备高速实时反馈功能,支持脉冲全闭环控制,能够实现高精度、高响应速度的运动控制。高精度定位,有效消除机械传动误差,满足高精密加工场景应用要求。
ZMC432CL-V2硬件功能特性:
1.丰富的运动控制功能:支持直线、圆弧、空间圆弧、螺旋插补等。
2.硬件接口丰富:支持脉冲轴(带编码器反馈)和EtherCAT总线轴,具备24路输入和12路输出的通用IO,部分为高速IO,2路模拟量输出(DA)。
3.EtherCAT刷新周期最快达250us,满足高速通信需求。
4.支持4通道硬件比较输出、硬件定时器、运动中精准输出,适用于多通道视觉飞拍等场合。
5.支持掉电检测、掉电存储,多种程序加密方式,能够有效防止系统故障,保护项目工程文件数据,并提高系统的可靠性。
6.通过纯国产IDE开发环境RTSys进行项目开发,可实时仿真、在线跟踪以及诊断与调试,简便易用,支持多种高级上位机语言联合编程进行二次开发。
此案例Python开发环境
操作系统环境:Win11_64位
Python版本:python-3.10.10-amd64.exe
Pycharm版本:pycharm-community-2024.1.3.exe
一.python开发前对环境、解析器进行配置。
1.安装汉化包:点击file→setting→plugins,然后搜索Chinese中文包。
2.python解析器安装Pyside2软件包(QT库):File→Settings→Project pythonProject。
3.配置自定义控件:File→Settings→Tools→External Tools点击+新增自定义工具。
自定义QtDesigner
目的:用于生成.ui文件
Name:QtDesigner
Group:Qt
Program:PySide2安装路径下的 designer.exe 路径
例如:C:\Python\Python39\Scripts\pyside2-designer.exe
Working directory:$ProjectFileDir$
自定义Pyside2-uic
目的:将制作好的.ui文件转化为.py文件
Name:Pyside2-uic
Group:Qt
Program:Python安装目录下Scripts\pyside2-uic.exe
例如:C:\Python\Python39\Scripts\pyside2-uic.exe
Arguments:$FileName$ -o $FileNameWithoutExtension$.py
Working directory:$FileDir$
自定义Pyside2-rcc
目的:将图片文件转化为.py文件
Name:Pyside2-rcc
Group:Qt
Program:Python安装目录下Scripts\pyside2-rcc.exe
例如:C:\Python\Python39\Scripts\pyside2-rcc.exe
Arguments:$FileName$ -o $FileNameWithoutExtension$_rc.py
Working directory:$FileDir$
4.配置好自定义控件后,后续可以直接在pycharm菜单中使用。
二.python+Qt进行项目创建与UI设置、添加ZMotion动态库。
1.新建项目:文件→新建项目。
2.UI设置界面。
(1)进入项目ui设置界面:工具→Qt→QtDesigner。
(2)设置项目Ui:通过拖动控件到界面设置ui。
(3)ui设置完后保存文件:文件→保存。
3.python运行UI。
(1)添加UI运行的python文件:选中项目右键→新建→Python File。
(2)Ui_Weiget文件里面添加UI处理的类。
(3)同步骤(1)添加主运行python文件Main,并添加主入口运行函数。
(4)此时在Main文件点击运行按钮,可以运行程序显示UI界面。
4.添加库文件、库函数封装的Python文件。
(1)找到厂家提供的光盘资料里面的python函数库,路径如下(64位库为例)。
a.进入厂商提供的光盘资料找到“04PC函数\01PC函数库V2.1\windows平台\Python”文件夹,据需要选择对应的函数库,这里选择64位库。
b.进入“64位”后打开文件夹“Python64”找到“dll库文件”与“zmcdll”。
(2)将厂商提供的python的库文件以及相关文件复制到新建的项目中。
a.进入“dll库文件”选中zauxdll.dl,zmotion.dll两个文件复制到项目中。
b.进入“zmcdll”选中zauxdllPython.py文件复制到项目中。
c.把对应的库文件与封装的运动Python文件粘贴到项目中后。
(3)进入ui的python文件在文件开头处导入zauxdllPython文件的ZAUXDLL类,并在界面类中创建ZAUXDLL对象。
PC函数介绍
1.PC函数手册可在光盘资料查看,具体路径如下。
2.连接控制器。
3.万能指令之在线命令
有一些使用频率较低的Basic指令我们没有封装到上位机的辅助库中,如果用户上位机需要调用对应的Basic指令的话,可以通过在线命令自行进行相关指令封装。
Python编程调试ZMC432CL-V2的脉冲闭环功能
1.通过在线命令封装脉冲闭环功能对应的上位机接口。
(1)选中项目右键→新建→Python File新建一个MyFullClosedLoop类文件。
(2)查询Basic对应指令的使用说明,封装一个设置轴比例增益的上位机接口。
(3)查询Basic对应指令的使用说明,封装一个获取轴比例增益的上位机接口。
(4)封装好的脉冲闭环功能相关的上位机接口。
2.Python闭环功能的测试例程编写案例讲解。
(1)【连接】连接控制器。
(2)【更新PID参数】按钮如何打开和关闭脉冲闭环功能,如何更新PID参数。
(3)【更新轴参数】按钮如何完成轴参数的更新。
通过RTSys的示波器对比开环控制和全闭环控制的情况
示波器的使用可以参考正运动小助手的历史推文《运动控制看的更清楚细致!RTSys示波器功能简介 (qq.com)》。
1.开环控制情况分析
测试发现:步进驱动器的开环控制,运动过程中随动误差(规划位置和光栅尺反馈位置的差值)一直维持在0.02个用户单位左右(这里一个用户单位即一个UNITS设置的是1mm),当运动结束时光栅尺的反馈位置和指令规划位置也不相等,大概差了0.0015个用户单位,折算为脉冲数是0.0015*用户单位=3个脉冲。
2.闭环控制情况分析
测试发现:步进驱动器的闭环控制,运动过程中随动误差(规划位置和光栅尺反馈位置的差值)除了启动和停止以外大部分保持在0个脉冲当量左右,相比较开环控制有较大的提升,当运动结束时光栅尺的反馈位置和指令规划位置也是相等的。