中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

產(chǎn)品分類

當(dāng)前位置: 首頁 > 工業(yè)電子產(chǎn)品 > 半導(dǎo)體產(chǎn)品 > 微控制器MCU

類型分類:
科普知識(shí)
數(shù)據(jù)分類:
微控制器MCU

關(guān)于正運(yùn)動(dòng)控制器嵌入式實(shí)時(shí)系統(tǒng)的優(yōu)勢(shì)和常見問題

發(fā)布日期:2022-04-22 點(diǎn)擊率:90

  • 關(guān)鍵詞:                                                                正運(yùn)動(dòng)控制器                                                                嵌入式

  • 摘要:本文檔介紹如下內(nèi)容: 一、嵌入式實(shí)時(shí)系統(tǒng)架構(gòu)簡介和優(yōu)勢(shì) 二、Basic程序簡單介紹 三、和PC程序的互動(dòng)方式 四、Basic程序的掃描頻率和如何實(shí)現(xiàn)恒定頻率掃描


嵌入式實(shí)時(shí)系統(tǒng)架構(gòu)簡介和優(yōu)勢(shì)

正運(yùn)動(dòng)的ZMC系列控制器全部是獨(dú)立式控制器,可以脫離上位機(jī)像PLC一樣獨(dú)立工作的。自帶嵌入式實(shí)時(shí)系統(tǒng),可以像PLC一樣實(shí)現(xiàn)高速的邏輯響應(yīng)和IO響應(yīng),這樣的架構(gòu)是進(jìn)口運(yùn)動(dòng)控制器的標(biāo)準(zhǔn)架構(gòu)。

進(jìn)口控制器這么設(shè)計(jì)是因?yàn)檫@樣的架構(gòu)有多種好處:

1)任務(wù)調(diào)度更簡單,實(shí)時(shí)性更好

Windows是屬于GPOS(General Purpose OS),考慮多種用戶需求,調(diào)度策略(dispatch algorithm)非常復(fù)雜,既要考慮前臺(tái)響應(yīng)速度又要顧及后臺(tái)響應(yīng)能力,既要考慮復(fù)雜任務(wù)的計(jì)算效率,又要考慮簡單任務(wù)的響應(yīng)速度,所以盡管Windows非常強(qiáng)大,可以運(yùn)行復(fù)雜的算法,可以運(yùn)行復(fù)雜的語言和函數(shù),但很多時(shí)候不適合用來處理需要實(shí)時(shí)響應(yīng)的任務(wù)(打開任務(wù)管理器,看看Windows上有多少進(jìn)程、多少線程,就可以想象Windows調(diào)度有多么復(fù)雜了)。所以在高實(shí)時(shí)性場(chǎng)合一般會(huì)使用實(shí)時(shí)系統(tǒng)(RTOS),而不用GPOS。(IOS和Android都屬于RTOS,并且嚴(yán)格限制后臺(tái)進(jìn)程,來保證和用戶交互的響應(yīng)速度。Windows CE也屬于RTOS)。

正運(yùn)動(dòng)控制器通過使用更簡單的調(diào)度策略(分時(shí)調(diào)度,犧牲一些計(jì)算效率),使用精簡指令(不使用復(fù)雜的帶類的面向?qū)ο蟮恼Z言),實(shí)時(shí)性能就比Windows好很多,而且很容易實(shí)現(xiàn)多任務(wù)(Task)并行處理,所以,在需要實(shí)時(shí)響應(yīng)的場(chǎng)合就不再需要運(yùn)動(dòng)控制器+PLC的組合方式,一個(gè)控制器搞定全部,沒有數(shù)據(jù)通訊的麻煩,簡單高效。

2)減輕PC計(jì)算壓力,在消耗大量計(jì)算資源的應(yīng)用例如缺陷檢測(cè)中優(yōu)勢(shì)更明顯。

把邏輯控制和運(yùn)動(dòng)控制全部使用Basic語言下載入控制器內(nèi),視覺處理留在PC,最大化減輕PC計(jì)算壓力。

3)開發(fā)調(diào)試更簡便。

Basic指令更簡潔、更清晰,開發(fā)速度更快。

即使不使用Basic寫程序,在PC上寫程序,通過Zdevelop開發(fā)調(diào)試工具也可以通過“軸參數(shù)”或者“在線命令”方便的查看當(dāng)前各個(gè)參數(shù)狀態(tài);可以通過“在線命令”實(shí)時(shí)修改參數(shù);可以通過“示波器”查看速度曲線.......

(關(guān)于Zdevelop的詳細(xì)內(nèi)容可以參考光盤資料中的入門文檔或者教學(xué)視頻。)

Basic程序簡單介紹

正運(yùn)動(dòng)控制器內(nèi)部運(yùn)行的程序主要是Basic程序,語法和VB一致,但比VB更簡單,對(duì)于軟件工程師來說非常友好。并且為了讓客戶使用更簡單,不需要定義數(shù)據(jù)類型,任意賦值自動(dòng)判斷。甚至文件內(nèi)變量和局部變量都不需要定義(只有全局變量需要),編譯器自動(dòng)判斷,最終的結(jié)果是,非常容易上手,開發(fā)更快,不容易出錯(cuò)。

Zdevelop開發(fā)工具可以進(jìn)入調(diào)試模式,單步運(yùn)行,觀察任務(wù)狀態(tài)、全局變量和局部變量。程序中可以方便的插入Print(等同于?操作符)指令把字符串或者變量輸出到終端方便Debug(相當(dāng)于C語言中的printf)。

正運(yùn)動(dòng)控制器支持多任務(wù)(多線程),但創(chuàng)建多線程要比Windows程序簡單的多,可以非常方便的實(shí)現(xiàn)多任務(wù)并行運(yùn)行。

可以通過ticks或者timer等方式實(shí)現(xiàn)恒定頻率掃描程序。

(更多詳細(xì)內(nèi)容請(qǐng)參考ZBasic幫助手冊(cè)。)

這樣的架構(gòu),使正運(yùn)動(dòng)控制器不僅支持像其他國產(chǎn)控制器一樣完全在PC上調(diào)用函數(shù)來控制,也支持完全把運(yùn)動(dòng)控制和邏輯控制用Basic寫在控制器里,也支持部分程序?qū)懺诳刂破骼铮糠殖绦驅(qū)懺赑C上,充分發(fā)揮各自的優(yōu)勢(shì),非常消耗CPU計(jì)算能力的復(fù)雜算法放在PC上,簡單的對(duì)響應(yīng)速度要求很高的放在控制器上,兩者可以通過全局變量、Table、VR變量等方式來交換數(shù)據(jù),Basic程序也可以向PC程序主動(dòng)上報(bào)信息(PC程序中需要部署回調(diào)函數(shù),不熟悉GC回收的話不建議這樣使用)。

和PC程序的互動(dòng)方式

下面就是因?yàn)槭褂眠@種獨(dú)特架構(gòu)帶來的其他國產(chǎn)控制器廠商所沒有的交互方式和獨(dú)有的函數(shù):

控制器上的Basic程序可以通過指定一個(gè)自動(dòng)運(yùn)行號(hào),讓這個(gè)任務(wù)上電自動(dòng)運(yùn)行,并且適當(dāng)?shù)臅r(shí)候調(diào)用其它任務(wù)(調(diào)用其他程序文件或者sub子程序)。也可以在合適的時(shí)機(jī)由PC程序發(fā)送Basic字符串指令來運(yùn)行某個(gè)任務(wù),例如控制器上有一個(gè)文件叫“BasicInit.bas ”,那么可以調(diào)用ZAux_Execute函數(shù)發(fā)送字符串(run “BasicInit ”)來運(yùn)行起來這個(gè)文件,讓它以一個(gè)任務(wù)(線程)的方式運(yùn)行起來。

Table是控制器上的超大一維數(shù)組,VR也是一維數(shù)組,但VR變量是掉電保存的,是存在電池備份內(nèi)存上的,訪問速度又快,用不用擔(dān)心掉電丟失。具體的介紹可以參考ZBasic幫助文檔的第一章。

一方面不論控制器上Basic還是PC上的函數(shù)(如ZAux_Direct_SetTable)都可以共同訪問修改Table和VR變量,把table等作為控制器和PC共享buffer,實(shí)現(xiàn)大量數(shù)據(jù)異步交換,實(shí)現(xiàn)最大計(jì)算效率。另一方面PC還同時(shí)可以訪問用戶在Basic中定義的全局變量(例如global UsrVar),例如使用ZAux_Direct_GetVariableInt,但如果想要修改自定義全局變量的話就需要調(diào)用函數(shù)ZAux_DirectCommand發(fā)送(”UsrVar= 0 ”)這樣的字符串。

Basic程序運(yùn)行完畢后,如果想要主動(dòng)通知PC程序,而不是等待PC查詢,可以在PC程序中部署回調(diào)函數(shù),PC不再需要輪詢查詢(如果不熟悉GC回收,不建議使用回調(diào)函數(shù))。

目前PC上的函數(shù)已經(jīng)很豐富了,但如果還是想要訪問控制器Basic支持的,而PC函數(shù)暫時(shí)不支持的軸參數(shù)(例如AXIS_STOPREASON)可以ZAux_Direct_SetParam和ZAux_Direct_GetParam來訪問。

如果想要一次讀取或者設(shè)置大量的IO變量、大量的位置狀態(tài),可以使用輸入輸出函數(shù)中帶modbus前綴的函數(shù),如GetModbusIn,這樣命名是因?yàn)樵诳刂破鲀?nèi)部有些modbus寄存器映射到這些地址上了(GetModbusIn只反應(yīng)IO的真實(shí)狀態(tài),反轉(zhuǎn)指令無效。如果需要反轉(zhuǎn)之后的狀態(tài),需要使用ZAux_Direct_GetInMulti)。

備注1, 具體某個(gè)型號(hào)的控制器有多少Table和VR變量,支持多少任務(wù)(Task),都可以使用ZDevelop在“在線命令”中輸入?*max來查看。)

備注2, PC函數(shù)中DirectCommand和Execute的用法一致,都是通過PC發(fā)送一個(gè)控制器支持的Basic字符串指令,但DirectCommand運(yùn)行速度更快,盡量使用DirectCommand,經(jīng)測(cè)試,DirectCommand大多沒有返回字符串,所以參數(shù)中的最后一個(gè)返回的字符串長度可以設(shè)置為0,Execute發(fā)送的指令出錯(cuò)后,第三個(gè)參數(shù)可以返回錯(cuò)誤信息,想要顯示的話可以用System.Text.Encoding.ASCII.GetString把byte數(shù)組轉(zhuǎn)化為字符串(可以參考C#例程“例程8-功能測(cè)試”)。DirectCommand和Execute函數(shù)本身返回?cái)?shù)值,正常運(yùn)行則為0,不正常則返回非零值,所以在多數(shù)場(chǎng)合可能只要判斷返回值就可以了,不需要去查看返回字符串。


Basic程序的掃描頻率和如何實(shí)現(xiàn)恒定頻率掃描

用過PLC的客戶往往對(duì)正運(yùn)動(dòng)控制器嵌入式系統(tǒng)的掃描頻率有疑問,正運(yùn)動(dòng)控制器和PLC不一樣的地方是沒有標(biāo)準(zhǔn)的任務(wù)可供客戶使用來實(shí)現(xiàn)恒定頻率掃描,但可以自己寫程序使用多種方式讓控制器內(nèi)的Basic任務(wù)實(shí)現(xiàn)恒定頻率掃描。

正運(yùn)動(dòng)控制器自帶的嵌入式實(shí)時(shí)系統(tǒng)運(yùn)行方式和Windows程序比較相似的是如果沒有人為約束,沒有恒定的掃描頻率,CPU有空閑就去運(yùn)行用戶程序,最大化利用CPU資源,所以除去固件運(yùn)行所占用的時(shí)間和EtherCAT主站計(jì)算所占用的時(shí)間,剩下的全是用戶程序的運(yùn)行時(shí)間。用戶的程序越短,掃描頻率越高。所以,雖然系統(tǒng)的中斷周期一般為1ms或者0.5ms,但如果程序足夠短,它在一個(gè)中斷周期內(nèi)會(huì)運(yùn)行很多次(具體數(shù)量取決于客戶程序),可能超過大多數(shù)客戶的需求(不同系列控制器CPU速度不一樣)。

當(dāng)一個(gè)任務(wù)需要很高的實(shí)時(shí)性時(shí),推薦把這部分任務(wù)單獨(dú)放入一個(gè)Task內(nèi),代碼行數(shù)盡量短,那么它的掃描頻率就非常高。對(duì)實(shí)時(shí)性要求不高的就和其它一起合并放入一個(gè)大的任務(wù)(Task)。

如何計(jì)算當(dāng)前任務(wù)的掃描時(shí)間?

使用Ticks,賦予Ticks一個(gè)初始化值,每過1ms系統(tǒng)就會(huì)減一,可以用于計(jì)算掃描時(shí)間,例如:

(注意,ticks是屬于單個(gè)任務(wù)的變量,不是全局變量)

如何以恒定頻率掃描程序?

1)使用Ticks:

2)使用硬件時(shí)鐘Timer:

需要注意的是所有硬件時(shí)鐘中斷任務(wù)的處理任務(wù)(Task)只有1個(gè),所以如果使用了多個(gè)硬件時(shí)鐘中斷,并且執(zhí)行時(shí)間比較長,推薦把相關(guān)代碼放入另外一個(gè)程序文件里,run這個(gè)程序文件,不要讓中斷程序獨(dú)占當(dāng)前task。

備注:

1)關(guān)于程序(Program)和任務(wù)(Task),任務(wù)和PC上的線程比較相似,并行運(yùn)行,可以共享全局變量。一個(gè)程序文件(Program)可以被run起來多個(gè)Task(多個(gè)instance),所以在上面的示例注釋中寫著要小心不要run起來多個(gè)Task,把Timer_Start放入中斷程序結(jié)尾。(可以在調(diào)試模式下觀察現(xiàn)在有幾個(gè)task在運(yùn)行)

2)因?yàn)榭刂破魇褂昧藢?shí)時(shí)系統(tǒng),所以要使用循環(huán)掃描,可以很安全的使用while 1,這個(gè)Task的時(shí)間片用完后就會(huì)切換任務(wù),不用擔(dān)心控制器資源都被鎖死在當(dāng)前任務(wù)。




下一篇: PLC、DCS、FCS三大控

上一篇: MATLAB和Simulink在航

推薦產(chǎn)品

更多
中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

      亚洲国产精品一区二区www| 精品9999| 国产亚洲毛片| 极品少妇一区二区| 亚洲国产精品传媒在线观看 | 国产精品永久免费在线| 国产一区二区日韩精品欧美精品| 在线免费观看一区二区三区| 日韩一级片网址| 性久久久久久| 欧美国产精品| 国产午夜精品一区二区三区视频| 亚洲成人在线网站| 亚洲永久免费| 麻豆久久久9性大片| 欧美日韩国产页| 激情成人亚洲| 亚洲视频在线观看网站| 蜜桃av综合| 国产日韩欧美三级| 亚洲免费观看高清完整版在线观看| 亚洲免费在线视频一区 二区| 乱码第一页成人| 国产精品美女黄网| 亚洲精品美女久久久久| 久久激情一区| 欧美新色视频| 亚洲精品一区二区在线观看| 久久精品国产免费看久久精品| 欧美日韩三级视频| 亚洲黄色在线视频| 久久精品一区蜜桃臀影院| 欧美三级韩国三级日本三斤| 在线成人激情黄色| 久久精品国产亚洲a| 国产精品久久网| 一本久久综合亚洲鲁鲁五月天| 老牛嫩草一区二区三区日本 | 久久久久久久97| 国产精品日韩欧美一区| av成人免费观看| 欧美成人一区二区三区在线观看 | 亚洲美女一区| 欧美国产日韩在线| 亚洲福利视频一区| 久久久久久综合| 国内成+人亚洲| 欧美尤物一区| 国产一区香蕉久久| 欧美专区中文字幕| 国产日韩专区| 欧美影院午夜播放| 国产日本欧美一区二区三区在线| 亚洲午夜精品17c| 国产精品久久久久久av福利软件| 夜夜嗨av一区二区三区网页| 欧美色123| 在线视频日韩| 国产精品国产成人国产三级| 亚洲在线播放| 国产欧美一区二区三区国产幕精品| 中文日韩在线视频| 国产精品萝li| 欧美在线免费视频| 国内精品久久久久久久影视蜜臀 | 国产日韩欧美一区二区三区四区 | 亚洲国产日本| 欧美大片在线看免费观看| 亚洲激情专区| 欧美人与性动交cc0o| 中日韩高清电影网| 国产欧美另类| 久久男人资源视频| 亚洲人成在线观看一区二区| 欧美偷拍一区二区| 久久国产精品毛片| 亚洲人成网站在线观看播放| 欧美日韩国产影片| 欧美一区二区播放| 亚洲福利在线看| 国产精品yjizz| 久久嫩草精品久久久精品一| 亚洲人体影院| 国产日韩欧美在线| 欧美成年人在线观看| 亚洲天堂免费在线观看视频| 国产亚洲a∨片在线观看| 欧美不卡激情三级在线观看| 亚洲视频www| 在线观看三级视频欧美| 国产精品久久久久久久久久妞妞 | 久久国产欧美| 亚洲精品免费一区二区三区| 国产精品美女主播| 欧美大成色www永久网站婷| 亚洲一区二区在线免费观看视频| 在线电影院国产精品| 欧美午夜精品伦理| 免费一区二区三区| 亚洲欧美日韩专区| 亚洲精品乱码久久久久久久久| 国产视频欧美视频| 欧美视频久久| 欧美成人免费小视频| 亚洲日韩欧美视频一区| 国产精品久久777777毛茸茸| 欧美电影打屁股sp| 久久精品国产亚洲一区二区| 亚洲午夜精品久久久久久app| 亚洲第一黄色| 国产亚洲一区二区精品| 欧美视频一区在线| 欧美激情成人在线| 美女福利精品视频| 欧美在线亚洲| 亚洲欧美一区二区激情| 日韩视频不卡| 亚洲美女中出| 亚洲美女在线视频| 91久久精品日日躁夜夜躁国产| 国产综合色产在线精品| 国产精品视频成人| 国产精品日韩| 国产精品欧美日韩一区二区| 欧美性色aⅴ视频一区日韩精品| 欧美精品免费看| 欧美成人中文字幕在线| 久久亚洲国产成人| 久久午夜羞羞影院免费观看| 久久精品亚洲乱码伦伦中文| 欧美在线一级视频| 久久久久久久久久码影片| 欧美一区二视频| 久久精品国产亚洲5555| 久久久成人网| 巨乳诱惑日韩免费av| 狂野欧美性猛交xxxx巴西| 玖玖国产精品视频| 欧美成人国产一区二区| 欧美激情国产日韩精品一区18| 欧美精品久久久久久久| 欧美日韩视频在线| 国产精品久久久久秋霞鲁丝| 国产日韩欧美在线| 狠狠爱综合网| 91久久午夜| 一区二区精品| 欧美亚洲综合久久| 久久九九全国免费精品观看| 欧美11—12娇小xxxx| 欧美日韩国产一级| 国产精品国产三级国产aⅴ浪潮| 国产精品夜夜嗨| 一区二区三区在线观看视频| 最近看过的日韩成人| 亚洲影院高清在线| 久久精品视频在线看| 欧美精品一区二区三区蜜桃| 国产精品乱子久久久久| 国产在线拍偷自揄拍精品| 怡红院精品视频| 999亚洲国产精| 欧美亚洲三区| 欧美高清日韩| 国产欧美激情| 亚洲精品日韩激情在线电影| 午夜在线视频观看日韩17c| 欧美99在线视频观看| 国产精品xvideos88| 永久久久久久| 亚洲永久免费av| 欧美大尺度在线观看| 国产精品制服诱惑| 亚洲韩日在线| 久久久久免费视频| 国产精品久久波多野结衣| 亚洲第一黄网| 羞羞视频在线观看欧美| 欧美高清不卡| 一区在线视频| 欧美在线视频观看免费网站| 欧美护士18xxxxhd| 樱桃国产成人精品视频| 午夜国产精品视频免费体验区| 久久资源av| 国产一区二区精品久久| 亚洲一品av免费观看| 欧美精品日韩| 亚洲第一免费播放区| 翔田千里一区二区| 国产精品久久久久久久久搜平片| 最新69国产成人精品视频免费| 欧美一区二区在线免费观看| 欧美先锋影音| 一二三区精品福利视频| 欧美另类一区二区三区| 亚洲精品看片| 欧美精品精品一区| 亚洲人成啪啪网站| 农夫在线精品视频免费观看|