隨著物聯網技術蓬勃發展,Modbus 設備數據采集上報需求日益增加,本文將具體介紹如何利用 EsDA 快速實現Modbus RTU Master數據轉UDP Client數據,縮短產品研發時間。
?簡介隨著時代的發展,數據上云等需求越來越普遍,不同協議之間的數據轉換,也成了用戶普遍的需求之一。本文將帶大家快速實現將EPC6450-AWI工控板的Modbus RTU數據,快速轉發成UDP客戶端數據,并傳送給UDP服務器,工作框架如圖1.1。
圖1本文主要使用本公司的EPC6450-AWI型號工控板,外接使用Modbus RTU協議傳輸的溫濕度變送器,讀取相關溫濕度數據,并創建UDP客戶端,向PC機上的UDP服務器實時發送溫濕度數據。 入門基礎
本章內容,主要使用modbus_master_in、modbus_parse_in、fscript、log、push、tcpudp_client節點。用戶在進行閱讀之前,需具備一定基礎的AWFlow Designer開發經驗。若剛開始接觸,可閱讀以下文章,進行基礎知識的學習。
- EsDAMPC-ZC1入門(一)——軟件安裝
- EsDAMPC-ZC1入門(二)——LED控制
- EsDA應用串口服務器——UDPServer
?硬件前提
1. EPC6450-AWI型號工控板
圖2
2.USB轉TTL類型串口設備
圖3
圖4
此傳感器,內部使用了Modbus RTU協議,數據分別存儲在地址為0(溫度)和1(濕度)上。
4.Type-C線、網線、杜邦線若干
圖5 ?硬件連接圖
圖6
將USB轉TLL接口與DUART接口相接(此處注意RXD接TXD,TXD接RXD),Type-C供電線與工控板Type-C接口相接,網口接NET0接口,溫濕度變送器上的A/B信號線分別于工控板上的RS485A/RS485B相連,+電源線接于5V,-地線接于GND。
?本章流圖解析
圖7
1. 本流圖節點列表
- modbus_master_in節點,該節點負責讀取從機的相關寄存器地址中的數據。
- modbus_parse_in節點,該節點負責解析modbus_master_in獲取的數據,將數據轉化成對應類型的數值數組。
- fscript1節點,該節點主要負責對modbus_parse_in節點所生成的數值數組進行提取,并格式化輸出對應的溫濕度數據。
- fscript2節點,該節點主要負責對PC上的UDP服務器發送的數據流進行讀取與解析,并傳送給log節點。
- log節點,該節點主要負責把接收到的fscript節點輸出的數據,顯示于串口與調試口。
- push節點,該節點主要負責將接收到的fscript節點輸出的數據,傳送至udp_server_ex節點。
tcpudp_client節點,該節點主要負責將得到的push節點數據,轉發給PC上位機上的UDP服務器。
2. 數據流向
通過RS485接口與Modbus RTU協議讀取溫濕度變送器的數據,對該數據進行數值化生成對應的數值數組,對生成的數值數組進行提取,格式化輸出對應的溫濕度情況,并將信息顯示在串口與調試窗口上,以及發送至PC上位機上的UDP服務器窗口,進行數據交互。
?節點解析
1.modbus_master_in節點
圖8
該節點關鍵參數一覽:
- 主機參數配置,此處配置與配置串口參數同理,配置如下:
- 圖9
(可參照學習EsDAMPC-ZC1應用——串口服務器(一),以及EsDAMPC-ZC1應用——串口服務器(二))
- 讀取模式,該屬性將決定節點的觸發方式。分別有:(1)循環讀取數據,該模式節點將以用戶設定的周期定時輸出數據,如周期內數據未被刷新,則在下一周期輸出;
(2)根據輸入的信息讀取從機設備的數據,讀取成功則向下一節點輸出數據。可使用push節點向此節點輸入讀取所需要的參數信息,具體請查看輸入參數。此處我們選用periodic read data模式,即第(1)種。
從機ID,從機設備的ID號,數值為0-255。此處從機ID為1,具體用戶可根據實際情況修改。
輸出周期,數值為0-65535,此處我們設置為1000。
寄存器地址,該值為讀取的起始寄存器地址,數值為0-65535,此處我們設置為0。
讀取數量,數值為0-1000,此處我們設置為2,即讀取兩個數據(分別為溫度和濕度)。
- 寄存器類型,讀取的寄存器類型。分別有:(1)讀取線圈量,此類型的數據將輸出uint8_t指針類型的payload;(2)讀取離散量,此類型的數據將輸出uint8_t指針類型的payload;(3)讀取保持寄存器,此類型的數據將輸出uint16_t指針類型的payload;
(4)讀取輸入寄存器,此類型的數據將輸出uint16_t指針類型的payload。此處我們設置為read holding resgisters,即第(3)種。
2.modbus_parse_in節點
圖10
該節點關鍵參數一覽:
- 數據轉換模式,該模式有:(1)單地址數據轉換,此模式只對某一地址的數據進行轉換,因此輸出payload是對應地址的單個數據值; (2)多地址數據轉換,此模式對指定地址及數量的數據進行同一的轉換,并將轉換后的值存入array對象; (3)全地址數據轉換,此模式對輸入的所有數據進行同一的轉換,并將轉換后的值存入array對象。注:數據地址及長度必須在modbus輸入節點的讀取范圍內,否則轉換將失敗。此處我們選擇multi-address address parse模式,即第(2)種。
- 數據轉換起始地址,此處設置為0。
- 轉換數量,此處設置為2。
- 數據轉換類型,讀取的數據格式,對讀取的數據進行位整合,例: int32_t:將數據地址開始的4byte整合成int32_t類型的值。此處我們選擇16bits-unsigned int類型。
- 大小端選擇,此處選擇配置讀取的存儲大小端模式,此處我們設置為小端模式。
3. fscript1節點
該節點為腳本節點,具體腳本如下。
a = msg.payload
output.payload = "temp:" + array_get(a, 0)/10 + "C, " + "humi:" + array_get(a, 1)/10 + "RH"
此腳本主要實現將modbus_parse_in節點所生成的數值數組提取數值,并進行格式化處理,輸出對應的溫濕度數據。
4.fscript2節點
該節點為腳本節點,具體腳本如下。
b = istream_read_string(msg.istream, 100, 1000)msg.payload = b
此腳本主要實現讀取 tcpudp_client 節點接收到的客戶端數據,并將數據傳送給下一個節點(log節點)。
5. push節點
圖11
該節點用法較為簡單,直接填寫需要進行傳送的目標節點即可。6.tcp_client節點
圖12
該節點主要實現將push節點發送而來的數據,傳達給UDP服務器。
該節點關鍵參數一覽:
使能,為true則允許建立連接,為false則禁止建立連接,此處我們選擇true。
協議,此處選擇UDP。
主機號,此處填PC上位機上所創建的UDP服務器的IP,為192.168.137.136。
端口號,此處設置為7777。
本地端口號,此處也設置為7777。
重試間隔,此處設置為1000,單位為ms,表示斷開連接后,若使能參數為true
則1000ms后便重新連接。
空閑下線,值為0則關閉該功能,在該時間內無數據通信則斷開連接,此處設置為0。
心跳包與注冊包,具體請看節點的幫助文檔,本章此處不填。
保活時間,此參數僅在TCP協議模式下有效,此處我們設置為120。
7.log節點
圖13
該節點主要實現,將上一個節點傳輸而下的數據,打印至串口和調試窗口上,一個很好用的調試信息反饋節點。
?流圖下載1.點擊下拉框
圖142.點擊配置按鈕
圖153.配置IP地址與端口號
圖16
若用戶不知道流圖下載的端口號,可以在板子重啟時,調試串口種打印信息獲取,或者在shell命令窗口使用ipconfig命令獲取網口配置。4.先選擇配置,后點擊下載按鈕
圖17
圖185.下載完成
圖19
?效果驗證
1. UDP服務器
此處需要使用一款助手工具,本章便用sscom工具進行效果展示。1.1UDP服務器接收到的設備數據
圖20點擊創建連接
1.2 UDP服務器接收到的設備數據圖21設備數據1.3UDP服務器向設備下發數據
圖22下發數據
2. UDP客戶端
可見客戶端接收到的數據如下。
圖23查看UDP客戶端接收數據
圖24接收數據詳情到此,本章結束,如果您對此有興趣,那就趕快行動起來吧!
-
MODBUS
+關注
關注
28文章
1995瀏覽量
78938 -
UDP
+關注
關注
0文章
330瀏覽量
34470 -
ESDA
+關注
關注
0文章
28瀏覽量
7713 -
RTU
+關注
關注
0文章
432瀏覽量
29252
發布評論請先 登錄
基于 DeviceNet 轉 MODBUS RTU 協議的施耐德 PLC 與 ABB 電機驅動器倉儲堆垛機的定位控制優化方案?
Modbus TCP轉Modbus RTU網關連接組態王的5大技巧!

EtherCAT轉 4 路Modbus RTU網關-三格電子

Modbus RTU轉CC-link協議網關(Modbus RTU轉CC-link)

Profibus-PA轉Modbus-RTU協議網關(Profibus-PA轉Modbus-RTU)

EtherCAT主站轉Modbus RTU網關(EtherCAT轉Modbus RTU)

Modbus RTU轉CC-Link協議網關(CC-Link轉Modbus RTU)

EtherNet/IP轉Modbus-RTU主站網關(EtherNet/IP轉Modbus-RTU)

EtherNet/IP轉Modbus-RTU主站協議網關(JM-EIP-RTU)

EtherCAT轉Modbus RTU協議網關(YC-ECT-RTU)

Modbus RTU、Modbus TCP轉MQTT網關實現Modbus設備與云平臺的無縫通信

評論