chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

伺服與運(yùn)動(dòng)控制 ? 來源:伺服與運(yùn)動(dòng)控制 ? 2023-04-06 10:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

NoTime是基于實(shí)時(shí)系統(tǒng)構(gòu)建的.NET控制臺(tái)開發(fā)框架,用戶可以使用VisualStudio方便快捷地開發(fā)基于.NET語言的實(shí)時(shí)程序模塊,實(shí)現(xiàn)最小125微秒的線程調(diào)度周期。這樣一來,工程師的工作重心就能轉(zhuǎn)移到設(shè)備運(yùn)控及邏輯程序本身,無需關(guān)心實(shí)時(shí)性的實(shí)現(xiàn)了。

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

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

介紹了NoTime的高精度線程能夠?qū)崿F(xiàn)最小125微秒的線程調(diào)度周期。那么如何在Windows與NoTime中部署機(jī)器控制程序,才能夠在最小改動(dòng)的情況下,輕松實(shí)現(xiàn)性能的提升呢?

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

1.從業(yè)務(wù)層來看,NoTime主要適合實(shí)現(xiàn)有實(shí)時(shí)性要求的業(yè)務(wù)邏輯。對(duì)于具有周期重復(fù)性、需要快速啟停的動(dòng)作程序,建議放到NoTime里,保障快速穩(wěn)定運(yùn)行,例如短距離高速往返運(yùn)動(dòng)。

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

3.全局報(bào)警信號(hào)監(jiān)控是適合放在NoTime里的,因?yàn)镹oTime中刷新頻率更高,一能更快地捕捉IO觸發(fā),二是比較穩(wěn)定不會(huì)受到電腦環(huán)境干擾。

4.如果在一段運(yùn)動(dòng)中需要IO觸發(fā)后馬上就切換運(yùn)動(dòng)指令,而且從IO觸發(fā)到執(zhí)行運(yùn)動(dòng)指令的時(shí)間要求較短,可以將其單獨(dú)放在NoTime中,避免因Windows波動(dòng)而導(dǎo)致運(yùn)動(dòng)指令切換延后,引起軸實(shí)際已經(jīng)過沖。

5.若有與外設(shè)實(shí)時(shí)通信的需求,可以基于我們的實(shí)時(shí)通信庫實(shí)現(xiàn),支持在NoTime下基于串口及網(wǎng)口與外設(shè)通信。

6.對(duì)通訊及對(duì)運(yùn)動(dòng)速度 需求不高的程序可以仍然放在Windows端不用改動(dòng),這樣就可以在保留現(xiàn)有完整功能的同時(shí),完成遷移工作,減少單次工作量。

因NoTime提供的是一個(gè)開發(fā)平臺(tái),具體業(yè)務(wù)劃分是不受限制的,可以將很小的一個(gè)功能函數(shù)在NoTime實(shí)現(xiàn),也可以將一個(gè)較大的業(yè)務(wù)模塊在NoTime實(shí)現(xiàn)。所以對(duì)于現(xiàn)有軟件要將部分功能遷移到NoTime下來說,軟件本身改動(dòng)不大,Windows下的原有功能也可以保留。

那么如何快速的部署NoTime,讓原有程序以最小的改動(dòng)實(shí)現(xiàn)性能提升,以及如何使用NoTime的基本程序結(jié)構(gòu)呢?

大家好,我是ProU軟件工程師傅超,我們提供了一個(gè)NoTime中的基本程序結(jié)構(gòu),大致分為運(yùn)動(dòng)流程,流程管理,通訊及數(shù)據(jù)四個(gè)部分:

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

1. 運(yùn)動(dòng)流程

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

在這我們初始化了三個(gè)數(shù)據(jù)結(jié)構(gòu)體,調(diào)用了子流程1,子流程2的功能函數(shù),目前這兩個(gè)函數(shù)里的內(nèi)容是一樣的,可以看到只是簡(jiǎn)單的將一些數(shù)據(jù)置為0,下面的子流程3我們用了流程管理的結(jié)構(gòu),這個(gè)“add”就是添加了子流程3里的函數(shù),子流程的函數(shù)我們就寫具體的運(yùn)動(dòng)流程代碼或者某功能的實(shí)現(xiàn)代碼。

2.流程管理

我們轉(zhuǎn)到定義來看下流程管理的結(jié)構(gòu),這個(gè)管理結(jié)構(gòu)在NoTime和Windows下都是通用的,我們把需要執(zhí)行的子流程的函數(shù)做了一個(gè)統(tǒng)一管理,可以先看一下注冊(cè)的動(dòng)作,我們做了一個(gè)簡(jiǎn)單的封裝,可以更加便捷的去添加子流程里的動(dòng)作。原理就是我們把要執(zhí)行的函數(shù)都先添加到一張列表里,流程啟動(dòng)和停止通過變量去控制整張列表里函數(shù)的運(yùn)行,值得一提的是,列表里函數(shù)在運(yùn)行完后都會(huì)有一個(gè)反饋狀態(tài),有反饋狀態(tài)我們就可以更好的控制流程的運(yùn)轉(zhuǎn),目前是有錯(cuò)誤,完成,執(zhí)行中三種,這個(gè)可以后面再自定義補(bǔ)充。

3.通訊

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

4.數(shù)據(jù)

我們分成了PublicData和GlobalData兩種數(shù)據(jù)結(jié)構(gòu)體,PublicData里面建立的數(shù)據(jù)是針對(duì)于主流程的以及基本需要的,比如退出指令和循環(huán)次數(shù),而GlobalData里面則是針對(duì)于子流程的,現(xiàn)在這里面放的就是子流程的一些狀態(tài)。






審核編輯:劉清

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

    關(guān)注

    68

    文章

    11076

    瀏覽量

    216998
  • .NET技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    5795
  • 機(jī)器控制
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    4368

原文標(biāo)題:NoTime高精度線程和快速部署

文章出處:【微信號(hào):伺服與運(yùn)動(dòng)控制,微信公眾號(hào):伺服與運(yùn)動(dòng)控制】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    請(qǐng)問ADS7142的高精度模式(16bit)的實(shí)際精度是多少?

    請(qǐng)問ADS7142的高精度模式(16bit)的實(shí)際精度是多少,因?yàn)槭謨?cè)上說16bit的數(shù)據(jù)是通過累計(jì)16個(gè)12bit得到的。
    發(fā)表于 11-25 06:24

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

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

    高精度相位差計(jì)的設(shè)計(jì)

    高精度相位差計(jì)的設(shè)計(jì)本文介紹高精度相位差計(jì)由單片機(jī)控制模塊、放大整形模塊部分、數(shù)碼顯示模塊、分頻模塊、簡(jiǎn)單的數(shù)字邏輯控制門等組成。采用了鎖相倍頻技術(shù),實(shí)現(xiàn)了相位差測(cè)量高精度性達(dá)0.1
    發(fā)表于 12-14 17:04

    關(guān)于NI采集卡的高速率與高精度模式

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

    高精度GPS模塊介紹資料

    高精度GPS模塊介紹資料HT-AD56適用于工業(yè)無人機(jī)、自動(dòng)駕駛、測(cè)量測(cè)繪等高精度需求行業(yè)產(chǎn)品。HT-AD56高精度GNSS模組.pdf (623.48 KB )
    發(fā)表于 07-01 04:35

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

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

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

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

    TI 高精度實(shí)驗(yàn)室的課程系列介紹

    1.1 TI 高精度實(shí)驗(yàn)室 - 介紹
    的頭像 發(fā)表于 04-29 07:59 ?4003次閱讀
    TI <b class='flag-5'>高精度</b>實(shí)驗(yàn)室的課程系列<b class='flag-5'>介紹</b>

    復(fù)雜環(huán)境的自動(dòng)駕駛高精度定位技術(shù)

    今天為大家分享,自動(dòng)駕駛在復(fù)雜環(huán)境高精度定位技術(shù)。
    的頭像 發(fā)表于 06-28 13:55 ?5664次閱讀

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

    大家好,通過前面的幾次實(shí)驗(yàn),相信大家已經(jīng)看到了YKCAT2在NoTime模式,相較于運(yùn)動(dòng)控制卡方案帶來的設(shè)備效率和穩(wěn)定提升。
    的頭像 發(fā)表于 11-01 14:29 ?654次閱讀

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

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

    高精度電壓源如何設(shè)計(jì)出來的

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

    高精度定時(shí)器中single-shot計(jì)數(shù)模式不工作

    高精度定時(shí)器中single-shot計(jì)數(shù)模式不工作
    的頭像 發(fā)表于 10-25 18:08 ?893次閱讀
    <b class='flag-5'>高精度</b>定時(shí)器中single-shot計(jì)數(shù)<b class='flag-5'>模式</b>不工作

    磁通門高精度電流傳感器介紹及應(yīng)用

    磁通門高精度電流傳感器介紹及應(yīng)用
    發(fā)表于 08-11 10:18 ?70次下載

    高精度電壓源的作用、特點(diǎn)及應(yīng)用介紹

    高精度電壓源是提供穩(wěn)定、準(zhǔn)確、可控電壓輸出的關(guān)鍵電子設(shè)備。它在科研實(shí)驗(yàn)室、工業(yè)生產(chǎn)、通信系統(tǒng)和醫(yī)療設(shè)備等各個(gè)領(lǐng)域都發(fā)揮著重要作用。 1、高精度電壓源的作用 提供穩(wěn)定的電壓輸出:提供穩(wěn)定的電壓輸出
    的頭像 發(fā)表于 09-03 18:11 ?1163次閱讀