labview教程之如何實(shí)現(xiàn)內(nèi)存空間共享
輸入更新(開(kāi)關(guān),模擬量)--->寫(xiě)入共享內(nèi)存------>程序處理------>輸出更新(讀共享內(nèi)存,繼電器,模擬量輸出,寫(xiě)入硬件設(shè)備)
LABVIEW的共享內(nèi)存是通過(guò)AE結(jié)合FUNCTINGLOBAL實(shí)現(xiàn)的.
我們看一下它的實(shí)現(xiàn)過(guò)程.
首先定義了AE的四個(gè)動(dòng)作,INITREADWRITEREADALL
然后定義的四個(gè)選擇項(xiàng),分別對(duì)應(yīng)離散輸入,線圈,輸入寄存器,保持寄存器(MODBUS定義)
對(duì)應(yīng)四中數(shù)據(jù),分別在INIT的CASE中定義了長(zhǎng)度為65536的數(shù)組,實(shí)際上定義了四個(gè)共享內(nèi)存區(qū)
上圖是讀離散性輸入的CASE,其他分別是讀COILS,INPUTREG,HOLDINGREG
其它寫(xiě)的CASE類似.
這樣,我們?cè)贚ABVIEW中任何位置,包括子VI,對(duì)這四個(gè)共享內(nèi)存空間進(jìn)行讀寫(xiě)操作,實(shí)現(xiàn)的數(shù)據(jù)交換的功能.
評(píng)論