Smartmeter (modbus tcp) mit esp8266 abfragen

Hallo,

ich will ein Smartmeter auslesen (Netzbezug, Netzeinspeisung), ich kann ihn per Android-App über IP (192, 168, 178, 78), Port (502) und ID (73) erreichen und abfragen. Ich finde für einen NodeMCU (esp8266) aber kein passendes Beispiel womit ich das Smartmeter erreichen kann.

Hat vielleicht jemand eine Bibliothek und ein Beispiel, womit das geht?

Ich möchte die folgenden Register auslesen:

Übersicht Interne Momentanwert Register

Start	End    	Start  	End    
address address address address Size 	R/W 	Function codes 	Type 	Units 	OBIS-Code	Description 
(dec)   (dec)   (hex)   (hex)  

0 	1 	0x0000 	0x0001 	2 	RO 	0x03 		uint32 	0.1 W 	1-0:1.4.0*255 	Active power+
2 	3 	0x0002 	0x0003 	2 	RO 	0x03 		uint32 	0.1 W 	1-0:2.4.0*255 	Active power-

Ich habe das folgende versucht, bekomme aber keine Daten ausgelesen:

/*

  Board: NodeMCU 1.0 (ESP-12E)

*/

#include <ESP8266WiFi.h>

#include <ModbusIP_ESP8266.h>
const int REG = 0;                    // Modbus Hreg Offset
IPAddress remote(192, 168, 178, 78);  // Address of Modbus Slave device
ModbusIP mb;                          //ModbusIP object
uint16_t res = 0;

#ifndef STASSID
#define STASSID "Cudy"
#define STAPSK "12345678"
#endif

const char* ssid = STASSID;  // your network SSID (name)
const char* pass = STAPSK;   // your network password


void setup() {
  Serial.begin(115200);
  Serial.println();
  Serial.println();
  mb.client();

  // We start by connecting to a WiFi network
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, pass);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");

  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());

}

void loop() {
  if (mb.isConnected(remote)) {  // Check if connection to Modbus Slave is established
    Serial.println("modbus is connected");
    //mb.readHreg(remote, REG, &res);  // Initiate Read Coil from Modbus Slave
    mb.readIreg(remote, 0, &res, 1, 0, 73);
    Serial.println(res);
    mb.readIreg(remote, 2, &res, 1, 0, 73);
    Serial.println(res);
    mb.readIreg(remote, 4, &res, 2, 0, 73);
    Serial.println(res);
  } else {
    Serial.println("modbus not connected");
    mb.connect(remote);  // Try to connect if no connection
  }
  mb.task();      // Common local Modbus task

  delay(5000);
}

Versuche es mal mit einem ModbusClientTCPasync aus meiner eModbus-Library. Unter examples gibt es schon eins, das du leicht modifiziert probieren kannst.

aber deine lib unterstützt kein esp8266:
"WARNUNG: Bibliothek eModbus behauptet auf esp32, FreeRTOS Architektur(en) ausgeführt werden zu können und ist möglicherweise inkompatibel mit Ihrer derzeitigen Platine, welche auf esp8266 Architektur(en) ausgeführt wird."

Zur Not muss ich auf einen esp32 ausweichen, würde aber lieber einen esp8266 nehmen, davon habe ich noch ein paar rumliegen.

Da ich sie selbst auf ESP8266 nutze, würde mich das wundern :grin:

Wesentlich ist, dass du die ...async-Varianten benutzt. Die basieren auf dem AsyncTCP für den ESP8266, weil das quasi nebenläufig funktioniert. Auf dem ESP32 gehen alle Varianten, da dort RTOS-Tasks benutzt werden können.

ok, ich hab mal deinen Code ein wenig angepasst:

/*

  Board: NodeMCU 1.0 (ESP-12E)

*/

#include <ESP8266WiFi.h>

#include "ModbusClientTCPasync.h"
IPAddress ip = {192, 168, 178, 78};          // IP address of modbus server
uint16_t port = 502;                      // port of modbus server
ModbusClientTCPasync MB(ip, port);        // Create a ModbusTCP client instance


#ifndef STASSID
#define STASSID "Cudy"
#define STAPSK "12345678"
#endif

const char* ssid = STASSID;  // your network SSID (name)
const char* pass = STAPSK;   // your network password

void handleData(ModbusMessage response, uint32_t token) 
{
  Serial.printf("Response: serverID=%d, FC=%d, Token=%08X, length=%d:\n", response.getServerID(), response.getFunctionCode(), token, response.size());
  for (auto& byte : response) {
    Serial.printf("%02X ", byte);
  }
  Serial.println("");
}

// Define an onError handler function to receive error responses
// Arguments are the error code returned and a user-supplied token to identify the causing request
void handleError(Error error, uint32_t token) 
{
  // ModbusError wraps the error code and provides a readable error message for it
  ModbusError me(error);
  Serial.printf("Error response: %02X - %s token: %d\n", (int)me, (const char *)me, token);
}

void setup() {
  Serial.begin(115200);
  Serial.println();
  Serial.println();
  // mb.client();

  // We start by connecting to a WiFi network
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, pass);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");

  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());

// Set up ModbusTCP client.
// - provide onData handler function
  MB.onDataHandler(&handleData);
// - provide onError handler function
  MB.onErrorHandler(&handleError);
// Set message timeout to 2000ms and interval between requests to the same host to 200ms
  MB.setTimeout(10000);
// Start ModbusTCP background task
  MB.setIdleTimeout(60000);

}

void loop() {
  static unsigned long lastMillis = 0;
  if (millis() - lastMillis > 5000) {
    lastMillis = millis();

    // Create request for
    // (Fill in your data here!)
    // - server ID = 1
    // - function code = 0x03 (read holding register)
    // - start address to read = word 10
    // - number of words to read = 4
    // - token to match the response with the request. We take the current millis() value for it.
    //
    // If something is missing or wrong with the call parameters, we will immediately get an error code 
    // and the request will not be issued
    Serial.printf("sending request with token %d\n", (uint32_t)lastMillis);
    Error err;
    err = MB.addRequest((uint32_t)lastMillis, 1, READ_HOLD_REGISTER, 0, 2);
    if (err != SUCCESS) {
      ModbusError e(err);
      Serial.printf("Error creating request: %02X - %s\n", (int)e, (const char *)e);
    }
    // Else the request is processed in the background task and the onData/onError handler functions will get the result.
    //
    // The output on the Serial Monitor will be (depending on your WiFi and Modbus the data will be different):
    //     __ OK __
    //     . WIFi IP address: 192.168.178.74
    //     Response: serverID=20, FC=3, Token=0000056C, length=11:
    //     14 03 04 01 F6 FF FF FF 00 C0 A8
  }
  
  delay(2000);
}

bekomme dann die folgende Fehlermeldung:


WARNUNG: Bibliothek eModbus behauptet auf esp32, FreeRTOS Architektur(en) ausgeführt werden zu können und ist möglicherweise inkompatibel mit Ihrer derzeitigen Platine, welche auf esp8266 Architektur(en) ausgeführt wird.
In file included from c:\Users\...\Documents\Arduino\libraries\eModbus\src\RTUutils.cpp:7:
c:\Users\...\Documents\Arduino\libraries\eModbus\src\RTUutils.h: In static member function 'static void RTUutils::prepareHardwareSerial(HardwareSerial&, uint16_t)':
c:\Users\...\Documents\Arduino\libraries\eModbus\src\RTUutils.h:58:5: error: 'class HardwareSerial' has no member named 'setTxBufferSize'; did you mean 'setRxBufferSize'?
   58 |   s.setTxBufferSize(bufferSize);
      |     ^~~~~~~~~~~~~~~
      |     setRxBufferSize

exit status 1

Compilation error: exit status 1

hab ich was vergessen, muss ich noch was hinzufügen?

Versuch mal in der ersten Zeile vor allem anderen ein

#define ESP8266

das hat nicht geholfen, noch immer die gleiche Fehlermeldung.

Die Meldung kommt vom Versuch, ESP32-Komponenten zu compilieren. Eigentlich sollten die durch das #define ausgeblendet sein. Benutzt du die Arduino-IDE? Die Warnung am Anfang könnte ein Indiz sein, dass die IDE annimmt, es sei doch ein ESP32 und deshalb die entsprechenden defines aktiviert.

Versuche mal zusätzlich ein #undef ESP32.

Hast Du das richtige Board ausgewählt?
Nicht das da ein ESP32 in der IDE eingestellt ist....
Und dann aktivire mal die ausführlichen Meldungen - DATEI - VOREINSTELLUNGEN
grafik

Evtl. sieht man da mehr.

So nebenbei: die Fehlermeldung sagt auch, dass du entweder keinen oder einen veralteten arduino-esp32-Core installiert hast. eModbus braucht mindestens die Version 2.0.4 oder eine neuere.

IDE ist 2.2.1, ESP32 ist v2.0.11, ESP8266 ist 3.1.2, Board ist das 'NodeMCU 1.0 (ESP 12E Module)', mit oder ohne '#undef ESP32' oder '#define ESP8266', es kommt immer der gleiche Fehler:

FQBN: esp8266:esp8266:nodemcuv2
Using board 'nodemcuv2' from platform in folder: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2
Using core 'esp8266' from platform in folder: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2

"C:\\Users\\...\\...\\packages\\esp8266\\tools\\python3\\3.7.2-post1/python3" -I "C:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2/tools/mkbuildoptglobals.py" "C:\\Users\\...\\AppData\\Local\\Programs\\Arduino IDE\\resources\\app\\lib\\backend\\resources" 10607 "C:\\Users\\...\\AppData\\Local\\Temp\\arduino\\sketches\\95E783C75EA5E13601F4F9122AE38692" "C:\\Users\\...\\AppData\\Local\\Temp\\arduino\\sketches\\95E783C75EA5E13601F4F9122AE38692/core/build.opt" "C:\\Users\\...\\Documents\\Arduino\\modbustest/modbustest.ino.globals.h" "C:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2\\cores\\esp8266/CommonHFile.h"
default_encoding:       cp1252
Assume aggressive 'core.a' caching enabled.
Note: optional global include file 'C:\Users\...\Documents\Arduino\modbustest\modbustest.ino.globals.h' does not exist.
  Read more at https://arduino-esp8266.readthedocs.io/en/latest/faq/a06-global-build-options.html
Verwendete Bibliotheken erkennen ...
C:\Users\...\...\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -DESP8266 @C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core/build.opt -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/lwip2/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/libc/xtensa-lx106-elf/include -IC:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core -c @C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/warnings/none-cppflags -Os -g -free -fipa-pta -Werror=return-type -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU_ESP12E -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_NODEMCU_ESP12E" -DARDUINO_BOARD_ID="nodemcuv2" -DLED_BUILTIN=2 -DFLASHMODE_DIO -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266 -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\variants\nodemcu C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\sketch\modbustest.ino.cpp -o nul
Alternativen für ESP8266WiFi.h: [ESP8266WiFi@1.0]
ResolveLibrary(ESP8266WiFi.h)
  -> Kandidaten: [ESP8266WiFi@1.0]
C:\Users\...\...\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -DESP8266 @C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core/build.opt -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/lwip2/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/libc/xtensa-lx106-elf/include -IC:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core -c @C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/warnings/none-cppflags -Os -g -free -fipa-pta -Werror=return-type -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU_ESP12E -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_NODEMCU_ESP12E" -DARDUINO_BOARD_ID="nodemcuv2" -DLED_BUILTIN=2 -DFLASHMODE_DIO -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266 -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\variants\nodemcu -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\sketch\modbustest.ino.cpp -o nul
Alternativen für ModbusClientTCPasync.h: [eModbus@1.7.0]
ResolveLibrary(ModbusClientTCPasync.h)
  -> Kandidaten: [eModbus@1.7.0]
C:\Users\...\...\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -DESP8266 @C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core/build.opt -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/lwip2/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/libc/xtensa-lx106-elf/include -IC:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core -c @C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/warnings/none-cppflags -Os -g -free -fipa-pta -Werror=return-type -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU_ESP12E -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_NODEMCU_ESP12E" -DARDUINO_BOARD_ID="nodemcuv2" -DLED_BUILTIN=2 -DFLASHMODE_DIO -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266 -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\variants\nodemcu -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src -Ic:\Users\...\Documents\Arduino\libraries\eModbus\src C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\sketch\modbustest.ino.cpp -o nul
Alternativen für ESPAsyncTCP.h: [ESPAsyncTCP@1.2.4]
ResolveLibrary(ESPAsyncTCP.h)
  -> Kandidaten: [ESPAsyncTCP@1.2.4]
C:\Users\...\...\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -DESP8266 @C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core/build.opt -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/lwip2/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/libc/xtensa-lx106-elf/include -IC:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core -c @C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/warnings/none-cppflags -Os -g -free -fipa-pta -Werror=return-type -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU_ESP12E -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_NODEMCU_ESP12E" -DARDUINO_BOARD_ID="nodemcuv2" -DLED_BUILTIN=2 -DFLASHMODE_DIO -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266 -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\variants\nodemcu -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src -Ic:\Users\...\Documents\Arduino\libraries\eModbus\src -Ic:\Users\...\Documents\Arduino\libraries\ESPAsyncTCP\src C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\sketch\modbustest.ino.cpp -o nul
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\BearSSLHelpers.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\CertStoreBearSSL.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\ESP8266WiFi.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\ESP8266WiFiAP.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\ESP8266WiFiGeneric.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\ESP8266WiFiGratuitous.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\ESP8266WiFiMulti.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\ESP8266WiFiSTA-WPS.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\ESP8266WiFiSTA.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\ESP8266WiFiScan.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\WiFiClient.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\WiFiClientSecureBearSSL.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\WiFiServer.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\WiFiServerSecureBearSSL.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\WiFiUdp.cpp
Using cached library dependencies for file: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src\enable_wifi_at_boot_time.cpp
Using cached library dependencies for file: c:\Users\...\Documents\Arduino\libraries\eModbus\src\CoilData.cpp
Using cached library dependencies for file: c:\Users\...\Documents\Arduino\libraries\eModbus\src\Logging.cpp
Using cached library dependencies for file: c:\Users\...\Documents\Arduino\libraries\eModbus\src\ModbusClient.cpp
Using cached library dependencies for file: c:\Users\...\Documents\Arduino\libraries\eModbus\src\ModbusClientRTU.cpp
Using cached library dependencies for file: c:\Users\...\Documents\Arduino\libraries\eModbus\src\ModbusClientTCP.cpp
Using cached library dependencies for file: c:\Users\...\Documents\Arduino\libraries\eModbus\src\ModbusClientTCPasync.cpp
Using cached library dependencies for file: c:\Users\...\Documents\Arduino\libraries\eModbus\src\ModbusMessage.cpp
Using cached library dependencies for file: c:\Users\...\Documents\Arduino\libraries\eModbus\src\ModbusServer.cpp
Using cached library dependencies for file: c:\Users\...\Documents\Arduino\libraries\eModbus\src\ModbusServerRTU.cpp
Using cached library dependencies for file: c:\Users\...\Documents\Arduino\libraries\eModbus\src\ModbusServerTCPasync.cpp
Using cached library dependencies for file: c:\Users\...\Documents\Arduino\libraries\eModbus\src\ModbusTypeDefs.cpp
C:\Users\...\...\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -DESP8266 @C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core/build.opt -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/lwip2/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/libc/xtensa-lx106-elf/include -IC:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core -c @C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/warnings/none-cppflags -Os -g -free -fipa-pta -Werror=return-type -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU_ESP12E -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_NODEMCU_ESP12E" -DARDUINO_BOARD_ID="nodemcuv2" -DLED_BUILTIN=2 -DFLASHMODE_DIO -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266 -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\variants\nodemcu -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src -Ic:\Users\...\Documents\Arduino\libraries\eModbus\src -Ic:\Users\...\Documents\Arduino\libraries\ESPAsyncTCP\src c:\Users\...\Documents\Arduino\libraries\eModbus\src\RTUutils.cpp -o nul
C:\Users\...\...\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -DESP8266 @C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core/build.opt -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/lwip2/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/libc/xtensa-lx106-elf/include -IC:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core -c @C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/warnings/none-cppflags -Os -g -free -fipa-pta -Werror=return-type -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU_ESP12E -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_NODEMCU_ESP12E" -DARDUINO_BOARD_ID="nodemcuv2" -DLED_BUILTIN=2 -DFLASHMODE_DIO -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266 -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\variants\nodemcu -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src -Ic:\Users\...\Documents\Arduino\libraries\eModbus\src -Ic:\Users\...\Documents\Arduino\libraries\ESPAsyncTCP\src c:\Users\...\Documents\Arduino\libraries\ESPAsyncTCP\src\AsyncPrinter.cpp -o nul
C:\Users\...\...\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -DESP8266 @C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core/build.opt -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/lwip2/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/libc/xtensa-lx106-elf/include -IC:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core -c @C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/warnings/none-cppflags -Os -g -free -fipa-pta -Werror=return-type -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU_ESP12E -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_NODEMCU_ESP12E" -DARDUINO_BOARD_ID="nodemcuv2" -DLED_BUILTIN=2 -DFLASHMODE_DIO -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266 -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\variants\nodemcu -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src -Ic:\Users\...\Documents\Arduino\libraries\eModbus\src -Ic:\Users\...\Documents\Arduino\libraries\ESPAsyncTCP\src c:\Users\...\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCP.cpp -o nul
C:\Users\...\...\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -DESP8266 @C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core/build.opt -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/lwip2/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/libc/xtensa-lx106-elf/include -IC:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core -c @C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/warnings/none-cppflags -Os -g -free -fipa-pta -Werror=return-type -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU_ESP12E -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_NODEMCU_ESP12E" -DARDUINO_BOARD_ID="nodemcuv2" -DLED_BUILTIN=2 -DFLASHMODE_DIO -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266 -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\variants\nodemcu -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src -Ic:\Users\...\Documents\Arduino\libraries\eModbus\src -Ic:\Users\...\Documents\Arduino\libraries\ESPAsyncTCP\src c:\Users\...\Documents\Arduino\libraries\ESPAsyncTCP\src\ESPAsyncTCPbuffer.cpp -o nul
C:\Users\...\...\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -DESP8266 @C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core/build.opt -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/lwip2/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/libc/xtensa-lx106-elf/include -IC:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core -c @C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/warnings/none-cppflags -Os -g -free -fipa-pta -Werror=return-type -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU_ESP12E -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_NODEMCU_ESP12E" -DARDUINO_BOARD_ID="nodemcuv2" -DLED_BUILTIN=2 -DFLASHMODE_DIO -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266 -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\variants\nodemcu -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src -Ic:\Users\...\Documents\Arduino\libraries\eModbus\src -Ic:\Users\...\Documents\Arduino\libraries\ESPAsyncTCP\src c:\Users\...\Documents\Arduino\libraries\ESPAsyncTCP\src\SyncClient.cpp -o nul
C:\Users\...\...\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -DESP8266 @C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core/build.opt -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/lwip2/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/libc/xtensa-lx106-elf/include -IC:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core -c @C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/warnings/none-cppflags -Os -g -free -fipa-pta -Werror=return-type -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU_ESP12E -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_NODEMCU_ESP12E" -DARDUINO_BOARD_ID="nodemcuv2" -DLED_BUILTIN=2 -DFLASHMODE_DIO -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266 -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\variants\nodemcu -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src -Ic:\Users\...\Documents\Arduino\libraries\eModbus\src -Ic:\Users\...\Documents\Arduino\libraries\ESPAsyncTCP\src c:\Users\...\Documents\Arduino\libraries\ESPAsyncTCP\src\tcp_axtls.c -o nul
WARNUNG: Bibliothek eModbus behauptet auf esp32, FreeRTOS Architektur(en) ausgeführt werden zu können und ist möglicherweise inkompatibel mit Ihrer derzeitigen Platine, welche auf esp8266 Architektur(en) ausgeführt wird.
Funktionsprototypen werden generiert ...
C:\Users\...\...\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec/bin/xtensa-lx106-elf-g++ -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -DESP8266 @C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core/build.opt -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/lwip2/include -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/sdk/libc/xtensa-lx106-elf/include -IC:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692/core -c @C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2/tools/warnings/none-cppflags -Os -g -free -fipa-pta -Werror=return-type -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w -x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU_ESP12E -DARDUINO_ARCH_ESP8266 -DARDUINO_BOARD="ESP8266_NODEMCU_ESP12E" -DARDUINO_BOARD_ID="nodemcuv2" -DLED_BUILTIN=2 -DFLASHMODE_DIO -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266 -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\variants\nodemcu -IC:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi\src -Ic:\Users\...\Documents\Arduino\libraries\eModbus\src -Ic:\Users\...\Documents\Arduino\libraries\ESPAsyncTCP\src C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\sketch\modbustest.ino.cpp -o C:\Users\...\AppData\Local\Temp\2851103665\sketch_merged.cpp
C:\Users\...\...\packages\builtin\tools\ctags\5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives C:\Users\...\AppData\Local\Temp\2851103665\sketch_merged.cpp
Sketch wird kompiliert ...
"C:\\Users\\...\\...\\packages\\esp8266\\tools\\python3\\3.7.2-post1/python3" -I "C:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2/tools/signing.py" --mode header --publickey "C:\\Users\\...\\Documents\\Arduino\\modbustest/public.key" --out "C:\\Users\\...\\AppData\\Local\\Temp\\arduino\\sketches\\95E783C75EA5E13601F4F9122AE38692/core/Updater_Signing.h"
"C:\\Users\\...\\...\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\3.1.0-gcc10.3-e5f9fec/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -DESP8266 "@C:\\Users\\...\\AppData\\Local\\Temp\\arduino\\sketches\\95E783C75EA5E13601F4F9122AE38692/core/build.opt" "-IC:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2/tools/sdk/include" "-IC:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2/tools/sdk/lwip2/include" "-IC:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2/tools/sdk/libc/xtensa-lx106-elf/include" "-IC:\\Users\\...\\AppData\\Local\\Temp\\arduino\\sketches\\95E783C75EA5E13601F4F9122AE38692/core" -c "@C:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2/tools/warnings/extra-cppflags" -Os -g -free -fipa-pta -Werror=return-type -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -MMD -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU_ESP12E -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_NODEMCU_ESP12E\"" "-DARDUINO_BOARD_ID=\"nodemcuv2\"" -DLED_BUILTIN=2 -DFLASHMODE_DIO "-IC:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2\\cores\\esp8266" "-IC:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2\\variants\\nodemcu" "-IC:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2\\libraries\\ESP8266WiFi\\src" "-Ic:\\Users\\...\\Documents\\Arduino\\libraries\\eModbus\\src" "-Ic:\\Users\\...\\Documents\\Arduino\\libraries\\ESPAsyncTCP\\src" "C:\\Users\\...\\AppData\\Local\\Temp\\arduino\\sketches\\95E783C75EA5E13601F4F9122AE38692\\sketch\\modbustest.ino.cpp" -o "C:\\Users\\...\\AppData\\Local\\Temp\\arduino\\sketches\\95E783C75EA5E13601F4F9122AE38692\\sketch\\modbustest.ino.cpp.o"
Bibliotheken werden kompiliert ...
Bibliothek "ESP8266WiFi" wird kompiliert
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\ESP8266WiFiGratuitous.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\BearSSLHelpers.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\CertStoreBearSSL.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\ESP8266WiFiSTA-WPS.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\ESP8266WiFiAP.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\ESP8266WiFiMulti.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\ESP8266WiFiGeneric.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\ESP8266WiFi.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\ESP8266WiFiSTA.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\ESP8266WiFiScan.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\WiFiClient.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\enable_wifi_at_boot_time.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\WiFiServer.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\WiFiUdp.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\WiFiServerSecureBearSSL.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\WiFiClientSecureBearSSL.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\ESP8266WiFi\ESP8266WiFi.a
Bibliothek "eModbus" wird kompiliert
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\eModbus\ModbusClient.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\eModbus\CoilData.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\eModbus\Logging.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\eModbus\ModbusClientRTU.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\eModbus\ModbusServer.cpp.o
"C:\\Users\\...\\...\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\3.1.0-gcc10.3-e5f9fec/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -D_GNU_SOURCE -DESP8266 "@C:\\Users\\...\\AppData\\Local\\Temp\\arduino\\sketches\\95E783C75EA5E13601F4F9122AE38692/core/build.opt" "-IC:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2/tools/sdk/include" "-IC:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2/tools/sdk/lwip2/include" "-IC:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2/tools/sdk/libc/xtensa-lx106-elf/include" "-IC:\\Users\\...\\AppData\\Local\\Temp\\arduino\\sketches\\95E783C75EA5E13601F4F9122AE38692/core" -c "@C:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2/tools/warnings/extra-cppflags" -Os -g -free -fipa-pta -Werror=return-type -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++17 -MMD -ffunction-sections -fdata-sections -fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10607 -DARDUINO_ESP8266_NODEMCU_ESP12E -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_NODEMCU_ESP12E\"" "-DARDUINO_BOARD_ID=\"nodemcuv2\"" -DLED_BUILTIN=2 -DFLASHMODE_DIO "-IC:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2\\cores\\esp8266" "-IC:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2\\variants\\nodemcu" "-IC:\\Users\\...\\...\\packages\\esp8266\\hardware\\esp8266\\3.1.2\\libraries\\ESP8266WiFi\\src" "-Ic:\\Users\\...\\Documents\\Arduino\\libraries\\eModbus\\src" "-Ic:\\Users\\...\\Documents\\Arduino\\libraries\\ESPAsyncTCP\\src" "c:\\Users\\...\\Documents\\Arduino\\libraries\\eModbus\\src\\RTUutils.cpp" -o "C:\\Users\\...\\AppData\\Local\\Temp\\arduino\\sketches\\95E783C75EA5E13601F4F9122AE38692\\libraries\\eModbus\\RTUutils.cpp.o"
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\eModbus\ModbusMessage.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\eModbus\ModbusClientTCP.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\eModbus\ModbusTypeDefs.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\eModbus\ModbusClientTCPasync.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\eModbus\ModbusServerRTU.cpp.o
Zuvor kompilierte Datei wird verwendet: C:\Users\...\...\sketches\95E783C75EA5E13601F4F9122AE38692\libraries\eModbus\ModbusServerTCPasync.cpp.o
In file included from c:\Users\...\Documents\Arduino\libraries\eModbus\src\RTUutils.cpp:7:
c:\Users\...\Documents\Arduino\libraries\eModbus\src\RTUutils.h: In static member function 'static void RTUutils::RTSauto(bool)':
c:\Users\...\Documents\Arduino\libraries\eModbus\src\RTUutils.h:53:35: warning: unused parameter 'level' [-Wunused-parameter]
   53 |   inline static void RTSauto(bool level) { return; } // NOLINT
      |                              ~~~~~^~~~~
c:\Users\...\Documents\Arduino\libraries\eModbus\src\RTUutils.h: In static member function 'static void RTUutils::prepareHardwareSerial(HardwareSerial&, uint16_t)':
c:\Users\...\Documents\Arduino\libraries\eModbus\src\RTUutils.h:58:5: error: 'class HardwareSerial' has no member named 'setTxBufferSize'; did you mean 'setRxBufferSize'?
   58 |   s.setTxBufferSize(bufferSize);
      |     ^~~~~~~~~~~~~~~
      |     setRxBufferSize
c:\Users\...\Documents\Arduino\libraries\eModbus\src\RTUutils.cpp: In static member function 'static ModbusMessage RTUutils::receive(uint8_t, Stream&, uint32_t, long unsigned int&, uint32_t, bool, bool)':
c:\Users\...\Documents\Arduino\libraries\eModbus\src\RTUutils.cpp:184:41: warning: unused parameter 'caller' [-Wunused-parameter]
  184 | ModbusMessage RTUutils::receive(uint8_t caller, Stream& serial, uint32_t timeout, unsigned long& lastMicros, uint32_t interval, bool ASCIImode, bool skipLeadingZeroBytes) {
      |                                 ~~~~~~~~^~~~~~

Bibliothek ESP8266WiFi in Version 1.0 im Ordner: C:\Users\...\...\packages\esp8266\hardware\esp8266\3.1.2\libraries\ESP8266WiFi  wird verwendet
Bibliothek eModbus in Version 1.7.0 im Ordner: C:\Users\...\Documents\Arduino\libraries\eModbus  wird verwendet
Bibliothek ESPAsyncTCP in Version 1.2.4 im Ordner: C:\Users\...\Documents\Arduino\libraries\ESPAsyncTCP  wird verwendet
exit status 1

Compilation error: exit status 1

Ich schätze mal, es geht mit dem einfach Board nicht.

Wurde versuchen mit Generic ESP8266 Module

Ich vermute, das Problem liegt bei mir...

Die Arduino-IDE scheint den gesamten Code einer Bibliothek vorzucompilieren, egal, ob er für die jeweilige MCU benötigt wird oder nicht. Dadurch versucht sie auch, den Modbus RTU-Code für den ESP8266 zu übersetzen, der da gar nicht funktioniert. In den eigentlichen Modbus-Sourcedateien für RTU Client und Server ist ein #if HAS_FREERTOS drin, der das Übersetzen für den ESP8266 verhindert, in der für ausgelagerte gemeinsame Methoden - RTUutils.cpp/RTUutils.h - aber nicht, wodurch es zu dem Fehler kommt.

Das ist mir nicht aufgefallen, weil ich PlatformIO verwende, wo die unnötigen Übersetzungen auf Grund der Abhängigkeiten nicht stattfinden.

Versuche mal als schnelle Lösung, ganz am Anfang von RTUutils.cpp ein #if HAS_FREERTOS einzufügen und ganz am Ende das zugehörige #endif.

Bei der Version 1.7.0 hat ein Rework von ModbusRTU stattgefunden. Ich vermute, dass es da noch einen Bug gibt. Man kann natürlich in der RTUutils.h die Zeile 58 auskommentieren, dann wird der Code zwar compiliert, aber ob er dann funktioniert ist fraglich. Ist also sehr unschön.

Nimm die Version 1.6.0. Die compiliert auch auf einem ESP8266. Gibt zwar auch einige Warnings... aber Du kannst es ja mal ausprobieren.

Weil Du schreibst, dass Du platformio verwendest ... eine ini :

[platformio]
description = ESP8366F Code eModbus.
default_envs = esp12e

[common]
compile_flags = 
	-Os
	-I $PROJECT_DIR/include
 ; -std=gnu++17
  -Wall

compile_unflags =
; -std=gnu++11

mybuild_flags = 

[env]
platform = espressif8266
framework = arduino
lib_deps = 
  miq19/eModbus@ 1.6.0
build_type = release
build_flags = 
	${common.compile_flags}
	${common.mybuild_flags}
monitor_speed = 74880

[env:esp12e]
board = esp12e
upload_speed = 512000

Da hast du die Schreiber verwechselt :wink:

Ich bin der Autor von eModbus, ich verwende PlatformIO und da klappt es.

Der TO verwendet die Arduino-IDE und dafür fehlt die #if-Klammer.

Wenn ich dazu komme, baue ich die in der library ein.

Sorry für die Verwechslung.

Also ich habe den Code aus #5 in Platformio ausprobiert, bekomme aber in der Version 1.7.0 den gleichen Fehler wie der TO...

In file included from .pio\libdeps\esp12e\eModbus\src\RTUutils.cpp:7:
.pio\libdeps\esp12e\eModbus\src\RTUutils.h: In static member function 'static void RTUutils::prepareHardwareSerial(HardwareSerial&, uint16_t)':
.pio\libdeps\esp12e\eModbus\src\RTUutils.h:58:5: error: 'class HardwareSerial' has no member named 'setTxBufferSize'; did you mean 'setRxBufferSize'?
   58 |   s.setTxBufferSize(bufferSize);
      |     ^~~~~~~~~~~~~~~
      |     setRxBufferSize
Compiling .pio\build\esp12e\lib80b\ESP8266WiFi\ESP8266WiFiSTA.cpp.o
*** [.pio\build\esp12e\lib48d\eModbus\RTUutils.cpp.o] Error 1

Mit der Version 1.6.0 lässt sich der Code aber compilieren.

1.6.0 geht, weil da die mit dem arduino-esp32-Core 2.0.x neu entwickelte UART-Behandlung noch nicht drin ist. 1.7.0 benutzt die, deswegen der Aufruf der vorher nicht bekannten Funktionen.

Auf dem ESP8266 sind die allerdings irrelevant, deswegen fehlt eine #if HAS_FREERTOS / #endif-Klammer in RTUutils.cpp, wie oben geschrieben. Die rutscht uns durch, weil die zum Releasetest benutzten AsyncTCP-Sketche auch auf dem ESP32 compilieren und laufen :blush:

Ah jetzt ja ... :slight_smile: . Ja das funktioniert.

:+1: wow, dass hat geholfen, jetzt läuft es, danke für deine Hilfe und Geduld! :grinning:

ich stehe hier auf dem Schlauch, warum funktioniert das eine und das andere nicht, es wird doch nur ein String übergeben?

    const char modbus_data1[] = "416F0000";  // funktioniert

    String a = "416F0000";
    const char modbus_data2[] = a;  // funktioniert nicht

Eben drum.
Konvertierung zwischen String und charArray toCharArray() - Arduino Reference
Mit den entsprechenden Nachteilen.
Warum willst Du einen String einsetzen???