加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • ? 入門基礎(chǔ)
    • ??硬件前提
    • ? 硬件連接圖
    • ??本章流圖解析
    • ??節(jié)點解析
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

【EsDA 應(yīng)用】Modbus RTU Master 轉(zhuǎn) UDP Client

2023/08/19
3367
閱讀需 12 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

隨著物聯(lián)網(wǎng)技術(shù)蓬勃發(fā)展,Modbus 設(shè)備數(shù)據(jù)采集上報需求日益增加,本文將具體介紹如何利用 EsDA 快速實現(xiàn)Modbus RTU Master數(shù)據(jù)轉(zhuǎn)UDP Client數(shù)據(jù),縮短產(chǎn)品研發(fā)時間。

簡介

隨著時代的發(fā)展,數(shù)據(jù)上云等需求越來越普遍,不同協(xié)議之間的數(shù)據(jù)轉(zhuǎn)換,也成了用戶普遍的需求之一。本文將帶大家快速實現(xiàn)將EPC6450-AWI工控板的Modbus RTU數(shù)據(jù),快速轉(zhuǎn)發(fā)成UDP客戶端數(shù)據(jù),并傳送給UDP服務(wù)器,工作框架如圖1.1。

圖1本文主要使用本公司的EPC6450-AWI型號工控板,外接使用Modbus RTU協(xié)議傳輸?shù)臏貪穸?a class="article-link" target="_blank" href="/baike/507420.html">變送器,讀取相關(guān)溫濕度數(shù)據(jù),并創(chuàng)建UDP客戶端,向PC機上的UDP服務(wù)器實時發(fā)送溫濕度數(shù)據(jù)。

? 入門基礎(chǔ)

本章內(nèi)容,主要使用modbus_master_in、modbus_parse_in、fscript、log、push、tcpudp_client節(jié)點。用戶在進行閱讀之前,需具備一定基礎(chǔ)的AWFlow Designer開發(fā)經(jīng)驗。若剛開始接觸,可閱讀以下文章,進行基礎(chǔ)知識的學(xué)習(xí)。

    EsDA?MPC-ZC1?入門(一)——?軟件安裝EsDA?MPC-ZC1?入門(二)——?LED?控制EsDA應(yīng)用?串口服務(wù)器?——?UDP?Server

??硬件前提

1. EPC6450-AWI型號工控板

圖2

2.?USB轉(zhuǎn)TTL類型串口設(shè)備

圖3

3.?溫濕度變送器(Modbus?RTU協(xié)議,RS485接口)

圖4

傳感器,內(nèi)部使用了Modbus RTU協(xié)議,數(shù)據(jù)分別存儲在地址為0(溫度)和1(濕度)上。

4.?Type-C線、網(wǎng)線、杜邦線若干

圖5

? 硬件連接圖

圖6

將USB轉(zhuǎn)TLL接口與DUART接口相接(此處注意RXD接TXD,TXD接RXD),Type-C供電線與工控板Type-C接口相接,網(wǎng)口接NET0接口,溫濕度變送器上的A/B信號線分別于工控板上的RS485A/RS485B相連,+電源線接于5V,-地線接于GND。

??本章流圖解析

圖7

1. 本流圖節(jié)點列表

    • modbus_master_in節(jié)點,該節(jié)點負責(zé)讀取從機的相關(guān)寄存器地址中的數(shù)據(jù)。modbus_parse_in節(jié)點,該節(jié)點負責(zé)解析modbus_master_in獲取的數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)化成對應(yīng)類型的數(shù)值數(shù)組。fscript1節(jié)點,該節(jié)點主要負責(zé)對modbus_parse_in節(jié)點所生成的數(shù)值數(shù)組進行提取,并格式化輸出對應(yīng)的溫濕度數(shù)據(jù)。fscript2節(jié)點,該節(jié)點主要負責(zé)對PC上的UDP服務(wù)器發(fā)送的數(shù)據(jù)流進行讀取與解析,并傳送給log節(jié)點。log節(jié)點,該節(jié)點主要負責(zé)把接收到的fscript節(jié)點輸出的數(shù)據(jù),顯示于串口與調(diào)試口。push節(jié)點,該節(jié)點主要負責(zé)將接收到的fscript節(jié)點輸出的數(shù)據(jù),傳送至udp_server_ex節(jié)點。

tcpudp_client節(jié)點,該節(jié)點主要負責(zé)將得到的push節(jié)點數(shù)據(jù),轉(zhuǎn)發(fā)給PC上位機上的UDP服務(wù)器。

2. 數(shù)據(jù)流向

通過RS485接口與Modbus RTU協(xié)議讀取溫濕度變送器的數(shù)據(jù),對該數(shù)據(jù)進行數(shù)值化生成對應(yīng)的數(shù)值數(shù)組,對生成的數(shù)值數(shù)組進行提取,格式化輸出對應(yīng)的溫濕度情況,并將信息顯示在串口與調(diào)試窗口上,以及發(fā)送至PC上位機上的UDP服務(wù)器窗口,進行數(shù)據(jù)交互。

??節(jié)點解析

1.?modbus_master_in節(jié)點

圖8

該節(jié)點關(guān)鍵參數(shù)一覽:

    • 主機參數(shù)配置,此處配置與配置串口參數(shù)同理,配置如下:

圖9

(可參照學(xué)習(xí)?EsDA?MPC-ZC1應(yīng)用——串口服務(wù)器(一),?以及?EsDA?MPC-ZC1?應(yīng)用——串口服務(wù)器(二))

讀取模式,該屬性將決定節(jié)點的觸發(fā)方式。分別有:(1)?循環(huán)讀取數(shù)據(jù),該模式節(jié)點將以用戶設(shè)定的周期定時輸出數(shù)據(jù),如周期內(nèi)數(shù)據(jù)未被刷新,則在下一周期輸出;

(2)?根據(jù)輸入的信息讀取從機設(shè)備的數(shù)據(jù),讀取成功則向下一節(jié)點輸出數(shù)據(jù)??墒褂胮ush節(jié)點向此節(jié)點輸入讀取所需要的參數(shù)信息,具體請查看輸入?yún)?shù)。此處我們選用periodic read data模式,即第?(1)?種。

從機ID,從機設(shè)備的ID號,數(shù)值為0-255。此處從機ID為1,具體用戶可根據(jù)實際情況修改。

輸出周期,數(shù)值為0-65535,?此處我們設(shè)置為1000。

寄存器地址,該值為讀取的起始寄存器地址,數(shù)值為0-65535,此處我們設(shè)置為0。

讀取數(shù)量,數(shù)值為0-1000,此處我們設(shè)置為2,即讀取兩個數(shù)據(jù)(分別為溫度和濕度)。

寄存器類型,讀取的寄存器類型。分別有:(1)?讀取線圈量,此類型的數(shù)據(jù)將輸出uint8_t指針類型的payload;(2)?讀取離散量,此類型的數(shù)據(jù)將輸出uint8_t指針類型的payload;(3)?讀取保持寄存器,此類型的數(shù)據(jù)將輸出uint16_t指針類型的payload;

(4)?讀取輸入寄存器,此類型的數(shù)據(jù)將輸出uint16_t指針類型的payload。此處我們設(shè)置為read holding resgisters,即第(3)種。

2.?modbus_parse_in節(jié)點

圖10

該節(jié)點關(guān)鍵參數(shù)一覽:

    數(shù)據(jù)轉(zhuǎn)換模式,?該模式有:(1)?單地址數(shù)據(jù)轉(zhuǎn)換,此模式只對某一地址的數(shù)據(jù)進行轉(zhuǎn)換,因此輸出payload是對應(yīng)地址的單個數(shù)據(jù)值;?(2)?多地址數(shù)據(jù)轉(zhuǎn)換,此模式對指定地址及數(shù)量的數(shù)據(jù)進行同一的轉(zhuǎn)換,并將轉(zhuǎn)換后的值存入array對象;?(3)?全地址數(shù)據(jù)轉(zhuǎn)換,此模式對輸入的所有數(shù)據(jù)進行同一的轉(zhuǎn)換,并將轉(zhuǎn)換后的值存入array對象。注:數(shù)據(jù)地址及長度必須在modbus輸入節(jié)點的讀取范圍內(nèi),否則轉(zhuǎn)換將失敗。此處我們選擇multi-address address parse模式,即第(2)種。數(shù)據(jù)轉(zhuǎn)換起始地址,此處設(shè)置為0。轉(zhuǎn)換數(shù)量,此處設(shè)置為2。數(shù)據(jù)轉(zhuǎn)換類型,讀取的數(shù)據(jù)格式,對讀取的數(shù)據(jù)進行位整合,例: int32_t:?將數(shù)據(jù)地址開始的4byte整合成int32_t類型的值。此處我們選擇16bits-unsigned int類型。大小端選擇,此處選擇配置讀取的存儲大小端模式,此處我們設(shè)置為小端模式。

3. fscript1節(jié)點

該節(jié)點為腳本節(jié)點,具體腳本如下。

a = msg.payload
output.payload = "temp:" + array_get(a, 0)/10 + "C,   " + "humi:" +  array_get(a, 1)/10 + "RH"

此腳本主要實現(xiàn)將modbus_parse_in節(jié)點所生成的數(shù)值數(shù)組提取數(shù)值,并進行格式化處理,輸出對應(yīng)的溫濕度數(shù)據(jù)。

4.?fscript2節(jié)點

該節(jié)點為腳本節(jié)點,具體腳本如下。

b = istream_read_string(msg.istream, 100, 1000)msg.payload = b

此腳本主要實現(xiàn)讀取 tcpudp_client 節(jié)點接收到的客戶端數(shù)據(jù),并將數(shù)據(jù)傳送給下一個節(jié)點(log節(jié)點)。

5. push?節(jié)點

圖11

該節(jié)點用法較為簡單,直接填寫需要進行傳送的目標(biāo)節(jié)點即可。

6.?tcp_client節(jié)點

圖12

該節(jié)點主要實現(xiàn)將push節(jié)點發(fā)送而來的數(shù)據(jù),傳達給UDP服務(wù)器。

該節(jié)點關(guān)鍵參數(shù)一覽:

使能,為true則允許建立連接,為false則禁止建立連接,此處我們選擇true。

協(xié)議,此處選擇UDP。

主機號,此處填PC上位機上所創(chuàng)建的UDP服務(wù)器的IP,為192.168.137.136。

端口號,此處設(shè)置為7777。

本地端口號,此處也設(shè)置為7777。

重試間隔,此處設(shè)置為1000,單位為ms,表示斷開連接后,若使能參數(shù)為true

則1000ms后便重新連接。

空閑下線,值為0則關(guān)閉該功能,在該時間內(nèi)無數(shù)據(jù)通信則斷開連接,此處設(shè)置為0。

心跳包與注冊包,具體請看節(jié)點的幫助文檔,本章此處不填。

?;顣r間,?此參數(shù)僅在TCP協(xié)議模式下有效,此處我們設(shè)置為120。

7.?log節(jié)點

圖13

該節(jié)點主要實現(xiàn),將上一個節(jié)點傳輸而下的數(shù)據(jù),打印至串口和調(diào)試窗口上,一個很好用的調(diào)試信息反饋節(jié)點。

流圖下載1.?點擊下拉框

圖14

2.?點擊配置按鈕

圖15

3.?配置IP地址與端口號

圖16

若用戶不知道流圖下載的端口號,可以在板子重啟時,調(diào)試串口種打印信息獲取,或者在shell命令窗口使用ipconfig命令獲取網(wǎng)口配置。

4.?先選擇配置,后點擊下載按鈕

圖17

圖18

5.?下載完成

圖19

? 效果驗證

1. UDP服務(wù)器

此處需要使用一款助手工具,本章便用sscom工具進行效果展示。1.1?UDP服務(wù)器接收到的設(shè)備數(shù)據(jù)

圖20?點擊創(chuàng)建連接

1.2 UDP服務(wù)器接收到的設(shè)備數(shù)據(jù)

圖21?設(shè)備數(shù)據(jù)

1.3?UDP服務(wù)器向設(shè)備下發(fā)數(shù)據(jù)

圖22?下發(fā)數(shù)據(jù)

2. UDP客戶端

可見客戶端接收到的數(shù)據(jù)如下。

圖23?查看UDP客戶端接收數(shù)據(jù)

圖24?接收數(shù)據(jù)

詳情到此,本章結(jié)束,如果您對此有興趣,那就趕快行動起來吧!

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
KSZ8863RLLI 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP48

ECAD模型

下載ECAD模型
$5.09 查看
AD73311ARSZ 1 Analog Devices Inc Single-Channel, 3 V and 5 V Front-End Processor for General Purpose Applications Including Speech and Telephony

ECAD模型

下載ECAD模型
$10.72 查看
KSZ8081MNXIA-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, QCC32

ECAD模型

下載ECAD模型
$1.71 查看
致遠電子

致遠電子

廣州致遠電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術(shù)認證企業(yè),廣州市高端工控測量儀器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術(shù)認證企業(yè),廣州市高端工控測量儀器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

ZLG官方賬號,一個匯聚500名工程師的研發(fā)測試分享平臺,為您提供電子世界領(lǐng)先的產(chǎn)品技術(shù)與行業(yè)解決方案.