本章內容,主要使用modbus_master_in、modbus_parse_in、fscript、log、push、tcp_client節點。用戶在進行閱讀之前,需具備一定基礎的AWFlow Designer開發經驗。若剛開始接觸,可閱讀以下文章,進行基礎知識的學習。
- EsDAMPC-ZC1入門(一)——軟件安裝
- EsDAMPC-ZC1入門(二)——LED控制
- EsDAEPC6450-AWI進階(協議轉換)——ModbusTCP轉TCPClient
1. EPC6450-AWI型號工控板
圖2
2.USB轉TTL類型串口設備
圖3
此傳感器,內部使用了Modbus RTU協議,數據分別存儲在地址為0(溫度)和1(濕度)上。
4.Type-C線、網線、杜邦線若干
將USB轉TLL接口與DUART接口相接(此處注意RXD接TXD,TXD接RXD),Type-C供電線與工控板Type-C接口相接,網口接NET0接口,溫濕度變送器上的A/B信號線分別于工控板上的RS485A/RS485B相連,+電源線接于5V,-地線接于GND。
本章流圖解析
1. 本流圖節點列表
- modbus_master_in節點,該節點負責讀取從機的相關寄存器地址中的數據。
- modbus_parse_in節點,該節點負責解析modbus_master_in獲取的數據,將數據轉化成對應類型的數值數組。
- fscript1節點,該節點主要負責對modbus_parse_in節點所生成的數值數組進行提取,并格式化輸出對應的溫濕度數據。
- fscript2節點,該節點主要負責對tcp_client節點接收到的數據,進行讀取與解析,并傳送給下一個節點。
- log節點,該節點主要負責把接收到的fscript節點輸出的數據,顯示于串口與調試口。
- push節點,該節點主要負責將接收到的fscript節點輸出的數據,傳送至tcp_client節點。
- tcp_client節點,該節點主要負責將得到的push節點數據,轉發給PC上位機上的TCP服務器,并接收服務器下發的數據。
1.modbus_master_in節點
該節點關鍵參數一覽:
-
主機參數配置,此處配置與配置串口參數同理,配置如下:
(可參照學習EsDAMPC-ZC1應用——串口服務器(一),以及 EsDAMPC-ZC1應用——串口服務器(二))
-
讀取模式,該屬性將決定節點的觸發方式。分別有:(1)循環讀取數據,該模式節點將以用戶設定的周期定時輸出數據,如周期內數據未被刷新,則在下一周期輸出;
(2)根據輸入的信息讀取從機設備的數據,讀取成功則向下一節點輸出數據。可使用push節點向此節點輸入讀取所需要的參數信息,具體請查看輸入參數。此處我們選用periodic read data模式,即第(1)種。
-
從機ID,從機設備的ID號,數值為0-255。此處從機ID為1,具體用戶可根據實際情況修改。
-
輸出周期,數值為0-65535,此處我們設置為1000。
-
寄存器地址,該值為讀取的起始寄存器地址,數值為0-65535,此處我們設置為0。
-
讀取數量,數值為0-1000,此處我們設置為2,即讀取兩個數據(分別為溫度和濕度)。
-
寄存器類型,讀取的寄存器類型。分別有:(1)讀取線圈量,此類型的數據將輸出uint8_t指針類型的payload;(2)讀取離散量,此類型的數據將輸出uint8_t指針類型的payload;(3)讀取保持寄存器,此類型的數據將輸出uint16_t指針類型的payload;
(4)讀取輸入寄存器,此類型的數據將輸出uint16_t指針類型的payload。此處我們設置為read holding resgisters,即第(3)種。
2.modbus_parse_in節點
![8012103a-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJmAVgWQAAKYCIdnCBQ559.png)
圖10
該節點關鍵參數一覽:- 數據轉換模式,該模式有:(1)單地址數據轉換,此模式只對某一地址的數據進行轉換,因此輸出payload是對應地址的單個數據值;(2)多地址數據轉換,此模式對指定地址及數量的數據進行同一的轉換,并將轉換后的值存入array對象;(3)全地址數據轉換,此模式對輸入的所有數據進行同一的轉換,并將轉換后的值存入array對象。注:數據地址及長度必須在modbus輸入節點的讀取范圍內,否則轉換將失敗。此處我們選擇multi-address address parse模式,即第(2)種。
- 數據轉換起始地址,此處設置為0。
- 轉換數量,此處設置為2。
- 數據轉換類型,讀取的數據格式,對讀取的數據進行位整合,例: int32_t:將數據地址開始的4byte整合成int32_t類型的值。此處我們選擇16bits-unsigned int類型。
- 大小端選擇,此處選擇配置讀取的存儲大小端模式,此處我們設置為小端模式。
該節點為腳本節點,具體腳本如下。
a = msg.payload
output.payload = "temp:" + array_get(a, 0)/10 + "C, " + "humi:" + array_get(a, 1)/10 + "RH"
此腳本主要實現將modbus_parse_in節點所生成的數值數組提取數值,并進行格式化處理,輸出對應的溫濕度數據。4.fscript2節點
該節點為腳本節點,具體腳本如下。
b = istream_read_string(msg.istream, 100, 1000)
msg.payload = b
此腳本主要實現解析TCP客戶端接收到的數據,并將其發送給log節點。
5. push節點![804f5b70-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJmAAPXFAAC2h2DVjrA996.png)
圖11
該節點用法較為簡單,直接填寫需要進行傳送的目標節點即可。6.tcp_client節點![806ac5cc-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJmAfTVUAAGnlnfg_LE663.png)
圖12
該節點主要實現將push節點發送而來的數據,傳達給TCP服務器。
該節點關鍵參數一覽:-
主機,此處我們設置為服務器的IP地址(192.168.137.136)。
-
端口,本地開放連接的端口號,取值為1024-60000,此處取值為7777。
-
重試時間間隔,此處我們設置為1000,單位為ms。
![8092d94a-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJmAKuLNAAIvvM4G0Qs917.png)
圖13
該節點主要實現,將上一個節點傳輸而下的數據,打印至串口和調試窗口上,一個很好用的調試信息反饋節點。
流圖下載1.點擊下拉框![80d4d53e-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJmAZTLUAAHQBF4NEq0011.png)
![81088406-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJqAG1foAAHeRTF4kvQ371.png)
![81355760-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJqAQ5JRAAGwKXkq6V4790.png)
圖16
若用戶不知道流圖下載的端口號,可以在板子重啟時,調試串口種打印信息獲取,或者在shell命令窗口使用ipconfig命令獲取網口配置。4.先選擇配置,后點擊下載按鈕![8166bb8e-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJqAVZaRAAHe0nTb-_o044.png)
圖17
![818565b6-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJqARx9hAAHWxU5dOAE194.png)
![81b27cc2-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJqACTGLAAEZ5nj4I5w333.png)
圖19
效果驗證1. TCP服務器的搭建
此處需要使用一款助手工具,而本章便用TCP&UDP測試工具進行效果展示。![81dba94e-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJqAWa6EAACVH0mkiR4083.png)
圖20創建服務器
![81f5165e-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJqALJ2wAADUVlM37_Q282.png)
圖21配置服務器
![820c04f4-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJuAMz30AACwPO3xkSw123.png)
![823d9974-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJuAal98AADtMkh8XAg892.png)
圖23服務器接收
![82517d22-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJuABQulAAD1NgoftrU408.png)
![8276ecc4-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJuACGApAAF9lQ5zeU0350.png)
![82aa2f9e-3666-11ee-9e74-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/EF/wKgaomToQJuAQLeGAAF9KhicPYs090.png)
關聯產品 技術交流群長按識別如下二維碼可加入“EsDA嵌入式系統設計自動化交流群”,與志同道合的朋友交流,并有專業技術人員為您答疑解惑,如有問題可以咨詢小致微信:zlgmcu-888。
-
致遠電子
+關注
關注
13文章
406瀏覽量
31310
原文標題:【EsDA 應用】Modbus RTU Master 轉 TCP Client
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
Modbus網關如何實現Modbus RTU與Modbus TCP協議的數據采集?
Modbus RTU協議與Modbus TCP/IP協議的區別
MODBUS TCP 轉 CANOpen
![<b class='flag-5'>MODBUS</b> <b class='flag-5'>TCP</b> <b class='flag-5'>轉</b> CANOpen](https://file1.elecfans.com/web2/M00/08/97/wKgaombyRnmAZrAyAAGHzRG0j8s875.png)
Modbus RTU轉CC-link協議網關(Modbus RTU轉CC-link)
![<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>轉</b>CC-link協議網關(<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>轉</b>CC-link)](https://file1.elecfans.com/web2/M00/05/DC/wKgZombfrU-AOGw0AAKv-cw_KUw942.png)
Modbus RTU轉CC-Link協議網關(CC-Link轉Modbus RTU)
![<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b><b class='flag-5'>轉</b>CC-Link協議網關(CC-Link<b class='flag-5'>轉</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>)](https://file1.elecfans.com//web2/M00/06/90/wKgaombb-cyAas06AAB6XwjfMa4293.jpg)
EtherNet/IP轉Modbus-RTU主站網關(EtherNet/IP轉Modbus-RTU)
![EtherNet/IP<b class='flag-5'>轉</b><b class='flag-5'>Modbus-RTU</b>主站網關(EtherNet/IP<b class='flag-5'>轉</b><b class='flag-5'>Modbus-RTU</b>)](https://file1.elecfans.com/web2/M00/05/1E/wKgaombMIuGAMqO0AAK22mjr9qA153.png)
PLC協議、Modbus RTU TCP 、DL T645、IEC101-104、BACnet 轉Modbus TCP RTU、OPC UA、MQTT、BACnet IP協議網關
![PLC協議、<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'>轉</b><b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> <b class='flag-5'>RTU</b>、OPC UA、MQTT、BACnet IP協議網關](https://file1.elecfans.com/web2/M00/FE/1F/wKgZomagni6AaKw1AAJphE4qBiY785.png)
Modbus RTU、Modbus TCP轉MQTT網關實現Modbus設備與云平臺的無縫通信
![<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'>轉</b>MQTT網關實現<b class='flag-5'>Modbus</b>設備與云平臺的無縫通信](https://file1.elecfans.com/web2/M00/FD/E4/wKgZomafa62AHtzCAAKmcyMNOwg385.png)
PN轉RS485 Modbus RTU協議網關通訊優勢分析
![PN<b class='flag-5'>轉</b>RS485 <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>協議網關通訊優勢分析](https://file1.elecfans.com/web2/M00/EE/F0/wKgZomZvh3KAO3hlAAA7fWkPub4858.png)
CCLinkie轉Modbus RTU在紡紗設備領域應用
![CCLinkie<b class='flag-5'>轉</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>在紡紗設備領域應用](https://file1.elecfans.com/web2/M00/C5/61/wKgZomX88e6ATlFSAAVVfyUwyDE647.png)
評論