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
- erstellt das entsprechende
ModbusFactory.Master- Objekt über - 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. MasterDas Objekt wird dasReadHoldingRegistersRequestwird in einOutgoingRequestMessageObjekt umgewandelt und dann anMessageControl。- über die Treiberschicht übertragen,
MessageControlschreibt diesesOutgoingRequestMessagein die entsprechende Kommunikations-Hardware - Peripherie (Serial, Netzwerk, etc.) und wartet auf die Rückgabe von DatenIncomingResponseMessage。 - Wenn nicht gewartet wird, gibt es null zurück und warnt über die Zeitüberschreitung.
- 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.
Antwort veröffentlichen