贊助商連結

目前分類:Sychornization元件 (3)

瀏覽方式: 標題列表 簡短摘要

之前有Synchornization家族的Semaphone(LabVIEW_Synchornization-Semaphone(紅綠燈)教學範例)和Notifier(LabVIEW_Notifier傳遞資料、程序管控教學範例),這篇介紹另外一個簡易型的Synchornization家族成員-Occurrence。從Occurrences的元件總共3個就能知道其功能並不多,多用在簡易的程序順序上。如果想了解較高級的Queue應用也可以參考Queue的教學:LabVIEW_Queue的教學_用法和範例。或者是應用集錦教學:Queue的應用

image

延續Semaphhone的應用,個位數和十位數的呈現:

個位數從0-9遞增,每跑一輪就讓十位數加一,因為十位數的顯示必定是在個位數的0-9條件達成後,才會+1。使用Occurrence達成。

程式碼: 可以看出個位數每10次後,解開Loop2的Occurrence。

image

程式碼可在這邊(Download)下載 , 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

Queue應用

Synchornization學習

Array陣列

檔案讀寫

Listbox、Table元件

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

上一篇介紹Synchronization家族裡面的Semaphore紅綠燈來做到程序上管控,這篇要介紹Synchronization家族中另外一個成員-->Notifier,比起Sempaphore,Notifier更像Queue的應用,他不僅可以做到程序上的管控,另外也可以做到資料的傳遞,讓他的彈性比起Semaphore更為有彈性。關於Sempaphore可以參考:LabVIEW_Synchornization-Semaphone(紅綠燈)教學範例有關Queue的教學可以參考:LabVIEW_Queue的教學_用法和範例。或者是應用集錦教學:Queue的應用

程式碼可在這邊(Download)下載 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

前面有提到Notifier除了程序上的管控,另外也能做到資料的傳遞,但是比起Queue,Notifier一次只能傳遞一筆資料,一次只容許攜帶一筆資料的Notifier在應用上就造成了不少限制,而且在應用上也要特別小心封包丟失的問題,因為一次只攜帶一筆資料時,當下一筆資料進入時因為原本的資料還未被消化,會造下一筆資料無法被攜帶而丟失。

Notifier中的基本功能為 Obtain Notifier、Send Notification、Wait on Notification、Release Notifier。

Obtain Notifier、Release Notifier, 這兩個為最基礎的元件,可以解讀為宣告、結束;在使用時,一定要先"宣告",最後應用完後做"結束"的動作

Send Notfication、Wait on Notification 一個是傳遞資料端,一個是接受資料端;而Send Notification 就是傳送資料,Wait on Notification 會一直等待資料,直到等到資料後,程式才會繼續,否則程式會停頓在Wait on Notification。

應用上如下圖,Loop2的Wait on Notification 會一直等待Loop1中程式1做完後經過Send Notfication,才會接著做程式2也就是透過Notifier,讓程式1永遠會比程式2先做,讓這兩段程式達到程序上的管控。另外透過Notifier,也可以將資料從Loop1傳遞到Loop2

下面有個範例,讓個位數從0-9遞增,每跑一輪就讓十位數加一,因為十位數的顯示必定是在個位數的0-9條件達成後,才會+1 。

程式碼: 可以看出個位數每10次後,解開Loop2的Wait on Notification,並將Loop1所得到的十位數傳遞到Loop2做資料的顯示。

其實這個範例和上一篇所介紹的Sempaphore相同,可以看出因為Notifier有傳遞資料的功能,所以可以直接將資料從Loop1傳遞到Loop2。

程式碼可在這邊(Download)下載 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

Queue應用

Synchornization學習

Array陣列

檔案讀寫

Listbox、Table元件

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

在LabVIEW Synchornization大家族裡面有 Notifier、Queue、Semaphore、Rendezvous、Occurrences;其中因為Queue的彈性最為強大,所以也最被廣泛的使用和討論;不過其他家族裡面的成員其實也是在某些應用上滿方便的,這篇介紹的是俗稱"紅綠燈"的Semaphone的應用,Semphone在程式上的程序管控上,能夠發揮效應,但因為它的彈性相較於Queue較小,建議用於較小、簡單的應用上。有關Queue的教學可以參考:LabVIEW_Queue的教學_用法和範例。或者是應用集錦教學:Queue的應用

程式碼可在這邊(Download)下載 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

Semaphore 最基本的功能為Obtain Semaphore、Release Semaphore Reference、Release Semaphore、Acquire Semaphore。

Obtain Semaphore、Release Semaphore Reference 這兩個為最基礎的元件,可以解讀為宣告、結束;在使用時,一定要先"宣告",最後應用完後做"結束"的動作

Semaphore又戲稱紅綠燈,而Release Semaphore 可以視為綠燈,Acquire Sempaphore可以視為紅燈;

應用上如下圖,Loop2的Acuquire Sempaphore 會一直等待Loop1中程式1做完後經過Release Semaphore,才會接著做程式2也就是透過Semaphore,讓程式1永遠會比程式2先做,讓這兩段程式達到程序上的管控

下面有個範例,讓個位數從0-9遞增,每跑一輪就讓十位數加一,因為十位數的顯示必定是在個位數的0-9條件達成後,才會+1,這種有順序上的應用就可以使用Semaphore。

程式碼: 可以看出個位數每10次後,解開Loop2的Acquire Semaphore。

程式碼可在這邊(Download)下載 如果覺得文章有幫助,請不要吝嗇按下側邊的廣告唷~ 謝謝~

學習相關LabVIEW文章:

進階程式學習

基礎程式學習

專題學習_LVOOP

專題學習_動態載入

Queue應用

Synchornization學習

Array陣列

檔案讀寫

Listbox、Table元件

程式分享相關LabVIEW文章:

基礎程式分享

進階程式分享

股票程式分享

考取LabVIEW證照相關:

CLAD

CLD

CLA準備CLA考題分析

文章標籤

安伯伯 發表在 痞客邦 留言(0) 人氣()

Close

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

reload

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼