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