Protokollieren von Wasserzählerdaten in MS SQL-Datenbank in Echtzeit
Eine vollständige Anleitung zum Abfragen von Wasserzählern mit RS232-Schnittstelle und zum Exportieren der erfassten Daten direkt in eine MS SQL-Datenbank mit eigener Datenbankstruktur.
1. Protokollkonfiguration: Durchfluss- und Wasserzähler
Kommunikationstyp: Aktive Abfrage (M-Bus / MODBUS)
Industriewasserzähler kommunizieren in der Regel über M-Bus (Meter-Bus) über RS232/RS485 mit einem Pegelumsetzer. Verwenden Sie das Plugin „M-Bus Data Parser“. Der Logger sendet einen REQ_UD2-Rahmen (Anforderung für Klasse-2-Daten) an die spezifische Zähleradresse, und der Parser dekodiert das antwortende Telegramm in die Variablen Volumen, Durchflussrate und Temperatur.
Wenden Sie diese Basiskonfiguration für die serielle Verbindung an:
{
"port": "COM2",
"baud_rate": 2400,
"data_bits": 8,
"stop_bits": 1,
"parity": "even",
"protocol": "mbus_en13757",
"poll_interval_ms": 60000
}
M-Bus-Plugin-Auswahl zum Auslesen von Wasserzählerdaten.

M-Bus-Plugin-Konfiguration.
Bereit, Durchfluss- und Wasserzähler mit Microsoft SQL Server zu verbinden?
2. Datenbankeinrichtung: Microsoft SQL Server
Verwenden Sie den integrierten SQL Server Native Client oder OLE DB-Provider im ODBC-Exportmodul des Data Loggers. Die Windows-Authentifizierung wird nahtlos unterstützt, wenn das Logger-Dienstkonto über Datenbankzugriff verfügt.
Verwenden Sie das folgende SQL-Skript, um Ihre Zieltabelle zu erstellen. Verwenden Sie DATETIME2 anstelle von DATETIME für eine höhere Präzision bei Zeitstempeln, was für die hochfrequente industrielle serielle Protokollierung entscheidend ist.
CREATE TABLE SerialData ( RecordID INT IDENTITY(1,1) PRIMARY KEY, LogTime DATETIME2 DEFAULT SYSUTCDATETIME(), PortID NVARCHAR(20), SensorReading FLOAT );

Microsoft SQL Server-Konnektor in unserem Logger.

SQLServer-Datenbank-Verbindungseinstellungen. Zum Beispiel SQL Express.

SQL-Warteschlange.
3. Protokollspezifische Problembehandlung
- Empfang von unbrauchbaren Hex-Daten anstelle von M-Bus-Telegrammen: M-Bus erfordert zwingend gerade Parität (Even). Überprüfen Sie Ihre COM-Port-Einstellungen im Datenlogger und stellen Sie sicher, dass 8 Datenbits, 1 Stoppbit und gerade Parität eingestellt sind.
- Der Logger zeigt nicht lesbare Daten (seltsame Zeichen) anstelle der erwarteten HEX-Codes an: Sie müssen den Modus „Datenansicht“ in den Logger-Einstellungen ändern. Wählen Sie „Anzeigen als #XX“ für alle Byte-Bereiche.
- Welche Werte kann der Logger auslesen: M-Bus ermöglicht es dem Logger, alle verfügbaren Werte auf einmal auszulesen. Der Logger exportiert sie als separate Werte (Variablen).
4. Datenbankspezifische Problembehandlung
- Anmeldung für Benutzer fehlgeschlagen / Zugriff verweigert: Wenn RS232 Data Logger als Windows-Hintergrunddienst ausgeführt wird, stellen Sie sicher, dass der Dienst unter einem Domänenkonto mit db_datawriter-Rollen ausgeführt wird, und nicht unter dem standardmäßigen Konto 'Lokales System'. Oder erstellen Sie einen separaten Benutzer mit der Authentifizierungsmethode 'SQL Server'.
- Was passiert, wenn meine Datenbank offline ist? Werde ich meine Daten verlieren?: Verwenden Sie das SQL Database Pro-Plugin. Es kann Daten in eine temporäre Datei schreiben, während Ihre Datenbank offline ist, und diese später wiederherstellen.
- Der Code funktioniert nur, wenn Sie Zahlen senden. Wenn ich versuche, einen Buchstaben zu senden, funktioniert es nicht.: 1. Sie sollten die Parser-Variable als Zeichenfolge deklarieren. 2. Ihre Tabelle sollte die Spalte mit dem Typ 'VARCHAR' oder 'NVARCHAR' enthalten. Die Größe dieser Spalte sollte für Ihre Daten ausreichend sein. 3. Sie sollten den Datentyp 'string' für die entsprechende Spalte im Datenexport-Plugin auf der Seite 'Binding' auswählen.