基于VB的UCAM系列应变仪测控软件设计

2019-07-25 09:21
计算机测量与控制 2019年7期
关键词:窗体参数设置数据表

(中国船舶科学研究中心,江苏 无锡 214082)

0 引言

UCAM-70A是日本共和电业株式会社研制的一款应变测量系统,包含主机和多台扩展机箱,最多可同时测量1000个通道的应变/压力等数据。在我国多个行业结构监测领域应用广泛。我所某结构实验室曾引进多套该型设备,由于当时购买时尚无配套的上位机软件,所有操作均需在仪器主机上进行。传统的试验测试步骤为:1)在仪器主机上进行参数设置,包含通道范围、通道测量类型、扫描速度等参数;2)手动测试;3)在主机自带的微型打印机上将各测量通道的测量值打印输出;4)人工将纸质数据录入电脑;5)对数据进行后处理、绘图、分析。由于操作步骤繁琐,且人工设定参数及人工录入环节容易出错,大量时间精力花在参数设置、数据后处理上,总体测试效率很低。即便后来厂家已有配套的上位机软件,然而其功能仍比较简单,后处理工作仍很大,难以满足快速测试及数据处理的需要。迫切需要一款合适的上位机测控软件以提高工作效率。应变测量系统框架如图1所示。

图1 UCAM-70A应变测量系统框图

1 软件需求及功能分析

1.1 软件需求

1)业务级需求:结构实验室希望能在较短时间内开发出一款自动化程度较高的上位机测控软件,大幅提高试验测试效率;

图2 软件流程图

2)用户级需求:采用主流的Windows操作系统,界面友好,操作直观,且运行稳定。

1.2 功能要求

通过需求分析,归纳出软件需包含的功能要求为:1)上下位机之间数字通讯功能;2)参数设置及下载功能;3)口令登录及修改功能;4)通道监视及超限报警功能;5)初始平衡功能;6)手动测量及自动定时测量功能;7)自选通道绘图功能及自动绘图功能。8)打印及预览功能;9)仪器操作功能;10)数据后处理线性拓展功能;11)数据综合汇总功能。

2 上位机测控软件设计

2.1 开发环境

操作系统选用Windows XP,数据库软件选用Access,编程工具选用Visual Basic 6.0结合第三方表格控件FlexCell。

2.2 具体实现

2.2.1 软件流程

软件流程如图2所示。软件启动后首先弹出欢迎界面,随即显示密码登录窗体,只有输入正确的密码才能进入主窗体。也可在密码登录窗体中修改登录密码,若两次输入的新密码一致按确定键后将保存新密码并进入主窗体。进入主窗体后主要操作流程为:通讯端口设置及测试→测量通道、结构参数设置→参数下载→初始平衡测量→手动/自动测量→手动/自动绘图→数据后处理。

2.2.2 通讯编程

1)通讯编程步骤

UCAM-70A的通讯接口为9针D形串口,通讯协议为RS-232C,VB 6.0集成编程环境提供了封装好的MSCOMM串口通讯控件,可以方便地进行串口参数设置及数据收发控制及故障捕捉处理。通讯编程步骤如下:

(1)在VB6.0集成编程环境中依次单击菜单“工程”/“部件”,在弹出的“部件”对话框中选中“Microsoft Comm Control 6.0”确定退出,在控件栏即显示图标。

(2)将控件栏中的MSCOMM控件图标拖至主窗体中,命名为MScomm1,可直接在其属性窗口中修改其串口号、通讯波特率、数据位、停止位等参数进行静态设置,也可在代码中给其属性赋值进行动态设置。通常参数设置为:MScomm1.settings=“9600,e,7,1”。表示波特率=9600,校验方式为偶校验,数据位为7位,停止位为1位。

(3)打开串口,方法为:MScomm1.Open,之后用MScomm1.Out=“…”方法将数据发送出去。

(4)串口接收缓冲区收到的数据≥设置的“RThreshold”时触发中断,可在中断处理程序编写代码对收到的数据进行解析、运算、转存等操作。若通讯发生故障,可在故障处理程序中对不同的故障代码进行重新发送等操作。

2)UCAM-70A串口通讯协议。

UCAM-70A上电后串口处于侦听状态,根据收到的不同指令报文(上位PC机)反馈不同长度的状态报文。主要的几种通讯协议为:①通讯握手,指令报文=“RS-”,若状态报文=“232C”,则表示握手成功;②初始平衡:指令报文=“INI”, 状态报文为设定通道范围的初始平衡测量值;③测量模式设置:指令报文=“FNC”+通道号(000-999)+测量模式代码(1-MEAS模式,2-ORIG模式),无状态报文反馈;④传感器类型设置:指令报文=“MOD”+通道号(000-999)+传感器类型代码(00-30,例如:01:1G120,03:1G240,04:1G35005:1G120/D等);⑤设置测量次数:指令报文=“REP”+测量次数(00-99),无状态报文反馈;⑥设置测量速度:指令报文=“SPD”+测量速度代码(00-99),无状态报文反馈;⑦监视测量:指令报文=“MON1”,状态报文为周期性更新的各监视通道当前测量值;⑧测量:指令报文=“STA”,状态报文为周期性更新的各测量通道测量值。

3)通讯编程示例。

①指令报文:“INI”,收到报文格式为:“INI,01,26,2018,22,06,59”(第1帧),“01,001, 9999999,00,0,0,0”(第2帧),…“01,100, 9999999,00,0,0,0” (第101帧)…;②指令报文:“MON1”,收到报文格式为:“MON,01,31,2018,15,23,33”(第1帧),“08,000, 9999999,57,0,0,0”(第2帧),“01,001, 9999999,00,0,0,0”(第3帧)…“01,100, 9999999,00,0,0,0” (第102帧)…;③指令报文:“STA”,收到报文格式为:“RTM,01,26,2018,22,14,09”(第1帧),“01,001, 9999999,00,0,0,0”(第2帧),…“01,100, 9999999,00,0,0,0” (第101帧)…。

2.2.3 FlexCell表格控件的应用

本软件中需要用到大量的表格,若采用VB自带的表格控件,不但编程工作量极大,且不够美观。本设计采用了第三方商用表格控件FlexCell。FlexCell是主要为Visual Studio系列编程工具开发的表格控件,具有几个显著的优点:1)功能全面,包括:输出Excel文件(不需要安装Excel)、输出HTML/CSV文件、输入/输出XML文件、打印和打印预览、冻结行列、合并单元格、排序、图表、OwnerDraw模式等。2)易于使用,它融合了Excel、MSFlexGrid和DataGridView的很多优点,更符合用户的使用习惯。安装包中提供了完整的VB6、VB.NET等语言的演示程序,易于上手。3)输入方便,它提供了TextBox、ComboBox、CheckBox、Button、HyperLink、Calendar、Time、DateTime和Barcode等单元格类型,可以设置Letter、Upper、Lower、Digital、Numeric等多种类型的Mask,使用Mask能够自动控制用户输入,减少输入错误。4)打印方便,FlexCell提供了方便的打印和预览功能,可以添加分页符,可以方便地修改页面设置,例如:纸张大小、纸张方向、页边距、缩放比例、打印范围、单色打印、页眉和页脚、可重复打印的标题行和标题列。

FlexCell表格控件的注册及使用方法如下:

1)安装FlexCell控件包,按其官方提供的注册码注册;2)在VB菜单“工程部件”对话框中“控件”选项卡中选择“FlexCell ActiveX Control module”;3)在VB控件面板中点击“Grid”按钮,然后在窗体所需放置表格控件的位置拉出表格,之后即可对该表格控件进行行列标题、字体颜色、背景颜色、单元格类型等显示属性设置及数据填充等操作。

2.2.4 图片自动插入Word文档方法

对于测量通道较多的测试任务,数据量大,所需绘制的图形很多,若采用手动的图片插入方法,则后期数据处理的工作量也很大。本软件采用了引入Word对象,将图片批量插入Word文档的处理方法,极大减少了后处理工作量。使用方法为:1)在VB菜单“工程引用”对话框中添加“Microsoft Word 9.0 Object Library”引用,一般定位为“c:windowssystem32MSWORD9.OLB”。2)在窗体通用声明中定义word对象,例如:Private wdApp As New Word.Application;3)之后在需要插入图片到Word文档的事件代码中进行Word文档创建、集合定义、属性设置及图片插入、保存及退出操作。示例如下:

1)通用声明

Private wdApp As New Word.Application

Private mySelection As Word.Selection

2)创建文档及属性设置

Set wdApp = New Word.Application

wdApp.Documents.Add

Set mySelection = wdApp.Documents.Application.Selection

With mySelection

.Font.Name = "宋体"

.Font.Size = 12

.ParagraphFormat.Alignment = 1

End With

3)插入图片

mySelection.InsertAfter TestName & "_曲线汇总"

mySelection.InsertParagraphAfter

mySelection.Collapse Direction:=wdCollapseEnd

For Drawi=0 to Pmax

mySelection.InlineShapes.AddPicture jpgfilenm '插入图片

mySelection.InsertParagraphAfter '换行

mySelection.Collapse Direction:=wdCollapseEnd '光标到最后

mySelection.InsertAfter "第" & Drawi & "组曲线"

mySelection.InsertParagraphAfter

mySelection.Collapse Direction:=wdCollapseEnd

Next

4)保存并退出

wdApp.ActiveDocument.SaveAs wordfilenm

wdApp.ActiveDocument.Close

wdApp.Quit False

2.2.5 数据库表结构及防错处理

本设计选用了Access数据库。数据表分成两类,一类是静态数据表,例如“通道测量参数”、“通道结构参数”、“初始平衡值”等,这些数据表的行列结构在每一个测量任务中是固定不变的;另一类是动态数据表,例如“测量结果”、 测量时间”、“测量修正值”、“应力计算”等,这些数据表的行列结构随测量次数的增加会不断变化。由于最终用户希望数据库的结构尽量直观,最好是用Access数据库打开表格即可看到直观的行标题和列标题及格式化的数据,所以在定义数据表结构时没有采取传统的以列为字段、以行为记录的方式,而是每测量一次,数据表在最右边增加一列,行数保持不变的数据结构。这就要求每测量一次数据,每个动态数据表需要重写一次。为了防止重写数据表时因意外失败导致原先测量的数据丢失,在每完成一次新的测量需要刷新数据表时,把原数据库以别名另存(例如Test2.mdb),再打开数据库(例如Test.mdb)进行更新数据表操作,这样始终保持有两个数据库文件,只差一次测量数据。万一在更新数据表时出错导致现用数据库文件(Test.mdb)损害,可关闭软件,并将损坏的现用数据库文件删除,将旧数据库文件(Test2.mdb)更名为现用数据库文件(Test.mdb),再运行软件,则原先的数据可自动读入并继续测量,只是丢失了一次测量数据而已。

2.2.6 软件主界面

软件界面采用一个主窗体和多个子窗体结构,便于管理。软件启动后首先弹出动画欢迎窗体,之后显示密码登录窗体,输入密码正确后方可进入主窗体。在密码登录窗体中也可以修改密码。主窗体界面如图3所示:主窗体最上方为菜单,其下方为快捷按钮。软件操作顺序一般为:1)通讯端口设置,测试通讯正常;2)环境设置;3)设置通道测量参数并保存;4)设置通道结构参数并保存;5)参数下载;6)初始平衡,并保存;7)测量并保存;8)数据后处理。

图3 软件主窗体

测量窗体中分成“本次测量”、“数据汇总”、“手动绘图”、“自动绘图”四个分页,如图4所示。“本次测量”页显示所有通道在同一次测量中的所有数据及单位;“数据汇总”页显示所有通道历次的测量数据。

“手动绘图”页中可自由设定X轴和Y轴通道,以灵活的方式显示不同通道的数据耦合关系,如图4所示。

图4 手动绘图窗体

“自动绘图”页中X轴可设定为“压力”通道测量值或“时间”,Y轴为各应变通道测量值,软件自动绘制出所有通道的曲线图,并可自动生成全部图形文件或自动将图片插入Word文档,也可直接打印当前绘图,如图5所示。

图5 自动绘图窗体

3 软件测试与分析

测控软件运行于具备RS-232C串口的台式机或笔记本电脑时,与UCAM-70A通讯稳定可靠。由于计算机硬件的更新速度很快,较新的台式机一般不再把RS-232C串口作为标配,特别是便携式电脑,新款机器很少再配置串口。串口扩充一般有两种方式,一种是采用常规的串口扩展卡,另一种是采用USB转232口的转换电缆。经测试,采用多款市售的串口扩展卡进行通讯时没有发现通讯异常问题,但在使用某款无源的USB转232口的外置式转换模块通讯时出现了异常,采用替换法,将该转换模块用于某著名厂家的PLC及其自身的PLC编程软件通讯时也出现了通讯异常现象,经串口数据后台侦测发现其数据有偶然丢失现象,可以判定是该款转换模块质量问题,应是抗电磁干扰能力较弱所致。经实测比较,一般有源的USB转232口转换模块通讯比较稳定可靠。

软件开发基本结束后转入测试阶段,分别与实验室的三台UCAM-70A进行通讯测试,发现三台机器的通讯协议有细微差别,白色机箱与绿色机箱的机器在单位代码上有细微差别,导致在用到某些单位时计算结果错误。为解决此问题,在软件界面上增加了一个参数设置选项,用户使用前先将机箱类型参数设置为与实际机箱类型一致,软件代码根据机箱类型参数分别对涉及单位的计算部分进行差别化处理。

继UCAM-70A之后,共和仪器又推出了新款应变测试仪UCAM-60B,机器更轻巧,更便携,还增加了以太网通信接口。采用以太网通信接口可以大幅提升通信速率,特别是在较多通道同时测量的场合。为了将该套测控软件既可用于串口通信又可用于以太网口通信,对UCAM-60B的以太网通信协议进行了分析,对通信部分的代码进行了局部改写,主要采用Winsock控件进行通信握手及数据收发。经实际通信测试,与串口通信方式相比,在较少通道测试时效率差别不大;但在较多通道同时测试时测量效率可大幅提升。

4 结束语

基于对UCAM-70A技术手册的深入研究及串口侦测,在掌握其串口通讯协议规则的基础上,运用Visual Basic编程工具结合第三方表格控件及数据库组件开发了基于PC机的上位机测控软件,实现了便捷的参数设置、高效的测量与后处理功能,极大地提升了测量及后处理效率及数据可靠性。并通过对UCAM-60B等其它系列应变仪通讯协议的比较研究,对软件的通讯协议部分作局部修改后可广泛适用于UCAM系列应变仪,该软件设计方法及成果在结构监测领域具有借鉴及推广应用价值。

猜你喜欢
窗体参数设置数据表
基于VBA 的教务数据平台研究
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
湖北省新冠肺炎疫情数据表
试谈Access 2007数据库在林业档案管理中的应用
基于Qt的多窗体快速并行图形绘制方法研究
逃生疏散模拟软件应用
蚁群算法求解TSP中的参数设置
RTK技术在放线测量中的应用
基于STM32处理器的大棚温湿度监控系统设计