Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)

kostenlosKostenloses technisches Material

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

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)

Witte Software ® https://www.modbustools.com

2023-08-01

1. Modbus Poll

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

  • Modbus ermöglicht das schnelle und einfache Testen von Protokollschnittstellen von Gerätedesignern
  • Automatisierungstechniker, die Modbus-Geräte oder Netzwerke vor Ort testen müssen
  • Service-Ingenieure, die bestimmte Service-Daten von einem Gerät lesen und / oder ändern möchten
  • Ändern des Modbus-Registers in einem Gerät
  • Protokolldaten von Modbus-Geräten
  • Fehlerbehebung und Compliance-Tests

Modbus-Polling Systemanforderungen

Hardwareanforderungen

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

Unterstützt alle Windows-Versionen von Windows 7 bis Windows 11.
Modbus Poll Version 7 läuft unter Windows XP.

1.1.1. Stille Installation

Stille Installation erfordert keine Benutzerintervention und keine Benutzeroberfläche. Der Benutzer sieht kein Dialogfeld und wird keine Fragen gestellt.
Verwenden Sie den Befehlszeilen-Schalter / S.

1.2. 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 beenden.

Urheberrecht.
Modbus Poll ("Software") Copyright 2002 - 2023, Eigentum von Witte Software, alle Rechte vorbehalten.

Bewertung und Registrierung.
Das ist keine freie Software. Sie erhalten hiermit die Lizenz, die Software für 30 Tage kostenlos zu nutzen.

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

Die nicht registrierte Nutzung der Software nach einem 30 - tägigen Testzeitraum verstößt gegen US-amerikanische und internationale Urheberrechtsgesetze.

Eine registrierte Kopie der Software kann von einer Person verwendet werden, die die Software persönlich auf einem oder mehreren Computern verwendet, oder auf einem von mehreren Personen verwendeten Computer installiert werden, jedoch nicht auf beiden Computern gleichzeitig.

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 Hauptversion erworben haben und die Lizenzvereinbarung eingehalten haben, können Sie diese Version dauerhaft ohne zusätzliche Kosten nutzen.

Verteilung.
Wenn Sie Ihren Lizenzschlüssel nicht enthalten, sind Sie berechtigt, die Software zu kopieren; eine exakte Kopie des Originals an jeden zu liefern; und die unveränderte Software elektronisch zu verteilen. Es ist Ihnen insbesondere untersagt, Gebühren für eine solche Kopie zu erheben.

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

Schadensersatzbeschränkungen.
WITTE SOFTWARE oder alle an der Erstellung, Produktion oder Lieferung der Software beteiligten Personen haften nicht für indirekte, Folgeschäden oder Nebenschäden, die durch die Nutzung oder Unfähigkeit der 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 Art 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. Der Nutzer der Software übernimmt alle Risiken, die mit der Qualität und Leistung der Software verbunden sind.

2. Modbus-Funktion

2.1. Verbindung

Modbus Polls Lesen / Schreiben von Daten von einem Gerät:

  • Modbus RTU oder ASCII in einem RS232 - oder RS485 - Netzwerk. (USB/ RS232 / 485 - Konverter)
  • Modbus TCP/IP
  • Modbus über TCP / IP. (Modbus RTU / ASCII in TCP-Paketen eingeschlossen)
  • Protokoll UDP / IP
  • Modbus basierend auf UDP / IP. 2.2. (Modbus RTU / ASCII in einem UDP-Paket eingeschlossen)

Unterstützte Modbus-Funktion

  • 01 (0x01) Lesenspule
  • 02 (0x02) Diskreter Eingang gelesen
  • 03 (0x03) Lesen des Hold-Registers
  • 04 (0x04) Eingangsregister gelesen
  • 05 (0x05) Schreiben einer einzelnen Spule
  • 06 (0x06) Schreiben eines einzelnen Registers
  • 08 (0x08) Diagnose (nur serielle Kabel)
  • 11 (0x0B) Abrufen des Zählers für Kommunikationsereignisse (nur serielle Kabel)
  • 15 (0x0F) Schreiben in mehrere Spule
  • 16 (0x10) Schreiben mehrerer Registers
  • 17 (0x11) Meldung der Server-ID (nur serielle Leitung)
  • 22 (0x16) Masken Schreibregister
  • 23 (0x17) Lesen / Schreiben mehrerer Registers
  • 43 / 14 (0x2B / 0x0E) Lesen der Gerätekennzeichnung

2.3. Datenaufzeichnung

  • Datenaufzeichnung in einer Textdatei
  • Datenaufzeichnung direkt in Excel

2.4. Format zeigen

Jede Zelle kann individuell formatiert werden.

  • Signiertes 16 - Bit-Register
  • Unsigniertes 16 - Bit-Register
  • Hexadezimal
  • Binär
  • 32 - Bit-Signierte Ganzzahl in beliebiger Wort / Byte-Reihenfolge
  • 32 - Bit-Ungekennzeichnete Ganzzahl in beliebiger Wort / Byte-Reihenfolge
  • 64 - Bit-signierte Ganzzahzahl in beliebiger Wort / Byte-Reihenfolge
  • 64 - Bit-unsignierte Ganzzahzahl in beliebiger Wort / Byte-Reihenfolge
  • 32 - Bit-Floatkommazahlen in beliebiger Wort / Byte-Reihenfolge
  • 64 - Bit-Doppelkommazahlen in beliebiger Wort / Byte-Reihenfolge

2.5. Zusätzliche Funktionen

  • für OLE / Automatisierung in Verbindung mit Excel VBA, Python usw.
  • Datenverkehrsüberwachung
  • Drucken und Druckvorschau
  • Schriftartenauswahl
  • Konditionierte Farbe
  • Skalierung
  • Live-Diagramm
  • Arbeitsbereich speichern / öffnen
  • Adress-Scan

3.Übersicht

Modbus Poll verwendet eine Multi-Document - Schnittstelle. Das bedeutet, dass mehrere Fenster geöffnet werden. Jeder hat gleichzeitig unterschiedliche Dateninhalte von unterschiedlichen Slaven.

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung

Das Foto zeigt zwei geöffnete Fenster. Einmal 10 Halterregister von Slave-ID1 gelesen und ein weiteres Mal 10 Halterregister von Slave-ID2.

3.1. Hilfe überall und jederzeit

Drücken Sie F1, um kontextbezogene Hilfe zu einem Thema zu erhalten, das sich auf das aktuell ausgewählte Projekt bezieht.

SHIFT + F1Aufrufen Sie einen speziellen "Hilfe-Modus", in dem der Cursor zu einem Hilfe-Cursor 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.

3.2. Benannte Zelle

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

3.3. Wert Zelle

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

Das Kontrollkästchen "Dialogfeld bei erfolgreicher Antwort schließen" 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.

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung1

3.4. Schrift ändern

Um die Schriftart zu ändern, haben Sie 2 Optionen

  • Wählen Sie die Zelle, die Sie ändern möchten, und klicken Sie mit der rechten Maustaste.
  • Wählen Sie die Zelle aus, die Sie ändern möchten, und dann Menü → Anzeige → Schrift.
Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung2

3.5. Bedingung Farbe

Bedingte Farben helfen Ihnen, Werte in einem bestimmten Bereich visuell anzuzeigen. 3 Farben Auswahl

  • Standardfarbe: Diese Farbe wird verwendet, wenn keine der bedingten Farbberechnungen wahr sind.
  • Regel 1: Wenn der Ausdruck true ausgewertet wird, wird diese Farbauswahl verwendet. Regel 1 hat Vorrang vor Regel 2
  • Regel 2: Wenn der Ausdruck true ausgewertet wird, wird diese Farbauswahl verwendet.

7 Vergleichsoperator

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

Wenn der Datentyp float oder 32 - bit long ist, können Sie den Operator "und" nicht verwenden. Wenn Sie "und" auswählen, wird der Bedingungswert als Hexadezimalzahl eingegeben. Wenn ein beliebiges Bit in der Zelle und in den bedingten Werten 1 ist, wird das Ergebnis wahr.

3.5.1. Farbenbeispiele

Wenn der Zellwert zwischen 398 und 402 liegt, ist es grün

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung3

3.6. Skalierung

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

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung4

(X1, Y1) und (X2, Y2)

Gerade Linie durch die zwei Punkte (X1, Y1) und (X2, Y2)

Slope = m = Y2 − Y1X2 − X1

Gerade Linie Gleichung

Y = m ⋅ (X − X1) + Y1

Anzahl der Stellen nach dem Dezimalpunkt. Enable

Es muss aktiviert sein, um Werte von Modbus-Servern / Slaves zu skalieren. Wenn Sie ein anderes Format als das 16 / 32 - Bit-Ganzzahlanzeigeformat auswählen, wird das Skalieren automatisch deaktiviert.

3.7. Echtzeit-Charts

Das Diagramm kann in Echtzeit in 12 Serien mit bis zu 100.000 Punkten pro Reihe gezeichnet werden.

3.8. Adresse scannen

Scannen Sie den Adressbereich, um eine Liste aller gültigen Adressen auf Ihrem Gerät zu erhalten.

3.9.Öffnen eines neuen Fensters

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

  • Drücken Sie CTRL + N
  • Wählen Sie im Datei-Menü
  • 按Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung5auf der Symbolleiste Neues aus

4. Verbindung Dialogfeld

Um das Dialogfeld Verbindungen zu öffnen, haben Sie 2 Optionen:

  • Drücken Sie F3
  • Wählen Sie Verbindungen
Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung6

4.1. Kontakt

Es gibt 5 verschiedene Verbindungsarten:

  1. Serial:
    Modbus über serielle Leitungen. RS232 oder RS485 Es kann ein USB-Serial - Wandler verwendet werden.
  2. Modbus TCP / IP:
    Wählen Sie TCP / IP, um mit einem MODBUS-TCP / IP - Netzwerk zu kommunizieren. In diesem Fall ist die Slave-Station - ID identisch mit der in MODBUS TCP / IP verwendeten Einheit-ID.
    Die Portnummer ist standardmäßig 502.
    Wenn die Verbindung fehlschlägt, versuchen Sie, ob Sie in der Eingabeaufforderung auf Ihr Gerät ping können. Wenn der Befehl ping fehlschlägt, schlägt auch die Modbus-Abfrage fehl.
  3. Modbus UDP / IP:
    Wählen Sie UDP / IP, wenn Sie mit einem MODBUS-UDP / IP - Netzwerk kommunizieren möchten. Dies ist das gleiche wie Modbus TCP / IP, aber das Verbindungslose UDP-Protokoll verwendet.
  4. Modbus RTU / ASCII über TCP / IP:
    Dies ist eine RTU - oder ASCII-Nachricht, die über ein TCP / IP-Netzwerk und nicht ü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.
Verbindungstypen 3 - 5 sind nicht die von www.modbus.organgegebenen Standardmodbus, sie wurden jedoch aus Bequemlichkeit hinzugefügt.

Je nach Ihrer Wahl werden einige weitere Einstellungen grau.

4.2. Serien einrichten

Verwenden Sie diese Parameter, um die Serielle Port-Einstellungen zu setzen. Nur wenn der Verbindungstyp „Serial Port" ist"Sie sind dann nutzbar. Modell

Verwenden Sie diese Option, um denRTU或ASCII- Modus auszuwählen. 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 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 beträgt ca. 15 ms. 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 Zeitabstand von 3,5 Zeichen zwischen der Antwort und einer neuen Anforderung nicht garantiert. Dies liegt daran, dass der Windows-Terminator alle 10 - 20 Millisekunden die Aufgabe wechselt. Wenn Sie mehrere Slaves in einem seriellen RS485 - Netzwerk abfragen, sollten Sie diesen Wert nicht auf weniger als 20 ms festlegen. Dies ist, um eine Zeitlücke von 3,5 Zeichen zu gewährleisten. In einem TCP / IP-Netzwerk reicht es weniger als 20 Millisekunden. Eine serielle Verbindung mit nur einem Slave-Gerät sollte weniger als 20 ms dauern.

Benutzerbaudate

Wenn keine der Standardbaudate funktioniert, geben Sie eine benutzerdefinierte Baudate an.

4.3. 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 lokale Host-Port 127.0.0.1

Serverportnummer. Standard 502 Connection Timeout

Die maximale Zeit, die für die Herstellung einer Verbindung verwendet wird. Standardmäßig 1000

4.4. Erweiterte Einstellungen

Sofortige strategische Umschaltung

RTS-Umschaltung gibt an, dass die RTS-Leitung hoch ist, wenn die Bytes für die Übertragung verfügbar sind. Nachdem alle Pufferbyte gesendet wurden, wird die RTS-Leitung niedrig.
Wenn Ihr 232 / 485 - Wandler keinen automatischen Richtungsschalter hat, 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, die genaue Zeit zu bestimmen, zu der der Sender ausgeschaltet wird. Wenn Sie zu früh schließen, befinden sich die Zeichen möglicherweise immer noch im Sendenregister von FIFO oder UART und gehen sie verloren. Das Gerät kann diese Nachricht nicht erkennen. Auf der anderen Seite, wenn es zu spät ausgeschaltet wird, wird die Nachricht des Slaves beschädigt und das Master-Gerät wird die Nachricht nicht erkennen können.

DigitalSR

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

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

DTR gibt an, ob DTR jedes Mal aktiviert oder deaktiviert wird, wenn der Port geöffnet ist. Echo beseitigt

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

5. Lesen / Schreiben Definition

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

Um das Lese - / Schreib-Definitionsdialog zu öffnen, haben Sie 3 Möglichkeiten:

  • Drücken Sie F8
  • Wählen Sie
  • 按Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung7In der Toolbar.
Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung8

5.1. Die von der Maschinen-ID

Bereich 1 bis 255. (Die Modbus-Spezifikation lautet 247). Der Wert 0 kann auch direkt mit MODBUS / TCP oder MODBUS / UDP-Geräten kommuniziert werden.

5.2. Funktionscode

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

5.2.1. Lesen Funktion

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

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

5.2.2. Schreiben von Funktionen

Die Schreibfunktion schreibt die 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 (Writes to Coils)
  • 16: Schreiben mehrerer Registers (Writes to Holding registers)

5.3. Adresse

Die Adressen im Modbus-Protokoll sind verwirrt! Einige Protokollspezifikationen verwenden Protokoll - / Nachrichtenadressen, während andere Geräteadressen verwenden.

5.3.1. Vereinbarung / Nachricht Adresse

Einige Protokollspezifikationen verwenden eine von 0 bis 65535 gezählte Protokoll - / Nachrichtenadresse sowie einen Funktionscode. Dies wird auch in der neuen Modbus-Spezifikation verwendet. Dies ist die Adresse in einer Nachricht, die über die Linie 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" bedeutet, dass das Hold-Register und das 4x-Register von 1 abzählen. Noch verwirrender ist: 4x steht für den Funktionscode 03, 3x steht für den Funktionscode 04!

5.3.3. 5 und 6 Adressen

Adressformat 4x Zählung von 40001 bis 49999. Die nächste Adresse lautet 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 die Frage der Modbus-Umfrage. 410001 wird zu 10.000. Die „4" wird verworfen und 10001 verbleibt minus 1, da wir mit 0 statt 1 zählen.

5.3.4. Beispiel für Adresse

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

Lesen des Hold-Registers

Sie möchten 20 Register in der Gerätadresse 40011 alle 1000ms von der Slave-ID2 lesen. Von "4" wissen wir, dass dies die Funktion 03 "Lesen halten Register".

  • Slave-ID = 2
  • Funktion = "03 Read Hold Register (4x)"
  • Adresse = 10 (11 minus 1)
  • Anzahl = 20
  • Scanrate = 1000
Diskreten Eingang lesen

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

  • Slave-ID = 5
  • Funktion = "02 Lesen diskreter Eingabe (1x)"
  • Adresse = 10200 (10201 - 1)
  • Anzahl = 1000
  • Scanrate = 500

5,4. Scan-Rate

Die Scan-Rate kann auf 0 bis 3600000ms eingestellt werden. Beachten Sie, dass es sinnlos ist, die Scan-Rate auf niedriger als die Transaktionszeit einzustellen. Wenn Sie eine serielle Verbindung mit einer 9600 - Baud-Rate verwenden und 125 Register anfordern, beträgt die Transaktionszeit ungefähr 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 100ms einzustellen, da die Transaktionszeit mindestens 262ms + die minimale Zeit zwischen der Verzögerung der Slave-Station (Lap) + dem Polling beträgt. (Einstellungen im Verbindungsdialogfeld F3).

5.5. Lesen / Schreiben verboten

Das Kontrollkästchen Lesen / Schreiben deaktiviert kann verwendet werden, um die Kommunikation für dieses Fenster vorübergehend zu aktivieren oder zu deaktivieren. Dann wird der Text (deaktiviert) sowie der Tx - und Fehlerzähler angezeigt.

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung9
Wenn "Lesen / Schreiben" deaktiviert ist, können Sie die Taste "Einmal lesen / schreiben" verwenden oder F6 drücken, um eine einzelne Anfrage auszuführen.

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung10
Schaltfläche „Einmal lesen / schreiben"

5.5.1. Verboten bei Fehlern

Lesen / Schreiben ist bei Fehlern deaktiviert.

5.6. Verstecken Sie den Namen

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

5.7. Adresse in der Zelle

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

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung11

5.8. SPS-Adresse (Basis-Adresse1)

Diese Option zeigt die Adresse als Gerätadresse an.

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung12

5.9. von Enron / Daniel Maud

Der 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 von Herstellern definierte benutzerdefinierte 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 / geschrieben werden.

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

  • wird davon ausgegangen, dass 4x5001 bis 4x5999 32 - Bit-große Ganzzahlen (4 Byte pro Register) sind.
  • Nehmen wir an, dass 4x7001 bis 4x7999 32 - Bit-Fließkomma - Zahlen sind (4 Bytes pro Register).

Die Verarbeitung von 32 - Bit-Werten in Modbus ist nicht exklusiv 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 die Abfrage der Register 4x5001 und 4x5002 in Enron-Modbus 8 Bytes oder zwei 32 - Bit-Ganzzahlen zurückgibt, während der Standard-Modbus nur 4 Bytes oder eine 32 - Bit-Ganzzahlen zurückgibt (als zwei 16 - Bit-Ganzzahlen betrachtet). Darüber hinaus gibt das Polling-Register 4x5010 in Enron-MB die zehnte 32 - Bit lange Ganzzahl zurück, während Standardmodbus die Hälfte der fünften 32 - Bit langen Ganzzahl in diesem Bereich berücksichtigt.

5.10. Anzahl der Zeilen

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

6. Echtzeit-Charts

Verwenden Sie diesen Befehl, um bis zu 12 Datenreihen in Echtzeit in einem Diagramm zu zeichnen.
Die Echtzeit-Charts sind schnell und können neue Linien zeichnen, sobald neue Daten erhalten sind.

Alle Diagrammeinstellungen werden mit dem Arbeitsbereich gespeichert.Arbeitsbereich speichern / öffnen

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

  • Drücken Sie Alt + R
  • Wählen Sie "Live-Diagramm" aus dem Anzeigenmenü
Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung13

Die X-Achse zeigt die Anzahl der Sekunden seit dem Start des Diagramms an.

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

  • Stoppt am Ende:Die Karte stoppt.
  • Neustart am Ende:Das Diagramm wird neu gestartet.
  • Fortfahren: Fortfahren,Bis die maximale Punktzahl erreicht ist oder der Stopp-Button gedrückt wird.

6.1. Einrichtung

Standardmäßig sind alle 12 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
  • Rechts Y-Achse
  • Überschrift. Wenn der Titel leer ist, wird mit dem Namen im Lesenfenster initialisiert
  • Ausgleich

Anzeige

  • Dateiname
  • Adresse

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

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung14

6.2. 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 vor dem Panorama - und Zoomvorgang).

6.3.Übersetzungsfunktion

Um ein Steuerelement zu verschieben, 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.

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

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung15

6.5. Export-Serie

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 ein Zeichen aus, das Werte in einer Textdatei trennt. Verwenden Sie Tab-Trennzeichen beim Kopieren / Einfügen in Excel. Darüber hinaus wurden einige zusätzliche Informationen geliefert.

  • Punkte
  • Maximale Punktzahl
  • Minimale Punktzahl
  • Durchschnittswert
Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung16

7. 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 Ergebnis wird in einer Liste angezeigt.

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

7.1. Exportieren von Adressen Scannen

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.
Trotz der Verwendung von nicht-Komma - Feldtrennzeichen hat die Datei die Erweiterung .csv.

Trennzeichen:Wählen Sie die Zeichen aus, die die Werte in der Textdatei trennen. Verwenden Sie Tab-Trennzeichen beim Kopieren / Einfügen in Excel.

8. Format zeigen

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

8.1. Modbus-Register

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

  • 签
  • Unsigniert
  • Hexadecimal
  • ASCII - Hexadecimal
  • Binärsystem

8.2 32 - Bit-signierte Ganzzahl

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

  • Symbolische Ganzzahl große Mastanzahl
  • Symbolische Ganzzahl kleine Mastanzahl
  • Symbolische Ganzzahl große Byte-Austausch
  • Symbolische Ganzzahl kleine Byte-Austausch Beispiel Byte-Reihenfolge:AB CD (Großes)
    Dezimalzahl 123456789 oder Hexadezimalzahl07 5B CD15
    Reihenfolge der Übertragung über die Linie in einer Modbus-Nachricht:07 5B CD15

8.3. 32 - Bit unsignierte Ganzzahl

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

  • Große Zahl ohne Zeichen
  • unsignierte ganze Zahl kleine Mantissa
  • unsignierte Ganzzahl Big-endian Byte-Switch
  • unsignierte Ganzzahl Small-End - Byte-Switch Beispiel Byte-Reihenfolge:AB CD (Big-End)
    Dezimal 123456789 oder Hexadezimal07 5B CD15
    Reihenfolge, die in einer Modbus-Nachricht über eine Linie übertragen wird:07 5B CD 15

8,4 64 Bits mit ganzer Zeichenzahl

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

  • Es gibt eine große Zahl von Symbolen.
  • Symbolische Ganzzahl kleine Mastanzahl
  • Symbolische Ganzzahl große Byte-Austausch
  • Symbolische Ganzzahl kleine Byte-Austausch Beispiel Byte-Reihenfolge:AB CD EF GH (Größeres Ende)
    Dezimalzahl - 1,234,567,890,123,456,789 oder HexadezimalzahlEE DD EF0B82 16 7E EB
    Leitungsreihenfolge in der Modbus-Nachricht:EE DD EF0B82 16 7E EB

8.5. 64 - Bit unsignierte Ganzzahl

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

  • unsignierte Ganzzahl Große Mantissa
  • unsignierte Ganzzahl Kleine Mantissa
  • unsignierte Ganzzahl Big-endian Byte-Austausch
  • unsignierte Ganzzahl Kleine Byte-Austausch Beispiel Byte-Reihenfolge:AB CD EF GH (Größeres Ende)
    Dezimalzahl 1,234,567,890,123,456,789 oder Hexadezimalzahl11 22 10F4
    7D E9 81 15 Leitungsreihenfolge in Modbus-Nachrichten:11 22 10F4 7D E9 81 15

8.6. 32 - Bit Fließkomma

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

  • Große Zahl schwimmen.
  • Kleine Schwimmbunkte Zahl
  • Fließkomma-Big - End-Byte - Austausch
  • Fließkomma-Klein - End-Byte - Austausch Beispiel-Byte - Reihenfolge:AB CD (Big - End)
    Fließkomma-Zahl 123456.00 oder Hexadezimal47F1 20 00
    Linienreihenfolge in Modbus-Nachrichten:47 F1 2 0 00

8.7. 64 Doppel

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

  • Doppel-Large - Mantissa
  • Doppel-Klein - End
  • Doppel-Large - End-Byte - Austausch
  • Doppel-Klein - End-Byte - Austausch Beispiel-Byte - Reihenfolge:AB CD EF GH (Large - End)
    Fließkommazahl 123456789.00 oder Hexadezimalzahl41 9D6F34 54 00 00 00
    Linienreihenfolge in der Modbus-Nachricht:41 9D6F34 54 00 00 00

9. Speichern / Öffnen des Arbeitsbereichs

Wenn Sie viele verwandte Modbus-Fenster öffnen, können Sie bequem einen Snapshot des aktuellen Layouts aller geöffneten und angeordneten Modbus-Fenster in einem Arbeitsbereich 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 dazu zu "Datei" → "Arbeitsbereich speichern".

Verbindungs - und Diagrammeinstellungen werden in Arbeitsbereichsdateien gespeichert.

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

10. Exportieren als CSV

Exportiert 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 "
  • Semikolon-getrennte Wertdatei (*. csv)
    " Temperature ";" 19.7 "
  • Tab-getrennte Wertdatei (*. txt)
    Temperatur 19.7

Je nach System verwenden Sie Kommas oder Punkte, um Dezimalzahlen zu trennen.

11. Exportieren zu Modbus Slave

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

Modbus Slave Version 7.4.0 oder höher ist erforderlich, um diese Datei zu öffnen.

12. Das Testzentrum

Dieses Testdialogfeld soll den Entwicklern von MODBUS-Slaven beim Testen von Geräten mit beliebigen von ihnen erstellten Zeichenfolgen helfen.
Das Listenfeld zeigt die gesendeten Daten und empfangenen Daten an.
Im Dropdown-Listefeld können mehrere Testzeichenfolgen enthalten sein. Nachdem Sie eine Zeichenfolge eingegeben haben, drücken Sie die Schaltfläche "zu Liste hinzufügen", und die Zeichenfolge wird der Liste hinzugefügt.
Wenn Sie die Schaltfläche "Senden" drücken, wird die ausgewählte Zeichenfolge gesendet.Öffnen Sie die Liste

Wiederherstellen der Testzeichenfolge aus der Datei. Speicherliste

Speichert die Testzeichenfolge in einer Datei. Clear

Löscht die Testliste. Zu Liste hinzufügen

Fügt die aktuelle Testzeichenfolge der Liste hinzu. Add Checks

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

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

12.1。AS C II - Be isp iele

Zeichenkette im Kombifeld: 3A 30 31 30 33 30 30 30 30 30 30 41

Zeichenkette, die beim Hinzufügen von LRC übertragen wird3A 30 31 30 33 30 30 30 30 30 41 46 32 0D 0A

Auch CR LF-Paare hinzugefügt.

12.2. TCP / IP Beispiel

Lest 10 Aufbewahrungsregister. 00 00 00 00 00 00 06 01 03 00 00 0A

Die ersten sechs Bytes sind TCP / IP-Header.

12.3。Test center Str ing - D atei

Mit einem Notepad oder einem ähnlichen Texteditor können Sie die Zeichenfolgen vorbereiten, die Sie in Ihrem Test verwenden möchten.
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.

12.3.1. Inhalt der Stringliste

Testcenter 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 30 30 30 30 30 30 41

12.4. Kopieren

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

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

13. Modbus-Datenaufzeichnung

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

13.1. Text-Dokument

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 im Einstellungsmenü den Befehl Abmelden aus.

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung17

13.1.1. Rekordrate

Pro Lesen

Schreibe eine Protokollzeile für alle Modbus-Anfragen. Die Frequenz wird als Scanrate aufgezeichnet. Auswahl

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

Wenn beispielsweise die Scanrate 10000 Millisekunden beträgt, ist es sinnlos, die Aufzeichnungsrate auf 1 Sekunde einzurichten, da die Daten nur aufgezeichnet werden, wenn neue Daten bereit sind.

13.1.2. Trennzeichen

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

bedeutet, dass die Werte nach Spalten organisiert werden. Komma

Werte werden durch Kommas getrennt. Die Werte des Tags

Die Werte werden durch Tabler getrennt.

13.1.3。Er fasst nur , wenn sich die Daten ändern .

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

13.1.4。Auf zeichnung Fehler

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

13.1.5。Dat ums ver zeich nis

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

13.1.6。Ver w enden Sie " T " als Tr enn zei chen

Die angegebenen Zeit und Datum werden durch den Buchstaben "T" getrennt, wie in ISO 8601 angegeben ist.

13.1.7。Auf zeichnung Mill isek unden

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

13.1.8。Journal Ad resse

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

13.1.9。Start der Auf nahme nach " OK " dr ücken

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

13.1.10。* MB P startet beim Ö ff nen des Protokoll s

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

13.1.11。So fort in das Arch iv

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

13.1.12。Zus ätz lich

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

13.1.13。Mit terna cht Ne ues Protokoll

Schließen Sie die aktuelle Protokolldatei und starten Sie um Mitternacht eine neue Datei. Der Zeitstempel wird zu Ihrem Dateinamen hinzugefügt.

13.1.14。Über sch rift Informationen

  • Einfügen von Überschriften:Informationen werden oben in die Protokolldatei eingefügt.
    • Namezelle in der oberen Zeile:Einfügen Sie einen Namen ein.
    • Abstimmungsdefinition:Einfügen von IDs, 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 0

Sie können Daten aus einer Excel-Tabelle importieren.

13.2. 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 beschränkt. Jedes Modbus-Fenster wird in seinem eigenen Excel-Arbeitsblatt aufgezeichnet.

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

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

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung18

13.2.1. Rekordrate

  • pro Lesen:Schreibt eine Protokollzeile für alle Modbus-Anfragen. Die Frequenz wird als Scanrate aufgezeichnet.
  • Wählen Sie:Geben Sie die Protokollrate in Sekunden an. Das Protokoll hat nichts mit der Scanrate zu tun.
    Hinweis:Wenn die Scanrate 10000ms beträgt, ist es sinnlos, die Aufzeichnungsrate auf 1 Sekunde zu setzen, da die Daten nur aufgezeichnet werden, wenn neue Daten bereit sind.
  • Stoppzeit: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.

13.2.2.Überschrift Informationen

  • Einfügen Sie den Titel ein:Die Informationen werden in die oberen 3 Zeilen des Excel-Arbeitsblattes eingefügt.
    • Zellnamen in der oberen Zeile:Fügen Sie den Namen in Zeile 3 ein.
    • Abstimmungsdefinition:Fügen Sie in Zeile 2 ID, Funktion usw. ein.
    • Name:Fügen Sie den Namen des Protokolls in Zeile 1 ein.
Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung19

Excel-Protokoll mit Überschriftinformationen.

14. Kommunikationsfluss

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 Kopie-Schaltfläche, um die ausgewählte Zeile in die Zwischentafel zu kopieren.

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

15. 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 Automatisierungs-Client ist eine Anwendung, die öffentliche Objekte, die einer anderen Anwendung gehören, manipulieren kann. Dies wird auch als Automatisierungsteuerung bezeichnet.

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

Das bedeutet, dass Sie Modbus-Daten entsprechend Ihren spezifischen Anforderungen interpretieren und anzeigen können, indem Sie jedes Programm verwenden, das VBA (Visual Basic for Applications) unterstützt (z. B. Visual Basic, Excel usw.).

15.1. Excel Beispiel

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

15.1.1. Excel 2007

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung20
  1. 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-Registerkarte im Band anzeigen".
    Beachten Sie, dass das Band Teil der Microsoft Fluent-Benutzeroberfläche ist.

15.1.2. Excel 2010 und 2016

  1. Klicken Sie auf die Registerkarte Datei.
  2. Klicken Sie auf die Optionen. Das Excel-Optionenfenster wird geöffnet.
  3. Klicken Sie im linken Bereich auf „Anpassbares Ribbon".
  4. Aktivieren Sie im rechten Bereich unter der Registerkarte "Haupt" das Kontrollkästchen "Entwickler".
  5. Klicken Sie auf "OK". Die Registerkarte „Entwickler" sollte nun im Leibband angezeigt werden (die Registerkarte rechts).

15.1.3。Excel - Be ispi el code

In diesem Beispiel werden zwei Fenster geöffnet. Ein Lesegister, ein anderes Lesegister.
Die Modbus-Abfrage ist versteckt, aber Sie können sie anzeigen, indem Sie die Zeile "ShowWindow" dekommentieren. Dadurch wird eines der Fenster angezeigt.

Ein Beispiel ist auch in der Modbus-Polling - Installation enthalten.
Start → Alle Programme → Modbus-Abfrage → Excel-BeispielExcel 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

15.2. 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()

result = Win1.Save("C:UsersUserNameDesktoptestfile.mbp")
print (result)

print (Win1.GetName(1))

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

15.3. Verbindungsfunktionen / Eigenschaften

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

15.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

15.3.2. Baudrate

Nur für Verbindungen = 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

15.3.3. Das Datenbit

ist nur für die Verbindung = 0

EigenschaftDataBitsals Ganzzahl gültiger Wert

7
8 (Standard)
Beispiel

DataBits = 8

15.3.4 verfügbar. Gleichwertigkeit

Nur für Verbindungen = 0

EigentumParitätals Ganzzahl gültiger Wert

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

Parity = 2

15.3.5。Sto ppen Sie Platz

ist nur für die Verbindung = 0

EigenschaftStopBitsals Ganzzahl gültiger Wert

1 (Standard)
2
Beispiel

StopBits = 1

15.3.6 verfügbar. Serieller Port

nur für Verbindungen = 0

EigenschaftSerialPortGültiger Wert als Ganzzahl

1...255

Standardwert = 1 Beispiel

SerialPort = 1

15.3.7. Modus

Nur für den Modus mit Verbindung = 0

EigenschaftModellist ein gültiger ganzzahlwert

0 = RTU-Modus
1 = ASCII-Modus
Beispiel

Mode = 1

15.3.8. Entfernen von Echo

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

EigenschaftenRemoveEchoals Integer gültiger Wert

0 (Standard)
1 (Echo beseitigt)
Beispiel

RemoveEcho = 1

15.3.9. ResponseTimeout

ResponseTimeout Gibt die Zeit in Millisekunden an, wie lange eine Modbus-Abfrage auf eine Antwort des Slaves warten sollte, bevor sie aufgegeben wird.

EigenschaftResponseTimeoutals gültiger Ganzzahlwert

50...100000

Standardwert = 1000 Beispiel

ResponseTimeout = 1000

15.3.10.轮询之间的延迟

属性DelayBetweenPolls作为 Integer有效值

0…1000

默认值 = 20例子

DelayBetweenPolls = 20

15.3.11. Der Server-Port

nur für Verbindungen = 1...4

EigenschaftServerPortist Long gültiger Wert

0...65535

Standardwert = 502 Beispiel

ServerPort = 502

15.3.12. Connection Timeout

ConnectTimeout Gibt an, wie lange ein Modbus-Abfrage auf eine erfolgreiche TCP / IP-Verbindung warten sollte.

Nur für Verbindungen = 1... 4

EigenschaftConnectTimeoutals Integer gültiger Wert

100... 30000 ms

Standardwert = 1000 ms Beispiel

ConnectTimeout = 1000

15.3.13. IP-Version

Nur für die Verbindung = 1...4

EigenschaftIPVersionals gültiger ganzzahlwert

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

IPVersion = 4

15.3.14.Öffnen von Verbindungen

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

FunktionOpenConnection() als Ganzzahlargument

Die Funktion hat keine Argumente. Rückgabewert

Für Fehler 3 - 5: Überprüfen Sie, ob Sie den neuesten seriellen Treiber installiert haben.

FehlerBeschreibung
0Erfolgreich
1Serieller Port nicht verfügbar
3Serieller Port. Die aktuellen Einstellungen können vom Port-Treiber nicht abgerufen werden.
4Serial-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 hat die TCP / UDP-Verbindung nicht gestartet
13Verbindungsfehler
14TCP / UDP-Verbindung ist fehlgeschlagen. Pause
15TCP / UDP-Verbindung ist fehlgeschlagen. IOCTL
Nr. 17TCP / UDP Verbindung fehlgeschlagen. Socket-Fehler
21Die TCP / UDP-Verbindung ist fehlgeschlagen. Adressinformationen
255Die Verbindung ist 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 zum Einrichten einer seriellen Verbindung

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:")

15.3.15. Schließen der Verbindung

FunktionCloseConnection() Als Integer-Parameter

Diese Funktion hat keine Parameter. Der Rückgabewert

Bei Erfolg ist es Null. Bei Fehlschlag ist es nicht Null.

15.3.16。Kommunik ations verkehr zeigen

Zeigt das Kommunikationsverkehrsfenster an.

FunktionShowCommunicationTraffic() Argument

Diese Funktion hat keine Argumente. Der Rückgabewert

ist nicht

15.3.17. Kommunikationsverkehr schließen

Schließen Sie das Kommunikationsverkehrsfenster (wenn angezeigt).

FunktionCloseCommunicationTraffic() Argument

Diese Funktion hat keine Argumente. Der Rückgabewert

ist nicht

15,4. Lesefunktion

Die folgenden Funktionen sind die gleichen, die Sie im Dialogfeld Lese - / Schreibdefinitionen (F8) festlegen. Die Lesfunktion ist mit Modbus-Abfrage - Dokumenten verbunden. (Fenster mit Daten) 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.

15.4.1. Lesen Sie die Spiele

Modbus Funktionscode01

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

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

True, wenn erfolgreich. Falsch, wenn nicht erfolgreich

15.4.2. Diskreten Eingabe

Modbus-Funktionscode02

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

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

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

15.4.3。Les en Sie das Register

Modbus-Funktion 03

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

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

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

15.4.4. Lese-Eingabe - Register

Modbus-Funktionscode 04

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

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

True bei Erfolg. Wenn es nicht gelingt, wird FALSE

15.5. Automatisches Schreiben

Die Schreibfunktion schreibt 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, wie z. B.WriteMultipleRegistersWin。

15.5.1. Schreiben Single-Spule

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

Funktion WriteSingleCoil(SlaveID As Integer, Adresse As Long) As Integer Parameter

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

True, 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 dafür verantwortlich, Schreibvorgänge durch das Lesen des geschriebenen Wertes zu überprüfen.

15.5.2。Sch reiben eines einzelnen Register s

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

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

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

True, 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 dafür verantwortlich, Schreibvorgänge durch das Lesen des geschriebenen Wertes zu überprüfen.

15.5.3。Sch reiben Sie mehr ere Sch lei fe

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

True, 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. Parameter

SlaveID:Slave-Adressen 0 bis 255
Adresse:Datenadresse (Basis-Adressen 0) Anzahl Anzahl Daten
。1 bis 1968

15.5.4. Schreiben in mehrere Register

Modbus-Funktionscode 16.
Schreibe in ein Register, das in einem Array gespeichert ist.

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

SlaveID:Slave-Adressen 0 bis 255
Adresse:Datenadresse (Basis-Adresse 0)
Anzahl:Datenmengen. 1 bis 123 Rückgabewert

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 dafür verantwortlich, Schreibvorgänge durch das Lesen des geschriebenen Wertes zu überprüfen.

15.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:")

15.6. Mehrere Funktionen

Mehrere Funktionen sind mit Modbus-Abfrage - Dokumenten verbunden. (Fenster mit Daten)

15.6.1. Fenster zeigt

Standardmäßig ist das Modbus-Dokumentationsfenster ausgeschaltet. Die ShowWindow-Funktion ermöglicht Modbus Polls, Dokumente mit Dateninhalten sichtbar und anzuzeigen.

FunktionAnzeigefenster() Parameter

Diese Funktion hat keine Parameter. Der zurückgegebene Wert

ist nicht

15.6.2. Abrufen der Send Count

Abrufen der Anzahl der Anforderungen.

FunktionGetTxCount() Solange Argument

Die Funktion hat keine Argumente. Rückgabewert

Anzahl der Anfragen.

15.6.3。Er halten Sie die Emp fang s zä hlung

Anzahl der Antworten erhalten.

FunktionGetRxCount() nur Argumente

Diese Funktion hat keine Argumente. Gibt

Anzahl der Antworten.

15.6.4。Nam ens bes cha ffung

Erhält den Namen des Wertes.

FunktionGetName(Index ist Ganzzahl) als Zeichenkette-Parameter

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

Name.

15.6.5。Ein richtung des Nam ens

Den Namen des Wertes ändern. FunktionSetName(Index ist eine ganze Zahl, Name ist eine Zeichenfolge) Parameter

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

Keine

15.6.6. Formatieren von allen

Formatiert alle Wertzellen mit dem ausgewählten Format.

FunktionFormatAll(formatiert als Ganzzahl) Parameter

Format:Format für die Wertzelle. Rückgabewert

Keine

15.6.7。Er halt des Form ats

Erhält das Anzeigeformat für Modbus-Werte.

FunktionGetFormat(Index ist Ganzzahl) als Ganzzahl Argument

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

IDFormat
0签
1Unsigniert
2Hexadezimal
3Binär
4Fließkomma-Klein - Bytes-Austausch
5Fließkomma-Klein - Bytes-Austausch
6Doppel-Klein - Bytes-Austausch
7Doppel-Klein - Bytes-Austausch
832 - Bit-Symbol - Klein - Bytes-Austausch
932 Punkte haben ein großes Symbol.
10Fließkomma-Klein - Mastissale
11Fließkomma-Big - End-Byte - Austausch
12Doppel kleine Mastissale
13Doppel-Big - End-Byte - Austausch
1432 - Bit-Signifizierte kleine Byte - Sequenz
1532 - Bit-Signifizierte große Byte - Austausch
1732 Bits ohne Symbol.
1832 - Bit unsignierter Small-End - Byte-Switch
1932 - Bit unsignierter Big-End - Byte-Switch
2032 - Bit unsignierter Small-End - Byte-Sequenz
2164 - Bit unsignierter Big-End - Byte-Switch
2264 - Bit unsignierter Small-End - Byte-Switch
23839] 64 - Bit mit Symbolen mit kleinem Bytesend
2464 - Bit mit kleinen Symbolen
2564 - Bit-Unsigned Big-End - Byte-Sequence
2664 - Bit-Unsigned Small-End - Byte-Switch
2764 - Bit-Unsigned Big-End - Byte-Switch
2864 - Bit-Unsigned Small-End - Byte-Sequence
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。Format ein richten

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

FunktionSetFormat(Index ist Ganzzahl, Format ist Ganzzahl) Parameter

Index:Index0 entspricht der ersten Modbus-Adresse.
Format:Format für die Wertzelle. Der zurückgegebene Wert

ist nicht

15.6.9. Fenstergröße ändern

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

FunktionFenstergröße ändern() Parameter

Diese Funktion hat keine Parameter. Der Rückgabewert

ohne

15.6.10. Größe aller Spalten anpassen

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

FunktionGröße aller Spalten ändern() Parameter

Diese Funktion hat keine Parameter. Der zurückgegebene Wert

ist nicht

15.6.11. Zeilen

Gibt die Anzahl der Zeilen im Raster an.

Funktion行(NumberRows)

NumberRows:Anzahl der Zeilen im Netz.

IDBeschreibung
010 Zeilen (Standard)
120 Zeilen
250 Zeilen
3100 Zeilen
4Passt an Anzahl

gibt den Wert

zurück, ohne

15.6.12. Lesergebnis

Verwenden Sie diese Eigenschaft, um zu überprüfen, ob die Kommunikation, die über Read erstellt wurde, erfolgreich ausgeführt wurde.

Eigenschaften führen zu Ergebnissenausals Ganzzahlargument

Die Funktion hat keine Argumente. Rückgabewert

FehlerBeschreibung
0Erfolg
1Timeout-Fehler
2CRC-Fehler
3Antwortfehler (die Antwort ist nicht die erwartete Slave-ID, Funktion oder Adresse)
4Schreibfehler
5Lesfehler
6Port nicht geöffnet Fehler
10Daten nicht initialisiert
11Unzureichende Anzahl von Bytes empfangen
16Bytes-Zählfehler
19Transaction-ID - Fehler
81 StundenIllegale Funktion
82 StundenUngültige Datenadresse
83 StundenUngültige Datenwerte
84 StundenServergerätefehler
85 StundenGeständnis
86 StundenServergerät beschäftigt
87 StundenNAK-Negative Bestätigung
8 AmpereGateway-Pfad nicht verfügbar
8BhDas Gateway-Zielgerät kann nicht auf

15.6.13 reagieren. Ergebnis schreiben

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. SieheReadResultfür eine Liste möglicher Werte.

EigenschaftWriteResultAls Ganzzahl Rückgabewert

Gibt das Schreibergebnis als Ganzzahl zurück.

15.6.14。Eins par ungen

Speichert das aktuelle Fenster. FunktionSave(PathName As String) Als Booleaner Parameter

PathName: Der vollqualifizierte Pfad, in dem die- Datei gespeichert werden soll. Rückgabewert

Boolean 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
res = doc.Save("C:UsersUserNameDesktoptestfile.mbp")

15.7. Automatische Dateneigenschaften

Die folgenden Eigenschaften werden verwendet, um Werte in internen Schreib - / Lese-Arrays in Modbus Polls festzulegen oder abzurufen. Der verwendete Index ist nicht die Modbus-Adresse. Unabhängig von welcher Adresse verwendet wird, wird der Index immer ab 0 gezählt. Die Dateneigenschaften sind mit dem Modbus-Abfrage - Dokument zugeordnet. (Fenster mit Daten)

Jede Dateneigenschaft hat zwei Versionen:

  • Eine ohne Suffix, z. B.SRegisterswird verwendet, um Werte aus einer internen Schreib - / Lesegruppe zu setzen oder zu erhalten.
  • Ein Typ mit einem Suffix Win, z. B.SRegistersWinzum Setzen oder Abrufen von Werten direkt aus dem Datenfenster. Diese Funktion wird verwendet, wenn ein Datenfenster zum Schreiben von Funktionen (z. B.WriteMultipleRegistersWin Diese Funktion wird verwendet.

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.

Verwendung von Gleitkomma-Werten 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

15.7.1。Sp ulen , Sp ulen , Win

AttributSpulen(Index ist Ganzzahl) ist Ganzzahl Beschreibung

Setzt eine Spulen in einer Schreibarray-Struktur oder gibt eine Spulen aus einem Lesarray zurück. Syntax

Spule(Index) [= neuer Wert]

15.7.2。S reg ister s , S reg ister s W in

AttributSRegisters(Index ist Ganzzahl) ist Ganzzahlbeschreibung

Setzt Registers in einer Schreibarray-Struktur oder gibt Registers aus einem Lesarray zurück. Syntax

SRegisters(Index) [= neuer Wert]

15.7.3. URegisters, URegistersWin

EigenschaftURegisters(Index ist Ganzzahl)

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

URegisters(Index) [= neuer Wert]

15.7.4. Ints_32, Ints_32Win

Die AttributeInts_32(Index ist Ganzzahl) ist Double Description

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

Ints_32(Index) [= neuer Wert]

15.7.5. UInts_32, UInts_32Win

AttributUInts_32(Index ist Ganzzahl) ist Double Description

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

UInts_32(Index) [= neuer Wert]

15.7.6。Ints _ 64 und In ts _ 64

AttributeInts_64(Index ist Ganzzahl) ist Double Description

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

Ints_64(Index) [= neuer Wert]

15.7.7. UInts_64 und UInts_64Win

AttributUInts_64(Index ist Ganzzahl) für Double Description

Setzt eine 64 - Bit-unsignierte Ganzzahl in der Schreibarray-Struktur oder gibt eine unsignierte Ganzzahl aus einem Lesearray zurück. Syntax

UInts_64(Index) [= neuer Wert]

15.7.8. Wagen, Wagen gewinnen

Eigenschaftfloating(Index ist eine ganze Zahl) ist eine einzelne Beschreibung

Setzt eine Fließkommazahl in der Schreibarray-Struktur oder gibt eine Fließkommazahl aus einem Lesetarray zurück. Syntax

Fließkomma(Index) [= neuer Wert]

15.7.9. Doppel, Doppel gewinnen

EigenschaftDoppelgenauigkeit(Index ist eine ganze Zahl) ist eine doppelgenauere Beschreibung

Setzt einen doppelgenaueren Wert in der Schreibarray-Struktur oder gibt einen doppelgenaueren Wert aus einem Lesetarray zurück. Syntax

Doppel(Index) [= neuer Wert]

15.7.10. Die Byteordnung

- EigenschaftByteOrderbeschreibt als Ganzzahl

die Byteordnung, die von den Attributen Ints_32, UInts_32, Ints_64, UInts_64, Floats und Doubles verwendet wird.
Win-Version verwendet diese Eigenschaft nichtByteOrder。

IDByte-Sequenz
0Große Mantissa (Standard)
1Small-End - Byte-Switch
2Big-End - Byte-Switch
3Small-Mastissa - Methode

Ints_32 Beispiel:
Byte-Sequenz: Big-endian
Dezimalzahl 123456789 oder Hexadezimalzahl 07 5B CD15
Reihenfolge, die in einer Modbus-Nachricht über die Linie übertragen wird: 07 5B CD15 Syntax

Byte-Reihenfolge[= Neuer Wert]

15.8. Funktionen schreiben (Datenfenster erstellen)

Die folgenden Funktionen sind die gleichen, die Sie im Dialogfeld Lesen / Schreiben Definitionen (F8) festlegen.
Diese Funktion erstellt ein Datenfenster und schreibt den Dateninhalt in dem Datenfenster basierend auf der Scanrate.

15.8.1。Sch reiben Sie eine Sch lei fe gew innen

Modbus-Funktionscode 05.

FunktionWriteSingleCoilWin(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

True bei Erfolg. Wenn es nicht gelingt, wird es falsch

15.8.2. Schreibregister Win

Modbus Funktionscode 06.

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

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

True, wenn erfolgreich. Wenn das nicht funktioniert, ist es ein falsches 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:")

15.8.3. Schreiben Sie mehrere SpulenWin

Modbus Funktionscode 15.

Funktion WriteMultipleCoilsWin(SlaveID As Integer, Adresse As Long, Quantity As Integer, ScanRate As Long) As Integer Parameter

SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Basis-Adresse 0)
Menge:Datenmenge. 1 bis 1968
Scannrate:0 bis 3600000ms Rückgabewert

Ist wahr bei Erfolg. Wenn es nicht gelingt, wird FALSE

15.8.4. Schreiben mehrerer Registers Win

Modbus-Funktionscode 16.

Funktion WriteMultipleRegistersWin(SlaveID As Integer, Adresse As Long, Quantity As Integer, ScanRate As Long) Als Integer Parameter

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

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

16. Ungewöhnliche und fehlerhafte Nachrichten

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

Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)Abbildung21

16.1. Modbus-Ausnahme - Code

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

CodeNameBedeutung
01Illegale FunktionDer in der Abfrage empfangene Funktionscode 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 auf dem ausgewählten Gerät nicht implementiert ist. Es kann auch darauf hindeuten, dass sich der Server (oder das Slave-Gerät) in einem falschen Zustand 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 vom Server zulässige Adresse. Genauer gesagt ist die Kombination von Referenznummern und Übertragungslängen ungültig. Bei einem Controller mit 100 Registern adressiert die PDU das erste Register mit 0 und das letzte Register mit 99. Wenn die Anforderung mit der Start-Register - Adresse 96 und der Anzahl der Register 4 ausgeführt wird, 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, aber kein Register mit der Adresse 100 existiert.
03Unzulässiger DatenwertDer Wert im Abfrage-Datenfeld ist nicht der vom Server (oder Slave) zulässige Wert Dies zeigt, dass es einen Fehler in der Struktur des Restes der komplexen Anfrage gibt, wie etwa eine falsche implizite Länge. Insbesondere bedeutet dies nicht, dass ein in einem Register gespeichertes Datenelement mit einem Wert über den von der Anwendung erwarteten Wert übergeben wird, da das MODBUS-Protokoll die Bedeutung eines bestimmten Wertes für ein bestimmtes Register nicht kennt.
04ServergerätefehlerBei dem Versuch des Servers (oder des Sekundärs) ist ein nicht wiederherstellbarer Fehler aufgetreten, die angeforderte Aktion auszuführen.
05Akzeptiert die Verwendung vonausschließlich in Verbindung mit Programmierbefehlen.
Der Server (oder Slave) hat die Anforderung akzeptiert und verarbeitet sie, es dauert jedoch eine lange Zeit, bis sie abgeschlossen ist. Diese Antwort wird zurückgegeben, um Timeout-Fehler auf dem Client (oder Host) zu verhindern. Der Client (oder Host) kann dann eine Polling-Abschluss - Nachricht senden, um festzustellen, ob die Verarbeitung abgeschlossen ist.
06Servergerät beschäftigtwird speziell in Verbindung mit Programmierbefehlen verwendet.
Der Server (oder Slave-Station) verarbeitet einen langen Programmbefehl. Wenn der Server (oder der Slave) frei ist, sollte der Client (oder der Host) die Nachricht später erneut übertragen.
0AGateway-Pfad nicht verfügbarSpeziell in Verbindung mit einem Gateway verwendet, bedeutet, dass das Gateway keine internen Kommunikationspfade vom Eingangs-Port zum Ausgang-Port zur Verarbeitung von Anfragen zuweisen kann. Meist bedeutet dies, dass das Gateway falsch konfiguriert oder überlastet ist.
0BGateway-Zielgerät - Antwort fehlgeschlagenEs wird speziell in Verbindung mit einem Gateway verwendet, um eine Antwort vom Zielgerät nicht zu erhalten. Das bedeutet in der Regel, dass das Gerät nicht im Netzwerk existiert.

16.2. Modbus-Fehlermeldung

FehlermeldungBedeutung
Timeout-FehlerEine Antwort wurde nicht 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 - Antwort Timeout TCP / IP-Verbindungs - Antwort Timeout Überprüfen, ob Host und Port mit Slave übereinstimmen
AntwortfehlerDie Antwort war nicht erwartet Unterschiedliche Flugzeug-ID.
CRC-FehlerDer CRC-Wert für die Antwort, die Sie erhalten haben, 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: Unterbrechungsbedingte Eingabe / Ausgabefehler Serielle Verbindungsfehler Ausgabepufferüberflutung Schreibfehler mit TCP / IP-Verbindungen werden in der Regel aufgrund von Verbindungsverlust verursacht.
LesefehlerDies ist ein Fehler, der vom seriellen Treiber gemeldet wurde. Es gibt 6 Arten: Framing-Fehler Zeichenpuffer überflutet Paritätsfehler Eingabepuffer überflutet Eingabe / Ausgabe-Fehler Unterbrechungsbedingungen Lesfehler bei TCP / IP-Verbindungen werden normalerweise durch Verbindungsverlust verursacht.
Die Anzahl der empfangenen Bytes ist zu wenigDie Länge der Antwort war nicht erwartet.
Fehler bei der ByteszählungDie Byteszählung in der Antwort ist falsch. Im Vergleich zu den Erwartungen.
Transaction-ID - FehlerEs wird für die Transaktionspaarung verwendet, wobei der MODBUS-Server die angeforderte Transaktionsidentifikation in der Antwort kopiert.
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

《 “Chinesisches Benutzerhandbuch für Modbus Poll (2023 / 08 / 01)” 》 有 3 条评论

Antwort veröffentlichen

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