• <span id="n97xl"><optgroup id="n97xl"></optgroup></span>
          1. <li id="n97xl"></li>
            <label id="n97xl"><meter id="n97xl"></meter></label>

              研學堂|運動控制卡編程小技巧(運動順序執行問題)

                 2020-11-17 運動控制13358
              核心提示:在運動控制卡開發應用中,運動順序執行是最常見的編程問題之一,關系到設備后續控制動作能否正常運行。 下面,我們分享研控運動控制卡的編程小技巧!
              微信圖片_20201117090516 
                     在運動控制卡開發應用中,運動順序執行是最常見的編程問題之一,關系到設備后續控制動作能否正常運行。
              下面,我們分享研控運動控制卡的編程小技巧!

                      希望對你有所幫助!

              運動順序執行

              編程技巧

              問題描述

                       我們使用上位機編程軟件對控制卡進行點位、插補等多段軌跡運動時,軌跡間需判斷上段軌跡運動停止狀(YK_check_done(CardNo,axis_no)),上段軌跡運動停止則立即啟動下段軌跡運動。

                      如果編程時只是單獨使用While循環,執行后會發現上位機界面被卡死,按鍵不能響應。

                      如以下用例程序,將出現上述問題:

                      研控控制卡MCC800從位置dist_0運動到位置dist_1,程序如下:
               
                      //設定運動速度參數
                      rtn =YK_set_profile(mCardNo,Axis,atof(mMinVel),atof(mMaxVel),atof(mAccTime),atof(mDecTime),atof(mEndVel));
                      //設定S段時間
                      rtn  =YK_set_s_profile(mCardNo,Axis,0,atof(mSmoothTime));                           
                      //啟動第一段運動軌跡
                      rtn= YK_pmove(mCardNo, Axis, dist_0, 0);
                     //判斷當前軸狀態
                     status= YK_check_done(mCardNo, Axis );                        
                     //循環判斷當前軸運動狀態
                     while (status ==0)
                     {
                     // "當前狀態:運動",繼續循環判斷;   
                            status = YK_check_done(mCardNo,Axis );   
                     }
                     //啟動第二段運動軌跡
                     rtn= YK_pmove(mCardNo, Axis, dist_1, 0);
                     //指令執行完成


              原因分析

                     上述程序,在啟動運動位置到dist_0過程中需不斷循環判斷運動是否停止,在條件不滿足即運動沒有停止時程序一直處于循環中,程序將會占用整個軟件的進程時間資源,即進入了死循環,其它進程消息不能及時響應,導致上位機界面卡死。
              因此我們需要軟件在循環判斷運動狀態的同時還需響應其它進程消息。

              3 解決方案

                     軟件多線程可解決上述問題,但多線程較麻煩。可以使用軟件自動函數實現。

                     1   VB編程

                      VB編程軟件中有系統自動線程函數“DoEvents”。
                      //循環判斷當前軸運動狀態
                      while (status ==0)
                     {
                     // "當前狀態:運動",繼續循環判斷;   
                            status = YK_check_done(mCardNo,Axis );  
                     // 使用VB編程中自帶線程函數“DoEvents”
                     DoEvents
                     }

                   2    VC編程

                     VC編程軟件中有類似線程查詢函數“PeekMessage”。
                     //循環定義函數名DoEvents
                     void CMCC800VCTestMotionDlg::DoEvents()
                     {      
                     static MSG msg;
                    if(::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE) )
                     {
                      ::TranslateMessage( &msg );
                      ::DispatchMessage( &msg );
                     }      
                     }

              3    C# 編程

                    C#編程軟件中有系統自動線程函數“DoEvents”。
                    //循環判斷當前軸運動狀態
                    while (status == 0)
                     {
                     // "當前狀態:運動",繼續循環判斷;   
                     status=MCC. YK_check_done(mCardNo, Axis );  
                     // 使用C#編程中自帶線程函數“DoEvents”
                     Application.DoEvents();
                     }

               4    Labview 編程

                     Labview編程軟件中在循環框中添加延時時間。

              微信圖片_20201117090520
               
              標簽: 運動控制
              分享到: 0
              收藏 0
               
              更多>同類方案
              免責申明
              推薦方案
              點擊排行
              最新資訊更多>
              最新供應更多>
              網站首頁  |  聯系方式  |  關于我們  |  問題解析  |  版權隱私  |  使用協議  |  網站地圖  |  排名推廣  |  廣告服務  |  積分換禮  |  網站留言  |  RSS訂閱  |  違規舉報  |  粵ICP備1207862號

              中國智能化網(zgznh®)--引領工業智能化產業發展 共享智能化+優質平臺

              版權所有:深圳市智控網絡有限公司 學術指導:深圳市智能化學會

              粵ICP備12078626號

              深公網安備案證字第 4403101901094 號 | 粵公網安備 44030702001206號

               
              主站蜘蛛池模板: 亚洲AV综合色区无码一区爱AV| 亚洲国产成人久久综合一区77| 日本一道综合色视频| 欧美激情综合色综合啪啪五月| 狠狠色丁香婷婷综合尤物| 激情伊人五月天久久综合| 狠狠色丁香婷综合久久| 亚洲国产成人五月综合网 | 五月丁香综合激情六月久久 | 欧美综合在线观看| 国产综合成人色产三级高清在线精品发布 | 天天久久狠狠色综合| 国产欧美日韩综合精品二区| 亚洲婷婷五月综合狠狠爱| 区二区三区激情综合| 日韩亚洲国产综合高清| 97久久天天综合色天天综合色hd| 国产精品日韩欧美久久综合 | 一本一本久久a久久综合精品蜜桃| 亚洲 欧美 国产 动漫 综合| 台湾佬综合娱乐| 丁香婷婷色五月激情综合深爱| 亚洲激情综合网| 亚洲成A人V欧美综合天堂麻豆| 日韩综合无码一区二区| 91精品国产综合久久久久久| 观看 亚洲欧美日韩综合在线一区| 狠狠色综合网站| 日日狠狠久久偷偷色综合免费| 色综合久久综精品| 久久精品综合一区二区三区| 国产综合色香蕉精品五月婷| 91探花国产综合在线精品| 一本色道久久88综合日韩精品| 青青综合在线| 久久久久久久综合日本亚洲| 欧美精品国产综合久久| 亚洲欧美成人综合久久久 | 久久久久青草线蕉综合超碰| 丁香婷婷色五月激情综合深爱| 国产欧美日韩综合AⅤ天堂 |