0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

步进控制的光栅尺全闭环EtherCAT运动控制器ZMC432CL-V2(五):Python编程调试

正运动技术 ? 来源:正运动技术 ? 作者:正运动技术 ? 2025-07-29 14:48 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

之前的课程给大家介绍了ZMC432CL-V2硬件接口(详情点击→步进的光栅尺全闭环EtherCAT运动控制器ZMC432CL-V2(一):硬件接口介绍)。

本节主要讲解如何通过Python编程调试ZMC432CL-V2的脉冲闭环功能。


ZMC432CL-V2产品简介

ZMC432CL-V2高性能多轴运动控制器是一款兼容EtherCAT总线和脉冲型的独立式运动控制器,具备高速实时反馈功能,支持脉冲全闭环控制,能够实现高精度、高响应速度的运动控制。高精度定位,有效消除机械传动误差,满足高精密加工场景应用要求。

wKgZO2iIbq6AMRTxAATQPgFXcYw313.png

ZMC432CL-V2硬件功能特性:

1.丰富的运动控制功能:支持直线、圆弧、空间圆弧、螺旋插补等。

2.硬件接口丰富:支持脉冲轴(带编码器反馈)和EtherCAT总线轴,具备24路输入和12路输出的通用IO,部分为高速IO,2路模拟量输出(DA)。

3.EtherCAT刷新周期最快达250us,满足高速通信需求。

4.支持4通道硬件比较输出、硬件定时器、运动中精准输出,适用于多通道视觉飞拍等场合。

5.支持掉电检测、掉电存储,多种程序加密方式,能够有效防止系统故障,保护项目工程文件数据,并提高系统的可靠性。

6.通过纯国产IDE开发环境RTSys进行项目开发,可实时仿真、在线跟踪以及诊断与调试,简便易用,支持多种高级上位机语言联合编程进行二次开发。


wKgZPGiIbq6AJ7fBAAMlThhcYdE626.png


更多关于ZMC432CL-V2详情介绍点击→步进控制的光栅尺全闭环解决方案:32轴EtherCAT总线运动控制器ZMC432CL-V2。



Python语言如何调用ZMotion的动态库进行项目开发

此案例Python开发环境操作系统环境 :Win11_64位

Python版本:python-3.10.10-amd64.exe

Pycharm版本:pycharm-community-2024.1.3.exe

一.python开发前对环境、解析器进行配置。

1.安装汉化包:点击file→setting→plugins,然后搜索Chinese中文包。

wKgZPGiIbq-Ae6d5AAJL79q50BI192.png

2.python解析器安装Pyside2软件包(QT库):File→Settings→Project pythonProject。

wKgZO2iIbq-AAbonAAHQmYChvOo259.png

3.配置自定义控件:File→Settings→Tools→External Tools点击+新增自定义工具。

wKgZPGiIbrCASma7AAGNDbK_rIc832.png


自定义QtDesigner目的:用于生成.ui文件

Name:QtDesigner

Group:Qt

ProgramPySide2安装路径下的 designer.exe 路径

例如:C:PythonPython39Scriptspyside2-designer.exe

Working directory:$ProjectFileDir$

自定义Pyside2-uic目的:将制作好的.ui文件转化为.py文件

Name:Pyside2-uic

Group:Qt

Program:Python安装目录下Scriptspyside2-uic.exe

例如:C:PythonPython39Scriptspyside2-uic.exe

Arguments:$FileName$ -o $FileNameWithoutExtension$.py

Working directory:$FileDir$

自定义Pyside2-rcc目的:将图片文件转化为.py文件

Name:Pyside2-rcc

Group:Qt

Program:Python安装目录下Scriptspyside2-rcc.exe

例如:C:PythonPython39Scriptspyside2-rcc.exe

Arguments:$FileName$ -o $FileNameWithoutExtension$_rc.py

Working directory:$FileDir$

4.配置好自定义控件后,后续可以直接在pycharm菜单中使用。

wKgZO2iIbrCAWDMgAAEu5R_lqLo814.png

二.python+Qt进行项目创建与UI设置、添加ZMotion动态库。

1.新建项目:文件→新建项目。

wKgZO2iIbrCAVA_aAAFThTgs99c693.png

wKgZPGiIbrGAXY8lAAD_zA7GFq8029.png

2.UI设置界面。

(1)进入项目ui设置界面:工具→Qt→QtDesigner。

wKgZO2iIbrGAAYlaAAFOXy6c9xQ857.png

wKgZPGiIbrGARIgEAAHoJIZ8VzI341.png

(2)设置项目Ui:通过拖动控件到界面设置ui。

wKgZO2iIbrKAKL00AAM4Asxu_jc579.png

(3)ui设置完后保存文件:文件→保存。

wKgZPGiIbrKAV3V6AALdskn7yDA316.png

3.python运行UI。

(1)添加UI运行的python文件:选中项目右键新建Python File。

wKgZO2iIbrOAF6ImAAGXSQgd2jA746.png

wKgZPGiIbrSACWczAAEWpRFPcus064.png

(2)Ui_Weiget文件里面添加UI处理的类。

wKgZO2iIbrSAa3A4AAF64kvFgXY023.png

fromPySide2.QtCoreimportQFile
fromPySide2.QtUiToolsimportQUiLoader
classUiInterFace:
 def__init__(self):
   # 从文件中加载UI定义
    q_state_file = QFile("mainWeiget.ui")
    q_state_file.open(QFile.ReadOnly)
    q_state_file.close()
   # 从 UI 定义中动态 创建一个相应的窗口对象
    self.ui = QUiLoader().load(q_state_file)

(3)同步骤(1)添加主运行python文件Main,并添加主入口运行函数。

wKgZPGiIbrSADKg4AAGDxDV71zo004.png

fromPySide2.QtWidgetsimportQApplication
fromUi_WeigetimportUiInterFace
if__name__ =="__main__":
  app = QApplication([]) #加载所有控件
  ui_interface = UiInterFace() #创建窗体对象
  ui_interface.ui.show()  #主窗口的控件,全部显示在界面上
  app.exec_()      #进入QApplication的事件处理循环

(4)此时在Main文件点击运行按钮,可以运行程序显示UI界面。

wKgZO2iIbrWAHP6-AAII2C3gS74778.png

4.添加库文件、库函数封装的Python文件。

(1)找到厂家提供的光盘资料里面的python函数库,路径如下(64位库为例)。

a.进入厂商提供的光盘资料找到“04PC函数1PC函数库V2.1windows平台Python”文件夹,据需要选择对应的函数库,这里选择64位库。

wKgZPGiIbrWAN0-_AAAonl7JcW4646.png

b.进入“64位”后打开文件夹“Python64”找到“dll库文件”与“zmcdll”。

wKgZO2iIbrWARiNTAACZwRIUcmk874.png

(2)将厂商提供的python的库文件以及相关文件复制到新建的项目中。

a.进入“dll库文件”选中zauxdll.dl,zmotion.dll两个文件复制到项目中。

wKgZPGiIbrWAD4b2AACnbnNWLSw105.png

wKgZO2iIbraAPYG4AABHX4go1kA580.png

b.进入“zmcdll”选中zauxdllPython.py文件复制到项目中。

wKgZPGiIbraARX3aAACmZuqBiMc746.png

wKgZO2iIbraAOhWaAABBYKEwla8557.png

c.把对应的库文件与封装的运动Python文件粘贴到项目中后。

wKgZPGiIbreAG_N0AAGdizdzpic116.png

(3)进入ui的python文件在文件开头处导入zauxdllPython文件的ZAUXDLL类,并在界面类中创建ZAUXDLL对象。

wKgZPGiIbreAZTS_AAHayX96nVk969.png


PC函数介绍

1.PC函数手册可在光盘资料查看,具体路径如下。

wKgZO2iIbreAelqnAABFI63qWPo455.png

2.连接控制器。

wKgZPGiIbriALEtzAAI2nqOkMMM644.png

3.万能指令之在线命令

有一些使用频率较低的Basic指令我们没有封装到上位机的辅助库中,如果用户上位机需要调用对应的Basic指令的话,可以通过在线命令自行进行相关指令封装。

wKgZO2iIbriAH8A9AAKJUK_TRoE924.png

wKgZPGiIbriAGpA4AABmAQmxs4I570.png



Python编程调试ZMC432CL-V2的脉冲闭环功能

1.通过在线命令封装脉冲闭环功能对应的上位机接口。

(1)选中项目右键新建Python File新建一个MyFullClosedLoop类文件。

wKgZO2iIbrmAR1AmAAI9vI-KzlM005.png

(2)查询Basic对应指令的使用说明,封装一个设置轴比例增益的上位机接口。

wKgZPGiIbrmAAtduAAJTw_HXhjQ893.png


defZAux_Direct_SetPGain(self, iaxis, fValue):
 '''
  :Description:设置轴的比例增益
  :param iaxis:轴号
  :param fValue:比例增益P的值
  :return:错误码,返回字符串
  '''
 # 判断轴数是否超标
 if iaxis > self.MAX_AXIS_AUX:
   returnself.ERR_AUX_PARAERR
 # 生成命令
  pszCommand ="P_Gain({0}) = {1}".format(iaxis, fValue)
 # 调用命令执行函数
  ret = self.Zmc.ZAux_DirectCommand(pszCommand)
 returnret[0],ret[1]

(3)查询Basic对应指令的使用说明,封装一个获取轴比例增益的上位机接口。


defZAux_Direct_GetPGain(self,iaxis):
 '''
  :Description:获取轴的比例增益
  :param iaxis:轴号
  :return:错误码,获取的轴比例增益P的值
  '''
 # 判断轴数是否超标
 ifiaxis >self.MAX_AXIS_AUX:
   returnself.ERR_AUX_PARAERR
 #生成命令
  pszCommand ="?P_Gain({0})".format(iaxis)
 #调用命令执行函数
  ret = self.Zmc.ZAux_Execute(pszCommand)
 ifself.ERR_OK != ret[0]:
   returnret[0]
 # 解析返回的字符串
 iflen(ret[1]) ==0:
   returnself.ERR_NOACK
 else:
    value =float(ret[1])
   returnself.ERR_OK,value

(4)封装好的脉冲闭环功能相关的上位机接口。

wKgZO2iIbrqAFF4fAAI0t4iDWWs745.png

2.Python闭环功能的测试例程编写案例讲解。

(1)【连接】连接控制器。

#连接控制器,一般使用网口连接,控制器默认IP是192.168.0.11,
defon_btn_Connect(self):
 ifself.Zmc.handle.valueisnotNone:
    self.Zmc.ZAux_Close()
    self.Zmc.handle.value =None
    self.ui.setWindowTitle("脉冲闭环测试(步进驱动器+编码器反馈)")
  Temptype =2# 2-ETH
  TempStr = self.ui.cb_strlist.currentText()
 ifself.ui.cb_type.currentText() =="网口":
    Temptype =2# 2-ETH
 elifself.ui.cb_type.currentText() =="LOCAL":
    Temptype =5# MotionRT
 elifself.ui.cb_type.currentText() =="PCI":
    Temptype =4# PCI
 elifself.ui.cb_type.currentText() =="串口":
    Temptype =1# COM
  iresult = self.Zmc.ZAux_FastOpen(Temptype, TempStr,1000)

(2)【更新PID参数】按钮如何打开和关闭脉冲闭环功能,如何更新PID参数。


defPidParaSet(self):
 TempFloat=0
 TempDpos=0
 TempMpos=0
 TempInt=0
 Axis_Num= int(self.ui.edit_AxisId.text()) # 轴号
 CloseLoop= MyFullClosedLoop() # 创建 MyFullClosedLoop 控制器对象
 CloseLoop.Zmc.handle=self.Zmc.handle #设置控制器句柄为当前连接控制器句柄
 CompareStr="闭环已开"
 TempStr= self.ui.btn_IsClosedLoop.text()
 #打开全闭环去控制轴运动
 ifTempStr == CompareStr:
   #获取轴位置,如果DPOS和MPOS相差太大不能打开脉冲闭环
   TempDpos= self.Zmc.ZAux_Direct_GetDpos(Axis_Num)[1].value
   TempMpos= self.Zmc.ZAux_Direct_GetMpos(Axis_Num)[1].value
   if((TempDpos - TempMpos) >4 or (TempDpos - TempMpos < -4)):
? ? ? ? ? ??print("规划位置和反馈位置相差太大,无法启动闭环功能!!!!")
? ? ? ? ? ??QMessageBox.warning(self.ui,?"提示",?"规划位置和反馈位置相差太大,无法启动闭环功能!!!!")
? ? ? ? ? ??return?-1
? ? ? ??#更新比例增益
? ? ? ??TempFloat=self.ui.edit_ParaP.text()
? ? ? ??CloseLoop.ZAux_Direct_SetPGain(Axis_Num, TempFloat)
? ? ? ??#更新积分增益
? ? ? ??TempFloat=self.ui.edit_ParaI.text()
? ? ? ??CloseLoop.ZAux_Direct_SetIGain(Axis_Num,TempFloat)
? ? ? ??# 更新微分增益
? ? ? ??TempFloat=self.ui.edit_ParaD.text()
? ? ? ??CloseLoop.ZAux_Direct_SetDGain(Axis_Num,TempFloat)
? ? ? ??#更新速度前馈增益
? ? ? ??TempFloat?= self.ui.edit_ParaVF.text()
? ? ? ??CloseLoop.ZAux_Direct_SetVffGain(Axis_Num, TempFloat)
? ? ? ??#更新加速度前馈增益
? ? ? ??TempFloat?= self.ui.edit_ParaAF.text()
? ? ? ??CloseLoop.ZAux_Direct_SetAffGain(Axis_Num, TempFloat)
? ? ? ??# 更新速度增益
? ? ? ??TempFloat?= self.ui.edit_ParaOV.text()
? ? ? ??CloseLoop.ZAux_Direct_SetOvGain(Axis_Num, TempFloat)
? ? ? ??#注意:在打开servo之前打开encoder_servo后要完成一次atype由0变为4的切换,否则会报axis: axis:0 config not support Servo#1、先打开encoder_servo
? ? ? ??CloseLoop.ZAux_Direct_SetEncoderServo(Axis_Num,?1)
? ? ? ??time.sleep(0.02)
? ? ? ? TempInt=CloseLoop.ZAux_Direct_GetEncoderServo(Axis_Num)[1]
? ? ? ??if?TempInt==1:
? ? ? ? ? ??#2、完成一次Atype由0变为4的切换
? ? ? ? ? ??self.Zmc.ZAux_Direct_SetAtype(Axis_Num,?0);
? ? ? ? ? ??time.sleep(0.02)
? ? ? ? ? ??self.Zmc.ZAux_Direct_SetAtype(Axis_Num,?4);
? ? ? ? ? ??#3、打开Servo
? ? ? ? ? ??CloseLoop.ZAux_Direct_SetServo(Axis_Num,?1);
? ? ? ? ? ??time.sleep(0.02)
? ? ? ? ? ??TempInt=CloseLoop.ZAux_Direct_GetServo(Axis_Num)[1]
? ? ? ? ? ??if?TempInt==1:
? ? ? ? ? ? ? ??print("闭环参数配置完成, 轴全闭环功能打开成功。");
? ? ? ? ? ??else:
? ? ? ? ? ? ? ??print("轴闭环开关Servo打开失败, 导致脉冲全闭环开启失败");
? ? ? ? ? ? ? ??return?-1;
? ? ? ??else:
? ? ? ? ? ??print("轴编码器闭环EncoderServo打开失败, 导致脉冲全闭环开启失败!!!");
? ? ? ? ? ??return?-1;
? ??else:
? ? ? ??#关闭全闭环的功能
? ? ? ??#1、关闭EncoderServo
? ? ? ??CloseLoop.ZAux_Direct_SetEncoderServo(Axis_Num,?0);
? ? ? ??time.sleep(0.02)
? ? ? ??TempInt=CloseLoop.ZAux_Direct_GetEncoderServo(Axis_Num)[1]
? ? ? ??if?TempInt==1:
? ? ? ? ? ??Console.WriteLine("轴EncoderServo关闭失败!!!");
? ? ? ? ? ??return?-1;
? ? ? ??# 2、关闭EncoderServo后需要完成ATYPE的切换,保证完全关闭闭环功能
? ? ? ??self.Zmc.ZAux_Direct_SetAtype(Axis_Num,?0);
? ? ? ??time.sleep(0.02)
? ? ? ??self.Zmc.ZAux_Direct_SetAtype(Axis_Num,?4);
? ? ? ??# 3、关闭Servo
? ? ? ??CloseLoop.ZAux_Direct_SetServo(Axis_Num,?0);
? ? ? ??time.sleep(0.02)
? ? ? ??TempInt=CloseLoop.ZAux_Direct_GetServo(Axis_Num)[1]
? ? ? ??if?TempInt==1:
? ? ? ? ? ??print("轴Servo关闭失败!!!");
? ? ? ? ? ??return?-1;
? ??return?0;

(3)【更新轴参数】按钮如何完成轴参数的更新。

defAxisParaSet(self):
  TempFloat =0
  TempInt1 =0
  TempInt2 =0
  Axis_Num =int(self.ui.edit_AxisId.text()) # 轴号
 # 设置最大随动误差FE_LIMIT
  self.Zmc.ZAux_Direct_SetFeLimit(Axis_Num,500)
 # 更新编码器齿轮比 (如果发N个脉冲,实际编码器反馈M个脉冲,编码器齿轮比要设置成 N/M)
  TempInt1 =int(self.ui.edit_EncoderRatioMol.text())
  TempInt2 =int(self.ui.edit_EncoderRatioDenom.text())
  self.Zmc.ZAux_Direct_EncoderRatio(Axis_Num, TempInt1, TempInt2)
 # 更新脉冲当量,一般脉冲当量设置成机台运动1mm需要的脉冲数
  TempFloat =float(self.ui.edit_ParaUnits.text())
  self.Zmc.ZAux_Direct_SetUnits(Axis_Num, TempFloat);
 # 全闭环的功能需要把ATYPE设置成4
  self.Zmc.ZAux_Direct_SetAtype(Axis_Num,4);
 # 更新速度
  TempFloat =float(self.ui.edit_ParaSpeed.text())
  self.Zmc.ZAux_Direct_SetSpeed(Axis_Num, TempFloat);
 # 更新加速度、减速度
  TempFloat =float(self.ui.edit_ParaAccel.text())
  self.Zmc.ZAux_Direct_SetAccel(Axis_Num, TempFloat);
  TempFloat =float(self.ui.edit_ParaDecel.text())
  self.Zmc.ZAux_Direct_SetDecel(Axis_Num, TempFloat);
 # 是否启用SS曲线
 ifself.CurveIsSS ==1:
   # 启用SS曲线,VP_MODE模式设置成7即可
   # 上位机没有现场设置VP_MODE的接口,直接在线命令去封装,在线命令是万能指令
    pszCommand ="VP_MODE({0}) = 7 ".format(Axis_Num)
    self.Zmc.ZAux_DirectCommand(pszCommand)
   print("启用SS曲线,VP_MODE模式设置成7!!")
 else:
   # 启用S曲线,VP_MODE模式设置成0即可
   # 上位机没有现场设置VP_MODE的接口,直接在线命令去封装,在线命令是万能指令
    pszCommand ="VP_MODE({0}) = 0 ".format(Axis_Num)
    self.Zmc.ZAux_DirectCommand(pszCommand)
   # S曲线模式,S曲线时间sramp是有效果的,需要设置一下
    TempFloat =float(self.ui.edit_ParaSramp.text())
    self.Zmc.ZAux_Direct_SetSramp(Axis_Num, TempFloat);
   print("启用S曲线,VP_MODE模式设置成0!!")
 print("轴参数设置完成!!")



通过RTSys的示波器对比开环控制和全闭环控制的情况

示波器的使用可以参考正运动小助手的历史推文《运动控制看的更清楚细致!RTSys示波器功能简介 (qq.com)》。

1.开环控制情况分析

wKgZPGiIbrqAX3tyAAHPScUJzjc585.png

wKgZO2iIbrqAe4M5AAFlG4waHCM531.png

测试发现:步进驱动器的开环控制,运动过程中随动误差(规划位置和光栅尺反馈位置的差值)一直维持在0.02个用户单位左右(这里一个用户单位即一个UNITS设置的是1mm),当运动结束时光栅尺的反馈位置和指令规划位置也不相等,大概差了0.0015个用户单位,折算为脉冲数是0.0015*用户单位=3个脉冲。

2.闭环控制情况分析

wKgZPGiIbruAEo46AAHV6-2_V8E037.png

wKgZO2iIbruAceAIAAFHAyE1hHM803.png

测试发现:步进驱动器的闭环控制,运动过程中随动误差(规划位置和光栅尺反馈位置的差值)除了启动和停止以外大部分保持在0个脉冲当量左右,相比较开环控制有较大的提升,当运动结束时光栅尺的反馈位置和指令规划位置也是相等的。

3.教学视频可点击→“步进控制的光栅尺全闭环EtherCAT运动控制器ZMC432CL-V2(五):Python编程调试”查看。


完整代码获取地址

wKgZPGiIbruAUaI7AAA_uCuCtpQ940.jpg

本次,正运动技术步进控制的光栅尺全闭环EtherCAT运动控制器ZMC432CL-V2(五):Python编程调试,就分享到这里。

本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 运动控制
    +关注

    关注

    4

    文章

    730

    浏览量

    33614
  • python
    +关注

    关注

    56

    文章

    4831

    浏览量

    87365
  • ethercat
    +关注

    关注

    19

    文章

    1145

    浏览量

    40203
  • 步进控制
    +关注

    关注

    0

    文章

    12

    浏览量

    7558
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    100%器件全国产化认证:ZMC432HG系列EtherCAT运动控制器通过全国产化认证!

    运动软硬件全国产ZMC432HG助您构建软硬件自主可控的解决方案
    的头像 发表于 05-27 10:27 ?196次阅读
    100%器件全国产化认证:<b class='flag-5'>ZMC432</b>HG系列<b class='flag-5'>EtherCAT</b><b class='flag-5'>运动</b><b class='flag-5'>控制器</b>通过全国产化认证!

    步进光栅尺闭环EtherCAT运动控制器ZMC432CL-V2(四):LabVIEW编程调试

    通过LabVIEW调试ZMC432CL-V2的脉冲闭环功能
    的头像 发表于 05-20 15:55 ?230次阅读
    <b class='flag-5'>步进</b>的<b class='flag-5'>光栅尺</b><b class='flag-5'>全</b><b class='flag-5'>闭环</b><b class='flag-5'>EtherCAT</b><b class='flag-5'>运动</b><b class='flag-5'>控制器</b><b class='flag-5'>ZMC432CL-V2</b>(四):LabVIEW<b class='flag-5'>编程</b><b class='flag-5'>调试</b>

    直线电机模组中光栅尺和磁栅的区别

    在直线电机模组中,光栅尺和磁栅都是高精度位移传感,但它们在工作原理、特性及应用方面存在一些显著的区别。 一、工作原理 1. 光栅尺: ? ?●
    的头像 发表于 04-14 07:38 ?590次阅读

    运动控制器接电子的工作原理

    运动控制器接电子的工作原理,主要涉及运动控制器对电子(直线位移传感
    的头像 发表于 03-14 16:05 ?727次阅读

    步进光栅尺闭环EtherCAT运动控制器ZMC432CL-V2(二):RTSys编程调试

    通过RTSys调试ZMC432CL-V2的脉冲闭环功能
    的头像 发表于 02-20 11:01 ?536次阅读
    <b class='flag-5'>步进</b>的<b class='flag-5'>光栅尺</b><b class='flag-5'>全</b><b class='flag-5'>闭环</b><b class='flag-5'>EtherCAT</b><b class='flag-5'>运动</b><b class='flag-5'>控制器</b><b class='flag-5'>ZMC432CL-V2</b>(二):RTSys<b class='flag-5'>编程</b><b class='flag-5'>调试</b>

    简单易用紧凑型总线运动控制器ZMC432M

    简单易用的32轴总线运动控制器ZMC432M!助您轻松学握运动控制
    的头像 发表于 01-21 11:04 ?324次阅读
    简单易用紧凑型总线<b class='flag-5'>运动</b><b class='flag-5'>控制器</b>:<b class='flag-5'>ZMC432</b>M

    光栅尺和编码的区别 光栅尺和编码哪个精度高

    光栅尺和编码都是位置检测装置,其作用都是给系统反馈位移量的,但光栅尺是一种长度或位移检测元件,而编码是一种检测角度或旋转速度的反馈元件。光栅尺
    的头像 发表于 12-11 01:10 ?2097次阅读
    <b class='flag-5'>光栅尺</b>和编码<b class='flag-5'>器</b>的区别 <b class='flag-5'>光栅尺</b>和编码<b class='flag-5'>器</b>哪个精度高

    步进控制光栅尺闭环解决方案:32轴EtherCAT总线运动控制器ZMC432CL-V2

    高精度光栅尺的脉冲闭环,改善步进系统的亚微米加工性能!
    的头像 发表于 11-27 14:37 ?1032次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>控制</b>的<b class='flag-5'>光栅尺</b><b class='flag-5'>全</b><b class='flag-5'>闭环</b>解决方案:32轴<b class='flag-5'>EtherCAT</b>总线<b class='flag-5'>运动</b><b class='flag-5'>控制器</b><b class='flag-5'>ZMC432CL-V2</b>

    脉冲闭环EtherCAT运动控制器的固件升级

    固件是常用功能。推荐优先使用最新的RTSys软件。 本文以ZMC406R-V2运动控制器为例给大家介绍正运动固件升级的多种方式。 ZMC406R-V
    的头像 发表于 11-07 10:58 ?1055次阅读
    脉冲<b class='flag-5'>全</b><b class='flag-5'>闭环</b><b class='flag-5'>EtherCAT</b><b class='flag-5'>运动</b><b class='flag-5'>控制器</b>的固件升级