国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

怎樣將ESP32處理器編程為ModbusTCPMaster

454398 ? 來源:網絡整理 ? 作者:佚名 ? 2019-11-05 16:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:下載并啟動Modbus TCP從站模擬

從http://www.modbusdriver.com/diagslave.html下載 Modbus從站模擬器。

然后打開用于Linux操作系統的下載的存檔和解壓縮版本。

使用 -p 參數從控制臺運行程序:

。/diagslave -p

是Modbus Slave服務器將在其中運行的端口。對于Modbus協議,默認情況下為502,但是您可以使用其他協議。

在Linux以下1024端口中,常規用戶(不是root特權)運行的程序無法使用。

記住您正在使用的端口。

步驟2:準備將計算機連接到設備

您將需要一些程序以便與設備建立連接并向其發送文件。

安裝Python環境和pip(如果您沒有):

apt-get install python3

apt-get install python3-dev

curl “https://bootstrap.pypa.io/get-pip.py” -o “get-pip.py”

python3 get-pip.py

安裝picocom:

apt-get install picocom

需要此程序才能連接到設備并在設備上執行命令。

安裝mpfshell:

pip install mpfshell

此程序允許您發送文件添加到設備。

您也可以從源代碼安裝它。請參閱此頁面:https://github.com/wendlers/mpfshell

步驟3:準備設備并連接到設備

要將 Moduino 或 Pycom 設備連接到PC,您需要 RS-232/RS-485端口或轉換器。檢查設備的版本(使用的端口類型)并找到合適的端口或轉換器。

將設備連接到PC

然后將電源連接到其上

將設備連接到PC,然后將電源連接到PC。您還可以將以太網電纜連接到Moduino ESP32(如果具有該端口)。

連接應與上面的照片類似。

查找端口的路徑,用于設備連接。例如: /dev/ttyS1 , /dev/ttyUSB0 》。

對于USB轉換器,路徑將包含 USB 字。

您可以使用picocom程序連接到設備:

picocom /dev/ttyUSB0 -b 115200

設備的命令提示符類似于以下圖像之一。

Moduino ESP32:請參閱此處

Moduino Pycom:請參見此處

第4步:上傳Modbus主庫

https://github.com。 com/pycom/pycom-modbus/要與Modbus從站通信,您需要適當的庫。 Pycom的庫與Moduino不兼容。檢查符合您設備的說明。

在發送文件之前關閉picocom :按 Ctrl + A ,然后按 Ctrl + X 鍵。

uModBus 庫,用于 Moduino ESP32 ,該庫基于Moduino Pycom的pycom-modbus庫。修改為可在常規ESP32設備上使用。它還為連接器類提供了其他 close() 方法。

1)Moduino ESP32

從https://github.com/techbase123/micropython-modbus下載庫。解壓縮存檔并將所有4個文件發送到Moduino設備。

使用 mpfshell 上傳它們。在帶有該文件的目錄中運行該程序。

通過執行以下命令連接到設備: THIS

ttyUSB0 是串行端口的名稱,其中設備已連接。

使用以下命令將目錄更改為 /flash/lib :

cd /flash/lib

放入所有文件使用以下命令:

put uModBusConst.py

put uModBusFunctions.py

put uModBusTCP.py

put uModBusSerial.py

示例

然后使用 exit 命令退出控制臺并使用 重置 按鈕重新啟動設備。

2)Moduino Pycom

從以下位置下載庫https://github.com/pycom/pycom-modbus/。解壓縮存檔并將uModbus目錄的內容發送到設備。使用mpfshell上載它們。在帶有該文件的目錄中運行該程序。

通過執行以下命令連接到設備:

open ttyUSB0

ttyUSB0 是連接設備的串行端口的名稱。

將目錄更改為 /flash/lib ,創建uModbus目錄并使用以下命令輸入:

cd /flash/lib

md uModbus

cd uModbus

使用以下命令放入所有文件:

put const.py

put functions.py

put tcp.py

put serial.py

然后使用 exit 命令退出控制臺,并通過 重置 重啟設備strong》按鈕。

示例

第5步:連接到網絡

Moduino和Pycom之間建立連接的命令有所不同。

使用picocom連接到設備以執行適當的命令。您可以通過有線或無線方式將Moduino設備連接到網絡。以下示例假定您的網絡具有可用的DHCP服務器。

在其他情況下,設備將無法獲得IP地址。每個Moduino均提供WiFi支持。

1)并非所有設備都具有以太網端口。

1)Moduino ESP32

連接到WiFi

在設備上執行以下命令:

from netWiFi import netWiFi

wifi = netWiFi(netWiFi.WIFI_STA, ‘ESSID’, ‘PASS’)

wifi.start()

用您的WiFi網絡的名稱替換 ESSID ,并 PASS (帶有密碼)。

執行 start() 一段時間后,您應該獲得

連接到以太網絡

使用以太網電纜將設備連接到有線網絡。

然后執行以下命令:

from netETH import netETH

eth = netETH()

eth.start()

執行 start() 一段時間后,您應該獲得分配給設備的IP地址。

2)Moduino Pycom

連接到WiFi

在設備上執行以下命令:

from network import WLAN

wlan = WLAN(mode=WLAN.STA)

nets = wlan.scan()

for net in nets:

if net.ssid == ‘ESSID’:

print(‘Network found!’)

wlan.connect(net.ssid, auth=(net.sec, ‘PASS’), timeout=5000)

while not wlan.isconnected():

machine.idle()

print(‘WLAN connection succeeded!’)

break

將 ESSID 替換為您的WiFi網絡的名稱,并 PASS 帶有密碼。

步驟6:初始化與Modbus從站的通信

兩個設備的Modbus主站庫相似

它們的初始化方式不同。

1)在Moduino ESP32上初始化uModBus

執行:

from uModBusTCP import uModBusTCP as TCP

2)在Pycom上初始化uModBus

執行:

from uModbus.tcp import TCP

打開連接

然后通過以下方式打開連接:

modbus=TCP(‘IP’, PORT, 60)

其中:

IP-使用Modbus從站模擬器的PC的ip地址

PORT-Modbus Slave的端口

60超時

如果在執行讀/寫命令期間發生以下錯誤:示例

為 Moduino ESP32執行:

modbus.close()

用于 Moduino Pycom :

modbus._sock.close()

,然后重新創建連接:

modbus=TCP(‘IP’, PORT, 60)

這對于在重新創建連接之前關閉套接字很重要。

設備限制了可用數量

第7步:讀取和寫入寄存器

Modbus支持幾種讀取和寫入寄存器的功能。

uModBus庫具有每個函數的方法:

read_coils

read_discrete_inputs

read_holding_registers

read_input_registers

write_single_coil

write_single_register

首先,讓我們寫一些值。

1)寫線圈(func:5 )

在從站1中將1的值寫入200寄存器中。

modbus.write_single_coil(1, 200, 0xFF00)

在我們的示例1中,第一個參數是從站ID。

第二個是寄存器號,第三個是值。對于1,您必須在此處放置 0xFF00 。從從站1將0寫入201寄存器:

modbus.write_single_coil(1, 201, 0)

此方法僅允許寫入布爾值:0或1。

2)寫入寄存器(函數: 6)

現在將一些整數值寫入幾個寄存器。

從從站1將有符號的111值寫入寄存器100:

modbus.write_single_register(1, 100, 111, True)

第一個參數是從設備ID,第二個寄存器號,第三個是新值。

最后一個參數定義是否應將值設置為有符號數。其默認值為True。

從從站1將帶符號的-457值寫入101寄存器:

modbus.write_single_register(1, 101, -457)

從從站將未簽名的50值寫入100寄存器3:

modbus.write_single_register(3, 100, 50, False)

此方法允許將整數值寫入單個寄存器。

單個寄存器可以包含16位值。

方法返回 True 是有效的輸入值,而 False 是無效的值。即使無效(對于寄存器來說太大),也會寫入值

3)讀取線圈/離散輸入

現在可以讀取寫入的布爾值。要讀取具有功能1的寄存器,請讀取 線圈 ,執行:

modbus.read_coils(slaveId, register, count)[0:count]

要讀取具有功能1的寄存器,請讀取 離散輸入 ,執行:

modbus.read_discrete_inputs(slaveId, register, count)[0:count]

其中:

slave-id-虛擬奴隸的ID(奴隸模擬器接受所有有效ID)

寄存器-讀取的寄存器編號

count-待讀取的寄存器數量(在兩個位置都放入所需的數量)

這些方法返回具有布爾值的數組。每個值對應于每個寄存器。

需要以下片段: [0:count] ,因為此方法返回的值多于計數。它總是返回可以被8整除的值的數量。其他值是False,并且不對應于任何寄存器。

使用兩種方法讀取布爾值:

modbus.read_coils(1,200,2)[0:2]

modbus.read_discrete_inputs(1,200,2)[0:2]

結果將如下所示:示例

真 是指1個值, 假 設為0。

4)讀取寄存器

現在從用6個函數編寫的寄存器中讀取值。

要讀取具有功能3的寄存器 讀取保持寄存器 ,請執行:

modbus.read_holding_registers(slaveId, register, count, signed=True)

要讀取具有功能4的寄存器 讀取輸入寄存器 ,執行:

modbus.read_input_registers(slaveId, register, count, signed=True)

其中:

從站標識-虛擬從站的標識

寄存器-讀取的寄存器編號

count-待讀取的寄存器數量

帶符號-指示是否應將讀取值視為帶符號的編號。默認狀態:True

返回值是具有所需寄存器數量的元組。

讀取先前設置的寄存器:

modbus.read_holding_registers(1,100,2,True)

modbus.read_input_registers(1,100,2,True)

modbus.read_holding_registers(3,100,1,False)

modbus.read_input_registers(3,100,1,False)

責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    90

    文章

    3716

    瀏覽量

    97204
  • ESP32
    +關注

    關注

    26

    文章

    1197

    瀏覽量

    21801
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ESP32-C6系列】WT0132C6-S5/S5U模組規格書

    WT0132C6-S5模塊是一款低功耗高性價比的嵌入式無線網絡控制模塊。可滿足智能電網、樓宇自動化、安防、智能家居、遠程醫療等物聯網應用的需求。WT0132C6-S5該模塊核心處理器ESP32
    的頭像 發表于 02-03 18:14 ?219次閱讀
    【<b class='flag-5'>ESP32</b>-C6系列】WT0132C6-S5/S5U模組規格書

    樂鑫科技發布全新ESP32-E22!首款三頻?Wi-Fi 6E?高性能協處理器

    樂鑫科技發布首款Wi-Fi6E協處理器ESP32-E22,采用獨特"網絡任務卸載"設計,集成三頻Wi-Fi6E(2.4/5/6GHz)和藍牙5.4,支持160MHz帶寬
    的頭像 發表于 01-26 14:38 ?2051次閱讀
    樂鑫科技發布全新<b class='flag-5'>ESP32</b>-E22!首款三頻?Wi-Fi 6E?高性能協<b class='flag-5'>處理器</b>

    ESP32-C6系列】WT0132C6-S5/S5U模組產品介紹

    ESP32-C6在較小尺寸封裝中集成了業界領先的一個高性能RISC-V32位處理器和一個低功耗RISC-V32位處理器。WT0132C6-S5模塊支持2.4GHzWi-Fi6
    的頭像 發表于 01-23 18:04 ?207次閱讀
    【<b class='flag-5'>ESP32</b>-C6系列】WT0132C6-S5/S5U模組產品介紹

    ESP32-E22 發布!樂鑫首款三頻 Wi-Fi 6E 高性能協處理器!啟明云端樂鑫代理

    樂鑫科技(688018.SH)正式發布ESP32-E22。這是樂鑫推出的首款Wi-Fi6ESoC,標志著公司進軍高性能無線連接領域的戰略新起點,新一代產品矩陣由此全面開啟。作為一款無線連接協處理器
    的頭像 發表于 01-20 18:18 ?924次閱讀
    <b class='flag-5'>ESP32</b>-E22 發布!樂鑫首款三頻 Wi-Fi 6E 高性能協<b class='flag-5'>處理器</b>!啟明云端樂鑫代理

    樂鑫科技ESP32-E22發布 樂鑫首款三頻Wi-Fi 6E 高性能協處理器

    一款 無線連接協處理器 ?(Radio Co-Processor, RCP),ESP32-E22 在單一子系統中集成了三頻 Wi-Fi 6E 與雙模藍牙,可完整承載無線網絡協議棧,使主處理器專注于應用層
    的頭像 發表于 01-19 09:14 ?6.5w次閱讀
    樂鑫科技<b class='flag-5'>ESP32</b>-E22發布 樂鑫首款三頻Wi-Fi 6E 高性能協<b class='flag-5'>處理器</b>

    海光3350處理器能被廣泛應用的原因

    集特海光3350工控主板GM7-5601配置了1顆海光3350處理器、8核16線程設計,2根DDR4內存插槽,最大支持64GB、4個千兆網口、板載網絡控制、10個USB接口、10個COM接口。支持統信UOS、麒麟、Windows、中科方德等國產操作系統。
    的頭像 發表于 01-09 16:22 ?761次閱讀
    海光3350<b class='flag-5'>處理器</b>能被廣泛應用的原因

    ESP8266和ESP32開發板常見的2種下載方式

    ESP32ESP8266是性價比很高而且使用較為廣泛的的Wi-Fi模塊,在物聯網(IoT)領域的DIY項目中可以首先考慮這2款產品。 兩款芯片都屬于32位處理器ESP32是低功耗
    的頭像 發表于 11-10 20:30 ?996次閱讀
    <b class='flag-5'>ESP</b>8266和<b class='flag-5'>ESP32</b>開發板常見的2種下載方式

    新品 | PowerHub,集成多路電源管理的可編程控制器

    PowerHub是一款集成多路電源管理的可編程控制器。采用ESP32-S3-WROOM-1U-N16R8主控模組,搭載雙核XtensaLX7處理器(主頻240MHz),支持2.4GHzWi-Fi
    的頭像 發表于 10-24 18:30 ?778次閱讀
    新品 | PowerHub,集成多路電源管理的可<b class='flag-5'>編程控制器</b>

    ESP8266和ESP32開發板常見的2種下載方式

    的的Wi-Fi模塊,在物聯網(IoT)領域的DIY項目中可以首先考慮這2款產品。 兩款芯片都屬于32位處理器ESP32是低功耗雙核80MHz至240MHz CPU,而ESP8266是單核處理
    發表于 10-24 18:04

    樂鑫ESP32-S3專為AIoT設計,強化邊緣AI應用方向

    電子發燒友網報道(文/李彎彎)樂鑫在最新的財報中表示,公司ESP32-S系列自ESP32-S3芯片開始,強化了邊緣AI方向的應用。ESP32-S3芯片增加了用于加速神經網絡計算和信號處理
    的頭像 發表于 09-09 09:20 ?7475次閱讀
    樂鑫<b class='flag-5'>ESP32</b>-S3專為AIoT設計,強化邊緣AI應用方向

    ESP32-運行網頁服務(Web Server)-實用篇

    在前一篇文章《ESP32-運行網頁服務(WebServer)-入門篇》,我們介紹了ESP32運行網頁服務(WebServer)的原理,然后我們基于
    的頭像 發表于 07-28 18:05 ?3677次閱讀
    <b class='flag-5'>ESP32</b>-運行網頁服務<b class='flag-5'>器</b>(Web Server)-實用篇

    ESP32開發板元件資料

    ESP32開發板元件
    發表于 07-21 14:47 ?15次下載

    ESP32-P4—具備豐富IO連接、HMI和出色安全特性的高性能SoC

    ESP32-P4搭載雙核RISC-V處理器,擁有 AI指令擴展、先進的內存子系統,并集成高速外設。ESP32-P4專為高性能和高安全的應用設計,充分滿足下一代嵌入式應用對人機界面支持、邊緣計算能力
    的頭像 發表于 06-26 09:59 ?2089次閱讀
    <b class='flag-5'>ESP32</b>-P4—具備豐富IO連接、HMI和出色安全特性的高性能SoC

    國產信創工業計算機海光3350處理器集特IPC-660工控機

    引擎。集特IPC-660工控機深度融合這一國產“芯”力量,以硬核配置與場景化設計,智能制造、科研等領域提供安全可靠的國產化解決方案。海光HG3350處理器:采用1
    的頭像 發表于 06-24 15:32 ?2853次閱讀
    國產信創工業計算機海光3350<b class='flag-5'>處理器</b>集特IPC-660工控機

    國民技術能否開展一個M7處理器的試用活動。

    國民技術最近推出了M7處理器,看起來能力很強,電子發燒友能不能聯合國民技術開展一個M7使用的活動,讓大家了解下M7核的國民技術。
    發表于 05-20 22:04