Modbus Poll Benutzerhandbuch (chinesisch)

kostenlosKostenloses technisches Material

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

Modbus Poll Benutzerhandbuch (chinesisch)

Modbus Produkte zu empfehlen:peidianxiang.taobao.com

Modbus Poll-Bericht

Modbus pollEs ist ein sehr beliebter Modbus-Masterstation - Gerätemulator, unterstützt Modbus RTU, ASCII, TCP / IP und andere Protokollmodus, kann Modbus-Kommunikationsgeräte Personal testen und simulieren, um das Kommunikationsprotokoll zu verwenden, so dass das Gerät besser zu überwachen, testen und debuggen, sondern auch einfacher zu beobachten Modbus-Kommunikationsprozess der verschiedenen Nachrichten-Daten, nicht nur eine Menge Zeit zu sparen, sondern auch erheblich verbessern die Produktivität.

Es unterstützt eine Multi-Dokument - Schnittstelle und kann mehrere Slave-Geräte / Datendomains gleichzeitig überwachen. Jedes Fenster wird einfach von der Gerät-ID, Funktion, Adresse, Größe und Abfrageintervall eingestellt. Sie können die Register und die Spulen aus einem beliebigen Fenster lesen und schreiben. Wenn Sie ein separates Register ändern möchten, klicken Sie einfach auf diesen Wert. Oder Sie können mehrere Register / Spule-Werte ändern. Verschiedene Formaten für Daten bereitstellen, wie Gleitkomma, Doppelpräzision und Long Integer (die durch Bytes-Sequenz ausgetauscht werden können).

Modbus Poll Betriebssystemanforderungen

Hardwareanforderungen

Prozessor: Empfohlen 1 GHz oder schneller
Arbeitsspeicher: 1 GB RAM
Festplatte: 5 MB freier Festplatteplatz
Auflösung: 1024 x 768 und höher

System: Unterstützt alle Windows-Versionen von Windows 7 bis Windows 11.
Modbus Poll 7 wird unter Windows XP unterstützt.

Kündigung der Benutzerlizenzvereinbarung

Bevor Sie Modbus Poll nutzen, sollten Sie die folgenden Allgemeinen Geschäftsbedingungen sorgfältig lesen. Sofern Sie nicht eine andere Lizenzvereinbarung mit Witte Software unterzeichnet haben, akzeptieren Sie durch Ihre Nutzung der Software diese Lizenzvereinbarung und die Garantie. Wenn Sie diese Bedingungen nicht akzeptieren, müssen Sie die Nutzung der Software unverzüglich einstellen.

Urheberrecht.
Modbus Poll ("Software") Copyright 2002 - 2022 bei Witte Software, alle Rechte vorbehalten.

Bewertung und Registrierung.
Das ist keine freie Software. Hiermit ermächtigen Sie die kostenlose Nutzung der Software für 30 Tage.

Wenn Sie die Software nach dem 30 - tägigen Testzeitraum verwenden, müssen Sie eine Registrierungsgebühr zahlen.

Die Nutzung der Software, die nicht nach einem 30 - tägigen Testzeitraum registriert wird, verstößt gegen die US-amerikanischen und internationalen Urheberrechtsgesetze.

Eine registrierte Kopie der Software kann von Einzelpersonen verwendet werden, die die Software auf einem oder mehreren Computern verwenden, oder auf einem einzelnen Computer installiert werden, der von mehreren Personen verwendet wird, aber nicht gleichzeitig verwendet werden kann.

Informationen zu Bestellungen und Preisen finden Sie bitte unterhttps://www.modbustools.com/order.html

Die Modbus Poll-Lizenz ist dauerhaft. Sobald Sie die Lizenz für eine bestimmte Version erworben haben und solange Sie die Lizenzvereinbarung einhalten, können Sie diese Version dauerhaft ohne zusätzliche Kosten verwenden.

Verteilung.
Wenn Sie Ihren Lizenzschlüssel nicht enthalten, erhalten Sie hiermit die Lizenz, die Software zu kopieren; eine exakte Kopie des Originals an jeden zur Verfügung zu stellen; und die Software in unveränderter Form elektronisch zu verteilen. Es ist ausdrücklich untersagt, dass Sie für eine solche Kopie Gebühren erheben.

Begrenzte Garantie.
Die Software wird so geliefert, wie sie ist, und WITTE Software liefert keine ausdrücklichen oder stillschweigenden Garantien in Bezug auf die Software, einschließlich, aber nicht beschränkt auf alle stillschweigenden Garantien für die Vertriebsfähigkeit und die Eignung für einen bestimmten Zweck.

Schadensersatzbeschränkungen.
WITTE Software oder jede Person, die an der Erstellung, Produktion oder Lieferung der Software beteiligt ist, haftet nicht für mittelbare, Folgeschäden oder Folgeschäden, die durch die Nutzung oder Unfähigkeit der Nutzung solcher Software entstehen, selbst wenn WITTE Software über die Möglichkeit solcher Schäden oder Ansprüche informiert wurde. In keinem Fall, unabhängig von der Form des Anspruchs, haftet WITTE SOFTWARE für Schäden nicht mehr als den Preis, der für die Lizenz zur Nutzung der Software bezahlt wurde. Die Nutzer der Software übernehmen alle Risiken für die Qualität und Leistung der Software.

Modbus Poll Funktion

Verbindung

Modbus Lese - / Schreibdaten vom Gerät abfragen, wobei:

  • Modbus RTU oder ASCII im RS232 - oder RS485 - Netzwerk verwendet wird. (USB/ RS232 / 485 - Konverter)
  • Modbus TCP/IP
  • Modbus auf TCP / IP basiert. (Modbus RTU / ASCII in einem TCP-Paket eingeschlossen)
  • Modbus UDP/IP
  • Modbus auf UDP / IP basiert. (Modbus RTU / ASCII in einem UDP-Paket eingeschlossen)

Unterstützte Modbus-Funktionen

  • 01: Lesespule
  • 02: Leses diskreter Eingang
  • 03: Lesen-Halt - Register
  • 04: Eingangsregister lesen
  • 05: Schreiben einzelner Spulen
  • 06: Schreiben einzelner Registers
  • 15: Schreiben mehrerer Spulen
  • 16: Schreiben mehrerer Registers
  • 17: Berichtsserver-ID
  • 22: Masken Schreibregister
  • 23: Lesen / Schreiben Registers
  • 43/14: Lesen der Geräte-Identifikation

Datenaufzeichnungen

  • Datenaufzeichnungen in einer Textdatei
  • Datenaufzeichnungen direkt in Excel

Anzeigeformat

  • Jede Zelle kann individuell formatiert werden.
  • 16 - Bit-Register mit Symbol
  • 16 - Bit-Register ohne Zeichen
  • Hexadezimal
  • Binär
  • 32 - Bit-signierte Ganzzahl in beliebiger Wort / Byte-Reihenfolge
  • 32 - Bit-unsignierte Ganzzahl in beliebiger Wort / Byte-Reihenfolge
  • 64 - Bit-signierte Ganzzahl in beliebiger Wort / Byte-Reihenfolge
  • 64 - Bit-unsignierte Ganzzahl in beliebiger Wort / Byte-Reihenfolge
  • mit beliebiger Wort / Byte-Reihenfolge 32 - Bit-Fließkommazahl in Byte-Reihenfolge
  • 64 - Bit-Doppelkommazahl in beliebiger Wort / Byte-Reihenfolge

Zusätzliche Funktionen

  • für die OLE / Automatisierung von Schnittstellen zu Excel VBA, Python usw.
  • Datenverkehr überwachen
  • Drucken und Druckvorschau
  • Schriftartenauswahl
  • Konditionierte Farbe
  • Skalierung
  • Echtzeitdiagramme

Zusammenfassung

Modbus Poll unterstützt eine Multi-Window - Schnittstelle, mit der mehrere Modbus-Slaven - Stationen und Datenzonen gleichzeitig überwacht werden. Für jedes Fenster müssen Sie einfach die ID, den Funktionscode, die Adresse, die Länge und die Abfragezeit des Modbus-Sklaven angeben, um Register und Spulen von jedem Fenster aus zu lesen und zu schreiben.

Modbus Poll Benutzerhandbuch (chinesisch)Abbildung

Benutzeranweisungen

按 F1Erhalten Sie Hilfe-Dokumentationen für das aktuell ausgewählte Projekt.

SHIFT + F1Aufrufen eines speziellen "Hilfe-Modus", in dem der Cursor in einen Hilfe-Cursor verwandelt wird (Pfeil + Fragezeichen). Anschließend können Benutzer sichtbare Objekte in der Benutzeroberfläche auswählen, z. B. Menüelemente, Schaltflächen in der Symbolleiste oder Fenster. Dadurch wird die Hilfe zu einem Thema geöffnet, das das ausgewählte Element beschreibt.

Benannte Zelle

Sie können hier beliebigen Text eingeben, um die Wertzelle anzugeben. Sie können auch Text aus einer Excel-Zelle kopieren / einfügen.

Wert Zelle

zeigt den Datenwert des Modbus-Registers an. Wenn Sie auf eine Wertzelle doppelklicken, können Sie in einem Dialogfeld einen neuen Wert in das Slave-Gerät schreiben. Wenn Sie eine Zahl in eine Wertzelle eingeben, wird ein Dialogfeld ebenfalls angezeigt. Sie können die Modbus-Funktion für das Schreiben von Werten auswählen.

Das Kontrollkästchen "Close dialog on Response ok" wird verwendet, um das Dialogfeld automatisch zu schließen, wenn der Wert erfolgreich gesendet wurde. Dies ist bequem, wenn Sie eine große Anzahl von Werten ändern möchten. Auf diese Weise können Sie schnell eine neue Zelle auswählen und dann erneut einen neuen Wert eingeben.

Modbus Poll Benutzerhandbuch (chinesisch)Abbildung1

Schrift ändern

Um die Schrift zu ändern, haben Sie 2 Optionen

  • Wählen Sie die Zelle aus, die Sie ändern möchten, und klicken Sie dann auf die rechte Maustaste.
  • Wählen Sie die Zelle aus, die Sie ändern möchten, und wählen Sie dann Menü → Anzeige → Schrift.
Modbus Poll Benutzerhandbuch (chinesisch)Abbildung2

Bedingte Farben

Bedingte Farben helfen Ihnen, Werte innerhalb eines bestimmten Bereichs visuell anzuzeigen. 3 Farben Auswahl

  • Standardfarbe: Diese Farbe wird verwendet, wenn keine bedingte Farbe als wahr bewertet wird.
  • Regel 1: Wenn der Ausdruck wahr ist, wird diese Farbauswahl verwendet.
  • Regel 2: Wenn der Ausdruck wahr ist, wird diese Farbauswahl verwendet. Regel 2 hat Vorrang vor Regel 1.

7 Vergleichsoperatoren

  • nicht verwendet
  • gleich
  • Mehr als... noch besser.
  • kleiner als
  • größer oder gleich
  • kleiner oder gleich
  • 和

Der Operator "AND" kann nicht verwendet werden, wenn der Datentyp Fließkomma oder 32 - Bit lang ist. Wenn "und" ausgewählt wird, wird der Bedingungswert als Hexadezimalzahl eingegeben. Wenn ein beliebiges Bit in der Zelle und in den bedingten Werten 1 ist, ist das Ergebnis wahr.

Farbbeispiel

Grün

Skaliert, wenn die Zellen zwischen 398 und 402 liegen

Skalieren hilft Ihnen, den ursprünglichen Wert auf einen von Menschen lesbaren Wert zu skalieren. Die Skalierung gilt nur für 16 / 32 - Bit-Ganzzahlen mit und ohne Zeichen.

(X1, Y1) und (X2, Y2)

durch (X1, Y1) und (X2, Y2) Zwei-Punkt - Linie

Kleine l o p e = m = ja 2 - ja 1X2 - X1 Kleine l ○ pe = m = ja 2 - ja 1X2 - X1 - Linie Gleichung

ist = m⋅ (X-X1) + Y1 ist = m⋅ (X-X1) + ist die Zahl der Ziffern nach dem Dezimalpunkt von 1 exakt

. Enable

Es muss aktiviert sein, um die Werte von Modbus-Servern / Slaves zu skalieren. Wenn Sie kein 16 / 32 - Bit-Gewinnzahlanzeigeformat wählen, wird das Skalieren automatisch deaktiviert.

Echtzeit-Charts

Dieses Diagramm kann in Echtzeit in 12 Serien mit bis zu 100.000 Punkten pro Serie gezeichnet werden.

Neues Fenster öffnen

Um ein weiteres Fenster zu öffnen, haben Sie 3 Optionen:

Verbindungsdialog

Um das Verbindungsdialog zu öffnen, haben Sie 2 Optionen:

  • Drücken Sie F3
  • Wählen Sie Verbindungen aus dem Verbindungsmenü

Kontakt

Es gibt 5 verschiedene Verbindungsarten:

  1. Seriell:
    Modbus über serielle Leitungen. RS232 oder RS485 Es kann ein USB-Serial - Wandler verwendet werden.
  2. Modbus TCP / IP:
    Wählen Sie TCP / IP, wenn Sie mit einem MODBUS-TCP / IP - Netzwerk kommunizieren möchten. In diesem Fall ist die Slave-Station - ID identisch mit der in MODBUS TCP / IP verwendeten Einheit-ID.
    Die Portnummer lautet standardmäßig 502.
    Wenn die Verbindung fehlschlägt, versuchen Sie, ob Sie das Gerät in der Eingabeaufforderung ping können. Wenn der Befehl ping fehlschlägt, schlägt auch die Modbus Poll fehl.
  3. Modbus UDP / IP:
    Wenn Sie mit einem MODBUS-UDP / IP - Netzwerk kommunizieren möchten, wählen Sie UDP / IP aus. Dies ist dasselbe wie Modbus TCP / IP, aber das UDP-Protokoll ohne Verbindung verwendet wird.
  4. Modbus RTU / ASCII über TCP / IP:
    Dies ist eine RTU - oder ASCII-Nachricht, die über ein TCP / IP-Netzwerk anstatt über eine serielle Leitung gesendet wird.
  5. Modbus RTU / ASCII über UDP / IP:
    Dies ist eine RTU - oder ASCII-Nachricht, die über ein UDP / IP-Netzwerk und nicht über eine serielle Leitung gesendet wird.
Verbindungstypen 3 - 5 sind nicht die vonwww.modbus.organgegebenen Standardmodbus, wurden aber aus einfachen Gründen hinzugefügt.

Abhängig von Ihrer Wahl werden einige andere Einstellungen grau.

Serial-Einstellungen

Verwenden Sie diese Parameter, um die seriellen Port-Einstellungen festzulegen. Sie sind nur verfügbar, wenn der Verbindungstyp "Serial Port" ist. Modus

Verwenden Sie diese Option, um denRTU或ASCII- Modus auszuwählen. Die RTU ist aus. Response Timeout

Gibt an, wie lange die Modbus Poll auf eine Antwort des Geräts warten sollte, bevor sie aufgegeben wird. Der Standardwert ist 1000 Millisekunden. Minimale Verzögerung zwischen den Polls

Diese Einstellung gewährleistet eine minimale Verzögerung vor der Übertragung der nächsten Anforderung unabhängig von der Scanrate. Die Auflösung dieser Einstellung beträgt ca. 15ms. Auf einigen Computern ist eine bessere Auflösung verfügbar, aber nicht auf allen.

Wenn Sie diesen Wert auf weniger als 20 Millisekunden festlegen, ist ein Intervall von 3,5 Zeichen zwischen der Antwort und einer neuen Anfrage nicht garantiert. Dies liegt daran, dass der Windows-Terminator alle 10 bis 20 Millisekunden die Aufgaben wechselt. Wenn Sie mehrere Slaves in einem seriellen RS485 - Netzwerk abfragen, sollten Sie diesen Wert nicht auf weniger als 20 Millisekunden festlegen. Dies ist, um ein Intervall von 3,5 Zeichen zu gewährleisten. In einem TCP / IP-Netzwerk ist weniger als 20 Millisekunden in Ordnung. Eine serielle Verbindung mit nur einem Slave-Gerät, die weniger als 20 ms dauert, ist möglich.

Remote-Server

Die Remote-Server - Einstellungen sind nur verfügbar, wenn eine Ethernet-Verbindung verwendet wird. IP-Adresse

IP-Adresse des Servers. Standardmäßig ist der localhost 127.0.0.1 - Port

Serverportnummer. Die Standard-Verbindungszeitüberschreitung 502

wird für die maximale Zeit verwendet, um eine Verbindung herzustellen. Standard 1000

Erweiterte Einstellungen

RTS-Schalter

RTS Toggle gibt an, dass die RTS-Leitung hoch ist, wenn die Bytes für die Übertragung verfügbar sind. Nachdem alle Puffer-Bytes gesendet sind, wird die RTS-Leitung niedrig.
Wenn Sie einen 232 / 485 - Wandler ohne automatischen Richtungsschalter haben, können Sie ihn verwenden, um die Richtung zu wechseln.

Wenn möglich, sollten Sie RS232 / RS485 - Wandler mit RTS-Steuerung vermeiden. Bei Nicht-Echtzeit - Betriebssystemen wie Windows und Linux ist es schwierig, den genauen Zeitpunkt zu bestimmen, an dem der Sender ausgeschaltet wird. Wenn Sie zu früh schließen, können sich die Zeichen noch im Sendenregister von FIFO oder UART befinden, und diese Zeichen gehen verloren. Die Station kann diese Nachricht nicht erkennen. Auf der anderen Seite, wenn es zu spät geschlossen wird, wird die Nachricht der Slave-Station zerstört und die Master-Station wird die Nachricht nicht erkennen können.

DSR

DSR Gibt an, ob ein DSR-Signal (Data Set Ready) für die Ausgangsstromsteuerung überwacht wird. Wenn dieses Mitglied TRUE ist und die DSR ausgeschaltet ist, wird die Ausgabe angehalten, bis die DSR erneut gesendet wird.

CTS Gibt an, ob das CTS-Signal (Clear Send) für die Ausgangsstromsteuerung überwacht wird. Wenn Sie dieses Kontrollkästchen aktivieren und das CTS deaktivieren, wird die Ausgabe angehalten, bis das CTS erneut gesendet wird. DTR

DTR Gibt an, ob DTR aktiviert oder deaktiviert wird, wenn der Port geöffnet wird. Entfernen von Echo

Wenn Ihr Gerät oder der RS232 / RS485 - Wandler das gerade gesendete Zeichen wiederholt.

Lesen / Schreiben Definition

Verwenden Sie diesen Befehl, um die Daten zu definieren, die von einem aktiven Fenster überwacht werden sollen.

Um das Lesen / Schreiben-Definitionsdialog zu öffnen, haben Sie 3 Optionen:

Stations-ID

Bereich von 1 bis 255. (Die Modbus-Protokoll - Spezifikation sagt 247). Der Wert 0 wird auch für die direkte Kommunikation mit MODBUS / TCP oder MODBUS / UDP-Geräten akzeptiert.

Funktionscode

Sie können einen von acht Funktionscodes wählen.

5.2.1。Les en Sie Funk tionen

Die von der Lesen-Funktion zurückgegebenen Daten werden im Rasterfenster angezeigt.

  • 01: Lese-Spule (0x)
  • 02: Leses diskreter Eingang (1x)
  • 03: Lesehaltregister (4x)
  • 04: Lesehaltregister (3x)

5.2.2. Schreiben von Funktionen

Schreiben von Funktionen Schreiben von Daten, die in einem Rasterfenster angezeigt werden.

  • 05: Schreiben einzelner Spule (Schreiben Spule Zustand)
  • 06: Schreiben einzelner Register (Schreiben Halte Register)
  • 15: Schreiben an mehreren Spulen
  • 16: Schreiben an mehrere Register

Adresse

Die Adresse im Modbus-Protokoll ist verwirrend! Einige Protokolle spezifizieren die Verwendung von Protokoll - / Nachrichtenadressen, während andere Geräteadressieren verwenden.

5.3.1。Vereinbar ung / Nach richt Ad resse

Einige Protokollspezifikationen verwenden eine Protokoll - / Nachrichtenadresse, die von 0 bis 65535 zählt, sowie einen Funktionscode. Dies wird auch in der neuen Modbus-Spezifikation verwendet. Dies ist die Adresse in einer Nachricht, die über das Netzwerk gesendet wird.

Modbus Polls verwenden Protokoll - / Nachrichtenadressen, die von 0 bis 65535 gezählt werden.

5.3.2. Geräte Adresse

Einige Protokolle spezifizieren die Verwendung von Geräteadressen / Registers. Die Zählung beginnt mit 1. Die erste Zahl beschreibt die zu verwendenden Funktionen. Dies bedeutet, dass die Gerätadresse 40101 durch die Adresse 100 identifiziert wird.„4" steht für das Haltregister, 4x-Register zählen von 1 an. Noch verwirrender ist: 4x steht für den Funktionscode 03, 3x steht für den Funktionscode 04!

5.3.3. 5 und 6 Adressen

4x Adressformat von 40001 bis 49999. Die nächste Adresseist nicht50000. Früher waren 9999 Adressen ausreichend. In manchen Fällen reicht 9999 nicht aus. Fügen Sie dann eine Null hinzu. 40101 wird 400101 und so weiter. Dies wird als 6 - Bit-Adressierung oder erweiterte Adressierung bezeichnet.

Das ist nicht das Problem der Modbus Poll. 410001 wird in 10000 geändert. Die "4" wird verworfen und der Rest von 10001 minus 1, weil wir von 0 statt von 1 gezählt werden.

5.3.4. Beispiel für Adresse

Diese Beispiele zeigen, wie Modbus-Abfragen eingerichtet werden können, wenn die Spezifikation Geräteadressen verwendet.

Lese-Halt - Register

Sie möchten 20 Register alle 1000 Millisekunden von der Gerätadresse 40011 von ID 2 lesen. Von "4" wissen wir, dass dies die Funktion 03 "Lesen halten Register".

  • Abstand-Station - ID = 2
  • Funktion = "03 Lesen-Halt - Register (4x) "
  • Adresse = 10 (11 minus 1)
  • Anzahl = 20
  • Scanrate = 1000
Diskrete Eingabe lesen

Sie möchten alle 500 Millisekunden 1000 Spulen von der Adresse 110201 der Slave-Station - ID5 lesen. Von "1" wissen wir, dass dies die Funktion02 "Lesen diskrete Eingabe"

  • von der Station ID = 5
  • Funktion = "02 Lesen diskrete Eingabe (1x)"
  • Adresse = 10200 (10201 - 1)
  • Anzahl = 1000
  • Scanrate = 500

Scanrate

Die Scanrate kann auf 0 bis 3600000ms festgelegt werden. Beachten Sie, dass es sinnlos ist, die Scan-Rate auf niedriger als die Transaktionszeit einzustellen. Wenn Sie eine serielle Verbindung von 9600 Baute verwenden und 125 Register anfordern, beträgt die Transaktionszeit etwa 8 + 2 + 250 + 2 = 262 ms + die Lücke zwischen Anforderung und Antwort (> 3,5 Zeichenzeit). In diesem Fall ist es sinnlos, die Scan-Rate auf beispielsweise 100 Millisekunden einzustellen, da die Transaktionszeit mindestens 262 Millisekunden + die Verzögerung (Lap) in der Slave-Station + die minimale Zeit zwischen den Polls beträgt. (Einstellungen im Verbindungsdialogfeld F3).

Lesen / Schreiben deaktiviert

Mit dem Kontrollkästchen "Lese / Schreiben deaktiviert" können Sie die Kommunikation in diesem Fenster vorübergehend aktivieren oder deaktivieren. Dann wird der Text (deaktiviert) sowie der Tx - und Fehlerzähler angezeigt.

5.5.1。Ver bot en bei Fehler n

Lesen / Schreiben bei Fehlern deaktivieren.

Spalte mit Namen ausblenden

Alle Namen verstecken. Wenn Sie sie nicht verwenden, können Sie bequem mehr Platz freisetzen.

Adresse in der Zelle

Wenn aktiviert, wird die Adresse auch in der Wertzelle angezeigt, z. B.: 2000 = 00000

SPS-Adresse (Basis 1)

Diese Option zeigt die Adresse als Gerätadresse an.

Das Enron / Daniel Modell

Enron oder Enron / Daniels Modbus ist ein Standardmodbus mit einigen "Vendor-Erweiterungen". Die genaue Wirkung dieser Erweiterungen hängt vom Kontext ab, aber die häufigsten Modbus-Befehle funktionieren wie erwartet. Es gibt einige benutzerdefinierte, von Herstellern definierte Funktionen - aber nur wenige Benutzer erwarten oder nutzen sie. Die größten Auswirkungen beziehen sich auf die Art und Weise, wie 32 - Bit-Datenwerte gelesen / geschrieben werden.

Enron-Modbus definiert zwei spezielle 4x-Halt - Registerbereiche:

  • 4x5001 bis 4x5999 wird als 32 - Bit-große Ganzzahl (4 Byte pro Register) angenommen.
  • 4x7001 bis 4x7999 werden 32 - Bit-Fließkommazahlen (4 Bytes pro Register) angenommen.

Die Verarbeitung von 32 - Bit-Werten in Modbus ist nicht nur für Enron-MB. Jedoch hat Enron-MB den umstrittenen Schritt unternommen, um 4 Bytes pro Register zurückzugeben, anstatt 2 Bytes, wie der Begriff "Halt Register" in der Modbus-Spezifikation impliziert. Dies bedeutet, dass ein Polling der Register 4x5001 und 4x5002 in Enron-Modbus 8 Bytes oder zwei 32 - Bit-Gewinnzahlen zurückgibt, während ein Standard-Modbus nur 4 Bytes oder eine 32 - Bit-Gewinnzahl zurückgibt, die als zwei 16 - Bit-Gewinnzahlen angesehen wird. Darüber hinaus gibt das Polling-Register 4x5010 in Enron-MB die zehnte 32 - Bit lange Ganzzahzahl zurück, während Standardmodbus die Hälfte der fünften 32 - Bit langen Ganzzahzahl in diesem Bereich berücksichtigt.

行

Geben Sie die Anzahl der Zeilen im Raster an, die Sie bevorzugen.

Echtzeit-Diagramm

Mit diesem Befehl können Sie bis zu 12 Datenreihen in Echtzeit in einem Diagramm zeichnen.
Die Echtzeit-Diagramme sind hochgeschwindig und können neue Linien zeichnen, sobald neue Daten erhalten werden.

Alle Diagrammeinstellungen werden im Arbeitsbereich gespeichert.Arbeitsbereich speichern / öffnen

Um das Live-Diagramm - Dialogfeld zu öffnen, haben Sie 2 Optionen:

  • Alt + R drücken
  • Wählen Sie im Anzeigenmenü "Echtzeit-Diagramm"

Die X-Achse zeigt die Anzahl der Sekunden seit dem Diagrammstart an.

Wenn der Punkt am Ende des Diagramms erreicht, gibt es 3 Optionen:

  • Stoppt am Ende:Das Diagramm stoppt.
  • Neustart am Ende:Die Karte beginnt neu.
  • Weiter:Es dauert an, bis die maximale Punktzahl erreicht oder Stopp gedrückt wird.

Einstellung

Standardmäßig sind alle zwölf Serien an die linke Y-Achse verknüpft Wenn Sie die Serie mit der rechten Y-Achse verknüpfen möchten, aktivieren Sie das Kontrollkästchen „Rechte Y-Achse". Geben Sie

  • Farbe
  • Rechte Y-Achse
  • Titel
  • Ausgleich

Anzeige

  • Dateiname
  • Adresse

Der Offset ist nützlich, um Datenpunkte auf derselben Y-Achse auszurichten. Beispielsweise können Sie Datenpunkte von 0 oder 1 verschieben, so dass sie nicht aufeinander angezeichnet werden.

Zoom-Funktion

Wenn Sie weitere Details anzeigen möchten, kann es nützlich sein, das Diagramm zu vergrößern. Die Skalierung wird durch die linke Maustaste gesteuert. Um einen bestimmten Teil des Diagramms zu skalieren, klicken Sie einfach mit der linken Maustaste auf das Diagramm (dies wird die linke obere Ecke des Zoom-Rechtecks sein) und ziehen Sie in die untere rechts Ecke. Es wird ein Rechteck entstehen. Sobald Sie die Maustaste loslassen, passt sich die Welle automatisch an den von Ihnen gewählten Bereich an.

Wenn Sie mit der linken Maustaste auf ein Diagramm klicken (z. B. mit dem Zoom beginnen), aber wenn Sie sich in die obere linke Ecke bewegen, werden alle Änderungen, die Sie mit der Funktion Zoom und Panorama vorgenommen haben, rückgängig gemacht (das Diagramm bleibt in seinem ursprünglichen Zustand, bevor Sie mit Panorama und Panorama vorgenommen haben).

Panorama-Funktion

Um ein Steuerelement zu schwenken, klicken Sie mit der rechten Maustaste irgendwo auf dem Steuerelement und bewegen Sie die Maus. Der Punkt unter der Maus folgt der Bewegung der Maus.

Es sei denn, Sie verknüpfen die Modbus-Dateneinheit mit einer der 12 Serien, das Diagramm weiß nicht, welche Daten verwendet werden sollen. Wählen Sie hierzu eine Wertzelle aus und wählen Sie dann "Verknüpfen mit einem Diagramm" aus dem Menü → Anzeige.

Kopieren von Serien

Speichert Seriendaten auf der Festplatte oder kopiert sie in die Zwischentafel. Fügen Sie die Daten direkt in Excel zur weiteren Verarbeitung ein.
Die Datei hat trotz der Verwendung von nicht-Komma - Feldtrennern die Erweiterung .csv.

Trennzeichen:Wählen Sie die Zeichen aus, die Werte in der Textdatei trennen. Verwenden Sie Excel-Tabs. Darüber hinaus wurden einige zusätzliche Informationen gegeben.

  • Punkte
  • Maximaler Punktwert
  • Minimaler Punktwert
  • Durchschnittspunktwert

Anzeigeformat

Markiert die Zellen, die formatiert werden sollen. Wählen Sie im Anzeigemenü eines der 28 Anzeigestellungen aus.

Natives Modbus-Register

Das 16 - Bit-Modbus - Register kann in vier verschiedenen Modi angezeigt werden.

  • 签
  • nicht unterschrieben
  • Hexadezimal
  • Binär

32 - Bit-signierte Ganzzahl

Diese kombiniert zwei 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.

  • Symbolische Ganzzahl Big-endian
  • Symbolische Ganzzahl Little-endian
  • Symbolische Ganzzahl Big-End Byte Exchange
  • Symbolische Ganzzahl Small-End Byte Exchange Beispiel Bytes Reihenfolge:AB CD (Big-endian)
    Dezimalzahl 123456789 oder Hexadezimalzahl07 5B CD15
    Die Reihenfolge, in der sie in einer Modbus-Nachricht durch die Linien gehen:07 5B CD15

32 - Bit unsignierte Ganzzahl

Diese kombiniert zwei 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.

  • unsignierte Ganzzahl Big-endian
  • unsignifizierte Ganzzahl Kleine Sequenz
  • unsignierte Ganzzahl Big-End - Byte-Austausch
  • unsignierte Ganzzahl Kleine-End - Byte-Austausch Beispiel Byte-Sequenz:AB CD (Big-endian)
    Dezimalzahl 123456789 oder Hexadezimalzahl07 5B CD15
    Die Reihenfolge, in der sie in einer Modbus-Nachricht durch die Linien gehen:07 5B CD15

64 - Bit-signierte Ganzzahl

Dies kombiniert vier 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.

  • Signierte Ganzzahl Big-endian
  • Signierte Ganzzahl Little-endian
  • Signierte Ganzzahl Big-End Byte Exchange
  • Signierte Ganzzahl Small-End Byte Exchange Beispiel Byte Reihenfolge:AB CD EF GH (Big-End)
    Dezimalzahl - 1,234,567,890,123,456,789 oder HexadezimalEE DD EF0B82 16 7E EB
    Reihenfolge, in der die Linien in einer Modbus-Nachricht durchlaufen werden:EE DD EF0B82 16 7E EB

64 - Bit unsignierte Ganzzahl

Diese kombiniert vier 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.

  • Unsignierte Ganzzahl Big-endian
  • Unsignierte Ganzzahl Kleine Sequenz
  • Unsignierte Ganzzahl Big-endian Byte-Austausch
  • Unsignierte Ganzzahl Small-End - Byte-Austausch Beispiel Byte-Reihenfolge:AB CD EF GH (Big-End)
    Dezimal 1,234,567,890,123,456,789 oder Hexadezimal11 22 10 F4 7D E9 81 15
    Die Reihenfolge, in der sie in einer Modbus-Nachricht durch die Linie gehen:11 22 10F4 7D E9 81 15

32 - Bit-Floating

Dieses System kombiniert zwei 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.

  • Schwimmen am Ende
  • Kleine Schwimmbänder.
  • Großer Austausch von Schwimmen.
  • Kleines Beispiel für den Austausch von Bytes:AB CD (Big-endian)
    Fließkommazahlen 123456.00 oder Hexadezimal47F1 20 00
    Die Reihenfolge, in der sie in einer Modbus-Nachricht durch die Linie gehen:47F1 20 00

64 - Bit Doppelpräzision

Dies kombiniert vier 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.

  • Doppelte große Enden
  • Doppel-Small - End-Sequenz
  • Doppel-Big - End-Byte - Austausch
  • Doppel-Small - End-Byte - Austausch Beispiel-Byte - Reihenfolge:AB CD EF GH (Big-endian)
    Fließkommazahlen 123456789.00 oder Hexadezimal41 9D6F 34 54 00 00 00
    Die Reihenfolge, in der sie in einer Modbus-Nachricht durch die Linie gehen:41 9D6F34 54 00 00 00

Speichern / Öffnen eines Arbeitsbereichs

Wenn Sie viele verwandte Modbus-Fenster öffnen, ist es bequem, einen Snapshot aller geöffneten und angeordneten Modbus-Fenster in einem Arbeitsbereich zu speichern.

Der Arbeitsbereich (* mbw) ist eine Datei, die die Anzeigeinformationen und den Dateinamen aller geöffneten Fenster enthält. Nicht der tatsächliche Inhalt. Gehen Sie zu diesem Zweck zu Datei → Arbeitsbereich speichern

Wenn Sie eine Arbeitsbereichsdatei öffnen, öffnet Modbus Poll alle Modbus-Fenster und zeigt sie in Ihrem gespeicherten Layout an.

Export als csv

Exportiert Namen und Werte in eine Wertdatei, die durch Komma, Semikolon oder Tabs getrennt wird. Wählen Sie im Datei-Dialogfeld

  • Komma-getrennte Wertdatei (*. csv)
    Temperatur, "19.7"
  • Semikolon-getrennte Wertdatei (*. csv)
    Temperature; "19.7"
  • Tab-getrennte Wertdatei (*. txt)
    Temperatur 19,7

Je nach Ihrem System werden Kommas oder Punkte verwendet, um Dezimalzahlen zu trennen.

Testzentrum

Dieses Testdialogfeld soll den Entwicklern von MODBUS-Geräten helfen, Geräte mit einer von ihnen selbst erstellten Zeichenfolge zu testen.
Das Listenfeld zeigt die gesendeten Daten und empfangenen Daten an.
Sie können mehrere Testzeichenfolgen im Dropdown-Liste - Feld haben. Nachdem Sie die Zeichenfolge eingegeben haben, drücken Sie die Schaltfläche „Zu Liste hinzufügen", und fügen Sie die Zeichenfolge der Liste hinzu.
Sendet die ausgewählte Zeichenfolge, wenn Sie die Taste "Senden" drücken.Öffnen Sie die Liste

Ausruhen der Testzeichenfolge aus der Datei. Speicherliste

Speichert die Testzeichenfolge in einer Datei. Beseitigung

Löschen Sie die Testliste. zur Liste hinzufügen

Fügt der aktuellen Testzeichenfolge der Liste hinzu. Hinzufügen von Check

Fügt CRC oder LRC am Ende der Eingabezeichenfolge hinzu.

Wenn Sie das Prüfungszentrum verwenden, möchten Sie möglicherweise die Kommunikation aus anderen Fenstern deaktivieren. Aktivieren Sie das Kontrollkästchen Lesen / Schreiben deaktivieren im Dialogfeld Lesen / Schreiben-Definition. Setzen → Lesen / Schreiben Definitionen.

ASCII-Beispiel

Zeichenkette im Kombinationsfeld:

3A 30 31 30 33 30 30 30 30 30 30 30 41

Die übertragene Zeichenkette

3A 30 31 30 33 30 30 30 30 30 30 30 41 46 32 0D 0A

fügt auch ein CR-LF - Paar hinzu, wenn LRC hinzugefügt wurde.

TCP / IP Beispiel

Lesen Sie 10 Register.

00 00 00 00 00 06 01 03 00 00 00 0A

Die ersten sechs Bytes sind TCP / IP-Header.

Testcenter String-Datei

Mit einem Notepad oder einem ähnlichen Texteditor können Sie die Zeichenfolgen für den Test vorbereiten.
Die erste Zeile in der Datei muss die Zeichenfolge "TestCenter" sein. Auf diese Weise erkennt Modbus Poll das richtige Dateiformat. Drücken Sie "Liste öffnen", um die vorbereitete Textdatei zu öffnen.

10.3.1. Inhalt der Stringliste

测试中心 3A 
30 31 30 33 30 30 30 30 30 30 30 41 
3A 30 32 30 33 30 30 30 30 30 30 30 41 
3A 30 33 30 33 30 30 30 30 30 30 30 41

Kopieren

Verwenden Sie die Kopie-Taste, um die ausgewählte Tx / Rx-Zeichenfolge in die Zwischenablage zu kopieren.
Die SHIFT - und STRG-Tasten können mit der Maus verwendet werden, um eine Zeichenfolge auszuwählen und auszuwählen, eine Gruppe von Zeichenfolgen auszuwählen und nicht benachbarte Zeichenfolgen auszuwählen.

Dieses Fenster wird geöffnet, während andere Befehle ausgeführt werden.

Modbus-Datenprotokoll

Sie können Daten in Textdateien oder direkt in Microsoft Excel protokollieren.

Textdatei

Wählen Sie das Protokoll aus dem Einstellungsmenü oder verwenden Sie die Verknüpfungstaste: Alt + L

Jedes Modbus-Fenster wird in einer separaten Textdatei protokolliert.

Wenn Sie die Datenerfassung beenden möchten, wählen Sie im Einstellungsmenü den Befehl Abmeldung aus.

11.1.1. Tagebuch-Rate

Schreibt eine Protokollzeile für alle Modbus-Anfragen pro Lesen

Aufzeichnen Sie die Frequenz als Scanrate. Wählen Sie

Geben Sie die Protokollrate in Sekunden an. Es hat nichts mit der Scan-Rate zu tun.

Wenn die Scan-Rate beispielsweise 10000 ms beträgt, ist es sinnlos, die Log-Rate auf 1 Sekunde zu setzen, da die Daten nur protokolliert werden, wenn neue Daten bereit sind.

11.1.2. Trennzeichen

Als Trennzeichen können Sie eine der folgenden Optionen verwenden: Fixed Width

zeigt an, dass die Werte nach Spalten organisiert werden. Komma

Werte, die durch Komma getrennt sind. Tag

Werte, die durch Tabler getrennt sind.

11.1.3. Nur Datenänderungen protokollieren

Gibt an, dass die neue Protokollzeile nur dann geschrieben wird, wenn seit dem letzten Protokoll irgendwelche Datenänderungen vorgenommen wurden.

11.1.4. Aufzeichnung Fehler

Fehler, wie z. B. Zeitüberschreitung der angegebenen Aufzeichnung.

11.1.5。Dat ums ver zeich nis

Geben Sie an, dass das aktuelle Datum der Protokollzeit hinzugefügt wird.

11.1.6。Auf zeichnung Mill isek unden

Geben Sie an, dass Millisekunden der Protokollzeit hinzugefügt werden.

11.1.7。Journal Ad resse

Gibt an, dass die Modbus-Adresse dem Protokoll hinzugefügt wird.

11.1.8。Auf zeichnung starten , wenn Sie OK dr ücken

Geben Sie an, dass die Aufnahme beginnt, wenn Sie die OK-Taste drücken. Andernfalls werden die Protokoll-Einstellungen nur beim Speichern der * mbp-Datei gespeichert.

11.1.9。Start des Protokoll s beim Ö ff nen von * mb p

Gibt an, dass die Protokollierung beim Öffnen der *. mbp-Datei automatisch gestartet wird.

11.1.10。So for tige Ak tual isierung des Arch iv s

Dadurch wird sichergestellt, dass die Logzeilen nicht im Dateisystem ausgewertet werden, sondern sofort physisch geschrieben werden.

11.1.11。Zus ätz lich

Gibt an, dass das Protokoll an die ausgewählte Datei angehängt wird. Andernfalls wird ein neues Dokument erstellt.

11.1.12。Ne ue Protokoll date ien um Mit terna cht

Schließt die aktuelle Protokolldatei und startet um Mitternacht eine neue. Der Zeitstempel wird zu Ihrem Dateinamen hinzugefügt.

Beispiel für eine Textdatei mit fester Breite:

22:28:13 <40001> 17395 0 0 0 0 0 0 0 0 
22:28:14 <40001> 17396 1 0 0 0 0 0 0 0 
22:28:15 <40001> 17394 1 0 0 2 55 0 0 0 
22:28:16 <40001> 13350 1 0 0 4 0 0 0 0

Sie können Daten in eine Excel-Tabelle importieren.

Mit Microsoft Excel

Diese Funktion erfordert die Installation von Microsoft Excel. Excel 2003 - Protokolle sind auf 65.535 Protokolle begrenzt, da dies die maximale Anzahl von Zeilen in einem Excel-Arbeitsblatt ist. Excel 2007 oder höher ist auf 1.048.576 Zeilen begrenzt. Jedes Modbus-Fenster wird in einer separaten Excel-Tabelle protokolliert.

Wählen Sie das Excel-Protokoll aus dem Einstellungsmenü oder verwenden Sie die Verknüpfungstaste: Alt + X

Berühren Sie die Excel-Tabelle nicht, da dies die Aufzeichnung unterbricht.

11.2.1. Tagebuch-Rate

  • pro Lesen:Schreibt die Log-Zeile für alle Modbus-Anfragen. Aufzeichnen Sie die Frequenz als Scanrate.
  • Auswahl:Geben Sie die Log-Rate in Sekunden an. Das Protokoll hat nichts mit der Scanrate zu tun.
    Hinweis:Wenn die Scanrate beispielsweise 10000 ms beträgt, ist es sinnlos, die Aufzeichnungsrate auf 1 Sekunde einzurichten, da die Daten nur aufgezeichnet werden, wenn neue Daten bereit sind.
  • Nach dem Stopp:Angabe der Anzahl der Zeilen des Protokolls. Bitte beachten Sie, dass Excel 2003 auf 65.536 Zeilen und Excel 2007 auf 1.048.576 Zeilen begrenzt ist.

11.2.2.Überschrift Informationen

  • Einfügen Sie den Titel ein:Die Informationen werden in die obersten 3 Zeilen des Excel-Arbeitsblattes eingefügt.
    • Benennen der Zelle in der ersten Zeile:Fügen Sie den Namen in Zeile 3 ein.
    • Polling-Definition:Fügen Sie ID, Funktion usw. in Zeile 2 ein.
    • Name:Fügen Sie in Zeile 1 einen Lognamen ein.

Excel-Protokolle mit Titelinformationen.

Kommunikationsverkehr

Wählen Sie das Menü Display → Communication, um den Datenverkehr auf einer seriellen Linie oder einem Ethernet-Kabel anzuzeigen. Verwenden Sie die Schaltfläche Stoppen, um die Aktualisierung vorübergehend zu stoppen, um zu überprüfen.

Verwenden Sie die Kopie-Schaltfläche, um die ausgewählte Zeile in die Zwischentafel zu kopieren.

Dieses Fenster zeigt nur die Daten an, die von Modbus Poll gesendet und empfangen werden. Sie können es nicht als Daten-Sniffer verwenden.
Dieses Fenster wird geöffnet, während andere Befehle ausgeführt werden.

OLE / Automatisierung

Automatisierung (früher als OLE-Automatisierung bezeichnet) ermöglicht es einer Anwendung, Objekte zu manipulieren, die in einer anderen Anwendung implementiert sind.

Ein Automatisierungsclient ist eine Anwendung, die ein öffentliches Objekt, das einer anderen Anwendung gehört, manipulieren kann. Dies wird auch als Automatisierungsteuerung bezeichnet.

Ein Automatisierungsserver ist eine Anwendung, die programmierbare Objekte für andere Anwendungen veröffentlicht.Modbus PollEs handelt sich um einen automatisierten Server.

Das bedeutet, dass Sie jedes Programm verwenden können, das VBA (Visual Basic for Applications) unterstützt, wie Visual Basic, Excel usw., um Modbus-Daten nach Ihren spezifischen Anforderungen zu interpretieren und anzuzeigen.

Excel-Beispiel

Wenn Sie ein Makro schreiben möchten, sollten Sie die Registerkarte Entwickler anzeigen oder im Entwicklermodus ausführen.

13.1.1. Excel 2007

  1. Klicken Sie auf die Schaltfläche Microsoft Office, und klicken Sie dann auf Excel-Optionen.
  2. Klicken Sie auf Beliebt und aktivieren Sie dann die Registerkarte Entwickler anzeigen im Kontrollkästchen des Bands.
    Beachten Sie, dass das Band Teil der Microsoft Fluent-Benutzeroberfläche ist.

13.1.2. Excel 2010, 2016

  1. Klicken Sie auf die Registerkarte Datei.
  2. Klicken Sie auf Optionen. Das Excel-Optionenfenster wird geöffnet.
  3. Klicken Sie im linken Bereich auf das benutzerdefinierte Band.
  4. Wählen Sie im rechten Bereich unter der Haupt-Registerkarte das Kontrollkästchen Entwickler.
  5. Klicken Sie auf OK. Die Entwickler-Registerkarte sollte nun im Leibband (rechtsseitiges Registerkarte) angezeigt werden.

13.1.3. Excel-Beispielcode

Dieses Beispiel öffnet zwei Fenster. Ein Lesegister und eine weitere Lesespule.
Die Modbus-Umfrage ist versteckt, aber Sie können sie anzeigen, indem Sie die Zeile "ShowWindow" dekommentieren. Dadurch wird eines der Fenster angezeigt.

Ein Beispiel ist ebenfalls in der Installation von Modbus Poll enthalten.
Start → Alle Programme → Modbus-Polling → Excel-Beispiel Excel VBA-Beispiel

Public doc1 As Object
Public doc2 As Object
Public app As Object
Dim res As Integer
Dim n As Integer

Private Sub StartModbusPoll_Click()
   Set app = CreateObject("Mbpoll.Application")
   Set doc1 = CreateObject("Mbpoll.Document")
   Set doc2 = CreateObject("Mbpoll.Document")
' Read 10 Holding Registers every 1000ms
   res = doc1.ReadHoldingRegisters(1, 0, 10, 1000)
' Read 10 Coil Status every 1000ms
   res = doc2.ReadCoils(1, 0, 10, 1000)
' doc1.ShowWindow()
   app.Connection = 1 ' Modbus TCP/IP
   app.IPAddress = "127.0.0.1" ' local host
   app.ServerPort = 502
   app.ConnectTimeout = 1000
   res = app.OpenConnection()
End Sub

Private Sub Read_Click()
   Cells(5, 7) = doc1.ReadResult() 'Show results for the requests
   Cells(6, 7) = doc2.ReadResult()

   For n = 0 To 9
      Cells(5 + n, 2) = doc1.SRegisters(n)
   Next n

   For n = 0 To 9
      Cells(18 + n, 2) = doc2.Coils(n)
   Next n
End Sub

Python-Beispiel

Dieses Python-Beispiel öffnet ein Fenster und setzt alle möglichen Datenformate ein. Python Beispiel

import win32com.client as win32

SIGNED = 0
UNSIGNED = 1
HEX = 2
BINARY = 3
FLOAT_LE_BS = 4
FLOAT_BE = 5
DOUBLE_LE_BS = 6
DOUBLE_BE = 7
S32_LE_BS = 8
S32_BE = 9
FLOAT_LE = 10
FLOAT_BE_BS = 11
DOUBLE_LE = 12
DOUBLE_BE_BS = 13
S32_LE = 14
S32_BE_BS = 15

U32_BE = 17
U32_LE_BS = 18
U32_BE_BS = 19
U32_LE = 20

S64_BE = 21
S64_LE_BS = 22
S64_BE_BS = 23
S64_LE = 24

U64_BE = 25
U64_LE_BS = 26
U64_BE_BS = 27
U64_LE = 28

#Endianness
BE = 0
LE = 3
BE_BS = 2
LE_BS = 1

App = win32.Dispatch('Mbpoll.Application')

App.Connection = 1
App.IPAddress = "127.0.0.1"

App.ServerPort = 502
App.OpenConnection

#Create a Modbus display window called Win1
Win1 = win32.Dispatch("Mbpoll.Document")

# Read 100 holding registers from slave ID 1, address 0 (40001) every 1000ms
Win1.ReadHoldingRegisters(1, 0, 100, 1000)
# Show the Modbus window
Win1.ShowWindow()
# Show 20 rows
Win1.Rows(1)

# Disable refresh for speed
Win1.EnableRefresh = False

# Set all different formats
# This sets how the value is displayed
Win1.SetFormat(0, SIGNED)
Win1.SetFormat(1, UNSIGNED)
Win1.SetFormat(2, HEX)
Win1.SetFormat(3, BINARY)

Win1.SetFormat(4, S32_BE)
Win1.SetFormat(6, S32_LE)
Win1.SetFormat(8, S32_BE_BS)
Win1.SetFormat(10, S32_LE_BS)

Win1.SetFormat(12, U32_BE)
Win1.SetFormat(14, U32_LE)
Win1.SetFormat(16, U32_BE_BS)
Win1.SetFormat(18, U32_LE_BS)

Win1.SetFormat(20, S64_BE)
Win1.SetFormat(24, S64_LE)
Win1.SetFormat(28, S64_BE_BS)
Win1.SetFormat(32, S64_LE_BS)

Win1.SetFormat(40, U64_BE)
Win1.SetFormat(44, U64_LE)
Win1.SetFormat(48, U64_BE_BS)
Win1.SetFormat(52, U64_LE_BS)

Win1.SetFormat(60, FLOAT_BE)
Win1.SetFormat(62, FLOAT_LE)
Win1.SetFormat(64, FLOAT_BE_BS)
Win1.SetFormat(66, FLOAT_LE_BS)

Win1.SetFormat(80, DOUBLE_BE)
Win1.SetFormat(84, DOUBLE_LE)
Win1.SetFormat(88, DOUBLE_BE_BS)
Win1.SetFormat(92, DOUBLE_LE_BS)

# Set all Names to used format
Win1.SetName(0, "SIGNED")
Win1.SetName(1, "UNSIGNED")
Win1.SetName(2, "HEX")
Win1.SetName(3, "BINARY")

Win1.SetName(4, "S32_BE")
Win1.SetName(6, "S32_LE")
Win1.SetName(8, "S32_BE_BS")
Win1.SetName(10, "S32_LE_BS")

Win1.SetName(12, "U32_BE")
Win1.SetName(14, "U32_LE")
Win1.SetName(16, "U32_BE_BS")
Win1.SetName(18, "U32_LE_BS")

Win1.SetName(20, "S64_BE")
Win1.SetName(24, "S64_LE")
Win1.SetName(28, "S64_BE_BS")
Win1.SetName(32, "S64_LE_BS")

Win1.SetName(40, "U64_BE")
Win1.SetName(44, "U64_LE")
Win1.SetName(48, "U64_BE_BS")
Win1.SetName(52, "U64_LE_BS")

Win1.SetName(60, "FLOAT_BE")
Win1.SetName(62, "FLOAT_LE")
Win1.SetName(64, "FLOAT_BE_BS")
Win1.SetName(66, "FLOAT_LE_BS")

Win1.SetName(80, "DOUBLE_BE")
Win1.SetName(84, "DOUBLE_LE")
Win1.SetName(88, "DOUBLE_BE_BS")
Win1.SetName(92, "DOUBLE_LE_BS")

# Refresh
Win1.EnableRefresh = True

Win1.ResizeAllColumns ()
Win1.ResizeWindow()

print (Win1.GetName(1))

_ = input("Press ENTER to quit:")

Verbindungsfunktionen / Eigenschaften

Die folgenden Eigenschaften und Funktionen sind die gleichen, wie Sie im Verbindungs-Dialogfeld (F3) eingestellt haben.

13.3.1. Kontakt

Verbindung Wählen Sie die gewünschte Verbindung. Sie können einen seriellen Port oder eine Ethernet-Verbindung wählen.

EigenschaftVerbindungist ein gültiger ganzzahlwert

0 = serieller Port
1 = Modbus TCP / IP
2 = Modbus UDP / IP
Modbus ASCII / RTU über TCP / IP
4 = Modbus ASCII / RTU über UDP / IP
Beispiel

Connection = 0

13.3.2. Baudrate

Nur für die Verbindung = 0

EigenschaftBaudRateals Long gültiger Wert

300
600
1200
2400
4800
9600 (Standard)
14400
19200
38400
56000
57600
115200
128000
153600
230400
256000
460800
921600 Beispiele

BaudRate = 9600

13.3.3 Das Datenbit

ist nur für die Verbindung = 0

EigenschaftDataBitsgültiger ganzzahlwert

7
8 (Standard)
Beispiel

DataBits = 8

13.3.4. Gleichwertigkeit

Nur für die Attribute Connection = 0

EigenschaftenParitätals Ganzzahl gültiger Wert

0 = Keine
1 = Gerade Zahl
2 = Gerade Zahl (Standard)
Beispiel

Parity = 2

13.3.5. Stoppen Sie Platz

ist nur für die Verbindung = 0

EigenschaftStopBitsgültiger ganzzahlwert

1 (Standard)
2
Beispiel

StopBits = 1

13.3.6 verfügbar. Serieller Port

nur für Connection = 0

Setzen Sie die SerialPort- Eigenschaft auf einen gültigen Ganzzahlwert

1...255

Standardwert = 1 Beispiel

SerialPort = 1

13.3.7. Modus

Nur für den Connection = 0

Attribut- Modus verfügbarist ein gültiger ganzzahlwert

0 = RTU-Modus
1 = ASCII-Modus
Beispiel

Mode = 1

13.3.8. Echo entfernen

Nur für Connection = 0
Wenn Ihr Gerät oder der RS232 / RS485 - Wandler das gerade gesendete Zeichen wiederholt.

EigenschaftenRemoveEchoEffektiv für ganze Zahlen

0 (Standard)
1 (Echo-Entfernung)
Beispiel

RemoveEcho = 1

13.3.9. ResponseTimeout

ResponseTimeout Gibt die Dauer (in ms) an, wie lange die Modbus-Poll auf eine Antwort des Geräts warten sollte, bevor sie aufgegeben wird.

EigenschaftenResponseTimeoutist ein gültiger ganzzahlwert.

50...100000

Standardwert = 1000 Beispiel

ResponseTimeout = 1000

13.3.10.轮询之间的延迟

属性DelayBetweenPolls为整数有效值

0…1000

默认值 = 20例子

DelayBetweenPolls = 20

13.3.11。Der Server-Port

Nur für die Attribute Connection = 1...4

EigenschaftenServerPortas Long gültiger Wert

0...65535

Standardwert = 502 Beispiel

ServerPort = 502

13.3.12. Connection Timeout

ConnectTimeout Gibt an, wie lange die Modbus Polls auf eine erfolgreiche TCP / IP-Verbindung warten.

Nur für Connection = 1... 4

EigenschaftenConnectTimeoutist ein gültiger ganzzahlwert

100... 30000 ms

Standardwert = 1000 ms Beispiel

ConnectTimeout = 1000

13.3.13. IP-Version

nur für Connection = 1...4

Die EigenschaftIPVersionist ein gültiger ganzzahlwert

4 = IP-Version 4 (Standard)
6 = IP-Version 6
Beispiel

IPVersion = 4

13.3.14.Öffnen von Verbindungen

Öffnet die Verbindung, die mit der Verbindungseigenschaft ausgewählt wurde.

FunktionOpenConnection() als Ganzzahlargument

Diese Funktion hat keine Argumente. Rückgabewert

Fehler 3 - 5: Bitte überprüfen Sie, ob Sie den neuesten seriellen Port-Treiber haben.

FehlerBeschreibung
0Erfolg
1Serieller Port nicht verfügbar
3Serieller Port. Die aktuellen Einstellungen können vom Port-Treiber nicht abgerufen werden.
4Serieller Port. Der serielle Port-Treiber akzeptiert keine Port Einstellungen.
5Serieller Port. Der serielle Port-Treiber akzeptiert keine Timeout-Einstellungen.
12Die TCP / UDP Verbindung ist fehlgeschlagen. WSA Start
13TCP / UDP Verbindung fehlgeschlagen. Verbindungsfehler
14TCP / UDP-Verbindung ist fehlgeschlagen. Pause
15TCP / UDP-Verbindung ist fehlgeschlagen. IOCTL
17Die TCP / UDP-Verbindung ist fehlgeschlagen. Socket-Fehler
21Die TCP / UDP-Verbindung ist fehlgeschlagen. Adressinformationen
255Verbindungen geöffnet

Excel-Beispiel zum Öffnen einer Modbus TCP / IP-Verbindung

Public app As Object
Dim res As Integer
' Create an object to Modbus Poll
Set app = CreateObject("Mbpoll.Application")
app.Connection = 1 ' Select Modbus TCP/IP
app.IPVersion = 4
app.IPAddress = "192.168.1.27"
app.ServerPort = 502
app.ConnectTimeout = 1000
app.ResponseTimeout = 1000
res = app.OpenConnection()

Python-Beispiel, wie man eine serielle Verbindung einrichtet

import win32com.client as win32

App = win32.Dispatch('Mbpoll.Application')

App.Connection = 0            # Serial connection
App.SerialPort = 3            # Com port 3
App.BaudRate = 9600           # 9600 baud
App.Parity = 0                # None parity
App.Mode = 0                  # RTU mode
App.ResponseTimeout = 1000    # Wait 1000ms until give up
App.DelayBetweenPolls = 20    # Ensure minimum 20 ms gap until next request
App.OpenConnection

#Create a Modbus display window called Win1
Win1 = win32.Dispatch("Mbpoll.Document")

# Read 10 holding registers from slave ID 1, address 0 (40001) every 1000ms
Win1.ReadHoldingRegisters(1, 0, 10, 1000)
# Show the Modbus window
Win1.ShowWindow()
# Show 10 rows
Win1.Rows(0)

# Disable refresh for speed
Win1.EnableRefresh = False

# Set the name of the registers
Win1.SetName(0, "Register 0")

# Set the value to write
Win1.EnableRefresh = True

Win1.ResizeAllColumns ()
Win1.ResizeWindow()

_ = input("Press ENTER to quit:")

Schließen der Verbindung

FunktionCloseConnection() als Ganzzahlargument

Diese Funktion hat keine Argumente. Der Rückgabewert

ist Null bei Erfolg. Wenn es fehlschlägt, ist es ein nicht-Null - Wert.

ShowCommunicationTraffic

Zeigt das Kommunikationsfenster an.

FunktionShowCommunicationTraffic() Argument

Diese Funktion hat keine Argumente. Rückgabewert

Kein

Schließen des Verkehrs

Schließen des Verkehrsfensters, wenn angezeigt.

FunktionCloseCommunicationTraffic() Argument

Diese Funktion hat keine Argumente. Rückgabewert

Keine

Lesefunktion

Die folgenden Funktionen sind identisch mit den Einstellungen, die Sie im Dialogfeld Lesen / Schreiben-Definitionen (F8) eingestellt haben. Die Lesfunktion ist mit dem Modbus Poll-Dokument verbunden. (Datenfenster) Beispiel

' First a Modbus Poll document is needed.
Public doc As Object

Set doc = CreateObject("Mbpoll.Document")
res = doc.ReadCoils(1, 0, 100, 1000) ' Read 100 coils every 1000ms
Sie müssen zuerst ein Lesen erstellen, bevor Sie die Eigenschaft verwenden können, um Daten zu erhalten.

Lesen Sie die Spiele

Modbus Funktionscode01

FunktionReadCoils(SlaveID As Integer, Adresse As Long, Quantity As Integer, ScanRate As Long) Als Integer Parameter.

SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
Quantity:Anzahl der Daten. 1 bis 2000
Scannrate:0 bis 3600000 ms Rückgabewert

Wenn es Erfolg hat, ist es wahr. Wenn es nicht gelingt, ist es falsch.

diskreten Eingang

Modbus-Funktioncode02

FunktionReadDiscreteInputs(SlaveID As Integer, Adresse As Long, Quantity As Integer, ScanRate As Long) As Integer Parameter

SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
Quantity:Anzahl der Daten 1 bis 2000
Scan-Rate:0 bis 3600000 ms Rückgabewert

True, wenn es erfolgreich ist. Wenn es nicht gelingt, ist es falsch

13.4.3. ReadHoldingRegisters

Modbus-Funktioncode03

FunktionReadHoldingRegisters(SlaveID As Integer, Adresse As Long, Quantity As Integer, ScanRate As Long) As Integer Parameter

SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
Quantity:Anzahl der Daten. 1 bis 125?
Scan-Rate:0 bis 3600000 ms Rückgabewert

True, wenn es erfolgreich ist. Falsch, wenn es nicht gelingt

13.4.4. Modbus-Funktionscode04

Modbus-Funktionscode04

FunktionReadInputRegisters(SlaveID As Integer, Adresse As Long, Quantity As Integer, ScanRate As Long) As Integer Parameter

SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
Quantity:Anzahl der Daten. 1 bis 125
Scanrate:0 bis 3600000 Millisekunden Rückgabewert

True, wenn es erfolgreich ist. Wenn es nicht gelingt, ist es falsch.

Automatisierte Schreibfunktionen

Schreibfunktionen Schreiben Werte, die in einem Array gespeichert sind, das mit Attributen gefüllt ist. Die folgende Write-Funktion erstellt kein Datenfenster. Um ein Datenfenster zu erstellen, verwenden Sie die Win-Funktion, z.B.WriteMultipleRegistersWin。

13.5.1. Schreiben Single Coil

Modbus Funktionscode 05.
Schreibt die erste Spul, die im Schreibarray gespeichert ist.

FunktionWriteSingleCoil(SlaveID As Integer, Adresse So Long) As Integer Parameter

SlaveID:Slave-Adressen 0 bis 255
Adressen:Datenadresse (Base 0) Gibt den Wert

zurück, wenn das Schreibarray bereit ist und die Daten gesendet wurden. Wenn das Array leer ist oder der Parameter falsch ist, ist es Falsch.
Die Steuerungsanwendung ist dafür verantwortlich, Schreibvorgänge durch das Lesen des geschriebenen Wertes zu überprüfen.

13.5.2. Schreiben eines einzelnen Registers

Modbus-Funktionscode 06.
Schreibt das erste Register, das im Schreibarray gespeichert ist.

FunktionWriteSingleRegister(SlaveID As Integer, Adresse As Long) As Integer Parameter

SlaveID:Slave-Adressen 0 bis 255
Adresse:Datenadresse (Base 0) Rückgabewert

Ist wahr, wenn das Schreibarray bereit ist und die Daten gesendet wurden. Wenn das Array leer ist oder der Parameter falsch ist, ist es Falsch.
Die Steuerungsanwendung ist für die Validierung von Schreibvorgängen verantwortlich, indem sie den geschriebenen Wert zurücklesen.

13.5.3. Schreiben Sie mehrere Schleife.

Modbus-Funktionscode 15.
Schreibe die in einem Schreibarray gespeicherten Spulen.

FunktionWriteMultipleCoils(SlaveID As Integer, Adresse As Long, Quantity As Integer) Als Integer gibt den Wert

zurück, wenn das Schreibarray bereit ist und die Daten gesendet wurden. Wenn das Array leer ist oder der Parameter falsch ist, ist es Falsch.
Die Steuerungsanwendung ist verantwortlich für die Validierung von Schreibvorgängen, indem sie den geschriebenen Wert zurücklesen. Parameter

SlaveID:Slave-Adressen 0 bis 255
Adresse:Datenadresse (Base0)
QuantityAnzahl von Daten. 1 bis 1968

13.5.4 Schreiben mehrerer Register

Modbus-Funktioncode 16.
Schreiben Sie ein Register, das im Schreibarray gespeichert ist.

FunktionWriteMultipleRegisters(SlaveID As Integer, Adresse As Long, Quantity As Integer) As Integer Parameter

SlaveID:Slave-Adressen 0 bis 255
Adresse:Datenadresse (Base 0)
Quantity:Anzahl der Daten. 1 bis 123 Gibt einen Wert

zurück, wenn das Schreibarray bereit ist und die Daten gesendet wurden. Wenn das Array leer ist oder der Parameter falsch ist, ist es Falsch.
Die Steuerungsanwendung ist dafür verantwortlich, Schreibvorgänge durch das Lesen des geschriebenen Wertes zu überprüfen.

13.5.5. Python Beispiel

Python-Beispiel, wie man ein Fenster erstellt, das 10 Register von der Adresse 0 (40001) liest und dann 5 Register schreibt. Python-Beispiel

import sys
import time
import win32com.client as win32

App = win32.Dispatch('Mbpoll.Application')

App.Connection = 1            # TCP/IP connection
App.IPAddress = "127.0.0.1"

App.ResponseTimeout = 1000    # Wait 1000ms until give up
App.DelayBetweenPolls = 20    # Ensure minimum 20 ms gap until next request
App.ConnectTimeout = 500      # Wait 500ms until give up

App.ServerPort = 502
result = App.OpenConnection

if result != 0:
   print("Connection failed. Error: ", result)
   sys.exit()

#Create a Modbus display window called Win1
Win1 = win32.Dispatch("Mbpoll.Document")

# Read 10 holding registers from slave ID 1, address 0 (40001) every 1000ms
Win1.ReadHoldingRegisters(1, 0, 10, 1000)
# Show the Modbus window
Win1.ShowWindow()
# Show 10 rows
Win1.Rows(0)
# Resize the window to fit to the grid
Win1.ResizeWindow()

time.sleep(1.0) # Wait until read is done

if Win1.ReadResult == 0:    # Check read result
   print("Modbus register 0 (40001) = ", Win1.SRegisters(0))
else:
   print("Read failed error: = ", Win1.ReadResult)

print ("Tx count = %d, Rx count = %d" % (Win1.GetTxCount, Win1.GetRxCount))

# Prepare the internal array in Modbus Poll with data to write
Win1.SRegisters(0, 1)   # Note that parameter 1 is not a
Win1.SRegisters(1, 10)  # Modbus address but an index to the array
Win1.SRegisters(2, 100)
Win1.SRegisters(3, 1000)
Win1.SRegisters(4, 10000)
# Write the registers. This function do not create a window in Modbus Poll
# Use the function <<WriteMultipleRegistersWin>> to create a data window
Win1.WriteMultipleRegisters (1, 0, 5)

_ = input("Wait for write Press ENTER:")

if Win1.WriteResult == 0:    # Check write result
   print("Modbus write success")
else:
   print("Write failed error: = ", WriteResult)

_ = input("Press ENTER to quit:")

Funktionen

Funktionen sind mit einem Modbus Poll-Dokument zugeordnet. (Datenfenster)

13.6.1 Präsentationsfenster

Standardmäßig ist das Modbus-Dokumentenfenster ausgeblendet. Die ShowWindow-Funktion macht Modbus Polls sichtbar und zeigt Dokumente mit Dateninhalten an.

FunktionAnzeigefenster() Parameter

Diese Funktion hat keine Parameter. Rückgabewert

Kein

13.6.2. Abrufen Sie die Anzahl der TxCount

Anzahl der Suchanfragen.

FunktionGetTxCount() solange die Parameter

Diese Funktion hat keine Argumente. Gibt den Wert zurück

Anzahl der Anfragen.

13.6.3. Erhalten Sie die Empfangszählung

Abrufzahl der Antworten.

FunktionGetRxCount() Solange die Argumente

Diese Funktion hat keine Argumente. Rückgabewert

Die Anzahl der Antworten.

13.6.4. Namensbeschaffung

Der Name des Suchwertes.

FunktionGetName(Index ist Ganzzahl) ist ein Zeichenkettenparameter

Index:Index 0 entspricht der ersten Modbus-Adresse. Gibt den Namen des Werts

Name.

13.6.5. Sammlung Name

Ändern Sie den Namen des Wertes. FunktionSetName(Index ist eine ganze Zahl, Name ist eine Zeichenfolge) Parameter

Index:Index 0 entspricht der ersten Modbus-Adresse.
Name:Der Name der Zelle Wert. Der zurückgegebene Wert

ist nicht

13.6.6. Alle Formatieren

Formatiert alle Wertzellen mit dem gewählten Format.

FunktionFormatAll(formatiert als Ganzzahl) Parameter

Format:Format der Wertzelle. Der Rückgabewert

ist nicht

13.6.7. Format abrufen

Abrufen des Darstellungsformats des Modbus-Wertes.

FunktionGetFormat(Index ist Ganzzahl) ist Ganzzahl Argument

Index:Index 0 entspricht der ersten Modbus-Adresse.
Rückgabewert

IDFormat
0签
1Unsigniert
2Hexadecimal
3Binärsystem
4Floating Point Small-End Byte Exchange
5Floating Point Big-End
6Doppel Small-End Byte Exchange
7Doppel Big-End - Sequenz
832 - Bit-Symbol Small-End Byte Exchange
932 - Bit-Symbol Big-End - Sequenz
10Kleine Schwimmbänder.
11Floating-Point - Big-End - Byte-Switch
12Dual-Klein - End-Sequenz
13Dual-Big - End - Byte-Switch
1432 - Bit-Symbolisierte Kleine - End-Sequenz
1532 - Bit-Symbolisierte Big-End - Byte-Switch
1732 - Bit-Symbolisierte Kleine - End-Sequenz
1832 - Bit-Symbolisierte Kleine - End-Byte - Switch
1932 - Bit-Symbolisierte Big-End - Byte-Switch
2032 Bits ohne Symbol
2164 - Bit-Unsignierte Großsequenz
2264 - Bit-Unsignierte Kleine Sequenz
2364 - Bit-Unsignierte Großsequenz
2464 - Bit-Unsignierte Kleine Sequenz
2564 - Bit-Unsignierte Großsequenz
2664 - Bit-Unsignierte Kleine Sequenz
2764 - Bit-Unsignifizierter Big-End - Byte-Austausch
2864 - Bit Unsigned Small End Order
Diese Einstellung dient nur zur Darstellung. Wenn Sie die Get / Set-Wert - Funktion verwenden, müssen Sie dennoch byteOrder verwenden, um die richtige Byte-Reihenfolge zu erhalten.

13.6.8. Format einrichten

Ändern Sie das Anzeigeformat für Modbus-Werte. Bitte beachten Sie die oben angegebenen Formate.

FunktionSetFormat(Index ist eine ganze Zahl, Format ist eine ganze Zahl) Parameter

Index:Index 0 entspricht der ersten Modbus-Adresse.
Format:Das Format der Wertzelle. Der zurückgegebene Wert

ist nicht

13.6.9. Fenstergröße ändern

Ändern Sie die Größe des geöffneten Fensters an das Raster.

FunktionAnpassung des Fensters() Parameter

Diese Funktion hat keine Argumente. Der Rückgabewert

ist nicht

13.6.10. Größe aller Spalten anpassen

Größe aller Spalten an die Werte in der Zelle.

FunktionResizeAllColumns() Argument

Diese Funktion hat keine Argumente. Rückgabewert

Nein

13.6.11。OK .

Gibt die Anzahl der Zeilen in einem Raster an.

Funktion行(NumberRows) Parameter

NumberRows: Die Anzahl der Zeilen im Raster.

IDBeschreibung
010 Zeilen (Standard)
120 Zeilen
250 Zeilen
3100 Zeilen
4Passend für die Menge

Rückgabewert

Kein

13.6.12. Leseergebnis

Diese Eigenschaft wird verwendet, um zu überprüfen, ob die Kommunikation mit Read erfolgreich ausgeführt wurde.

EigenschaftReadResultAls Integer Argument

Diese Funktion hat keine Argumente. Rückgabewert

FehlerBeschreibung
0Erfolg
1Timeout-Fehler
2CRC-Fehler
3RESPONSE ERROR (Die Antwort ist nicht die erwartete Sekundär-ID, Funktion oder Adresse)
4Schreibfehler
5Lesefehler
6Port nicht geöffnet Fehler
10Daten nicht initialisiert
11Unzureichende Anzahl von Bytes empfangen
16Bytes Fehler
19Transaktions-ID - Fehler
81 StundenUnzulässige Funktionen
82 StundenUnzulässige Datenadresse
83 StundenUnzulässige Datenwerte
84 StundenServergerätfehler
85 StundenBestätigung
86 StundenServergerät beschäftigt
87 StundenNAK-Negative Bestätigung
8AhGateway-Pfad nicht verfügbar
8BhDas Gateway-Zielgerät reagiert nicht auf

13.6.13. Schreibergebnis

Verwenden Sie diese Funktion, um zu überprüfen, ob das Schreiben erfolgreich ist.
Dieser Wert ist DATA _ UNINITIALIZED, bis das Ergebnis von der Station verfügbar ist. Eine Liste der möglichen Werte finden Sie inReadResult.

EigenschaftWriteResultAls Integer Rückgabewert

Gibt das Schreibergebnis als Ganzzahl zurück.

Automatische Dateneigenschaften

Die folgenden Eigenschaften werden verwendet, um Werte in einem internen Schreib - / Lesetarray von Modbus Poll zu setzen oder abzurufen. Der verwendete Index ist nicht die Modbus-Adresse. Egal welche Adresse verwendet wird, der Index beginnt immer mit 0 zu zählen. Die Dateneigenschaften sind mit dem Modbus Poll-Dokument zugeordnet. (Datenfenster)

Es gibt zwei Versionen für jede Dateneigenschaft:

  • Eine ohne Suffix, wieSRegistersVerwenden Sie das Festlegen oder Abrufen von Werten aus einem internen Schreiben / Lesen Array.
  • Einer der WINN-Punkte, zum BeispielSRegistersWin, wird verwendet, um Werte direkt aus dem Datenfenster zu setzen oder abzurufen. Dies wird verwendet, wenn ein Datenfenster zum Schreiben von Funktionen verwendet wird, z. B.WriteMultipleRegistersWin。

Beispiel 1:

' doc is assumed created first. See Excel example.
' Writes 1 to index 0 in the data array used for the Write function later
doc.SRegisters(0) = 1
doc.SRegisters(1) = 10
doc.SRegisters(2) = 1234
' Write 3 registers stored in Modbus Poll internal array
' to Modbus address 100 (40101)
' A window is not created
res = doc.WriteMultipleRegisters(1, 100, 3)
' The above example do not create a data window but just make a single Modbus write.

mit einem Gleitkommawert Beispiel 2:
Schreiben Sie drei Gleitkomma-Werte.

' doc is assumed created first. See Excel example.
doc.Floats(0) = 1.3
doc.Floats(2) = 10.5
doc.Floats(4) = 1234.12
' Write the 6 register stored in Modbus Poll
res = doc. WriteMultipleRegisters(1, 0, 6)
' 6 Registers are written as a floating point value is 32 bit wide.

Beispiel 3:
Erstellen Sie ein Fenster, das in drei Registers geschrieben wird.

' doc is assumed created first. See Excel example.
' A window is created that writes the content every 1000ms
res = doc.WriteMultipleRegistersWin(1, 100, 3, 1000)
' Writes 1 to the first cell in the data window
doc.SRegistersWin(0) = 1
doc.SRegistersWin(1) = 10
doc.SRegistersWin(2) = 1234
' Now the 3 registers are written to slave id 1 address 100 every 1000ms

13.7.1. Spiele, Spiele gewinnen.

EigenschaftSpulen(Index ist Ganzzahl) ist Ganzzahl Beschreibung

Setzt eine Spul in der Schreibarray-Struktur oder gibt eine Spul von einem Lesarray zurück. Syntax

Spule(Index) [= neu]

13.7.2. SRegisters, SRegistersWin

EigenschaftSRegisters(Index As Integer) Als Integer Beschreibung

Setzt ein Register in der Schreibarray-Struktur oder gibt ein Register aus einem Lesarray zurück. Satz

SRegisters(Index) [= neuer Wert]

13.7.3 URegisters, URegistersWin

AttributURegisters(Index ist Ganzzahl) Nur beschreibt

Ein Register in der Schreibarray-Struktur oder ein Register aus einem Lesarray zurückgegeben. Syntax

URegisters(Index) [= neuer Wert]

13.7.4. Ints_32, Ints_32Win

EigenschaftInts_32(Index ist Ganzzahl) für Double Beschreibung

Setzt eine 32 - Bit Ganzzahl in der Schreibarray-Struktur oder gibt eine Ganzzahl aus einem Lesarray zurück. Syntax

Ints_32(Index) [= neuer Wert]

13.7.5. UInts_32, UInts_32Win

AttributUInts_32(Index As Integer) As Double Beschreibung

Setzt eine 32 - Bit unsignierte Ganzzahl in der Schreib-Array - Struktur oder gibt eine unsignierte Ganzzahl aus einem Lesetarray zurück. Syntax

UInts_32(Index) [= neuer Wert]

13.7.6. Ints_64, Ints_64Win

AttributInts_64(Index ist Ganzzahl) als Double beschrieben

Setzt eine 64 - Bit-Ganzzahl in der Schreibarray-Struktur oder gibt eine Ganzzahl aus dem Lesetarray zurück. Syntax

Ints_64(Index) [= neuer Wert]

13.7.7. UInts_64, UInts_64Win

AttributUInts_64(Index As Integer) As Double Beschreibung

Legen Sie eine 64 - Bit unsignierte Ganzzahl in der Schreibarray-Struktur fest oder geben Sie eine unsignierte Ganzzahl aus einem Lesarray zurück. Satz

UInts_64(Index) [= neuer Wert]

13.7.8.

EigenschaftFließkomma-Zahl(Index ist Ganzzahl) ist eine einzelne Beschreibung

Legen Sie eine Fließkomma-Zahl in der Schreibarray-Struktur oder geben Sie eine Fließkomma-Zahl aus dem Lesetarray zurück. Syntax

Gleitkomma-Zahl13.7.9. Doppel, Doppel gewinnt

13.7.9。D opp el , D opp el gew innt .

AttributDoppelpräzision Zahl(Index ist Ganzzahl) Doppelpräzision Zahl Beschreibung

Legen Sie eine Doppelpräzision in einer Schreibarray-Struktur oder geben Sie eine Doppelpräzision aus einem Lesarray zurück. Syntax

Doppel(Index) [= neu]

13.7.10。Be feh l se ite

AttributByteOrderAs Integer Beschreibt die Byte-Reihenfolge, die

bei den Einstellungen Ints_32, UInts_32, Ints_64, UInts_64, Floats und Doubles verwendet.
Win-Versionen verwenden diese Eigenschaft nichtByteOrder。

IDByte-Sequenz
0Big-End (Standard)
1Small-End - Byte-Switching
2Big-End - Bytes-Switch
3Small-End - Reihenfolge

Ints_32 Beispiel:
Bytes-Reihenfolge: Big-End -
Dezimal-Zahl 123456789 oder Hexadezimal 07 5B CD15
Die Reihenfolge, in der sie in einer Modbus-Nachricht durch die Linien gehen: 07 5B CD15 Syntax

Byte-Sequenz[= Neuer Wert]

Schreiben von Funktionen (Datenfenster erstellen)

Die folgenden Funktionen sind die gleichen, die Sie im Dialogfeld Lesen / Schreiben Definitionen (F8) festlegen.
Diese Funktionen erstellen ein Datenfenster, in dem der Dateninhalt basierend auf der Scanrate geschrieben wird.

13.8.1. Schreiben Sie eine Schleife gewinnen

Modbus Funktionscode 05.

FunktionWriteSingleCoilWin(SlaveID As Integer, Adresse As Long, ScanRate As Long) Als Integer Argument

SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
ScanRate:0 bis 3600000ms Rückgabewert

True, wenn Erfolg. Wenn nicht erfolgreich

13.8.2 Schreib-Register gewinnt

Modbus Funktionscode 06.

FunktionWriteSingleRegisterWin(SlaveID As Integer, Adresse As Long, ScanRate As Long) As Integer Parameter

SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
ScanRate:0 bis 3600000ms Rückgabewert

Wenn es Erfolg hat, ist es wahr. Python Beispiel, wie man ein Fenster öffnet und alle 1000 Millisekunden ein Register schreibt

import win32com.client as win32

SIGNED = 0

App = win32.Dispatch('Mbpoll.Application')

App.Connection = 1
App.IPAddress = "127.0.0.1"

App.ServerPort = 502
App.OpenConnection

#Create a Modbus display window called Win1
Win1 = win32.Dispatch("Mbpoll.Document")

# Write 1 holding registers to slave ID 1, address 0 (40001) every 1000 ms
Win1.WriteSingleRegisterWin(1, 0, 1000)
# Show the Modbus window
Win1.ShowWindow()

# Fit rows to quantity
Win1.Rows(4)

# Disable refresh for speed
Win1.EnableRefresh = False

# This sets how the value is displayed
Win1.SetFormat(0, SIGNED)

# Set the Name of the register
Win1.SetName(0, "Setting")

# Set the value to write
Win1.SRegistersWin(0, 100)
Win1.EnableRefresh = True

Win1.ResizeAllColumns ()
Win1.ResizeWindow()

_ = input("Press ENTER to quit:")

13.8.3. WriteMultipleCoilsWin

Modbus-Funktioncode 15.

FunktionWriteMultipleCoilsWin(SlaveID As Integer, Adresse As Long, Quantity As Integer, ScanRate As Long) As Integer Parameter

SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
Quantity:Anzahl der Daten. 1 bis 1968
Scan-Rate:0 bis 3600000 ms Rückgabewert

True, wenn es erfolgreich ist. Falsch, wenn nicht erfolgreich

13.8.4. WriteMultipleRegistersWin

Modbus-Funktioncode 16.

FunktionWriteMultipleRegistersWin(SlaveID As Integer, Adresse As Long, Quantity As Integer, ScanRate As Long) As Integer Parameter

SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
Quantity:Anzahl der Daten. von 1 bis 123
Scan-Rate:0 bis 3600000 ms Rückgabewert

True, wenn es erfolgreich ist. Wenn nicht erfolgreich, ist es falsch

Ausnahmen und Fehlermeldungen

Modbus-Ausnahmen und Fehlermeldungen werden in der zweiten Zeile jedes Fensters mit rotem Text angezeigt。

Modbus Poll Benutzerhandbuch (chinesisch)Abbildung3

Modbus-Ausnahmecode

Eine Modbus-Ausnahme ist ein Fehler, der vom Gerät zurückgegeben wird.

Der CodeNameBedeutung
01Illegale FunktionDer Funktionscode, der in der Abfrage empfangen wurde, ist nicht vom Server (oder Slave) zulässig. Dies kann daran liegen, dass der Funktionscode nur für neuere Geräte verfügbar ist und nicht in der ausgewählten Einheit implementiert wurde. Es kann auch darauf hindeuten, dass der Server (oder der Slave) sich in einem falschen Zustand befindet, um diese Art von Anfrage zu verarbeiten, zum Beispiel weil er nicht konfiguriert ist und aufgefordert wird, einen Registerwert zurückzugeben.
02Ungültige DatenadresseDie in der Abfrage empfangene Datenadresse ist nicht die vom Server zulässige Adresse. Genauer gesagt ist die Kombination der Referenznummer und der Übertragungslänge ungültig. Für einen Controller mit 100 Registern ist die PDU-Adresse 0 für das erste Register und 99 für das letzte Register. Wenn die gesendete Anforderung mit der Start-Register - Adresse 96 beginnt und die Anzahl der Register 4 beträgt, wird die Anforderung erfolgreich (zumindest in Bezug auf die Adresse) in den Registeren 96, 97, 98, 99 ausgeführt. Wenn die Anforderung mit der Start-Register - Adresse 96 und der Anzahl der Register 5 gesendet wird, schlägt die Anforderung mit dem Ausnahmecode 0x02 „Ungültige Datenadresse" fehl, da sie versucht, die Register 96, 97, 98, 99 und 100 zu betreiben und kein Register mit der Adresse 100 ist.
03Ungültiger DatenwertDer Wert im Abfrage-Datenfeld ist nicht vom Server (oder Slave) zulässig. Dies zeigt, dass es einen Fehler in der Struktur des Restes der komplexen Anfrage gibt, wie etwa eine falsche implizite Länge. Dies bedeutet nicht, dass ein in einem Register gespeichertes Dateneintrag mit einem Wert überschritten wird, der von der Anwendung erwartet wird, da das MODBUS-Protokoll die Bedeutung eines bestimmten Wertes für ein bestimmtes Register kennt.
04ServergerätefehlerBei dem Versuch des Servers (oder des Sekundärs) ist ein nicht wiederherstellbarer Fehler aufgetreten, die angeforderte Aktion auszuführen.
05Erkannt die Verwendung vonausschließlich in Verbindung mit Programmierbefehlen.
Der Server (oder ein Slave-Server) hat die Anforderung akzeptiert und verarbeitet sie, es dauert jedoch eine lange Zeit. Diese Antwort wird zurückgegeben, um Timeout-Fehler auf dem Client (oder Host) zu vermeiden. Der Client (oder der Host) kann dann eine Polling-Abschluss - Meldung senden, um festzustellen, ob die Verarbeitung abgeschlossen ist.
06Server-Gerät beschäftigtwird speziell in Verbindung mit Programmierbefehlen verwendet.
Der Server (oder Slave) verarbeitet einen langen Programmbefehl. Wenn der Server (oder der Slave) frei ist, sollte der Client (oder der Master) die Nachricht später erneut übertragen.
0AGateway-Pfad nicht verfügbarBei Verwendung mit einem Gateway kann das Gateway keinen internen Kommunikationspfad vom Eingangs - zum Ausgangsschnitt für die Verarbeitung von Anfragen zuweisen. Meist bedeutet dies, dass das Gateway falsch konfiguriert oder überlastet ist.
0BReaktionsfehler des Gateway-ZielgerätsBei Verwendung mit einem Gateway wird keine Antwort vom Zielgerät erhalten. Das bedeutet in der Regel, dass das Gerät nicht im Netzwerk existiert.

Modbus-Fehlermeldung

FehlermeldungBedeutung
Timeout-FehlerKeine Antwort innerhalb der erwarteten Zeit erhalten.Überprüfen Sie Folgendes: Serielle Verbindungen Serielle Einstellungen, wie z. B. Baudrate, Parität, Datenbits, Stoppbits usw. Modbus-Modus, RTU oder ASCII Slave-Station - ID-Antwortzeitüberschreiten TCP / IP-Verbindungs - Antwortzeitüberschreiten Überprüfen, ob Host und Port mit Slave übereinstimmen
AntwortfehlerDie Reaktion ist nicht erwartet. Unterschiedliche Stationen ID.
CRC-FehlerDer CRC-Wert für die empfangene Antwort ist nicht korrekt.
SchreibfehlerDies ist ein Fehler, der vom seriellen Treiber gemeldet wurde. Dies kann auftreten, wenn Sie einen USB / RS232 / 485 - Adapter verwenden und das USB-Kabel entfernen. Es gibt 4 Arten: UnterbrechungsbedingungEingabe-Ausgabe - FehlerSerielle VerbindungsfehlerAusgabe-Puffer - ÜberflussSchreibfehler mit TCP / IP-Verbindungen werden normalerweise durch Verbindungsverlust verursacht.
LesefehlerDies ist ein Fehler, der vom seriellen Treiber gemeldet wurde. Es gibt 6 Arten: Kompositionfehler Zeichenpuffer überflutet Paritätsfehler Eingabepuffer überflutet Eingabe Ausgabefehler Unterbrechungsbedingungen Lesfehler mit TCP / IP-Verbindungen werden normalerweise durch Verbindungsverlust verursacht.
Die empfangene Anzahl von BytesDie Antwort war nicht die erwartete Länge.
Anzahl der Fehlerist falsch. Im Vergleich zu den Erwartungen.
Transaktions-ID - FehlerEs wird für die Transaktionspaarung verwendet, wobei der MODBUS-Server die angeforderte Transaktionsidentifikation in der Antwort kopiert.

Die Software ist Modbus Poll 9.9.2.1690 chinesische Version, bitte kommentieren Sie nach dem Download!!!

Modbus Poll Benutzerhandbuch (chinesisch)Abbildung4
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

《 “Modbus Poll Benutzerhandbuch (chinesisch)” 》 有 60 条评论

Antwort veröffentlichen

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