基于Q T 平台的雷达伺服调试系统
宣 翔1,刘 悦2
(1.中国电子科技集团公司第三十八研究所,安徽合肥230088;2.长鑫存储技术有限公司,安徽合肥230601
)摘要:针对雷达伺服调试时控制指令给定复杂㊁信号反馈显示不够直观等现状,设计了一套适用性较强㊁操作简易的
调试系统㊂首先在Q T 平台下通过图形化编程,完成串口调试㊁总线调试的界面设计,随后编译形成源代码,通过在源代码中增加硬件驱动接口,完成界面与硬件接口的连接㊂经与可编辑逻辑控制器(P L C )㊁电机驱动器联调测试验证,该调试系统运行状态良好,人机操作简单,且信息反馈直观,极大方便了伺服人员的调试工作㊂
关键词:Q T 平台;伺服调试系统;总线通信;串口通信中图分类号:T N 95;T P 13      文献标识码:A      文章编号:C N 32-1413(2021)02-0100-04
D O I :10.16426/j .c n k i .j
c d z d k .2021.02.021R a d a r S e r v o D e b u g g i n g S y
s t e m B a s e d o n Q T P l a t f o r m X U A N X i a n g 1
,
L I U Y u e 2
(1.T h e 38t h R e s e a r c h I n s t i t u t e o f C E T C ,H e f e i 230088,C h i n a
;2.C h a n g x i n S t o r a g e T e c h n o l o g y C
o .,L t d ,H e f e i 230601,C h i n a )A b s t r a c t :I n t h i s p a p e r ,a d e b u g g i n g s y s t e m w i t h s t r o n g a d a p t a b i l i t y a n d e a s y o p e r a t i o n i s d e s i g
n e d i n v i e w o f t h e c o m p l i c a t e d c o n t r o l i n s t r u c t i o n s g i v e n a n d t h e u n i n t u i t i v e s i g n a l f e e d b a c k d u r i n g r
a -d a r s e r v o d e
b u g g i n g .F i r s t ,t h e i n t e r f a
c e
d
e s i g n o
f s e r i a l p o r t d e b u
g g i n g a n d b u s d e b u g g i n g i
s d e -s i g n e d t h r o u g h g r a p h i c a l p r o g r a mm i n g o n Q T p l a t f o r m.T h e n ,t h e s o u r c e c o d e i s c o m p
i l e d a n d f o r m e d ,a n d t h e c o n n e c t i o n i s c o m p l e t e d b e t w e e n t h e i n t e r f a c e a n d h a r d w a r e i n t e r f a c e b y a d d i n g a
h a r d w a r e d r i v e r i n t e r f a c e i n s o u r c e c o d e .A s s o c i a t e d t r a i l s w i t h p r o g r a mm i n g l o g
i c c o n t r o l l e r (P L C )a n d m o t o r d r i v e r v e r i f i e s t h a t t h i s d e b u g g i n g s y s t e m i s r u n n i n g w
e l l ,a n d h a s c h a r a c t e r i s t i c s o
f s i m p l e m a n -m a c h i n e o p e r a t i o n a n d i n t u i t i v e f e e d b a c k ,w h i c h
g r e a t l y f a c i l i t a t e s t
h e d e b u g g
i n g o
f s e r v o e n
g i n e e r s .K e y w
o r d s :Q T p l a t f o r m ;s e r v o d e b u g g i n g s y s t e m ;b u s c o mm u n i c a t i o n ;s e r i a l c o mm u n i c a t i o n 收稿日期:20201113
0 引 言
随着现代雷达指标的不断提升,雷达伺服系统
朝着高精度㊁高响应方向不断发展,伺服系统性能的提升不仅对伺服系统配套的电气元件性能提出更高的要求,也对系统调试发起了更大的挑战㊂传统的雷达伺服调试由于缺乏人机交互界面,调试过程中更
多依赖于工程人员的项目经验和对电气元件的理解从而给出输出变量,且被控元件相应的反馈信号只能依赖于工程人员通过控制软件中的数据记录分析以及通过示波器在通信端点完成曲线记录㊂
基于传统雷达伺服调试过程中操作复杂㊁变量给定模糊不清且状态反馈显示困难等状况,本文设计开发的一种针对雷达伺服调试的系统,通过控制器局域网络(C A N )总线㊁串口通信等多种方式与外部元件进行信息交互,绘制实时动态曲线图记录电机转速㊁电流等状态信息,且在测试过程中实时编辑
控制指令并发送㊂
1 伺服调试系统界面结构
用户界面是否美观以及易操作是衡量一个U I
界面友好与否的重要标准,用户界面部分作为本系
2021年4月舰船电子对抗
A p
r .2021第44卷第2期
S H I P B O A R D E L E C T R O N I C C O U N T E R M E A S U R E
V o l .44N o .2
统重要的组成部分,布局和设计均基于以上两点完成㊂
Q T 平台作为当今界面设计时常用的软件平
台,其采用的C ++编程语言作为内核语言,设计人员在编程时可以实时进行效果仿真和调试㊂同时,
该平台包含多种实用的外部库,设计人员通过库的调用即可实现与计算机和驱动之间的互连,并实现向程序添加图片㊁多媒体等功能,操作简单㊂本系统基于Q T 平台在界面开发时的以上优势,采用该平台完成用户界面的设计㊂本系统界面设计结构主要包括如图1所示的部分,主页面下包括测试模式和
实验模式2种模式,测试模式主要包括用于显示数字信号输入输出状态的点灯模块,曲线绘制模块主要显示如电流㊁电压㊁速度等实时连续变化的变量用以记录,而串口㊁C A N 通信模块则用于与外部元件实时通信,获取对方状态并下达相应指令㊂实验模式下参数调整模块用于改变用户的自定义参数,并通过指令下达模块下达相应的指令
图1 界面整体构造图
2 界面显示设计
2.1 信号与槽机制
信号与槽机制作为Q T 平台的核心机制,它的
本质是一种用于对象之间通信的机制,当对象改变其状态时,信号就由该对象发射出去,槽用于接收信号,并在收到信号后立即执行相应的成员函数,信号与槽取代了函数指针,使得通信程序的编写变得更加简洁明了㊂其中,信号与槽之间的关系可以描述为:多个信号可以连接到1个槽,1个信号可以连接到多个槽,图2展示了信号与槽之间的关系㊂
Q T 中标准的信号与槽格式为:
c o n n e c t (O b j e c t 1,S i g n a l 1,O b j e c t 2,S l o t 1);2.2 点灯模块
本文设计了点灯模块用于直观地显示如速度到
达等数字变量,如条件满足,则显示为绿,
如条件
图2 信号与槽关系模型
不满足显示为红,或其他的一些警告性情况,呈红黄交替显示㊂
Q T 平台常采用Q p
u s h B u t t o n 类按钮用于变量状态显示,Q p u s h B u t t o n 本身为矩形,本文需要将其变为圆形且显示为特定的图片,这里采用改变样式表的方法,将需要显示的图片样式添加到B u t t o n 的样式表中,并采用s e t S t y
l e S h e e t 函数进行设定,例如s e t S t y l e S h e e t ( Q p u s h B u t t o n {b o r d e r -i m a g e :u r l (:/n e w /p r e f i x 1/g r e e n .i c o );} );即将B u t t o n 设置为绿圆形按钮图片㊂为实现数字变量改变时按钮显示状态随之改变的功能,本文采用了c h a n g
e B u t -t o n i c o
()函数,代码如下:v o i d B u t t o n ::c h a n g
e B u t t o n i c o (){
i f (s p
e e d I s O K )u i->b u t t o n _s p e e d ->s e t S t y
l e S h e e t ( Q p u s h B u t t o n {b o r d e r -i m a g e :u r l (:/n e w /p r e f i x 1/g
r e e n .i c o );} );e l s e
u i->b u t t o n _s p e e d ->s e t S t y l e S h e e t ( Q p u s h B u t t o n {b o r d e r -i m a g e :u r l (:/n e w /p r e f i x 1/r e d .i c o
);} );为实现警告性情况按钮状态呈红黄交替显示,
速度到达模块报警,本文采用了Q T i m e r 类t i m e o u t 函数,通过信号与槽机制将Q T i m e r 计时器与用于
图片交替显示的i c o C h a n g e ()函数相连,实现代码如下:
c o n n e c t (m _t i m e r ,S I G N A L (t i m e o u t ()),t h i s ,S L O T (i c o C h a n g
e ());m _t i m e r =n e w Q T i m e r (t h i s );m _t i m e r ->
s t a r t (10
);在i c o C h a n g
e ()函数中,采用了i n t m _c o u n t 1
01第2期宣翔等:基于Q T 平台的雷达伺服调试系统
变量:
m _c o u n t +=1;
i f (m _c o u n t %2
)u i->b u t t o n _s p e e d ->s e t S t y
l e S h e e t ( Q p u s h B u t t o n {b o r d e r -i m a g e :u r l (:/n e w /p r e f i x 1/r e d .i c o
);} );e l s e
u i->b u t t o n _s p e e d ->s e t S t y l e S h e e t ( Q p u s h B u t t o n {b o r d e r -i m a g e :u r l (:/n e w /p
r e f i x 1/y
e l l o w.i c o );} );i
f (m _c o u n t ==100
)m _c o u n t =0;
通过整型变量随时间计数器自加,并向2取余,
实现交替改变,当m _c o u n t 到达既定数值时需要置位0,函数循环调用,从而实现状态的循环显示㊂
2.3 双缓冲机制
Q T 中采用Q P a i n t e r 类绘制图形,
当控件重绘频繁时,例如实时采集到变量数值变化并绘制成曲线图时,由于屏幕高频率刷新,从而引起屏幕闪烁,
重回频率越高,闪烁越明显[
1]
㊂双缓冲机制的原理是绘制控件时,首先将要绘制的内容绘制在1个图片中,再将图片一次性绘制到控件上,通过这种方式,可以使图片的擦写过程在幕后进行,避免闪烁的效果,原理如图3所示㊂本文数据采集后绘制的曲线图使得屏幕刷新频率较高,因此需要采用双缓冲机制绘制图形
图3 双缓冲机制原理图
代码的实现主要通过r e f r e s h P i x m a p
()函数,首先将当前的p i x 图像赋值给一个临时的t m p
P i x 图像,然后采用Q P a i n t e r 类将采集到的图像信息以及固有的一些属性如坐标轴㊁刻度等在该临
时图像上进行绘制,随后通过d r a w P i x m a p ()函数将临时图像绘制到p a i n t e r 上,再通过事件e v e n t 调用p a i n t -
e r ,从而实现了实时绘制曲线图,擦写过程均在幕后完成㊂
v o i d C u r v e ::r e f r e s h P i x m a p
(){
Q P a i n t e r p a i n t e r (t h i s
);t m p
P i x =p i x ;Q P a i n t e r p p (&t m p
P i x );Q P e n p e n
;Q C o l o r c o l o r (Q t ::w h i t e
);p
e n .s e t C o l o r (c o l o r )p
e n .s e t W i d t h (2);p p .s e t P e n (p
e n );p p .s e n R e n d e r H i n t (Q P a i n t e r ::A n t i a l i a s i n g
,t r u e
);i n t p o i n t x=45,p o i n t y =6
20;//确认坐标轴起点
i n t w i d t h =930-p o i n t x ,h e i g
h t =580;p p
.d r a w R e c t (5,5,950-10,650-10);p p .d r a w L i n e (p o i n t x ,p o i n t y
,w i d t h+p o i n t x ,p o i n t y
);p p .d r a w L i n e (p o i n t x ,p o i n t y -h e i g h t ,p o i n t x ,p o i n t y
);Q P e n p e n D e g
r e e ;
p a i n t e r .d r a w P i x m a p (900,700,t m p
qt进程间通信
P i x );}
2.4 工具栏设计
伺服调试过程中通常需要实时记录实验数据,
如曲线图㊁仪表值等等,为满足调试过程的需求,本系统添加了工具栏,列出了如文件保存㊁图片打印㊁文本打印以及放大㊁旋转等常用工具,如图4所示㊂
图4 工具栏界面图
例如图像打印只需要调用Q P r i n t e r 以及
Q P r i n t D i a l o g 2个类即可调用打印机及其属性,
并将图像打印到文件中㊂
3 通信接口的实现
3.1 串口调试模块
串口通信的概念是按位发送和接收字节,其重
要参数分为:波特率㊁数据位㊁奇偶校验位㊁停止位㊂串口调试模块需要利用到计算机串口驱动,通过设置串口参数实现与外部端口的通信㊂Q T 平台提供
了第三方串口库,只需要在Q T p r o 添加Q T +=s e r i a l p
o r t 代码即可在相应的子程序引用<Q S e r i a l -P o r t >库,
使得代码编写过程更为便捷[2
]㊂在程序中实现自动寻可用的端口号用到以下代码:
201舰船电子对抗
第44卷
f o r e a c h(c o n s t Q S e r i a l P o r t I n f o::a v a i l a b l e P o r t s()) {
Q S e r i a l P o r t s e r i a l;
s e r i a l.s e t P o r t(i n f o);
i f(s e r i a l.o p e n(Q I O D e v i c e::R e a d W r i t e))
{
u i->p o r t N a m e B o x->a d d I t e m(s e r i a l. P o r t N a m e());
s e r i a l.c l o s e();
}
}
U I界面设计中,调用Q p u s h B u t t o n以及Q T e x t E d i t类,可以绘制文本输入和接收框以及相应的按钮㊂按钮是否可用通过s e t E n a b e l(b o o l)函数进行设置,例如发送数据按钮与其他设置参数按钮不能同时操作,因此应设置相应的逻辑关系,按钮通过a d d I t e m()函数即可增加选项用于选择,完成后的串口界面如图5所示㊂
图5串口调试模块界面图
3.2 C A N通信模块设计
C A N通信模块是基于C A N总线协议设计的, C A N总线的概念是控制器局域网,其特点主要包括节点不分主从,通过报文I D进行过滤,速度较快且具备错误检测功能㊂
C A N通信模块通过Q L i n e E i d t类进行设计,由于该类采用的数据是Q S t r i n g类型,而Q S t r i n g类型数据为了清晰展示,通常采用空格符对数据进行分割,从而增加了数据的长度㊂本文为避免数据传输过程冗长,采用了将Q S t r i n g类转换为c h a r型数据进行传输,从而减少串口传输的数据量㊂
通过分析雷达伺服调试过程中可能要采集的数据以及需要下达的指令数据,系统需要的有效数据可能多达10个字节,包括电流㊁速度㊁电压数值等等㊂因此,数据包结构设计如表1所示㊂
表1数据包结构表
数据包头数据数据校验数据包尾(1字节)(10字节)(1字节)(1字节)
为保证数据完整性,C A N通信模块通常采用一种算法对原始数据计算出1个校验值,并将校验值一同发出,接收方用相同的方法计算出校验值进行数据校验,本文采用了目前行业内比较常用的C R C 循环校验法,该方法具有侦错能力强㊁系统消耗小等优点,适用于本系统,主要实现代码如下:
v o i d C A N_c o m::C R C_c h e c k()
{
i f(e n a b l e==1)
{
f o r(i n t i=0;i<c h e c k_s u m-1;i++)
{
c r c=
d a t a[i]^c r c;
f o r(i n t j=0;j<7;j++)
{
t m p1=c r c&&0X0001;
i f(t m p1=0X0001)
c r c=c r c“1^0X A001;
e l s e
c r c=c r c“1;
}
}
}
}
3.3参数调整和指令下达模块
参数调整和指令下达模块即变量输入输出模块,根据雷达伺服系统常用的参数,参数调整和指令下达模块通常包括速度设定,电流门限㊁电压门限㊁使能㊁比例㊁积分㊁微分(P I D)参数调整等㊂本系统通过在界面上提供输入框改变变量值,并通过串口或C A N通信方式送达可编程逻辑控制器(P L C)或其他被控元件,实现参数变更和指令下达的功能[3]㊂4应用实例
在某项目中,采用本系统进行雷达伺服系统调试,通过串口通信建立雷达伺服系统和本软件调试系统的连接,计算机端采用U S B转串口模块,P L C
(下转第120页)
301
第2期宣翔等:基于Q T平台的雷达伺服调试系统
[2]胡茂海,蒋鸿宇,严俊,等.基于A D9910的多通道信号
发生器[J].信息与电子工程,2012,10(1):7781.
[3]刘韬.基于D D S的频率源设计与实现[J].电子科技,
2013,26(1):5658.
[4]张萧.微波D D S频率源技术研究[D].成都:电子科技
大学,2013.
[5]孟秉林,侯文,刘杏娟.D D S仿真模型的建立[J].山西
电子技术,2013(4):5270.
[6]任艳玲.基于A D9850的多功能信号源设计[J].电子
科技,2015,28(6):179183.
[7]陈翘.宽带频率源的研制[D].南京:东南大学,2015.
[8] A n a l o g D e v i c e I n c.A D9910d a t a s h e e t[M].N o r w o o d:
A n a l o g D e v i c e I n c,2012.
[9]喻峰.基于F P G A的低相噪D D S的设计与实现[D].
哈尔滨:哈尔滨工业大学,2007.
[10]刘韬.基于D D S的频率源设计与实现[J].电子科技,
2013,26(1):5658.
(上接第103页)
通过I O量与多种被控元件如接近开关㊁水平传感器等建立连接,通过C A N总线建立与伺服电机的连接从而接收伺服电机各项反馈量并向其下达控制指令,各被控元件及伺服电机结合传动结构件集成为雷达伺服系统,系统组成图如图6所示㊂
图6系统组成图
系统上电后,打开串口界面,搜索串口端口号,建立串口连接㊂通过数据采集,接收到伺服电机电压为380V,通过加载使能,给定相应速度,收集并绘制伺服系统某关节部分位置曲线,曲线显示其完成循环往复运动,与实际运动状态拟合㊂同时,调试系统采集到各被控元件的状态信息,并通过伺服调试系统界面的各点灯模块加以显示㊂经分析,本系统实时采集了被控元件的状态信息,并绘制了相应变量的状态曲线,通过参数调整和指令下达模块可以实时改变输出变量的状态从而实现控制被控元件的功能㊂系统简单明了,操作简易,适合伺服调试人员现场调试㊂系统调试界面如图7所示㊂
通过实际应用可以发现,本系统信息显示和人工操作完全可以满足雷达伺服系统调试的需要
图7雷达伺服调试系统界面
5结束语
本文通过Q T平台设计了一款用于雷达伺服系统调试的系统,该系统包含了伺服系统常用的参数设定㊁通信方式和状态显示,极大简化了伺服调试人员调试过程㊂此外,该系统性能稳定且价格低廉,具有一定的发展前景㊂
参考文献
[1]汪洋,李垚,黄鲁.基于Q T和O p e n C V的无线视频监
控系统[J].微型机与应用,2015,34(10):6769.
[2]吴俊杰,谭勇.基于A R M l i n u x平台的Q t/e自定义键
盘实现[J].中国水运,2011(2):7072. [3]杨柳,庞和明,姜琳颖.嵌入L i n u x及S Q L i t e数据库在
智能监控中的应用研究[J].微计算机信息,2010,26
(24):65-67.
021舰船电子对抗第44卷

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。