|

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

ZMC408CE支持8軸運動控製,最多可擴展至32軸,支持 直線插補 、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨等功能。
ZMC408CE支持PLC、Basic、HMI組態三種編程方式。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個通道的硬件比較輸出、硬件定時器、運動中精準輸出,還支持8通道PWM輸出,對應的輸出口為OUT0-7,支持8個通道同時觸發硬件比較輸出。
PCIE464M硬件介紹
PCIE464M是一款基於PCIe的PCI Express的EtherCAT總線 運動控製卡 ,具有多項實時和高精度運動控製控製功能。

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

PCIE464M運動控製卡上自帶16進16出,第三方圖像處理工控機或PC無需額外配置IO數據采集卡和PLC,即可實現IPC形態的機器視覺運動控製一體機,簡化硬件架構,節省成本,軟硬件一體化。
一、Python語言開發流程
本文案例Python開發環境:
操作係統環境:Win10_64位
Python版本:python-3.10.10-amd64.exe
Pycharm版本:pycharm-community-2024.1.3.exe
1、Python開發前對環境、解析器進行配置。
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:\Python\Python39\Scripts\pyside2-designer.exe
Working directory: $ProjectFileDir$
自定義Pyside2-uic
目的: 將製作好的.ui文件轉化為.py文件
Name: Pyside2-uic
Group: Qt
Program: Python安裝目錄下Scripts\pyside2-uic.exe
例如: C:\Python\Python39\Scripts\pyside2-uic.exe
Arguments : $FileName$ -o $FileNameWithoutExtension$.py
Working directory: $FileDir$
自定義Pyside2-rcc
目的: 將圖片文件轉化為.py文件
Name: Pyside2-rcc
Group: Qt
Program: Python安裝目錄下Scripts\pyside2-rcc.exe
例如: C:\Python\Python39\Scripts\pyside2-rcc.exe
Arguments: $FileName$ -o $FileNameWithoutExtension$_rc.py
Working directory: $FileDir$
4)配置好自定義控件後,後續可以直接在pycharm菜單中使用。

二、Python+Qt進行運動控製開發
1、新建項目


2、UI設置界麵
1)進入項目ui設置界麵:工具 → Qt → QtDesigner。


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

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

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


2)Ui_Weiget文件裏麵添加UI處理的類。


3)同步驟1添加主運行python文件Main,並添加主入口運行函數。


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

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

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

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

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

E、解壓Python64壓縮包,裏麵有Python對應的函數庫,與 運動函數封裝的python文件。

2)將廠商提供的python的庫文件以及相關文件複製到新建的項目中。
A、進入dll文件夾,選中zauxdll.dl、zmotion.dll、zauxdllPython.py三個文件複製。


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

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

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

2、連接控製器。

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

4、 設置脈衝當量。

5、設置軸運動速度。

6、單軸持續運動。

7、單軸絕對運動。

8、單軸停止運動。

四、例程演示
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_t
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軟件觀察運行情況。

完整代碼獲取地址
▼

本次,正運動技術EtherCAT運動控製器上位機開發之Python+Qt(一):鏈接與單軸運動,就分享到這裏。
更多精彩內容請關注“ 正運動小助手 ”公眾號,需要相關開發環境與例程代碼,請谘詢正運動技術銷售工程師:400-089-8936。
benwenyouzhengyundongjishuyuanchuang,huanyingdajiazhuanzai,gongtongxuexi,yiqitigaozhongguozhinengzhizaoshuiping。wenzhangbanquanguizhengyundongjishusuoyou,ruyouzhuanzaiqingzhumingwenzhanglaiyuan。

正運動技術專注於運動控製技術研究和通用運動控製軟硬件產品的研發,是國家級高新技術企業。正運動技術彙集了來自華為、中zhong興xing等deng公gong司si的de優you秀xiu人ren才cai,在zai堅jian持chi自zi主zhu創chuang新xin的de同tong時shi,積ji極ji聯lian合he各ge大da高gao校xiao協xie同tong運yun動dong控kong製zhi基ji礎chu技ji術shu的de研yan究jiu,是shi國guo內nei工gong控kong領ling域yu發fa展zhan最zui快kuai的de企qi業ye之zhi一yi,也ye是shi國guo內nei少shao有you、完整掌握運動控製核心技術和實時工控軟件平台技術的企業。主要業務有:運動控製卡_運動控製器_EtherCAT運動控製卡_EtherCAT控製器_運動控製係統_視覺控製器__運動控製PLC_運動控製_機器人控製器_視覺定位_XPCIe/XPCI係列運動控製卡等等。
|