精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

EtherCAT運動控制器上位機之Python+Qt(一):鏈接與單軸運動

正運動技術 ? 來源:正運動技術 ? 作者:正運動技術 ? 2024-07-31 09:43 ? 次閱讀

ZMC408CE硬件介紹

ZMC408CE是正運動推出的一款多軸高性能EtherCAT總線運動控制器,具有EtherCAT、EtherNETRS232、CAN和U盤等通訊接口,ZMC系列運動控制器可應用于各種需要脫機或聯機運行的場合。

wKgaomapjz6AZl_JAADS9zPvgRs427.png

ZMC408CE支持8軸運動控制,最多可擴展至32軸,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨等功能。

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

wKgaomapj36AOtpJAAH9WCGij7o552.png

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

ZMC408CE支持8個通道的硬件比較輸出、硬件定時器、運動中精準輸出,還支持8通道PWM輸出,對應的輸出口為OUT0-7,支持8個通道同時觸發硬件比較輸出。

更多關于ZMC408CE的詳情介紹,點擊“推薦|8通道PSO的高性能EtherCAT總線運動控制器”查看。

PCIE464M硬件介紹

PCIE464M是一款基于PCIe的PCI Express的EtherCAT總線運動控制卡,具有多項實時和高精度運動控制控制功能。

wKgaomapj7SAN3srAAnQUdB9k4g671.png

用戶可直接將PCIE464M嵌入標準PC機實現高性能的EtherCAT運動控制功能,實現高精多軸同步控制,EtherCAT控制周期最小可達100us!

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

wKgZomapkKiADsgDAAKtciBzuhE880.png

PCIE464M運動控制卡上自帶16進16出,第三方圖像處理工控機或PC無需額外配置IO數據采集卡和PLC,即可實現IPC形態的機器視覺運動控制一體機,簡化硬件架構,節省成本,軟硬件一體化。

更多關于PCIE464M的詳情介紹,點擊“PCIE464M-高速高精,超高速PCIe EthrtCAT實時運動控制卡”查看。

一、Python語言開發流程

本文案例Python開發環境:

操作系統環境:Win10_64位

Python版本:python-3.10.10-amd64.exe

Pycharm版本:pycharm-community-2024.1.3.exe

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

wKgZomapkV6ANthFAAIDei1TZ5k149.png

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

wKgZomapkXSAJzZuAAG_-MGVwGQ755.png

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

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

wKgaomapkbKAQXhtAAFmifKAMvw736.png

二、Python+Qt進行運動控制開發

1、新建項目

wKgZomapkbmARwxZAAGGNIuN9IE653.png

wKgaomapkceAY0EhAAE4SjCmIGc804.png

2、UI設置界面

1)進入項目ui設置界面:工具 → Qt → QtDesigner。

wKgZomapkcyAZ9drAAFFN3DtQ9Y777.png

wKgaomapkdOAJutLAAHUABbgq-w822.png

2)設置項目Ui:通過拖動控件到界面設置ui。

wKgZomapkdmAdm0-AAIwLwIPoOs355.png

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

wKgZomapkd-ABRKQAAIzMw2qcCc228.png

3、Python運行UI

1)添加UI運行的python文件:選中項目右鍵 → 新建 → Python File。

wKgaomapkeaACLfrAAGul9C0EVg453.png

wKgZomapkeyAVIKaAAFiSXsjFZQ370.png

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

wKgaomapkfGAX23zAAGCZoamNrU932.png

from PySide2.QtCore import QFile
from PySide2.QtUiTools import QUiLoader
class UiInterFace:
   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,并添加主入口運行函數。

wKgaomapkfaAfFR6AAGT7tobRoQ447.png

from PySide2.QtWidgets import QApplication
from Ui_Weiget import UiInterFace
if __name__ == "__main__":
   app = QApplication([])  #加載所有控件
   ui_interface = UiInterFace()   #創建窗體對象
   ui_interface.ui.show()    #主窗口的控件,全部顯示在界面上
   app.exec_()             #進入QApplication的事件處理循環

4)此時在Main文件點擊運行按鈕,可以運行程序顯示UI界面。

wKgZomapkfuAXL6_AAG--VmrBdE634.png

4、添加庫文件、庫函數封裝的Python文件。

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

A、進入廠商提供的光盤資料找到“04PC函數”文件夾,并點擊進入。

wKgaomapkgGAFqh_AACavCfbijM331.png

B、選擇“PC函數庫V2.1”文件夾。

wKgZomapksSAQ-5hAACGV84dSGI939.png

C、選擇“Windows平臺”文件夾。

wKgaomapksiACfX6AABP6tqtxEs317.png

D、根據需要選擇對應的函數庫,這里選擇64位庫。

wKgaomapksuAS8r9AABTn1H0n8s620.png

E、解壓Python64壓縮包,里面有Python對應的函數庫,與

運動函數封裝的python文件。

wKgZomapktCADmG7AACPADkh_yg809.png

2)將廠商提供的python的庫文件以及相關文件復制到新建的項目中。

A、進入dll文件夾,選中zauxdll.dl、zmotion.dll、zauxdllPython.py三個文件復制。

wKgZomapktaAWgRfAAC5TzI6_10884.png

wKgaomapktqAfxHVAABfvniAG8k299.png

B、選中新建的項目粘貼,便把對應的庫文件與封裝的運動Python文件粘貼到了項目中。

wKgZomapkt6AKmHXAAGOTRk9BTk116.png

3)進入ui的python文件在文件開頭處導入zauxdllPython文件的ZAUXDLL類,并在界面類中創建ZAUXDLL對象。

wKgZomapkuSAHpczAAHO9KON5_8442.png

三、相關PC函數介紹

1、PC函數手冊可在光盤資料查看,具體路徑如下。

wKgaomapkuqABcQxAABRNFppcF8032.png

2、連接控制器。

wKgaomapkxCACUKpAABJIvND1WI010.png

3、讀取當前軸運動是否在運動中。

wKgZomapkxiAPIwaAABDwpvBnf8361.png

4、設置脈沖當量。

wKgZomapkx2AXaPDAABkAdUMwkU276.png

5、設置軸運動速度。

wKgZomapkyOAQkRjAABX4Q-WgEU725.png

6、單軸持續運動。

wKgZomapkyiAU60xAAA-PsvOYuM999.png

7、單軸絕對運動。

wKgZomapky2AXGP5AAAwp-Wf-0I686.png

8、單軸停止運動。

wKgaomapkzOAEgxzAABUlHOxSE0323.png

四、例程演示

1、連接控制器。

#連接控制器, 控制器默認IP是192.168.0.11,此處使用comboBox內輸入的ip
def on_btn_open_clicked(self):
   strtemp = self.ui.comboBox.currentText()
   print("當前的ip是 :", strtemp)
   if self.Zmc.handle.value is not None:
       self.Zmc.ZAux_Close()
       self.time1.stop()
       self.ui.setWindowTitle("單軸運動")
   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()  #刷新函數
       self.time1.start(100)#開啟定時器

2、軸運動。

#軸運行函數
def on_btn_Run_clicked(self):
   if self.Zmc.handle.value is None:
       QMessageBox.warning(self.ui, "警告", "未連接控制器")
       return
   # 獲取軸運動狀態0 –運動中,-1-未運動
   isidle=self.Zmc.ZAux_Direct_GetIfIdle(self.axis_Num)[1].value 
   isidle=int(isidle)
   if self.mode == 1 and not isidle:
       QMessageBox.warning(self.ui, "警告", "未停止")
       return
   # 設置脈沖當量
   str_tmp = self.ui.edit_Units.text()
   float_tmp = float(str_tmp)
   self.Zmc.ZAux_Direct_SetUnits(self.axis_Num, float_tmp)#設置脈沖單量
   # 設置運動速度
   str_tmp = self.ui.edit_Speed.text()
   float_tmp = float(str_tmp)
   self.Zmc.ZAux_Direct_SetSpeed(self.axis_Num, float_tmp)#設置運動速度
   # 設置加速度
   str_tmp = self.ui.edit_Accel.text()
   float_tmp = float(str_tmp)
   self.Zmc.ZAux_Direct_SetAccel(self.axis_Num, float_tmp)#設置加速度
   # 設置減速度
   str_tmp = self.ui.edit_Decel.text()
   float_tmp = float(str_tmp)
   self.Zmc.ZAux_Direct_SetDecel(self.axis_Num, float_tmp)#設置減速
   # 設置S曲線
   str_tmp = self.ui.edit_Sramp.text()
   float_tmp = float(str_tmp)
   self.Zmc.ZAux_Direct_SetSramp(self.axis_Num, float_tmp)# 設置S曲線
   if 0 == self.mode:
       # 單軸持續運動
       self.Zmc.ZAux_Direct_Single_Vmove(self.axis_Num, self.direction)
   elif 1 == self.mode:
       str_tmp = self.ui.edit_Distance.text()
       float_tmp = float(str_tmp)
       # 單軸相對運動運動
       self.Zmc.ZAux_Direct_Single_Move(self.axis_Num, -float_tmp if self.direction == -1 else float_tmp)

3、停止軸運動。

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

4、運行程序觀察運行效果。

運行python程序,通過RTSys軟件觀察運行情況。

wKgaomaplAiARoheAANlQm2xI7Q180.png

本次,正運動技術EtherCAT運動控制器上位機開發之Python+Qt(一):鏈接與單軸運動,就分享到這里。

更多精彩內容請關注“正運動小助手”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師

本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 運動控制器
    +關注

    關注

    2

    文章

    377

    瀏覽量

    24487
  • 上位機
    +關注

    關注

    27

    文章

    927

    瀏覽量

    54479
  • python
    +關注

    關注

    53

    文章

    4747

    瀏覽量

    83937
  • ethercat
    +關注

    關注

    18

    文章

    549

    瀏覽量

    38189
收藏 人收藏

    評論

    相關推薦

    EtherCAT運動控制器在ROS上的應用開發案例(下)

    本篇文章我們主要介紹正運動技術動態鏈接庫環境配置以及EtherCAT運動控制器在ROS下的
    的頭像 發表于 03-17 11:11 ?674次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制器</b>在ROS上的應用開發案例(下)

    EtherCAT運動控制器上位開發Python+Qt(三):PDO配置與SDO讀寫

    PC上位Python+Qt混合編程實現PDO配置與SDO讀寫
    的頭像 發表于 08-21 15:56 ?523次閱讀
    <b class='flag-5'>EtherCAT</b><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><b class='flag-5'>Python+Qt</b>(三):PDO配置與SDO讀寫

    運動技術運動控制器EtherCAT總線快速入門

    EtherCAT 總線的使用、示波器的應用、多任務運行的特點、運動控制器中斷的應用、U盤接口的使用、ZDevelop 編程軟件的使用、運動控制器
    發表于 09-07 06:59

    經濟型EtherCAT運動控制器EtherCAT總線快速入門

    相關參數的配置,EtherCAT總線初始化操作,以及初始化成功以后的運動控制。 、XPLC006E功能簡介 XPLC006E是正運動
    發表于 05-11 09:49

    EtherCAT運動控制器進行自定義API封裝例程

    、Flash/文件讀寫 更多API接口詳情可以參考“ZMotion PC函數庫編程手冊 V2.1.1”。 如果想了解更多內容,請點擊《全國產EtherCAT運動控制邊緣控制器(二):
    發表于 10-26 15:11

    全國產EtherCAT運動控制邊緣控制器(四):參數配置與運動PC上位C++控制

    全國產EtherCAT運動控制邊緣控制器參數設置與
    的頭像 發表于 09-27 15:42 ?523次閱讀
    全國產<b class='flag-5'>EtherCAT</b><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><b class='flag-5'>軸</b><b class='flag-5'>運動</b>PC<b class='flag-5'>上位</b><b class='flag-5'>機</b>C++<b class='flag-5'>控制</b>

    EtherCAT運動控制邊緣控制器ZMC432H的參數配置和運動控制

    全國產EtherCAT運動控制邊緣控制器ZMC432H是正運動款軟硬件全國產自主可控,
    的頭像 發表于 10-16 09:49 ?713次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制</b>邊緣<b class='flag-5'>控制器</b>ZMC432H的<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>

    全國產EtherCAT運動控制邊緣控制器(五):IO配置與回零運動Python+Qt開發

    Python+QT開發環境的配置以及回零運動的實現效果。
    的頭像 發表于 10-20 10:08 ?464次閱讀
    全國產<b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制</b>邊緣<b class='flag-5'>控制器</b>(五):IO配置與回零<b class='flag-5'>運動</b>的<b class='flag-5'>Python+Qt</b>開發

    全國產EtherCAT運動控制邊緣控制器(五):IO配置與回零運動Python+Qt開發

    全國產EtherCAT運動控制邊緣控制器ZMC432H是正運動款軟硬件全國產自主可控,
    的頭像 發表于 10-22 10:51 ?711次閱讀
    全國產<b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制</b>邊緣<b class='flag-5'>控制器</b>(五):IO配置與回零<b class='flag-5'>運動</b>的<b class='flag-5'>Python+Qt</b>開發

    全國產EtherCAT運動控制邊緣控制器(六):RtBasic文件下載與連續軌跡加工的Python+Qt開發

    今天,正運動小助手給大家分享下全國產EtherCAT運動控制邊緣控制器ZMC432H如何使用
    的頭像 發表于 11-02 16:45 ?441次閱讀
    全國產<b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制</b>邊緣<b class='flag-5'>控制器</b>(六):RtBasic文件下載與連續軌跡加工的<b class='flag-5'>Python+Qt</b>開發

    全國產EtherCAT運動控制邊緣控制器ZMC432H如何使用Python+QT實現連續軌跡加工

    今天,正運動小助手給大家分享下全國產EtherCAT運動控制邊緣控制器ZMC432H如何使用
    的頭像 發表于 11-06 16:03 ?647次閱讀
    全國產<b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制</b>邊緣<b class='flag-5'>控制器</b>ZMC432H如何使用<b class='flag-5'>Python+QT</b>實現連續軌跡加工

    EtherCAT運動控制器在ROS上的應用(下)

    運動技術動態鏈接庫環境配置以及EtherCAT運動控制器在ROS下的
    的頭像 發表于 03-13 14:54 ?322次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>運動</b><b class='flag-5'>控制器</b>在ROS上的應用(下)