一、 方案核心概述
本方案旨在解決系統(tǒng)開發(fā)中 “高性能實時控制” 與 “豐富人機(jī)交互” 的需求矛盾。它采用混合部署的架構(gòu),將系統(tǒng)清晰地分為兩個層面:
1. 實時層:部署在睿擎派設(shè)備的 RT-Thread 實時系統(tǒng)中,負(fù)責(zé)執(zhí)行高頻率、高確定性的核心控制算法、EtherCAT 等工業(yè)總線通信、故障保護(hù)等硬實時任務(wù)。
2. 交互層:基于Qt Framework開發(fā),運(yùn)行在 Linux 操作系統(tǒng)上,提供圖形化用戶界面,用于參數(shù)配置、狀態(tài)監(jiān)控、曲線顯示、數(shù)據(jù)記錄、報警管理和網(wǎng)絡(luò)通信等軟實時或非實時任務(wù)。
兩個層面通過高速通信機(jī)制進(jìn)行數(shù)據(jù)交換和指令傳遞,從而形成一個兼顧實時性能與開發(fā)效率的完整解決方案。
二.睿擎派運(yùn)行混合部署方案
混合部署雙系統(tǒng)指的是單一芯片上同時運(yùn)行兩個系統(tǒng),既運(yùn)行Linux ,又運(yùn)行RT-Thread系統(tǒng)。
睿擎派RC3506上運(yùn)行Linux系統(tǒng)日志圖通過串口1查看

睿擎派RC3506上運(yùn)行RT-Thread系統(tǒng)日志圖通過串口3查看

三.Linux 側(cè) QT應(yīng)用界面開發(fā)
1. 基于 QT設(shè)計器進(jìn)行 UI設(shè)計

2. QT 界面繪制及業(yè)務(wù)邏輯核心代碼

主要是繪制電機(jī)啟停按鈕,電機(jī)運(yùn)行方向按鈕,電機(jī)期望位置和當(dāng)前位置字體實現(xiàn)

主要是繪制電機(jī)當(dāng)前位置和期望位置雙曲線實現(xiàn)
四. RT-Thread側(cè)EtherCAT 驅(qū)動電機(jī)應(yīng)用開發(fā)
1. 創(chuàng)建示例工程
在RuiChing StudioIDE中 創(chuàng)建11_amp_qt_ethercat_master
示例工程:

2. EtherCAT核心代碼
EtherCAT主站的初始化配置回調(diào)

process_data_config_handler主要是EtherCAT主站的初始化配置回調(diào),在這個函數(shù)中,通常要對DC時鐘進(jìn)行配置以及PDO過程數(shù)據(jù)的映射配置,在本例子主要是對伺服電機(jī)的模式,目標(biāo)位置,目標(biāo)速度,當(dāng)前狀態(tài),當(dāng)前速度,當(dāng)前位置等PDO進(jìn)行映射配置。
EtherCAT主站運(yùn)行時周期循環(huán)過程數(shù)據(jù)更新回調(diào)

ecat_process_data_begin_handler主要是EtherCAT主站運(yùn)行時周期循環(huán)過程數(shù)據(jù)更新回調(diào),在這個函數(shù)中,主要進(jìn)行電機(jī)模式狀態(tài)切換處理以及對電機(jī)的位置進(jìn)行增量,實現(xiàn)正轉(zhuǎn)、反轉(zhuǎn)、停止等操作。
五. 雙系統(tǒng)通信,實現(xiàn)完整功能
rpmsg是一種用于Linux與RT-Thread操作系統(tǒng)之間進(jìn)行多核異構(gòu)通信的機(jī)制,進(jìn)行兩個系統(tǒng)間讀寫通信。
1 Linux側(cè)rpmsg端點

創(chuàng)建打開Linux側(cè)/dev/rpmsg字符設(shè)備節(jié)點,初始化電機(jī)ctrl_data結(jié)構(gòu)體成員值

Linux MASTER端地址是0x1001,RT-Thread遠(yuǎn)端地址是0x3001

Linux側(cè)將電機(jī)的啟動停止,運(yùn)行方向和電機(jī)位置控制值通過send_msg接口實際是write接口將ctrl_data結(jié)構(gòu)體寫入RT-Thread側(cè)。
2. RT-Thread側(cè)rpmsg端點

創(chuàng)建打開RT-Thread側(cè)/dev/rpmsg字符設(shè)備節(jié)點,創(chuàng)建兩個rpmsg讀寫線程

RT-Thread源地址是0x3001,Linux目的地址是0x1001
RT-Thread側(cè) rpmsg讀線程

rpmsg讀線程里RT-Thread源端的電機(jī)控制值,電機(jī)運(yùn)行狀態(tài),電機(jī)運(yùn)行方向賦值給 ctrl_data結(jié)構(gòu)體中
RT-Thread側(cè) rpmsg寫線程

rpmsg寫線程會不斷的獲取dynamic_sem信號量,這個信號量會在每次改變電機(jī)控制偏移值,改變電機(jī)運(yùn)行狀態(tài),改變電機(jī)運(yùn)行方向都會去釋放,一旦獲取到信號量就會通過rt_device_write接口將ctrl_data結(jié)構(gòu)體寫入到Linux目的端。
六. 實戰(zhàn)演示
硬件準(zhǔn)備
● 睿擎工業(yè)開發(fā)平臺支持板卡1塊(睿擎派RC3506)
● 配套7寸MIPI屏
● EtherCAT伺服驅(qū)動器一套(推薦力川LC10E-400W)
● 串口調(diào)試器、jlink調(diào)試各一套
硬件連接
睿擎派RC3506用異面排線和7寸MIPI屏幕連接,再用網(wǎng)線將伺服驅(qū)動器IN口與開發(fā)板ETH1網(wǎng)口連接,伺服電機(jī)的電源線和編碼器線分別接入電源口和CN3連接口。如圖所示:

編譯示例工程
RuiChing Studio IDE對11_amp_qt_ethercat_master工程進(jìn)行編譯:

下載運(yùn)行程序
連接jlink調(diào)試器,使用IDE下載app.img進(jìn)去后,電機(jī)驅(qū)動系統(tǒng)顯示效果如下視頻:
七. 總結(jié)
從硬件連接到界面控制,睿擎平臺讓實現(xiàn) 混合部署QT電機(jī)驅(qū)動系統(tǒng)變得簡單。示例只是一個起點,基于此,你可以輕松擴(kuò)展功能,實現(xiàn)更復(fù)雜的數(shù)控機(jī)床CNC系統(tǒng)與運(yùn)動控制平臺,醫(yī)療器械的手術(shù)機(jī)器人等工業(yè)應(yīng)用。
-
芯片
+關(guān)注
關(guān)注
463文章
54004瀏覽量
465837 -
Qt
+關(guān)注
關(guān)注
2文章
320瀏覽量
40852 -
實時控制
+關(guān)注
關(guān)注
0文章
56瀏覽量
9853 -
電機(jī)驅(qū)動系統(tǒng)
+關(guān)注
關(guān)注
0文章
37瀏覽量
6027
發(fā)布評論請先 登錄
基于睿擎派輕松玩轉(zhuǎn)CANopen電機(jī)控制
睿擎SDK V1.3.0重磅升級:RT-Thread + Linux 混合部署正式上線
睿擎UVC-AI方案:基于YOLO的人臉檢測系統(tǒng)開發(fā)|技術(shù)集結(jié)
睿擎平臺網(wǎng)絡(luò)開發(fā)指南:從IP配置到遠(yuǎn)程控制 | 技術(shù)解析
睿擎平臺CoreDump實戰(zhàn)指南:系統(tǒng)崩潰現(xiàn)場的完美捕獲 | 技術(shù)解析
睿擎派文件系統(tǒng)指南:從開發(fā)到發(fā)布全流程實踐 | 技術(shù)解析
基于睿擎派的工業(yè)FOC無刷電機(jī)控制系統(tǒng)與WEB推流監(jiān)看系統(tǒng)| 技術(shù)集結(jié)
睿擎平臺核間通訊實踐:QT與電機(jī)控制的無縫集成
川商傳媒:睿擎工業(yè)開發(fā)平臺開啟智能化新篇章 | 媒體視角
睿擎平臺極簡開發(fā)重要實踐—— PinMux 配置工具 | 睿擎派試用名單公示
【直播預(yù)告】下周三晚8點|睿擎文件系統(tǒng)實戰(zhàn):從開發(fā)到發(fā)布全流程解析
明晚8點|睿擎文件系統(tǒng)實戰(zhàn):從開發(fā)到發(fā)布全流程解析
睿擎平臺v1.7.2版本正式發(fā)布|技術(shù)集結(jié)
直播預(yù)告 | 睿擎平臺AMP混合部署:你的Qt界面如何“指揮”底層電機(jī)?
直播 | 睿擎平臺AMP混合部署:你的Qt界面如何“指揮”底層電機(jī)?
睿擎混合部署方案:基于QT的電機(jī)驅(qū)動系統(tǒng)開發(fā)|技術(shù)集結(jié)
評論