91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

步進(jìn)控制的光柵尺全閉環(huán)EtherCAT運(yùn)動(dòng)控制器ZMC432CL-V2(五):Python編程調(diào)試

正運(yùn)動(dòng)技術(shù) ? 來源:正運(yùn)動(dòng)技術(shù) ? 作者:正運(yùn)動(dòng)技術(shù) ? 2025-07-29 14:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

之前的課程給大家介紹了ZMC432CL-V2硬件接口(詳情點(diǎn)擊→步進(jìn)的光柵尺全閉環(huán)EtherCAT運(yùn)動(dòng)控制器ZMC432CL-V2(一):硬件接口介紹)。

本節(jié)主要講解如何通過Python編程調(diào)試ZMC432CL-V2的脈沖閉環(huán)功能。


ZMC432CL-V2產(chǎn)品簡(jiǎn)介

ZMC432CL-V2高性能多軸運(yùn)動(dòng)控制器是一款兼容EtherCAT總線和脈沖型的獨(dú)立式運(yùn)動(dòng)控制器,具備高速實(shí)時(shí)反饋功能,支持脈沖全閉環(huán)控制,能夠?qū)崿F(xiàn)高精度、高響應(yīng)速度的運(yùn)動(dòng)控制。高精度定位,有效消除機(jī)械傳動(dòng)誤差,滿足高精密加工場(chǎng)景應(yīng)用要求。

wKgZO2iIbq6AMRTxAATQPgFXcYw313.png

ZMC432CL-V2硬件功能特性:

1.豐富的運(yùn)動(dòng)控制功能:支持直線、圓弧、空間圓弧、螺旋插補(bǔ)等。

2.硬件接口豐富:支持脈沖軸(帶編碼器反饋)和EtherCAT總線軸,具備24路輸入和12路輸出的通用IO,部分為高速IO,2路模擬量輸出(DA)。

3.EtherCAT刷新周期最快達(dá)250us,滿足高速通信需求。

4.支持4通道硬件比較輸出、硬件定時(shí)器、運(yùn)動(dòng)中精準(zhǔn)輸出,適用于多通道視覺飛拍等場(chǎng)合。

5.支持掉電檢測(cè)、掉電存儲(chǔ),多種程序加密方式,能夠有效防止系統(tǒng)故障,保護(hù)項(xiàng)目工程文件數(shù)據(jù),并提高系統(tǒng)的可靠性。

6.通過純國(guó)產(chǎn)IDE開發(fā)環(huán)境RTSys進(jìn)行項(xiàng)目開發(fā),可實(shí)時(shí)仿真、在線跟蹤以及診斷與調(diào)試,簡(jiǎn)便易用,支持多種高級(jí)上位機(jī)語言聯(lián)合編程進(jìn)行二次開發(fā)。


wKgZPGiIbq6AJ7fBAAMlThhcYdE626.png


更多關(guān)于ZMC432CL-V2詳情介紹點(diǎn)擊→步進(jìn)控制的光柵尺全閉環(huán)解決方案:32軸EtherCAT總線運(yùn)動(dòng)控制器ZMC432CL-V2。



Python語言如何調(diào)用ZMotion的動(dòng)態(tài)庫(kù)進(jìn)行項(xiàng)目開發(fā)

此案例Python開發(fā)環(huán)境操作系統(tǒng)環(huán)境 :Win11_64位

Python版本:python-3.10.10-amd64.exe

Pycharm版本:pycharm-community-2024.1.3.exe

一.python開發(fā)前對(duì)環(huán)境、解析器進(jìn)行配置。

1.安裝漢化包:點(diǎn)擊file→setting→plugins,然后搜索Chinese中文包。

wKgZPGiIbq-Ae6d5AAJL79q50BI192.png

2.python解析器安裝Pyside2軟件包(QT庫(kù)):File→Settings→Project pythonProject。

wKgZO2iIbq-AAbonAAHQmYChvOo259.png

3.配置自定義控件:File→Settings→Tools→External Tools點(diǎn)擊+新增自定義工具。

wKgZPGiIbrCASma7AAGNDbK_rIc832.png


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

Name:QtDesigner

Group:Qt

ProgramPySide2安裝路徑下的 designer.exe 路徑

例如:C:PythonPython39Scriptspyside2-designer.exe

Working directory:$ProjectFileDir$

自定義Pyside2-uic目的:將制作好的.ui文件轉(zhuǎn)化為.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目的:將圖片文件轉(zhuǎn)化為.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.配置好自定義控件后,后續(xù)可以直接在pycharm菜單中使用。

wKgZO2iIbrCAWDMgAAEu5R_lqLo814.png

二.python+Qt進(jìn)行項(xiàng)目創(chuàng)建與UI設(shè)置、添加ZMotion動(dòng)態(tài)庫(kù)。

1.新建項(xiàng)目:文件→新建項(xiàng)目。

wKgZO2iIbrCAVA_aAAFThTgs99c693.png

wKgZPGiIbrGAXY8lAAD_zA7GFq8029.png

2.UI設(shè)置界面。

(1)進(jìn)入項(xiàng)目ui設(shè)置界面:工具→Qt→QtDesigner。

wKgZO2iIbrGAAYlaAAFOXy6c9xQ857.png

wKgZPGiIbrGARIgEAAHoJIZ8VzI341.png

(2)設(shè)置項(xiàng)目Ui:通過拖動(dòng)控件到界面設(shè)置ui。

wKgZO2iIbrKAKL00AAM4Asxu_jc579.png

(3)ui設(shè)置完后保存文件:文件→保存。

wKgZPGiIbrKAV3V6AALdskn7yDA316.png

3.python運(yùn)行UI。

(1)添加UI運(yùn)行的python文件:選中項(xiàng)目右鍵新建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 定義中動(dòng)態(tài) 創(chuàng)建一個(gè)相應(yīng)的窗口對(duì)象
    self.ui = QUiLoader().load(q_state_file)

(3)同步驟(1)添加主運(yùn)行python文件Main,并添加主入口運(yùn)行函數(shù)。

wKgZPGiIbrSADKg4AAGDxDV71zo004.png

fromPySide2.QtWidgetsimportQApplication
fromUi_WeigetimportUiInterFace
if__name__ =="__main__":
  app = QApplication([]) #加載所有控件
  ui_interface = UiInterFace() #創(chuàng)建窗體對(duì)象
  ui_interface.ui.show()  #主窗口的控件,全部顯示在界面上
  app.exec_()      #進(jìn)入QApplication的事件處理循環(huán)

(4)此時(shí)在Main文件點(diǎn)擊運(yùn)行按鈕,可以運(yùn)行程序顯示UI界面。

wKgZO2iIbrWAHP6-AAII2C3gS74778.png

4.添加庫(kù)文件、庫(kù)函數(shù)封裝的Python文件。

(1)找到廠家提供的光盤資料里面的python函數(shù)庫(kù),路徑如下(64位庫(kù)為例)。

a.進(jìn)入廠商提供的光盤資料找到“04PC函數(shù)1PC函數(shù)庫(kù)V2.1windows平臺(tái)Python”文件夾,據(jù)需要選擇對(duì)應(yīng)的函數(shù)庫(kù),這里選擇64位庫(kù)。

wKgZPGiIbrWAN0-_AAAonl7JcW4646.png

b.進(jìn)入“64位”后打開文件夾“Python64”找到“dll庫(kù)文件”與“zmcdll”。

wKgZO2iIbrWARiNTAACZwRIUcmk874.png

(2)將廠商提供的python的庫(kù)文件以及相關(guān)文件復(fù)制到新建的項(xiàng)目中。

a.進(jìn)入“dll庫(kù)文件”選中zauxdll.dl,zmotion.dll兩個(gè)文件復(fù)制到項(xiàng)目中。

wKgZPGiIbrWAD4b2AACnbnNWLSw105.png

wKgZO2iIbraAPYG4AABHX4go1kA580.png

b.進(jìn)入“zmcdll”選中zauxdllPython.py文件復(fù)制到項(xiàng)目中。

wKgZPGiIbraARX3aAACmZuqBiMc746.png

wKgZO2iIbraAOhWaAABBYKEwla8557.png

c.把對(duì)應(yīng)的庫(kù)文件與封裝的運(yùn)動(dòng)Python文件粘貼到項(xiàng)目中后。

wKgZPGiIbreAG_N0AAGdizdzpic116.png

(3)進(jìn)入ui的python文件在文件開頭處導(dǎo)入zauxdllPython文件的ZAUXDLL類,并在界面類中創(chuàng)建ZAUXDLL對(duì)象。

wKgZPGiIbreAZTS_AAHayX96nVk969.png


PC函數(shù)介紹

1.PC函數(shù)手冊(cè)可在光盤資料查看,具體路徑如下。

wKgZO2iIbreAelqnAABFI63qWPo455.png

2.連接控制器。

wKgZPGiIbriALEtzAAI2nqOkMMM644.png

3.萬能指令之在線命令

有一些使用頻率較低的Basic指令我們沒有封裝到上位機(jī)的輔助庫(kù)中,如果用戶上位機(jī)需要調(diào)用對(duì)應(yīng)的Basic指令的話,可以通過在線命令自行進(jìn)行相關(guān)指令封裝。

wKgZO2iIbriAH8A9AAKJUK_TRoE924.png

wKgZPGiIbriAGpA4AABmAQmxs4I570.png



Python編程調(diào)試ZMC432CL-V2的脈沖閉環(huán)功能

1.通過在線命令封裝脈沖閉環(huán)功能對(duì)應(yīng)的上位機(jī)接口。

(1)選中項(xiàng)目右鍵新建Python File新建一個(gè)MyFullClosedLoop類文件。

wKgZO2iIbrmAR1AmAAI9vI-KzlM005.png

(2)查詢Basic對(duì)應(yīng)指令的使用說明,封裝一個(gè)設(shè)置軸比例增益的上位機(jī)接口。

wKgZPGiIbrmAAtduAAJTw_HXhjQ893.png


defZAux_Direct_SetPGain(self, iaxis, fValue):
 '''
  :Description:設(shè)置軸的比例增益
  :param iaxis:軸號(hào)
  :param fValue:比例增益P的值
  :return:錯(cuò)誤碼,返回字符串
  '''
 # 判斷軸數(shù)是否超標(biāo)
 if iaxis > self.MAX_AXIS_AUX:
   returnself.ERR_AUX_PARAERR
 # 生成命令
  pszCommand ="P_Gain({0}) = {1}".format(iaxis, fValue)
 # 調(diào)用命令執(zhí)行函數(shù)
  ret = self.Zmc.ZAux_DirectCommand(pszCommand)
 returnret[0],ret[1]

(3)查詢Basic對(duì)應(yīng)指令的使用說明,封裝一個(gè)獲取軸比例增益的上位機(jī)接口。


defZAux_Direct_GetPGain(self,iaxis):
 '''
  :Description:獲取軸的比例增益
  :param iaxis:軸號(hào)
  :return:錯(cuò)誤碼,獲取的軸比例增益P的值
  '''
 # 判斷軸數(shù)是否超標(biāo)
 ifiaxis >self.MAX_AXIS_AUX:
   returnself.ERR_AUX_PARAERR
 #生成命令
  pszCommand ="?P_Gain({0})".format(iaxis)
 #調(diào)用命令執(zhí)行函數(shù)
  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)封裝好的脈沖閉環(huán)功能相關(guān)的上位機(jī)接口。

wKgZO2iIbrqAFF4fAAI0t4iDWWs745.png

2.Python閉環(huán)功能的測(cè)試?yán)叹帉懓咐v解。

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

#連接控制器,一般使用網(wǎng)口連接,控制器默認(rèn)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("脈沖閉環(huán)測(cè)試(步進(jìn)驅(qū)動(dòng)器+編碼器反饋)")
  Temptype =2# 2-ETH
  TempStr = self.ui.cb_strlist.currentText()
 ifself.ui.cb_type.currentText() =="網(wǎng)口":
    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參數(shù)】按鈕如何打開和關(guān)閉脈沖閉環(huán)功能,如何更新PID參數(shù)。


defPidParaSet(self):
 TempFloat=0
 TempDpos=0
 TempMpos=0
 TempInt=0
 Axis_Num= int(self.ui.edit_AxisId.text()) # 軸號(hào)
 CloseLoop= MyFullClosedLoop() # 創(chuàng)建 MyFullClosedLoop 控制器對(duì)象
 CloseLoop.Zmc.handle=self.Zmc.handle #設(shè)置控制器句柄為當(dāng)前連接控制器句柄
 CompareStr="閉環(huán)已開"
 TempStr= self.ui.btn_IsClosedLoop.text()
 #打開全閉環(huán)去控制軸運(yùn)動(dòng)
 ifTempStr == CompareStr:
   #獲取軸位置,如果DPOS和MPOS相差太大不能打開脈沖閉環(huán)
   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("規(guī)劃位置和反饋位置相差太大,無法啟動(dòng)閉環(huán)功能?。。?!")
? ? ? ? ? ??QMessageBox.warning(self.ui,?"提示",?"規(guī)劃位置和反饋位置相差太大,無法啟動(dòng)閉環(huán)功能?。。。?)
? ? ? ? ? ??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變?yōu)?的切換,否則會(huì)報(bào)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變?yōu)?的切換
? ? ? ? ? ??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("閉環(huán)參數(shù)配置完成, 軸全閉環(huán)功能打開成功。");
? ? ? ? ? ??else:
? ? ? ? ? ? ? ??print("軸閉環(huán)開關(guān)Servo打開失敗, 導(dǎo)致脈沖全閉環(huán)開啟失敗");
? ? ? ? ? ? ? ??return?-1;
? ? ? ??else:
? ? ? ? ? ??print("軸編碼器閉環(huán)EncoderServo打開失敗, 導(dǎo)致脈沖全閉環(huán)開啟失敗?。。?);
? ? ? ? ? ??return?-1;
? ??else:
? ? ? ??#關(guān)閉全閉環(huán)的功能
? ? ? ??#1、關(guān)閉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關(guān)閉失?。。。?);
? ? ? ? ? ??return?-1;
? ? ? ??# 2、關(guān)閉EncoderServo后需要完成ATYPE的切換,保證完全關(guān)閉閉環(huán)功能
? ? ? ??self.Zmc.ZAux_Direct_SetAtype(Axis_Num,?0);
? ? ? ??time.sleep(0.02)
? ? ? ??self.Zmc.ZAux_Direct_SetAtype(Axis_Num,?4);
? ? ? ??# 3、關(guān)閉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關(guān)閉失?。。?!");
? ? ? ? ? ??return?-1;
? ??return?0;

(3)【更新軸參數(shù)】按鈕如何完成軸參數(shù)的更新。

defAxisParaSet(self):
  TempFloat =0
  TempInt1 =0
  TempInt2 =0
  Axis_Num =int(self.ui.edit_AxisId.text()) # 軸號(hào)
 # 設(shè)置最大隨動(dòng)誤差FE_LIMIT
  self.Zmc.ZAux_Direct_SetFeLimit(Axis_Num,500)
 # 更新編碼器齒輪比 (如果發(fā)N個(gè)脈沖,實(shí)際編碼器反饋M個(gè)脈沖,編碼器齒輪比要設(shè)置成 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)
 # 更新脈沖當(dāng)量,一般脈沖當(dāng)量設(shè)置成機(jī)臺(tái)運(yùn)動(dòng)1mm需要的脈沖數(shù)
  TempFloat =float(self.ui.edit_ParaUnits.text())
  self.Zmc.ZAux_Direct_SetUnits(Axis_Num, TempFloat);
 # 全閉環(huán)的功能需要把ATYPE設(shè)置成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模式設(shè)置成7即可
   # 上位機(jī)沒有現(xiàn)場(chǎng)設(shè)置VP_MODE的接口,直接在線命令去封裝,在線命令是萬能指令
    pszCommand ="VP_MODE({0}) = 7 ".format(Axis_Num)
    self.Zmc.ZAux_DirectCommand(pszCommand)
   print("啟用SS曲線,VP_MODE模式設(shè)置成7?。?)
 else:
   # 啟用S曲線,VP_MODE模式設(shè)置成0即可
   # 上位機(jī)沒有現(xiàn)場(chǎng)設(shè)置VP_MODE的接口,直接在線命令去封裝,在線命令是萬能指令
    pszCommand ="VP_MODE({0}) = 0 ".format(Axis_Num)
    self.Zmc.ZAux_DirectCommand(pszCommand)
   # S曲線模式,S曲線時(shí)間sramp是有效果的,需要設(shè)置一下
    TempFloat =float(self.ui.edit_ParaSramp.text())
    self.Zmc.ZAux_Direct_SetSramp(Axis_Num, TempFloat);
   print("啟用S曲線,VP_MODE模式設(shè)置成0??!")
 print("軸參數(shù)設(shè)置完成??!")



通過RTSys的示波器對(duì)比開環(huán)控制和全閉環(huán)控制的情況

示波器的使用可以參考正運(yùn)動(dòng)小助手的歷史推文《運(yùn)動(dòng)控制看的更清楚細(xì)致!RTSys示波器功能簡(jiǎn)介 (qq.com)》。

1.開環(huán)控制情況分析

wKgZPGiIbrqAX3tyAAHPScUJzjc585.png

wKgZO2iIbrqAe4M5AAFlG4waHCM531.png

測(cè)試發(fā)現(xiàn):步進(jìn)驅(qū)動(dòng)器的開環(huán)控制,運(yùn)動(dòng)過程中隨動(dòng)誤差(規(guī)劃位置和光柵尺反饋位置的差值)一直維持在0.02個(gè)用戶單位左右(這里一個(gè)用戶單位即一個(gè)UNITS設(shè)置的是1mm),當(dāng)運(yùn)動(dòng)結(jié)束時(shí)光柵尺的反饋位置和指令規(guī)劃位置也不相等,大概差了0.0015個(gè)用戶單位,折算為脈沖數(shù)是0.0015*用戶單位=3個(gè)脈沖。

2.閉環(huán)控制情況分析

wKgZPGiIbruAEo46AAHV6-2_V8E037.png

wKgZO2iIbruAceAIAAFHAyE1hHM803.png

測(cè)試發(fā)現(xiàn):步進(jìn)驅(qū)動(dòng)器的閉環(huán)控制,運(yùn)動(dòng)過程中隨動(dòng)誤差(規(guī)劃位置和光柵尺反饋位置的差值)除了啟動(dòng)和停止以外大部分保持在0個(gè)脈沖當(dāng)量左右,相比較開環(huán)控制有較大的提升,當(dāng)運(yùn)動(dòng)結(jié)束時(shí)光柵尺的反饋位置和指令規(guī)劃位置也是相等的。

3.教學(xué)視頻可點(diǎn)擊→“步進(jìn)控制的光柵尺全閉環(huán)EtherCAT運(yùn)動(dòng)控制器ZMC432CL-V2(五):Python編程調(diào)試”查看。


完整代碼獲取地址

wKgZPGiIbruAUaI7AAA_uCuCtpQ940.jpg

本次,正運(yùn)動(dòng)技術(shù)步進(jìn)控制的光柵尺全閉環(huán)EtherCAT運(yùn)動(dòng)控制器ZMC432CL-V2(五):Python編程調(diào)試,就分享到這里。

本文由正運(yùn)動(dòng)技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國(guó)智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來源。


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 運(yùn)動(dòng)控制
    +關(guān)注

    關(guān)注

    5

    文章

    825

    瀏覽量

    34560
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4877

    瀏覽量

    90116
  • ethercat
    +關(guān)注

    關(guān)注

    19

    文章

    1520

    瀏覽量

    45360
  • 步進(jìn)控制
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    7604
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    步進(jìn)驅(qū)動(dòng)為什么要采?外置光柵尺?

    步進(jìn)驅(qū)動(dòng)系統(tǒng)加上外置光柵尺,最根本的原因是為了實(shí)現(xiàn)閉環(huán)控制,從而大幅提升系統(tǒng)的最終定位精度和運(yùn)行的可靠性。 你可以把傳統(tǒng)的步進(jìn)系統(tǒng)想象成
    的頭像 發(fā)表于 03-10 07:42 ?244次閱讀
    <b class='flag-5'>步進(jìn)</b>驅(qū)動(dòng)為什么要采?外置<b class='flag-5'>光柵尺</b>?

    步進(jìn)控制光柵尺閉環(huán)EtherCAT運(yùn)動(dòng)控制器ZMC432CL-V2快速入門:二維螺距補(bǔ)償(下)

    二維螺距補(bǔ)償?shù)腝T(C++)例程
    的頭像 發(fā)表于 03-03 16:43 ?7947次閱讀
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>控制</b>的<b class='flag-5'>光柵尺</b><b class='flag-5'>全</b><b class='flag-5'>閉環(huán)</b><b class='flag-5'>EtherCAT</b><b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制器</b><b class='flag-5'>ZMC432CL-V2</b>快速入門:二維螺距補(bǔ)償(下)

    如何預(yù)防RE74光柵尺性能和作用

    結(jié)晶型冷卻液并控制壓力。 ? 減震措施 ?:遠(yuǎn)離振動(dòng)源(如沖壓設(shè)備),控制振幅小于0.5G,避免光柵尺因震動(dòng)松動(dòng)或損壞? 23 。 定期清潔 ? 表面清潔 ?:每月用無塵布或軟毛刷清理光柵尺
    的頭像 發(fā)表于 11-22 10:27 ?759次閱讀

    如何預(yù)防RE74光柵尺污染?

    環(huán)境控制 ? 溫濕度管理 ?:保持環(huán)境溫度15-30℃、濕度30-75%RH,避免極端條件導(dǎo)致元件腐蝕或結(jié)露? 4 。 ? 防塵防油 ?:安裝防護(hù)罩阻擋油污、鐵屑,避免冷卻液直接接觸光柵尺,選用低
    的頭像 發(fā)表于 11-22 10:26 ?751次閱讀

    如何判斷光柵尺是否需要清潔?

    光柵尺污染導(dǎo)致信號(hào)干擾? 24 。 ? 參考點(diǎn)錯(cuò)誤 ? 開機(jī)后坐標(biāo)顯示異常(如幾十萬),可能是光柵尺污染導(dǎo)致參考點(diǎn)信號(hào)超差? 2 。 ? 定期維護(hù) ? 建議每500小時(shí)清潔光學(xué)系統(tǒng),或根據(jù)使用環(huán)境縮短清潔周期? 3 。 ? 清潔
    的頭像 發(fā)表于 11-22 10:25 ?663次閱讀

    RE74光柵尺是什么

    效應(yīng),通過標(biāo)尺光柵與讀數(shù)頭的配合實(shí)現(xiàn)位置檢測(cè),輸出數(shù)字脈沖信號(hào)? 12 。 ? 技術(shù)參數(shù) ?:典型型號(hào)如LB382,最大測(cè)量長(zhǎng)度30米,定位精度±5 μm,最高運(yùn)動(dòng)速度120米/分鐘,防護(hù)等級(jí)IP53(搭配壓縮空氣可達(dá)IP64)? 5 。 ? 應(yīng)用場(chǎng)景 ?:用于
    的頭像 發(fā)表于 11-22 10:23 ?683次閱讀

    探索工業(yè)自動(dòng)化核心:ZMC 系列 EtherCAT 主站控制器

    ZLG致遠(yuǎn)電子的ZMC系列EtherCAT主站控制器,憑借多元內(nèi)核、豐富接口、卓越通信能力及開放開發(fā)環(huán)境,為工業(yè)自動(dòng)化提供全方位解決方案,助力企業(yè)智能化升級(jí)。前言在工業(yè)自動(dòng)化領(lǐng)域不斷演進(jìn)的今天,可靠
    的頭像 發(fā)表于 08-18 11:35 ?1317次閱讀
    探索工業(yè)自動(dòng)化核心:<b class='flag-5'>ZMC</b> 系列 <b class='flag-5'>EtherCAT</b> 主站<b class='flag-5'>控制器</b>

    采集卡與光柵尺

    文章介紹了光柵尺是如何工作的,并用數(shù)據(jù)采集卡采集了光柵尺的位移信息。
    的頭像 發(fā)表于 08-15 18:02 ?1892次閱讀
    采集卡與<b class='flag-5'>光柵尺</b>

    步進(jìn)控制光柵尺閉環(huán)EtherCAT運(yùn)動(dòng)控制器ZMC432CL-V2):Python編程調(diào)試 #正運(yùn)動(dòng)

    運(yùn)動(dòng)控制器
    正運(yùn)動(dòng)技術(shù)
    發(fā)布于 :2025年07月29日 10:26:49

    100%器件全國(guó)產(chǎn)化認(rèn)證:ZMC432HG系列EtherCAT運(yùn)動(dòng)控制器通過全國(guó)產(chǎn)化認(rèn)證!

    運(yùn)動(dòng)軟硬件全國(guó)產(chǎn)ZMC432HG助您構(gòu)建軟硬件自主可控的解決方案
    的頭像 發(fā)表于 05-27 10:27 ?770次閱讀
    100%器件全國(guó)產(chǎn)化認(rèn)證:<b class='flag-5'>ZMC432</b>HG系列<b class='flag-5'>EtherCAT</b><b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制器</b>通過全國(guó)產(chǎn)化認(rèn)證!

    步進(jìn)光柵尺閉環(huán)EtherCAT運(yùn)動(dòng)控制器ZMC432CL-V2(四):LabVIEW編程調(diào)試

    通過LabVIEW調(diào)試ZMC432CL-V2的脈沖閉環(huán)功能
    的頭像 發(fā)表于 05-20 15:55 ?773次閱讀
    <b class='flag-5'>步進(jìn)</b>的<b class='flag-5'>光柵尺</b><b class='flag-5'>全</b><b class='flag-5'>閉環(huán)</b><b class='flag-5'>EtherCAT</b><b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制器</b><b class='flag-5'>ZMC432CL-V2</b>(四):LabVIEW<b class='flag-5'>編程</b><b class='flag-5'>調(diào)試</b>

    直線電機(jī)模組中光柵尺和磁柵的區(qū)別

    在直線電機(jī)模組中,光柵尺和磁柵都是高精度位移傳感,但它們?cè)诠ぷ髟?、特性及?yīng)用方面存在一些顯著的區(qū)別。 一、工作原理 1. 光柵尺: ? ?●
    的頭像 發(fā)表于 04-14 07:38 ?2177次閱讀