隨著物聯(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ā)時間。
?簡介隨著時代的發(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。

圖1本文主要使用本公司的EPC6450-AWI型號工控板,外接使用Modbus RTU協(xié)議傳輸?shù)臏貪穸?a href="http://www.brongaenegriffin.com/tags/變送器/" target="_blank">變送器,讀取相關(guān)溫濕度數(shù)據(jù),并創(chuàng)建TCP服務(wù)器,向PC機(jī)上的TCP客戶端實時發(fā)送溫濕度數(shù)據(jù)。
?入門基礎(chǔ)
本章內(nèi)容,主要使用modbus_master_in、modbus_parse_in、fscript、log、push、tcp_server_ex節(jié)點。用戶在進(jìn)行閱讀之前,需具備一定基礎(chǔ)的AWFlow Designer開發(fā)經(jīng)驗。若剛開始接觸,可閱讀以下文章,進(jìn)行基礎(chǔ)知識的學(xué)習(xí)。
EsDAMPC-ZC1入門(一)——軟件安裝
EsDAMPC-ZC1入門(二)——LED控制
EsDAEPC6450-AWI進(jìn)階(協(xié)議轉(zhuǎn)換)——ModbusTCP轉(zhuǎn)TCPClient
?硬件前提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)口接eth0接口,溫濕度變送器上的A/B信號線分別與工控板上的RS485A/RS485B相連,+電源線接于5V,-地線接于GND。
?本章流圖解析
圖7
1. 本流圖節(jié)點列表
- modbus_master_in節(jié)點,該節(jié)點負(fù)責(zé)讀取從機(jī)的相關(guān)寄存器地址中的數(shù)據(jù)。
- modbus_parse_in節(jié)點,該節(jié)點負(fù)責(zé)解析modbus_master_in獲取的數(shù)據(jù),將數(shù)據(jù)轉(zhuǎn)化成對應(yīng)類型的數(shù)值數(shù)組。
- fscript節(jié)點,該節(jié)點主要負(fù)責(zé)對modbus_parse_in節(jié)點所生成的數(shù)值數(shù)組進(jìn)行提取,并格式化輸出對應(yīng)的溫濕度數(shù)據(jù)。
- log節(jié)點,該節(jié)點主要負(fù)責(zé)把接收到的fscript節(jié)點輸出的數(shù)據(jù),顯示于串口與調(diào)試口。
- push節(jié)點,該節(jié)點主要負(fù)責(zé)將接收到的fscript節(jié)點輸出的數(shù)據(jù),傳送至tcp_server_ex節(jié)點。
- tcp_server_ex節(jié)點,該節(jié)點主要負(fù)責(zé)將得到的push節(jié)點數(shù)據(jù),轉(zhuǎn)發(fā)給PC上位機(jī)上的TCP客戶端。
2. 數(shù)據(jù)流向
通過RS485接口與Modbus RTU協(xié)議讀取溫濕度變送器的數(shù)據(jù),對該數(shù)據(jù)進(jìn)行數(shù)值化生成對應(yīng)的數(shù)值數(shù)組,對生成的數(shù)值數(shù)組進(jìn)行提取,格式化輸出對應(yīng)的溫濕度情況,并將信息顯示在串口與調(diào)試窗口上,以及發(fā)送至PC上位機(jī)上的TCP客戶端窗口。
?節(jié)點解析1. modbus_master_in節(jié)點
圖8該節(jié)點關(guān)鍵參數(shù)一覽:
主機(jī)參數(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ù)輸入的信息讀取從機(jī)設(shè)備的數(shù)據(jù),讀取成功則向下一節(jié)點輸出數(shù)據(jù)。可使用push節(jié)點向此節(jié)點輸入讀取所需要的參數(shù)信息,具體請查看輸入?yún)?shù)。此處我們選用periodic read data模式,即第(1)種。
從機(jī)ID,從機(jī)設(shè)備的ID號,數(shù)值為0-255。此處從機(jī)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ù)進(jìn)行轉(zhuǎn)換,因此輸出payload是對應(yīng)地址的單個數(shù)據(jù)值;(2)多地址數(shù)據(jù)轉(zhuǎn)換,此模式對指定地址及數(shù)量的數(shù)據(jù)進(jìn)行同一的轉(zhuǎn)換,并將轉(zhuǎn)換后的值存入array對象;(3)全地址數(shù)據(jù)轉(zhuǎn)換,此模式對輸入的所有數(shù)據(jù)進(jìn)行同一的轉(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ù)進(jìn)行位整合,例: 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ù)值,并進(jìn)行格式化處理,輸出對應(yīng)的溫濕度數(shù)據(jù)。
4. push節(jié)點
圖11
該節(jié)點用法較為簡單,直接選擇需要進(jìn)行傳送的目標(biāo)節(jié)點即可。
5.tcp_server_ex節(jié)點
圖12該節(jié)點主要實現(xiàn)將push節(jié)點發(fā)送而來的數(shù)據(jù),傳達(dá)給連接上來的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é)點
圖13
該節(jié)點主要實現(xiàn),將上一個節(jié)點傳輸而下的數(shù)據(jù),打印至串口和調(diào)試窗口上,一個很好用的調(diào)試信息反饋節(jié)點。
?流圖下載1.點擊下拉框
圖142.點擊配置按鈕
圖153.配置ip地址與端口號
圖16
若用戶不知道流圖下載的端口號,可以在板子重啟時,調(diào)試串口中打印信息獲取,或者在shell命令窗口使用ipconfig命令獲取網(wǎng)口配置。
4.先選擇配置,后點擊下載按鈕
圖175.下載完成
圖186.完整調(diào)試窗口
圖19
?效果驗證1.查看調(diào)試窗口信息
圖20
點擊對應(yīng)信息條目可以查看詳情。

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

圖23
到此,本章結(jié)束,如果您對此有興趣,那就趕快行動起來吧!
-
MODBUS
+關(guān)注
關(guān)注
28文章
2521瀏覽量
83787 -
TCP
+關(guān)注
關(guān)注
8文章
1433瀏覽量
83781 -
RTU
+關(guān)注
關(guān)注
0文章
452瀏覽量
30691
發(fā)布評論請先 登錄
Modbus RTU 轉(zhuǎn) Modbus TCP 智能網(wǎng)關(guān) 保障發(fā)那科 31i-B 與貝加萊 X20 數(shù)據(jù)同步
西門子200 SMART與臺達(dá)DVP PLC通訊:工業(yè)自動化Modbus RTU 轉(zhuǎn)Modbus TCP 方案
生物疫苗生產(chǎn)精度保障依托總線協(xié)議的Modbus TCP 轉(zhuǎn) RTU案例
智能物流立體倉庫通訊困境:基于協(xié)議轉(zhuǎn)換的Modbus TCP 轉(zhuǎn) Modbus RTU解決方案
光伏逆變器上料-測試協(xié)同依托數(shù)據(jù)采集的Modbus TCP 轉(zhuǎn) Modbus RTU協(xié)議應(yīng)用案例
用Profinet轉(zhuǎn)Modbus RTU協(xié)議網(wǎng)關(guān)有什么好處
DLT698轉(zhuǎn)Modbus RTU-TCP網(wǎng)關(guān)
Profinet從轉(zhuǎn)Modbus(TCP)主總線協(xié)議轉(zhuǎn)換網(wǎng)關(guān)
Modbus RTU轉(zhuǎn)Profinet總線協(xié)議網(wǎng)關(guān)
工業(yè)場景下塔訊 Modbus RTU 轉(zhuǎn) Modbus TCP 網(wǎng)關(guān)實現(xiàn)橫河流量計與 WinCC 數(shù)據(jù)交互案例
塔訊 Modbus RTU 轉(zhuǎn) Modbus TCP 在污水處理廠 PLC 數(shù)據(jù)采集中的配置案例
Modbus TCP 轉(zhuǎn) Modbus RTU電腦端 TCP 與西門子 V20 變頻器的通信案例
艾默生流量計與Profibus DP主站轉(zhuǎn)Modbus RTU/TCP網(wǎng)關(guān)通訊案例
E+H流量計與Profibus DP主站轉(zhuǎn)Modbus RTU/TCP網(wǎng)關(guān)通訊
Modbus RTU Master 轉(zhuǎn) TCP Server
評論