Modbus Poll Benutzerhandbuch und Software herunterladen

Zahlung ¥4.99Zahlung ¥4.99

该内容已接入现有会员/付费系统,解锁后可查看完整资料或下载附件。

查看解锁方式
Modbus Poll Benutzerhandbuch und Software herunterladen
Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung

Kleine Version, kostenlos!!

Modbus Poll-Bericht

Modbus Poll ist ein einfach zu bedienender Modbus-Hoster - Simulator, der für verschiedene Zwecke entwickelt wurde.

Dazu gehören:

  • Modbus Slave-Gerätedesigner für schnelles und einfaches Testen von Protokollschnittstellen
  • Automatisierungstechniker, die Modbus-Geräte oder Netzwerke vor Ort testen müssen
  • Service-Ingenieure, die bestimmte Dienstdaten von Geräten lesen und / oder ändern möchten
  • Modbus-Register in Slaves ändern
  • Protokollierung von Daten von Modbus-Geräten
  • Fehlerbehebung und Konformitätstests

Systemanforderungen für Modbus Poll

Hardwareanforderungen

Prozessor; Empfohlen 1 GHz oder schneller 1 GB RAM
5 MB freier Festplattenspeicherplatz
1024 x 768 Anzeigeauflösung Betriebssystemanforderungen

Unterstützt alle Windows-Versionen von Windows 7 bis Windows 11.

Modbus Poll Funktion

Verbindung

Modbus Poll verwendet die folgenden Methoden zum Lesen / Schreiben von Daten von einem Gerät:

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

Unterstützte Modbus-Funktion

  • 01 (0x01) Lesespule
  • 02 (0x02) Diskreten Eingang lesen
  • 03 (0x03) Haltregister lesen
  • 04 (0x04) Eingangsregister lesen
  • 05 (0x05) Schreiben in einer einzelnen Spule
  • 06 (0x06) Schreiben in einem einzelnen Register
  • 08 (0x08) Diagnose (nur serielle Leitung)
  • 11 (0x0B) Zähler für Kommunikationsereignisse abrufen (nur serielle Leitung)
  • 15 (0x0F) Schreiben in mehrere Spule
  • 16 (0x10) Schreiben mehrerer Registers
  • 17 (0x11) Berichtsserver-ID (nur serielle Zeile)
  • 22 (0x16) Maske Schreiben Registers
  • 23 (0x17) Lesen / Schreiben mehrerer Registers
  • 43 / 14 (0x2B / 0x0E) Lesen der Geräte-Identifikation

Datensatz

  • Datensatz in einer Textdatei
  • Datensatz direkt in Excel

Anzeigeformat

Jede Zelle kann individuell formatiert werden.

Chinesische BeschreibungEnglische Beschreibung
16 - Bit-signiertes RegisterSigned 16 - Bit-register
16 - Bit-unsigniertes RegisterUnsigned 16 - Bit-register
HexadezimalHex
BinärBinary
32 - bit unsignierte Ganzzahzahl mit beliebiger Wort / Byte-Reihenfolge32 - bit unsignierte Ganzzahzahl mit beliebiger Wort / Byte-Reihenfolge
32 - bit unsignierte Ganzzahzahl mit beliebiger Wort / Byte-Reihenfolge32 - bit unsignierte Ganzzahzahl mit beliebiger Wort / Byte-Reihenfolge
64 - Bit-signierte Ganzzahl in beliebiger Wort - / Byte-Reihenfolge64 - bit-signierte Ganzzahl mit beliebiger Wort / Byte-Reihenfolge
64 - Bit unsignierte Ganzzahl in beliebiger Wort - / Byte-Reihenfolge64 - bit unsigned integer with any word / byte order
32 - bit float with any word / byte order32 - bit float with any word / byte order
64 - bit double float with any word / byte orderByte order

Zusätzliche Funktionen

  • für OLE / Automation mit Schnittstellen zu Excel, VBA, Python usw.
  • Datenverkehr überwachen
  • Drucken und Druckvorschau
  • Schriftartauswahl
  • Bedingte Farbe
  • Skalierung
  • Live-Diagramm
  • Arbeitsbereich speichern / öffnen
  • Adress-Scan

Modbus Poll Übersicht

Modbus Poll verwendet eine Multi-Window - Schnittstelle. Dadurch können mehrere Fenster geöffnet werden. Jeder hat gleichzeitig unterschiedliche Dateninhalte von verschiedenen Slave-Geräten.

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung1

Hilfe überall

Drücken Sie F1und erhalten kontextbezogene Hilfe für das Thema, das dem aktuell ausgewählten Element zugeordnet ist.

SHIFT + F1 Ein spezieller "Hilfe-Modus" wird aufgerufen, 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 der Symbolleiste oder Fenster. Dadurch wird die Hilfe zu einem Thema geöffnet, das das ausgewählte Element beschreibt.

Benannte Zelle

Hier können Sie einen beliebigen Text eingeben, um die Zelle mit Werten 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, wird ein Dialogfeld angezeigt, in dem ein neuer Wert auf das Slave-Gerät geschrieben wird. Wenn Sie eine Zahl in eine Wertzelle eingeben, wird ein Dialogfeld ebenfalls angezeigt. Sie können die Modbus-Funktion auswählen, die für das Schreiben von Werten verwendet wird.

Das Kontrollkästchen „Dialogfeld schließen, wenn die Antwort normal ist" wird verwendet, um das Dialogfeld automatisch zu schließen, wenn der Wert erfolgreich gesendet wird. 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 und Software herunterladenAbbildung2

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 Menu → Display → Font.
Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung3

Bedingte Farbe

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

  • Standardfarbe: Diese Farbe wird verwendet, wenn die Berechnung für keine der bedingten Farben true ist.
  • Regel 1: Wenn der Ausdruck true ausgewertet wird, wird diese Farbwahl verwendet. Regel 1 hat Vorrang vor Regel 2
  • Regel 2: Wenn der Ausdruck true ausgewertet wird, wird diese Farbauswahl verwendet.

7 Vergleichsoperatoren

Chinesische BeschreibungEnglische Beschreibung
Nicht genutztnot used
ist nicht verwendetequal to
ist größer alsgreater than
ist kleiner alsless than
ist größer alsgreater than or equal to
ist kleiner alsless than or equal to
and

Wenn der Datentyp ein Gleitkomma - oder 32 - Bit-Typ ist, können Sie den Operator "und" nicht verwenden. Wenn Sie "und" auswählen, wird der bedingte Wert als hexadeziimale Zahl eingegeben. Wenn ein beliebiges Bit in der Zelle und in den bedingten Werten 1 ist, ist das Ergebnis wahr.

Farbenbeispiele

Grün, wenn der Zellwert größer als 0, rot, wenn der Wert kleiner als 0.

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung4

Skalierung

Skalierung hilft Ihnen, den ursprünglichen Wert auf einen menschlich lesbaren Wert zu skalieren. Die Skalierung funktioniert nur für 16 / 32 - Bit-Ganzzahlen, die mit und ohne Zeichen sind.

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung5

(X1, Y1) und (X2, Y2)

Linien, die zwei Punkte (X1, Y1) und (X2, Y2) durchqueren

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung6

Liniengleichung

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung7

Genauigkeit

Anzahl der Stellen nach dem Dezimalpunkt.

使

Muss aktiviert sein, um Werte vom Modbus-Server / Slave-Standort zu skalieren. Bei anderen Umständen deaktivieren Sie das Skalieren automatisch und wählen Sie das 16 / 32 - Bit-Ganzzahl - Anzeigeformat.

Echtzeit-Diagramm

Dieses Diagramm kann in Echtzeit 12 Serien mit bis zu 100.000 Punkten pro Reihe zeichnen.

Adress-Scan

Scannt den Adressbereich, um eine Liste aller gültigen Adressen auf dem Gerät zu erhalten.

Ein neues Fenster öffnen

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

  • Drücken Sie STRG + N
  • Wählen Sie im Datei-Menü Neues
  • Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung8auf der Symbolleiste

Verbindungsdialog

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

  • Drücken Sie F3
  • Wählen Sie Verbindungen aus dem Verbindungsmenü
Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung9

Verbindungen(Verbindung)

Es gibt 5 verschiedene Verbindungstypen:

  1. Seriell:
    Modbus auf serieller Leitung. 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 wollen. In diesem Fall ist die Slave-ID die gleiche Geräte-ID, die in MODBUS TCP / IP verwendet wird.
    Die Portnummer ist standardmäßig 502.
    Wenn die Verbindung fehlschlägt, versuchen Sie, das Gerät in der Eingabeaufforderung zu ping. Wenn der Befehl ping fehlschlägt, schlägt auch die Modbus-Abfrage fehl.
  3. Modbus UDP / IP:
    Wenn Sie mit einem MODBUS-UDP / IP - Netzwerk kommunizieren möchten, wählen Sie UDP / IP. Dies ist das gleiche TCP / IP wie Modbus, aber stattdessen wird das UDP-Protokoll mit weniger Verbindungen verwendet.
  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 anstelle einer seriellen Leitung gesendet wird.

Hinweis: Verbindungstyp 3 - 5 nicht www.modbus.organgegebenen Standardmodbus, wurden jedoch aus einfachen Gründen hinzugefügt.

Je nach Ihrer Auswahl werden einige weitere Einstellungen grau angezeigt.

Serielle Port-Einstellungen(Serial Settings)

Mit diesen Parametern können Sie die Seriellen Port-Einstellungen festlegen. Sie sind nur verfügbar, wenn der Verbindungstyp "serieller Port" ist.

Modus

Verwenden Sie diese Option zum Auswahlen vonRTUoderASCII Modell. Die RTU ist aus.

Response Timeout

Gibt an, wie lange eine Modbus-Poll auf eine Antwort des Slaves warten sollte, bevor sie aufgegeben wird. Der Standardwert beträgt 1000ms.

Minimale Verzögerung zwischen den Polls

Unabhängig von der Scanrate sorgt diese Einstellung dafür, dass die Verzögerung vor der Übertragung der nächsten Anforderung auf ein Minimum reduziert wird. Die Auflösung für diese Einstellung beträgt etwa 15 Millisekunden. Auf einigen Computern ist eine bessere Auflösung verfügbar, aber nicht auf allen.

Achtung:

1. Wenn Sie diesen Wert auf weniger als 20 Millisekunden festlegen, ist ein Intervall von 3,5 Zeichen zwischen der Antwort und der neuen Anfrage nicht garantiert. Dies liegt daran, dass der Windows-Planer alle 10 - 20 Millisekunden die Aufgaben wechselt.

2. Wenn Sie mehrere Slave-Stationen 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.

3. In TCP / IP-Netzwerken sind weniger als 20 Millisekunden in Ordnung.

4. Eine serielle Verbindung mit nur einem Slave-Gerät dauert weniger als 20 ms.

Benutzer Porter Rate

Wenn keine der standardmäßigen Baudraten funktionieren, geben Sie eine benutzerdefinierte Baudrate an.

Remote-Server

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

IP-Adresse

Die IP - Ad resse des Ser vers . Der Standard wert ist local host127.0.0.1

Port

Die Serverportnummer. Der Standardwert 502

Verbindungszeitüberschreiten

wird für die maximale Zeit verwendet, um Verbindungen herzustellen. Standardwert 1000

Erweiterte Einstellungen

RTS-Schalter

RTS Toggle gibt an, dass die RTS-Zeile hoch ist, wenn die Bytes für die Übertragung verfügbar sind. Nachdem alle Puffer-Bytes gesendet wurden, wird die RTS-Zeile auf niedrig.
Wenn Sie einen 232 / 485 - Wandler ohne automatischen Richtungswechsel haben, können Sie ihn zum Richtungswechsel verwenden.

Hinweis:

Wenn möglich, sollten Sie die Verwendung von RTS-gesteuerten RS232 / RS485 - Wandlern vermeiden. Es ist schwierig, den genauen Zeitpunkt zu bestimmen, an dem der Sender nicht in Echtzeit ausgeschaltet wird Betriebssysteme wie Windows und Linux. Wenn Sie zu früh schließen, können Zeichen noch im Emissionregister von FIFO oder UART sitzen und diese Zeichen gehen verloren. Die Sklaven können diese Nachricht nicht erkennen. Auf der anderen Seite, wenn es zu spät geschlossen wird, dann ist die Nachricht des Slaves beschädigt und der Master-Server wird die Nachricht nicht erkennen können.

DSR-Format

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

CTS-Dienst

CTS gibt an, ob ein CTS-Signal (clear-to - send) für die Ausgangs-Datenverkehrsteuerung überwacht werden soll. Wenn Sie dieses Kontrollkästchen aktivieren und das CTS deaktivieren, wird die Ausgabe angehalten, bis das CTS erneut gesendet wird.

DTR-Unternehmen

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

Echo löschen

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

Lesen / Schreiben-Definitionen

Verwenden Sie diesen Befehl, um die Daten des aktiven Fensters zu definieren, die überwacht werden sollen.

Zum Öffnen des Dialogfelds „Definition lesen / schreiben" gibt es 3 Optionen:

  • Drücken Sie F8
  • Wählen Sie "Lese / Schreib-Definition"
  • Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung10im Menü "Einstellungen" in der Symbolleiste aus
Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung11

von der Stations-ID

Bereich 1 bis 255. (Die Modbus-Spezifikation ist 247). Der Wert 0 kann auch verwendet werden, um direkt mit MODBUS / TCP oder MODBUS / UDP-Geräten zu kommunizieren.

Funktionscode

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

Lesefunktion

Die von der Lesefunktion zurückgegebenen Daten werden im Rasterfenster angezeigt.

  • 01: Lese-Spule (0x)
  • 02: Lese diskreter Eingang (1x)
  • 03: Lesen Sie das Aufbewahrungsregister (4x)
  • 04: Lesen Sie das Eingangsregister (3x)

Schreiben Sie eine Funktion

Schreiben Sie eine Funktion Schreiben Sie Daten, die im Rasterfenster angezeigt werden.

  • 05: Schreiben einer einzelnen Spule (Schreib-Spule - Zustand)
  • 06: Schreiben eines einzelnen Registers (Schreib-Halt - Register)
  • 15: Schreiben mehrerer Spule (Schreib-Spule)
  • 16: Schreiben mehrerer Registers (Schreib-Halt - Register)

Adresse

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

Protokoll / Nachricht Adresse

Einige Protokollspezifikationen verwenden eine Zählung von Protokoll - / Nachrichtenadressen von 0 bis 65535 sowie Funktionscodes. Dies wird auch in der neuen Modbus-Spezifikation verwendet. Dies ist eine Nachricht, die von der Adresse über das Netzwerk gesendet wird.

Modbus Poll verwendet die Zählung von Protokoll - / Nachrichtenadressen von 0 bis 65535.

Geräteadresse

Einige Protokolle spezifizieren die Verwendung von Geräteadressen / Registers. Die Zählung des Registers beginnt mit 1. Die erste Ziffer beschreibt die Funktion, die verwendet wird. 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. Daher ist der Verweis auf "4XXXX" implizit. Noch verwirrender ist: 4x steht für den Funktionscode 03, 3x steht für den Funktionscode 04!

5 Ziffern und 6 Ziffern

Das Adressformat 4x zählt 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 zu 400101 und so weiter. Dies wird als 6 - Bit-Adressierung oder erweiterte Adressierung bezeichnet.

Das ist nicht das Problem der Modbus Poll. 410001 wird zu 10.000. Die "4" wird weggeworfen, und der restliche 10001 wird um 1 reduziert, wenn wir mit 0 anstatt mit 1 beginnen.

Beispiel für Adresse

Diese Beispiele zeigen, wie Modbus Polls bei der Spezifikation verwendet werden können.

Lese-Halt - Register

Sie möchten 20 Register für die Gerätadresse 40011 alle 1000 Millisekunden von der Slave-ID2 lesen. Aus "4" wissen wir, dass dies die Funktion 03 ist "Lesen des Hold-Registers".

  • Funktion von Station-ID = 2
  • = "03 Lesen des Hold-Registers (4x) "
  • Adresse = 10 (11 minus 1)
  • Anzahl = 20
  • Scan-Rate = 1000
Lesen diskreter Eingang

Sie möchten alle 500 Millisekunden 1000 Spulen von der Adresse 110201 aus der ID5 lesen. Aus "1" wissen wir, dass dies die Funktion 02 "Lesen diskreter Eingabe"

  • von der Station-ID = 5 ist
  • Funktion = „02 Lesen diskreter Eingang (1x)"
  • Adresse = 10200 (10201 - 1)
  • Quantität = 1000
  • Scanrate = 500

Scanrate

Die Scanrate kann von 0 bis 3600000ms eingestellt werden. Beachten Sie, dass es sinnlos ist, die Scanrate auf niedriger als die Transaktionszeit einzustellen. Wenn Sie eine serielle Verbindung von 9600 Baute verwenden und 125 Registers anfordern, beträgt die Transaktionszeit ungefähr 8 + 2 + 250 + 2 = 262ms + das Intervall zwischen der Anfrage (> 3,5 Zeichenzeit) und der Antwort. In diesem Fall ist es sinnlos, die Scan-Rate auf 100ms einzustellen, da die Transaktionszeit mindestens 262 ms + die Verzögerung von Stationen (Lap) + die minimale Zeit zwischen den Polls beträgt. (Einstellungen im Verbindungsdialogfeld F3).

Lesen / Schreiben deaktivieren

Das Kontrollkästchen Lesen / Schreiben deaktivieren kann verwendet werden, um die Kommunikation in diesem Fenster vorübergehend zu aktivieren oder zu deaktivieren. Anschließend wird der Text (Disabled) sowie die Tx - und Error-Zähler angezeigt

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung12
Wenn "Lesen / Schreiben" deaktiviert ist, können Sie die Schaltfläche "Einmal lesen / schreiben" verwenden oder F6 drücken, um eine einzelne Anforderung auszuführen.

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung13
Schaltfläche "Einmal lesen / schreiben"

Deaktivieren

Bei Fehlern deaktivieren Sie das Lesen / Schreiben.

Name-Spalten verstecken

Alle Namen verstecken. Wenn Sie sie nicht verwenden, kann dies bequem mehr Platz freigeben.

Adresse in der Zelle

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

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung14

PLC-Adresse (Basis1)

Diese Option zeigt die Adresse als Gerätadresse an.

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung15

Das Enron / Daniel Modell

Der Enron oder Enron / Daniels Modbus ist ein Standardmodbus mit einigen "Anbietererweiterungen". Die genaue Wirkung dieser Erweiterungen hängt vom Kontext ab, aber die meisten gängigen Modbus-Befehle funktionieren wie erwartet. Es gibt einige benutzerdefinierte, anbieterdefinierte Funktionen - aber nur wenige Benutzer erwarten oder verwenden sie. Der größte Einfluss bezieht sich auf die Art und Weise, wie 32 - Bit-Datenwerte gelesen werden und 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 wird als 32 - Bit-Fließkomma - Wert (4 Byte pro Register) angenommen.

Die Verarbeitung von 32 - Bit-Werten in Modbus ist nicht nur für Enron-MB. Jedoch erfordert Enron-MB, dass jedes Register vier Bytes statt zwei Bytes zurückgibt, ein umstrittener Schritt, der in der Modbus-Spezifikation den Begriff "Register aufbewahrt" verwendet. Dies bedeutet, dass 4x5001 und 4x5002 im Enron-Modbus 8 Bytes oder zwei 32 - Bit-Ganzzahlen zurückgeben, während Standard-Modbus nur 4 Bytes oder eine 32 - Bit-Ganzzahlen zurückgibt, die als zwei 16 - Bit-Ganzzahlen betrachtet werden. Darüber hinaus gibt das Polling-Register 4x5010 in Enron-MB die zehnte 32 - Bit-Lange - Ganzzahl zurück, während der Standardmodbus die Hälfte der fünften 32 - Bit-Lange - Ganzzahl in diesem Bereich berücksichtigt.

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

Echtzeit-Diagramme

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

Hinweis:

Alle Diagrammeinstellungen werden in der Arbeitsbereichsdatei gespeichert. Speichern / Öffnen des Arbeitsbereichs

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

  • Drücken Sie Alt + R
  • Wählen Sie im Anzeigenmenü „Echtzeit-Diagramm"
Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung16

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

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

  • Endlich anhalten:Das Diagramm stoppt.
  • Letzter Neustart:Die Karte beginnt neu.
  • Weiter:Es dauert an, bis die maximale Punktzahl erreicht ist oder die Stopptaste gedrückt wird.

Einstellung

Standardmäßig sind alle 12 Serien an die linke Y-Achse verknüpft. Aktivieren Sie das Kontrollkästchen „Rechte Y-Achse" (wenn Sie die Sequenz mit der rechten Y-Achse verknüpfen möchten).

Geben Sie

  • Farbe
  • Rechts Y-Achse
  • Titel an. Wenn der Titel leer ist, wird mit dem Namen im Lesenfenster initialisiert
  • Ausgleich

Zeigt

  • Dateiname
  • Adresse

Der Offset kann zum Ausrichten von Datenpunkten auf derselben Y-Achse verwendet werden. Beispielsweise können Datenpunkte mit 0 oder 1 verschoben werden, sodass sie nicht überlappen werden.

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung17

Zoom-Funktion

Wenn Sie weitere Details anzeigen möchten, kann das Vergrößern des Diagramms nützlich sein. Die Skalierung wird durch die linke Maustaste gesteuert. Um einen bestimmten Teil des Diagramms zu skalieren, klicken Sie einfach auf die linke Maustaste auf das Diagramm (dies wird die linke obere Ecke des Skalierungsrechtecks sein) und ziehen Sie dann in die untere rechts Ecke. Es wird ein Rechteck entstehen. Sobald Sie die Maustaste loslassen, passt sich die Welle automatisch an die von Ihnen ausgewählte Region an.

Wenn Sie mit der linken Maustaste auf ein Diagramm klicken (z. B. Skalieren starten), aber wenn Sie sich in die obere linke Ecke bewegen, werden alle Änderungen, die Sie mit Skalieren und Schwanken durchgeführt haben, rückgängig gemacht (das Diagramm wird in dem Zustand sein, in dem Sie sich vor der Verwendung von Schwanken und Skalieren befanden).

Übersetzungsfunktion

Um ein Steuerelement zu verschieben, klicken Sie mit der rechten Maustaste auf eine Position auf dem Steuerelement und bewegen Sie die Maus. Der Punkt unter der Maus folgt der Mausbewegung.

Es sei denn, Sie verknüpfen die Modbus-Dateneinheit mit einer der 12 - Serien, kann das Diagramm nicht wissen, 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.

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung18

Exportieren von Serien

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

Trennzeichen:Wählen Sie ein Zeichen aus, das die Werte in der Textdatei trennt. Verwenden Sie Tab-Trennzeichen beim Kopieren / Einfügen in Excel. Darüber hinaus wurden einige zusätzliche Informationen bereitgestellt.

  • Punkte
  • Maximaler Punktwert
  • Minimaler Punktwert
  • Durchschnittliche Punktzahl
Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung19

Adress-Scan

Scannen Sie den Adressbereich, um eine Liste aller gültigen Adressen auf Ihrem Gerät zu erhalten. Die Adressen werden einzeln gelesen, und das Lesergebnis wird in der Liste angezeigt.

Achtung:

Das Scannen aller 65.535 Adressen dauert einige Zeit, je nach Verbindungstyp, Servergerät usw.

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung20

Exportieren von Adress-Scan

Speichern von Adress-Scan - Daten auf der Festplatte oder kopieren Sie sie in die Zwischenablage. Fügen Sie die Daten direkt in Excel zur weiteren Verarbeitung ein.
Die Datei hat trotz der Verwendung von nicht-Komma - Feldtrennzeichen die Erweiterung. csv.

Trennzeichen:Wählen Sie ein Zeichen aus, das Werte in einer Textdatei trennt. Verwenden Sie Tab-Trennzeichen beim Kopieren / Einfügen in Excel.

Anzeigeformat

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

native Modbus-Register

16 - Bit Modbus-Register können in vier verschiedenen Modi angezeigt werden

  • Signature
  • Unsigned
  • ASCII - Hexadecimal
  • ASCII - Hexadezimal
  • Binär

32 - Bit-Signified Integer

Es vereint 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 Little-endian Byte Exchange Beispiel Bytes Reihenfolge:AB-CD (Big-End)
    Dezimal 123456789 oder Hexadezimal07 5B-CD15Überleitung in Modbus-Nachrichten
    Reihenfolge bei der Anordnung:07 5B CD15

32 - Bit unsignierte Ganzzahl

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

  • unsignierte Ganzzahl Big-endian
  • unsignierte Ganzzahl Little-endian
  • unsignierte Ganzzahl Big-End - Byte-Switch
  • unsignierte Ganzzahl Little-endian - Byte-Switch Beispiel-Byte - Reihenfolge:AB CD (Big-End)
    Dezimalzahl 123456789 oder Hexadezimalzahl07 5B CD15Reihenfolge, wenn sie in einer Modbus-Nachricht über die Linie
    angeordnet werden:07 5B CD15

64 - Bit-signierte Ganzzahl

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

  • Big-endian - Zahlen
  • Little-endian
  • Little-endian
  • Little-endian]AB CD EF GH (Big-endian)
    Dezimalzahlen - 1,234,567,890,123,456,789 oder HexadezimalzahlenEE DD EF0B82 16 7E EB
    Reihenfolge, wie sie in Modbus-Nachrichten über das Netzwerk erscheinen:EE DD EF0B82 16 7E EB

64 - Bit unsignierte Ganzzahl

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

  • unsignierte Ganzzahl Big-endian
  • unsignierte Ganzzahl Little-endian
  • unsignierte Ganzzahl Big-End - Byte-Switch
  • unsignierte Ganzzahl Little-endian Byte-Switch Beispiel-Byte - Reihenfolge:AB CD EF GH (Big-endian)
    Dezimalzahlen 1,234,567,890,123,456,789 oder Hexadezimal11 22 10F4 7D E9 81 15Sortung in Modbus-Nachrichten über Netzwerk
    :11 22 10F4 7D E9 81 15

32 - Bit-Fließkomma - Zahl

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

  • Schwebpunkt Big-endian
  • Fließpunkt Little-endian
  • Float Little-endian
  • Float Little-endian Bytes Exchange Beispiel Bytes Reihenfolge:AB CD (Big-End)
    Fließkommazahlen 123456.00 oder Hexadezimal47F1 20 00Reihenfolge in Modbus-Nachrichten über die Linie
    :47F1 20 00

64 - Bit Fließkomma-Zahl mit doppelter Präzision

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

  • Doppelte große Enden
  • Dual-Little - Endian
  • Dual-Big - End-Byte - Austausch
  • Dual-Little - Endian-Byte - Austausch Beispiel-Byte - Reihenfolge:AB CD EF GH (Big-End - Reihenfolge)
    Fließkommazahlen 123456789.00 oder Hexadezimal41 9D6F 34 54 00 00 00Sortiert nach Linie
    in einer Modbus-Nachricht:41 9D6F34 54 00 00 00

Arbeitsbereich speichern / öffnen

Wenn Sie viele verwandte Modbus-Fenster öffnen, können Sie bequem einen Schnapshot des aktuellen Layouts aller geöffneten und angeordneten Modbus-Fenster in einem Arbeitsbereich speichern.

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

Die Einstellungen "Verbindung" und "Diagramm" werden in der Arbeitsbereichsdatei gespeichert.

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

Exportieren in csv

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

  • Komma-getrennte Wertdatei (*.csv)
    Temperatur, "19.7"
  • Komma-getrennte Wertdatei (*.csv)
    Temperatur; "19.7"
  • Tab-Trennungswert-Datei (*. txt)
    Temperatur 19.7

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

Exportieren in Modbus Slave

Exportieren Sie Namen, Werte und Formate in eine Modbus Slave-Datei. mbs

Öffnen von Dateien erfordert Modbus Slave Version 7.4.0 oder höher.

Prüfungszentrum

Dieses Testdialogfeld soll den Entwicklern von MODBUS-Slave - Geräten helfen, alle von ihnen selbst komponierten Zeichenfolgen zu verwenden.
Das Listenfeld zeigt übertragene und empfangene Daten an.
Sie können mehrere Testzeichenfolgen in das Dropdown-Liste - Feld einfügen. 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 beim Drücken der Schaltfläche "Senden".

Öffnen Sie die Liste

Beibehält die Testzeichenfolge aus der Datei.

Speicherliste

Speichern Sie die Testzeichenfolge in der Datei.

Beseitigung

Löscht die Testliste.

zur Liste hinzufügen

Fügt die aktuelle Testzeichenfolge der Liste hinzu.

Add Check

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

Wenn Sie das Prüfungscenter verwenden, müssen 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

Zeichenfolge im Kombofeld: 3A 30 31 30 33 30 30 30 30 30 30 30 30 41

Wenn ein LRC hinzugefügt wurde, wird der übertragenen Zeichenkette3A 30 31 30 33 30 30 30 30 41 46 32 0D 0A

Auch CR LF-Paare hinzugefügt.

TCP / IP Beispiel

Lest 10 reservierte Register. 00 00 00 00 00 00 06 01 03 00 00 0A

Die ersten sechs Bytes sind TCP / IP-Header.

Testcenter String-Datei

Mit einem Texteditor (z. B. Notepad oder einem ähnlichen Werkzeug) 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.

Inhalt der Stringliste

3A 30 30 30 30 30 30 30

Kopieren.

Verwenden Sie die Schaltfläche Kopieren, um die ausgewählte Tx / Rx-Zeichenfolge in die Zwischentafel 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.

Achtung:

hält dieses Fenster geöffnet, während andere Befehle ausgeführt werden.

Modbus-Datenaufzeichnung

Sie können die Daten in einer Textdatei oder direkt in Microsoft Excel aufzeichnen.

Textdatei

Wählen Sie im Einstellungsmenü „Log" aus 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 den Befehl Abmeldung im Menü Einstellungen aus.

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung21

Logging Rate

Pro Lesen

Protokolliert alle Modbus-Anforderungen. Die Frequenz wird als Scanrate aufgezeichnet.

Wählen Sie

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

Achtung:

Wenn die Scannrate 10000 ms beträgt, ist es sinnlos, die Protokollrate von 1 Sekunde einzurichten, da die Daten nur protokolliert werden, wenn neue Daten bereit sind.

Trennzeichen

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

Feste Breite

gibt an, dass die Werte nach Spalten organisiert werden.

Spaß machen.

Werte, die durch Komma getrennt sind.

Tag

Durch Tab-Zeichen getrennt Wert.

Protokollieren nur bei Datenänderungen

Gibt an, dass eine neue Protokollzeile nur geschrieben wird, wenn Daten seit dem letzten Protokoll geändert wurden.

Log-Fehler

Gibt einen Fehler wie einen Timeout für die Aufzeichnung an.

Protokolldatum

Gibt an, dass das aktuelle Datum zur Protokollzeit hinzugefügt wird.

Verwenden Sie "T" als Trennzeichen

Geben Sie Zeit und Datum durch den in ISO 8601 angegebenen Buchstaben "T" getrennt.

Log millisekunden

Gibt an, dass der Protokollzeit Millisekunden hinzugefügt werden.

Log Adresse

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

Beginnen der Protokollierung bei Ok

Gibt an, dass die Protokollierung bei Ok-Taste gestartet wird. Andernfalls werden die Protokoll-Einstellungen nur beim Speichern der * mbp-Datei gespeichert.

Beginnen der Protokollierung beim Öffnen von *. mbp

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

Sofortige Aktualisierung in Datei

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

Anfügen

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

Mitternacht Neue Protokolldatei

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

Header-Datei - Informationen

  • Einfügen von Überschrift:Informationen werden oben in die Protokolldatei eingefügt.
    • Benennen der Zelle in der oberen Zeile:Einfügen des Namens.
    • Definition der Abstimmung:Einfügen von ID, Funktionen usw.
    • Name:Der Name des einfügten Protokolls.

Beispiel für eine Textdatei mit fester Breite:22: 28: 13 <40001>0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 <40001>0 0 0 0 0 0 0 <40001>1 0 0 0 <40001>13350 1 0 0 4 0 0 0 0

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

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 einem separaten Excel-Arbeitsblatt protokolliert.

Wählen Sie „Excel-Protokolle" aus dem Einstellungsmenü oder verwenden Sie die Verknüpfungstaste: Alt + X

Berühren Sie das Excel-Arbeitsblatt nicht während der Protokollierung, da dies die Protokollierung unterbrechen kann.

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung22

Lograte

  • Jeder Inhalt lautet:Protokoll für alle Modbus-Anfragen. Die Frequenz wird als Scanrate aufgezeichnet.
  • Auswahl:Geben Sie die Protokollrate in Sekunden an. Das Protokoll hat nichts mit der Scanrate zu tun.
    Hinweis:Wenn die Scanrate 10000 ms beträgt, ist es sinnlos, die Protokollrate von 1 Sekunde einzurichten, da die Daten nur protokolliert werden, wenn neue Daten bereit sind.
  • Die folgende Zeit stopp:Geben Sie die Anzahl der Protokollzeilen fest. Bitte beachten Sie, dass Excel 2003 auf 65.536 Zeilen und Excel 2007 auf 1.048.576 Zeilen begrenzt ist.

Header-Dateiinformationen

  • Einfügen von Überschrift:Informationen werden in die oberen 3 Zeilen des Excel-Arbeitsblattes eingefügt.
    • Benennen der Zelle in der oberen Zeile:Fügen Sie den Namen in Zeile 3 ein.
    • Definition der Abstimmung:Fügen Sie ID, Funktion usw. in Zeile 2 ein.
    • Name:Fügen Sie den Namen des Protokolls in Zeile 1 ein.
Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung23

Excel-Protokolle mit Headerinformationen.

Kommunikationsverkehr

Wählen Sie das Menü „Anzeige → Kommunikation", 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 Schaltfläche „Kopieren", um die ausgewählte Zeile in die Zwischenablage zu kopieren.

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung24

Achtung:

Dieses Fenster zeigt nur die Daten an, die von Modbus Poll gesendet und empfangen werden. Sie können es nicht als Daten-Sniffer verwenden.

Das Fenster wird geöffnet bleiben, 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 öffnet.Modbus Poll Es 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 erstellen möchten, sollten Sie die Registerkarte "Entwickler" anzeigen oder im Entwicklermodus ausführen.

Excel für 2007

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung25
  1. für Excel 2007 Klicken Sie auf die Schaltfläche Microsoft Office und klicken Sie dann auf Excel-Optionen.
  2. Klicken Sie auf "Popular" und aktivieren Sie das Kontrollkästchen "Entwickler anzeigen" im Leibband.
    Beachten Sie, dass das Band Teil der Microsoft Fluent-Benutzeroberfläche ist.

Excel 2010, 2016

  1. Klicken Sie auf die Registerkarte Datei.
  2. Klicken Sie auf Optionen. Das Fenster "Excel-Optionen" wird geöffnet.
  3. Klicken Sie im linken Bereich auf „Anpassungsband".
  4. Wählen Sie im rechten Bereich unter "Hauptarbeiter" das Kontrollkästchen "Entwickler".
  5. Klicken Sie auf "OK". Die Registerkarte „Entwickler" sollte nun im Leibband (rechtsseitigste Registerkarte) angezeigt werden.

Excel Beispielcode

In diesem Beispiel werden zwei Fenster geöffnet. Ein Lesegister, ein anderes Lesegister.
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 Poll → 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()
   ' 创建 Modbus Poll 应用程序对象和两个文档对象
   Set app = CreateObject("Mbpoll.Application")
   Set doc1 = CreateObject("Mbpoll.Document")
   Set doc2 = CreateObject("Mbpoll.Document")
   ' 读取10个保持寄存器,每1000ms读取一次
   res = doc1.ReadHoldingRegisters(1, 0, 10, 1000)
   ' 读取10个线圈状态,每1000ms读取一次
   res = doc2.ReadCoils(1, 0, 10, 1000)
   ' 显示文档窗口(此行被注释,如需使用请取消注释)
   ' doc1.ShowWindow()
   ' 设置连接为 Modbus TCP/IP
   app.Connection = 1 
   ' 设置IP地址为本地主机
   app.IPAddress = "127.0.0.1" 
   ' 设置服务器端口为 502
   app.ServerPort = 502
   ' 设置连接超时时间为 1000ms
   app.ConnectTimeout = 1000
   ' 打开连接
   res = app.OpenConnection()
End Sub
Private Sub Read_Click()
   ' 显示请求的结果
   Cells(5, 7) = doc1.ReadResult() ' 显示保持寄存器的读取结果
   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
# 字节序定义
BE = 0
LE = 3
BE_BS = 2
LE_BS = 1
# 创建 Modbus Poll 应用实例
App = win32.Dispatch('Mbpoll.Application')
# 设置连接参数
App.Connection = 1  # 使用 Modbus TCP/IP
App.IPAddress = "127.0.0.1"  # 本地地址
App.ServerPort = 502  # Modbus 端口
App.OpenConnection()  # 打开连接
# 创建 Modbus 显示窗口实例
Win1 = win32.Dispatch("Mbpoll.Document")
# 从从站ID为1的设备读取100个保持寄存器,地址从0 (40001) 开始,每1000ms读取一次
Win1.ReadHoldingRegisters(1, 0, 100, 1000)
# 显示 Modbus 窗口
Win1.ShowWindow()
# 设置显示的行数
Win1.Rows(1)
# 禁用刷新以提高速度
Win1.EnableRefresh = False
# 设置不同的数据格式显示方式
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)
# 为不同格式的数据设置显示名称
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")
# 重新启用刷新
Win1.EnableRefresh = True
# 调整所有列的大小以适应内容
Win1.ResizeAllColumns()
# 调整窗口大小以适应内容
Win1.ResizeWindow()
# 保存配置到文件,指定文件路径
result = Win1.Save("C:\Users\UserName\Desktop\testfile.mbp")
# 打印保存结果
print(result)
# 打印第二个格式名称,作为示例
print(Win1.GetName(1))
# 等待用户按 Enter 键退出,避免窗口直接关闭
_ = input("Press ENTER to quit:")

Verbindungsfunktionen / Eigenschaften

Die folgenden Eigenschaften und Funktionen tun das gleiche wie Sie im Verbindungsdialog (F3) einrichten.

Verbindung

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

AttributVerbindungenGanzzahl

Wertbereich

0 = Serial port
1 = Modbus TCP / IP
2 = Modbus UDP / IP
3 = Modbus ASCII / RTU über TCP / IP
4 = Modbus ASCII / RTU über UDP / IP

Beispielsweise

Connection = 0

Baudrate

Nur für Verbindungen = 0

EigenschaftBaudrateund lang

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

Beispiel

BaudRate = 9600

Datenbit

nur für die Verbindung = 0

EigenschaftDataBitsals Ganzzahl

Wertebereich

7
8 (Standard)

Beispiel:

DataBits = 8

Check-Bit

nur für Attribute mit Verbindungen = 0

als GanzzahlParität

Wertebereich

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

Beispiel:

Parity = 2

Stop-Bit

Nur für die Verbindung = 0

EigenschaftStopBitsals Integer-Wertbereich

1 (Standard)
2

Beispiel:

StopBits = 1

Serieller Port

Nur für Verbindungen = 0

EigenschaftSerialPortals Integer Wertbereich

1...255

Standardwert = 1

Beispiel:

SerialPort = 1

Modus

Nur für Verbindungen = 0

EigenschaftModusist Ganzzahl

Wertebereich

0 = RTU-Modus
1 = ASCII-Modus

Beispiel:

Mode = 1

Echo entfernen

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

EigenschaftRemoveEchoals Integer

Wertebereich

0 (Standard)
1 (Echos löschen)

Beispiel:

RemoveEcho = 1

ResponseTimeout

ResponseTimeout Gibt die Dauer (in Millisekunden) an, wie lange die Modbus Poll auf eine Antwort des Slaves warten sollte, bevor sie aufgegeben wird.

Eigenschaften ResponseTimeoutals Ganzzahlbereich

50...100000

Standardwert = 1000

Beispiel:

ResponseTimeout = 1000

DelayBetweenPolls

EigenschaftDelayBetweenPolls als ganzes Wertvolumen

0...1000

Standardwert = 20

Beispiel:

DelayBetweenPolls = 20

Serverport

nur für Connection = 1... 4

EigenschaftServerPortas Long Wertbereich

0...65535

Standardwert = 502

Beispiel:

ServerPort = 502

15.3.12. ConnectTimeout

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

nur für Connection = 1... 4

EigenschaftConnectTimeoutals Integer

Wertebereich

100... 30000 ms

Standardwert = 1000ms

Beispiel:

ConnectTimeout = 1000

IP-Version

nur für Connection = 1 4

EigenschaftIPVersionals Integer

Wertebereich

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

IPVersion = 4

Öffnen von Verbindungen

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

FunktionOpenConnection() ist Ganzzahl

Argument

Diese Funktion hat keine Argumente.

Rückgabewert

Für 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 gestartet
13Die TCP / UDP-Verbindung ist fehlgeschlagen Verbindungsfehler
14TCP / UDP-Verbindung ist fehlgeschlagen. Timeout
15Die TCP / 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 Öffnen einer Modbus TCP / IP-Verbindung

Public app As Object
Dim res As Integer
' 创建一个指向 Modbus Poll 的对象
Set app = CreateObject("Mbpoll.Application")
' 选择 Modbus TCP/IP 协议
app.Connection = 1
' 设置 IP 协议版本为 IPv4
app.IPVersion = 4
' 设置目标设备的 IP 地址
app.IPAddress = "192.168.1.27"
' 设置服务器端口,默认为 502
app.ServerPort = 502
' 设置连接超时时间为 1000 毫秒
app.ConnectTimeout = 1000
' 设置响应超时时间为 1000 毫秒
app.ResponseTimeout = 1000
' 尝试打开连接,并将结果存储在变量 res 中
res = app.OpenConnection()

Python-Beispiel: Einrichten einer seriellen Verbindung

import win32com.client as win32
# 创建 Modbus Poll 应用程序对象
App = win32.Dispatch('Mbpoll.Application')
# 设置为串行连接
App.Connection = 0            
# 选择 COM 端口 3
App.SerialPort = 3            
# 设置波特率为 9600
App.BaudRate = 9600           
# 设置奇偶校验为无
App.Parity = 0                
# 设置模式为 RTU
App.Mode = 0                  
# 设置响应超时时间为 1000ms
App.ResponseTimeout = 1000    
# 设置两次请求之间的最小间隔时间为 20ms
App.DelayBetweenPolls = 20    
# 打开连接
App.OpenConnection
# 创建一个 Modbus 显示窗口对象 Win1
Win1 = win32.Dispatch("Mbpoll.Document")
# 从从站ID为1的设备读取10个保持寄存器,地址从0 (40001) 开始,每1000ms读取一次
Win1.ReadHoldingRegisters(1, 0, 10, 1000)
# 显示 Modbus 窗口
Win1.ShowWindow()
# 设置显示的行数为10
Win1.Rows(0)
# 禁用刷新以提高速度
Win1.EnableRefresh = False
# 为寄存器设置名称
Win1.SetName(0, "Register 0")
# 重新启用刷新
Win1.EnableRefresh = True
# 调整所有列的大小以适应内容
Win1.ResizeAllColumns ()
# 调整窗口大小以适应内容
Win1.ResizeWindow()
# 等待用户按 Enter 键退出
_ = input("Press ENTER to quit:")  

Eng verbunden

FunktionCloseConnection() ist Ganzzahl

Argument

Diese Funktion hat keine Argumente.

Gibt den Wert

zurück, wenn er erfolgreich ist, ist Null. Wenn es fehlschlägt, ist der Wert nicht null.

ShowCommunicationTraffic

Zeigt das Kommunikations-Fenster an.

FunktionShowCommunicationTraffic()

Parameter

Diese Funktion hat keine Argumente.

Rückgabewert

Kein

CloseCommunicationTraffic

Wenn angezeigt, schließt das Kommunikationsverkehrsfenster.

Funktion CloseCommunicationTraffic()

Argument

Diese Funktion hat keine Argumente.

Rückgabewert

Keine

Lesefunktion

Die folgenden Funktionen verhalten sich wie Sie im Dialogfeld Lesen / Schreiben Definitionen (F8) festlegen. Die Lesfunktion ist mit dem Modbus Poll-Dokument verbunden. (Fenster mit Daten)

Beispiel:

' 首先需要创建一个 Modbus Poll 文档对象
Public doc As Object
' 创建 Modbus Poll 文档对象实例
Set doc = CreateObject("Mbpoll.Document")
' 从从站 ID 为 1 的设备读取 100 个线圈状态,地址从 0 开始,每 1000 毫秒读取一次
res = doc.ReadCoils(1, 0, 100, 1000) ' 读取 100 个线圈每 1000ms

Hinweis: Sie müssen Read erstellen, bevor Sie die Eigenschaft verwenden können, um Daten zu erhalten.

Lesen Sie die Spiele ReadCoils

Modbus Funktionscode 01

FunktionReadCoils(SlaveID ist eine ganze Zahl, Adresse lang, Anzahl ganze Zahl, ScanRate lang) ist eine ganze Zahl

Parameter

SlaveID:von Adressen 1 bis 255
Adressen:Datenadresse (basierend auf 0)
Quantity:Anzahl der Daten. 1 bis 2000
Scan-Rate:0 bis 3600000msReturn value

True if success. False if not success

Lesen diskreter Eingabe ReadDiscreteInputs

Modbus-Funktioncode 02

Funktion Lesen diskreter Eingabe (von StationID As Integer, Adresse As Lang Integer, Quantität As Integer, Scan-Rate As Lang Integer) As Integer

Parameter

  • Abonnenten-Station - ID: Abonnenten-Station - Adressen 1 bis 255
  • Adresse: Datenadresse (Basis 0)
  • Anzahl: Datenmenge. 1 bis 2000
  • Scanrate: 0 bis 3600000ms

Rückgabewert

  • Gibt erfolgreich True zurück. Fehlschlag gibt FALSE zurück.

Lese-Halt - Register ReadHoldingRegisters

Modbus Funktionscode 03

Funktion Lese-Halt - Register (Vom Station-ID als Ganzes, Adresse als Langes Ganzes, Quantität als Ganzes, Scan-Rate als Langes Ganzes) als Ganzes

Parameter

  • Von Stations-ID: Von Stations-Adressen 1 bis 255
  • Adresse: Datenadresse (Basis 0)
  • Quantität: Datenmenge. 1 bis 125
  • Scanrate: 0 bis 3600000ms

Rückgabewert

  • Gibt erfolgreich True zurück. Fehlschlag gibt FALSE zurück.

Eingangsregister lesen ReadInputRegisters

Modbus-Funktionscode 04

Funktion Eingangsregister lesen (Standort-ID als Ganzes, Adresse als Langes Ganzes, Quantität als Ganzes, Scanrate als Langes Ganzes) As Ganzes

Parameter

  • Standort-ID: Standort-Adressen 1 bis 255
  • Adresse: Datenadresse (Basis 0)
  • Quantität: Datenmenge. 1 bis 125
  • Scan-Rate: 0 bis 3600000ms

Rückgabewert

  • Erfolgreich True zurückgegeben. Fehlschlag gibt FALSE zurück.

Automatisierte Schreibfunktion

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

Schreiben Sie eine einzelne Spule WriteSingleCoil

Modbus-Funktionscode 05.
Schreibt die erste Spul des Schreibarrays.

Funktion Schreiben einer einzelnen Spule (von StationID als Ganzes, Adresse als Langes Ganzes) als Ganzes

Parameter

  • Von-Stations - ID: Von-Stations - Adressen 0 bis 255
  • Adresse: Datenadresse (Kardinal 0)

Gibt den Wert

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

Schreibt ein einzelnes Register WriteSingleRegister

Modbus-Funktionscode 06.
Schreiben Sie das erste Register im Schreibarray.

Funktion Schreiben eines einzelnen Registers (von der StationID als Ganzes, der Adresse als langes Ganzes) als Ganzes

Parameter

  • Standort-ID: Standort-Adressen 0 bis 255
  • Adresse: Datenadresse (Basis 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, gibt es Falsche zurück.
  • Die Steuerungsanwendung ist für die Validierung von Schreibvorgängen verantwortlich, indem sie den geschriebenen Wert zurücklesen.

Schreiben Sie mehrere Spulen WriteMultipleCoils

Modbus-Funktion - Code15.
Schreibe die in einem Schreibarray gespeicherten Spulen.

Funktion Schreiben mehrerer Spulen (Stations-ID als Ganzes, Adresse als Langes Ganzes, Quantität als Ganzes) As Ganzes

Parameter

  • Stations-ID: Stations-Adressen 0 bis 255
  • Adresse: Datenadresse (Basis 0)
  • Quantität: Datenmenge. 1 Bis 1968

Gibt den Wert

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

Schreiben mehrerer Register WriteMultipleRegisters

Modbus-Funktionscode 16.
Schreiben in

Schreiben in das Register, das in einem Array gespeichert ist.

Funktion Schreibe mehrere Register (von Station-ID als Ganzes, Adresse als Langes Ganzes, Quantität als Ganzes) As Ganzes

Parameter

  • Abonnenten-Station - ID: Abonnenten-Station - Adressen 0 bis 255
  • Adresse: Datenadresse (Kardinal 0)
  • Anzahl: Datenmenge. 1 bis 123

Gibt den Wert

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

Python Beispiel

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

import sys
import time
import win32com.client as win32
# 创建Modbus Poll应用程序实例
App = win32.Dispatch('Mbpoll.Application')
# 设置连接类型为TCP/IP
App.Connection = 1            
App.IPAddress = "127.0.0.1"  # 设置IP地址
App.ResponseTimeout = 1000    # 设置响应超时时间为1000毫秒
App.DelayBetweenPolls = 20    # 设置请求间最小间隔为20毫秒
App.ConnectTimeout = 500      # 设置连接超时时间为500毫秒
App.ServerPort = 502  # 设置服务器端口为502
result = App.OpenConnection  # 尝试打开连接
if result != 0:
   print("Connection failed. Error: ", result)  # 连接失败时输出错误信息
   sys.exit()  # 退出程序
# 创建一个名为Win1的Modbus显示窗口
Win1 = win32.Dispatch("Mbpoll.Document")
# 从从站ID 1的地址0 (40001)开始,每1000ms读取10个保持寄存器
Win1.ReadHoldingRegisters(1, 0, 10, 1000)
# 显示Modbus窗口
Win1.ShowWindow()
# 显示10行
Win1.Rows(0)
# 调整窗口大小以适应网格
Win1.ResizeWindow()
time.sleep(1.0) # 等待读取完成
if Win1.ReadResult == 0:    # 检查读取结果
   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))
# 在Modbus Poll的内部数组中准备要写入的数据
Win1.SRegisters(0, 1)   # 注意,这里的1不是Modbus地址,而是数组的索引
Win1.SRegisters(1, 10)
Win1.SRegisters(2, 100)
Win1.SRegisters(3, 1000)
Win1.SRegisters(4, 10000)
# 写入寄存器。这个函数不会在Modbus Poll中创建窗口
# 使用函数 <<WriteMultipleRegistersWin>> 来创建数据窗口
Win1.WriteMultipleRegisters(1, 0, 5)
_ = input("Wait for write Press ENTER:")  # 等待写入,按回车继续
if Win1.WriteResult == 0:    # 检查写入结果
   print("Modbus write success")
else:
   print("Write failed error: = ", Win1.WriteResult)
_ = input("Press ENTER to quit:")  # 按回车退出

15.6. Verschiedene Funktionen

Verschiedene Funktionen sind mit Modbus Poll-Dokumenten verbunden. (Daten-Fenster)

15.6.1. ShowWindow

Standardmäßig ist das Modbus-Dokumentenfenster ausgeblendet. Die ShowWindow-Funktion macht die Modbus Poll sichtbar und zeigt Dokumente an, die Dateninhalte enthalten.

Funktion ShowWindow() Parameter

Diese Funktion hat keine Parameter. Rückgabewert

Nein.

15.6.2. GetTx Count

Erhält die Anzahl der Anfragen.

FunktionGetTxCount() Solange Argument

Diese Funktion hat keine Argumente. Rückgabewert

Anzahl der Anfragen.

Erhalten Sie die Empfangszählung

Anzahl der Antworten zu erhalten.

Funktion Empfangszählung () As langes Ganzesystem

Argument

Diese Funktion hat keine Argumente.

Gibt den Wert

zurück, der die Anzahl der Antworten enthält.

Name abrufen

Abrufen des Namens des Wertes.

Funktion Abholen des Namens (Index As Ganzzahl) As Zeichenfolge

Parameter

Index: Index0 entspricht der ersten Modbus-Adresse.

gibt den Namen des Wertes

Name.

Einrichtung des Namens

Der Name des Wertes ändert. Funktionsname (Index As Ganztyp, Name As Zeichenfolge)

Parameter

Index: Der Index0 entspricht der ersten Modbus-Adresse.
Name: Der Name der Wertzelle.

Gibt Wert zurück

Formatieren aller

Formatieren aller Wertzellen mit dem ausgewählten Format.

Funktion Formatieren Alles (Format As Ganzes)

Parameter

Format: Format für die Wertzelle.

Rückgabewert

Format abrufen

Abrufen des Darstellungsformats des Modbus-Wertes.

Funktion Abrufformat (Index As Integer) As Integer

Parameter
Index: Index0 entspricht der ersten Modbus-Adresse.

Gibt den Wert zurück

IDFormatDeutsch
0SignedSymbolisiert
1UnsignedUnsigniert
2HexHexadezimal
3BinaryBinär
4Float little-endian byte swapFloat little-endian byte swap
5Float big-endianSchwimmbunkte am Ende
6Double little-endian byte swapDouble-precise small-end byte swap
7Double big-endianDouble-precise big-end
832 - bit Signed little-endian byte swap32 - bit Signed small-endian byte swap
932 - bit Signed big-endian32 Punkte haben ein großes Symbol.
10Float little-endianFloat big-endian byte swap
11Float Big-endian Byte Swap (Float Big-endian Byte Swap)Float big-endian byte swap
12Double little-endianDouble-precision small-end
13Double big-endian byte swapDoppelpräzision High-End Byte Austausch
1432-bit Signed Little-endian32 Punkte mit kleinen Symbolen.
1532-Bit Signed Big-endian Byte Swap32 - Bit mit Symbolen für großen Byte-Austausch
1732 - bit Unsigned big-endian32 - bit Unsigned little-endian
1832 - bit Unsigned little-endian Endian Byte Swap-Spiel32 - Bit-Unsignifizierter Kleintext-Byte - Austausch
1932-bit Unsigniert Big-endian Byte Swap32 - Bit-Unsignifizierter Big-End - Byte-Austausch
2032-bit Unsignierte Little-endian32 - bit Unsigned small-endian
2164 - bit Signed big-endian64 - bit Signed big-endian
2264 - bit Signed little -Endian Byte Swap-Spiel64 - Bit-Symbol mit kleinem Byte-Austausch
2364-Bit Signed Big-endian Byte Swap64 - Bit-Symbol mit großem Austausch
2464-bit Signed Little-endian64 - Bit mit kleinen Symbolen
2564 - bit Unsigned big-endian64 - bit Unsigned little-endian
26Endian Byte Swap-Spiel64 - Bit Unsigned Little-End Byte Swap
2764 - Bit Unsigned Big-endian Byte Swap64 - Bit Unsigned Big-End Byte Swap
2864 - Bit Unsigned Little-endian64 - Bit Unsigned Little-End

Hinweis:

Diese Einstellung dient nur zur Darstellung. Wenn Sie die Get / Set-Wert - Funktion verwenden, müssen Sie dennoch byteOrder verwenden, um die richtige Byte-Sequenz zu erhalten.

15.6.8. SetFormat

Ändern Sie das Anzeigeformat der 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:Format für die Wertzelle. Rückgabewert

Nein

15.6.9. ResizeWindow

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

Funktion ResizeWindow() Parameter

Diese Funktion hat keine Parameter. Rückgabewert

Kein

15.6.10. ResizeAllColumns

Ändert die Größe aller Spalten so, dass sie den Wert in der Zelle passen.

Funktion ResizeAllColumns() Parameter

Diese Funktion hat keine Parameter. Rückgabewert

Keine

15.6.11. Zeilen

Gibt die Anzahl der Zeilen in einem Raster an.

Funktion(NumberRows) Parameter

Zahlenzeilen:Anzahl der Zeilen im Netz.

Nr.Beschreibung
010 Zeilen (Standard)
120 Zeilen
250 Zeilen
3100 Zeilen
4Passt an Quantität

Rückgabewert

Kein

Leseergebnis

Verwenden Sie diese Eigenschaft, um zu überprüfen, ob die Kommunikation mit dem Lesevorgang erfolgreich hergestellt wurde.

Eigenschaft Lesergebnis Als Ganzzahl

Parameter

Diese Funktion hat keine Parameter.

Rückgabewert

ErrorDescription
0ErfolgSUCCESS
1Timeout-FehlerTIMEOUT ERROR
2CRC-FehlerCRC ERROR
3Antwortfehler (die Antwort ist nicht die erwartete Slave-ID, Funktionscode oder Adresse)RESPONSE ERROR (The response was not the expected slave id, function or address)
4SchreibfehlerWRITE ERROR
5LesefehlerREAD ERROR
6Port nicht geöffnetPORT NOT OPEN ERROR
10Daten nicht initialisiertDATA UNINITIALIZED
11Unzureichende Anzahl von Bytes empfangenINSUFFICIENT BYTES RECEIVED
16Fehler bei der Anzahl von BytesBYTE COUNT ERROR
19Fehler bei der Transaktions-IDTRANSACTION ID ERROR
81hUnzulässige FunktionILLEGAL FUNCTION
82hUnzulässige DatenadresseILLEGAL DATA ADDRESS
83hUngültiger DatenwertILLEGAL DATA VALUE
84hServergerät fehlschlägtSERVER DEVICE FAILURE
85hBestätigungACKNOWLEDGE
86hServergerät beschäftigtSERVER DEVICE BUSY
87hNAK-NEGATIVE ACKNOWLEDGMENTNAK-NEGATIVE ACKNOWLEDGMENT
8AhDer Gateway-Pfad ist nicht verfügbarGATEWAY PATH UNAVAILABLE
8BhDas Gateway-Zielgerät reagiert nichtGATEWAY TARGET DEVICE FAILED TO RESPOND
Diese Tabelle enthält die Fehlercodes und ihre Beschreibungen, die bei der Modbus-Kommunikation auftreten können, für die Fehlerdiagnose und das Statusfeedback.

Schreibergebnis

Verwenden Sie diese Funktion, um zu überprüfen, ob ein Schreibvorgang erfolgreich ist.
Der Wert ist Daten nicht initialisiert, bevor das Ergebnis vom Slave abgerufen wird. Lesen Sie Ergebnisse für eine Liste der möglichen Werte.

Attribut

Schreibergebnis As Ganzer Typ

Gibt den Wert
Das Ergebnis wird als Ganzes zurückgegeben.

Bewahrung

Speichern des aktuellen Fensters. Funktion speichern (Pfadname als Zeichenfolge) As Boolean

Parameter
Pfadname: Der vollqualifizierte Pfad der Datei sollte gespeichert werden.

Rückgabewert
Boolean Boolean

Beispiel

# 首先需要一个Modbus Poll文档。
Public doc As Object
Set doc = CreateObject("Mbpoll.Document")
res = doc.ReadCoils(1, 0, 100, 1000) # 每1000毫秒读取100个线圈
res = doc.Save("C:\Users\UserName\Desktop\testfile.mbp")    # 将文档保存到桌面的testfile.mbp文件

Automatische Dateneigenschaften

Die folgenden Eigenschaften werden verwendet, um Werte in einer internen Schreib - / Lesegruppe in Modbus Poll zu setzen oder abzurufen. Der verwendete Index ist nicht die Modbus-Adresse. Unabhängig von der verwendeten Adresse wird der Index immer ab 0 gezählt. Die Dateneigenschaften sind mit dem Modbus Poll-Dokument zugeordnet. (Datenfenster)

Jede Dateneigenschaft hat zwei Versionen:

Eine ohne Suffix, wie z. B. SRegisters, wird verwendet, um Werte aus internen Schreib - / Lesegruppen zu setzen oder abzurufen.

Einer mit einem Win-Suffix, wie z. B. SRegistersWin, wird verwendet, um Werte direkt aus dem Datenfenster zu setzen oder abzurufen. Dies wird verwendet, wenn Sie ein Datenfenster für Schreibvorgänge verwenden (z.B. WriteMultipleRegistersWin).

Beispiel 1:

# 假设首先创建了doc。参见Excel示例。
# 在用于稍后写操作的数据数组中,向索引0写入1
doc.SRegisters(0) = 1
doc.SRegisters(1) = 10
doc.SRegisters(2) = 1234
# 将存储在Modbus Poll内部数组的3个寄存器
# 写入Modbus地址100(40101)
# 不创建窗口
res = doc.WriteMultipleRegisters(1, 100, 3)
# 上述示例不创建数据窗口,只是执行单次Modbus写操作。

Beispiel 2, Fließkomma-Werte:
Schreiben Sie drei Gleitkomma-Werte.

# 假设首先创建了doc。参见Excel示例。
doc.Floats(0) = 1.3
doc.Floats(2) = 10.5
doc.Floats(4) = 1234.12
# 将6个寄存器写入Modbus Poll
res = doc.WriteMultipleRegisters(1, 0, 6)
# 写入6个寄存器,因为浮点数值是32位宽。

Beispiel 3:
Erstellt ein Fenster, das alle 1000ms drei Register schreibt.

# 假设首先创建了doc。参见Excel示例。
# 创建一个窗口,该窗口每1000ms写入内容
res = doc.WriteMultipleRegistersWin(1, 100, 3, 1000)
# 向数据窗口的第一个单元格写入1
doc.SRegistersWin(0) = 1
doc.SRegistersWin(1) = 10
doc.SRegistersWin(2) = 1234
# 现在每1000ms就将3个寄存器写入从站id 1地址100

In diesem Beispiel Code,doceine Instanz des Modbus Poll-Dokumentes, das verschiedene Modbus-Operationen wie das Schreiben von Registers ausführt. Das Beispiel zeigt, wie Sie ein internes Array direkt mit einer Eigenschaft ohneWin- Suffix manipulieren können und wie Sie einen Wert mit einem Datenfenster mit einer Eigenschaft mit demWin- Suffix manipulieren können.

Spule, CoilsWin

EigenschaftCoils(Index As Integer) As IntegerDescription

Sets a coil in the write array structure or return a coil from the read array.Syntax

Coils(Index) [= neu]

Kurze Integerregister, SRegistersWin

PropertySRegisters(Index As Integer) As IntegerDescription

Sets a register in the write array structure or return a register from the read array.Syntax

SRegisters(Index) [= neu]

Langes Integer-Register, URegistersWin

AttributURegisters(Index As Integer) As Long Beschreibung

Setzt ein Register in einer Schreibarray-Struktur oder gibt ein Register von einem Lesarray zurück. Syntax

URegisters(Index) [= neu]

32 - Bit-Integrat, Ints_32Win

AttributInts_32(Index As Integer) As Double Beschreibung

Legen Sie eine 32 - Bit-Ganzzahl in der Schreibarray-Struktur fest oder geben Sie eine Ganzzahl aus einem Lesetarray zurück. Syntax

Ints_32(Index) [= neu]

32 - Bit unsigniertes Ganzesystem, UInts_32Win

AttributUInts_32(index as integer) as double Beschreibung

Legen Sie eine 32 - Bit unsignierte Ganzzahl in der Schreibarray-Struktur fest oder geben Sie eine unsignierte Ganzzahl aus dem Lesetarray zurück. Syntax

UInts_32(Index) [= neuer Wert]

64 - Bit Integer, Ints_64Win

EigenschaftInts_64(Index As Integer) As Double Beschreibung

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

Ints_64(Index) [= neuer Wert]

64 - Bit unsigniertes Ganzesystem, 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 dem Lesearray zurück. Syntax

UInts_64(Index) [= neuer Wert]

Fließkommazahl, FloatsWin

Attributfloats(index als integer) als single Beschreibung

Legen Sie eine Fließkommazahl in einer Schreibarray-Struktur oder geben Sie eine Fließkommazahl aus einem Lesarray zurück. Syntax

FließkommaAnzahl (Index) [= neuer Wert]

Doppelgenauigkeit Fließkommazahl, DoubleWin

Attributdoubles(index as integer) als double Beschreibung

Legen Sie einen Doppelgenauigkeit Wert in der Schreibarray-Struktur fest oder geben Sie einen Doppelgenauigkeit Wert aus einem Lesearray zurück. Syntax

Doppel(Index) [= neu]

Byte-Sequenz

Eigenschaften ByteOrderAs Integer Beschreibung

legt die von den Attributen Ints_32, UInts_32, Ints_64, UInts_64, Floats und Doubles verwendeten Byte-Reihenfolge fest.
Win-Version nicht verwendenByteOrder

NummerByte-Sequenz
0Big-endian (Standard) Big-endian (Default)
1Small-endian Byte-Swap Little-endian byte swap
2Big-endian byte swap
3Small-endian

Ints_32 Beispiel:
Byte-Sequenz: Big-endian
Dezimalzahl 123456789 oder Hexadezimalzahl 07 5B CD15 Sortierung nach Linie
in einer Modbus-Nachricht: 5B CD15 Syntax

ByteOrder [= Neuer Wert]

15.8. Schreiben von Funktionen (Datenfenster erstellen)

Die folgenden Funktionen verhalten sich wie Sie im Dialogfeld Lesen / Schreiben Definitionen (F8) festgelegt haben.
Diese Funktionen erstellen ein Datenfenster und schreiben den Dateninhalt in dem Datenfenster basierend auf der Scanrate.

15.8.1. WriteSingleCoilwin

Modbus-Funktionscode 05.

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

SlaveID:von Adressen 1 bis 255
Adresse:Datenadresse (Kardinalität 0)
Scanrate:0 bis 3600000ms Rückgabewert

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

15.8.2. WriteSingleRegisterWin

Modbus Funktionscode 06.

Funktion WriteSingleRegisterWin(SlaveID As Integer, Adresse As Long, ScanRate As Long) Als Integer Argument

SlaveID:von Adressen 1 bis 255
Adresse:Datenadresse (Kardina 0)
Scanrate:0 bis 3600000msReturn value

True if success. False if not success

Python Beispiel, wie man ein Fenster öffnet und alle 1000 ms ein einzelnes Register schreibt

15.8.3. MultipleCoilsWin

Modbus-Funktioncode 15.

FunktionWriteMultipleCoilsWin(SlaveID ist ganzzahl, Adresse ist lang, Anzahl ist ganzzahl, ScanRate ist lang) ist ganzzahl Argument

SlaveID:von Adressen 1 bis 255
Adresse:Datenadresse (basiert auf 0)
Quantity:Datenmenge. 1 bis 1968
Scanrate:0 bis 3600000ms Rückgabewert

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

15.8.4. WriteMultipleRegistersWin

Modbus-Funktionscode 16.

Funktion WriteMultipleRegistersWin(SlaveID ist eine ganze Zahl, Adresse ist lang, Anzahl ist eine ganze Zahl, ScanRate ist lang) ist ein ganzer Parameter

SlaveID:von Adressen 1 bis 255
Adresse:Datenadresse (Basis 0)
Anzahl:Datenmenge. 1 bis 123
Scan-Rate:0 bis 3600000ms Rückgabewert

True, wenn Erfolg. Wenn nicht erfolgreich, ist falsch

16. Ausnahme - und Fehlermeldungen

Modbus-Ausnahme - und Fehlermeldungen werden in der ZeileOkay.

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung26

16.1. Modbus Ausnahmecode

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

GesetzbuchNameBedeutung
01Illegale FunktionDer Funktionscode, der in der Abfrage empfangen wurde, ist nicht vom Server (oder von der Slave Station) erlaubt. Dies kann daran liegen, dass der Funktionscode nur für neuere Geräte verfügbar ist und nicht in der ausgewählten Einheit implementiert ist. Es kann auch anzeigen, dass der Server (oder der Slave-Server) sich in einem Fehlerzustand befindet, um solche Anfragen 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 zugelassenen Adressen des Servers. Genauer gesagt ist die Kombination von Referenznummern und Übertragungslänge ungültig. Bei einem Controller mit 100 Registern adressiert die PDU das erste Register mit 0 und das letzte Register mit 99. Wenn die gesendete Anforderung mit der Start-Register - Adresse 96 beginnt und die Anzahl der Register 4 beträgt, wird diese Anforderung erfolgreich in den Registern 96, 97, 98, 99 ausgeführt (zumindest in Bezug auf die Adresse). Wenn die Anforderung mit der Start-Register - Adresse 96 und der Anzahl der Register 5 gesendet wird, schlägt die Anforderung mit Ausnahmecode 0x02 "Ungültige Datenadresse" fehl, da sie versucht, auf den Registeren 96, 97, 98, 99 und 100 auszuführen und kein Register mit der Adresse 100 hat.
03Unzulässiger DatenwertDer Wert im Abfrage-Datenfeld ist kein zulässiger Wert für den Server (oder Slave). Dies bedeutet, dass der Rest der komplexen Anforderung falsch strukturiert ist, z. B. eine falsche implizite Länge. Insbesondere bedeutet dies nicht, dass ein in einem Register gespeichertes Datenelement 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.
04Server-GerätenausfallBei dem Versuch des Servers (oder des Sekundärgeräts) ist ein nicht wiederherstellbarer Fehler aufgetreten, die angeforderte Aktion auszuführen.
05Anerkennungwird speziell in Verbindung mit Programmierbefehlen verwendet.
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 Master) zu verhindern. Der Client (oder der Master-Client) kann dann eine "Polling-Process - Abschluss" - Meldung senden, um festzustellen, ob die Verarbeitung abgeschlossen ist.
06Servergerät beschäftigtSpeziell in Verbindung mit Programmierbefehlen verwendet.
Der Server (oder ein Slave-Server) verarbeitet einen langen Programmbefehl. Der Client (oder der Master-Server) sollte die Nachricht später erneut übertragen, wenn der Server (oder der Slave-Station) frei ist.
0 AmpereGateway-Pfad nicht verfügbarIn Kombination mit einem Gateway wird angegeben, dass das Gateway keinen internen Kommunikationspfad vom Eingangs - zum Ausgangsschnitt für die Verarbeitung von Anfragen zuweisen kann. In der Regel gibt es eine fehlerhafte oder überlastete Gateway-Konfiguration an.
0bDas Zielgerät des Gateways kann nicht aufIn Kombination mit einem Gateway bedeutet dies, dass keine Antwort vom Zielgerät erhalten wurde. Normalerweise bedeutet das Gerät, dass es nicht im Netz ist.

16.2. Modbus Poll 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-ID - Antwortzeitüberschreiten TCP / IP-Verbindungs - Antwortzeitüberschreiten Überprüfen, ob Host und Port mit Slave-Station übereinstimmen
AntwortfehlerDie Antwort war nicht erwartet. Unterschiedliche Abhängige 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 entziehen. Es gibt 4 Arten: BruchbedingungE / A-FehlerSeriellverbindungsfehlerAusgabepufferüberflutungSchreibfehler mit TCP / IP-Verbindungen werden normalerweise durch Verlust der Verbindung verursacht.
LesefehlerDies ist ein Fehler, der vom seriellen Treiber gemeldet wird. Es gibt 6 Arten: Bühnenfehler Zeichenpuffer Überschwemmung Paritätsfehler Eingabepuffer Überschwemmung I / A-Fehler Unterbrechung Bedingungen Lesfehler bei TCP / IP-Verbindungen werden normalerweise durch Verbindungsverlust verursacht.
Unzureichende Anzahl von Bytes empfangenDie Antwort ist nicht der erwarteten Länge.
Fehler bei der ByteszählungDie Byteszählung in der Antwort ist 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.

Kleine Version, kostenlos!!

Modbus Poll Benutzerhandbuch und Software herunterladenAbbildung
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 und Software herunterladen” 》 有 141 条评论

Antwort veröffentlichen

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