Sie werden feststellen, dass eine Zahl angezeigt wird, die alles vermitteln soll. Die Herausforderung besteht darin, diese Zahl korrekt zu interpretieren, was ohne weitere Erklärung tatsächlich schwierig ist.
Modbus-Slaves verwenden einen HEX-Wert, um Informationen an einen Modbus-Master zu senden. Nach dem Empfang dieses HEX-Werts wird er in eine Dezimalzahl umgewandelt. Jeder HEX-Wert oder Dezimalwert steht für einen sehr spezifischen USV-Status, der entsprechend interpretiert werden kann, wenn eine Modbus-Liste vorliegt (Deshalb benötigen Sie eine "MODBUS-LISTE", diese Listen finden Sie im Anhang des CS141-Handbuchs).
Beispiel:
UPS_SB_OUTPUT_ACT = 0X0004 -> 4 = Inverter on = Normalzustand, der Ausgang ist eingeschaltet
Die Abfrage erfolgt hierbei nach einem vorkonfigurierten Zyklus durch den Master und wird regelmäßig wiederholt. Solange der Slave mit UPS_SB_OUTPUT_ACT den Wert 4 antwortet, ist alles in Ordnung.
Der Master fragt erneut ab und bekommt folgende Antwort:
UPS_SB_BACKUP_MODE = 0x0008 -> 8 = Die USV bezieht Strom aus den Batterien
Auf Anfrage antwortet der Modbus Slave mit dem Status, gerade auf Batterien zu laufen. Wenn der Grund ein Fehler am Inverter ist, würde er einfach mit angegeben werden:
UPS_SB_INVERTER_FAILURE = 0x0200 -> 512 = Inverter Error
Der Einfachheit halber werden diese beiden HEX-Werte addiert und in Form eines Sammelstatus als Antwort ausgegeben. Als Konsequenz springt der dezimale Systemstatus auf 524: 8 [System auf Batterie] + 512 [Inverter Error] + UPS_SB_OUTPUT_ACT = 0X0004 -> 4. Da jetzt jeder Status immer nur einmal existieren kann, kann man anhand des Ergebnisses die Kombination der Summanden erkennen.
Wie funktioniert es in der Praxis - ein logisches Zahlenbeispiel
Als Beispiel fragt der Modbus-Master die CS141 unter der Adresse 109 nach einem Statuswert und erhält die Zahl 56. Diese Zahl bedeutet zunächst nichts, es sei denn, die richtige Liste zur Interpretation der Zahl wurde für die Adresse 109 gespeichert. In diesem Fall liefert diese Liste alle erforderlichen Informationen über allgemeine Statusinformationen, die mit der Adresse 109 kommen, um die "Zahl 56" zu interpretieren:
| UPS-Status | Hex-Wert | Dez-Wert | Beschreibung |
| UPS_SB_BYPASS_MODE | 0x0001 | 1 | Der Bypass ist derzeit an der USV aktiviert |
| UPS_SB_SHUTDOWN | 0x0002 | 2 | Die gesamte USV wurde wie befohlen heruntergefahren |
| UPS_SB_OUTPUT_ACT | 0x0004 | 4 | Normalzustand, der Ausgang ist eingeschaltet |
| UPS_SB_BACKUP_MODE | 0x0008 | 8 | Die USV bezieht Strom aus den Batterien |
| UPS_SB_BATTERY_LOW | 0x0010 | 16 | Die verbleibende Batterielaufzeit ist niedrig |
| UPS_SB_OVER_TEMP | 0x0020 | 32 | Eine Temperatur liegt außerhalb der Toleranz |
| UPS_SB_TEST_ACT | 0x0040 | 64 | Ein Test ist im Gange |
| UPS_SB_INPUT_HIGH | 0x0080 | 128 | Eine Eingangsbedingung liegt außerhalb der Toleranz |
| UPS_SB_OUTPUT_HIGH | 0x0100 | 256 | Die Ausgangslast überschreitet die Ausgangskapazität der USV |
| UPS_SB_INVERTER_FAILURE | 0x0200 | 512 | Wechselrichterfehler |
| UPS_SB_BATTERY_BAD | 0x0400 | 1024 | Eine oder mehrere Batterien müssen ersetzt werden |
| UPS_SB_ECO_MODE | 0x0800 | 2048 | eco - bypass |
| UPS_SB_INVERTER_WARN | 0x1000 | 4096 | eco - bypass |
| UPS_SB_UPS_FAILED | 0x2000 | 8192 | Ein allgemeiner Fehler in der USV wurde erkannt |
| UPS_SB_COMM_LOST | 0x4000 | 16384 | Ein Problem wurde bei der Kommunikation zur USV festgestellt |
| UPS_SB_DVG_ALARM | 0x8000 | 32768 | SiteManager/SiteMonitor |
Der UPS_SB_TEST_ACT Status verwendet eine Zählung von 64. Dieser Status kann nicht verwendet werden.
Da der zurückgegebene Wert eine gerade Zahl ist, ist der Status "1" ausgeschlossen.
Die Werte 2, 4, 8, 16 und 32 sind in der Modbus-Liste definiert und dürfen jeweils nur einmal verwendet werden.
Da 2 + 4 + 8 + 16 nicht 56 ergibt, muss der Status 32 enthalten sein (56 − 32 = 24).
Darüber hinaus ergibt 2 + 4 + 8 nicht 24, sodass der nächste Wert, den wir suchen, 16 sein muss (24 − 16 = 8).
Schließlich ergibt 2 + 4 nicht 8, sodass die letzte gültige verfügbare Zahl 8 sein muss.
Da alle anderen Kombinationen ungültig sind, muss der aktuelle Systemstatus 32 / 16 / 8 sein - alle drei Werte sind in der Modbus-Liste wie oben gezeigt zu finden.
Anderes Gerät, dasselbe Verfahren: die GENEREX BACS Modbus-Liste
Wie in der Abbildung rechts zu sehen, ist das Grundprinzip ähnlich:
Letztendlich bestimmt die konfigurierte Modbus-Liste, welche Adressen verfügbar sind und wie die damit verbundenen Werte verwendet werden.
Übrigens ist es in einigen Fällen notwendig, mathematische Formeln zu verwenden, um einen verwendbaren Wert aus einer Modbus-Zahl zu berechnen. Falls erforderlich, wird dies in der von dem Anbieter bereitgestellten Modbus-Liste erklärt.
Aktuelle und Spannungswerte
Strom und Spannung sind Messwerte, aber die Interpretation der Zahlen folgt denselben Prinzipien. Sobald sowohl das Register als auch die Bedeutung des Wertes bekannt sind, kann die zurückgegebene Zahl leicht ausgewertet werden, um den angeforderten Systemstatus zu bestimmen.
Stellen Sie sicher, dass Sie die Anweisungen zur Interpretation einer Zahl befolgen, und beziehen Sie sich auf die Dokumentation, um Rohzahlen in Messdaten umzuwandeln. Im Zweifelsfall wenden Sie sich bitte an den technischen Support des jeweiligen Geräts.
v.: 2025-07-23 FW 2.16-2.26
Kommentare
0 Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.