大家好,通過前面的幾次實(shí)驗(yàn),相信大家已經(jīng)看到了YKCAT2在NoTime模式下,相較于運(yùn)動(dòng)控制卡方案帶來的設(shè)備效率和穩(wěn)定提升。
那么在這一集,我們來解答幾個(gè)大家經(jīng)常問到的問題:
1、如何搭建NoTime基本程序框架,同一套程序框架能否兼容YKCAT2 NoTime和Windows模式,甚至是其他的運(yùn)動(dòng)控制卡。
2、實(shí)時(shí)系統(tǒng)上的機(jī)器控制程序如何與Windows上的程序交互,以及如何調(diào)試他們。
首先,我們來看運(yùn)控部分的封裝結(jié)構(gòu)。
如圖所示,我們抽象出運(yùn)控基類,不同運(yùn)控品牌基于運(yùn)控基類做不同的實(shí)現(xiàn),這樣在運(yùn)控品牌切換的時(shí)候,調(diào)用代碼不用做任何更改,做到多運(yùn)控品牌的兼容。
我們繼續(xù)看這張圖,我們將設(shè)備的自動(dòng)運(yùn)行邏輯單獨(dú)封裝出來,分別在Windows和console控制臺(tái)應(yīng)用程序當(dāng)中引用,console控制臺(tái)應(yīng)用程序是運(yùn)行在實(shí)時(shí)系統(tǒng)下面的,Windows這邊就和常規(guī)的運(yùn)控的調(diào)用是一樣的,分別在這兩邊對(duì)我們的自動(dòng)運(yùn)行邏輯做引用,即可實(shí)現(xiàn)實(shí)時(shí)系統(tǒng)與Windows系統(tǒng)的兼容。
接下來我們看一下用戶程序的運(yùn)行與調(diào)試,在Windows下的運(yùn)行與調(diào)試,與常規(guī)的運(yùn)控開發(fā)沒有差別,那我們重點(diǎn)講一下實(shí)時(shí)系統(tǒng)下的程序的運(yùn)行與調(diào)試。
首先我們來看一下這張圖,我們需要在Windows端,調(diào)用LoadNoTimeAPP接口,傳入編譯生成的運(yùn)行在實(shí)時(shí)系統(tǒng)下的控制臺(tái)應(yīng)用程序,生成的可執(zhí)行文件的全路徑名,傳到這個(gè)接口里面作為參數(shù),然后我們的控制臺(tái)應(yīng)用程序就可以在實(shí)時(shí)系統(tǒng)下運(yùn)行起來。Windows程序與實(shí)時(shí)程序的(數(shù)據(jù))交互是基于共享內(nèi)存實(shí)現(xiàn)。
共享內(nèi)存是需要在實(shí)時(shí)程序這邊創(chuàng)建,然后為我們創(chuàng)建的共享內(nèi)存命名,然后在Windows這邊打開,傳入的名字就是我們創(chuàng)建的名字,這樣我們的實(shí)時(shí)程序和Windows程序就會(huì)訪問同一段內(nèi)存,這樣我們的交互通道就已經(jīng)打通了,另外,共享內(nèi)存,我們可以利用結(jié)構(gòu)體,做一下結(jié)構(gòu)化的封裝,這樣就省去了我們用戶需要自己去做地址偏移之類的繁瑣的事情。
運(yùn)行在實(shí)時(shí)系統(tǒng)下的console控制臺(tái)的應(yīng)用程序的調(diào)試呢,我們可以在Windows下調(diào)試,調(diào)試正常之后,再load到實(shí)時(shí)系統(tǒng)下就行。
審核編輯:郭婷
-
WINDOWS
+關(guān)注
關(guān)注
3文章
3503瀏覽量
87889 -
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3198瀏覽量
57361
原文標(biāo)題:YKCAT2全實(shí)時(shí)程序框架與兼容解決方案講解
文章出處:【微信號(hào):伺服與運(yùn)動(dòng)控制,微信公眾號(hào):伺服與運(yùn)動(dòng)控制】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論