江 維,沈 玄,吳雨川,李紅軍
基于QT與單片機的直流電機無線通信控制系統(tǒng)設(shè)計
江 維,沈 玄,吳雨川,李紅軍
(武漢紡織大學(xué) 機械工程與自動化學(xué)院,湖北 武漢 430200)
針對傳統(tǒng)PC控制方式下的諸多缺陷,為有效提高通信距離以及節(jié)省硬件開發(fā)成本,本文提出了一種基于QT和單片機的直流電機無線通信控制系統(tǒng)設(shè)計方法,在所設(shè)計的系統(tǒng)中,單片機為下位機,PAD或手機為上位機,利用可視化編程軟件QT設(shè)計了Android環(huán)境下的友好人機交互控制界面,實現(xiàn)了PAD或手機與單片機之間的雙向數(shù)據(jù)通信,并成功應(yīng)用于直流電機調(diào)速控制,整個軟件系統(tǒng)編程模塊化、易于擴展和二次開發(fā)、通用性強,適用于一般的工業(yè)控制系統(tǒng)。
QT;單片機;安卓;無線通信
隨著電動機種類的不斷增加以及電機控制技術(shù)的不斷發(fā)展,電機實現(xiàn)的功能越來越多,電機的應(yīng)用范圍也隨之變廣,尤其在工業(yè)生產(chǎn)中,電機作為一個基礎(chǔ)的能量轉(zhuǎn)換裝置,幾乎無處不在,其中直流電機憑借其優(yōu)良的調(diào)速特性和穩(wěn)定的動靜態(tài)性能以及先進完善的控制手段,在汽車制造、金屬冶煉,海洋鉆井、礦山開采、便民生活設(shè)備、紡織工程等領(lǐng)域都得到了大規(guī)模的使用。早期的電機控制多以模擬開關(guān)在工業(yè)現(xiàn)場對電機進行調(diào)速控制,隨著計算機技術(shù)的發(fā)展,出現(xiàn)了基于上位機[1-4]的電機控制系統(tǒng),通過MFC等可視化開發(fā)工具設(shè)計電機控制平臺,由于依然采用有線的通信方式,使得電機的操控人員不能夠脫離底層工業(yè)現(xiàn)場,隨著無線通信、安卓系統(tǒng)、PAD的廣泛應(yīng)用與發(fā)展,無線通信技術(shù)以其成本低,實用性更強,越來越多的應(yīng)用于工業(yè)控制領(lǐng)域。Qt[5-8]是一個1991年由Qt Company開發(fā)的跨平臺C++圖形用戶界面應(yīng)用程序開發(fā)框架,它既可以開發(fā)GUI程序,也可用于開發(fā)非GUI程序,基于此本文在該環(huán)境下設(shè)計了友好的直流電機控制平臺,通過無線通信方式實現(xiàn)了直流電機的遠程控制,將操控人員的工作由惡劣的工業(yè)現(xiàn)場轉(zhuǎn)移到了環(huán)境舒適的監(jiān)控室,不僅降低了系統(tǒng)設(shè)計成本而且大大改善了操控人員的工作環(huán)境。
復(fù)雜工業(yè)網(wǎng)絡(luò)底層電機設(shè)備的控制體系結(jié)構(gòu)如圖1所示,整個工業(yè)控制系統(tǒng)抽象為由n路不同的工業(yè)控制系統(tǒng)構(gòu)成,每路工業(yè)控制系統(tǒng)上配備有1臺直流電機用于驅(qū)動底層設(shè)備,每臺電機工作于作業(yè)現(xiàn)場實現(xiàn)完成既定的工業(yè)控制功能,其底層運行狀態(tài)通過信號處理單元和工業(yè)級A/D采樣卡獲取,并由4G無線網(wǎng)絡(luò)傳輸至工業(yè)控制運行部門監(jiān)控中心的直流電機或底層設(shè)備控制基站,底層監(jiān)控中心又與高層地市局監(jiān)控中心通過公網(wǎng)相連,實現(xiàn)資源與信息的共享,同時,監(jiān)控中心可以通過無線網(wǎng)向底層發(fā)送控制指令實現(xiàn)電機的調(diào)速等運動控制,通過上述這種方式監(jiān)控中心可以與現(xiàn)場作業(yè)環(huán)境下的直流電機同時進行雙向的數(shù)據(jù)與信息交換,從而形成一個由工業(yè)現(xiàn)場作業(yè)環(huán)境、直流電機控制系統(tǒng)、監(jiān)控中心三位一體的智能工業(yè)控制運行與維護平臺。在這個平臺中,通過無線通信的方式由操控者對工業(yè)底層設(shè)備實現(xiàn)智能化管理與運行,能夠大大降低作業(yè)風(fēng)險、提高作業(yè)效率。

圖1 復(fù)雜工業(yè)控制系統(tǒng)的體系架構(gòu)
以單片機為下位機設(shè)計串口接收上位機發(fā)送來的數(shù)據(jù),其中單片機P1口用于驅(qū)動直流電機,直接調(diào)用已固化的Motor()函數(shù),通過參數(shù)On,Off,F(xiàn)orward,Reverse等參數(shù)的設(shè)置實現(xiàn)直流電機的啟動、停止、正轉(zhuǎn)、反轉(zhuǎn)等調(diào)速運動,串行通信波特率設(shè)定為9600BPS,在KEILC軟件中編寫的結(jié)構(gòu)化C語言程序如下:
#include
unsigned char flag;
unsigned char w,i;
unsigned int j;
void main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x50;
PCON=0x00;
EA=1;
ES=1;
while(1);
}
void ser() interrupt 4
{
RI=0;
flag=SBUF;
if(flag=='1')
{
Motor(On);//啟動
}
else if(flag=='2')
{
Motor(Off);//停止
}
else if(flag=='3')
{
Motor(Forward);//正轉(zhuǎn)
}
else if(flag=='4')
{
Motor(Reverse);//反轉(zhuǎn)
}
……
}
(1)在QT環(huán)境下,新建工程添加相應(yīng)控件,所設(shè)計的直流電機無線通信控制界面如圖2所示,整個界面由電機控制、網(wǎng)絡(luò)聯(lián)接、狀態(tài)顯示三個部分組成,其中電機控制模塊部分能夠通過PAD或手機向單片機發(fā)送控制命令,實現(xiàn)直流電機的啟動、停止、正轉(zhuǎn)、反轉(zhuǎn)、加速、減速等功能控制,網(wǎng)絡(luò)聯(lián)接模塊可以實現(xiàn)網(wǎng)絡(luò)的聯(lián)接與斷開,狀態(tài)顯示模塊能夠?qū)嵤╋@示直流電機的運行狀態(tài)。用戶通過手機或PAD可以向電機發(fā)送不同的調(diào)速控制命令,同時電機的運行狀態(tài)也會通過無線網(wǎng)絡(luò)發(fā)送至手機或PAD并實時的顯示,整個控制系統(tǒng)按照這種全雙工的模式運行。
(2)上位機發(fā)送控制命令的后臺代碼。在設(shè)計好的GUI界面上,為按鈕控件添加響應(yīng)函數(shù)發(fā)送控制命令,由于發(fā)送的控制命令格式和代碼都是相同的,因此以下給出的是點擊啟動按鈕的響應(yīng)函數(shù)。
void Widget::onBeginBtnClicked()//電機啟動按鈕的響應(yīng)函數(shù)
{
char ch;
QString str=LED1PushButton->text();
if(str==tr("啟動"))
{
ch=Cmd.at(1);
tcpSocket->write(&ch,1);
tcpSocket->waitForBytesWritten(500);
}
if(str==tr("停止"))
{
ch=Cmd.at(2);
LED1PushButton->setText(tr("啟動"));
tcpSocket->write(&ch,1);
tcpSocket->waitForBytesWritten(500);
}
}
(3)網(wǎng)絡(luò)聯(lián)接功能實現(xiàn)代碼。在發(fā)送控制命令前,首先需要點擊網(wǎng)絡(luò)聯(lián)接按鈕,只有上層和底層控制成功組網(wǎng),才能實現(xiàn)命令發(fā)送與狀態(tài)顯示功能。
void Widget::ConnectToServer()
{
tcpSocket->connectToHost(IP,port);
if(!tcpSocket->waitForConnected(2000))
{
QMessageBox::information(this,tr("提示"),tr("連接失敗"));
tcpSocket->close();
}
}
(4)聯(lián)機調(diào)試:首先配置無線通信模塊的網(wǎng)絡(luò)及IP,使得無線通信模塊與手機或PAD成功組網(wǎng),然后將無線通信模塊接到單片機的串口P3.0和P3.1引腳上并上電,將可執(zhí)行的HEX文件下載到單片機中。在手機或PAD上安裝無線通信控制系統(tǒng)APP,打開APP界面,點擊網(wǎng)絡(luò)聯(lián)接,成功組網(wǎng)后,可以分別點擊界面上的電機控制按鈕控件,可以觀察到電機的運行狀態(tài),同時電機的運行狀態(tài)也可以實時的顯示在狀態(tài)顯示窗口,從而實現(xiàn)上層向底層發(fā)送控制命令,底層向上層發(fā)送運行狀態(tài)的全雙工無線通信。

圖2 基于QT的直流電機無線通信控制界面設(shè)計
針對工業(yè)遠程無線控制的設(shè)計要求,本文基于QT設(shè)計了一種直流電機無線通信控制系統(tǒng),有效的實現(xiàn)了PAD或手機與單片機的無線通信并完成了電機的遠程無線控制,所設(shè)計出的友好可視化界面其編程模塊,通用性強,易于二次開發(fā)和功能拓展,推廣價值高,可運用于復(fù)雜的工業(yè)控制系統(tǒng)之中。
[1] 李志宏,杜娟,張平.基于VB的PLC和上位機通信的實現(xiàn)方法[J].控制工程,2002,9(1):35-37.
[2] 鞠劍平,江維,等.單片機原理應(yīng)用教程[M].武漢:華中科技大學(xué)出版社.2012.08.
[3] 崔紅亮.一種基于通用計算機的雷達顯控終端軟件設(shè)計[J].電腦知識與技術(shù)(學(xué)術(shù)交流),2007,2(10):202-203.
[4] 曾凌洋,楊建宇,熊金濤,等.基于嵌入式計算機的雷達系統(tǒng)顯控終端軟件設(shè)計[J].工業(yè)控制計算機,2005,18(7):30-31.
[5] 程滔.基于Qt的無人直升機地面顯控終端軟件設(shè)計[J].電子技術(shù)與軟件工程,2017,(18):59-59.
[6] 賈杰,劉智騰.基于Qt的小型無人機地面站軟件設(shè)計與實現(xiàn)[J].計算機與現(xiàn)代化,2015,(7):94-97.
[7] 石韻.基于嵌入式系統(tǒng)的雷達顯控終端設(shè)計與實現(xiàn)[D].南京:南京理工大學(xué),2014.
[8] 江維,吳雨川,李紅軍.基于PROTEUS和MDK的嵌入式虛擬實驗室構(gòu)建[J].武漢紡織大學(xué)學(xué)報,2018,31(5),22-25.
Design of Wireless Communication Control System for DC Motor Based on QT and SCM
JIANG Wei, SHEN Xuan, WU Yu-chuan, LI Hong-jun
(School of Mechanical Engineering and Automation, Wuhan Textile University, Wuhan Hubei 430200, China)
Aiming at the many defects in the traditional PC control mode, in order to effectively improve the communication distance and save the hardware development cost, this paper proposes a design method of DC motor wireless communication control system based on QT and single chip microcomputer. In the designed system, the SCM is the lower controller, PAD or mobile phone is the upper controller. The friendly human-computer interaction interface control in android environment is designed by visual programming software QT so as to realize the dual direction data communication between PAD / mobile phone and single chip microcomputer. It is successfully applied to DC motor speed control and the whole software system programming. And the modular, easy to be expanded and secondary developed versatile, which is suitable for general industrial control systems.
QT; SCM; Android; wireless communication
江維(1983-),男,講師,博士,研究方向:智能控制與機器人系統(tǒng).
武漢紡織大學(xué)教學(xué)研究項目(2018JY019).
TN915.41
A
2095-414X(2019)04-0072-04