LabVIEW是工控领域常用的界面开发软件,不管是在实时采集还是在离线分析,有时都需要查看x轴为相对时间或绝对时间格式的图表信息。在常用做法中,采用波形图即可快速地按HH:MM:SS dd-mm-YY格式去显示横坐标。
但是波形图表接收波形数据类型,该类型包含了波形的数据、起始时间和时间间隔(△t)。创建波形(模拟波形)函数可在图表的x标尺上划分时间,并自动使用x标尺刻度的正确间隔。在指定了t0和单元素Y数组的波形中,各个数据点均拥有时间标识。可见,波形图表的各个X点数据需要包含时间标识,这导致波形数据更为复杂,且想要切换显示时,给起点归零的显示需求带来麻烦。
在这里我们采用XY图来作为显示图表,并利用代码来切换时间显示格式。XY图是多用途的笛卡尔绘图对象,用于绘制多值函数,如圆形或具有可变时基的波形。XY图可显示任何均匀采样或非均匀采样的点的集合。XY图可显示包含任意个数据点的曲线。XY图接收多种数据类型,从而将数据在显示为图形前进行类型转换的工作量减到最小。
XY图接收曲线簇数组,其中每条曲线为一个点数组。每一个点是包含x值和y值的一个簇。XY图也接收曲线簇数组,其中每条曲线是一个复数数组,X轴和Y轴分别显示复数的实部和虚部。
话不多说,进入本文主题。XY图的属性中,提供了两个渠道去修改X轴的显示格式:XScale.Format(显示格式)和XScale.FormatString(格式字符串),见下图。这两种都可以在属性节点-X标尺的下级菜单中找到。
XScale.Format采用的是系统预制形式的格式,在设置为6-相对时间时,只显示“小时:分钟:秒”;在设置为7-绝对时间时,显示为“小时:分钟:秒(换行)年-月-日”。这两个设置中,默认的秒的精度都在6位,且不好更改,尤其是封装成可执行文件之后,并不便于用户自行修改显示精度。这样看起来就很臃肿。
为了更美观高效地切换显示时间格式,我们采用格式字符串来切换时间轴的显示。在前面板如下:
通过设置显示的精度,程序中将其合并成格式代码,并赋值给格式字符串来修改时间轴格式。
各个格式代码,可以在前面板:XY图-属性-显示格式-高级编辑模式中去查找:
相对时间(以秒计)
格式字符串代码:
%#.4f
代码解析:
- %- 代码块起始符
- #- 忽略无效的0
- .4f 以精度为4的浮点数显示
显示效果如下:
相对时间(HH:MM:SS)
格式字符串代码:
%^<%H:%M:%S%#.4u>t
代码解析:
- %<>t 相对时间的标准容器
- ^ 从0开始计算时间
- %H 小时
- %M 分钟
- %S 秒的整数
- %#.4u 秒的小数部分,正常格式为%.4u,即精度为4的小数部分
显示效果如下:
绝对时间不带日期(HH:MM:SS)
格式字符串代码:
%<%H:%M:%S%#.4u>T
代码解析:
- %<>T 绝对时间的标准容器,绝对时间的零点时间为1904-1-1 08:00:00 am
- %H 小时
- %M 分钟
- %S 秒的整数
- %#.4u 秒的小数部分,正常格式为%.4u,即精度为4的小数部分
显示效果如下:
绝对时间带日期(HH:MM:SS yyyy-mm-dd)
格式字符串代码:
%<%H:%M:%S%#.4u
%Y-%m-%d>T
代码解析:
- %<>T 绝对时间的标准容器,绝对时间的零点时间为1904-1-1 08:00:00 am
- %H 小时
- %M 分钟
- %S 秒的整数
- %#.4u 秒的小数部分,正常格式为%.4u,即精度为4的小数部分
- %Y 年份
- %m 月份
- %d 一个月中的日
显示效果如下:
这里提供本范例源程序vi的下载:点击这里直达CSDN下载页面。