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

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

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

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

PC強實時運動控制(一):C#的EtherCAT總線初始化(下)

正運動技術(shù) ? 來源:正運動技術(shù) ? 作者:正運動技術(shù) ? 2026-02-05 10:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


今天,正運動小助手給大家分享一下強實時運動控制內(nèi)核MotionRT750下PC上位機的EtherCAT總線初始化。

PC上位機EtherCAT總線的初始化方式主要分為兩種:純上位機初始化和下載BASIC腳本初始化。上節(jié)課程給大家講解了如何通過純上位機的方法來實現(xiàn)PC上位機EtherCAT總線初始化【詳情點擊→PC強實時運動控制(一):C#的EtherCAT總線初始化(上)】。

本文將詳細(xì)講解如何通過使用ZMotionTools工具配置得到的ZAR文件來進(jìn)行EtherCAT總線初始化。

這里所說的EtherCAT總線初始化,是指正運動的控制器作為主站和EtherCAT的驅(qū)動器等從站建立正常通訊,并把各個驅(qū)動器映射到控制器的對應(yīng)軸上的過程。(默認(rèn)第一個驅(qū)動器是0軸,第二個驅(qū)動器是1軸,以此類推)

1.脈沖步進(jìn)驅(qū)動器
脈沖步進(jìn)驅(qū)動器一般上電即可使能,把控制器對應(yīng)軸的軸類型設(shè)置成1或者7,然后就可以發(fā)送運動指令去控制了。

2.脈沖伺服驅(qū)動器
脈沖伺服驅(qū)動器的使能操作,通常是將控制器的輸出口連接至驅(qū)動器對應(yīng)的使能口,再由控制器通過控制對應(yīng)輸出口的開關(guān)狀態(tài)來實現(xiàn)脈沖伺服驅(qū)動器的使能;使能后把控制器對應(yīng)軸的軸類型設(shè)置成4,然后就可以發(fā)送運動指令去控制了。

3.總線驅(qū)動器
總線驅(qū)動器相對復(fù)雜一點,需先由控制器執(zhí)行總線初始化程序后控制器和驅(qū)動器通訊上,總線驅(qū)動器的使能可以通過ZAux_Direct_SetAxisEnable接口去控制,總線驅(qū)動器跑位置模式時,軸類型設(shè)置成65,就可以發(fā)送運動指令去控制了。

一.全國產(chǎn)強實時運動控制內(nèi)核MotionRT750

MotionRT750是正運動技術(shù)首家自主自研的

x86架構(gòu)Windows系統(tǒng)或Linux系統(tǒng)下獨占確定CPU的強實時運動控制內(nèi)核。

wKgZPGmD-bmABmoaAAIoOvONu1463.webp

該方案采用獨占確定CPU內(nèi)核技術(shù)實現(xiàn)超強性能的強實時運動控制。它將核心的運動控制、機器人算法、數(shù)控(CNC)及機器視覺等強實時的任務(wù),集中運行在1-2個專用CPU核上。與此同時,其余CPU核則專注于處理Windows/Linux相關(guān)的非實時任務(wù)。

此外集成MotionRT750 Runtime實時層與操作系統(tǒng)非實時層,并利用高速共享內(nèi)存進(jìn)行數(shù)據(jù)交互,顯著提升了運動控制與上層應(yīng)用間的通信效率及函數(shù)執(zhí)行速度,最終實現(xiàn)更穩(wěn)定、更高效的智能裝備控制,確保了運動控制任務(wù)的絕對實時性與系統(tǒng)穩(wěn)定性,特別適用于半導(dǎo)體、電子裝備等高速高精的應(yīng)用場合。

wKgZO2mD-bqABLgDAAdGHNmSg3I806.png

MotionRT750應(yīng)用優(yōu)勢:

1.跨平臺兼容性:支持Windows/Linux系統(tǒng),適配不同等級CPU。

2.開發(fā)靈活性:提供多語言編程接口,便于二次開發(fā)與功能定制。

3.實時性提升:通過CPU內(nèi)核獨占機制與高效LOCAL接口,實現(xiàn)2-3us指令交互周期,較傳統(tǒng)PCI/PCIe方案提速近20倍。

4.擴展能力強化:多卡多EtherCAT通道架構(gòu)支持254軸運動控制及500us EtherCAT周期。

5.系統(tǒng)穩(wěn)定性:32軸125us EtherCAT冗余架構(gòu)消除單點故障風(fēng)險,保障連續(xù)生產(chǎn)。

6.安全可靠性:不懼Windows系統(tǒng)崩潰影響,藍(lán)屏?xí)r仍可維持急停與安全停機功能有效,確保產(chǎn)線安全運行。

7.功能擴展性:實時內(nèi)核支持C語言程序開發(fā),方便功能拓展與實時代碼提升效率。

MotionRT750視頻介紹可點擊→正運動強實時運動控制內(nèi)核MotionRT750。

更多關(guān)于MotionRT750的詳情介紹與使用點擊→強實時運動控制內(nèi)核MotionRT750(一):驅(qū)動安裝、內(nèi)核配置與使用。

二.C#語言進(jìn)行項目開發(fā)

1.在VS2019菜單“文件”→“新建”→“項目”,啟動創(chuàng)建項目向?qū)А?/p>

wKgZPGmD-buABikLAAC2hitei2c86.webp

2.選擇開發(fā)語言為“C#”和Windows窗體應(yīng)用程序,點擊下一步。

wKgZO2mD-buAKr0HAADMugObZB871.webp

3.配置好項目名稱和位置,以及相應(yīng)框架,點擊創(chuàng)建。

wKgZPGmD-buADkZoAABuJM0zHmA75.webp

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

進(jìn)入廠商提供的光盤資料,找到zauxdll.dll,zmotion.dll和Zmcaux.cs這三個庫文件。庫文件路徑:【00光盤資料】→【04PC函數(shù)】→【01PC函數(shù)庫V2.1】→【W(wǎng)indows平臺】→【C#】→【64位】→【庫文件】。

wKgZO2mD-byAQKfOAACy5pg6m9k78.webp

5.將廠商提供的C#的庫文件以及相關(guān)文件復(fù)制到新建的項目中。

(1)將zmcaux.cs文件復(fù)制到新建的項目里面中。

wKgZPGmD-byAVGMpAAELnFlUuq084.webp

(2)將zauxdll.dll和zmotion.dll文件放入bindebug文件夾中。

wKgZO2mD-byAHwvpAADP5IkOyoM24.webp

(3)將Zmcaux.cs文件添加進(jìn)項目中。右鍵項目名稱,選擇添加,再選擇現(xiàn)有項,選擇Zmcaux.cs文件。

wKgZPGmD-b2AC6sGAAFtOmgTHjQ70.webp

6.雙擊Form1.cs里面的Form1,出現(xiàn)代碼編輯界面,在文件開頭寫入using cszmcaux,并聲明控制器句柄g_handle。

wKgZO2mD-b2AZ9YaAADJoh4rex441.webp

7.至此,項目新建完成,可進(jìn)行C#項目開發(fā)。

三.PC函數(shù)介紹

PC函數(shù)手冊可在光盤資料獲取,具體路徑如下:“00光盤資料3編程手冊3ZMotion PC函數(shù)庫編程手冊”。

wKgZPGmD-b2AWEE0AACrOBoc8ZY02.webpwKgZO2mD-b6AFtpjAABfcnW9_Zs67.webpwKgZPGmD-b-Af8wOAACaaHNaVFI43.webpwKgZO2mD-b-Ac7ngAAB2aCVy2wY40.webp

wKgZPGmD-b-AT6MSAAB-doF24j455.webpwKgZO2mD-b-AFR14AABmZKfXEt839.webp

四.使用ZMotionTools工具配置并生成ZAR文件

在ZMotionToolsQT文件中找到使用手冊,參考《ZMotionTools使用手冊.pdf》進(jìn)行調(diào)試工作,當(dāng)總線初始化正常且無差錯,手動調(diào)試和回零動作均正常后,便可導(dǎo)出ZAR文件給上位機軟件工程師使用。

wKgZPGmD-cCARDd7AACASGBwQ8g21.webp

五.總線初始化的ZAR文件導(dǎo)出步驟

點擊【4_配置導(dǎo)入與保存】進(jìn)入保存界面,再點擊【配置更新到控制器】后,先瀏覽導(dǎo)出文件路徑(存儲文件路徑不要有中文),再點擊【導(dǎo)出】,等待提示文件導(dǎo)出成功。

wKgZO2mD-cCARokzAABN1LQgUK890.webp

在導(dǎo)出的文件夾內(nèi),還存在一個名為【ZmcEcatConfig】的子文件夾,其中的【ZmcEcatConfig.zar】文件即為我們工具導(dǎo)出的配置文件,上位機軟件工程師直接拷貝該ZAR文件使用即可。

wKgZPGmD-cCAXl95AABztsA4BQU84.webp

六.C#項目如何使用配置工具導(dǎo)出ZAR文件進(jìn)行EtherCAT總線初始化

1.將ZmotionTools工具導(dǎo)出的ZAR文件放置在C#項目的ZAR文件目錄下,實際開發(fā)項目時可根據(jù)需求自定義路徑。

wKgZO2mD-cGAAbkIAACJJO4WtIs33.webp

2.上位機如何下載ZAR腳本進(jìn)行總線初始化,并等待總線初始化完成。

wKgZPGmD-cGAXtA2AAJLONc3PXU57.webp

打包好的ZAR文件里面中有定義一個全局變量【EcatInitStatus】,這個變量對總線初始化的完成情況有如下如下定義:

?-1 — 未進(jìn)行

?0—初始化失敗

?1—初始化完成,初始化OK

?2—從站個數(shù)對不上(配置軟件設(shè)置【總線節(jié)點數(shù)】大于0后才生效)

?3—總線軸個數(shù)對不上(配置軟件設(shè)置【總線驅(qū)動器軸數(shù)】大于0后才生效)

wKgZO2mD-cGAZHsTAAHjXKnIXn022.webp

所以上位機可以通過【ZAux_Direct_GetVariableInt】去獲取ZAR文件里面定義的全局變量的數(shù)值來判斷總線初始化是否成功,當(dāng)然總線初始化是需要時間的。

我們一般把ZAR程序下載后,上位機通過While循環(huán)(可以設(shè)置一個超時時間比如30秒)在超時時間內(nèi)每隔50ms就去獲取一次變量【EcatInitStatus】的值。

如果返回值不等于-1就說明總線初始化腳本執(zhí)行結(jié)束了,然后根據(jù)返回值去判斷是否成功。如果返回值等于-1就需要一直獲取變量【EcatInitStatus】的值直到超過自己設(shè)置的超時時間就報警。

上位機具體代碼如下:

//選擇RAM模式下載ZAR文件到控制器進(jìn)行總線初始化
intret=zmcaux.ZAux_ZarDown(g_handle,filePaths[0],0);
//如果ZAR文件下載成功
if(0==ret)
{
//等待2秒后再去獲取總線初始化情況
Thread.Sleep(2000);
//設(shè)置while循環(huán)的超時時間是30s
intTime0ut=30000;
while(Time0ut>0)
{
//獲取總線初始化狀態(tài)的標(biāo)志位
ret=zmcaux.ZAux_Direct_GetVariableInt(g_handle,"EcatInitStatus",refEcatInitStatus);
if((ret==0)&&(-1!=EcatInitStatus))
{
if(0==EcatInitStatus)
{
MessageBox.Show("總線初始化失敗");
}
elseif(1==EcatInitStatus)
{
MessageBox.Show("總線初始化成功");
}
elseif(2==EcatInitStatus)
{
MessageBox.Show("總線掃描,發(fā)現(xiàn)節(jié)點個數(shù)和設(shè)置的不對應(yīng)");
}
elseif(3==EcatInitStatus)
{
MessageBox.Show("總線掃描,發(fā)現(xiàn)總線軸個數(shù)和設(shè)置的不對應(yīng)");
}
break;
}
//超時時間減100ms
Thread.Sleep(100);
Time0ut=Time0ut-100;
}
}


3.上位機如何實現(xiàn)總線通訊的軟復(fù)位。

wKgZPGmD-cKAPP2uAABeylJjvLs30.webp

在ZAR腳本中存在一個死循環(huán),當(dāng)檢測到總線初始化的狀態(tài)標(biāo)志位不為1時,會重新執(zhí)行總線初始化程序。因此,若驅(qū)動器中途斷電導(dǎo)致總線通訊中斷,需重新進(jìn)行總線初始化時,上位機通過【ZAux_Direct_SetUserVar】指令將總線初始化腳本變量【EcatInitStatus】設(shè)置為-1即可。

上位機具體代碼如下:

//重新進(jìn)行總線初始化
intErr=zmcaux.ZAux_Direct_SetUserVar(g_handle,"EcatInitStatus",-1);
//如果重新總線初始化的指令下發(fā)成功
if(0==Err)
{
Thread.Sleep(2000);
//等待2秒后再去獲取總線初始化情況
intTimeOut=30000;
//設(shè)置while循環(huán)的超時時間是30s
intEcatInitStatus=-1;
//總線初始化狀態(tài)
while(TimeOut>0)
{
//獲取總線初始化狀態(tài)的標(biāo)志位
Err=zmcaux.ZAux_Direct_GetVariableInt(g_handle,"EcatInitStatus",refEcatInitStatus);
if((Err==0)&&(-1!=EcatInitStatus))
{
if(0==EcatInitStatus)
{
MessageBox.Show("總線初始化失敗");
}
elseif(1==EcatInitStatus)
{
MessageBox.Show("總線初始化成功");
}
elseif(2==EcatInitStatus)
{
MessageBox.Show("總線掃描,發(fā)現(xiàn)節(jié)點個數(shù)和設(shè)置的不對應(yīng)");
}
elseif(3==EcatInitStatus)
{
MessageBox.Show("總線掃描,發(fā)現(xiàn)總線軸個數(shù)和設(shè)置的不對應(yīng)");
}
break;
}
//超時時間減100ms
Thread.Sleep(100);
TimeOut=TimeOut-100;
}
}

4.上位機驅(qū)動器報警如何清除報警。

如果總線軸的軸狀態(tài)AxisStatus的bit3為1并且bit2為0的話,就是總線驅(qū)動器有報警并且總線通訊是沒有斷開的,比如AxisStatus是8h這個情況。這個時候我們上位機可以發(fā)送驅(qū)動器報警清除進(jìn)行報警清除。

上位機具體代碼如下:

//報警的軸號
uintAlmAxisId=0;
//清除軸AlmAxisId驅(qū)動器的當(dāng)前報警
intErr=zmcaux.ZAux_BusCmd_DriveClear(g_handle,AlmAxisId,0);
//等待比較清除完成
Thread.Sleep(500);
Err=zmcaux.ZAux_Direct_Single_Datum(g_handle,(int)AlmAxisId,0);//清除控制器報警
Err=zmcaux.ZAux_Direct_SetAxisEnable(g_handle,(int)AlmAxisId,1);//對報警的軸重新上使能

5.例程使用。

選擇LOCAL連接方式并點擊【連接】。待彈出連接成功提示框后,點擊【總線掃描】;若初始化成功,相關(guān)節(jié)點信息將顯示在表格中,命令與輸出窗口也會同步呈現(xiàn)相應(yīng)提示。

wKgZO2mD-cKAH3miAADGbD0MXjE70.webp

教學(xué)視頻請點擊→PC強實時運動控制(二):C#的EtherCAT總線初始化(下)

完整代碼獲取地址

wKgZPGmD-cOAGxgWAABV7ZUgzy0990.png

本次,正運動技術(shù)PC強實時運動控制(二):C#的EtherCAT總線初始化(下),就分享到這里。

審核編輯 黃宇

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

    關(guān)注

    5

    文章

    819

    瀏覽量

    34534
  • ethercat
    +關(guān)注

    關(guān)注

    19

    文章

    1507

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    EtherCAT總線初始化步驟

    EtherCAT(Ethernet for Control Automation Technology)是種高性能的工業(yè)以太網(wǎng)通信協(xié)議,廣泛應(yīng)用于工業(yè)自動領(lǐng)域。其初始化過程是確保系
    的頭像 發(fā)表于 12-22 10:10 ?567次閱讀
    <b class='flag-5'>EtherCAT</b><b class='flag-5'>總線</b><b class='flag-5'>初始化</b>步驟

    深度解析 | 低抖動高精度EtherCAT多軸控制的實現(xiàn)與實踐案例

    ,清晰地展示了狀態(tài)管理、數(shù)據(jù)交換與同步調(diào)用的完整框架。 三、核心流程解析:EtherCAT多軸控制系統(tǒng)如何運行以下是基于典型實現(xiàn)流程的代碼框架解析: 1. 系統(tǒng)初始化與配置EtherCAT
    發(fā)表于 12-09 17:17

    實時運動控制內(nèi)核MotionRT750(十):運動控制中的微調(diào)軌跡動態(tài)補償

    運動控制
    正運動技術(shù)
    發(fā)布于 :2025年11月06日 09:27:11

    實時運動控制內(nèi)核MotionRT750(六):us級高速交互之C++,為智能裝備提速

    Windows運動控制實時內(nèi)核MotionRT750的高速交互之C++
    的頭像 發(fā)表于 09-04 14:50 ?722次閱讀
    <b class='flag-5'>強</b><b class='flag-5'>實時運動</b><b class='flag-5'>控制</b>內(nèi)核MotionRT750(六):us級高速交互之<b class='flag-5'>C</b>++,為智能裝備提速

    GraniStudio:初始化例程

    說明 通過初始化運控板卡算子連接格拉尼總線型運控卡,導(dǎo)入工程自動進(jìn)行連接,此算子為使用運控控制板卡的第項操作,后續(xù)運控算子需引用其輸出板卡對象才可使用。 3.異常處理 當(dāng)手動執(zhí)行
    的頭像 發(fā)表于 08-22 16:45 ?891次閱讀
    GraniStudio:<b class='flag-5'>初始化</b>例程

    實時運動控制內(nèi)核MotionRT750(五):EtherCAT總線冗余讓生產(chǎn)制造更可靠

    EtherCAT總線冗余賦能生產(chǎn)更可靠保障!
    的頭像 發(fā)表于 08-21 11:14 ?806次閱讀
    <b class='flag-5'>強</b><b class='flag-5'>實時運動</b><b class='flag-5'>控制</b>內(nèi)核MotionRT750(五):<b class='flag-5'>EtherCAT</b><b class='flag-5'>總線</b>冗余讓生產(chǎn)制造更可靠

    實時運動控制內(nèi)核MotionRT750(四):高速貼裝應(yīng)用中的拱形運動

    C#編程實現(xiàn)高速貼裝應(yīng)用中的拱形運動
    的頭像 發(fā)表于 08-15 11:32 ?2735次閱讀
    <b class='flag-5'>強</b><b class='flag-5'>實時運動</b><b class='flag-5'>控制</b>內(nèi)核MotionRT750(四):高速貼裝應(yīng)用中的拱形<b class='flag-5'>運動</b>

    定義IO初始化結(jié)構(gòu)體

    由上述IOPORT相關(guān)功能的枚舉類型我們可以知道,在對IOPORT模塊進(jìn)行初始化時需要根據(jù)情況配置它們。因此我們定義個IOPORT初始化的結(jié)構(gòu)體類型IOPORT_Init_t,它的成員包括了由上述所有枚舉類型所聲明的變量,因此
    的頭像 發(fā)表于 07-16 16:26 ?1402次閱讀

    實時運動控制內(nèi)核MotionRT750():驅(qū)動安裝、內(nèi)核配置與使用

    實時運動控制內(nèi)核MotionRT750的驅(qū)動安裝與內(nèi)核配置
    的頭像 發(fā)表于 07-03 15:48 ?3675次閱讀
    <b class='flag-5'>強</b><b class='flag-5'>實時運動</b><b class='flag-5'>控制</b>內(nèi)核MotionRT750(<b class='flag-5'>一</b>):驅(qū)動安裝、內(nèi)核配置與使用

    實時運動控制內(nèi)核MotionRT750():驅(qū)動安裝 #正運動技術(shù) #正運動 #運動控制 #

    運動控制
    正運動技術(shù)
    發(fā)布于 :2025年07月03日 14:16:07

    實時運動控制內(nèi)核MotionRT750():CPU配置 #正運動技術(shù) #運動控制 #正運動 #

    運動控制
    正運動技術(shù)
    發(fā)布于 :2025年07月03日 14:15:14

    C#上位機與運動控制卡網(wǎng)絡(luò)通訊的周期上報

    使用C#上位機編程實現(xiàn)運動控制卡網(wǎng)絡(luò)通訊的周期上報功能
    的頭像 發(fā)表于 06-26 13:59 ?824次閱讀
    <b class='flag-5'>C#</b>上位機與<b class='flag-5'>運動</b><b class='flag-5'>控制</b>卡網(wǎng)絡(luò)通訊的周期上報