LabVIEW Pro 專業論壇-技術討論區-定時啟動
 
     
 
 
 
LabVIEW 討論區基礎教學每月專題分享技術問題精選online Test
技術討論區 程式分享區 教育訓練與認證區 閒話家常區 工作機會討論區 回報區 ✦LabVIEW NXG 特區✦ 高手專訪系列
 熱門關鍵字 
    TOP 資源排行榜    量測概念充電站    取得 NI 協助    3小時內學會 LabVIEW    CLD 考前衝刺
 您的位置:首頁 > 技術討論區 > 定時啟動
  技術討論區   板主:meiae
 之1(7篇)
定時啟動  
 
ruisiou
暱稱:Ruisiou
經驗值:56
等級:技工
發文:2
回文:2
版本:請選擇
闖關狀態:
荒蕪之地
前往地圖:
 
字級設定

各位大大好!
我的問題是如果想要做一個定時啟動的程式要怎麼做?
我想了很久   
我的動作是想要一個計時迴圈一直在計時
記時的時間到用ture 去觸發我的主程式執行
但是記時迴圈不能停 還要繼續計時 等待下一次條件到達
主程式部分 等到執行完 等待下一次的觸發
不好意思麻煩各位大大了
謝謝

  文章人氣: 1157 讚:0 文章日期:2018/03/14 09:48
jimmy20154

暱稱:Joy
經驗值:335
等級:師傅
發文:2
回文:34
版本:LabVIEW 2015
闖關狀態:
前往地圖:
1樓
字級設定

計時器到時是 主程式執行完再重新計時 還是 主程式執行瞬間就開始計時(主程式還未執行完)?

    讚:0 文章日期:2018/03/14 10:06
jason1

暱稱:jason
經驗值:2276
等級:舵主
發文:0
回文:87
版本:請選擇
闖關狀態:
英雄殿
前往地圖:
2樓
字級設定

可以參考附圖

時間到就將基準點歸零,重新計時

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
附件檔案:    
g100.jpg
    讚:0 文章日期:2018/03/15 08:08
labviewpro


2013 LabVIEW 至尊爭霸賽參賽者    
暱稱:labviewpro
經驗值:1154
等級:堂主
發文:2
回文:81
版本:請選擇
闖關狀態:
迷霧之森
前往地圖:
3樓
字級設定

您想要做的是依照時鐘的時間定時進行?(A)

還是間格時間相同的執行?(B)

另外你希望的"定時",要有多少精準度?大約一秒內的誤差允許嗎?

A的意思是說,例如每個整點做一次,01:00,  02:00......以此類推,每次執行的時間可以很短幾秒,也可以是數分鐘之類的

B的意思是例如每隔13分鐘做一次,做動作需要1分鐘,但每次執行的間隔都是13分鐘.......執行的時間對上標準時間就比較沒有規則

====

如果是A,簡單的做法就是就要不停的pooling檢查現在時間是否到達整點

如果是B,用loop就能完成,只是要選用精確時間的time loop

 

引言自 ruisiou:


各位大大好!
我的問題是如果想要做一個定時啟動的程式要怎麼做?
我想了很久   
我的動作是想要一個計時迴圈一直在計時
記時的時間到用ture 去觸發我的主程式執行
但是記時迴圈不能停 還要繼續計時 等待下一次條件到達
主程式部分 等到執行完 等待下一次的觸發
不好意思麻煩各位大大了
謝謝


 

    讚:1 文章日期:2018/03/15 09:23
mingyenwei

暱稱:銘延
經驗值:2533
等級:總舵主
發文:4
回文:718
版本:LabVIEW 2013
闖關狀態:
飄渺嶺
前往地圖:
4樓
字級設定

一般說來會使用 FGV來進行,但我改成採用雙迴圈。

基本上都可以想做是多開一個迴圈去給另一個執行緒做事。

 

請參考下列的程式,這個程式採用雙迴圈,搭配Wait on Notification。Notification的資料型態我選Time-Stamp。副迴圈每收到一次Notification的時候,才會做一次事情。為了示範或把相關的VI放上去,有些部分放了不知所以然的VI。相信你以後熟悉了以後也可以分辨什麼才是必要的部分。

 

這個程式比對設定的鬧鐘時間表,故意讓主迴圈以100ms跑一次,所以,在時間(至秒)正確的時候,你會連續收到大約10個Notification。

也就是18.000秒,18.100秒,18.200秒,18.300秒...,18.900秒都會被"Format Date/Time String" vi縮減資訊形成字串後比對,都被判斷是符合case條件,並送出當前的Time-stamp。

 

[+]放大圖片

[+]放大圖片
 

 

只要是雙迴圈或是FGV,就都要考慮每個有While Loop結構的部分,速度快慢,多久執行一次。

以這個程式的例子,主迴圈還可以更快。但是[1] 副迴圈是以Wait on Notification送過來一次,才執行一次。平常是等待狀態。[2]如果你看其他人的寫法,則可能採用Get Notification Status,副迴圈如果用這個,則也要決定副迴圈多久跑一次。

 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
附件檔案:    
a-004.vi
  版本:LabVIEW 2013
Front Panel
Block Diagram
 
 
    讚:1 文章日期:2018/03/16 16:13
ruisiou

暱稱:Ruisiou
經驗值:56
等級:技工
發文:2
回文:2
版本:請選擇
闖關狀態:
荒蕪之地
前往地圖:
5樓
字級設定

謝謝各位大大的指導
我想要的就是 
labviewpro
大大說的B方案
想要一段時間後就去執行主程式
主程式執行完 再等待下一段時間的到來
設定時間 不會太短 且主程式在做資料的蒐集、存檔跟表格整理
所以在想哪種方法比較好 也可以讓主程式執行完整且結束
現在設定時間以分鐘為單位 所以執行的時間應該是夠的

 

mingyenwei

大大說的 我會去試看看的 之前也有看到其他大大在這邊分享過
謝謝大家 我會再努力看看的

    讚:0 文章日期:2018/03/21 09:10
mingyenwei

暱稱:銘延
經驗值:2533
等級:總舵主
發文:4
回文:718
版本:LabVIEW 2013
闖關狀態:
飄渺嶺
前往地圖:
6樓
字級設定

你需要挑選一個適當的計時尺度

太長時間的計時倒數,可能會有Counter溢位的問題,要留意。

 

我提供給你的可以調整一下就是準確到秒,只是我刻意展示對照的細節讓你可以控制去比較到角秒。搭配Timed (While) Loop,應該也可以符合你的需求啦。

 

*************************************************************************

你需要的該是製作類似Launcher的東西,請參考LabVIEW 2011以後的

Asynchronously Calling VIs

http://zone.ni.com/reference/en-XX/help/371361H-01/lvconcepts/asynchronous_vi_calls/

 

Differences Between Calling a VI with an Invoke Node and Calling a VI with a Call by Reference Node

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019MqkSAE

 

他們可以動態呼叫VI,並且等待直到確認他們執行完以後,再關閉他們。而不關閉Launcher。

 

[+]放大圖片
 

    讚:0 文章日期:2018/03/22 11:37
caeru

暱稱:星羽
經驗值:6886
等級:總舵主
發文:25
回文:615
版本:請選擇
闖關狀態:
英雄殿
前往地圖:
7樓
字級設定

提供一個成本很低的方法,

如果可以接受每次觸發誤差小於1ms的累積誤差,

那麼其實producer/consumer(Event)的概念,

但是Event只使用timeout就好了。

設定Event timeout的時間=你要計時的時間,

時間到了Event就會自動執行enqueue command給consumer即可。

不需要額外寫計時器也不用寫非同步執行,唯一缺點是累積誤差。

當然也可以簡單地降低累積誤差,

設定Event timeout的時間=你要計時的時間-1ms,

timeout enqueue的程式碼加上wait 1ms,這樣就可以降低累積誤差。

但隨時間一定還是有累積誤差,尤其是24/7的系統,因為沒有補償。

如果真的要很準,那就要像labviewpro說的一樣去polling時間並且去補償,

如此可以讓24/7的系統在PC環境中長時間一樣能維持一個很低的累積誤差。

    讚:0 文章日期:2018/03/23 21:39
 之1(7篇)
 
 
   會員中心 
帳號:
     
密碼:
     
  以後自動登入
 
註冊
   待回覆文章 
1. 請教:labview處理生理訊號讀取與...
2. 用支持向量機作為-非侵入式負載監測系統
3. 问题请教
4. 關於HSV作圖問題
5. 請問Graph 3d 的背景黑黑的怎麼...
6. Web Service & Chrome 的問題
 
   Top 5 熱門討論 
1. 【公告中獎名單】下載"快速認識 LabVIEW NXG 的三個秘訣"就抽限量好禮
2. 桌機上的NI-MAX 認不到PXI-1033機箱上的PXI-4072DMM
3. 請教:labview處理生理訊號讀取與...
4. 用支持向量機作為-非侵入式負載監測系統
5. Front panel人機介面 放GI...
 
 
 
LabVIEW討論區 站長信箱 關於我們 站內聲明
國家儀器股份有限公司贊助;Sponsored by NI.
© 2010 National Instruments, Taiwan. All rights reserved. design by begonia