<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 | 機柜箱體殼體 | 低壓電器 | 機器視覺
        DMC1000控制卡不能響應系統消息
        深圳市雷賽智能控制股份有限公司
        收藏本文     查看收藏

          一、問題現象及分析

          問題經常通過以下編程表現出來:

          //X發出脈沖后,等待脈沖發完后再做其它事情

          d1000_start_t_move( 0, 6400, 3200, 6400, 0.1 );

          while( d1000_check_done(0) == 0 );

          老版本的庫函數如下:

          d1000_start_tr_move( 0, 6400, 3200, 6400, 0.1 );

          while( d1000_check_done(0) == 0 );

          或者:

          d1000_wait_done( 0 );

          此函數內部實際上包含類似于while( d1000_check_done(0) == 0 );的語句

          以上可以看出,在檢測脈沖是否發完時,此段代碼的執行完全獨占了CPU分配給當前進程的所有時間,

          因而也排擠了其它消息的響應,當然也就不能響應定時器讀取位置,或其它停止操作等.

          二、解決方法

          解決此問題關鍵是讓while循環時能檢測系統消息,以下分別介紹在VB,VC,CB下的解決措施:

          注:以下編程全以DMC1000最新的驅動庫函為參考

          1.VB編程

          d1000_start_t_move 0, 6400, 3200, 6400, 0.1

          DO

          DoEvents

          LOOP WHILE (d1000_check_done(0) = 0)

          2.VC編程

          在VC下編程關鍵是要解決類似于VB的DoEvnets函數

          void DoEvents()

          {

          static MSG msg;

          if( ::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE) ){

          ::TranslateMessage( &msg );

          ::DispatchMessage( &msg );

          }

          }

          然后編程如下:

          d1000_start_t_move( 0, 6400, 3200, 6400, 0.1 );

          while( d1000_check_done(0) == 0 )

          ::DoEvents();

          3.CB編程

          同樣也需要完成一個DoEvents函數的定義:

          void DoEvents()

          {

          Application->ProcessMessages();//VCL給程序帶來極大簡化

          }

          編程如下:

          d1000_start_t_move( 0, 6400, 3200, 6400, 0.1 );

          while( d1000_check_done(0) == 0 )

          ::DoEvents();

          三、技巧提升

          有了自產的DoEvents函數,是否就可以一切OK了呢。試想一個問題,實際加工時,

          通常會有大量的小線段(即短脈沖距離)出現,若頻繁的調用DoEvents勢必帶來新的麻煩,因為加工

          需要連續的進行,設備的運動之間停頓時間過長,會形成設備的多次啟停,進而易產生振動,造成

          設備的加速磨損,并且速度也快不起來。因此添加一小小技巧(實用又省錢),判斷脈沖距離是否過小

          若過小則不執行DoEvents函數,過小量可以根據自己的需求也定義一個參考量。當然程序的執行順序也

          可以優化一下,以上面程序為例:

          if( d1000_check_done(0) != 0 ) return;

          d1000_start_t_move( 0, 6400, 3200, 6400, 0.1);

          咋一看沒有什么特別的,但是請看下加工程序的部分簡化代碼,也許會有新的啟示:

          for( int i(0); i

          {

          if( d1000_check_done(0) == 0 )

          {

          if( Len > 2.0 )DoEvents();

          //小于2單位(可以指為毫米,或其它單位)則不執行DoEvents函數

          continue;

          }

          Len = dist[i].Len;

          d1000_start_t_move( 0, dist[i], speed );

          i ++;

          }

          當然,世界上做事情的方法多的是,有高手則愿意動用復雜的多任務編程方法來完成操作,

          最后經過努力,事情也可以解決,若有興趣,可參見另一篇《控制卡的多任務編程》,然后自行做

          編程測試。不過本人的理論是,解決事情的方法越簡單越好,據本人了解,大師之所以為大師,通常

          不是把問題搞得高深莫測,而是通俗易懂。

          四、其它應用

          此方法對所有DMC系列的控制卡的編程都可以運用,還可用在自定義的Arc(圓弧運動)函數

          上,參見下面偽代碼(Arc的直線擬合算法參見DMC2000的ARC算法):

          for( int i(0); i

          {

          while( IsRunning(X) || IsRunning(Y) )

          {

          if( i%16 == 0 ) DoEvents();//每16再運行一次

          }

          start_line2( newx, newy );

          }


         

        狀 態: 離線

        公司簡介
        產品目錄

        公司名稱: 深圳市雷賽智能控制股份有限公司
        聯 系 人: 梁邦敏
        電  話: 755-26401178
        傳  真:
        地  址: 深圳市南山區登良路天安南油工業區2棟3樓
        郵  編: 518000
        主  頁:
         
        該廠商相關技術文摘:
        CNC解釋庫調用接口詳述
        DMC2000脈沖速度初始化故障
        DMC2000運動控制卡常見軟件問題的解決方案
        DMC2200驅動程序特殊安裝方法
        DMC3000控制卡,與CNC之G代碼的邦定關系
        DMC3000控制卡的多任務編程
        多類型運動控制卡編程方法探討
        多線程與控制卡編程
        發現步進電機定位不準怎么辦
        過程控制編程之簡要探討
        控制卡應用編程技巧幾招(2)
        更多文摘...
        立即發送詢問信息在線聯系該技術文摘廠商:
        用戶名: 密碼: 免費注冊為中華工控網會員
        請留下您的有效聯系方式,以方便我們及時與您聯絡

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

        主站蜘蛛池模板: 亚洲综合一区二区三区在线| 色欲国产一区二区日韩欧美| 国产精品国产精品无卡区| 五月婷婷激情视频俺也去淫| 综合国产av一区二区三区| 日韩乱码人妻无码中文字幕视频| 色综合天天综合天天综| 国产精品中文第一字幕| 亚洲av综合a色av中文| 97欧美精品系列一区二区| 国产一卡2卡三卡4卡免费网站| 日韩欧国产美一区二区在线| 色噜噜狠狠色综合成人网| 69精品丰满人妻无码视频a片| 国产成人无码免费视频在线| 青青草视频网站免费观看| 亚洲狠狠狠一区二区三区| 免费特黄夫妻生活片| 中文字幕乱码十国产乱码| 国产福利姬喷水福利在线观看| 日本夜爽爽一区二区三区| 日本高清中文字幕一区二区三区| 久久se精品一区精品二区国产| 国产成人AV在线免播放观看新 | 国产一区二区三区在线观看免费 | 亚洲av无码之国产精品网址蜜芽| 亚洲AV无码成人精品区一本二本| 国产一区二区三区不卡观| 久久99亚洲精品久久久久| 久久精品亚洲精品国产色婷 | 丝袜国产一区av在线观看| 国产好大好硬好爽免费不卡 | 国产欧美综合在线观看第十页| 人妻丰满熟妞av无码区| 亚洲精品人妻中文字幕| 体验区试看120秒啪啪免费| 国产av一区二区午夜福利| 99视频30精品视频在线观看| 国产男生午夜福利免费网站| 日韩精品亚洲专在线电影| 欧美国产日韩一区二区三区精品影视 |