<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/201701/336707.htm

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

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

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

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

          最后補(bǔ)充一下:

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



          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();