【ESP32】ESP32 Arduino Modbus TCP主站程序

ESP32 Arduino Modbus TCP主站程序

安装库

代码

c 复制代码
#include <WiFi.h>
#include <Modbus.h>
#include <ModbusIP_ESP8266.h>
 
const char* ssid = "A000";
const char* password = "KONGTIAO";
IPAddress remote(10,35,0,123);  // Address of Modbus Slave device
const int serverPort = 502;
ModbusIP mb; 
 
void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nConnected to WiFi");
  Serial.print("IP Address: ");
  Serial.println(WiFi.localIP());
 
  mb.client();//设置esp32为主机
}
 
const int LOOP_COUNT = 10;
uint16_t res = 0;
uint8_t show = LOOP_COUNT;

void loop() {
  if (mb.isConnected(remote)) {   // Check if connection to Modbus Slave is established
    mb.readHreg(remote, 0, &res);  // Initiate Read Coil from Modbus Slave
  } else {
    mb.connect(remote);           // Try to connect if no connection
  }
  mb.task();                      // Common local Modbus task
  delay(1000);                     // Pulling interval
  Serial.println(res);
 
}
/**
uint16_t readHreg(IPAddress ip, uint16_t offset, uint16_t* value, uint16_t numregs = 1, cbTransaction cb = nullptr, uint8_t uint = MODBUSIP_UNIT);
uint16_t readIreg(IPAddress ip, uint16_t offset, uint16_t* value, uint16_t numregs = 1, cbTransaction cb = nullptr, uint8_t uint = MODBUSIP_UNIT);

uint16_t readHreg(uint8_t slaveId, uint16_t offset, uint16_t* value, uint16_t numregs = 1, cbTransaction cb = nullptr);
uint16_t readIreg(uint8_t slaveId, uint16_t offset, uint16_t* value, uint16_t numregs = 1, cbTransaction cb = nullptr);
*/
相关推荐
extrao2 天前
🚀 Kea DHCP4 自动分配系统完整搭建
网络协议
不做菜鸟的网工3 天前
BGP特性
网络协议
MrSYJ4 天前
TCP协议理解
后端·tcp/ip
明月_清风5 天前
开发者网络概念全扫盲:一篇搞定
后端·网络协议
刘马想放假6 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
王二端茶倒水7 天前
一套可落地的无线运营方案,不能只管 AP,还要管用户、计费和运维
网络协议
162723816087 天前
EtherCAT 分布式时钟(DC)原理与配置实战:把多轴真正"对齐到同一时刻"
网络协议
王二端茶倒水7 天前
宽带无线项目,怎么从一次性交付变成长期运营收入?
网络协议
用户2530171996278 天前
第6篇:从技术到产品 — Ghost Proxifier 的设计哲学
网络协议