格式字符串形式實現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下載頁面

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