Modbus Ethernet 與 ADAM-6017 通訊擷取資料該如何設計

各位先進您們好:
       最近因工作需求,才開始摸LabView,初步後端分析方面的程式,也在此學習不少完成了,但現在需要做前端通訊紀錄方面的程式,之前沒有這方面的背景,所以很多文章也是看的霧煞煞,所以煩請各位先進指導!
       主要需求為:
       利用研華ADAM6017的資料擷取器,將8通道的訊號藉由RJ45(LAN)網路接頭方式接上電腦做資料記錄。
       相關Manual如附件。      
       因為沒相關知識,所以看不懂Manual。
       接著我有先下載過先進所提供的Modbus的lib。
       請問我該如何著手,將Manual提供的位址跟資訊跟LabView的Modbus的lib做連結,如何取的資料並且轉換成4~20的數字內容,紀錄方面,在後端有稍微寫過,應該不會有大問題,現在比較大的是不曉得該怎麼寫通訊擷取。
===========================================================
各位先進,我稍微看了一下Modbus的lib的help,我不懂,所以理解可能錯誤在煩請各位先進指正指導。


是否我ADAM6017接上電腦RJ45的插孔後,我只要重複執行此VI就可以讀取到訊號了?
1.說明說開始的位址,根據Manual中所說,我是該填入4001亦或是16385(十進位)?
2.說明說讀取的位址數量,若我要讀8通道的資料就直接填入8即可嗎?4001~4008位址的資料。
3.TimeOut的設定,是可以設定成我取點的取樣時間大小嗎?假設我每5秒取一次值就填5000(ms)。
4.這個我也看不太懂,請問是從Manual中的定義中,將00填入Transaction ID,將01填入Unit ID嗎?
5.這個我也看不太懂,這個是讀值的輸出嗎?那我讀八通道的資料,這個值會是個陣列嗎?假設我ADAM6017的接收的訊號是0~2Vac可輸出的訊號是4~20mAdc,那Enthernet傳來電腦的資料會是什麼型式,可以直接轉換成數字嗎?如果不是輸出讀值,我該用哪個VI的哪個特性(Read Coil)?
6.看說明大概是了解會顯示此VI的工作狀態是否正常。
===========================================================
各位先進,我又在NI找到這個範例,不知道是否我可以直接套用?

1.讀取的部分,應該就是我要的部分,範例上的400001~400005是不是跟ADAM-6017的Manual中的40001~40008是相同的關係,那回傳回來的數值是什麼的型式呢?假設ADAM的AI輸入端接上4~20mA訊號,那回傳的數值就會是0.004~0.02嗎?
2.IP Address則是當ADAM連接上時看得著的IP嗎?
3.這部分是不是跟Manual中的Transaction ID (00 00)與Unit ID(01)一樣
4.開始位址,是否就是400001則是0,400002則是1~40000N則是N-1。
5.數量部分,應該沒什麼問題!
6.Port,則是跟第2點一樣可以看的著的嗎?還是自己自定義也可以。


Para Alumnos ADAM-6017.pdfVinchen515840133.4121180556

各位先進您好:
研華的東西終於到了,囧~~有測試過,使用研華的套裝軟體,設備驅動沒問題,且訊號測試也沒問題!可是我使用NI的範例,將IP位址打進去,卻沒反應,或連接不到,不曉得該怎麼測試?

可能是NI的MODBUS lib的通訊格式有誤。

你可以下載modbus tools測試看看:http://www.modbustools.com/

如果modbus tools可以跟adma連上,那就表示NI的modbus lib有誤,需要修改才能使用了。

感謝班傑明,我先PO上研華免費軟體所呈現的畫面
01.這是程式找到設備的畫面


02.這是IP位址設定的畫面,IP Address好像要設定跟電腦的IP類似才行,囧
   有些好像也不太行,不太曉得規則。Port有兩組,Orz我也不曉得哪時候
   該用哪組。

03.再來就是訊號即時讀取畫面

04.接著是可以紀錄軌跡圖並存成CSV檔的功能

ModbusTool
><還沒仔細研讀過Help,想說先設定看看有沒有連上的訊息
01.連接設定,IP我設定跟研華軟體內的一樣,PORT我也是選研華兩組的頭一個,
   至於TimeOut該設定多少,也不太曉得XD,就預設值。

02.讀取定義,我設定由研華出的Manual內的CH5~CH6,好像設早了一個順位,不過   至少一該有一個要有反應,我是這麼想的。

03.囧~~結果只有"TimeOut Error"

看起來應該是我有什麼概念沒搞清楚!
再煩請各位先進指導。
由於之前數據後端分析使用LV來開發,所以才想說數據前端截取紀錄也使用LV開發
。雖然研華有現有軟體,但需求可能還是需要自己開發一個前端軟體。

Vinchen515840137.6843634259

各位先進您好:
今天又稍微研究了一下Modbus Poll
我看了一下Communication Traffic
感覺很不一樣 我想辦法看能不能調成跟ADAM-6017 Manual一樣
不過殘念~~只能調至
000021-Tx:00 F6 00 00 00 06 01 04 00 01 00 08
000022-Tx:00 F7 00 00 00 06 01 04 00 01 00 08
000023-Tx:00 F8 00 00 00 06 01 04 00 01 00 08
000024-Tx:00 F9 00 00 00 06 01 04 00 01 00 08
000025-Tx:00 FA 00 00 00 06 01 04 00 01 00 08
000026-Tx:00 FB 00 00 00 06 01 04 00 01 00 08
000027-Tx:00 FC 00 00 00 06 01 04 00 01 00 08
000028-Tx:00 FD 00 00 00 06 01 04 00 01 00 08
000029-Tx:00 FE 00 00 00 06 01 04 00 01 00 08
000030-Tx:00 FF 00 00 00 06 01 04 00 01 00 08
第三四位(F6~FF)似乎會隨著次數改變而改變沒辦法固定調成00
雖然後面都一樣,但還是不停的 Time Out。

 

附上我以前寫的 adam 5000 系列中的 Adam 5017 資料擷取程式

也是採用 ethernet 傳輸, 你可以參考看看

稍微修改一下就可使用

AI Read - 4-20mA.vi

 

Zeppelin40143.7685416667

感謝Zeppelin的提供,
再麻煩先進們幫忙一下,
是否可以將檔案轉成8.5版的檔案,
^"^8.6的我開不了!
待研究過後有問題再跟大家討論討論,
謝謝大家的幫忙!
<span =“bold”>

轉檔.rar

 若有轉檔錯誤,再請告知,我會再修正的...謝謝

謝謝LG先進幫忙轉檔!
我將vi一個一個拆解,想說要找看看問題起點在哪邊!
後來發現在一開始的地方,請求回傳資料後,資料讀取的vi就出現了逾時的錯誤訊息,狀況如下:


不曉得錯誤是在於,我請求讀取的地方資訊給不對,抑或是讀取的地方有些接腳定義要修改?

下面是發貼中的Manual的一頁,



Vinchen515840143.4288078704

 

應該要用 ni modbus 來做

到 ni 網站免費下載 NImodbus 模組

再執行這個範例,

過要改一下 , 因為這個程式是針對 adam 5000 寫的

我沒有你講的硬體, 所以沒辦法用你的硬體測試,

此程式在 adam 5000 系列的 ethernet 介面執行都沒問題

AI Read - 4-20mA.vi

此檔案已經轉成 labview 8.5

另外關於 labview modbus 的說明, 參考一下

labview_modbus_eng.pdf

 

Zeppelin40144.3533217593

AI_Read_-_4-20mA Folder.rar

 有少幾個檔案....

 

請先到 ni 網站下載 ni-modbus 模組, 安裝後才可正常執行

http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=F1582737BACF5CA8E0340003BA7CCD71

AI_Read_-_4-20mA 8.5.vi

Zeppelin40144.8928240741

謝謝各位先進,感謝研華工程師大力幫助:
程式猶如ZeppeLin大大那樣,我一直卡住連接不上,今天終於搞出來了!
應該是沒概念造成的設定錯誤。
其實就是卡在
“Remote Port: 5168"這個是研華的預設值
我搞到最後實在想不到有什麼可以更改的,後來應是把port改的與各範例一樣
為port: 502之後,終於連接上了。
囧~~雖然我還是不曉得這是怎麼一回事,不過還是跟大家分享一下經驗 XD
如果有先進知道這是什麼概念,煩請指教。><”