bg

So protokollieren Sie MODBUS RTU in MySQL-Datenbank

Eine vollständige Anleitung zum Abfragen von MODBUS-RTU-Seriengeräten und zum Exportieren der Registerdaten direkt in eine MySQL-Datenbank.

1. Protokollkonfiguration: MODBUS RTU

Kommunikationstyp: Aktive Abfrage (Master/Slave über RS485/COM)

Da MODBUS Daten binär überträgt, muss der Parser bestimmte Holding-Register (z. B. 40001) oder Input-Register extrahieren. Wenn Ihr Sensor 32-Bit-Gleitkommazahlen verwendet, konfigurieren Sie den Parser so, dass er zwei benachbarte 16-Bit-Register liest und das korrekte Byte-Swapping (Endianness) anwendet, um den Float-Wert zu rekonstruieren.

Wenden Sie diese Basiskonfiguration für die serielle Verbindung an:

{
  "port": "COM3",
  "baud_rate": 9600,
  "data_bits": 8,
  "stop_bits": 1,
  "parity": "none",
  "protocol": "modbus_rtu_serial",
  "poll_interval_ms": 1000
}
MODBUS-RTU-Plugin-Auswahl zur Abfrage und zum Parsen von Daten.

MODBUS-RTU-Plugin-Auswahl zur Abfrage und zum Parsen von Daten.

MODBUS-RTU-Abfragewarteschlange: benutzerdefinierte Konfiguration zum Lesen verschiedener Register.

MODBUS-RTU-Abfragewarteschlange: benutzerdefinierte Konfiguration zum Lesen verschiedener Register.

Bereit, MODBUS RTU mit MySQL zu verbinden?

2. Datenbankeinrichtung: MySQL

Sie benötigen den MySQL Connector/ODBC, der auf dem Rechner installiert ist, auf dem der Data Logger ausgeführt wird. Erstellen Sie einen System-DSN, der auf Ihre MySQL-Serverinstanz verweist.

Verwenden Sie das folgende SQL-Skript, um Ihre Zieltabelle zu erstellen. Wir empfehlen die Verwendung der InnoDB-Engine, um häufige gleichzeitige Einfügevorgänge ohne Tabellensperren zu verarbeiten.

CREATE TABLE sensor_data (
  id INT AUTO_INCREMENT PRIMARY KEY,
  log_timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
  device_id VARCHAR(50),
  register_value FLOAT
) ENGINE=InnoDB;
MySQL-Plugin zum Exportieren von Daten.

MySQL-Plugin zum Exportieren von Daten.

MySQL-Datenbank-Verbindungseinstellungen.

MySQL-Datenbank-Verbindungseinstellungen.

INSERT-SQL-Anweisungen in einer Warteschlange mit benutzerdefinierten Parametern.

INSERT-SQL-Anweisungen in einer Warteschlange mit benutzerdefinierten Parametern.

3. Protokollspezifische Problembehandlung

  • Timeout- oder CRC-Fehler: Im Gegensatz zu TCP ist serielles MODBUS RTU auf strikte Zeitvorgaben angewiesen. Überprüfen Sie, ob Ihre RS485-A/B-Leitungen nicht vertauscht sind und dass die Baudrate und die Geräte-ID in der Software exakt mit dem Slave-Gerät übereinstimmen.
  • Das Gerät gibt den Fehlercode „Illegal address“ zurück: Versuchen Sie, in Ihrer MODBUS-Anforderung Funktion #3 anstelle von Funktion #4 zu verwenden. Überprüfen Sie andernfalls, ob Sie die korrekte Registeradresse verwenden. Versuchen Sie, einen absoluten Offset anzugeben (keine logische Adresse wie 40001).
  • Ich habe mehrere Werte, die ich in einer Datenzeile exportieren möchte. Der Logger schreibt jedoch einen Wert pro Zeile: Sie müssen die Option „Alle Daten auf einmal exportieren“ in den MODBUS-Plugin-Einstellungen aktivieren.

4. Datenbankspezifische Problembehandlung

  • MySQL-Server ist nicht mehr erreichbar: Wenn Ihr serielles Gerät über Nacht inaktiv ist, trennt MySQL die Verbindung. Aktivieren Sie die Einstellung 'Verbindung aufrechterhalten' im ODBC-Exportmodul des Data Loggers.
  • Wie kann ich eine Datenzeile für mein Gerät einfügen oder aktualisieren?: Sie können jede SQL-Abfrage in unserem Plugin 'SQL Database Pro' verwenden. In MySQL können Sie problemlos das folgende SQL ausführen: 'INSERT INTO ....... ON DUPLICATE KEY .... UPDATE ....'.
  • Ich möchte Daten von jedem meiner Geräte in eine andere Tabelle schreiben. Wie kann ich das tun?: Im Plugin 'SQL Database Pro' können Sie einen Platzhalter in Ihrem SQL verwenden. Zum Beispiel 'INSERT INTO SerialData%DEVICE_ID% (....)'. Vor der Ausführung des SQL ersetzt der Logger %DEVICE_ID% durch den entsprechenden Wert aus den analysierten Daten, und die tatsächliche Zieltabelle variiert (SerialData1, SerialData2 usw.).

Bereit, MODBUS RTU mit MySQL zu verbinden?

Produkt Kaufen Download Support Kontakte Seitenübersicht
Urheberrecht © 1999 - 2026, AGG Software.
Alle Rechte vorbehalten.. Nutzungsbedingungen | Datenschutzerklärung