2012-05-21 55 views
2

我試圖寫一個LabVIEW程序,它接受從串行端口上RS的熱傳感器輸入模擬輸入 - 232,應用一些基本變換到它,並將它顯示在屏幕上。在Labview中

我想知道是否可以在LabVIEW中,或通過使用一些外部模擬器的應用程序,所以我可以測試我的節目,我給訪問實際硬件之前以某種方式模擬傳感器。

這可能嗎?

我了LabVIEW 2011

回答

3

來測試你的VI的邏輯是使示例數據的CSV文件,並暫時取代了從與它讀出的數據值的部分傳感器讀取部分的最快方法CSV文件的速率相同。

這可能不值得在低層次上模擬串口輸入,因爲Labview通常非常可靠地從硬件獲取數據到VI中 - 這取決於您如何使用它!

1

您可以讓其他程序模擬傳感器並寫入不同的COM端口。然後你可以用一根空調制解調器電纜連接這些COM端口。

爲了做到這一點,你必須找出如何您的傳感器的工作原理和飼料數據吶適當的格式成第2個COM端口。這些數據最終將由第一個COM端口接收,最終由您的應用程序開發。

+0

有另一個程序模擬傳感器是個好主意。我正在尋找的是如何做到這一點的細節。 –

+0

我不知道你的傳感器 - 這就是你必須找出。但我添加了一個基本的想法如何去用這種方法。 – glglgl

+1

我經常使用com0com來模擬一個零調制解調器電纜(當沒有任何或者足夠的端口時,很方便)來測試RS-232應用程序:http://com0com.sourceforge.net/ –

1

如果封裝所有的通信代碼子VI或設置子VI的,從一個根本的轉變和顯示部分的代碼分離,可以爲真實的傳感器數據容易替代測試代碼和測試數據。您可以編寫一個生成測試數據的子VI,並在稍後將其替換爲真實的傳感器通信子VI,或者您可以使用子VI中的個案結構來選擇與真實傳感器進行通信並輸出測試數據(正如Moray所建議的,你可以從一個文件讀入,這樣你可以很容易地改變它)。

我建議你編寫單獨的子VI來打開傳感器的通信,從中獲取數據點,並在完成時關閉通信端口(儘管您可能只需使用串行或VISA關閉功能即可)。使用通信端口(又名VISA會話)和錯誤線將這些VI鏈接在一起。 'open'VI可以接受一個輸入,指定是否使用真實/模擬數據,並將該選擇存儲在全局變量(或功能性全局VI)中,每次調用時都會檢查'獲取數據'VI。從另一個串口發送模擬數據的

glglgl的建議也不錯;所有你需要做的就是在某種循環中使用串行發送和接收功能來完成與真實傳感器相同的功能,就接收命令和發回輸出而言。這樣做的好處是無需對主程序進行任何更改,無論它是連接到真實傳感器還是仿真程序,都應該完全相同。然而,現實世界中的串行通信問題往往是由於儀器或設備不能完全符合他們的規範所要求的,所以僅僅因爲你的程序與你的模擬完美搭配並不能保證它能與如果實際傳感器做一些事情,你沒有想到:-)

0

雖然提供了一些真正偉大的想法,其他的答案真實傳感器,我發現模擬傳感器輸入,這將是方便初學者更簡單的方法。

  1. 使用虛擬端口模擬器在您的計算機上創建虛擬串行端口。http://www.eltima.com/products/vspdxp/
  2. 獲取Modbus模擬器。 http://www.plcsimulator.org/
  3. 下載Labview Modbus庫。 http://zone.ni.com/devzone/cda/epd/p/id/4756

打開了LabVIEW的Modbus庫和運行「MB串口主Example.vi」

現在,應該是可以讀/寫值到使用示例程序模擬器。

可以分析示例程序的框圖以瞭解數據如何在Modbus協議的幕後傳輸。