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

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

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

Modbus RTU Master 轉(zhuǎn) TCP Server

ZLG致遠電子 ? 2023-07-31 23:27 ? 次閱讀

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

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

b529ca94-2fb6-11ee-bbcf-dac502259ad0.png

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

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

EsDAMPC-ZC1入門(一)——軟件安裝

EsDAMPC-ZC1入門(二)——LED控制

EsDAEPC6450-AWI進階(協(xié)議轉(zhuǎn)換)——ModbusTCP轉(zhuǎn)TCPClient


b543c17e-2fb6-11ee-bbcf-dac502259ad0.jpg ?硬件前提1. EPC6450-AWI型號工控板

b56493a4-2fb6-11ee-bbcf-dac502259ad0.png

圖2

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

b5f8e1e4-2fb6-11ee-bbcf-dac502259ad0.jpg

圖3

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

b6ddfd88-2fb6-11ee-bbcf-dac502259ad0.jpg

圖4傳感器,內(nèi)部使用了Modbus RTU協(xié)議,數(shù)據(jù)分別存儲在地址為0(溫度)和1(濕度)上。4. Type-C線、網(wǎng)線、杜邦線若干

b70b913a-2fb6-11ee-bbcf-dac502259ad0.jpg

圖5


b543c17e-2fb6-11ee-bbcf-dac502259ad0.jpg ?硬件連接圖b72d84a2-2fb6-11ee-bbcf-dac502259ad0.jpg
圖6將USB轉(zhuǎn)TLL接口與DUART接口相接(此處注意RXD接TXD,TXD接RXD),Type-C供電線與工控板Type-C接口相接,網(wǎng)口接eth0接口,溫濕度變送器上的A/B信號線分別與工控板上的RS485A/RS485B相連,+電源線接于5V,-地線接于GND。
b543c17e-2fb6-11ee-bbcf-dac502259ad0.jpg ?本章流圖解析b7663f04-2fb6-11ee-bbcf-dac502259ad0.png
圖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ù)組。
  • fscript節(jié)點,該節(jié)點主要負責(zé)對modbus_parse_in節(jié)點所生成的數(shù)值數(shù)組進行提取,并格式化輸出對應(yīng)的溫濕度數(shù)據(jù)。
  • log節(jié)點,該節(jié)點主要負責(zé)把接收到的fscript節(jié)點輸出的數(shù)據(jù),顯示于串口與調(diào)試口。
  • push節(jié)點,該節(jié)點主要負責(zé)將接收到的fscript節(jié)點輸出的數(shù)據(jù),傳送至tcp_server_ex節(jié)點。
  • tcp_server_ex節(jié)點,該節(jié)點主要負責(zé)將得到的push節(jié)點數(shù)據(jù),轉(zhuǎn)發(fā)給PC上位機上的TCP客戶端。

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

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


b543c17e-2fb6-11ee-bbcf-dac502259ad0.jpg ?節(jié)點解析1. modbus_master_in節(jié)點b7a4b1c6-2fb6-11ee-bbcf-dac502259ad0.png
圖8該節(jié)點關(guān)鍵參數(shù)一覽:

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

b7bea11c-2fb6-11ee-bbcf-dac502259ad0.png
圖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é)點b7dbaa50-2fb6-11ee-bbcf-dac502259ad0.png
圖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. fscript節(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. push節(jié)點b8273254-2fb6-11ee-bbcf-dac502259ad0.png
圖11

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

5.tcp_server_ex節(jié)點b857d9ae-2fb6-11ee-bbcf-dac502259ad0.png
圖12該節(jié)點主要實現(xiàn)將push節(jié)點發(fā)送而來的數(shù)據(jù),傳達給連接上來的TCP客戶端。

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

  • 端口,本地開放連接的端口號,取值為1024-60000,此處取值為5353。
  • 最大連接數(shù),是指可支持的最大客戶端連接數(shù)量,此處我們設(shè)置為8。
  • 輸出模式,存在兩種輸出模式可以選擇,第一種為攜帶報文頭部的模式,第二種為不攜帶報文頭部的模式,此處我們設(shè)置為第二種模式payload。
  • ?;顣r間,取值范圍為0-100000,此處我們設(shè)置為120。
  • 空閑掉線時間,取值范圍為0-100000,此處我們設(shè)置為0。

6.log節(jié)點b87ddb5e-2fb6-11ee-bbcf-dac502259ad0.png
圖13

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


b543c17e-2fb6-11ee-bbcf-dac502259ad0.jpg ?流圖下載1.點擊下拉框b8a64cba-2fb6-11ee-bbcf-dac502259ad0.png
圖142.點擊配置按鈕b8d40934-2fb6-11ee-bbcf-dac502259ad0.png
圖153.配置ip地址與端口號b91c1ca6-2fb6-11ee-bbcf-dac502259ad0.png
圖16

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

4.先選擇配置,后點擊下載按鈕b93f2278-2fb6-11ee-bbcf-dac502259ad0.png
圖175.下載完成b9504b7a-2fb6-11ee-bbcf-dac502259ad0.png
圖186.完整調(diào)試窗口b97a7206-2fb6-11ee-bbcf-dac502259ad0.png
圖19
b543c17e-2fb6-11ee-bbcf-dac502259ad0.jpg ?效果驗證1.查看調(diào)試窗口信息b9b4181c-2fb6-11ee-bbcf-dac502259ad0.png
圖20

點擊對應(yīng)信息條目可以查看詳情。

b9df93ca-2fb6-11ee-bbcf-dac502259ad0.png
圖21

可見具體的溫濕度數(shù)據(jù)信息。

2.TCP客戶端此處需要使用一款助手工具,而本章便用SSCOM進行效果展示。b9f32eda-2fb6-11ee-bbcf-dac502259ad0.png
圖22

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

ba11ed8e-2fb6-11ee-bbcf-dac502259ad0.png
圖23

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

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

    關(guān)注

    28

    文章

    1718

    瀏覽量

    76428
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1324

    瀏覽量

    78759
  • RTU
    RTU
    +關(guān)注

    關(guān)注

    0

    文章

    384

    瀏覽量

    28547
收藏 人收藏

    評論

    相關(guān)推薦

    Modbus RTU轉(zhuǎn)CC-link協(xié)議網(wǎng)關(guān)(Modbus RTU轉(zhuǎn)CC-link)

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

    EtherNet/IP轉(zhuǎn)Modbus-RTU主站網(wǎng)關(guān)(EtherNet/IP轉(zhuǎn)Modbus-RTU

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

    PLC協(xié)議、Modbus RTU TCP 、DL T645、IEC101-104、BACnet 轉(zhuǎn)Modbus TCP RTU、OPC UA、MQTT、BACnet IP協(xié)議網(wǎng)關(guān)

    ,可同時采集不同協(xié)議,可定制二次開發(fā),滿足不同場景個性化需求。 二、協(xié)議支持 下行采集協(xié)議:各種PLC協(xié)議、Modbus RTU Master、Modbus
    的頭像 發(fā)表于 07-24 16:04 ?231次閱讀
    PLC協(xié)議、<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>  <b class='flag-5'>TCP</b> 、DL T645、IEC101-104、BACnet <b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> <b class='flag-5'>RTU</b>、OPC UA、MQTT、BACnet IP協(xié)議網(wǎng)關(guān)

    Modbus RTU、Modbus TCP轉(zhuǎn)MQTT網(wǎng)關(guān)實現(xiàn)Modbus設(shè)備與云平臺的無縫通信

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

    PN轉(zhuǎn)RS485 Modbus RTU協(xié)議網(wǎng)關(guān)通訊優(yōu)勢分析

    【ZP-WTU-PNMD02、ZP-WTU-PNMD04、ZP-WTU-PNMD10、ZP-WTU-PNMT01】系列Profinet轉(zhuǎn)Modbus TCP”或者“Profinet轉(zhuǎn)R
    的頭像 發(fā)表于 06-17 08:46 ?584次閱讀
    PN<b class='flag-5'>轉(zhuǎn)</b>RS485 <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>協(xié)議網(wǎng)關(guān)通訊優(yōu)勢分析

    ProfiNet轉(zhuǎn)RS485/Modbus Rtu協(xié)議網(wǎng)關(guān)

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

    Modbus TCP轉(zhuǎn)Profinet網(wǎng)關(guān)配置案例

    本案例采用Modbus TCP轉(zhuǎn)Profinet網(wǎng)關(guān)做為Modbus TCP通信協(xié)議設(shè)備與Profinet通信協(xié)議設(shè)備連接的橋梁。
    的頭像 發(fā)表于 05-27 11:55 ?436次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b><b class='flag-5'>轉(zhuǎn)</b>Profinet網(wǎng)關(guān)配置案例

    BL124采集Modbus RTUModbus TCP協(xié)議

    同樣支持Modbus RTUModbus TCP。Modbus網(wǎng)關(guān)為Modbus
    的頭像 發(fā)表于 04-29 16:28 ?315次閱讀
    BL124采集<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>和<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>協(xié)議

    CCLinkie轉(zhuǎn)Modbus RTU在紡紗設(shè)備領(lǐng)域應(yīng)用

    在紡紗設(shè)備領(lǐng)域,CCLinkie轉(zhuǎn)Modbus RTU網(wǎng)關(guān)可以發(fā)揮重要作用。這種網(wǎng)關(guān)的主要功能是將CC-Link IE Field總線協(xié)議轉(zhuǎn)換為Modbus
    的頭像 發(fā)表于 03-22 10:50 ?265次閱讀
    CCLinkie<b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>在紡紗設(shè)備領(lǐng)域應(yīng)用

    MODBUS RTU詳細解釋

    Modbus 一個工業(yè)上常用的通訊協(xié)議、一種通訊約定。Modbus 協(xié)議包括 RTU、ASCII、TCP。其中 MODBUS-RTU最常用,
    發(fā)表于 01-12 16:39 ?8次下載

    Modbus RTU轉(zhuǎn)Modbus TCP網(wǎng)關(guān)應(yīng)用技術(shù)

    通過Modbus RTU轉(zhuǎn)Modbus TCP網(wǎng)關(guān),設(shè)備之間的通信更加靈活便捷,大大提高了系統(tǒng)的可伸縮性和可靠性。此外,
    的頭像 發(fā)表于 12-05 09:04 ?687次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>網(wǎng)關(guān)應(yīng)用技術(shù)

    CCLink轉(zhuǎn)Modbus TCP網(wǎng)關(guān)_MODBUS網(wǎng)口設(shè)置

    興達易控CCLink轉(zhuǎn)Modbus TCP網(wǎng)關(guān)是一種用于連接CCLink網(wǎng)絡(luò)和Modbus TCP網(wǎng)絡(luò)的設(shè)備。它提供了簡單易用的
    的頭像 發(fā)表于 11-15 09:06 ?1129次閱讀
    CCLink<b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>網(wǎng)關(guān)_<b class='flag-5'>MODBUS</b>網(wǎng)口設(shè)置

    CCLink轉(zhuǎn)Modbus TCP網(wǎng)關(guān)_MODBUS報文配置

    興達易控CCLink轉(zhuǎn)Modbus TCP網(wǎng)關(guān)是一種功能強大的設(shè)備,可實現(xiàn)兩個不同通信協(xié)議之間的無縫對接。它能夠?qū)CLink協(xié)議轉(zhuǎn)換為Modbus
    的頭像 發(fā)表于 11-15 09:05 ?429次閱讀
    CCLink<b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>網(wǎng)關(guān)_<b class='flag-5'>MODBUS</b>報文配置

    協(xié)議轉(zhuǎn)換器Modbus RTU轉(zhuǎn)Modbus TCP 模塊RS232/485轉(zhuǎn)以太網(wǎng)模塊 YL102

    電子發(fā)燒友網(wǎng)站提供《協(xié)議轉(zhuǎn)換器Modbus RTU轉(zhuǎn)Modbus TCP 模塊RS232/485轉(zhuǎn)
    發(fā)表于 10-12 14:33 ?2次下載

    modbus TCPmodbus RTU有什么區(qū)別?

    modbus TCPmodbus RTU有什么區(qū)別
    發(fā)表于 10-09 06:20