關於這個問題,若時分秒要分開計算,會有進位上的判斷問題(分秒是60進位),只會讓程式更複雜
基於上述的原因,不使用系統時間元件Seconds To Date/Time,採用另一個計時元件Tick Count (ms)來計時
Tick Count (ms)元件的計時單位是微秒(ms),也就是千分之一秒,所以程式一開始是把時分秒的設定數值全計算改變為微秒,統一計時的單位
方法是把時的數值乘以3600000(1小時等於3600000微秒),把分的數值乘以60000(1分鐘等於60000微秒),把秒的數值乘以1000(1秒等於1000微秒),相乘完畢後全部相加
輸入時分秒的數值元件要全部改成U32的數值格式(LabVIEW計時用的數值格式),比較不會有數值溢位的問題
輸入的數值元件有加上設定避免輸入太離譜的數值,方法是從數值元件的Properties去修改屬性,時的元件限制為0到23,分和秒的元件限制為0到59
計時的部份用2個Tick Count (ms)元件,1個在迴圈外,另1個在迴圈內,用迴圈內的元件數值去減迴圈外的元件數值,這個數值是以微秒(ms)為單位增加
倒數的部份將計算好的設定數值減去Tick Count (ms)元件相減後的數值即可,算出的數值是以微秒(ms)為單位減少
再來的問題是如何將倒數的微秒數值還原成時分秒顯示?這裡使用Quotient & Remainder元件取商數輸出,時的部份除以3600000(1小時等於3600000微秒),分的部份除以60000(1分鐘等於60000微秒),秒的部份除以1000(1秒等於1000微秒)
最後將數值轉成文字字串,將文字字串合併後輸出顯示
完成的程式
程式執行畫面
留言列表