数字化随机函数在压力采集测试中的应用

2022-01-19 01:15李晨韵
仪器仪表用户 2022年1期
关键词:结束符控件串口

黄 莉,李晨韵

(上海市计量测试技术研究院,上海 201203)

在对压力传感器及压力仪表的采集测试中,不同激励方式下,传感器响应特性曲线各不相同。为了更好地模拟和测试出压力仪表的计量特性,应用数学信号处理技术将压力激励和压力响应信号进行数字化处理,以更好地实现压力传感器及相关仪表的采集测试[1,2]。

1 数字信号的产生

信号与信息处理时利用计算机或专用处理设备,以数值计算的方法对信息进行变换、分析、综合、滤波、估计、识别等加工处理,以达到提取信息和便于利用的目的。由于数字信号处理技术具有精度高、抗干扰性强、易于集成等优点,因而20多年来在语音、图像、通信、雷达、声呐、自动控制、地震勘探、生物医学、遥感测控、振动工程等领域得到了广泛的应用。这里是将数学信号处理技术应用在压力采集测试中[3]。

均匀分布随机数、正态分布随机数、指数分布随机数、拉普拉斯分布随机数、瑞利分布随机数、对数正态分布随机数、柯西分布随机数、韦伯分布随机数、爱尔朗分布随机数、贝努里分布随机数、贝努里高斯分布随机数、二项式分布随机数、泊松分布随机数。

均匀分布的概率密度函数为:

正态分布的概率密度函数为:

其中,μ是均值;σ2是方差。正态分布也称为高斯分布。类似上述两种随机函数,将所有的随机数函数进行组合并进行曲线显示,得到图1。

图1 多种随机函数的曲线接口图Fig.1 Curve interface diagram of various random functions

2 曲线波形控件

2.1 控件设置

曲线/波形控件是串口屏诸多功能控件里面的其中一个,用于在串口屏上显示波形或者曲线。在USART HMI软件左侧工具箱里面,该控件涉及到指令为add指令、cle指令、addt指令。曲线/波形控件只能在当前页面添加数据点。例如,命令randset 0, 255 add 1,0,rand add 1,1,255 add 1,2,100,randset指令是随机数范围设置。通过add指令是给曲线添加点,该工程是用定时器设定一定时间,每隔一段时间给3个信道曲线添加一个点。曲线一是添加随机值,曲线二是添加固定值255,曲线三是添加固定值100。串口屏所有控件操作的实质都是对属性的修改。曲线/波形控件具有的属性,用户可以随时调整、编辑列表中的属性参数。其中,type和id属性由开发环境指定,用户不可修改。id可通过软件左上方置顶置底间接修改。曲线波形控件属性列表,可以在设备运行中随时读取。sys0=s0.id将数据记录控件s0的id号赋值给sys0变数,s0.x+=10将控件在屏幕上的位置向右移动10个像素点。prints s0.gdc,0将s0的网格颜色从串口发送出去,objname属性不可以读取。比如,在事件代码中写"t0.txt=s0.objname"编译将报错,其中所有绿色控件可以在运行中实时修改。

2.2 基本属性

曲线波形的x,y属性描述控件在屏幕上的像素坐标位置。以屏幕左上角为触摸屏像素坐标原点(x=0,y=0)。x,y属性只能从0~最大分辨率,不能超出屏幕显示区域。如果x,y属性可以超出屏幕坐标范围(-6000~+6000),但是超出屏幕将被裁减,不会显示出来。研发人员如果想做一个控件,但是不想让使用者看到、触摸到,可以把该控件放在屏幕显示区域以外。开发人员使用的时候,使用click指令,或者绑定用户IO。w,h属性描述控件在屏幕上的宽度和高度。w,h属性只能从0~最大分辨率,不能超出屏幕显示区域。x+w,y+h的值可以超出屏幕坐标范围,但是超出屏幕将被裁减,不会显示出来。gdc属性,网格颜色,RGB565的颜色值,仅当sta=单色时,才存在该属性。bco属性,控件背景色属性,RGB565的颜色值,仅当sta=单色时,才存在该属性。pic属性,控件背景图片属性,选择控件背景图片的ID号,仅当sta=图片时,才存在该属性。picc属性,控件背景切图图片属性,选择控件背景切图图片的ID号,仅当sta=切图时,才存在该属性。选择的被切图图片尺寸必须等于对应串口屏的分辨率,否则,可能会导致显示花屏。sta属性,背景填充方式属性[4-6]。

2.3 绘图属性

支持4种背景方式:①切图,从指定与串口屏分辨率相同的全屏图片上,自动窃取控件窗口区域的图片内容作为控件背景;②单色,指定单一的RGB565颜色值作为控件背景;③图片,用户指定一张图片作为控件的背景;④透明,即无背景,以透明的方式直接在控件区域写字符信息。time属性,控件特效运行时间属性。effect设置不为0以后,才存在该属性。当设置了控件的加载特效以后,控件在time的时间内,以设置的特效方式飞到控件所在屏幕的坐标位置。first属性,控件加载特效的优先级属性。effect设置不为0以后,才存在该属性。first可设置的值为0~100,支持多个有特效的控件为同一级别优先级。同一优先级的控件,将在同时被加载到屏幕上显示。不同的优先级中,将根据设置值从大到小依次完成载入。effect属性,控件加载特效属性,一共支持9种效果,仅X系列支持该属性。0-立即载入;1-上边飞入;2-下边飞入;3-左边飞入;4-右边飞入;5-左上角飞入;6-右上角飞入;7-左下角飞入;8-右下角飞入。aph属性,控件半透明属性。aph可设置的值范围为0~127 。为0时控件将全透明(效果为不显示),为127时全显示(没有半透明效果)。drag属性,控件运行过程中是否支持拖动属性。vscope属性,控件内存占用属性,控件支持私有和全局属性。当设置为全局时,控件分配的内存在所有页面都可以访问。离开当前页面后,控件属性数据也不会丢失,缺点是占用系统总内存。objname属性,控件名称属性,该属性在运行中不能获取。id属性,控件id是每个控件在当前页面的唯一标识号,由系统分配,不可修改,可通过软件左上角置顶置底间接修改。type属性,控件类型属性。由系统分别固定数据,比如曲线/波形控件属性为0。disup属性,产生拖动后是否禁用弹起事件:0-否;1-是。默认为否,即拖动的时候是会触发弹起事件。仅当drag=是时,才存在该属性。dir属性,平推方向:0-从左往右;1-从右往左;2-靠右对齐。设置靠右对齐曲线/波形图才会从右往左开始打点;设置从右往左,是从右边开始打点,曲线从左往右不断打点。ch属性,信道数量(最小1,最大4):1-0;2-1;3-2;4-3。gdw属性,网格宽度,0为无网格。gdh属性,网格高度,0为无网格。pco0属性,通道0前景色。pco1属性,通道1前景色,当ch的值大于1的时候存在。pco2属性,通道2前景色,当ch的值大于2的时候存在。pco3属性,通道3前景色,当ch的值大于3的时候存在。dis属性,数据缩放百分比(最小10,最大1000)。disup属性,产生拖动后是否禁用弹起事件:0-否;1-是。默认为否,即拖动的时候是会触发弹起事件。仅当drag=是时,才存在该属性[7,8]。

3 创建调试

3.1 触摸屏设置

图2 触摸屏曲线接口图Fig.2 Touch screen curve interface diagram

打开一个新的空白接口,点击左侧<工具箱>里面的<文本>按钮,当前页面出现一个文本框,创建了一个文本控件,现在编辑文本控件的外观(显示效果)。调整位置和尺寸,将文本控件移置显示区中心位置,并调大到能放下。新添加上“文本控件”预览II.摆放到指定位置并调整到需要尺寸预览,移动位置:鼠标选中控件,拖到需要摆放的位置。重设大小:鼠标指针选中控件的任意一条边,或任意一个角,拖动即可重设大小。如果不想使用鼠标,也可以通过修改属性列表中的“x、y坐标”来调整位置,修改属性列表中的“宽度和高度”来重设大小。文本控件背景显示指定的“单一颜色”。鼠标单击选中控件,拉动属性列表滑块 →找到背景色属性,完成此文本控件的背景色修改成蓝色。控件单色背景填充时还能设置边框效果,根据属性列表里面相应的属性项进行设置。当颜色被使用过后,下次点击选择颜色的时候,使用过的颜色会直接出现在“选择颜色”的下拉选项中。鼠标单击选中控件,拉动属性列表滑块完成控件设置图片填充背景。串口屏支持PNG图片,并完美抗锯齿,图片内容如果不是矩形,请使用PNG格式图片。文本控件背景显示指定的“一张图片中的某一部分”。鼠标单击选中控件,拉动属性列表滑块找到背景图片切图选择属性,点击要添加的图片完成了为控件设置切图填充背景。控件背景选择切图填充时,用于切图填充的图片必须是全屏图片(即图片分辨率和屏分辨率相同、显示方向相同)。

3.2 单片机程序设计

MCU发正弦波给HMI屏显示曲线波形,具体的实现代码如下所示:

3.3 返回数据格式

串口指令执行成功或失败的通知格式,只有当系统变量bkcmd为非0的时候才会返回指令执行成功或者失败数据,每次上电后bmcmd默认为2,即只返回指令执行出错的结果。上位软件编辑时写进资源文件的代码不受bkcmd影响,执行有错误时一定会返回错误数据,成功时不返回数据。设备返回数据的结束符为“0XFF 0XFF 0XFF”3个字节。0X00无效指令,0X00+结束符,当收到用户发来的无效指令时返回此数据。0X01,指令成功执行,0X01+结束符,用户发来的指令被成功执行完毕时返回此数据。0X02控件ID无效,0X02+结束符,用户发来的指令中包含无效控件ID或者无效控件名称时返回此数据。0X03页面ID无效,0X03+结束符,用户发来的指令中包含无效页面ID或者无效页面名称时返回此数据。0X04图片ID无效,0X04+结束符,用户发来的指令中包含无效图片ID时返回此数据。0X05字库ID无效,0X05+结束符,用户发来的指令中包含无效字库ID时返回此数据。0x06档操作失败,0X06+结束符,操作档失败的时候返回。0x09 CRC校验失败,0X09+结束符,带校验的指令通不过的时候返回此数据,指令校验说明。0X11波特率设置无效,0X11+结束符,用户发来的波特率配置指令中包含无效波特率参数。设备支持的波特率有:2400 4800 9600 19200 38400 57600 115200,0X12曲 线 控 件ID号或信道号无效,0X12+结束符,用户使用add指令往曲线控件添加数据的时候,曲线控件ID号或信道号无效时返回此数据。0X1A变量名称无效。0X1A+结束符,当串口收到的变量名称为无效名称时返回此数据。注:控件属性也称为变量,比如您设置一个控件的属性的时候,输入的是一个它没有的属性名称,也会返回此数据。0X1B变量运算无效,0X1B+结束符,比如文本控件t0的txt属性赋值时应该写成t0.txt=“abc”。0X1C赋值操作失败,0X1C+结束符,属性赋值失败的时候返回此数据。0X1DEEPROM操作失败,0X1D+结束符,操作EEPROM失败时返回此数据。0X1E参数数量无效,0X1E+结束符,用户输入的指令中参数数量错误的时候返回此数据。0X1FIO操作失败,0X1F+结束符,操作IO失败时返回此数据。0X20转义字符使用错误,0X20+结束符,转义字符使用错误时返回此数据。0X23变量名称太长,0X23+结束符,变量名称长度最大29个字符,超出就会返回此数据。0X24串口缓冲区溢出,0X24+结束符当串口缓冲区被占满以后会返回此数据。缓冲区溢出以后,缓冲队列里的指令执行完成后会为缓冲区腾出空间以继续接收指令,在此之前,串口收到的数据将会丢弃。

4 结论

应用数学信号处理技术编辑均匀分布、正态分布等随机函数,以模拟压力仪表的随机激励信号进行系统性的采集测试。调用USART HMI触摸屏进行压力数据的实时曲线显示,经过压力传感器及触摸屏的实物测试,此方法可以有效提升压力计量仪表和设备的测试效率,达到了预期的设计效果。

猜你喜欢
结束符控件串口
基于C++Builder 的电子邮件接收程序设计*
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
MCS—51单片机中的多串口通讯技术的应用
下周6家公司解禁股过亿
英国脱欧可能推迟至2019年底
欧央行维持零利率
其实你也很富有