在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

介紹NoTime模式下的高精度線程

伺服與運動控制 ? 來源:伺服與運動控制 ? 2023-04-06 10:38 ? 次閱讀

NoTime是基于實時系統構建的.NET控制臺開發框架,用戶可以使用VisualStudio方便快捷地開發基于.NET語言的實時程序模塊,實現最小125微秒的線程調度周期。這樣一來,工程師的工作重心就能轉移到設備運控及邏輯程序本身,無需關心實時性的實現了。

我們先打開軟件自帶的案例,案例的功能主要是實現NoTime和Windows之間線程sleep的精度對比,流程是啟動線程后,函數中是一個while循環,循環里流程是NoTime中先sleep 125μs,因為Windows最小的單位是1ms,所以Windows這邊是sleep 1ms,然后獲取微秒級的時鐘值,再減去上次獲取到的時鐘值,并且將差值做最大值計算,將最大值記錄下來,后面這一段是手動清除最大值。

下面我們啟動案例,看一下結果:可以看到NoTime這邊,sleep 125μs的值基本在125~141之間。但是Windows這邊的sleep 1ms的精度基本上會隨著Windows的調度而隨之變大變小,特別是我們打開一些占用CPU比較高的程序的時候。

介紹了NoTime的高精度線程能夠實現最小125微秒的線程調度周期。那么如何在Windows與NoTime中部署機器控制程序,才能夠在最小改動的情況下,輕松實現性能的提升呢?

以下是我們建議放在NoTime中執行的程序:

1.從業務層來看,NoTime主要適合實現有實時性要求的業務邏輯。對于具有周期重復性、需要快速啟停的動作程序,建議放到NoTime里,保障快速穩定運行,例如短距離高速往返運動。

2.安全控制業務以及異常處理邏輯建議放到NoTime里,這樣就能保證即便Windows藍屏后,程序仍然可以正常運行,避免出現設備失控等情況。

3.全局報警信號監控是適合放在NoTime里的,因為NoTime中刷新頻率更高,一能更快地捕捉IO觸發,二是比較穩定不會受到電腦環境干擾。

4.如果在一段運動中需要IO觸發后馬上就切換運動指令,而且從IO觸發到執行運動指令的時間要求較短,可以將其單獨放在NoTime中,避免因Windows波動而導致運動指令切換延后,引起軸實際已經過沖。

5.若有與外設實時通信的需求,可以基于我們的實時通信庫實現,支持在NoTime下基于串口及網口與外設通信。

6.對通訊及對運動速度 需求不高的程序可以仍然放在Windows端不用改動,這樣就可以在保留現有完整功能的同時,完成遷移工作,減少單次工作量。

因NoTime提供的是一個開發平臺,具體業務劃分是不受限制的,可以將很小的一個功能函數在NoTime實現,也可以將一個較大的業務模塊在NoTime實現。所以對于現有軟件要將部分功能遷移到NoTime下來說,軟件本身改動不大,Windows下的原有功能也可以保留。

那么如何快速的部署NoTime,讓原有程序以最小的改動實現性能提升,以及如何使用NoTime的基本程序結構呢?

大家好,我是ProU軟件工程師傅超,我們提供了一個NoTime中的基本程序結構,大致分為運動流程,流程管理,通訊及數據四個部分:

b65db378-d3d4-11ed-bfe3-dac502259ad0.jpg

1. 運動流程

首先看到的是我們NoTime程序的入口,在這我們先打開了和ProR的通訊通道,這個是必須要有的,而后是建立共享內存,這個內容我們后面會仔細講解,Maintask也就是我們主流程,我們轉到定義來仔細看一下。

在這我們初始化了三個數據結構體,調用了子流程1,子流程2的功能函數,目前這兩個函數里的內容是一樣的,可以看到只是簡單的將一些數據置為0,下面的子流程3我們用了流程管理的結構,這個“add”就是添加了子流程3里的函數,子流程的函數我們就寫具體的運動流程代碼或者某功能的實現代碼。

2.流程管理

我們轉到定義來看下流程管理的結構,這個管理結構在NoTime和Windows下都是通用的,我們把需要執行的子流程的函數做了一個統一管理,可以先看一下注冊的動作,我們做了一個簡單的封裝,可以更加便捷的去添加子流程里的動作。原理就是我們把要執行的函數都先添加到一張列表里,流程啟動和停止通過變量去控制整張列表里函數的運行,值得一提的是,列表里函數在運行完后都會有一個反饋狀態,有反饋狀態我們就可以更好的控制流程的運轉,目前是有錯誤,完成,執行中三種,這個可以后面再自定義補充。

3.通訊

接下來我們看下通訊,在這我們展示的是NoTime和Windows的交互方式,相關功能函數都是放在一個獨立的文件里,便于更加快捷的定位和操作。本次案例里采用的是共享內存,回顧一下NoTime程序的入口函數,在這是創建了共享內存,然后在windows下打開共享內存,從而實現NoTime與Windows的交互,若有與外設基于串口或網口通訊需求的也可以放在這一塊。

4.數據

我們分成了PublicData和GlobalData兩種數據結構體,PublicData里面建立的數據是針對于主流程的以及基本需要的,比如退出指令和循環次數,而GlobalData里面則是針對于子流程的,現在這里面放的就是子流程的一些狀態。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10889

    瀏覽量

    212400
  • .NET技術
    +關注

    關注

    0

    文章

    3

    瀏覽量

    5795
  • 機器控制
    +關注

    關注

    0

    文章

    11

    瀏覽量

    4302

原文標題:NoTime高精度線程和快速部署

文章出處:【微信號:伺服與運動控制,微信公眾號:伺服與運動控制】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請問ADS7142的高精度模式(16bit)的實際精度是多少?

    請問ADS7142的高精度模式(16bit)的實際精度是多少,因為手冊上說16bit的數據是通過累計16個12bit得到的。
    發表于 11-25 06:24

    ads1278高速模式高精度模式所能得到的最高精度是多少?

    差分電路是正確的嗎,好像和ths4521的datasheet里面的單端轉差分原理圖(如下圖)不一致吧。 另外,想請教一ads1278高速模式高精度模式
    發表于 01-16 07:41

    高精度相位差計的設計

    高精度相位差計的設計本文介紹高精度相位差計由單片機控制模塊、放大整形模塊部分、數碼顯示模塊、分頻模塊、簡單的數字邏輯控制門等組成。采用了鎖相倍頻技術,實現了相位差測量高精度性達0.1
    發表于 12-14 17:04

    關于NI采集卡的高速率與高精度模式

    ,但為什么可以提高抗干擾能力呢?在我的實際工程中也確實如此,在高噪聲環境,“高精度模式的數據毛刺要明顯小很多,這是為什么呢?
    發表于 01-19 14:38

    高精度GPS模塊介紹資料

    高精度GPS模塊介紹資料HT-AD56適用于工業無人機、自動駕駛、測量測繪等高精度需求行業產品。HT-AD56高精度GNSS模組.pdf (623.48 KB )
    發表于 07-01 04:35

    介紹一種可以高精度的測量電阻的方法

    本文介紹了一種可以高精度的測量電阻的方法。
    發表于 05-10 06:38

    高精度AD采集芯片ADS7809的中文介紹

    高精度AD采集芯片ADS7809的中文介紹 ADS7809是Burr-Brown公司推出的高精度AD采集芯片。它采用5V
    發表于 11-23 10:32 ?9554次閱讀
    <b class='flag-5'>高精度</b>AD采集芯片ADS7809的中文<b class='flag-5'>介紹</b>

    TI 高精度實驗室的課程系列介紹

    1.1 TI 高精度實驗室 - 介紹
    的頭像 發表于 04-29 07:59 ?3657次閱讀
    TI <b class='flag-5'>高精度</b>實驗室的課程系列<b class='flag-5'>介紹</b>

    復雜環境的自動駕駛高精度定位技術

    今天為大家分享,自動駕駛在復雜環境高精度定位技術。
    的頭像 發表于 06-28 13:55 ?5269次閱讀

    YKCAT2如何搭建NoTime基本程序框架

    大家好,通過前面的幾次實驗,相信大家已經看到了YKCAT2在NoTime模式,相較于運動控制卡方案帶來的設備效率和穩定提升。
    的頭像 發表于 11-01 14:29 ?488次閱讀

    泰克高精度電流探頭的按鍵介紹

    泰克高精度電流探頭是一款常用的測試儀器,可以廣泛應用于各種電路的電流測試中。有些用戶可能對其按鍵使用不太熟悉,下面就來介紹泰克高精度電流探頭的按鍵使用方法。 1. 開/關機按鍵 泰
    的頭像 發表于 03-30 14:45 ?1038次閱讀
    泰克<b class='flag-5'>高精度</b>電流探頭的按鍵<b class='flag-5'>介紹</b>

    高精度電壓源如何設計出來的

    高精度電壓源是一種用于提供高精度電壓的電子設備,通常用于測量和控制系統。高精度電壓源的設計是一個復雜的過程,需要考慮多個因素,包括電路設計、元件選型、測量誤差、穩定性等。下面將從電路設計和元件選型兩個方面,詳細
    的頭像 發表于 05-29 17:30 ?800次閱讀
    <b class='flag-5'>高精度</b>電壓源如何設計出來的

    高精度定時器中single-shot計數模式不工作

    高精度定時器中single-shot計數模式不工作
    的頭像 發表于 10-25 18:08 ?592次閱讀
    <b class='flag-5'>高精度</b>定時器中single-shot計數<b class='flag-5'>模式</b>不工作

    磁通門高精度電流傳感器介紹及應用

    磁通門高精度電流傳感器介紹及應用
    發表于 08-11 10:18 ?68次下載

    高精度電壓源的作用、特點及應用介紹

    高精度電壓源是提供穩定、準確、可控電壓輸出的關鍵電子設備。它在科研實驗室、工業生產、通信系統和醫療設備等各個領域都發揮著重要作用。 1、高精度電壓源的作用 提供穩定的電壓輸出:提供穩定的電壓輸出
    的頭像 發表于 09-03 18:11 ?748次閱讀
    主站蜘蛛池模板: 日韩三级视频在线观看| 亚洲理论在线| 美女被免费网站在线视频九色| 天天操天天操| 爱爱的免费视频| 男人天堂网在线播放| 性欧美久久| 我要看黄色一级毛片| 国产精品香蕉在线一区| 男人视频网| 美女丝袜长腿喷水gif动态图| 色网站在线观看| 干一干操一操| 视频h在线观看| 亚色视频在线| 一区二区在线看| 超薄肉色丝袜精品足j福利| 天天拍天天色| www在线视频在线播放| 夜夜夜爽| 免费午夜网站| 老湿影院免费体验区| 国产超爽人人爽人人做| 天堂综合| 亚洲最大成人网色| 午夜看片福利| 拍拍拍无挡视频免费全程1000| 四虎永久在线视频| 亚1州区2区三区4区产品| 色多多免费视频观看区一区| 天堂中文在线www| 欧美一级免费观看| 欧美xxxxbbbb| 高清成人| 免费网站黄色| 亚洲一区小说区中文字幕| 中文字幕亚洲一区二区va在线| 美欧毛片| 日本三级s级在线播放| 全色网站| 一本久草|