基于PC實時環境的程序開發
2022-01-09點擊量:190
一.目前行業主流的基于PC的控制器方案目前行業內主流的基于PC的機器控制方案,通過運動控制卡實現,它的程序運行原理是:用戶程序運行在Windows上,線程由Windows分配給程序,對于要求線程穩定的機器,難以滿足需求,因為Windows系統不具備實時性,是屬于通用型操作系統,它更注重于系統的吞吐量而不是系統響應時間,雖然它大部分的時間是穩定的,但是線程以及性能容易受到Windows上別的軟件或者操作的影響,導致有幾個周期的響應時間變得很慢。此圖是我們使用某款運動控制卡,在Windows下寫的程序,動作是輸出一個IO,然后把輸出IO接到控制卡的輸入去,等待控制卡接收到輸入,然后把這段時間進行計時,得出的結果。可以看到大部分的時間是在1-2ms之間的,但是一旦電腦上在進行一些其他的操作,或者長時間運行,這個時間就會變得不可控制,波動范圍很大。二.ProCon是基于實時系統的開發與執行框架用戶使用高級語言和VisualStudio可以開發基于實時系統的程序。上面介紹過在Windows系統上運行的程序的弊端,基于實時系統的開發框架ProCon,可以解決程序運行時的響應時間波動的問題。基于之前IO反轉的實驗,不同點是程序運行在實時系統中,我們得到以下的實驗數據:通過數據可以看到,無論Windows負載如何,且在長時間的運行情況下,從輸出到輸入的波動始終是在1-2ms之間,這個實驗我們采用了ProU的運動控制庫配合倍福的EtherCATIO在實時系統的環境下做的測試。使用ProCon框架下的運動控制功能,實時系統會把本來由Windows完全管理的intelCPU分出一個核直接管理,所以即使Windows藍屏,或者在電腦上使用大量的計算工作(如圖像處理),都不會影響機器的運動和邏輯控制程序的執行效率。三.實時系統下的開發流程①先安裝并授權實時系統開發版:http://www.ProU.cn/manual/20ProH/02Intime.html,如果要調試代碼則需要開發的硬件狗,或者向公司申請臨時的開發授權。②安裝之后在VisualStudio里會多出一個插件,打開vs,選擇新建工程。③選擇A“HelloWorld”,然后點擊ok,再ok,再ok直到新建工程完成④添加頭文件,YKCat.h,文件放在D:\YouKong\ProH\YKCat目錄下⑤配置預處理器,將YKCat.h中的FUNS_EXPORTS配置到預處理器,點擊應用,確定⑥配置lib文件,文件在D:\YouKong\ProH\YKCat\Intime\V64⑦配置包含目錄,將ykcat.lib放到包含目錄下⑧程序中引用”windows.h”,”ykcat.h”頭文件,注意順序編寫總線初始化函數。其中調用的文件生成方式在下章節講解⑨主流程,流程包括輸出字符"Hello,World!"調用初始化總線函數循環執行控制IO輸出,兩段絕對定位運動,并判斷是否定位完成,并輸出當前位置。編譯程序,待生成成功⑩將D:\YouKong\ProH\YKCat\Intime\V64目錄下的InLib.rta和YKCat.rsl放到生成目錄下注:rsl相當于Windows的dll。注:rta相當于Windows的exe。①是我們生成的應用程序②是YKCAT的調用程序③是YKCAT的執行函數文件四.生成總線的配置文件①打開ProU,新建ProU程序默認選項即可,點擊確定②右鍵添加ECAT主站,選擇伺服驅動,找到VirtualServo(本案例使用虛擬軸),點擊添加③打開ProH,然后點擊下載按鈕,選擇選擇所有,點擊執行,然后一直確定即可。④關閉ProH,然后就會生成配置信息ecat.bin以及config.txt。五.運行①編譯好程序,插上開發加密狗或者臨時開發狗,按F5運行即可。六.結論基于ProCon實時開發與執行框架,用戶可以通過高級語言開發基于實時系統的機器程序,避免機器運行受到Windows計算任務的影響,實現比運動控制卡方案更加穩定的機器控制。同時繼續保持運動控制卡方案與Windows平臺上如機器視覺、人機界面等應用整合的優勢(相較于脫機的運動控制器),是比較理想的PCbased控制方案。本文由培訓無憂網長沙牛耳教育課程顧問老師整理發布,希望能夠對想在長沙參加影視動漫培訓的學生有所幫助。更多課程信息可關注培訓無憂網電腦IT培訓頻道或添加老師微信:15033336050...