0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Modbus RTU Master 轉 UDP Client

ZLG致遠電子 ? 2023-08-16 12:12 ? 次閱讀

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

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

1e7c7dbc-3beb-11ee-bbcf-dac502259ad0.png

圖1本文主要使用本公司的EPC6450-AWI型號工控板,外接使用Modbus RTU協(xié)議傳輸?shù)臏貪穸?a href="http://www.wenjunhu.com/tags/變送器/" target="_blank">變送器,讀取相關溫濕度數(shù)據(jù),并創(chuàng)建UDP客戶端,向PC機上的UDP服務器實時發(fā)送溫濕度數(shù)據(jù)。
1e6b15f4-3beb-11ee-bbcf-dac502259ad0.jpg 入門基礎

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

  • EsDAMPC-ZC1入門(一)——軟件安裝
  • EsDAMPC-ZC1入門(二)——LED控制
  • EsDA應用串口服務器——UDPServer

1e6b15f4-3beb-11ee-bbcf-dac502259ad0.jpg ?硬件前提

1. EPC6450-AWI型號工控板

1ea8a496-3beb-11ee-bbcf-dac502259ad0.png

圖2

2.USB轉TTL類型串口設備

1eb3a832-3beb-11ee-bbcf-dac502259ad0.jpg

圖3

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

1fc7ff70-3beb-11ee-bbcf-dac502259ad0.jpg

圖4

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

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

1fd5f4c2-3beb-11ee-bbcf-dac502259ad0.jpg

圖5
1e6b15f4-3beb-11ee-bbcf-dac502259ad0.jpg ?硬件連接圖

1ff907f0-3beb-11ee-bbcf-dac502259ad0.jpg

圖6

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

1e6b15f4-3beb-11ee-bbcf-dac502259ad0.jpg ?本章流圖解析

20303676-3beb-11ee-bbcf-dac502259ad0.png

圖7

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

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

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

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

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


1e6b15f4-3beb-11ee-bbcf-dac502259ad0.jpg ?節(jié)點解析

1.modbus_master_in節(jié)點

2062e058-3beb-11ee-bbcf-dac502259ad0.png

圖8

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

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

207cd706-3beb-11ee-bbcf-dac502259ad0.png

  • 圖9

(可參照學習EsDAMPC-ZC1應用——串口服務器(一),以及EsDAMPC-ZC1應用——串口服務器(二)

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

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

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

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

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

讀取數(shù)量,數(shù)值為0-1000,此處我們設置為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。此處我們設置為read holding resgisters,即第(3)種。

2.modbus_parse_in節(jié)點

2093ea22-3beb-11ee-bbcf-dac502259ad0.png

圖10

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

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

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ù)值,并進行格式化處理,輸出對應的溫濕度數(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é)點209f310c-3beb-11ee-bbcf-dac502259ad0.png

圖11

該節(jié)點用法較為簡單,直接填寫需要進行傳送的目標節(jié)點即可。6.tcp_client節(jié)點20bf09c8-3beb-11ee-bbcf-dac502259ad0.png

圖12

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

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

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

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

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

端口號,此處設置為7777。

本地端口號,此處也設置為7777。

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

則1000ms后便重新連接。

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

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

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

7.log節(jié)點20e72700-3beb-11ee-bbcf-dac502259ad0.png

圖13

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


1e6b15f4-3beb-11ee-bbcf-dac502259ad0.jpg ?流圖下載1.點擊下拉框2136986c-3beb-11ee-bbcf-dac502259ad0.png圖142.點擊配置按鈕215759c6-3beb-11ee-bbcf-dac502259ad0.png圖153.配置IP地址與端口號217ff778-3beb-11ee-bbcf-dac502259ad0.png

圖16

若用戶不知道流圖下載的端口號,可以在板子重啟時,調(diào)試串口種打印信息獲取,或者在shell命令窗口使用ipconfig命令獲取網(wǎng)口配置。4.先選擇配置,后點擊下載按鈕21899814-3beb-11ee-bbcf-dac502259ad0.png

圖17

21aff8a6-3beb-11ee-bbcf-dac502259ad0.png圖185.下載完成21d65e60-3beb-11ee-bbcf-dac502259ad0.png

圖19

1e6b15f4-3beb-11ee-bbcf-dac502259ad0.jpg ?效果驗證

1. UDP服務器

此處需要使用一款助手工具,本章便用sscom工具進行效果展示。1.1UDP服務器接收到的設備數(shù)據(jù)2208a366-3beb-11ee-bbcf-dac502259ad0.png

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

1.2 UDP服務器接收到的設備數(shù)據(jù)2216e1f6-3beb-11ee-bbcf-dac502259ad0.png圖21設備數(shù)據(jù)1.3UDP服務器向設備下發(fā)數(shù)據(jù)2227def2-3beb-11ee-bbcf-dac502259ad0.png圖22下發(fā)數(shù)據(jù)

2. UDP客戶端

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

223cf4f4-3beb-11ee-bbcf-dac502259ad0.png圖23查看UDP客戶端接收數(shù)據(jù)22845d1c-3beb-11ee-bbcf-dac502259ad0.png圖24接收數(shù)據(jù)詳情到此,本章結束,如果您對此有興趣,那就趕快行動起來吧!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • MODBUS
    +關注

    關注

    28

    文章

    2038

    瀏覽量

    79001
  • UDP
    UDP
    +關注

    關注

    0

    文章

    330

    瀏覽量

    34490
  • ESDA
    +關注

    關注

    0

    文章

    28

    瀏覽量

    7732
  • RTU
    RTU
    +關注

    關注

    0

    文章

    432

    瀏覽量

    29285
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于 DeviceNet MODBUS RTU 協(xié)議的施耐德 PLC 與 ABB 電機驅動器倉儲堆垛機的定位控制優(yōu)化方案?

    基于 DeviceNet MODBUS RTU 協(xié)議的施耐德 PLC 與 ABB 電機驅動器倉儲堆垛機的定位控制優(yōu)化方案? 案例背景? 物流倉儲中心的自動化程度不斷提升,大量設備協(xié)同作業(yè)以實現(xiàn)
    發(fā)表于 05-03 10:45

    化工廠通信 “破圈密碼”:Profinet Modbus RTU 網(wǎng)關 “神助攻”

    化工廠通信 “破圈密碼”:Profinet Modbus RTU 網(wǎng)關 “神助攻”
    的頭像 發(fā)表于 04-07 17:32 ?224次閱讀
    化工廠通信 “破圈密碼”:Profinet <b class='flag-5'>轉</b> <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b> 網(wǎng)關 “神助攻”

    Modbus TCPModbus RTU網(wǎng)關連接組態(tài)王的5大技巧!

    Modbus RTU網(wǎng)關(XD-ETH20)便成為了解決這一難題的關鍵工具。本文將詳細解析興達易控Modbus TCPModbus
    的頭像 發(fā)表于 03-16 16:11 ?341次閱讀
    <b class='flag-5'>Modbus</b> TCP<b class='flag-5'>轉</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>網(wǎng)關連接組態(tài)王的5大技巧!

    Modbus TCP 到 RTU:輕松轉換指南!

    Modbus TCPModbus RTU網(wǎng)關便扮演了至關重要的角色,它不僅實現(xiàn)了Modbus TCP與
    的頭像 發(fā)表于 03-14 15:21 ?415次閱讀
    <b class='flag-5'>Modbus</b> TCP 到 <b class='flag-5'>RTU</b>:輕松轉換指南!

    EtherCAT 4 路Modbus RTU網(wǎng)關-三格電子

    EtherCAT 4 路Modbus RTU網(wǎng)關 SG-ECAT-Modbus_4 產(chǎn)品介紹 本產(chǎn)品是天津三格電子的EtherCAT和Modbus
    的頭像 發(fā)表于 12-25 17:25 ?424次閱讀
    EtherCAT<b class='flag-5'>轉</b> 4 路<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>網(wǎng)關-三格電子

    Profibus PAModbus RTU協(xié)議網(wǎng)關

    捷米特JM-RTU-PA網(wǎng)關將Profibus PA和Modbus RTU專用通訊協(xié)議橋接的協(xié)議轉換設備。符合Modbus RTU通訊協(xié)議的
    的頭像 發(fā)表于 09-25 11:47 ?619次閱讀
    Profibus PA<b class='flag-5'>轉</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>協(xié)議網(wǎng)關

    Modbus RTUCC-link協(xié)議網(wǎng)關(Modbus RTUCC-link)

    特JM-CCLK-RTU應用于支持Modbus RTU接口的變頻器、儀表、上位機、馬保等等。在紡紗設備領域,Modbus RTU
    的頭像 發(fā)表于 09-10 10:28 ?882次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>轉</b>CC-link協(xié)議網(wǎng)關(<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>轉</b>CC-link)

    Profibus-PAModbus-RTU協(xié)議網(wǎng)關(Profibus-PAModbus-RTU

    一,設備主要功能 遠創(chuàng)智控YC-PA-RTU型網(wǎng)關將Profibus PA和Modbus RTU專用通訊協(xié)議橋接的協(xié)議轉換設備。符合Modbus R
    的頭像 發(fā)表于 09-09 16:34 ?640次閱讀
    Profibus-PA<b class='flag-5'>轉</b><b class='flag-5'>Modbus-RTU</b>協(xié)議網(wǎng)關(Profibus-PA<b class='flag-5'>轉</b><b class='flag-5'>Modbus-RTU</b>)

    EtherCAT主站Modbus RTU網(wǎng)關(EtherCATModbus RTU

    一,設備主要功能 遠創(chuàng)智控YC-ECTM-RTU型網(wǎng)關將EtherCAT協(xié)議的設備接入到Modbus RTU網(wǎng)絡中;可將EtherCAT主站接入Modbus
    的頭像 發(fā)表于 09-09 16:32 ?553次閱讀
    EtherCAT主站<b class='flag-5'>轉</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>網(wǎng)關(EtherCAT<b class='flag-5'>轉</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>)

    Modbus RTUCC-Link協(xié)議網(wǎng)關(CC-LinkModbus RTU

    遠創(chuàng)智控YC-CCLK-RTU型網(wǎng)關實現(xiàn)了CC-Link從站和Modbus RTU主站(從站)。網(wǎng)關作為CC-Link從站接入到CC-Link網(wǎng)絡中,比如連接到三菱PLC。CCLK-RTU
    的頭像 發(fā)表于 09-07 14:59 ?691次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>轉</b>CC-Link協(xié)議網(wǎng)關(CC-Link<b class='flag-5'>轉</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>)

    EtherNet/IPModbus-RTU主站網(wǎng)關(EtherNet/IPModbus-RTU

    ,用戶的變頻器采用Modbus RTU通信,耐用通信EtherNet/IPModbus RTU網(wǎng)關作為兩者之間的橋梁,實現(xiàn)PLC對變頻器的
    的頭像 發(fā)表于 09-04 10:55 ?579次閱讀
    EtherNet/IP<b class='flag-5'>轉</b><b class='flag-5'>Modbus-RTU</b>主站網(wǎng)關(EtherNet/IP<b class='flag-5'>轉</b><b class='flag-5'>Modbus-RTU</b>)

    EtherNet/IPModbus-RTU主站協(xié)議網(wǎng)關(JM-EIP-RTU

    ,用戶的變頻器采用Modbus RTU通信,耐用通信EtherNet/IPModbus RTU網(wǎng)關作為兩者之間的橋梁,實現(xiàn)PLC對變頻器的
    的頭像 發(fā)表于 08-26 14:43 ?609次閱讀
    EtherNet/IP<b class='flag-5'>轉</b><b class='flag-5'>Modbus-RTU</b>主站協(xié)議網(wǎng)關(JM-EIP-<b class='flag-5'>RTU</b>)

    EtherCATModbus RTU協(xié)議網(wǎng)關(YC-ECT-RTU

    遠創(chuàng)智控YC-ECT-RTU是自主研發(fā)的一款EtherCAT從站功能的通訊網(wǎng)關。該產(chǎn)品主要功能是將EtherCAT網(wǎng)絡和Modbus RTU總線連接起來。本網(wǎng)關連接到EtherCAT總線中做為從站使用,連接到
    的頭像 發(fā)表于 08-25 09:41 ?703次閱讀
    EtherCAT<b class='flag-5'>轉</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>協(xié)議網(wǎng)關(YC-ECT-<b class='flag-5'>RTU</b>)

    Modbus RTUModbus TCPMQTT網(wǎng)關實現(xiàn)Modbus設備與云平臺的無縫通信

    鋇錸ModbusMQTT網(wǎng)關,簡而言之,就是通過將Modbus協(xié)議(包括Modbus RTUModb
    的頭像 發(fā)表于 07-23 16:58 ?4264次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>、<b class='flag-5'>Modbus</b> TCP<b class='flag-5'>轉</b>MQTT網(wǎng)關實現(xiàn)<b class='flag-5'>Modbus</b>設備與云平臺的無縫通信

    ProfiNetRS485/Modbus Rtu協(xié)議網(wǎng)關

    網(wǎng)關實現(xiàn)PNrs485、profinetRS485、Modbusprofinet、RS485PN、profinet
    的頭像 發(fā)表于 06-13 08:55 ?1120次閱讀
    ProfiNet<b class='flag-5'>轉</b>RS485/<b class='flag-5'>Modbus</b> <b class='flag-5'>Rtu</b>協(xié)議網(wǎng)關

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品