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

ZMC408CE支持8軸運動控制,最多可擴(kuò)展至32軸,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨等功能。
ZMC408CE支持PLC、Basic、HMI組態(tài)三種編程方式。PC上位機API編程支持C#、C++、LabVIEW、Matlab、Qt、Linux、VB.Net、Python等接口。

ZMC408CE支持8軸運動控制,可采用脈沖軸(帶編碼器反饋)或EtherCAT總線軸,通用IO包含24路輸入口和16路輸出口,部分IO為高速IO,模擬量AD/DA各兩路,EtherCAT最快125us的刷新周期。
ZMC408CE支持8個通道的硬件比較輸出、硬件定時器、運動中精準(zhǔn)輸出,還支持8通道PWM輸出,對應(yīng)的輸出口為OUT0-7,支持8個通道同時觸發(fā)硬件比較輸出。
更多關(guān)于ZMC408CE的詳情介紹,點擊“推薦|8通道PSO的高性能EtherCAT總線運動控制器”查看。
PCIE464M硬件介紹
PCIE464M是一款基于PCIe的PCI Express的EtherCAT總線運動控制卡,具有多項實時和高精度運動控制控制功能。

用戶可直接將PCIE464M嵌入標(biāo)準(zhǔn)PC機實現(xiàn)高性能的EtherCAT運動控制功能,實現(xiàn)高精多軸同步控制,EtherCAT控制周期最小可達(dá)100us!
PCIE464M內(nèi)置多路高速IO輸入輸出,可滿足用戶的多樣化高速IO應(yīng)用需求,如:高速色標(biāo)鎖存、高速PWM、多維位置比較輸出PSO、視覺飛拍、速度前瞻、編碼器位置檢測等應(yīng)用。

PCIE464M運動控制卡上自帶16進(jìn)16出,第三方圖像處理工控機或PC無需額外配置IO數(shù)據(jù)采集卡和PLC,即可實現(xiàn)IPC形態(tài)的機器視覺運動控制一體機,簡化硬件架構(gòu),節(jié)省成本,軟硬件一體化。
更多關(guān)于PCIE464M的詳情介紹,點擊“PCIE464M-高速高精,超高速PCIe EthrtCAT實時運動控制卡”查看。
一、Python語言開發(fā)流程
本文案例Python開發(fā)環(huán)境:
操作系統(tǒng)環(huán)境:Win10_64位
Python版本:python-3.10.10-amd64.exe
Pycharm版本:pycharm-community-2024.1.3.exe
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:PythonPython39Scriptspyside2-designer.exe
Working directory:
自定義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菜單中使用。

二、Python+Qt進(jìn)行運動控制開發(fā)
1、新建項目


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


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

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

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


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

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 定義中動態(tài) 創(chuàng)建一個相應(yīng)的窗口對象
self.ui = QUiLoader().load(q_state_file)
3)同步驟1添加主運行python文件Main,并添加主入口運行函數(shù)。

from PySide2.QtWidgets import QApplication from Ui_Weiget import UiInterFace if __name__ == "__main__": app = QApplication([]) #加載所有控件 ui_interface = UiInterFace() #創(chuàng)建窗體對象 ui_interface.ui.show() #主窗口的控件,全部顯示在界面上 app.exec_() #進(jìn)入QApplication的事件處理循環(huán)
4)此時在Main文件點擊運行按鈕,可以運行程序顯示UI界面。

4、添加庫文件、庫函數(shù)封裝的Python文件。
1)找到廠家提供的光盤資料里面的python函數(shù)庫,路徑如下(64位庫為例)。
A、進(jìn)入廠商提供的光盤資料找到“04PC函數(shù)”文件夾,并點擊進(jìn)入。

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

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

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

E、解壓Python64壓縮包,里面有Python對應(yīng)的函數(shù)庫,與
運動函數(shù)封裝的python文件。

2)將廠商提供的python的庫文件以及相關(guān)文件復(fù)制到新建的項目中。
A、進(jìn)入dll文件夾,選中zauxdll.dl、zmotion.dll、zauxdllPython.py三個文件復(fù)制。


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

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

三、相關(guān)PC函數(shù)介紹
1、PC函數(shù)手冊可在光盤資料查看,具體路徑如下。

2、連接控制器。

3、讀取當(dāng)前軸運動是否在運動中。

4、設(shè)置脈沖當(dāng)量。

5、設(shè)置軸運動速度。

6、單軸持續(xù)運動。

7、單軸絕對運動。

8、單軸停止運動。

四、例程演示
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("單軸運動")
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)#開啟定時器
2、軸運動。
#軸運行函數(shù)
def on_btn_Run_clicked(self):
if self.Zmc.handle.value is None:
QMessageBox.warning(self.ui, "警告", "未連接控制器")
return
# 獲取軸運動狀態(tài)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
# 設(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è)置脈沖單量
# 設(shè)置運動速度
str_tmp = self.ui.edit_Speed.text()
float_tmp = float(str_tmp)
self.Zmc.ZAux_Direct_SetSpeed(self.axis_Num, float_tmp)#設(shè)置運動速度
# 設(shè)置加速度
str_tmp = self.ui.edit_Accel.text()
float_tmp = float(str_tmp)
self.Zmc.ZAux_Direct_SetAccel(self.axis_Num, float_tmp)#設(shè)置加速度
# 設(shè)置減速度
str_tmp = self.ui.edit_Decel.text()
float_tmp = float(str_tmp)
self.Zmc.ZAux_Direct_SetDecel(self.axis_Num, float_tmp)#設(shè)置減速
# 設(shè)置S曲線
str_tmp = self.ui.edit_Sramp.text()
float_tmp = float(str_tmp)
self.Zmc.ZAux_Direct_SetSramp(self.axis_Num, float_tmp)# 設(shè)置S曲線
if 0 == self.mode:
# 單軸持續(xù)運動
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
#獲取軸運動狀態(tài)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軟件觀察運行情況。

本次,正運動技術(shù)EtherCAT運動控制器上位機開發(fā)之Python+Qt(一):鏈接與單軸運動,就分享到這里。
更多精彩內(nèi)容請關(guān)注“正運動小助手”公眾號,需要相關(guān)開發(fā)環(huán)境與例程代碼,請咨詢正運動技術(shù)銷售工程師。
本文由正運動技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國智能制造水平。文章版權(quán)歸正運動技術(shù)所有,如有轉(zhuǎn)載請注明文章來源。
-
運動控制器
+關(guān)注
關(guān)注
2文章
484瀏覽量
26043 -
上位機
+關(guān)注
關(guān)注
27文章
1002瀏覽量
57051 -
python
+關(guān)注
關(guān)注
57文章
4876瀏覽量
90029 -
ethercat
+關(guān)注
關(guān)注
19文章
1511瀏覽量
45192
發(fā)布評論請先 登錄
EtherCAT運動控制器在ROS上的應(yīng)用開發(fā)案例(下)
EtherCAT運動控制器上位機之Python+Qt(一):鏈接與單軸運動# 正運動技術(shù)# 運動控制器
EtherCAT運動控制器上位機開發(fā)之Python+Qt(二):回零# 正運動技術(shù)# 運動控制器# 運動控制
EtherCAT運動控制器上位機開發(fā)之Python+Qt(三):PDO配置與SDO讀寫# 運動控制器# 控制卡
正運動技術(shù)運動控制器EtherCAT總線快速入門
經(jīng)濟(jì)型EtherCAT運動控制器:EtherCAT總線快速入門
EtherCAT運動控制器進(jìn)行自定義API封裝例程
全國產(chǎn)EtherCAT運動控制邊緣控制器(四):軸參數(shù)配置與單軸運動PC上位機C++控制
EtherCAT運動控制邊緣控制器ZMC432H的軸參數(shù)配置和單軸運動控制
全國產(chǎn)EtherCAT運動控制邊緣控制器(五):IO配置與回零運動的Python+Qt開發(fā)
全國產(chǎn)EtherCAT運動控制邊緣控制器(五):IO配置與回零運動的Python+Qt開發(fā)
全國產(chǎn)EtherCAT運動控制邊緣控制器(六):RtBasic文件下載與連續(xù)軌跡加工的Python+Qt開發(fā)
全國產(chǎn)EtherCAT運動控制邊緣控制器ZMC432H如何使用Python+QT實現(xiàn)連續(xù)軌跡加工
EtherCAT運動控制器上位機之Python+Qt(一):鏈接與單軸運動
評論