

本章內(nèi)容,主要使用modbus_master_in、modbus_parse_in、fscript、log、push、tcp_server_ex節(jié)點(diǎn)。用戶在進(jìn)行閱讀之前,需具備一定基礎(chǔ)的AWFlow Designer開發(fā)經(jīng)驗(yàn)。若剛開始接觸,可閱讀以下文章,進(jìn)行基礎(chǔ)知識(shí)的學(xué)習(xí)。
-
EsDAMPC-ZC1入門(一)——軟件安裝
-
EsDAMPC-ZC1入門(二)——LED控制
-
EsDAEPC6450-AWI進(jìn)階(協(xié)議轉(zhuǎn)換)——ModbusTCP轉(zhuǎn)TCPClient

圖2
2.USB轉(zhuǎn)TTL類型串口設(shè)備
圖3
3.溫濕度變送器(Modbus RTU協(xié)議,RS485接口)
圖5




1. 本流圖節(jié)點(diǎn)列表
- modbus_master_in節(jié)點(diǎn),該節(jié)點(diǎn)負(fù)責(zé)讀取從機(jī)的相關(guān)寄存器地址中的數(shù)據(jù)。
- modbus_parse_in節(jié)點(diǎn),該節(jié)點(diǎn)負(fù)責(zé)解析modbus_master_in獲取的數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)化成對(duì)應(yīng)類型的數(shù)值數(shù)組。
- fscript節(jié)點(diǎn),該節(jié)點(diǎn)主要負(fù)責(zé)對(duì)modbus_parse_in節(jié)點(diǎn)所生成的數(shù)值數(shù)組進(jìn)行提取,并格式化輸出對(duì)應(yīng)的溫濕度數(shù)據(jù)。
- log節(jié)點(diǎn),該節(jié)點(diǎn)主要負(fù)責(zé)把接收到的fscript節(jié)點(diǎn)輸出的數(shù)據(jù),顯示于串口與調(diào)試口。
- push節(jié)點(diǎn),該節(jié)點(diǎn)主要負(fù)責(zé)將接收到的fscript節(jié)點(diǎn)輸出的數(shù)據(jù),傳送至tcp_server_ex節(jié)點(diǎn)。
- tcp_server_ex節(jié)點(diǎn),該節(jié)點(diǎn)主要負(fù)責(zé)將得到的push節(jié)點(diǎn)數(shù)據(jù),轉(zhuǎn)發(fā)給PC上位機(jī)上的TCP客戶端。
通過RS485接口與Modbus RTU協(xié)議讀取溫濕度變送器的數(shù)據(jù),對(duì)該數(shù)據(jù)進(jìn)行數(shù)值化生成對(duì)應(yīng)的數(shù)值數(shù)組,對(duì)生成的數(shù)值數(shù)組進(jìn)行提取,格式化輸出對(duì)應(yīng)的溫濕度情況,并將信息顯示在串口與調(diào)試窗口上,以及發(fā)送至PC上位機(jī)上的TCP客戶端窗口。


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

(可參照學(xué)習(xí)《EsDA MPC-ZC1應(yīng)用——串口服務(wù)器(一)》, 以及《EsDA MPC-ZC1 應(yīng)用——串口服務(wù)器(二)》)
-
讀取模式,該屬性將決定節(jié)點(diǎn)的觸發(fā)方式。分別有:(1)循環(huán)讀取數(shù)據(jù),該模式節(jié)點(diǎn)將以用戶設(shè)定的周期定時(shí)輸出數(shù)據(jù),如周期內(nèi)數(shù)據(jù)未被刷新,則在下一周期輸出;(2)根據(jù)輸入的信息讀取從機(jī)設(shè)備的數(shù)據(jù),讀取成功則向下一節(jié)點(diǎn)輸出數(shù)據(jù)。可使用push節(jié)點(diǎn)向此節(jié)點(diǎn)輸入讀取所需要的參數(shù)信息,具體請(qǐng)查看輸入?yún)?shù)。此處我們選用periodic read data模式,即第(1)種。
-
從機(jī)ID,從機(jī)設(shè)備的ID號(hào),數(shù)值為0-255。此處從機(jī)ID為1,具體用戶可根據(jù)實(shí)際情況修改。
-
輸出周期,數(shù)值為0-65535,此處我們?cè)O(shè)置為1000。
寄存器地址,該值為讀取的起始寄存器地址,數(shù)值為0-65535,此處我們?cè)O(shè)置為0。 -
讀取數(shù)量,數(shù)值為0-1000,此處我們?cè)O(shè)置為2,即讀取兩個(gè)數(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。此處我們?cè)O(shè)置為read holding resgisters,即第(3)種。

該節(jié)點(diǎn)關(guān)鍵參數(shù)一覽:
-
數(shù)據(jù)轉(zhuǎn)換模式,該模式有:(1)單地址數(shù)據(jù)轉(zhuǎn)換,此模式只對(duì)某一地址的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,因此輸出payload是對(duì)應(yīng)地址的單個(gè)數(shù)據(jù)值;(2)多地址數(shù)據(jù)轉(zhuǎn)換,此模式對(duì)指定地址及數(shù)量的數(shù)據(jù)進(jìn)行同一的轉(zhuǎn)換,并將轉(zhuǎn)換后的值存入array對(duì)象;(3)全地址數(shù)據(jù)轉(zhuǎn)換,此模式對(duì)輸入的所有數(shù)據(jù)進(jìn)行同一的轉(zhuǎn)換,并將轉(zhuǎn)換后的值存入array對(duì)象。
注:數(shù)據(jù)地址及長(zhǎng)度必須在modbus輸入節(jié)點(diǎn)的讀取范圍內(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ù)格式,對(duì)讀取的數(shù)據(jù)進(jìn)行位整合,例: int32_t:將數(shù)據(jù)地址開始的4byte整合成int32_t類型的值。此處我們選擇16bits-unsigned int類型。
-
大小端選擇,此處選擇配置讀取的存儲(chǔ)大小端模式,此處我們?cè)O(shè)置為小端模式。
a = msg.payload
output.payload = "temp:" + array_get(a, 0)/10 + "C, " + "humi:" + array_get(a, 1)/10 + "RH"
此腳本主要實(shí)現(xiàn)將modbus_parse_in節(jié)點(diǎn)所生成的數(shù)值數(shù)組提取數(shù)值,并進(jìn)行格式化處理,輸出對(duì)應(yīng)的溫濕度數(shù)據(jù)。
4. push節(jié)點(diǎn)
該節(jié)點(diǎn)用法較為簡(jiǎn)單,直接選擇需要進(jìn)行傳送的目標(biāo)節(jié)點(diǎn)即可。
5.tcp_server_ex節(jié)點(diǎn)
該節(jié)點(diǎn)關(guān)鍵參數(shù)一覽:
- 端口,本地開放連接的端口號(hào),取值為1024-60000,此處取值為5353。
- 最大連接數(shù),是指可支持的最大客戶端連接數(shù)量,此處我們?cè)O(shè)置為8。
- 輸出模式,存在兩種輸出模式可以選擇,第一種為攜帶報(bào)文頭部的模式,第二種為不攜帶報(bào)文頭部的模式,此處我們?cè)O(shè)置為第二種模式payload。
- 保活時(shí)間,取值范圍為0-100000,此處我們?cè)O(shè)置為120。
- 空閑掉線時(shí)間,取值范圍為0-100000,此處我們?cè)O(shè)置為0。

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




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




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

可見具體的溫濕度數(shù)據(jù)信息。
2.TCP客戶端此處需要使用一款助手工具,而本章便用SSCOM進(jìn)行效果展示。
可見客戶端接收到的數(shù)據(jù)如下。

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


-
致遠(yuǎn)電子
+關(guān)注
關(guān)注
13文章
410瀏覽量
31729
原文標(biāo)題:【EsDA 應(yīng)用】Modbus RTU Master 轉(zhuǎn) TCP Server
文章出處:【微信號(hào):ZLG_zhiyuan,微信公眾號(hào):ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
CAN轉(zhuǎn)Modbus TCP工具的應(yīng)用案例
Modbus TCP轉(zhuǎn)Modbus RTU網(wǎng)關(guān)連接組態(tài)王的5大技巧!

Modbus TCP 到 RTU:輕松轉(zhuǎn)換指南!

Modbus TCP Server程序開發(fā)與Yocto系統(tǒng)構(gòu)建

Modbus網(wǎng)關(guān)如何實(shí)現(xiàn)Modbus RTU與Modbus TCP協(xié)議的數(shù)據(jù)采集?
Modbus RTU協(xié)議與Modbus TCP/IP協(xié)議的區(qū)別
MODBUS TCP 轉(zhuǎn) CANOpen

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

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

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

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)

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

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

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

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

評(píng)論