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

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

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

如何利用AWFlow搭建HTTP服務(wù)器

ZLG致遠(yuǎn)電子 ? 2023-12-14 08:24 ? 次閱讀

本文將基于EsDA開(kāi)發(fā)套件快速在開(kāi)發(fā)板上搭建HTTP服務(wù)器,為HTTP客戶(hù)端提供了訪問(wèn)板子的外設(shè)資源,數(shù)據(jù)以及文件讀寫(xiě)等接口,實(shí)現(xiàn)設(shè)備與網(wǎng)絡(luò)服務(wù)的互聯(lián)互通。

353ed9ca-9a17-11ee-9788-92fbcf53809c.jpg ?項(xiàng)目簡(jiǎn)介

物聯(lián)網(wǎng)應(yīng)用中,在開(kāi)發(fā)板上搭建HTTP服務(wù)器是一項(xiàng)很重要的技術(shù),可以實(shí)現(xiàn)設(shè)備間的數(shù)據(jù)通信和遠(yuǎn)程控制。本文將介紹如何使用EPC6450-AWI開(kāi)發(fā)板,以及圖形化設(shè)計(jì)工具AWFlow Designer搭建HTTP服務(wù)器,對(duì)設(shè)備數(shù)據(jù)進(jìn)行遠(yuǎn)程訪問(wèn)和控制。
3542f168-9a17-11ee-9788-92fbcf53809c.jpg ?項(xiàng)目概述當(dāng)客戶(hù)端發(fā)送HTTP請(qǐng)求時(shí),服務(wù)器接收請(qǐng)求,并根據(jù)請(qǐng)求的內(nèi)容做出相應(yīng)的處理,如讀寫(xiě)開(kāi)發(fā)板資源的配置和數(shù)據(jù),讀寫(xiě)文件等操作。開(kāi)發(fā)板搭建的HTTP服務(wù)器,通過(guò)HTTP協(xié)議與客戶(hù)端進(jìn)行通信。本文HTTP服務(wù)器的項(xiàng)目可為客戶(hù)端提供以下五個(gè)接口:

  1. 寫(xiě)內(nèi)容到開(kāi)發(fā)板的文件中;
  2. 讀開(kāi)發(fā)板中的文件內(nèi)容;
  3. 提供讀取ADC通道的電壓值;
  4. 提供讀取溫濕度傳感器的溫度值和濕度值;
  5. 提供設(shè)置Modbus從站的寄存器值。本項(xiàng)目采用的Modbus從站是模擬Modbus從站設(shè)備的上位機(jī)Modbus Slave(工具使用請(qǐng)見(jiàn)【EsDA 應(yīng)用】Modbus RTU Master 轉(zhuǎn) MQTT 的“3.2.4、Modbus Slave安裝并使用”章節(jié))。

354696c4-9a17-11ee-9788-92fbcf53809c.png

3542f168-9a17-11ee-9788-92fbcf53809c.jpg ?前期準(zhǔn)備

讀者可以閱讀以下文章對(duì)HTTP通信和EsDA的一些基礎(chǔ)項(xiàng)目操作進(jìn)行熟絡(luò):

【EsDA應(yīng)用】快速實(shí)現(xiàn)串口轉(zhuǎn)HTTP請(qǐng)求

【EsDA應(yīng)用】Modbus應(yīng)用詳解

【EsDA應(yīng)用】5分鐘實(shí)現(xiàn)一個(gè)串口通信業(yè)務(wù)

【EsDA應(yīng)用】常用IO設(shè)備節(jié)點(diǎn)詳解

1. 硬件準(zhǔn)備

  • 在標(biāo)有絲印為TF Card 絲印的卡槽處,插入SD。
  • 在標(biāo)有絲印為DUART的調(diào)試串口模塊上,將TTL轉(zhuǎn)USB串口模塊的TX與板子絲印為RXD連接,TTL轉(zhuǎn)USB串口模塊的RX與板子絲印為T(mén)XD相連;并將TTL轉(zhuǎn)USB串口模塊的USB端口接入電腦
  • 在標(biāo)有絲印為Type-C 的接口處,插上Type-C線(xiàn),并將Type-C線(xiàn)的另一端USB口插入電腦。
  • 在標(biāo)有絲印為NET0NET1RJ45插座處接上網(wǎng)線(xiàn)的水晶頭,網(wǎng)線(xiàn)另一端的水晶頭插在PC的網(wǎng)絡(luò)接口處。

1.1 提供溫濕度傳感器值的接口項(xiàng)目

在標(biāo)有絲印為5V排針針腳處接上溫濕度變送器DC5V_+ 引腳;在標(biāo)有絲印為GND的排針針腳處接上溫濕度變送器的 DC5V_- 引腳;在標(biāo)有絲印為485A的排針針腳處接上溫濕度變送器的 RS485_A 的引腳;在標(biāo)有絲印為485B的排針針腳處接上溫濕度變送器的 RS485_B 的引腳上。

1.2 設(shè)置Modbus從站寄存器值的接口項(xiàng)目

在標(biāo)有絲印位5V的排針針腳處接上USB轉(zhuǎn)485串口設(shè)備的 +5V 電源引腳;在標(biāo)有絲印位GND的排針針腳處接上USB轉(zhuǎn)485串口設(shè)備的 GND 接地引腳;在標(biāo)有絲印位485A的排針針腳處接上USB轉(zhuǎn)485串口設(shè)備的 RS485A引腳;在標(biāo)有絲印位485B的排針針腳處接上USB轉(zhuǎn)485串口設(shè)備的 RS485B引腳。35546eac-9a17-11ee-9788-92fbcf53809c.jpg

2. 網(wǎng)絡(luò)搭建

打開(kāi)串口調(diào)試助手,檢索并打開(kāi)TTL轉(zhuǎn)USB串口模塊的設(shè)備端口號(hào)后,使用shell命令ip addr,查看網(wǎng)口的IP地址,根據(jù)下圖可知,本文使用的網(wǎng)口設(shè)備IP地址是192.168.137.251。

35588b7c-9a17-11ee-9788-92fbcf53809c.png配置PC上的以太網(wǎng)的IP與開(kāi)發(fā)板的IP地址在同一局域網(wǎng)下。355dd7d0-9a17-11ee-9788-92fbcf53809c.png在串口調(diào)試助手輸入shell指令ping 192.168.137.223,ping成功即開(kāi)發(fā)板可以單方面ping成功PC,若ping失敗則可以關(guān)閉PC端的防火墻之后再?lài)L試。35619122-9a17-11ee-9788-92fbcf53809c.png電腦端執(zhí)行 WIN+R 輸入cmd 回車(chē)即可打開(kāi)CMD命令提示符窗口,執(zhí)行ping 192.168.137.251,ping成功則電腦可以單方面ping成功開(kāi)發(fā)板。當(dāng)開(kāi)發(fā)板和PC可以互ping成功則聯(lián)網(wǎng)成功。356563e2-9a17-11ee-9788-92fbcf53809c.png
3542f168-9a17-11ee-9788-92fbcf53809c.jpg ?項(xiàng)目實(shí)施1. 寫(xiě)文件接口

本接口業(yè)務(wù)主要是將寫(xiě)入的文件內(nèi)容通過(guò)HTTP客戶(hù)端發(fā)送POST請(qǐng)求上傳到HTTP服務(wù)器,服務(wù)器收到請(qǐng)求后做出相應(yīng)處理。可分為以下四個(gè)部分:

用戶(hù)在HTTP客戶(hù)端的body中編輯需要寫(xiě)入的文件內(nèi)容;

HTTP客戶(hù)端設(shè)置服務(wù)器對(duì)應(yīng)的url接口和請(qǐng)求方式,向開(kāi)發(fā)板搭建的HTTP服務(wù)器發(fā)送HTTP請(qǐng)求;

HTTP服務(wù)器監(jiān)聽(tīng)指定端口,處理對(duì)應(yīng)接口的請(qǐng)求并響應(yīng);

查看寫(xiě)入到文件的內(nèi)容,檢驗(yàn)是否成功通過(guò)開(kāi)發(fā)板搭建的HTTP服務(wù)器提供的接口,實(shí)現(xiàn)遠(yuǎn)程文件內(nèi)容的輸入。

1.1 流圖繪制

添加http_in,fscript,http_out,timer,fscript和fileout節(jié)點(diǎn)到畫(huà)布中并連線(xiàn)如下圖。

356d09f8-9a17-11ee-9788-92fbcf53809c.png1.2 節(jié)點(diǎn)配置

雙擊http_in節(jié)點(diǎn),該節(jié)點(diǎn)主要是給HTTP客戶(hù)端提供一個(gè)POST方法的寫(xiě)文件內(nèi)容的接口,統(tǒng)一資源定位符可以根據(jù)用戶(hù)需要更改。點(diǎn)擊完成按鈕即可保存配置。

357d43d6-9a17-11ee-9788-92fbcf53809c.png

點(diǎn)擊http_server旁邊的鉛筆圖標(biāo)對(duì)http_server節(jié)點(diǎn)進(jìn)行配置,通常情況下修改訪問(wèn)的端口號(hào)即可,點(diǎn)擊更新按鈕即可保存配置。

3582be1a-9a17-11ee-9788-92fbcf53809c.png

本項(xiàng)目其他的接口都是在同一個(gè)HTTP服務(wù)器上處理,所以后續(xù)的接口添加新的http_in節(jié)點(diǎn),直接選中之前配置好的http_server,不用再重新添加新的http_server節(jié)點(diǎn)(不用重新創(chuàng)建一個(gè)http_server)。后面的接口項(xiàng)目不再贅述。

358696c0-9a17-11ee-9788-92fbcf53809c.png

雙擊http_in節(jié)點(diǎn)的消費(fèi)者節(jié)點(diǎn)fscript,該節(jié)點(diǎn)主要是接收HTTP客戶(hù)端上傳消息體的內(nèi)容,并將接收寫(xiě)文件接口請(qǐng)求的標(biāo)志位置一。點(diǎn)擊完成按鈕即可保存配置。

global.put_file_status = 1global.putfile = str(msg.payload,true)

雙擊http_out節(jié)點(diǎn),可以根據(jù)用戶(hù)實(shí)際需要設(shè)置響應(yīng)碼和消息頭,本項(xiàng)目使用默認(rèn)的就可以了。點(diǎn)擊完成按鈕即可保存配置。

358a3622-9a17-11ee-9788-92fbcf53809c.png

雙擊timer節(jié)點(diǎn),設(shè)置定時(shí)寫(xiě)入文件的周期時(shí)間。雙擊timer的消費(fèi)者節(jié)點(diǎn)fscript,該節(jié)點(diǎn)主要是處理當(dāng)寫(xiě)文件接口的http_in節(jié)點(diǎn)被觸發(fā)時(shí)那么put_file_status(寫(xiě)文件標(biāo)志位)置一,之后才將收到的請(qǐng)求體的內(nèi)容寫(xiě)入文件中。

if(global.put_file_status == 1) { wb = wbuffer_create() wbuffer_write_string(wb,global.putfile)
output.payload = wbuffer_get_data(wb) output.payloadLength = len(global.putfile) global.put_file_status = 0}

雙擊fileout節(jié)點(diǎn),可根據(jù)用戶(hù)需要配置屬性參數(shù)。因?yàn)楸卷?xiàng)目的數(shù)據(jù)來(lái)源是從前節(jié)點(diǎn)fscript的payload中獲取的,所以屬性數(shù)據(jù)來(lái)源選擇payload選項(xiàng)。358e1062-9a17-11ee-9788-92fbcf53809c.png1.3 流圖下載

繪制完流圖后,點(diǎn)擊CTRL+S即可保存流圖,點(diǎn)擊下載流圖。

在HTTP客戶(hù)端postman上發(fā)起寫(xiě)文件請(qǐng)求,HTTP服務(wù)器收到請(qǐng)求后將寫(xiě)入的內(nèi)容作為響應(yīng)返回到客戶(hù)端進(jìn)行顯示,并執(zhí)行寫(xiě)文件的操作,在串口調(diào)試助手上輸入cat flow/test.txt即可看到寫(xiě)入文件的內(nèi)容。結(jié)果如下圖所示則表示HTTP服務(wù)器搭建寫(xiě)文件的接口已基本實(shí)現(xiàn)。

359847b2-9a17-11ee-9788-92fbcf53809c.png

2. 讀文件接口

本接口業(yè)務(wù)主要是HTTP客戶(hù)端發(fā)送GET方法讀文件請(qǐng)求,HTTP服務(wù)器接收到請(qǐng)求之后將文件內(nèi)容作為響應(yīng)返回到客戶(hù)端進(jìn)行顯示??煞譃橐韵聝蓚€(gè)部分:

HTTP客戶(hù)端設(shè)置讀文件的url接口和請(qǐng)求方式,向開(kāi)發(fā)板搭建的HTTP服務(wù)器發(fā)送HTTP請(qǐng)求;

HTTP服務(wù)器監(jiān)聽(tīng)指定端口,接收到讀文件的請(qǐng)求后將讀文件標(biāo)志位置一,等待讀取文件內(nèi)容,并將讀到的內(nèi)容作為響應(yīng)發(fā)送到HTTP客戶(hù)端。

2.1 流圖繪制

添加http_in,fscript,http_out,timer和filein節(jié)點(diǎn)到畫(huà)布中并連線(xiàn)如下圖。

359e535a-9a17-11ee-9788-92fbcf53809c.png

2.2 節(jié)點(diǎn)配置

雙擊http_in節(jié)點(diǎn),該節(jié)點(diǎn)主要是給HTTP客戶(hù)端提供一個(gè)GET方法的讀文件內(nèi)容的接口,統(tǒng)一資源定位符可以根據(jù)用戶(hù)需要更改。點(diǎn)擊完成按鈕即可保存配置。

35a4a5ac-9a17-11ee-9788-92fbcf53809c.png

雙擊http_in的消費(fèi)者節(jié)點(diǎn)fscript,該節(jié)點(diǎn)的主要功能是當(dāng)HTTP服務(wù)器接收到了來(lái)自客戶(hù)端的讀文件接口的請(qǐng)求,那么將讀文件標(biāo)志位(get_file_status)置一,延時(shí)等待讀取文件的業(yè)務(wù),最后將讀取到的數(shù)據(jù)作為響應(yīng)發(fā)送到HTTP客戶(hù)端。

global.get_file_status = 1sleep_ms(500)msg.payload = "you get file data is "+global.getfile

http_out節(jié)點(diǎn)在本項(xiàng)目中使用默認(rèn)參數(shù)值即可。雙擊timer配置定時(shí)讀文件的周期時(shí)間。

雙擊timer的消費(fèi)者節(jié)點(diǎn)fscript,該節(jié)點(diǎn)主要是檢測(cè)讀文件標(biāo)志位(get_file_status)置一時(shí),設(shè)置filein節(jié)點(diǎn)的配置參數(shù)。點(diǎn)擊完成即可保存配置。

if(global.get_file_status == 1) { set(msg.topic, "exec:read_all") set(msg.payload, 4096) global.get_file_status = 0}

雙擊filein節(jié)點(diǎn),配置需要讀取的文件名。點(diǎn)擊完成即可保存配置。

35a870ce-9a17-11ee-9788-92fbcf53809c.png

雙擊filein的消費(fèi)者節(jié)點(diǎn)fscript,該節(jié)點(diǎn)主要是將filein節(jié)點(diǎn)讀取出來(lái)的文件內(nèi)容,賦值給可供其他節(jié)點(diǎn)訪問(wèn)的全局參數(shù)。點(diǎn)擊完成即可保存配置。

global.getfile = str(msg.payload, true)

2.3 流圖下載

繪制完流圖后,點(diǎn)擊CTRL+S即可保存流圖,點(diǎn)擊下載流圖。

在postman中發(fā)送HTTP客戶(hù)端GET方法的讀文件請(qǐng)求,后續(xù)可以在響應(yīng)報(bào)文部分看到由HTTP服務(wù)器發(fā)出的讀取文件內(nèi)容的響應(yīng)正文。結(jié)果如下圖所示則表示HTTP服務(wù)器搭建讀文件的接口已基本實(shí)現(xiàn)。

35acb53a-9a17-11ee-9788-92fbcf53809c.png

3. 讀取ADC通道值的接口

本接口業(yè)務(wù)主要是HTTP服務(wù)器提供ADC通道的電壓值的接口,當(dāng)HTTP客戶(hù)端發(fā)起該請(qǐng)求時(shí),HTTP服務(wù)器將采集到的ADC通道電壓值作為響應(yīng)返回到HTTP客戶(hù)端進(jìn)行顯示??煞譃橐韵聝蓚€(gè)部分:

  • HTTP客戶(hù)端設(shè)置服務(wù)器獲取ADC通道值的url接口和請(qǐng)求方式,向開(kāi)發(fā)板搭建的HTTP服務(wù)器發(fā)送HTTP請(qǐng)求;
  • HTTP服務(wù)器監(jiān)聽(tīng)指定端口,接收到對(duì)應(yīng)接口的請(qǐng)求后將采集到的ADC通道的電壓值作為響應(yīng)并發(fā)送到HTTP客戶(hù)端。

3.1 流圖繪制

添加http_in,fscript,http_out和adc節(jié)點(diǎn)到畫(huà)布中并連線(xiàn)如下圖。35b0cdc8-9a17-11ee-9788-92fbcf53809c.png

3.2 節(jié)點(diǎn)配置

雙擊http_in節(jié)點(diǎn),該節(jié)點(diǎn)主要是給HTTP客戶(hù)端提供一個(gè)GET方法的獲取ADC通道電壓值的接口,統(tǒng)一資源定位符可以根據(jù)用戶(hù)需要更改。點(diǎn)擊完成按鈕即可保存配置。

35b75dd2-9a17-11ee-9788-92fbcf53809c.png

雙擊http_in的消費(fèi)者節(jié)點(diǎn)fscript,該節(jié)點(diǎn)主要目的是將采集到的ADC通道的電壓值作為響應(yīng)發(fā)送到HTTP客戶(hù)端。點(diǎn)擊完成即可保存配置。

var a = "adc status is "+ global.adc_valuewb = wbuffer_create()wbuffer_write_string(wb,a)msg.payload = wbuffer_get_data(wb)msg.payloadLength = len(a)

本項(xiàng)目中http_out節(jié)點(diǎn)使用默認(rèn)配置即可。

雙擊adc節(jié)點(diǎn),配置需要采集的通道號(hào)。點(diǎn)擊完成即可保存配置。

35c3c61c-9a17-11ee-9788-92fbcf53809c.png

雙擊adc的消費(fèi)者節(jié)點(diǎn)fscript,該節(jié)點(diǎn)主要是將采集到的ADC電壓值賦值給全局變量,供其他節(jié)點(diǎn)使用。點(diǎn)擊完成即可保存配置。

global.adc_value="adc value is :"+" "+msg.payload + "mv"

3.3 流圖下載

繪制完流圖后,點(diǎn)擊CTRL+S即可保存流圖,點(diǎn)擊下載流圖。

在postman中發(fā)送HTTP服務(wù)器提供的采集ADC通道值的接口請(qǐng)求,后續(xù)可以在響應(yīng)部分看到HTTP服務(wù)器返回的實(shí)時(shí)采集到的ADC電壓值。結(jié)果如下圖所示則表示HTTP服務(wù)器搭建的獲取ADC通道電壓值的接口已基本實(shí)現(xiàn)。

35cb8dfc-9a17-11ee-9788-92fbcf53809c.png

4. 提供讀取傳感器值的接口

本接口業(yè)務(wù)主要是HTTP服務(wù)器提供溫濕度傳感器采集的溫度和濕度值的接口,當(dāng)HTTP客戶(hù)端發(fā)起該請(qǐng)求時(shí),HTTP服務(wù)器將采集的溫濕度值作為響應(yīng)返回到HTTP客戶(hù)端進(jìn)行顯示??煞譃橐韵聝蓚€(gè)部分:

  • HTTP客戶(hù)端設(shè)置獲取溫濕度傳感器值的url接口和請(qǐng)求方式,向開(kāi)發(fā)板搭建的HTTP服務(wù)器發(fā)送HTTP請(qǐng)求;
  • HTTP服務(wù)器監(jiān)聽(tīng)指定端口,接收到對(duì)應(yīng)接口的請(qǐng)求后將采集到的溫濕度值作為響應(yīng)并發(fā)送到HTTP客戶(hù)端。

4.1 流圖繪制

添加http_in,fscript,http_out,modbus_master_in和modbus_parse_in節(jié)點(diǎn)到畫(huà)布中并連線(xiàn)如下圖。

35d0472a-9a17-11ee-9788-92fbcf53809c.png

4.2 節(jié)點(diǎn)配置

雙擊http_in節(jié)點(diǎn),該節(jié)點(diǎn)主要是給HTTP客戶(hù)端提供一個(gè)POST方法的接收溫濕度傳感器數(shù)據(jù)的接口,統(tǒng)一資源定位符可以根據(jù)用戶(hù)需要更改。點(diǎn)擊完成按鈕即可保存配置。

35d41c38-9a17-11ee-9788-92fbcf53809c.png

雙擊http_in節(jié)點(diǎn)的消費(fèi)者節(jié)點(diǎn)fscript,該節(jié)點(diǎn)主要處理是將采集到的溫濕度傳感器的值作為響應(yīng)發(fā)送給HTTP客戶(hù)端。點(diǎn)擊完成按鈕即可保存配置。

msg.payload = global.temp_value

http_out節(jié)點(diǎn)配置在本項(xiàng)目中不需要任何更改,使用默認(rèn)配置即可。雙擊modbus_master_in節(jié)點(diǎn),配置溫濕度傳感器從站的相關(guān)配置信息如下。點(diǎn)擊完成即可保存配置。

35d7fad8-9a17-11ee-9788-92fbcf53809c.png

點(diǎn)擊modbus_master_in節(jié)點(diǎn)的屬性主機(jī)參數(shù)配置旁邊的鉛筆圖標(biāo),因?yàn)槭峭ㄟ^(guò)RS485進(jìn)行Modbus通信,所以選擇rtu傳輸模式并選擇對(duì)應(yīng)的串口設(shè)備名,其他串口參數(shù)配置根據(jù)實(shí)際需要進(jìn)行配置,點(diǎn)擊更新即可保存配置。

35df1020-9a17-11ee-9788-92fbcf53809c.png

雙擊modbus_parse_in節(jié)點(diǎn),因?yàn)榈刂?是溫度值,1是濕度值,所以配置節(jié)點(diǎn)參數(shù)如下所示。點(diǎn)擊完成即可保存配置。

35e675b8-9a17-11ee-9788-92fbcf53809c.png

雙擊modbus_parse_in的消費(fèi)者節(jié)點(diǎn)fscript,本節(jié)點(diǎn)主要是解析處理采集到的數(shù)據(jù),并賦值給可供其他節(jié)點(diǎn)使用的全局變量。點(diǎn)擊完成即可保存配置。

global.temp_value = "temp:"+array_get(msg.payload,0)/10+"C, "+"humi:"+array_get(msg.payload,1)/10+"RH"

4.3 流圖下載

繪制完流圖后,點(diǎn)擊CTRL+S即可保存流圖,點(diǎn)擊下載流圖。

在postman中發(fā)送HTTP服務(wù)器提供的采集溫濕度傳感器值的接口請(qǐng)求,后續(xù)可以在響應(yīng)部分看到HTTP服務(wù)器返回的溫度值和濕度值。結(jié)果如下圖所示則表示HTTP服務(wù)器搭建的獲取溫濕度傳感器值的接口已基本實(shí)現(xiàn)。

35edf798-9a17-11ee-9788-92fbcf53809c.png

5. 設(shè)置Modbus從站寄存器值的接口

本接口業(yè)務(wù)主要是將需要寫(xiě)入的Modbus從站寄存器值通過(guò)HTTP客戶(hù)端發(fā)送POST請(qǐng)求上傳到HTTP服務(wù)器,服務(wù)器收到請(qǐng)求后做出相應(yīng)處理??煞譃橐韵滤膫€(gè)部分:

用戶(hù)在HTTP客戶(hù)端的body中編輯需要寫(xiě)入的Modbus從站寄存器值內(nèi)容;

HTTP客戶(hù)端設(shè)置對(duì)應(yīng)的url接口和請(qǐng)求方式,向開(kāi)發(fā)板搭建的HTTP服務(wù)器發(fā)送HTTP請(qǐng)求;

HTTP服務(wù)器監(jiān)聽(tīng)指定端口,處理對(duì)應(yīng)接口的請(qǐng)求并響應(yīng);

查看寫(xiě)入到Modbus從站寄存器的內(nèi)容,檢驗(yàn)是否成功通過(guò)開(kāi)發(fā)板搭建的HTTP服務(wù)器提供的接口,實(shí)現(xiàn)Modbus從站寄存器值的遠(yuǎn)程輸入。

5.1 流圖繪制

添加http_in,fscript,http_out,modbus_parse_out和modbus_master_out節(jié)點(diǎn)到畫(huà)布中并連線(xiàn)如下圖。

35f20cd4-9a17-11ee-9788-92fbcf53809c.png

5.2 節(jié)點(diǎn)配置

雙擊http_in節(jié)點(diǎn),該節(jié)點(diǎn)主要是給HTTP客戶(hù)端提供一個(gè)POST方法的設(shè)置Modbus從站寄存器值的接口,統(tǒng)一資源定位符可以根據(jù)用戶(hù)需要更改。點(diǎn)擊完成按鈕即可保存配置。

35f6a69a-9a17-11ee-9788-92fbcf53809c.png

點(diǎn)擊http_in的消費(fèi)者節(jié)點(diǎn)fscript,該節(jié)點(diǎn)主要是處理將客戶(hù)端發(fā)送的請(qǐng)求消息體解析為modbus_parse_out節(jié)點(diǎn)可以接收的類(lèi)型。內(nèi)容如下:

a = array_create();
str b = str(msg.payload,true)b = replace(b,',',":")data1 = one_of(b,1,":")data2 = one_of(b,3,":")data3 = one_of(b,5,":")array_insert(a, 0, u16(data1))array_insert(a, 1, u16(data2))array_insert(a, 2, u16(data3))
output.payload = a;output.slaveID = 1;output.address = 0;

本項(xiàng)目中http_out節(jié)點(diǎn)使用默認(rèn)配置即可。

雙擊modbus_parse_out節(jié)點(diǎn),配置需要從哪個(gè)寄存器開(kāi)始寫(xiě)值。點(diǎn)擊完成即可保存配置。

35fa7248-9a17-11ee-9788-92fbcf53809c.png雙擊modbus_master_out節(jié)點(diǎn),配置從機(jī)ID和寫(xiě)入的寄存器類(lèi)型。點(diǎn)擊完成即可保存配置。

36090a92-9a17-11ee-9788-92fbcf53809c.png

雙擊modbus_master_out節(jié)點(diǎn)的屬性主機(jī)參數(shù)配置旁邊的鉛筆圖標(biāo),因?yàn)槭峭ㄟ^(guò)RS485進(jìn)行Modbus通信,所以選擇rtu傳輸模式并選擇對(duì)應(yīng)的串口設(shè)備名,其他串口參數(shù)配置根據(jù)實(shí)際需要進(jìn)行配置,點(diǎn)擊更新即可保存配置。3613a362-9a17-11ee-9788-92fbcf53809c.png

5.3 流圖下載

繪制完流圖后,點(diǎn)擊CTRL+S即可保存流圖,點(diǎn)擊下載流圖。

在postman中發(fā)送HTTP服務(wù)器提供的設(shè)置Modbus從站寄存器值的接口請(qǐng)求,后續(xù)可以在Modbus Slave上位機(jī)中查看寫(xiě)入的寄存器的值。結(jié)果如下圖所示則表示HTTP服務(wù)器搭建的設(shè)置Modbus從站寄存器值的接口已基本實(shí)現(xiàn)。

3619d2c8-9a17-11ee-9788-92fbcf53809c.png


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

    關(guān)注

    2909

    文章

    44635

    瀏覽量

    373353
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9160

    瀏覽量

    85419
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    505

    瀏覽量

    31224
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    采用 Flexus 云服務(wù)器 X 實(shí)例搭建 RTSP 直播服務(wù)器

    一、前言 這篇文章講解:? 采用華為云最新推出的 Flexus 云服務(wù)器 X 實(shí)例搭建 RTSP 服務(wù)器,完成視頻直播需求。 隨著實(shí)時(shí)視頻流傳輸需求的增長(zhǎng),RTSP(實(shí)時(shí)流協(xié)議)服務(wù)器
    的頭像 發(fā)表于 12-24 17:36 ?139次閱讀
    采用 Flexus 云<b class='flag-5'>服務(wù)器</b> X 實(shí)例<b class='flag-5'>搭建</b> RTSP 直播<b class='flag-5'>服務(wù)器</b>

    如何使用HTTP服務(wù)器搭建本地Web網(wǎng)站

    最近在學(xué)習(xí) ETH 模塊,ETH 模塊具有 HTTP 服務(wù)的功能,我將在本帖中探討如何使用 HTTP 服務(wù)搭建一個(gè)本地 Web網(wǎng)站,并分享一
    的頭像 發(fā)表于 12-24 09:54 ?396次閱讀
    如何使用<b class='flag-5'>HTTP</b><b class='flag-5'>服務(wù)器</b><b class='flag-5'>搭建</b>本地Web網(wǎng)站

    企業(yè)云服務(wù)器平臺(tái)設(shè)計(jì)與搭建

    企業(yè)云服務(wù)器平臺(tái)的設(shè)計(jì)與搭建是一個(gè)復(fù)雜但系統(tǒng)的過(guò)程,涉及多個(gè)環(huán)節(jié)和因素。主機(jī)推薦小編為您整理發(fā)布企業(yè)云服務(wù)器平臺(tái)設(shè)計(jì)與搭建這一過(guò)程的詳細(xì)闡述。
    的頭像 發(fā)表于 12-04 09:51 ?98次閱讀

    搭建海外云服務(wù)器需要什么費(fèi)用?

    搭建海外云服務(wù)器的費(fèi)用涉及多個(gè)方面,包括服務(wù)器實(shí)例費(fèi)用、公網(wǎng)帶寬費(fèi)用、磁盤(pán)存儲(chǔ)費(fèi)用、操作系統(tǒng)費(fèi)用和其他費(fèi)用。具體費(fèi)用取決于所選的云服務(wù)提供商、服務(wù)器
    的頭像 發(fā)表于 10-29 10:55 ?192次閱讀

    使用Python構(gòu)建高效的HTTP代理服務(wù)器

    構(gòu)建一個(gè)高效的HTTP代理服務(wù)器在Python中涉及多個(gè)方面,包括性能優(yōu)化、并發(fā)處理、協(xié)議支持(HTTP/HTTPS)、錯(cuò)誤處理以及日志記錄等。
    的頭像 發(fā)表于 10-23 07:41 ?169次閱讀

    Kubernetes集群搭建容器云需要幾臺(tái)服務(wù)器?

    Kubernetes集群搭建容器云需要幾臺(tái)服務(wù)器?至少需要4臺(tái)服務(wù)器。搭建容器云所需的服務(wù)器數(shù)量以及具體的
    的頭像 發(fā)表于 10-21 10:06 ?160次閱讀

    服務(wù)器搭建步驟

    服務(wù)器不僅提供了靈活的資源配置和強(qiáng)大的計(jì)算能力,還降低了IT基礎(chǔ)設(shè)施的維護(hù)成本。下面,rak小編帶您詳細(xì)了解云服務(wù)器搭建的步驟。
    的頭像 發(fā)表于 10-09 10:58 ?218次閱讀

    服務(wù)器搭建詳細(xì)過(guò)程

    隨著云計(jì)算技術(shù)的發(fā)展,越來(lái)越多的企業(yè)和個(gè)人開(kāi)始選擇使用云服務(wù)器來(lái)部署自己的應(yīng)用和服務(wù)。相比于傳統(tǒng)的物理服務(wù)器,云服務(wù)器提供了更高的靈活性、可擴(kuò)展性和安全性。下面將詳細(xì)介紹如何
    的頭像 發(fā)表于 09-12 10:00 ?346次閱讀

    使用NS1串口服務(wù)器HTTP模式上傳服務(wù)器數(shù)據(jù)

    HTTP協(xié)議工作于客戶(hù)端-服務(wù)端架構(gòu)之上。瀏覽作為HTTP客戶(hù)端通過(guò)URL向HTTP服務(wù)端即W
    的頭像 發(fā)表于 08-30 12:36 ?354次閱讀
    使用NS1串口<b class='flag-5'>服務(wù)器</b><b class='flag-5'>HTTP</b>模式上傳<b class='flag-5'>服務(wù)器</b>數(shù)據(jù)

    ElfBoard技術(shù)貼|如何在ELF 1開(kāi)發(fā)板上搭建流媒體服務(wù)器

    流媒體服務(wù)器是一種專(zhuān)門(mén)用于傳輸實(shí)時(shí)數(shù)據(jù)流的服務(wù)器軟件,廣泛用于視頻直播、視頻會(huì)議、音頻播放等應(yīng)用場(chǎng)景。在嵌入式開(kāi)發(fā)領(lǐng)域,將流媒體服務(wù)器部署到開(kāi)發(fā)板上可以實(shí)現(xiàn)諸如視頻監(jiān)控、實(shí)時(shí)數(shù)據(jù)傳輸?shù)裙δ堋1疚膶⒔榻B如何
    的頭像 發(fā)表于 08-20 14:48 ?573次閱讀
    ElfBoard技術(shù)貼|如何在ELF 1開(kāi)發(fā)板上<b class='flag-5'>搭建</b>流媒體<b class='flag-5'>服務(wù)器</b>

    tcp方式連接不了服務(wù)器了,服務(wù)器代碼還能開(kāi)源嗎?

    是在維護(hù)服務(wù)器嗎?已經(jīng)兩天了。http方式還可以連接上,就tcp的方式不行了.服務(wù)器代碼能開(kāi)源嗎?讓我們自己搭建服務(wù)器用。
    發(fā)表于 07-15 06:53

    分享 | PTP、NTP時(shí)間同步服務(wù)器的部署與搭建過(guò)程

    分享 | PTP、NTP時(shí)間同步服務(wù)器的部署與搭建過(guò)程
    的頭像 發(fā)表于 05-15 10:01 ?1039次閱讀
    分享 | PTP、NTP時(shí)間同步<b class='flag-5'>服務(wù)器</b>的部署與<b class='flag-5'>搭建</b>過(guò)程

    服務(wù)器linux搭建ftp服務(wù)訪問(wèn)不了怎么解決?

    如果你在云服務(wù)器linux上搭建了FTP服務(wù)但無(wú)法訪問(wèn),這可能是由于幾種原因引起的。以下是一些常見(jiàn)問(wèn)題和解決方法: 1、防火墻配置:確保防火墻允許FTP流量通過(guò)。FTP服務(wù)器通常使用端
    的頭像 發(fā)表于 04-18 17:23 ?1529次閱讀

     海外云服務(wù)器搭建pi節(jié)點(diǎn)詳細(xì)步驟

     海外云服務(wù)器搭建pi節(jié)點(diǎn)簡(jiǎn)單嗎?海外云服務(wù)器搭建pi節(jié)點(diǎn)步驟有哪些?小編為您整理發(fā)布海外云服務(wù)器搭建
    的頭像 發(fā)表于 02-21 10:16 ?1118次閱讀

    幻獸帕魯聯(lián)機(jī)服務(wù)器搭建教程:無(wú)需公網(wǎng)IP、無(wú)需購(gòu)買(mǎi)云服務(wù)器,比私建FRP更穩(wěn)定

    ,可以在國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境搭建自己的服務(wù)器。 搭建《幻獸帕魯》服務(wù)器的過(guò)程其實(shí)非常簡(jiǎn)單,但如何實(shí)現(xiàn)服務(wù)器的遠(yuǎn)程訪問(wèn),是比較難以解決的問(wèn)題。除了直接
    的頭像 發(fā)表于 01-29 16:58 ?608次閱讀
    幻獸帕魯聯(lián)機(jī)<b class='flag-5'>服務(wù)器</b><b class='flag-5'>搭建</b>教程:無(wú)需公網(wǎng)IP、無(wú)需購(gòu)買(mǎi)云<b class='flag-5'>服務(wù)器</b>,比私建FRP更穩(wěn)定