上位机软件
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
下位机软件软软介软
一、系软述概
本文主要介软伺服软台系软的上位机控制软件的软软和软软软程。本软台伺服系软的大架体框如软1所示。
软
1
上位机控制台和下位机PC104通软RS232串口通信。其中~下位控制软算机PC104采用DOS操作系软~上位机控制台是基于VC++6.0软软的行于上位机;运XP系软,的控制软件。本软件的目的是最软软软上位机控制台和PC104之软的通信~而从达到通软操作上位机控制台控制伺服软台的目的。
二、软软功能
根据本伺服系软的技软和功能要求~上位软件需要软软的主要功能如下,
1.基本软置参数
本软置功能包括,参数
,PID的软定~需要分软软定方位和俯仰的参数P、I、D参数
,前软的软定~需要分软软定方位和俯仰的前软参数参数
,零位软定~需要分软软定方位和俯仰的零位
2.基本性能软软
括系软的软软软和软率软的软软。响响
,软软软软软~需要分软软定方位和俯仰软软的幅软响
,软率软软软~需要分软软定方位和俯仰的软率和幅软。响
3.基本控制功能
上位软件包括的基本的控制功能如下,
,伺服待机
,指向功能~需要分软软置方位和俯仰指向的角度
,匀运速功能~需要分软软置方位和俯仰软的速度软
4.软示功能
主要软示下位机软软上位机的信息~分析回软的信息~有软软软行软软提示会当。三、通信软软
通信软软主要软定了上位机软件和下位伺服软算机PC104之软串口通信的格式和容。内上位机软件按照软软软定的软格式向下位机软送命令据~下位机接收软理命令据数数并
依照通信软软软定的格式向上位机软件回软软信息。响
串口通信的特性软定如下,
,物理接口,RS232
,软软速率,9600bps
,软格式,N-8-1;无校软~8据位~个数1停止位,个
命令软的封格式,装
名称软软信息流方向信息软软据容数内软软和软尾字软软度111N11
软软7BH10H;上位机软按下面章软软按下面章软软前面所有字软7DH
往定定累加和~保
PC104,01H;留低8位
PC104软往上位
机,
依照前文提到的功能要求~上位机软往下位机的命令软可分软15软软。其中~据个数
内数确数两数容是以软软软送的。上位机软软软入的命令据是精到小点后位的浮点~软送的据软整型;占字软,。软里的软理方法是,数两个
上位机软送的据数=上位机软入的据数*100
软浮点软整型软理后的各命令软的具格式如下;表中据均软十六软制表示,,数数体数
名称软方软数内据容校软和软软字软
软向软尾数
方位PID7121P、I、D;各占字软,参数两个待定711
B0D俯仰PID7122P、I、D;各占字软,参数两个待定711
B0D方位前软7123方位前软;占字软,参数两个待定77
B0D俯仰前软7124方位前软;占字软,参数两个待定77
B0D零位软定7125方位和俯仰零位;各占字软,两个待定79
B0D方位软软7126方位软软幅软;占字软,两个个待定77
B0D俯仰软软7127俯仰软软幅软;占字软,两个待定77
B0D方位软响7128方位软率和幅软;各占一字软,个待定77
B0D俯仰软响7129俯仰软率和幅软;各占一字软,个待定77
B0D伺服待机712空据数待定75
B0AD伺服指向712方位和俯仰指向角度;各占字软,两个待定79
B0BD匀速712方位和俯仰角速度;各占字软,两个待定79
B0CD下位踪跟712速度、截距和高度;各占字软,两个待定711
B0DD上位踪跟712方位和俯仰角度;各占字软,两个待定79
B0ED初始化712F空据数待定75
B0D方位PID704100;若接收据正,或数确FF;若接收待定76回软B1数据软软,D俯仰PID704200;若接收据正,或数确FF;若接收待定76回软B1数据软软,D方位前软回704300;若接收据正,或数确FF;若接收待定76软B1数据软软,D俯仰前软回704400;若接收据正,或数确FF;若接收待定76软B1数据软软,D零位软定回704500;若接收据正,或数确FF;若接收待定76软B1数据软软,D初始化704600;若接收据正,或数确FF;若接收待定76
回软B1据软软,数D
上位机软件软软软程四、
台上位机控制软件是基于
1布局软软
根据软件的功能要求上位机软件大致分软四域,软置、性能软软将个区参数区区、控制和软示。工程建立成功后控件工具中拖入所需控件~修改基本性区区从条属
;名、大小、软式等,~完成后如软称3所示。
软3
明,VC6.0的基本控件里不包括
2软软软量和事件软函响数
,软软软量
软
3中我软使用的主要控件分软三软,软文本、软软和按软。软控件软软软量的目的静框
是便于软控件的格式、容等软行软置。内
软
于软软~首先软其软软一框个double软型的软量~软软量用软得软软软入的容。其来框内
次再软软一个CEdit软型的软量~软软量用控制软入容的范软、软度等。以方位来内
PID中参数P软软的软软软例。其框ID软IDC_EDIT_AZ_P~软软double型软量
m_Edit_AZ_p~限制取软范软软0-200。如软4所示。
软4
如果在软软软入据超出软定的范软~软出软软提示~如软框内数会5。
软5
再软其软软CEdit型软量m_Control_AZ_p~利用软软型下的SetLimitText函限制数来软入据的软度软数7。在程序中添加如下代软可,即
m
_Control_AZ_p.SetLimitText(7)~
完成上面容后~内VC自软在源文件和软文件中加入软软量的初始化和软置会响
并来框内生成代软~我软可以修改代软软足更多的要求~例如初始化软软的初始容软0~只需要软m_Edit_AZ_p软软0可。即
其他所有的软软的操作之软似。框与
,添加事件软函响数
所
软事件软函~软里是指鼠软点软口上的按软软软件所软软软行的操作。以方位响数窗
PID软置的“定”按软软例。打软【建立软向软】的【参数确Message Maps】软~软
方位PID的定按软控件;确ID软IDC_BUTTON_AZ_PID_OK,添加软软鼠软的
事件软函~命名软响数OnButtonAzPidOk()。完成后VC在软软的源文件中会框
自软添加软函的代软~数个数此软软一空函~不软行任何操作。
相
似的~依次软其他的按软添加相软的软函。完成后所有的事件软函如表响数响数
1所示。
表1 控件软软软函响数列表
控件ID软明软函响数IDC_BUTTON_AZ_PID_P方位PID定按软确OnButtonAzPidOk()IDC_BUTTON_AZ_PID_CLEA方位PID清除按软OnButtonAzPidClear()R
IDC_BUTTON_PI_PID_OK俯仰PID定按软确OnButtonPiPidOk()IDC_BUTTON_PI_PID_CLEAR俯仰PID清除按软OnButtonPiPidClear()IDC_BUTTON_AZ_FF_OK方位前软定按软确OnButtonAzFfOk()IDC_BUTTON_PI_FF_OK俯仰前软定按软确OnButtonPiFfOk()IDC_BUTTON_ZERO_OK零位软定定按软确OnButtonZeroOk()IDC_BUTTON_ZERO_CLEAR零位软定清除按软OnButtonZeroClear()IDC_BUTTON_INIT初始化定按软确OnButtonInit()IDC_BUTTON_AZ_STEP_OK方位软软定按软确OnButtonAzStepOk()IDC_BUTTON_PI_STEP_OK俯仰软软定按软确OnButtonPiStepOk()IDC_BUTTON_AZ_FRESP_OK方位软定按软响确OnButtonAzFrespOk()IDC_BUTTON_AZ_FRESP_CL方位软响清除按软OnButtonAzFrespClear()EAR
IDC_BUTTON_PI_FRESP_OK俯仰软定按软响确OnButtonPiFrespOk()IDC_BUTTON_PI_FRESP_CLE俯仰软响清除按软OnButtonPiFrespClear()
AR
IDC_BUTTON_DISPLAY_CLE接收软示区清除按软OnButtonDisplayClear()AR
IDC_BUTTON_STAND待机定按软确OnButtonStand()IDC_BUTTON_POINT_OK指向定按软确OnButtonPointOk()IDC_BUTTON_POINT_CLEAR指向清除按软OnButtonPointClear()IDC_BUTTON_CSPEED_OK匀确速定按软OnButtonCspeedOk()IDC_BUTTON_CSPEED_CLEA匀清速除按软OnButtonCspeedClear()R
IDC_BUTTON_LOCALTRACK下位踪定按软跟确OnButtonLocaltrackOk()_OK
IDC_BUTTON_LOCALTRACK下位踪跟清除按软OnButtonLocaltrackClear()_CLEAR
IDC_BUTTON_REMOTETRAC上位踪定按软跟确OnButtonRemotetrackOk()K_OK
IDC_BUTTON_REMOTETRAC上位踪跟清除按软OnButtonRemotetrackClear()K_CLEAR
3软事件软函~代软软化写响数
,事件软函响数
完成前面步软后~VC在源文件中生成会写相软的代软。下面的任软就是分软软事件响数内将框数软函部的代软。按照前面通信软软的要求~软软软入的软据按照通信软软的要求封软串口软送可。不软~在装并即窗此之前~需要软串口软行初始化。在口的初始化函中添加如下代软,数
m_ctrlComm.SetCommPort(4); //软软串口;号1-16可软,
m_ctrlComm.SetInputMode(1); //软入方式软二软制方式
m_ctrlComm.SetInBufferSize(1024); //软置软入软大小冲区
m_ctrlComm.SetOutBufferSize(512); //软置软出软大小冲区
//波特率9600~无校软~8据位~个数1停止位个
m_ctrlComm.SetSettings("9600,n,8,1");
if(!m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(TRUE); //打软串口
m_ctrlComm.SetRThreshold(1);
/接收软中有多于或等于冲区
m_ctrlComm.SetInputLen(0);
按照通信软软的要求~在事件软函中~接收到软软软入的据;浮点,后~响数框数数
将数其软软软整型放入软~软算校软和然后软送。
除了我软添加的25按软事件软函以个响数个响数外~软有一串口的事件软函CCOMRTDlg::OnComm()~串口软冲区个数个并每收到一据都软生一事件软用软函。数
,接收软示函数
根据软软要求~下位机回软的据中包数数含特定的校软信息~接受函需要软示接收到的容根据据容作出软。软里软于回软的内并数内响6软软软的信息~分软根据信息软软和据位的容软出数内6软不同软出提示。以方位PID软送软例~如果下位机接参数
收据有软~软上位机控制软件软出如下提示,数
,上位踪函跟数
上位踪函跟数响数数也是事件软函之一。软函软入软是在界面上软入的航迹的高度、截距和速度软~而软送软下位机的是软软航迹公式求得的方位和俯仰的角度软。根据系软要求~需要在每个定软周期;20ms,求得内此刻需要指向的角度软然后软送软下位机。系软踪跟即航迹的软程中不可软行除待机以外的其他操作。在软送航
迹数状据软程中使上位机控制界面中除待机按软以外的其他按软均软不可操作软。在航迹数将据软送完成后其恢软。软里主要介软如何软软高精度定软。
利用Windows API函数QueryPerformanceFrequency( )可以软得系软的软率。用QueryPerformanceCounter;,函可以软得系软软数数当数器的前软软。那软如果需要定软周期软myTime~那软定软方法大致如下,
QueryPerformanceFrequency(freq); //软得系软软率
QueryPerformanceCounter(stop); //软取软数器初软
do
{
//需要周期软行的代软
…………………QueryPerformanceCounter(stop); //软取软数当器前软
top=(double)_stop.QuadPart;
}while((stop-start) <= myTime*freq); //判断定软20ms到否~未到软至do软句,其他软软
由于浮点软化软整型软出软截软将数断数差~软里需要做如下软理,若软入软正~软其加0.5再软软整型~若软入软软~软其数减0.5再软软整型。
此外~软了防止在操作软软软框因软按下“回软”或者“ESC”软软致软软框直接软软退出~需要在源文件中添加软软事件的两个屏数蔽函。
4软件软软
机软软软~利用软串口工具和串口软软虚虚两数数确响确助手软件建立软串口软接软行软软~软软串口端的据收软。软软据软送是否正~软软的软理是否正。
软
机软软软~和下位机PC104通软RS232软行软软。
5部分改软和软软。
软,考软到上位机软件在不同软算机上行软~系软所分运号号配的串口不同。在界面上添加了串口软软;可软端口
了便于上位踪跟数数将数写跟航迹软据的分析~在上位机软送航迹据的同软~存软所软送的方位和俯仰角度软~在软送完成后存软的据入文件~便于软踪效果软行分析。
软软,
1)在上位踪软~跟数当来由于定软软程中需要反软软取系软软器的前软~以此
判断达运定软软软是否到。软软致软件行软占用大量的系软软源。软软软软软~航
迹软送期软无法软待机按软。响考软采用软程软程方法才能软省系软软源。
2)考软到据容可能软软或数内与数将者软尾相同而软致据解软出软~所以所有
命令软的软软固定软一定软度;11字软,~据位不软的软零~软尾在个数第
11字软~校软和在个第10字软。个会但是软软软致上位机通软串口向下位
机软送收据的软软软软。