<style id="7i3y3"></style>

      <sub id="7i3y3"><i id="7i3y3"></i></sub>

        午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
        首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
        中華工控網首頁
          P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
          D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
          電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
        C#上位機與運動控制卡網絡通訊的周期上報
        深圳市正運動技術有限公司
        收藏本文     查看收藏

        今天,正運動小助手給大家分享一下運動控制卡周期上報,通過提前設置經常讀取的參數主動周期上報,可以減少PC主動輪詢的時間。

        本文以ECI2A18B運動控制卡為例,主要講解如何使用C#編程語言來進行周期上報函數的編寫和功能的開發。

        ECI2A18B運動控制卡介紹

        ECI2A18B是一款10軸脈沖型、模塊化的網絡型運動控制卡,采用優化的網絡通訊協議可以實現實時的運動控制,同時支持多種通信協議,方便與其他工業控制設備連接和集成。安裝配置相對便捷,適合于模塊化和靈活性要求較高的控制系統。

        運動控制卡ECI2A18B.png

        ECI2A18B運動控制卡最大可擴展至12脈沖軸,支持8路高速輸入和12路高速輸出,集成豐富的運動控制功能,包含多軸點位運動、電子凸輪,直線插補,圓弧插補,連續插補運動等,滿足多樣化的工業應用需求。
         

        運動控制卡ECI2A18B接線圖.png

        正運動提供自主自研IDE-RTSys開發編程軟件,ECI2A18B控制卡支持多種上位機語言開發,均可調用同一套API函數庫,易與現有的工業控制系統集成,極大地提高了工程師進行二次開發的效率,加速設備的部署和應用。

        API.png

        更多關于ECI2618B的詳情介紹,點擊“【加量不加價】正運動網絡型運動控制卡ECI2618B/ECI2A18B”查看。


        ECI2A18B產品介紹視頻可點擊→“【加量不加價】高性價比十軸脈沖運動控制卡ECI2A18B 讓您的設備在自動化行業內卷中脫穎而出!”查看。


         

        01 周期上報

        1.首先了解當PC主動輪詢的次數過多時,可能會導致的問題:

        (1)增加系統開銷:輪詢需要消耗系統資源,無論是任務輪詢還是定時器輪詢都需要相應的系統資源。這可能會導致系統性能下降,尤其是在多用戶或資源受限的環境中。

        (2)浪費CPU資源:無論設備是否發生狀態改變,輪詢總在進行。在實際情況中,大多數設備的狀態改變通常不會那么頻繁,輪詢空轉將白白浪費CPU時間片。

        (3)影響電源管理:向PC報告外圍設備的次數越多,消耗的功率就越高,這可能會縮短電池壽命或增加能源消耗。

        (4)降低響應速度:如果輪詢頻率過高,可能會導致系統響應其他任務的速度變慢,因為CPU需要頻繁地檢查設備狀態,而不是處理其他計算或用戶交互任務。

        (5)網絡負載增加:如果輪詢涉及到網絡通信,過多的輪詢請求可能會增加網絡負載,導致網絡擁堵或延遲增加。

        (6)服務器壓力增大:在客戶端-服務器架構中,頻繁的輪詢請求可能會對服務器造成壓力,尤其是在服務器資源有限的情況下,可能會導致服務質量下降或請求超時。

        2.了解PC主動輪詢次數過多,我們再來了解一下多種獲取方式對于程序運行占比的區別:

        在討論單條獲取、多條獲取和周期性獲取對程序運行的影響時,我們需要考慮這些操作的特點及其對程序整體性能的潛在影響。

        (1)單條獲取

        單條獲取通常指的是程序中每次只處理一個單獨的數據項。這種方式簡單直接,但在處理大量數據時可能效率低下,因為每次操作都涉及到上下文切換和資源管理的開銷。在這種情況下,程序運行時間主要集中在處理數據本身,而非額外的控制邏輯。

        (2)多條獲取

        多條獲取涉及同時處理多個數據項。在現代計算機系統中,這通常通過多線程或并發技術實現,可以顯著提高數據處理的吞吐量。然而,多線程帶來的好處可能會被鎖爭、內存競爭和上下文切換等問題抵消。因此,多條獲取可能會減少單個數據項處理的相對運行時間,但總體運行時間的減少取決于多線程優化的效果。

        (3)周期性獲取

        周期性獲取是指按照一定的時間間隔重復執行數據獲取操作。這種方式常見于需要定期更新數據狀態的應用場景,如實時監控系統或定時任務。周期性獲取的運行時間占比取決于任務的周期性以及在每個周期內實際執行的工作量。如果周期性任務的負載較輕,那么它們可能不會顯著影響程序的整體運行時間。

        3.應用場合:

        在實際應用中,選擇哪種數據獲取策略取決于具體的應用場景、數據特性和性能要求。例如,如果程序需要快速響應單個事件,單條獲取可能更為合適。如果目標是最大化數據處理速度,多條獲取可能更有益。而對于需要定期維護數據新鮮度的應用,周期性獲取是必要的。

        02 C#語言進行周期上報

        1.在VS2010菜單“文件”→“新建”→“項目”,啟動創建項目向導。

        1.png

        2.選擇開發語言為“Visual C#”和.NET Framework 4以及Windows窗體應用程序。

        2.png

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

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

        3.png

        2)選擇“01PC函數庫V2.1”文件夾。

        4.png

        3)選擇“Windows平臺”文件夾。

        5.png

        4)選擇“C#”文件夾。

        6.png

        5)根據需要選擇對應的函數庫,這里選擇32位庫。

        7.png

        4.將廠商提供的C#的庫文件以及相關文件復制到新建的項目中。

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

        8.png

        2)將zauxdll.dll和zmotion.dll文件放入bin\debug文件夾中。

        9.png

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

        10.png

        6.至此,項目新建完成,可進行C#項目開發。

        03 PC函數介紹

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

        11.png

        1.鏈接控制器,獲取鏈接句柄。

        12.png

        2.控制器自動上報相關指令。

        13.png

        3.注意周期上報指令使用事項。

        14.png

        04 C#之網絡通訊的周期上報

        1.上位機軟件界面如下,首先連接控制器,設置周期上報參數和需要上報的參數,最后勾選啟動強制上報即可。

        15.png

        2.例程講解。

        (1)連接控制器獲取句柄,上位機操作通過獲取到的句柄來操作控制器。

        //連接控制器,控制器默認IP是192.168.0.11
        ZauxErr = zmcaux.ZAux_OpenEth("192.168.0.11", out g_Handle);
        if (0 != ZauxErr)
        {
            AlmInifFile.Write(DateTime.Now.ToString("F"), "ZAux_OpenEth執行錯誤,錯誤碼:" + ZauxErr.ToString(), "錯誤碼信息");
        }

        16.png

        (2)啟動上報。當啟動周期上報checkbox狀態發生變化的時候通知CheckChange函數,首先判斷是取消勾選還是勾選。如果是勾選則ZAux_CycleUpEnable使能周期上報并開始定時器進行周期上報數據包進行讀取和刷新。

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            //獲取上報的參數
            StringBuilder psetesname = GetCycleStr();
            //勾選啟動上報
            if (!StartUp && checkBox1.Checked == true) {
                try
                {
                    //使能周期上報
                    controlReturn = zmcaux.ZAux_CycleUpEnable(g_handle, Convert.ToUInt32(textBox1.Text), Convert.ToSingle(textBox2.Text), psetesname.ToString());
                }
                catch (FormatException fe)
                {
                    checkBox1.Checked = false;
                    MessageBox.Show(string.Format("{0}: {1}", fe.GetType().Name, fe.Message));
                    return;
                }
                if (controlReturn != 0)
                {
                    checkBox1.Checked = false;
                    return;
                }
                textBox9.Text = "0";
                AppendTextOut(string.Format("周期上報開始 \r\n 命令:{0}\r\n", psetesname.ToString()));
                start = DateTime.Now;
                //
                timer1.Enabled = true;
                StartUp = true;
            }else if(StartUp && checkBox1.Checked == false){ //取消勾選周期上報
                controlReturn = zmcaux.ZAux_CycleUpDisable(g_handle, Convert.ToUInt32(textBox1.Text));
                DateTime end = DateTime.Now;
                if (controlReturn != 0) {
                    AppendTextOut(string.Format("周期上報關閉失敗 錯誤碼:{0:D} \r\n",controlReturn));
                    return;
                }
                timer1.Enabled = false;
                StartUp = false;
                TimeSpan abs = end - start;
                AppendTextOut(string.Format("{0:N3}ms, {2:N3} \r\n", abs.TotalMilliseconds, Convert.ToDouble(textBox9.Text), abs.TotalMilliseconds / Convert.ToDouble(textBox9.Text)));
            }
        }
        //讀取上報參數
        private void timer1_Tick(object sender, EventArgs e){
            int received;
            try
            {
                //獲取周期上報收到的數據包數量
                received = zmcaux.ZAux_CycleUpGetRecvTimes(g_handle,Convert.ToUInt32(textBox1.Text));
            }
            catch (FormatException fe)
            {
                timer1.Enabled = false;
                MessageBox.Show(string.Format("{0}: {1}", fe.GetType().Name, fe.Message));
                return;
            }
            if (received != Convert.ToUInt32(textBox9.Text))
            {
                //收到新的數據包則打印
                //打印函數
                GetCycleInfo();
                textBox9.Text = string.Format("{0:D}", received);
            }
        }

        17.png

        (3)打印數據。通過ZAux_CycleUpReadBuffInt讀取周期上報數據解析后通過AppendTextOut顯示。

        //打印收到的數據包
        private void GetCycleInfo()
        {
            StringBuilder showString = new StringBuilder();
            int ival = 0;
            for (int num = 0; num < 3; num++) {
                if (checkbox[num].Checked){
                       showString.Append(combobox[num].SelectedItem.ToString());
                       for (uint i = (uint)data[num].CycleParaStart; i < data[num].CycleParaNum; i++) {
                             //從周期上報里面讀取內容
                             controlReturn = zmcaux.ZAux_CycleUpReadBuffInt(g_handle, Convert.ToUInt32(textBox1.Text), combobox[num].SelectedItem.ToString(),i, ref ival);
                             showString.AppendFormat(" {0:D}",ival);
                        }
                        showString.Append("\n");
                }
            }
            AppendTextOut(showString.ToString());
        }

        18.png

        05 RTSys的使用

        1.打開【RTSys】軟件,點擊【連接】輸入控制器的IP(默認IP:192.168.0.11)。

        19.png

        2.使用正運動RTSys軟件可以方便直觀的觀察周期上報參數數值。

        20.png

        3.上位機讀取周期上報的值并輸出在文本框。

        21.png

        4.點擊下拉框選擇其他參數或更改起始地址及數量讀取不同區域數據。

        22.png

        教學視頻可點擊→“C#上位機與運動控制卡網絡通訊的周期上報”查看。

         

        完整代碼獲取地址

        二維碼.png

        本次,正運動技術C#上位機與運動控制卡網絡通訊的周期上報,就分享到這里。

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

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

        二維碼.png


        正運動技術專注于運動控制技術研究和通用運動控制軟硬件產品的研發,是國家級高新技術企業。正運動技術匯集了來自華為、中興等公司的優秀人才,在堅持自主創新的同時,積極聯合各大高校協同運動控制基礎技術的研究,是國內工控領域發展最快的企業之一,也是國內少有、完整掌握運動控制核心技術和實時工控軟件平臺技術的企業。主要業務有:運動控制卡_運動控制器_EtherCAT運動控制卡_EtherCAT控制器_運動控制系統_視覺控制器__運動控制PLC_運動控制_機器人控制器_視覺定位_XPCIe/XPCI系列運動控制卡等等。


         

        狀 態: 離線

        公司簡介
        產品目錄

        公司名稱: 深圳市正運動技術有限公司
        聯 系 人: 戴德弟
        電  話: 0755-32976042
        傳  真: 0755-2606 6955
        地  址: 深圳市寶安區西鄉洲石路陽光工業園A1棟5樓
        郵  編: 518100
        主  頁:
         
        該廠商相關技術文摘:
        強實時運動控制內核MotionRT750(十):運動控制中的微調軌跡動態補償
        機器視覺運動控制一體機在大功率共模電感多面AI外觀缺陷檢測應用
        MotionRT750 SoftMotion:XPCIE1032H超高速運動控制卡在AOI檢測設備上的應用
        強實時運動控制內核MotionRT750(九):內置C語言的自定義機械手模型實現
        NEPCON ASIA 2025:解鎖行業新機遇,我們在深圳等您
        開放式激光振鏡運動控制器在旋轉飛行打標中的應用
        強實時運動控制內核MotionRT750(八):us級高速交互之LabVIEW,為智能裝備提速
        液態點膠密封解決方案,柔性升級,密封更可靠!
        柔性機械手視覺供料解決方案,提升無序分揀效率!
        【2025上海工博會】正運動展位智造未來(二)
        【2025上海工博會】正運動展位智造未來(一)
        【2025上海工博會】機器視覺運動控制一體機應用預覽(三)
        更多文摘...
        立即發送詢問信息在線聯系該技術文摘廠商:
        用戶名: 密碼: 免費注冊為中華工控網會員
        請留下您的有效聯系方式,以方便我們及時與您聯絡

        關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
        工控網客服熱線:0755-86369299
        版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved

        主站蜘蛛池模板: 久久这里只有精品少妇| 99精品国产一区二区三区| 成人资源网亚洲精品在线| 亚洲色欲或者高潮影院| 国产一区二区三区地址| 性一交一乱一伦一| 亚洲熟妇自偷自拍另类| 99麻豆久久精品一区二区| 丝袜美腿视频一区二区三区| 色色97| 国产一级毛片高清完整视频版| 国产精品一区二区AV| 琪琪午夜成人理论福利片| 一区二区三区在线 | 欧洲| 一区二区在线观看 激情| 国产对白老熟女正在播放| 开心一区二区三区激情| 国产午夜精品福利91| 一区二区国产高清视频在线 | 99热在线免费观看| 天堂V亚洲国产V第一次| 俄罗斯xxxx性全过程| 亚洲一区二区三成人精品| 久久96热在精品国产高清| 久久大香伊蕉在人线免费AV| 国产精品自拍三级在线观看| 国产精品中文字幕观看| 国产精品久久久久婷婷五月| 在线看av一区二区三区| 欧美成人h精品网站| 国产一区二区三区怡红院| 亚洲精品一区二区三区蜜臀| 野花社区www视频日本| 日本一区不卡高清更新二区 | 精品国产成人网站一区在线| 精品一区二区三区不卡| 日本免费精品| 亚洲综合av永久无码精品一区二区| 草裙社区精品视频播放| 99精品久久免费精品久久 | 国产亚洲精品视频中文字幕 |