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

睿擎派RC3506上運行RT-Thread系統日志圖通過串口3查看

三.Linux 側 QT應用界面開發
1. 基于 QT設計器進行 UI設計

2. QT 界面繪制及業務邏輯核心代碼

主要是繪制電機啟停按鈕,電機運行方向按鈕,電機期望位置和當前位置字體實現

主要是繪制電機當前位置和期望位置雙曲線實現
四. RT-Thread側EtherCAT 驅動電機應用開發
1. 創建示例工程
在RuiChing StudioIDE中 創建11_amp_qt_ethercat_master
示例工程:

2. EtherCAT核心代碼
EtherCAT主站的初始化配置回調

process_data_config_handler主要是EtherCAT主站的初始化配置回調,在這個函數中,通常要對DC時鐘進行配置以及PDO過程數據的映射配置,在本例子主要是對伺服電機的模式,目標位置,目標速度,當前狀態,當前速度,當前位置等PDO進行映射配置。
EtherCAT主站運行時周期循環過程數據更新回調

ecat_process_data_begin_handler主要是EtherCAT主站運行時周期循環過程數據更新回調,在這個函數中,主要進行電機模式狀態切換處理以及對電機的位置進行增量,實現正轉、反轉、停止等操作。
五. 雙系統通信,實現完整功能
rpmsg是一種用于Linux與RT-Thread操作系統之間進行多核異構通信的機制,進行兩個系統間讀寫通信。
1 Linux側rpmsg端點

創建打開Linux側/dev/rpmsg字符設備節點,初始化電機ctrl_data結構體成員值

Linux MASTER端地址是0x1001,RT-Thread遠端地址是0x3001

Linux側將電機的啟動停止,運行方向和電機位置控制值通過send_msg接口實際是write接口將ctrl_data結構體寫入RT-Thread側。
2. RT-Thread側rpmsg端點

創建打開RT-Thread側/dev/rpmsg字符設備節點,創建兩個rpmsg讀寫線程

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

rpmsg讀線程里RT-Thread源端的電機控制值,電機運行狀態,電機運行方向賦值給 ctrl_data結構體中
RT-Thread側 rpmsg寫線程

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

編譯示例工程
RuiChing Studio IDE對11_amp_qt_ethercat_master工程進行編譯:

下載運行程序
連接jlink調試器,使用IDE下載app.img進去后,電機驅動系統顯示效果如下視頻:
七. 總結
從硬件連接到界面控制,睿擎平臺讓實現 混合部署QT電機驅動系統變得簡單。示例只是一個起點,基于此,你可以輕松擴展功能,實現更復雜的數控機床CNC系統與運動控制平臺,醫療器械的手術機器人等工業應用。
-
芯片
+關注
關注
462文章
53623瀏覽量
460266 -
Qt
+關注
關注
2文章
318瀏覽量
40384 -
實時控制
+關注
關注
0文章
52瀏覽量
9832 -
電機驅動系統
+關注
關注
0文章
35瀏覽量
5997
發布評論請先 登錄
睿擎SDK V1.3.0重磅升級:RT-Thread + Linux 混合部署正式上線
睿擎平臺CoreDump實戰指南:系統崩潰現場的完美捕獲 | 技術解析
基于睿擎派的工業FOC無刷電機控制系統與WEB推流監看系統| 技術集結
睿賽德科技混合部署技術Workshop南京站圓滿落幕!
睿擎平臺極簡開發重要實踐—— PinMux 配置工具 | 睿擎派試用名單公示
睿擎平臺v1.7.2版本正式發布|技術集結

睿擎混合部署方案:基于QT的電機驅動系統開發|技術集結
評論