基于二维传感器通讯控制软件的设计
2014-04-27甘泽民
甘泽民 陈 丁
(1.西安工业大学北方信息工程学院 光电信息系,陕西 西安710032;2.西安黄河机电有限公司 设计研究所,陕西 西安710043)
0 引言
现在很多防务装备(导弹发射架、火炮、雷达天线等)都要求在某一基准工作平面平台始终保持“绝对”水平状态,所以在工作前和工作中都需要进行水平校准。通常测量的高精度角度测量都需要一维或者二维水平传感器进行水平角度测量或者校准,文中设计一种界面简洁,方便操作的二维水平传感器通讯控制软件可以实时地测量特定平台水平度。
1 实现功能
通过二维水平传感器到装备基准平台台的倾斜度,采用RS-485总线传输,保证了数据的可靠性和抗干扰性。
利用Delphi7应用程序编写的该型号的专用通讯控制软件,可以对其进行数据采集,计算,补偿,通过通讯控制软件使用该传感器实现对平台倾斜度的测量。由于Delphi7是新一代可视化开发工具,它具有功能强大、简便易用和代码执行速度快等特点,是全球公认的快速应用开发工具技术的先驱者,它越来越在构架企业信息系统方面发挥着重要作用。Delphi的集成开发环境设计的非常简明,明快,用户可以定制桌面设置,也可以建立一个适合自己的用户界面,特别是在数据库和网络应用方面,Delphi具有简便易用,灵活高效的特点,故采用Delphi7进行其专用通讯控制软件的设计。
通讯控制软件界面窗口见图所示,其中图中1为显示窗口,显示传感器所检测到的角度值;2为打开端口,右侧下拉选项有com1,com2,默认为com1;3为设置地址,右侧编辑框内填写地址,默认为00;4为清零按钮,当点击时,显示窗口数据全部清零;5退出软件,点击后软件关闭;6状态检测按钮,为了防止意外断电后重启后,传感器设置状态不明,点击该按键后检测目前所处的工作状态;7校准设置,每次使用传感器之前必须进行校准设置;8为通讯速率设置,一般默认9600;9为数据刷新速率选项,默认为50Hz;10为零点模式设置,默认为绝对零点;11为选择应答模式按钮,默认为主动输出模式;12为手动读取角度按钮 (当选择应答输出模式才有效);10为按键角度输出单位选项,默认为十进制,还可以选择分秒制,弧度制,密位制。
图1 二维传感器及通讯控制软件窗口
将该型号二维水平传感器是通过RS-485总线连接到PC机,利用Delphi编写好通讯控制软件以后,通过调试后,便可使用。打开串口,设置好相关参数后,当二维水平传感器检测到X轴,Y轴的角度,便可以在程序窗口的显示,从而得到被测面的倾斜角度。
2 程序设计
2.1 SPComm 控件的使用
本软件对二维水平传感器通讯控制是主要采用Delphi中的Spcomm控件所完成的。主要根据而是二维水平传感器的通讯协议,对其发送控制指令和接受其的返回数据。
2.1.1 SPComm 控件引用
Delphi集成开发环境下,选择下拉菜单Component中的 Install Component选项,在弹出窗口中的 Unit file name处填写 SP Comm控件所在的路径,安装后,在System控件面板中将出现一个红色控件COM,即可像Delphi自带控件一样使用COM控件。
2.1.2 SPComm 控件的方法
Startcomm方法用于打开串口,当打开失败时通 常会报错。Stop Comm方法用于关闭串口,没有返回值;Write Comm Data方法是带有布尔型返回值的函数,用于将1个字符串发送到写进程,发送成功返回true,发送失败返回false。执行此函数将立即得到返回值,发送操作随后执行。该函数有2个参数,其中p Data To Write是要发送的字符串,dw Size of Data To Write是发送字符串的长度。
2.2 打开串口主要程序代码
…
mscomm1.Comm Port:=m_port+1; //指定端口
mscomm1.Settings := ’9600,N,8,1’; //其它参数
mscomm1.In Buffer Size :=1024; //接收缓冲区
mscomm1.Out Buffer Size :=1024; //发送缓冲区
mscomm1.Input Mode :=1;//接收模式 二进制方式
mscomm1.Input Len :=0; //一次读取所有数据
mscomm1.S Threshold :=0; //一次发送所有数据
mscomm1.In Buffer Count:=0; //清空读取缓冲区
mscomm1.Out Buffer Count:=0; //清空发送缓冲区
mscomm1.Port Open:=true; //打开端口
MSComm1.R Threshold :=16; //设 置 接 收 多 少 字 节 开 产 生
oncomm事件
edit1.text:=’0.003°’;
edit2.text:=’0.006°’;
end;
procedure TForm1.oncomm(Sender:TObject);
var
buffer:Olevariant;
sTemp:string;
cNow:Char;
tmpX:Double;
begin
if MSComm1.Comm Event=com Ev Receive then//接受事件
begin
buffer:=MSComm1.Input;//读取接受到的数据
…
3 总结
通讯控制软件可以对该传感器实现对平台倾斜度的测量,用软件程序对数据进行采集,计算,补偿,以此得到更精确的物体平台的倾斜角,可以在PC机上显示出来。这样的方法更容易控制传感器,采集数据更加方便,快速,测量的结果更加准确,也能使测量人员更容易架设设备,更容易操作设备,因此这种通讯控制软件是更加有效,精确,快速方便测量倾角的方法。
[1]王学庆.Delphi 6 数据库设计实例导航[M].北京:科学出版社,2003.
[2]郭飞,陈根永,张德玲,等.基于RS485接口的电能计量数据采集[J].微计算机信息,2007,23(22):99-101.DOI:10.3969/j.issn.1008-0570.2007.22.043.
[3]王时绘,朱荣钊.Delphi+SPComm 实现串口通信[J].现代计算机(专业版),2007(8):135-137.DOI:10.3969/j.issn.1007-1423-B.2007.08.047.