耳麦有回音-翻墙方法
![上位机软件](/uploads/image/0222.jpg)
2023年4月5日发(作者:启动时间)
基于单片机的电机控制系统中上位机软件设计
DesignofPCSoftwareAPPliedtoMotorControlSystemBasedonSingleehiP
中国矿业大学信电学院刘超谢方南
LiuChaoXieFangnan
摘要:本文首先提出电机控制系统中设计上位机软件的背景和需求性,指出通过合理的利
用单片机的通信功能和计算机的显示处理功能将会降低电机控制系统的调试成本,提高调试
效率"接着具体介绍了单片机端的服务程序的设计细节和计算机端上位机软件设计细节"包
括状态信息的发送!接收和处理,以及控制指令的发送!接收和执行,并给出了一种抗信号
干扰的方法"最后通过实验测试表明,设计的上位机软件能够完成预定的控制和状态显示功能,
使用设计的上位机软件对于提高系统调试质量,有明显的帮助"
关键词:电机控制单片机通信上位机软件计算机辅助模糊控制
Abstract:ThisPaPer石rstintrodueedthebaekgroundandtheneedsofthedesignofPC
softwareaPPliedtomotoreontrolsystembasedonsigleehiP,referthatbyProPerlyusingthe
eommunieationsfuCtionofsingleehiPandtheProeessingdisPlayeaPabilitiesofeomPuters,
thedesignedPCsoftwareeanredueetheeostofsystemeommissioningandenhaneethe
systemdebugginge角eei们callydeseribesthedesignoftheservieeProgram
ignineludesthestate
informationsending:reeeiving,Proeessingandtheeommandmessagesending,reeeiving,
yofantisignalinte而Perimentaltestsshow
thatthedesignedPCsoftwarecaneomPleteexPeotedeontrolandstatusdisPlayfunCtions
and15heIPfultoimProvethesystemdebuggingquality.
Keywords:MotoreontrolSingleehiPeommunieationsPCsoftwareComPuter一aided
Fuzzycontrol
[中图分类号1TM301[文献标识码IB文章编号1561一0330(2011)09一0124一06
1引言
电机控制实验中经常需要获知系
统当前的运行状态,如当前转速!斩
波信息(PWM占空比)等,同时需
要控制系统接收各种控制指令,如启
动!停止!加速!减速等"系统与
用户交互功能一般可以通过添加额
外的硬件来实现,如用液晶屏连接
单片机来输出信息,配合键盘矩阵
来输入指令"但液晶屏与键盘矩阵
会占用大量PCB板面积,增加额外
的硬件成本"而且有些指令与需要
获取的状态信息只在研发阶段需要,
没有必要增加相应硬件"用示波器作
输出相对灵活些,如测量当前转速,
可使用F那(频率/电压)转换电路,
将位置信号脉冲转换为电压信号输
送给示波器"但是,较好的数字示波
器,价格不菲,一般最多也只能测量
四路输入信号"而且,要测量系统的
各种状态,如速度!相电流!输出电
压等不能直接测量,需要增加额外的
转换电路,得到的波形数据不够直接
需要进行转换"注意到很多需要测量
124THEWORLDOFINVERTERS
的各种状态信息正是系统内部要处理的信息,即作为系
统控制核心的单片机内部存有这些信息量,而且单片机
集成了大量模块,有着强大通信能力"我们只需合理利
用单片机的通信功能,将所需的各种状态取出显示,并
传入想要的控制指令"因此,设计一个电机控制系统专
用的上位机软件,利用计算机强大信息处理与显示能力,
与单片机通信,读取电机控制系统中的各种状态,同时
还可实现较为复杂的控制,是一件必要且有意义的事"
量时间精力用于程序的核心算法设计"并且,DolPhi对
数据库网络有良好的支持,对以后的远程控制扩展比较
有利,Delphi语言严谨易懂,其生成的程序可在其他计
算机上独立执行ll][2]"
2设计思路
2.,通信方式的选择
单片机集成的通信模块常见的有USB!以太网!异
步串行通信口(简称串口),其中以串口最为普遍易用"
从基本的Csl系列8位单片机到本文试验所使用的犯位
单片机McF5213,都集成了串口模块"而且台式机电
脑与工程笔记本一般也设有串口端口,对于没有串口的
笔记本则可使用USB转串口线"串口通信速率通常在
9600bps到一15200bps间,对于状态发送和指令接收已经
足够"系统调试一般为现场调试,串口巧m的通信距离
也满足要求"因此,本文选用串口作为上位机软件与单
片机通信的通信方式"
上位机软件在PC端执行,通过串口线,接收单片机
传来的状态信息,并通过串口向单片机传输指令"为单
片机编写专门的状态信息发送服务程序和指令处理函数"
串口模块棋块串口
如图1所示上位
机软件与电机控
制系统通信框图"
22设计软件的
选择
计算机
上位机软件
显示与绘图
电机控制系统
单片机
{状态发送
控制指令执行指令
图1上位机与电机控制系统通信框图
作为非专业的程序开发人员,可能会基本的C/C++
编程"但windows环境下编程,需要用到大量的API,
直接用C/C料结合Win32SDK设计具有显示功能的软件,
耗时耗力且没有必要"因此设计选择的开发工具应尽量
能简化windows的底层知识"常见的可视化编程软件有
VisualC++,Java,VisualBasi",Labview"其中,Visual
C++和Java强大但不够易用,不适合非专业程序开发人
员使用"Labview比较易用,但不够灵活"VisualBasie
在易用性和灵活性间取得一个比较好的平衡"而Borland
公司出品的DelPhi7相对于VisualBasie,对于本次设计,
功能更加强大而且易用"其一个重要的特点就是,使用
先进的VLC(VisualComPonentLibr娜)进行可视化编程,
强大的vLC可以使窗口设计像画图一样简单"本文所介
绍的上位机软件设计,充分利用了这些VLC,节省出大
3单片机端服务程序设计
单片机端服务程序主要完成的任务是发送系统状态
信息供上位机软件使用并响应上位机软件的命令"电机
控制是一个实时性要求比较高的系统,串口通信速率相
对单片机上MHz甚至几十MHz的系统频率,是相当慢的,
利用不当将严重降低单片机的控制效率"因此单片机服
务程序应尽量减少对控制系统的影响"
首先,状态发送程序执行的调用,应避免中断,至少
不是高优先级中断"因为中断一般用在实时性要求较高
的功能上,如测速中的时间计量!用位置捕获进行换相,
它会暂时中断当前程序段的执行"通常的电机控制中,
系统空闲时会进入主循环,执行一些显示信息和键盘扫
描等要求实时性不高的程序,所以单片机端服务程序应
放在主程序循环中,将中断留给其他要求实时性高的控
制子程序"
其次,选择适当的发送间隔"在电机正常运转时,主
循环执行频率仍然很高,如果不对信息发送间隔加以控
制,会占用大量的单片机资源且容易造成串口信息堵塞"
一般电机的启动过程为5一155,而且单片机使用的速度!
斩波信息等受到稳定性影响,采样滤波计算后变化也不
可能太快"因此100ms对于显示实时速度!PWM信息已
经足够"
最后,为了及时响应上位机发出的指令,应设置串口
接收中断"通过合理的中断子程序,可提高控制效率和
稳定性"
由上述要求,设计的单片机端服务程序的基本流程图
如图2所示"
开始
串口接接
收中断断
存储指指
令信息息
置命令令
其他模块块标志位位
图2单片机端服务程序流程图
THEWORLDOFINVERTERS125
如图2,单片机发送状态信息分为两种"一种发送周
期为ls,单片机已将系统状态信息格式化为文本字符串,
上位机软件直接接收并显示"另一种发送周期为100ms,
使用自设的帧格式,供上位机软件绘图使用"串口模块
设置接收中断,响应上位机的控制指令"
3.1文字信息发送
在单片机内部将状态信息直接格式化为ASCH字符
串的好处是,输出的信息具有良好的可读性,一般的串
口应用程序就能够直接识别显示"信息出现误码后容易
识别出"选择15的发送周期是为了方便操作者阅读,也
不会占用太多单片机资源"
单片机内部处理的速度值!占空比值等一般为整数
型,需将其格式化为可供显示的字符串"整数转换为
字符串的一种方法是,整数除以10的n次方,结果加
48(48对于ASCll的0)得到整数倒数第n位的ASCll值,
将除法的余数重复上述步骤直到得到整数所有位对应的
ASCll值"
3.2绘图信息发送与校验处理
单片机每隔looms发送一次绘图信息给上位机,用
于绘制相应波形"因为调用周期短,不需文字显示,为
了减少资源占用提高发送效率!质量,设计了如图3所
示的信息帧结构"
帧起始标志位}速度高八位!速度低八位}占空比高八位}占空比低八位
}系统时间高八位}系统时间低八位}校验位}
图3绘图信息帧结构
串口传输信号容易被干扰,绘图信息发送频率高,经
常会出现畸变信号"且由于不采用文字显示,出现畸变
信号后不宜被识别出来"因此,有必要对接收的信号进
行滤波"这里采用增加一个校验位的方法,将数据进行
累加并截取为一个字节的长度得到校验位"实际测试中,
增加校验后会滤掉一部分采样信号,但基本不会有无效
信号[,]"
3.3串口程序模块化l4]
单片机与上位机软件通信调用大量的串口通信指令,
有必要将串口通信指令封装成一个模块"串口通信模块
应完成的功能基本上应有:
(l)串口模块的初始化
其函数的声明如下:
voiduart_init(uintsuarteh,int32syselk,int32baud,
uintsintstatUs);
其中uartch为要初始化的串口号,因为单片机上一般
不只集成一个串口,而且系统可能同时要用几个串口"
syselk为单片机系统频率,baud为串口波特率,intsatus
为中断状态,一般要求打开中断,即设为1"其初始化函
数内部的具体内容随单片机类型不同有较大区别,不做
具体介绍"但一般步骤分为相应管脚的初始化,串口相
关寄存器的初始化,串口中断的设置"
(2)字符的发送
其函数声明如下:
voiduart少utehar(uintsuarteh,ehareh):
其中uartoh仍为串口号,ch为要发送的字符"发送
字符一般分为两步,检测发送器空闲,将发送字符写入
发送寄存器"MCF5213上的一种实现方法如下:
while(!(MCF_UART_USR(uarteh)&MCF_UART_
uSR-TXRDY))
;//这是一个循环等待,等待串口发送寄存器空闲
MCF一ART-UTB(uarteh)=(uints)eh;
通过调用串口字符发送函数可实现字符串的发送,如
要发送n个字符,可设置如下循环:
fo叹i=0;i
笼刀发送n个字节
uart夕utehar(uarteh,eh=i]):}
(3)接收寄存器状态检测
即串口是否接收到字符,通过返回相关寄存器的值
即可"
uintsuartesreeeived(uintsuarteh);
(4)字符的接收
其函数声明如下二
eharuartesgetehar(uintsuarteh):
此函数将接收寄存器的内容作为字符型返回"注意在
串口没有接到字符时调用此函数,返回的值将无效,需
在调用前检测是否已接收到字符,如:
If(uartesreceived)word二artesgetehar(0):
3.4控制指令执行模块[5]
串口中断服务程序应尽量简单明了,减少对实时控制
的影响"具体只需将从串口接收到的指令存储在全局变
量中,指令处理单元放在主循环中"一种实现方法如下:
externvoidsrd一uart-int()
王eommandlnsg=(ehar)MCF_UARTesURB(0):
eonunandP=l;}
这里只设置一个字节类型commandmsg来存储控制
指令"当然也可以定义一个数组co~andmsg[:缓存更多
的指令"考虑到一个字节就能实现255种不同的控制方法,
处理多字节指令繁杂且传输数据量越大越不可靠,这里
选择控制指令仅为一个字节"其中"ommandp为接收指
令标志位,在接收到指令后置1"
126THEWORLDOF一NVERTERS
务娜御喇种)一和簿黔绮翔
主循环会不断检测指令标志位,发现指令接收到就调
用指令执行模块"具体程序如下:
if(eonunan即)
{srdesexeeeonunand();
co~an即二0;}
由于本设计选择的指令是单字节的,因此指令执行
函数处理比较简单,主要是一个swich语句,对收到的
co~andmsg判断,执行相应的控制函数"具体程序如下:
voidsrdesexeeeommand()
{
switeh(cornnlandmsg)
{
ease-t.:
srd-start();
uart-sendstring(o,,,S肋start恤ro,,):
break;
,,刀由于篇幅限制,其他控制指令省略
default:
ua几sendstring(0,0UnkllowConunan曲叭o,,);
},
}
4pC机端软件设计
4.1组件搭建与界面设计
由于vLC的易用强大,界面设计花费的时间较少,
只需将相应的控件拖放到设置好的面板上即可"可视化
组件按照图中布置并设置相应属性即可,这里只介绍几
个重要的控件"
为了显示更加丰富的内容,上位机软件采用双窗口,
分别为控制面板Forml和示波器面板FormZ,如图4和
图5所示"控制面板主要完成串口设置!指令发送和文
字状态信息的接收"示波器面板用于将绘图信息帧包含
的速度!斩波信息提取并等绘制成相应波形"
图5示波器面板设计截图
上位机软件的串口操作直接调用优秀的SPComm控
件,来实现串口的打开!关闭和数据传输等操作"SP-
Comm的大部分属性可直接在ObjeetInspeetor中进行设
置,注意其ReadlntervalTimeout应设计为一个较小的值,
以便加快上位机软件的响应时间,本设计中设为10"软
件中还使用了外部控件nrCommLib,调用它可以方便
的列出计算机的有效串口,方便软件的使用"Timer控
制用于定时发送,这里主要用于在串口自动回应模式下
测试软件的发送!接收和绘图功能"示波器面板使用了
iocomP公司的用于工控领域的控件IocomPCOmPonents,
其产品功能强大,能够实现各种仪表的显示效果l6]"
4.2信息发送程序
sPComm将windows串口API封装的很好,直接调
用sPco~的串口发送函数即可:
ommData(PChar(Editl.
Text),Length());
需要注意的是,因为有些ASCll码无法显示,有必
要设置16进制发送"一种方法是,先对用户输入的十六
进制字符串进行过滤,取出有效的16进制字符O二1!A二F,
然后相邻两位结合,算出对应的ASCH值,存储到新的
字符串以待发送"
4.3状态信息接收程序
单片机发送来的状态信息分为两部分"一部分为格
式化好的文字信息,上位机软件接收到后直接显示在控
制面板窗口的多行文本编辑框中"另一部分为绘图信息
帧,需要经过数据提取与校验,发送给绘图程序"由于
windows的缓存机制,单片机传过来的信息暂时放在缓存
中,上位机程序每隔一段事件读取缓存里的内容"当读
到绘图信息帧起始标志字符0x07时,将对后续的7个字
符进行特殊处理"
这里同样设计了16进制显示,方便查看不能显示的
ASCll字符,原理同十六机制发送程序"具体效果如图6
所示"
图4控制面板设计截图
THEWORLDOFINVERTERS127
臼印53刃硒
刃刃刃刃刃
刃刃刃
p出已示
口承泣.
p打开.口
户日州民肠
曦}
.}
抽{
卫8厂一竺鲤8厂一一:!到厂一-
:竺8下一一鲤则厂-一-竺竺厂一-
二日}~厂.-
图6十六进制接收和发送效果截图
4.4绘图程序
上位机软件提取到有效的绘图信息帧后发送给绘图
程序"波形绘制使用IocomP控件的AddXY函数:
Fon刀=0].AddXY(tirneeounter,sPeed);
其中横坐标X为timecouter,表示时间秒,纵坐标Y
为sPed,表示速度r如in"绘制PWM占空比变化情况,
使用同样的函数二
Fon刀l=l].AddXY(timeeounter,Pwmdty);
控制面板显示的信息包括当前计时时间
TimeCounter!当前速度Currentspeed!目标速度
AimSPeed!启动和位置信息positioninfo!pWM占空比
PWMdty"由图中可以看出,系统在805时为停止状态,
目标速度设为400r/min,PWM占空比为0"电机启动后,
速度随PWM占空比升高而升高,在91秒达到目标速度"
发送停止指令后,电机速度在3秒内降为0"
图8为上述电机启动过程中绘制的速度和PWM占空
比变化曲线,其控制方式为模糊控制"由图中可以看到
启动过程中控制系统状态变化的更多细节"PWM占空比
基本上匀速上升,在PWM占空比达到大约500(占空比
最大设为5000)的时候,电机克服静摩擦开始转动,并基
本保持匀加速度"电机停车时,PWM占空比直接置零,
电机为自然降速"由于设置了通信校验,可以看到波形
中丢失了部分采样点,但基本没有出现坏的采样点"
相对于上述模糊控制,本实验又使用了传统PI控制
测试进行对比"
5实验测试与分析[,]["][,]
本次实验测试选择的电机控制系统为开关磁阻电
机控制系统,电机为三相12/8结构,控制器核心为
MCF5213,控制方法采用模糊控制和传统PI控制"本实
验的测试目的在于上位机软件的功能测试,并不是为了
得到一个良好的调速波形,反而对于未优化参数的调速
方法导致的控制结果进行分析将更具有意义"
5.,电机启动与停车
打开上位机软件,选择相应串口,打开串口"单片机
上电复位,如果系统正常,上位机软件会显示单片机传来的
文字信息并绘制波形"本实验设置目标速度为叨肠/min,发
送启动命令后,控制面板输出内容如图7所示"
1
1
}/一一汗11}一几二
/尸厂尹分产产气!
匕///之2广广卜~
图8模糊控制下电机启动与自然停车时绘图面板截图
黝
月止口8习
下..汇级/甘仪口阅山心6闪司以助2自们S,日叫以p.加翔/"OmO内泪如目劝二
S肋S国
了.d汤-,.加浅,O月附朽,目旧刃灿浦闰倒田戊p创如0喇",010八昨帅,曲习
丫翻成以/叮仪目眨CJ例S加叻泣口自.5娜创川加p"喊侧创"飞mOP胡映即呱训3
了.-//.口笼旧C以曰书阵时2洲1内响S,目山加内-如创-,国p叫叫勿口瀚洲
下而成认d.的洲润CJ间呜沁目01口A.S.,皿倒以p"如口喇以,,川户劫陈粉01119
丫.成0,万仪匕眺C.旧朽湘.m咙八命S,例山以几-讼创-;山O入叫御01喇笠
T翻成"别.仪O资C团/心伪咧叻1八.亡脚司川田尸"由0/.1回内叫御01-乃
了而-//.田万7(J侧匀.必口之资灿滔脚叼O幻刀p"山口喇-1溯户人帕加m失刀
下.吠./.匀万月C.,巧阵曰口Z知八.5价ed的阅氏喇.州"1晰内叫内02之刁1
了白州尤...的琅C团刚S-口目O妇司自沽,团O口加氏.自砂曰"1010产胡众幻口乃湘
丁认吐.J门.(1知山州匆.鱿O了呜灿浦牌洲山团7.函份到口,mOP诀乍地,口茜的
下.成如洲.该口引1口心书伪司O王巴灿叭S,目山国p.目盼创"11田户田侧即口2刀2
T.屹区/.的芡粗1曰酬S,目O叨7如占,":阅刃p.白,/心11口队-地,口花田
了.成山日.国田31曰心巧p.扰D412A而5件树以国p.目.创"1ml两门嗽知口表福日
5戌5娜
t.-a川.以n洲仁国份屹伪时口2知人翻S娜川的阅尸亡明沙创""1的内泪断以日1
了.-仇d州以1书1.,州S户,比仍通1灿佰漪团吐旧几目-..0om1P动除粉叮2犯
T.-//.田拐C团州S阴目OX巧八.5价目阅口氏日铂nd""0O黝侧匆国叹口
丫丽哎仪d.田田7C.附石p曰,区砚鸿/占阵侧呱目户"比盼创们",拍户叭洲勿以n2
下.成侧川侧2笼阳C山州S,拭的阅自洁伪时口刃尸幻幽叮创.01,OP劫阪为旧闰习
了.-.别叮口卫地1团州S,斑d以砚-.5讲吧d以K目p"由0/""no户衬协为口旧习
尸-滋翻.空
昌盖三二
r~粗!
~丝竺8厂一竺到1二一一一
匡习厂一竺些l厂一~
尘8!~rT-
:塑8卜
三{到卜
从图9中可以明显看出在电机启动阶段,由于速度差
值较大,在比例积分的控制下,PWM占空比基本上由0
直线上升到很高的数值"速度有明显的超调,超调量约
为100r/min,超调时间大约持续了6s"电机进入匀速阶
段后,PWM占空比值相对模糊控制下的较不平稳,这主
要受速度反馈值变化的影响"说明了模糊控制比PI控制
的鲁棒性要好很多"上位机软件支持日志记录,采样值
的详细数据可以查看软件生成的日志"
5.2电机变速与故障分析
如图10为Pl控制下的电机变速测试"在5185电机
启动,PWM占空比迅速由零升至1500r/min,但由速度
波形可以看出电机并没有正常运转,电机出现了堵转"
在保护措施下,虽然有积分存在,PWM占空比没有继续
上升,并且在15后自动降为O"后面对电机逐渐加速,
可以看到每次变速PWM占空比都有较大的变化,且可以
看出当前PI参数适于200r/min,因为可以看出在此速度
图7电机启动和停车时控制面板截图
128THEWORLDOFINVERTERS
棍群如缈黝20)产1年匀月.
下超调量小,速度比较稳定"
相对比给出模糊控制下电机变速时的系统状态波形,
如图11所示"速度和PWM占空比变化都比较柔和,且
基本没有超调,恒速阶段速度和PWM占空比都比较稳定"
6结束语
通过以上实验分析,可以看出设计的电机控制系统专
用上位机软件不仅具有良好的控制功能,还具有较好的
系统状态显示功能"通过使用此上位机软件对电机控制
系统进行调试,能更好的把握系统状态信息的变化,及
时发现控制中的不足和问题,提高调试效率"
但本次设计的上位机软件系统也有一些不足和需要
改进的地方"上位机软件不能取代传统的测量方法"如
在200r/min时,对于12/8相开关磁阻电机,相电流变化
周期约为6ms"所以相电流斩波波形测量还得依靠LEM
配合数字示波器进行测量"由于单片机在进行A/D转换
时存在转换误差,采样值也受到滤波方法的影响,测量
结果的精确性受到限制"
由于使用了串口数据线进行数据传输,而电机控制系
统强!弱电相结合,有大量的电磁干扰,因此必须加强
抗干扰措施"尽管这样,也有极低的概率会出现控制或
接收暂时紊乱,这对电机控制是相当不利的,有必要加
入额外的保险措施"
八
)!!
/权b5冷)~立.尸!卜产!"尸心勺-尹人!.户~州毛{.
土
图9传统PI控制下的电机启动时绘图面板截图
A,址产产峨产八~勺厂_,"(
,;门傀{(J厂内,.口
匕-脉岁
图10PI控制电机堵转和加速时绘图面板截图
作者简介
刘超(1988一)男硕士研究生,现就读于中国矿业
大学信电学院,研究方向为电机与电器"
护一
%夕沂尸洲气热热飞!_阅门口.州片..
图11模糊控制下电机变速时绘图面板截图
参考文献
{1]姚普选.程序设计教程(Delphi)=M].北京:清华大学出版社,
2004.
=21李现勇.VisualC十十串口通信技术与工程实践=M].北京:人民
邮电出版社,2004
=3]全睿,吕梦,熊茜,何东杰等.基于串口的FCE控制器与上位
机通信设计[J].中国科技论文在线,2008.
[4]王宜怀,陈建明,蒋银珍.基于32位ColdFire构建嵌人式系统[M:.
北京:电子工业出版社,2009.
[5:5213ColdFireIntegratedMieroeontroller
RefereneeManual[M:#2006.
16赵兰涛,苏彦华Delphi串口通信技术与工程实践=M].北京:人
民邮电出版社,2004.
=78ChenHao,entationofThree一Phase
SwitehedReluctaneeMaehine
Gefl一
/ASMETrans
StemfotMotorsand
MeChatronies,June2010.
即on
vol.15,no.3,Pp-421一432.
=81HaoChen,ConstantinPAVLITOVPowerAnalysis
ofSwitehedReluetazleeMaehine
Lar罗
SystemforCoalMain.
MiningSeieneeandTechnology.2009乡vol.19,no石,Pp石57一
659
=9:HaoChen,卿of2000kwSwitehedReluetance
iaEarthandPlanetarySeienee,
2009月vol.l,no.l,PP.1380一1384.
THEWORLDOFINVERTERS129
更多推荐
上位机软件
发布评论