NI產品與技術 討論區

取消
顯示結果 
搜尋替代 
您的意思是: 

呼叫DLL 取值錯誤

各位好,

 

我的LabVIEW是2009,主要用來vision部分。有設計一個辨識七段顯示器的vi,直接以 vi 跑是正常的,build成DLL被BCB呼叫卻有問題。

 

主要讀取的數值有,影像平均灰階,七段顯示器錯誤數量,Error out中的Status,這三種。

 

後兩種都有正確讀取到,但是影像平均灰階值都讀取錯誤。 

 

因為影像平均灰階值讀到的都是0。 比較懷疑的部分是BCB在呼叫DLL時,是否有可能""運算結果還沒出來,但是我已經讀出數值了?""     這樣的話應該如何避免呢? 

 

我有試著將程式改成Sequence方式,先確保Mean Value有值,在進去Sequence內與Hi Lo這兩個臨界比較是否灰階度過低或過高才決定接下來的case狀態。

 

這樣的方式以LabVIEW直接跑,是OK的。  但是轉成DLL後,再用BCB去呼叫並且抓值卻又是0....真不知道該怎麼辦了

0 積分
1 條訊息(共 4 條)
6,499 檢視

請查看附檔!!!

 

請告知是否成功

2 條訊息(共 4 條)
6,479 檢視

Hi, Charles

 

今早在試,把LabVIEW中的ROI Scriptor拿掉,讓他不成為Connector中的變數

我的Mean Gray就可以抓到了...這又有點費解了 @@"

 

我使用DLL是LoadLibrary的方式讀入,所以我應該會以舊有的程式在試試看,感謝。

0 積分
3 條訊息(共 4 條)
6,458 檢視

關於mean值沒有取到的問題,這部份已經改方法了。

就是該當輸入的變數照樣設定,但是輸出的mean值不取

而是將LabVIEW中照到的影像讀取到BCB的image物件中,針對ROI區域求mean值

再判斷mean值來決定LabVIEW輸出變數要秀哪些....算是轉了個彎達到目的

只是原先的問題還是無解就是...

0 積分
4 條訊息(共 4 條)
6,428 檢視