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

產品分類

當前位置: 首頁 > 工業電子產品 > 半導體產品 > 微控制器MCU

類型分類:
科普知識
數據分類:
微控制器MCU

關于正運動控制器嵌入式實時系統的優勢和常見問題

發布日期:2022-04-22 點擊率:95

  • 關鍵詞:                                                                正運動控制器                                                                嵌入式

  • 摘要:本文檔介紹如下內容: 一、嵌入式實時系統架構簡介和優勢 二、Basic程序簡單介紹 三、和PC程序的互動方式 四、Basic程序的掃描頻率和如何實現恒定頻率掃描


嵌入式實時系統架構簡介和優勢

正運動的ZMC系列控制器全部是獨立式控制器,可以脫離上位機像PLC一樣獨立工作的。自帶嵌入式實時系統,可以像PLC一樣實現高速的邏輯響應和IO響應,這樣的架構是進口運動控制器的標準架構。

進口控制器這么設計是因為這樣的架構有多種好處:

1)任務調度更簡單,實時性更好

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

正運動控制器通過使用更簡單的調度策略(分時調度,犧牲一些計算效率),使用精簡指令(不使用復雜的帶類的面向對象的語言),實時性能就比Windows好很多,而且很容易實現多任務(Task)并行處理,所以,在需要實時響應的場合就不再需要運動控制器+PLC的組合方式,一個控制器搞定全部,沒有數據通訊的麻煩,簡單高效。

2)減輕PC計算壓力,在消耗大量計算資源的應用例如缺陷檢測中優勢更明顯。

把邏輯控制和運動控制全部使用Basic語言下載入控制器內,視覺處理留在PC,最大化減輕PC計算壓力。

3)開發調試更簡便。

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

即使不使用Basic寫程序,在PC上寫程序,通過Zdevelop開發調試工具也可以通過“軸參數”或者“在線命令”方便的查看當前各個參數狀態;可以通過“在線命令”實時修改參數;可以通過“示波器”查看速度曲線.......

(關于Zdevelop的詳細內容可以參考光盤資料中的入門文檔或者教學視頻。)

Basic程序簡單介紹

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

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

正運動控制器支持多任務(多線程),但創建多線程要比Windows程序簡單的多,可以非常方便的實現多任務并行運行。

可以通過ticks或者timer等方式實現恒定頻率掃描程序。

(更多詳細內容請參考ZBasic幫助手冊。)

這樣的架構,使正運動控制器不僅支持像其他國產控制器一樣完全在PC上調用函數來控制,也支持完全把運動控制和邏輯控制用Basic寫在控制器里,也支持部分程序寫在控制器里,部分程序寫在PC上,充分發揮各自的優勢,非常消耗CPU計算能力的復雜算法放在PC上,簡單的對響應速度要求很高的放在控制器上,兩者可以通過全局變量、Table、VR變量等方式來交換數據,Basic程序也可以向PC程序主動上報信息(PC程序中需要部署回調函數,不熟悉GC回收的話不建議這樣使用)。

和PC程序的互動方式

下面就是因為使用這種獨特架構帶來的其他國產控制器廠商所沒有的交互方式和獨有的函數:

控制器上的Basic程序可以通過指定一個自動運行號,讓這個任務上電自動運行,并且適當的時候調用其它任務(調用其他程序文件或者sub子程序)。也可以在合適的時機由PC程序發送Basic字符串指令來運行某個任務,例如控制器上有一個文件叫“BasicInit.bas ”,那么可以調用ZAux_Execute函數發送字符串(run “BasicInit ”)來運行起來這個文件,讓它以一個任務(線程)的方式運行起來。

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

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

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

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

如果想要一次讀取或者設置大量的IO變量、大量的位置狀態,可以使用輸入輸出函數中帶modbus前綴的函數,如GetModbusIn,這樣命名是因為在控制器內部有些modbus寄存器映射到這些地址上了(GetModbusIn只反應IO的真實狀態,反轉指令無效。如果需要反轉之后的狀態,需要使用ZAux_Direct_GetInMulti)。

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

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


Basic程序的掃描頻率和如何實現恒定頻率掃描

用過PLC的客戶往往對正運動控制器嵌入式系統的掃描頻率有疑問,正運動控制器和PLC不一樣的地方是沒有標準的任務可供客戶使用來實現恒定頻率掃描,但可以自己寫程序使用多種方式讓控制器內的Basic任務實現恒定頻率掃描。

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

當一個任務需要很高的實時性時,推薦把這部分任務單獨放入一個Task內,代碼行數盡量短,那么它的掃描頻率就非常高。對實時性要求不高的就和其它一起合并放入一個大的任務(Task)。

如何計算當前任務的掃描時間?

使用Ticks,賦予Ticks一個初始化值,每過1ms系統就會減一,可以用于計算掃描時間,例如:

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

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

1)使用Ticks:

2)使用硬件時鐘Timer:

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

備注:

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

2)因為控制器使用了實時系統,所以要使用循環掃描,可以很安全的使用while 1,這個Task的時間片用完后就會切換任務,不用擔心控制器資源都被鎖死在當前任務。




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

上一篇: MATLAB和Simulink在航

推薦產品

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

      9000px;">

          99精品久久久久久| 欧美日韩一级黄| 91麻豆国产精品久久| 宅男在线国产精品| 天涯成人国产亚洲精品一区av| 国产精品视频免费| 成人妖精视频yjsp地址| 亚洲精品一区二区三区99| 日韩电影免费在线看| 91久久国产综合久久| 亚洲啪啪综合av一区二区三区| 99视频在线精品| 国产精品理伦片| 丁香啪啪综合成人亚洲小说 | 亚洲第一激情av| 欧美天天综合网| 亚洲不卡在线观看| 欧美成人精品1314www| 一区二区三区国产精华| 国产精品一二三在| 国产精品美女视频| 欧美专区亚洲专区| 日韩高清不卡一区二区| 欧美变态tickle挠乳网站| 九九精品视频在线看| 国产精品日韩精品欧美在线| 99精品久久免费看蜜臀剧情介绍| 亚洲激情一二三区| 日韩免费视频线观看| 成人一区二区视频| 亚洲一区二区成人在线观看| 日韩精品在线网站| 成人免费高清在线观看| 精品一区二区三区在线播放视频| 久久久久综合网| 欧美在线观看视频一区二区三区| 日本伊人午夜精品| 欧美激情一区不卡| 在线精品视频一区二区三四 | 国产精品福利一区| 欧美在线视频全部完| 日本欧美肥老太交大片| 国产欧美1区2区3区| 欧美私模裸体表演在线观看| 国产伦精品一区二区三区免费| 亚洲精品午夜久久久| 久久久久久久久99精品| 国产成人夜色高潮福利影视| 国产精品久久久久久亚洲毛片 | 欧美日韩精品综合在线| 精品一区二区免费| 一区二区日韩av| 久久久不卡网国产精品二区| 在线观看免费视频综合| 婷婷成人综合网| 精品伦理精品一区| 欧美精品在线观看播放| 91美女片黄在线观看91美女| 国产成人8x视频一区二区| 最好看的中文字幕久久| 欧美性大战久久| 色成年激情久久综合| 成人黄色av网站在线| 日本不卡视频一二三区| 国产亚洲一区二区三区四区| 日韩一级片在线观看| 欧美日韩国产精选| 91电影在线观看| caoporn国产精品| 国产精品66部| 国产精品综合一区二区三区| 国产91综合网| 国产东北露脸精品视频| 久久精品免费看| 亚洲天堂久久久久久久| 国产精品国产馆在线真实露脸| 久久精品在线观看| 日本一区二区免费在线观看视频| 精品免费日韩av| 精品国产一区二区在线观看| 欧美xxxx在线观看| 欧美xxxx在线观看| 国产人久久人人人人爽| 国产欧美视频在线观看| 亚洲免费成人av| 一区二区三区欧美在线观看| 久久久噜噜噜久久人人看 | 精品在线观看视频| 国内精品伊人久久久久av影院| 日本va欧美va精品发布| 午夜精品久久久久久久蜜桃app| 国产视频一区二区在线观看| 国产性色一区二区| 国产精品理伦片| 亚洲一区电影777| 日韩电影一区二区三区| 国产成人免费视频一区| 91丝袜美女网| 欧美久久久久久久久中文字幕| 日韩欧美一区在线| 国产精品久久久久久久久快鸭| 久久精品欧美一区二区三区麻豆| 亚洲国产精品激情在线观看| 亚洲人妖av一区二区| 亚洲成av人片一区二区| 久久97超碰色| 色诱亚洲精品久久久久久| 欧美狂野另类xxxxoooo| 26uuu精品一区二区三区四区在线| 精品99一区二区三区| 日韩美女一区二区三区四区| 欧美日韩在线播| 久久久久久久久久久久久夜| 久久理论电影网| 一区二区三区美女| 精品亚洲aⅴ乱码一区二区三区| 白白色亚洲国产精品| 日韩一区二区免费在线电影 | 99视频热这里只有精品免费| 在线精品国精品国产尤物884a| 日韩精品自拍偷拍| 国产视频一区二区在线| 国产欧美一区二区精品久导航 | 日韩欧美一二区| 欧美国产精品专区| 国产精品九色蝌蚪自拍| 激情久久久久久久久久久久久久久久| 91浏览器打开| 国产99一区视频免费| 日韩一级大片在线| 一区二区免费在线| 亚洲第一久久影院| 91首页免费视频| 国产精品嫩草影院av蜜臀| 老司机精品视频导航| 7777女厕盗摄久久久| 国产精品国产三级国产普通话蜜臀 | 日韩在线a电影| 99视频精品全部免费在线| 精品88久久久久88久久久| 欧美中文字幕一二三区视频| 一区在线观看视频| 国产999精品久久久久久| 久久久久亚洲综合| 激情成人综合网| 日韩一级精品视频在线观看| 午夜视频在线观看一区二区三区| 国产不卡在线视频| 国产午夜三级一区二区三| 蜜臀va亚洲va欧美va天堂| 国产成a人亚洲| 国产调教视频一区| 在线观看欧美黄色| 亚洲成a人片在线不卡一二三区| 日韩亚洲欧美在线| 成人avav在线| 午夜亚洲国产au精品一区二区| 日韩美女在线视频| 色综合天天综合色综合av| 午夜婷婷国产麻豆精品| 久久久不卡影院| 色综合久久中文字幕综合网 | 亚洲香蕉伊在人在线观| 精品视频一区二区不卡| 美国三级日本三级久久99 | 中文字幕中文字幕中文字幕亚洲无线| 日本久久一区二区| 激情综合亚洲精品| 亚洲美女在线国产| 777亚洲妇女| 不卡的av电影在线观看| 日韩和的一区二区| 综合久久综合久久| 日韩美女在线视频| 欧美视频在线观看一区二区| 国产精品888| 免费成人av在线| 亚洲视频 欧洲视频| 欧美区在线观看| 色综合天天天天做夜夜夜夜做| 美国十次了思思久久精品导航| 一区二区视频免费在线观看| 欧美男男青年gay1069videost | 国产成人av福利| 免费不卡在线视频| 亚洲一区在线观看免费| 国产精品三级av在线播放| 日韩一区二区在线观看| 91激情五月电影| 91丨九色丨黑人外教| 狠狠色丁香九九婷婷综合五月| 秋霞国产午夜精品免费视频| 亚洲男人电影天堂| 亚洲精品第1页| 中文字幕精品在线不卡| 欧美精彩视频一区二区三区| 久久色中文字幕| 久久久亚洲精品石原莉奈| 久久新电视剧免费观看| 久久蜜桃一区二区|