Modbus4j - Java-Version Modbus Protokoll Implementierung

kostenlosKostenloses technisches Material

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

Modbus4j - Java-Version Modbus Protokoll Implementierung

GitHub:https://github.com/infiniteautomation/modbus4j

Die hohe Leistung und Benutzerfreundlichkeit des Modbus-Protokolls, das von Infinite Automation Systems und Serotonin Software in Java geschrieben wurde. Unterstützt ASCII, RTU, TCP und UDP-Transfers als Sekundär oder Master, automatische Partitionsanfrage und Antwort-Datentyp - Auflösung.

Jetzt können Sie die neueste Version des öffentlichen Maven-Repositories verwenden, um sie in pom.xml hinzuzufügen.

<repositories>
    <repository>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <id>ias-snapshots</id>
        <name>Infinite Automation Snapshot Repository</name>
        <url>https://maven.mangoautomation.net/repository/ias-snapshot/</url>
    </repository>
    <repository>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>ias-releases</id>
        <name>Infinite Automation Release Repository</name>
        <url>https://maven.mangoautomation.net/repository/ias-release/</url>
    </repository>
</repositories>

Die Abhängigkeitsinformationen sind:

<dependency>
    <groupId>com.infiniteautomation</groupId>
    <artifactId>modbus4j</artifactId>
    <version>3.0.3</version>
</dependency>

Kernkategorien

  • HostMaster und seine Unterklassen: Der Eingang des Hostes, der Anfang und Ende des Datenstroms.
  • Die Datenportklasse StreamTransport ist für das Schreiben und Lesen von Daten verantwortlich.
  • Modbus-Nachrichtenklasse ModbusMessage und ihre Unterklasse: Unterstützt Modbus-definierte Methoden (FunctionCode)
  • Datenübertragungsklasse MessageControl: Unterstützt Timeout, Retries, Standard 200ms, 1 Mal.
    • Wartezimmer: für die Synchronisierung der Logik.
    • Ausgabe der Request-Message - Klasse: OutgoingRequestMessage und ihre Unterklassen.
    • Empfangener Response-Message - Klasse: IncomingResponseMessage und ihre Unterklasse.
    • Die Parser-Klasse MessageParser: Die Parser-Klasse ist für die Analyse der empfangenen Nachrichten verantwortlich.
  • Protokoll Datentyp Definition: DataType
  • Protokoll Funktionscode Definition: FunctionCode
  • Protokoll-Registerbereich: RegisterRange

Der Datenfluss

  1. erstellt das entsprechendeModbusFactory.Master- Objekt über
  2. Um die Anweisungen zu packen, die gesendet werden müssen, z. B.ReadHoldingRegistersRequestDies ist ein Lesen-Register - Befehl, der die Registeradresse und Länge angibt.
  3. MasterDas Objekt wird dasReadHoldingRegistersRequestwird in einOutgoingRequestMessageObjekt umgewandelt und dann anMessageControl。
  4. über die Treiberschicht übertragen,MessageControlschreibt diesesOutgoingRequestMessagein die entsprechende Kommunikations-Hardware - Peripherie (Serial, Netzwerk, etc.) und wartet auf die Rückgabe von DatenIncomingResponseMessage。
  5. Wenn nicht gewartet wird, gibt es null zurück und warnt über die Zeitüberschreitung.
  6. Wenn es um eine wirksame Rückkehr geht,MessageControlverwendet.MessageParser将IncomingResponseMessageUmwandlung in EntsprechungModbusResponsezurückgegeben an die oberste Ebene.

Einheitstest

In modbus4j/src_test/ definiert eine Reihe von Einheitstestmethoden, die verfolgt werden, um zu verstehen, wie das Modbus-Protokoll in der Praxis funktioniert.

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.