一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

EtherCAT運(yùn)動(dòng)控制器上位機(jī)開發(fā)之Python+Qt(二):回零

正運(yùn)動(dòng)技術(shù) ? 來(lái)源:正運(yùn)動(dòng)技術(shù) ? 作者:正運(yùn)動(dòng)技術(shù) ? 2024-08-07 11:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

ZMC408CE硬件介紹

ZMC408CE是正運(yùn)動(dòng)推出的一款多軸高性能EtherCAT總線運(yùn)動(dòng)控制器,具有EtherCAT、EtherNET、RS232CAN和U盤等通訊接口,ZMC系列運(yùn)動(dòng)控制器可應(yīng)用于各種需要脫機(jī)或聯(lián)機(jī)運(yùn)行的場(chǎng)合。

wKgaomapjz6AZl_JAADS9zPvgRs427.png

ZMC408CE支持8軸運(yùn)動(dòng)控制,最多可擴(kuò)展至32軸,支持直線插補(bǔ)、任意圓弧插補(bǔ)、空間圓弧、螺旋插補(bǔ)、電子凸輪、電子齒輪、同步跟隨等功能。

ZMC408CE支持PLC、Basic、HMI組態(tài)三種編程方式。PC上位機(jī)API編程支持C#、C++、LabVIEW、Matlab、Qt、Linux、VB.Net、Python等接口。

wKgaomapj36AOtpJAAH9WCGij7o552.png

ZMC408CE支持8軸運(yùn)動(dòng)控制,可采用脈沖軸(帶編碼器反饋)或EtherCAT總線軸,通用IO包含24路輸入口和16路輸出口,部分IO為高速IO,模擬AD/DA各兩路,EtherCAT最快125us的刷新周期。

ZMC408CE支持8個(gè)通道的硬件比較輸出、硬件定時(shí)器、運(yùn)動(dòng)中精準(zhǔn)輸出,還支持8通道PWM輸出,對(duì)應(yīng)的輸出口為OUT0-7,支持8個(gè)通道同時(shí)觸發(fā)硬件比較輸出。

更多關(guān)于ZMC408CE的詳情介紹,點(diǎn)擊“推薦|8通道PSO的高性能EtherCAT總線運(yùn)動(dòng)控制器”查看。

PCIE464M硬件介紹

PCIE464M是一款基于PCIe的PCI Express的EtherCAT總線運(yùn)動(dòng)控制卡,具有多項(xiàng)實(shí)時(shí)和高精度運(yùn)動(dòng)控制控制功能。

wKgaomapj7SAN3srAAnQUdB9k4g671.png

用戶可直接將PCIE464M嵌入標(biāo)準(zhǔn)PC機(jī)實(shí)現(xiàn)高性能的EtherCAT運(yùn)動(dòng)控制功能,實(shí)現(xiàn)高精多軸同步控制,EtherCAT控制周期最小可達(dá)100us!

PCIE464M內(nèi)置多路高速IO輸入輸出,可滿足用戶的多樣化高速IO應(yīng)用需求,如:高速色標(biāo)鎖存、高速PWM、多維位置比較輸出PSO、視覺飛拍、速度前瞻、編碼器位置檢測(cè)等應(yīng)用。

wKgZomapkKiADsgDAAKtciBzuhE880.png

PCIE464M運(yùn)動(dòng)控制卡上自帶16進(jìn)16出,第三方圖像處理工控機(jī)或PC無(wú)需額外配置IO數(shù)據(jù)采集卡和PLC,即可實(shí)現(xiàn)IPC形態(tài)的機(jī)器視覺運(yùn)動(dòng)控制一體機(jī),簡(jiǎn)化硬件架構(gòu),節(jié)省成本,軟硬件一體化。

更多關(guān)于PCIE464M的詳情介紹,點(diǎn)擊“PCIE464M-高速高精,超高速PCIe EthrtCAT實(shí)時(shí)運(yùn)動(dòng)控制卡”查看。

一、Python語(yǔ)言開發(fā)流程

1.本文案例Python開發(fā)環(huán)境

操作系統(tǒng)環(huán)境:Win10_64位

Python版本:python-3.10.10-amd64.exe

Pycharm版本:pycharm-community-2024.1.3.exe

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

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

wKgaomay5T-AYwbXAAHDY26gSus075.png

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

wKgZomay5UaAYa9qAAFtj4Ov3es507.png

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

wKgZomay5U6ACHOpAAE-HyXz0LA385.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菜單中使用。

wKgaomay50qAPIpaAAEQf_GDaGU353.png

二、Python+Qt進(jìn)行運(yùn)動(dòng)控制開發(fā)

1.新建項(xiàng)目

wKgaomay54iAUvG3AAEh8h9Zbrw342.pngwKgZomay542AKx9WAAD01YkDsvM041.png

2.UI設(shè)置界面

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

wKgaomay55GAc3oXAAD5FKgFdvI425.pngwKgaomay55WAOSfdAAGB4XPigpM033.png

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

wKgaomay55mARMFaAAICXCMjGR4366.png

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

wKgZomay59CAA-yoAAHJ8mMfkfE957.png

3.Python運(yùn)行UI

1)添加UI運(yùn)行的python文件:選中項(xiàng)目右鍵 → 新建 → Python File。

wKgZomay592AA2onAAFdqUUXqEI877.pngwKgaomay5-GAM9JgAAEE_2E9Sj0306.png

2)Ui_Weiget文件里面添加UI處理的類。

wKgaomay5-WAFnM6AAEtr2WoHwo073.pngwKgZomay5-uAA1QUAAA4aS505BA446.png

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

wKgaomay5_OAWVwLAAFACL8y43Y907.pngwKgaomay5_mAXjG1AAAzFoLe0-8264.png

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

wKgZomay6DGALbXNAAGPAIVTbvo428.png

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

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

A、進(jìn)入廠商提供的光盤資料找到“04PC函數(shù)”文件夾,并點(diǎn)擊進(jìn)入。

wKgaomay6FWAIwkGAAF0Zmgq074969.png

B、選擇“PC函數(shù)庫(kù)V2.1”文件夾。

wKgZomay6FmARhHmAAD2c3ybSSo178.png

C、選擇“Windows平臺(tái)”文件夾。

wKgZomay6FyAUrzYAACxGI2tOm0875.png

D、根據(jù)需要選擇對(duì)應(yīng)的函數(shù)庫(kù),這里選擇64位庫(kù)。

wKgaomay6GCALyj1AAC_RPJNXd0632.png

E、解壓Python64壓縮包,里面有Python對(duì)應(yīng)的函數(shù)庫(kù),與

運(yùn)動(dòng)函數(shù)封裝的python文件。

wKgaomay6GSATeCwAAEjEpXn9C0162.png

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

A、進(jìn)入dll文件夾,選中zauxdll.dl、zmotion.dll、zauxdllPython.py三個(gè)文件復(fù)制。

wKgZomay6GiANcJwAAHmUYK-Vuc489.png

B、選中新建的項(xiàng)目粘貼,便把對(duì)應(yīng)的庫(kù)文件與封裝的運(yùn)動(dòng)Python文件粘貼到了項(xiàng)目中。

wKgaomay6G6AVLloAAE7ML7T6Vo569.png

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

wKgZomay6HGAEPVbAAFlxOjCafA230.png

三、相關(guān)PC函數(shù)介紹

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

wKgaomay6IKAKfgSAACfIxtBM-s003.png

2.連接控制器。

wKgZomay6USAcqNtAABJHLUzlc8996.png

3.設(shè)置原點(diǎn)IO。

wKgaomay6UqAYzwmAAA949rOPdQ278.png

4.設(shè)置爬行速度。

wKgaomay6VGAUElOAAAzX95vw3c707.png

5.單軸回零運(yùn)動(dòng)。

wKgaomay6VaAWJtQAADGSXbj4fw677.png

6.讀取當(dāng)前軸運(yùn)動(dòng)是否在運(yùn)動(dòng)中。

wKgZomay6V2AeSKqAABB142YQUM494.png

7.設(shè)置脈沖當(dāng)量。

wKgaomay6WOAfw04AABkRsnqpJI094.png

8.設(shè)置軸運(yùn)動(dòng)速度。

wKgaomay6WiAVtsTAABYXBIvRC0621.png

9.單軸停止運(yùn)動(dòng)。

wKgaomay6W2AO7GMAABSKfRKfUk624.png

四、例程演示

1.連接控制器。

#連接控制器, 控制器默認(rèn)IP是192.168.0.11,此處使用comboBox內(nèi)輸入的ip
def on_btn_open_clicked(self):
   strtemp = self.ui.comboBox.currentText()
   print("當(dāng)前的ip是 :", strtemp)
   if self.Zmc.handle.value is not None:
       self.Zmc.ZAux_Close()
       self.time1.stop()
       self.ui.setWindowTitle("單軸運(yùn)動(dòng)")
   iresult = self.Zmc.ZAux_OpenEth(strtemp)#連接控制器
   if 0 != iresult:
       QMessageBox.warning(self.ui, "提示", "連接失敗")
   else:
       QMessageBox.warning(self.ui, "提示", "連接成功")
       str_title = self.ui.windowTitle() + strtemp
       self.ui.setWindowTitle(str_title)
       self.Up_State()  #刷新函數(shù)
       self.time1.start(100)#開啟定時(shí)器

2.軸回零運(yùn)動(dòng)。

#軸回零運(yùn)動(dòng)
def on_btn_run_clicked(self):
   #判斷是否連接控制器
   if self.Zmc.handle.value is None:
       QMessageBox.warning(self.ui, "警告", "未連接控制器")
       return    # 判斷軸運(yùn)動(dòng)狀態(tài)
   ifidle = self.Zmc.ZAux_Direct_GetIfIdle(self.axis_Num)[1].value
   ifidle = int(ifidle)
   if 0 == ifidle:
       QMessageBox.warning(self.ui, "提示", "運(yùn)動(dòng)未停止")
       return
   # 設(shè)定軸類型 7 - 脈沖軸類型 + 編碼器Z信號(hào) 不用EZ回零也可以設(shè)置為1
   self.Zmc.ZAux_Direct_SetAtype(self.axis_Num, 7 if self.mode < 3 else 1)
   # 設(shè)定脈沖模式及邏輯方向(脈沖 + 方向)
   self.Zmc.ZAux_Direct_SetInvertStep(self.axis_Num, 0)
   # 設(shè)置脈沖當(dāng)量
   str_tmp = self.ui.edit_Units.text()
   float_tmp = float(str_tmp)
   self.Zmc.ZAux_Direct_SetUnits(self.axis_Num, float_tmp)
   # 設(shè)置爬行速度
   str_tmp = self.ui.edit_CLSpeed.text()
   float_tmp = float(str_tmp)
   self.Zmc.ZAux_Direct_SetCreep(self.axis_Num, float_tmp)
   # 設(shè)置運(yùn)行速度
   str_tmp = self.ui.edit_Speed.text()
   float_tmp = float(str_tmp)
   self.Zmc.ZAux_Direct_SetSpeed(self.axis_Num, float_tmp)
   # 設(shè)置加速度
   str_tmp = self.ui.edit_Accel.text()
   float_tmp = float(str_tmp)
   self.Zmc.ZAux_Direct_SetAccel(self.axis_Num, float_tmp)
   # 設(shè)置減速度
   str_tmp = self.ui.edit_Decel.text()
   float_tmp = float(str_tmp)
   self.Zmc.ZAux_Direct_SetDecel(self.axis_Num, float_tmp)
   # 設(shè)置原點(diǎn)開關(guān)
   str_tmp = self.ui.edit_zeroIO.text()
   float_tmp = int(str_tmp)
   self.Zmc.ZAux_Direct_SetDatumIn(self.axis_Num, float_tmp)
   # 反轉(zhuǎn) ZMC系列認(rèn)為OFF時(shí)碰到了原點(diǎn)信號(hào)(常閉) ,
   # 如果是常開傳感器則需要反轉(zhuǎn)輸入口,ECI系列的不需要反轉(zhuǎn)
   self.Zmc.ZAux_Direct_SetInvertIn(float_tmp, 1)
   # 回零運(yùn)動(dòng)
   self.Zmc.ZAux_Direct_Single_Datum(self.axis_Num, self.mode)

3.停止軸運(yùn)動(dòng)。

#停止軸運(yùn)動(dòng)
def on_btn_Stop_clicked(self):
   if self.Zmc.handle.value is None:
       QMessageBox.warning(self.ui, "警告", "未連接控制器")
       return
   #獲取軸運(yùn)動(dòng)狀態(tài)0 –運(yùn)動(dòng)中,-1-未運(yùn)動(dòng)
   isidle=self.Zmc.ZAux_Direct_GetIfIdle(self.axis_Num)[1].value
   if isidle:
       QMessageBox.warning(self.ui, "警告", "已停止")
       return
   #停止單軸運(yùn)動(dòng)
   self.Zmc.ZAux_Direct_Single_Cancel(self.axis_Num, 2)

4.運(yùn)行程序觀察運(yùn)行效果。

運(yùn)行python程序,通過(guò)RTSys軟件觀察運(yùn)行情況。

wKgaomay6f2ABAYhAANnDRM7Rl8163.pngwKgaomay6gWAP6rXAAB8UPxDMVw532.png

本次,正運(yùn)動(dòng)技術(shù)EtherCAT運(yùn)動(dòng)控制器上位機(jī)開發(fā)之Python+Qt(二):回零,就分享到這里。

更多精彩內(nèi)容請(qǐng)關(guān)注“正運(yùn)動(dòng)小助手”公眾號(hào),需要相關(guān)開發(fā)環(huán)境與例程代碼,請(qǐng)咨詢正運(yùn)動(dòng)技術(shù)銷售工程師。

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

審核編輯 黃宇

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

    關(guān)注

    2

    文章

    450

    瀏覽量

    25293
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86766
  • ethercat
    +關(guān)注

    關(guān)注

    19

    文章

    1124

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    EtherCAT運(yùn)動(dòng)控制器實(shí)時(shí)數(shù)據(jù)的Qt示波器

    基于QT開發(fā)調(diào)用正運(yùn)動(dòng)函數(shù)接口實(shí)現(xiàn)控制器數(shù)據(jù)實(shí)時(shí)監(jiān)測(cè)的示波器效果
    的頭像 發(fā)表于 04-17 17:12 ?274次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制器</b>實(shí)時(shí)數(shù)據(jù)的<b class='flag-5'>Qt</b>示波器

    運(yùn)動(dòng)控制卡網(wǎng)絡(luò)通訊的心跳檢測(cè)C#上位機(jī)編程

    使用C#上位機(jī)編程實(shí)現(xiàn)運(yùn)動(dòng)控制卡網(wǎng)絡(luò)通訊的心跳檢測(cè)功能
    的頭像 發(fā)表于 12-24 10:54 ?1128次閱讀
    <b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制</b>卡網(wǎng)絡(luò)通訊的心跳檢測(cè)<b class='flag-5'>之</b>C#<b class='flag-5'>上位</b><b class='flag-5'>機(jī)</b>編程

    PCIe實(shí)時(shí)運(yùn)動(dòng)控制卡的雙盤視覺篩選機(jī)上位機(jī)開發(fā)應(yīng)用

    PCIe實(shí)時(shí)運(yùn)動(dòng)控制卡的雙盤視覺篩選機(jī)上位機(jī)開發(fā)應(yīng)用
    的頭像 發(fā)表于 10-10 10:15 ?770次閱讀
    PCIe實(shí)時(shí)<b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制</b>卡的雙盤視覺篩選機(jī)<b class='flag-5'>上位</b><b class='flag-5'>機(jī)</b><b class='flag-5'>開發(fā)</b>應(yīng)用

    開放式激光振鏡運(yùn)動(dòng)控制器在Ubuntu+Qt下CAD圖形標(biāo)刻

    開放式激光振鏡運(yùn)動(dòng)控制器再Ubuntu+Qt下CAD圖形標(biāo)刻
    的頭像 發(fā)表于 09-18 15:12 ?713次閱讀
    開放式激光振鏡<b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制器</b>在Ubuntu+<b class='flag-5'>Qt</b>下CAD圖形標(biāo)刻

    V90伺服控制器

    電子發(fā)燒友網(wǎng)站提供《V90伺服控制器.pdf》資料免費(fèi)下載
    發(fā)表于 09-02 14:31 ?0次下載

    EtherCAT運(yùn)動(dòng)控制器上位機(jī)開發(fā)Python+Qt(三):PDO配置與SDO讀寫# 運(yùn)動(dòng)控制器# 控制

    運(yùn)動(dòng)控制器
    正運(yùn)動(dòng)技術(shù)
    發(fā)布于 :2024年08月22日 09:11:13

    EtherCAT運(yùn)動(dòng)控制器上位機(jī)開發(fā)Python+Qt(三):PDO配置與SDO讀寫

    PC上位機(jī)Python+Qt混合編程實(shí)現(xiàn)PDO配置與SDO讀寫
    的頭像 發(fā)表于 08-21 15:56 ?2059次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制器</b><b class='flag-5'>上位</b><b class='flag-5'>機(jī)</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>之</b><b class='flag-5'>Python+Qt</b>(三):PDO配置與SDO讀寫

    EtherCAT運(yùn)動(dòng)控制器上位機(jī)Python+Qt(一):鏈接與單軸運(yùn)動(dòng)

    PC上位機(jī)Python+Qt混合編程,助力智能制造高效開發(fā)。
    的頭像 發(fā)表于 07-31 09:43 ?864次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制器</b><b class='flag-5'>上位</b><b class='flag-5'>機(jī)</b><b class='flag-5'>之</b><b class='flag-5'>Python+Qt</b>(一):鏈接與單軸<b class='flag-5'>運(yùn)動(dòng)</b>