格式字符串形式实现LabVIEW的XY图时间轴显示格式切换

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下载页面

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章