色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > LabVIEW中的數(shù)據(jù)流編程基礎(chǔ)

          LabVIEW中的數(shù)據(jù)流編程基礎(chǔ)

          作者: 時間:2017-01-06 來源:網(wǎng)絡(luò) 收藏
          LabVIEW按照數(shù)據(jù)流(dataflow)模式運行VI。 當(dāng)接受到所有所需的輸入時,程序框圖節(jié)點將運行。節(jié)點在運行時產(chǎn)生輸出端數(shù)據(jù)并將該數(shù)據(jù)傳送給數(shù)據(jù)流路徑中的下一個節(jié)點。 數(shù)據(jù)流經(jīng)節(jié)點的過程決定了程序框圖上VI和函數(shù)的執(zhí)行順序。

          Visual Basic,C++,JAVA以及絕大多數(shù)其它文本編程語言都遵循程序執(zhí)行的控制流模式。 在控制流中,程序元素的先后順序決定了程序的執(zhí)行順序。

          本文引用地址:http://cafeforensic.com/article/201701/336707.htm

          圖1顯示了一個數(shù)據(jù)流編程的范例,程序框圖中兩個數(shù)字相加,然后從結(jié)果中減去50.00。 在這個范例中,程序框圖從左向右執(zhí)行,這并非因為對象的放置順序,而是因為“減”函數(shù)必須在“加”函數(shù)執(zhí)行完,并將數(shù)據(jù)傳到“減”法函數(shù)后才能執(zhí)行。 節(jié)點只有在所有輸入接線端數(shù)據(jù)準(zhǔn)備好后才能執(zhí)行,只有在節(jié)點完成執(zhí)行后才能向輸出接線端提供數(shù)據(jù)。

          圖1.數(shù)據(jù)流編程范例

          在圖2中,考慮哪段代碼先執(zhí)行—“加”、“隨機(jī)數(shù)”,還是“除”函數(shù)。 您無法知道答案,因為“加”和“除”函數(shù)的輸入同時可用,而隨機(jī)數(shù)并沒有輸入。 在一個代碼段必須在另一個前執(zhí)行,并且兩個函數(shù)間沒有數(shù)據(jù)依賴關(guān)系的情況下,可以采用其它編程方法(例如順序結(jié)構(gòu)或錯誤簇)強(qiáng)制設(shè)定執(zhí)行的順序。

          圖2.多代碼段的數(shù)據(jù)流范例

          最后補(bǔ)充一下:

          如果兩個或兩個以上的線程在同一時間企圖訪問同一個內(nèi)存 地址,那么將會發(fā)生數(shù)據(jù)沖突。顯然,在應(yīng)用程序中識別可能產(chǎn)生沖突的代碼是一項艱巨的任務(wù)。但是,通過在 LabVIEW中以 圖形化的方式創(chuàng)建程序框圖,用戶可以迅速展開具體工作,并實現(xiàn)自己的構(gòu)想,而無需考慮線程同步。兩個并行化的圖形代碼段在寫入文件時都需要訪問硬盤,LabVIEW可 以自動地處理這兩個線程的同步。



          評論


          技術(shù)專區(qū)

          關(guān)閉