某型瞄准线稳定测试系统RS232串行通信的研究

2017-05-24 14:45王辛望沈小林刘新生
计算机测量与控制 2017年5期
关键词:下位单轴上位

王辛望,沈小林,刘新生

(1.中北大学 计算机与控制工程学院,太原 030051; 2.江苏曙光光电有限公司,江苏 扬州 225009)

某型瞄准线稳定测试系统RS232串行通信的研究

王辛望1,沈小林1,刘新生2

(1.中北大学 计算机与控制工程学院,太原 030051; 2.江苏曙光光电有限公司,江苏 扬州 225009)

某型瞄准线稳定测试系统是用于测试和检验班组武器系统、轻型低空反导转管机枪等武器系统中的光电跟踪子系统瞄准线独立性能的专用设备;介绍利用LabWindows/CVI实现上位机与下位机之间的通信,设计了瞄准线稳定测试系统,分析了下位机需要实时检测的物理量信息;为了提高系统的可视性和实现对下位机的控制,通过RS232串行通信技术向上位机传输数据;对上位机利用LabWindows/CVI的控件实现数据采集,数据显示和存储进行了研究;实验结果表明,基于LabWindows/CVI的RS232串行通信的上位机数据采集与显示系统具有可视性强、操作简单等特性。

虚拟仪器;LabWindows/CVI;串行通信;RS232;单轴转台

0 引言

在现代武器控制系统中,经常使用瞄准线来搜索和跟踪目标。在目标搜索和跟踪过程中,瞄准线的空间稳定性十分重要,它可以有效地消除各种误差影响,便于人工捕捉,也可以使跟踪更加平稳跟踪精度更高。根据班组武器系统、轻型低空反导转管机枪武器系统的结构特点,设计了一种新型的瞄准线稳定测试系统,通过上位机对下位机发送指令,下位机接收指令后实现转台上光电瞄具系统的运动,并采集下位机的运行数据[1]。该系统可以完全模拟武器随动系统在水平面上的运动,其中上位机与下位机的通信方式是该模拟系统运行的关键。该文重点介绍了串行通信的连接方法以及通过LabWindows/CVI实现串行通信,最终应用于瞄准线稳定测试系统上位机与下位机的通信,实现数据发送、采集、存储和处理,并验证了该通信方案的可靠性[2]。

1 控制系统的整体设计

1.1 瞄准线稳定测试系统的组成

瞄准线稳定测试系统总体组成如图1所示。其主要由单轴转台系统、目标模拟装置(平行光管及四自由度台架)和数据处理计算机系统以及交流稳压器等四大部分组成[3]。其中数据处理计算机系统作为上位机,单轴转台作为下位机,数据处理计算机系统与单轴转台的通信方式是研究的重点。

图1 瞄准线稳定测试系统总体框图

1.2 串行通信

串行通信是把数据的每一位,用一条1位宽的传输线依次分时传输,即通信双方一次仅传输一个二进制位,并且每次以一个二进制的0、1为最小单位逐位进行传输。串行数据传输的特点是:数据按位顺序进行传输,仅通过一根传输线便可实现,能够节约传输线。串行通信还具有并行通信无法比拟地优势:传输距离长,可以从几米到几千米;在较长距离范围内串行数据传输速率优于并行数据传输速率;而且串行通信的通信时钟频率便于改变;另外串行通信的抗干扰能力很强,其信号间的相互干扰能够彻底消除[4]。正是由于串行通信具有上述优点,所以广泛应用于数据采集、传输及控制系统中。

串行通信中经常使用9针串口(DB9M),9针串口的针脚定义如表1所示[5]。

表1 9针串口的针脚功能

实际应用中一般采用5线进行信号传输,即TXD,RXD,RTS,CTS,GND。5线信号传输连接图示如图2所示。

图2 5线信号传输连接图

RS232总线是一种当今最普遍的通信方式,早期的仪器、PLC等都通过串口与计算机进行数据通信。把具有RS232总线接口的仪器作为I/O接口设备并通过RS232串口总线与上位机构成完整的虚拟仪器系统,依然是当今应用最广的虚拟仪器组成方式之一。该系统上位机与下位机的实际距离较短,并且根据对系统传输速度的要求,所以通过RS232总线连接是最佳的方案。

1.3 串行通信的选择

串行通信需要保证双方按照RS-232标准通信协议实行数据交换。在Windows操作系统的LabWindows/CVI软件平台下编写串行通信程序,可以采用下面几种方式[6]:

(1)利用开发工具自带的函数,LabWindows/CVI的RS-232函数库列出了相对完整的串口通信函数,能够调用此类函数来控制。

(2)利用Windows API函数,API是Windows的应用程序编程接口,它给出了完整的应用程序接口函数,调用其通信函数能够达到系统需要的通信功能。

(3)使用MSComm控件。

(4)使用动态链接库。

使用MSCoom控件控制串口通信的程序设计方法给出了标准的事件处理函数、过程,并且可以方便地实现大部分通信功能,算法简单,易操作;但其编程的灵活性受限,传输速率不高;API是Windows的应用程序编程接口,它列出了完整的应用程序接口函数,功能强大、灵活性好、应用广泛,调用它的通信函数完成系统要求的通信功能,但其原理复杂,无法达到该系统的设计要求[7]。在瞄准线稳定测试系统中,为了满足大数据量传输的要求,增强系统的灵活性,并且满足上位机与单轴转台之间的距离要求。通过大量实验,选择LabWindows/CVI自带的RS-232函数库。当今绝大部分的软件中还没有RS232串口通信专用的函数库,而LabWindows/CVI具有这样的函数库,让繁琐的串口通信便于操作[8]。

1.4 通信方案

为了实现该系统串行通信的功能,根据串行通信的特点,首先在进行串行通信之前,要验证串口是否处于通的状态,对串口进行初始化,并且设置串口的波特率、校验位、数据位等参数,然后测试串口的属性。当串口一切准备就绪,通过RS232接口从上位机向单轴转台发送的指令,单轴转台接收指令后按照指令实现单轴转台的运动,并将测试数采集收实现其通信功能。该瞄准线稳定测试系统的程序流程图如图3所示。

图3 瞄准线稳定测试系统程序流程图

上位机的LabWindows/CVI程序设计主要是完成对串口的设置、发送指令、接收指令和对采集到的数据进行整理、显示[9]。该系统针对RS232的设置有,采用串口COM2;传输速率为9600bps;数据格式为8位数据位,1位停止位,无奇偶校验位;通过上位机向单轴转台发送指令;单轴转台接收指令后产生运动并获得测试数据,将数据通过串口读取。接收到的数据经过适当的运算和操作后利用LabWindows/CVI显示控件显示[10]。

2 程序设计

LabWindows/CVI是美国NI公司推出的32位面向计算机测控方面的虚拟仪器软件开发平台,能够在多操作系统下运行。它将功能强大的C语言与测试、控制有机结合,具有灵活的交互式编程方法、丰富的库函数、完善的兼容性、多种不同的函数调用手段等优势,为开发人员提供了可靠的软件开发环境[11]。利用LabWindows/CVI提供的开发环境和控件,编写上位机程序,实现通过RS232串口对单轴转台进行控制,上位机程序的部分代码如下所示。

2.1 串口设置程序

根据通信方案,设计的代码主要实现数据的发送、采集和处理。首先要在主函数中打开串口,并对波特率等参数进行设置,其代码如下所示:

OpenComConfig(2,””,9600,0,8,1,512,512);//打开并设置串口,此调用语句打开串口2,波特率为9600,没有校验,8个数据位,一个停止位,最大的输入和输出队列长度都为512

SetCTSMode(2,LWRS_HWHANDSHAKE_OFF);//禁止硬件握手

FlushInQ(2);//清空接收队列

FlushOutQ(2);//清空发送队列

…….

CloseCom(2);//在整个程序结束后关闭串口

2.2 数据保存程序

通过串口将数据传输到单轴转台,通过上位机对单轴转台的控制,将单轴转台运动的一系列数据再通过串口传输给上位机,并保存到上位机中用于记录和比较误差,其代码如下所示:

int stat;

char filePath[MAX_PATHNAME_LEN]; //数据保存路径

FILE *fp=NULL;

stat = FileSelectPopup ("", "*.txt", "","测试数据保存为……", VAL_OK_BUTTON,0, 0, 1, 0, filePath);//数据保存

2.3 数据图像绘制程序

根据通信方案所要实现的功能,通过上位机的计算,将返回的数据通过图像绘制出来,使得实验结果更加直观的呈现出来,其代码如下所示:

GetCtrlVal(data_show_panel,DATA_PAN_CMDTORQUE,&view_torque_cmd);

GetCtrlVal(data_show_panel,DATA_PAN_ACTTORQUE,&view_torque_act);

GetCtrlVal(data_show_panel,DATA_PAN_CMDPOS,&view_pos_cmd);

GetCtrlVal(data_show_panel,DATA_PAN_ACTPOS,&view_pos_act);

GetCtrlVal(data_show_panel,DATA_PAN_CMDSPEED,&view_speed_cmd); GetCtrlVal(data_show_panel,DATA_PAN_ACTSPEED,&view_speed_act);//设置测试数据保存路径,点击开始采集后,采集测试数据

fp=fopen(SystemTestFile.dataPath,"r");

fp=fopen("testdata111.txt","r");

if(fp==NULL)

return -1 ;//读取数据文件的第一行数据

fscanf(fp,"%d%d%d%d%d",&loadSimuTest.style,&loadSimuTest.rudderAngel,&loadSimuTest.grad,&loadSimuTest.freq,&loadSimuTest.keepCycle); //读取文件数据

for(int j=0;j<5;j++)

{

fscanf(fp,"%s",str); //去除标题

}

//采集数据长度,方案1

while(!feof(fp))

{

if((fgetc(fp))==' ')

data_length++;

}

data_length-=1; //采集数据长度

//采集数据长度,方案2

for(data_length=0;;data_length++)

{

fscanf(fp,"%f%f%f%f%f" ,

&test_1,&test_1,&test_1,&test_1,&test_1);

if((fgetc(fp))==EOF) //判断是否到达文件尾

break;

}

fseek(fp,0,SEEK_SET); //回到文件开头处

for(int i=0;i<5;i++)

{

fscanf(fp,"%d",&test); //去除标志位

}

3 实验结果与分析

通过瞄准线稳定测试系统对目标进行检测和追踪,根据不同的目标设计出位置方式、速度方式、摇摆方式、外控方式等四种不同的控制单轴转台运动的方式,可以对转台的运动位置、速度、加速度等参数进行设置[12]。当瞄准线稳定测试系统工作时,对上位机输入不同的指令,通过RS232串口将指令传输给转台。根据从上位机接收的指令,控制单轴转台不同的运动方式,其运动数据经过适当的分析和计算以图像的形式呈现出来[13]。待转台完成上位机发送的指令后,将转台运动的数据收集起来,并通过设计的程序将数据如图4的形式存储到上位机中,便于以后查看。

图4 数据在上位机中的存储

4 结论

介绍了基于RS232串口的某瞄准线稳定测试系统,利用LabWindows/CVI作为开发平台,设计出GUI界面通过RS232串口控制下位机的运动[14],并实现了数据的发送、采集、存储及处理等功能,达到了该瞄准线稳定测试系统的设计要求,在军事中具有一定的应用价值。

[1] 雷 霖. 瞄准线独立测试系统设计[D]. 太原:中北大学, 2016.

[2] 张凤均. LabWindows/CVI开发入门和进阶[M]. 北京:北京航空航天大学出版社, 2001.

[3] 黄金波. 双35自行高炮独立瞄准线控制系统研究[D]. 南京:南京理工大学, 2003.

[4] 高志华, 孙秀霞. LabWindows/CVI开发环境下实现串口通讯的方法[J]. 现代电子技术, 2004, 27(2):62-64.

[5] 刘君华. 虚拟仪器编程语言LabWindows/CVI教程[M]. 北京:电子工业出版社, 2001.

[6] 吴松龄.LabWindows/CVI下测控串行通信的实现方法[J].测控技术,2012,31(9):88-91.

[7] 葛磊蛟, 毛一之, 李 歧,等. 基于C语言的RS232串行接口通信实现[J]. 河北工业大学学报, 2008, 37(6):11-16.

[8] 赵长德, 徐 力, 陈 旻. 用于瞄准线稳定和跟踪的计算机控制系统[J]. 电光与控制, 1997(3):20-25.

[9] 陶小亮, 牛 振. LabWindows/CVI多线程技术在舵机测试软件中的应用[J]. 中国测试, 2011, 37(1):81-83.

[10] 王海涛. 基于RS232串口的数控机床程序传输及状态监控系统的研究[D]. 长春:长春理工大学, 2012.

[11] 王建新,杨世凤.LABWINDOWS/CVI测试技术及工程应用(附光盘)[M].北京:化学工业出版社,2006.

[12] 杨晓强, 齐 媛, 史雷蕾,等. 基于Matlab和ADAMS的光电稳瞄系统结构控制联合仿真[J]. 应用光学, 2016(5).:657-662

[13] Szabo R, Gontean A. Creating an RS-232 microchip for controlling the Lynxmotion AL5 type robotic arms[A]. IEEE, International Symposium for Design and Technology in Electronic Packaging[C]. 2015.

[14] 皇甫宜耿, 马瑞卿, 杨永亮. 基于RS232串口通信的双余度无刷直流电动机控制系统[J]. 微特电机, 2007, 35(5):43-45.

Research on RS232 Serial Communication of a Certain Type of Aiming Line Stability Test System

Wang Xinwang1, Shen Xiaolin1,Liu Xinsheng2

(1.School of Computer and Control Engineering,North University of China,Taiyuan 030051,China; 2.Jiangsu Shuguang opto-electronics Co.,LTD,Yangzhou 225009,China)

The stability test system of a certain type of aiming line is a special equipment used to test the independent performance of the photoelectric tracking subsystem of the team, such as the group weapon system, the lightlow altitude anti missile gun and so on. Introduces the realization of communication between PC and single axis turntable by using LabWindows/CVI, designs a line of sight stabilization test system, analysises the single axis turntable to physical quantity information of real-time detection.In order to improve the visibility and to achieve the control of the single axis turntable, data transmission through the RS232 serial communication technology. PC use LabWindows/CVI to control the widget to achieve data reception, data displaying and analysing. The experimental results show that the data acquisition and display system of RS232 serial communication based on LabWindows/CVI has the characteristics of strong visibility, simple operation and so on.

virtual instrument;LabWindows/CVI;serial communication;RS232;single-axis turnable

2016-11-21;

2017-01-05。

王辛望(1991-),男,硕士研究生,主要从事控制理论与控制工程,导航、制导与控制方向的研究。

1671-4598(2017)05-0123-03

10.16526/j.cnki.11-4762/tp.2017.05.034

TP274

A

猜你喜欢
下位单轴上位
低功率单轴超声驻波悬浮原理与实验实现
基于UDS协议的CAN BootLoader的开发与验证
基于STM32和Zigbee的mini宠物智能喂养系统的设计
发射机房监控系统之下位机
特斯拉 风云之老阿姨上位
基于ZigBee和VC上位机的教室智能监测管理系统
围观党“下位”,吐槽帝“登基”
中通公交客车单轴并联式气电混合动力系统
基于VC的PLC数据采集管理系统