Modbus-Ausnahme mit entsprechendem Code

kostenlosKostenloses technisches Material

Dieser Inhalt ist direkt lesbar und eignet sich für das Grundlagenlernen und die Suche.

Modbus-Ausnahme mit entsprechendem Code

Das Modbus-Kommunikationsprotokoll ist ein in der industriellen Automatisierung häufig verwendetes Protokoll, das den Datenaustausch zwischen einem Master (normalerweise ein Client) und einem Slave (normalerweise ein Server) ermöglicht. In der Modbus-Kommunikation muss der Server (die Slave-Geräte) eine angemessene Antwort generieren, um die Anfrage zu verarbeiten und bei Bedarf eine Ausnahmeantwort zu senden. In diesem Artikel werden die Generierung und Ausnahmebehandlung von Modbus-Antworten eingehend behandelt.

Modbus-Antworttyp

In der Modbus-Kommunikation können je nach Verarbeitungsergebnis der Anfrage zwei Arten von Antworten generiert werden:

  1. Modbus-Antwort: Dies ist eine normale Antwort, die zeigt, dass der Server die Anfrage erfolgreich verarbeitet hat. In diesem Fall ist der Funktionscode der Antwort identisch mit dem Funktionscode der Anforderung.
  2. Modbus-AusnahmeantwortDiese Antwort wird verwendet, um anzuzeigen, dass ein Fehler oder eine Ausnahme aufgetreten ist. Der Funktionscode für die Ausnahmeantwort entspricht dem angeforderten Funktionscode plus 0x80, damit der Client die Ausnahmeantwort erkennen kann.

Zweck der Modbus-Anomalie - Antwort

Der Hauptzweck der Modbus-Ausnahmeantwort ist es, dem Client Informationen über Fehler bereitzustellen, die während der Anforderungsverarbeitung erkannt wurden. Es hilft dem Kunden, die spezifischen Ursachen von Kommunikationsproblemen zu verstehen und so geeignete Maßnahmen zur Bewältigung dieser Probleme zu ergreifen.

Ausnahmecode für Modbus-Ausnahmeantwort

Die Ausnahmeantwort enthält einen Ausnahmecode, der eindeutig die Ursache des Fehlers angibt. Hier sind die häufigen Modbus-Ausnahmecodes und deren Bedeutung:

  1. Ausnahmecode01 (0x01) - Illegaler Funktionscode: Der Server kann den Funktionscode in der Anforderung nicht verarbeiten oder nicht verstehen. Dies bedeutet normalerweise, dass dieser Funktionscode vom Gerät nicht unterstützt wird.
  2. Ausnahmecode 02 (0x02) - Ungültige Datenadresse: Die in der Anforderung enthaltenen Datenadresse liegt nicht im autorisierten Adressbereich des Slaves und die angeforderte Adresse ist daher ungültig.
  3. Ausnahmecode 03 (0x03) - Illegaler Datenwert: Der in der Anforderung enthaltenen Datenwert liegt außerhalb des zulässigen Wertes für das Slave-Gerät und ist daher ungültig.
  4. Ausnahmecode 04 (0x04) - Serverfehler: Zeigt an, dass der Server bei der Ausführung der angeforderten Aktion einen nicht reparierbaren Fehler auftrat, und der Betrieb kann nicht fortgesetzt werden.
  5. Ausnahme-Code 05 (0x05) - Bestätigt: Der Server hat die Anforderung empfangen, benötigt aber mehr Zeit, um den Vorgang abzuschließen. Der Client sollte warten, bis der Server die Verarbeitung abgeschlossen hat.
  6. Ausnahmecode 06 (0x06) - Server beschäftigt: bedeutet, dass der Server mit anderen Befehlen beschäftigt ist und der Client die Anfrage später erneut senden sollte.
  7. Ausnahmecode 0A (0x0A) - Gateway-Fehler: Zeigt an, dass der Pfad für das Gateway oder den Router ungültig ist, dass das Gateway möglicherweise überlastet oder nicht korrekt konfiguriert ist.
  8. Ausnahmecode 0B (0x0B) - Das Gateway-Zielgerät reagiert nicht: Das Ziel-Slave wurde im Netzwerk nicht gefunden.

Modbus-Antwort generieren

Um eine Modbus-Antwort zu generieren, muss der Server zuerst die Anforderung analysieren und anschließend einen Antwortrahmen basierend auf dem Inhalt der Anforderung und dem Verarbeitungsergebnis erstellen. Der Antwortrahmen muss mit einem MBAP-Header als Präfix versehen sein, der einen MBAP-Header generiert, indem die Daten im Transaktionskörper verwendet werden. Die Schritte umfassen:

  • Kopieren der Einheitsbezeichner in der Anforderung und speichern sie im Körper der Transaktion.
  • Berechnet die Größe der Modbus-PDU - und der Zellkennungsfelder und legt diesen Wert im Feld "Längen" fest.
  • Legen Sie das Protokoll-Identifikationsfeld auf 0x0000 fest, was das Modbus-Protokoll darstellt.
  • Legen Sie das Transaktions-Identifikationsfeld auf einen Wert fest, der mit der ursprünglichen Anforderung verknüpft ist, und speichern Sie ihn.

Die generierten Modbus-Antwort - Frames müssen über eine TCP-Verbindung an den richtigen Modbus-Client gesendet werden, um den Kommunikationsvorgang abzuschließen.

Zusammenfassung:

In der Modbus-Kommunikation ist es wichtig, eine angemessene Antwort zu generieren, um den Erfolg der Kommunikation zu gewährleisten. Sowohl die normale als auch die Ausnahmeantwort haben ihre spezifischen Funktions - und Ausnahmecodes, damit der Client das Ergebnis der Anforderungsverarbeitung und die auftretenden Fehler kennen kann. Der Server muss Antworten gemäß den Protokollen generieren und bei Bedarf Ausnahmeantworten senden, um die Zuverlässigkeit und Stabilität der Kommunikation zu gewährleisten.

Relevante Etiketten
Sollte man diese Informationen für ein echtes Projekt verwenden?

Gehen Sie zum Tool Center, um Nachrichten zu analysieren, CRC-Prüfungen und Geräte-Debugging zu erledigen, oder senden Sie Anforderungen für Auswahl - und Zugangsvorschläge.

Ingenieur Mitglied

Verwandeln Sie diesen Artikel in ein umsetzbares Debuggermaterial

Erweiterte Nachrichtenanalyse, Paket-Downloads, Codebeispiele, Engineering-Szenarien und Priority-Technischer Support sind für die Real-Projekt - Bereitstellung möglich.

Unbegrenzte Werkzeuge
Datenpaket und Codepaket
Vollständige Engineering Case-Basis
Vorrangiger Zugang zum technischen Support

Antwort veröffentlichen

Ihre E-Mail - Adresse wird nicht öffentlich gemacht. Erforderliche Elemente wurden verwendet * markiert.