Modbus Poll Englisch Benutzerhandbuch

kostenlosKostenloses technisches Material

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

Modbus Poll Englisch Benutzerhandbuch

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

2023-08-01

1. Modbus Poll

Modbus Poll ist ein einfach zu bedienender Modbus-Master - Simulator, der für viele Zwecke entwickelt wurde. Unter anderem:

  • Designers of Modbus slave devices for quick and easy testing of protocol interface
  • Automation engineers that need to test Modbus devices or networks on site
  • Service engineers that want to read out and/or change specific service data from a device
  • Change Modbus registers in a slave device
  • Log data from Modbus devices
  • Troubleshooting and compliance testing

1.1. Poll Systemanforderungen für Modbus

Hardware requirements

Prozessor: 1 GHz oder schneller empfohlen
1 GB RAM
5 MB freier Festplattenplatz
1024 x 768 Display ResolutionOS-Anforderungen

Alle Windows-Versionen von Windows 7 bis Windows 11 werden unterstützt.
Modbus Poll Version 7 läuft unter Windows XP.

1.1.1. Stille Installation

Stille Installation erfordert keine Benutzerintervention und hat keine Benutzeroberfläche. Der Benutzer sieht keinen Dialog und wird keine Fragen gestellt.
Use the command line /S switch.

1.2. Endbenutzer-Lizenzvereinbarung

You should carefully read the following terms and conditions before using Modbus Poll. Unless you have a different license agreement signed by Witte Software, your use of this software indicates your acceptance of this license agreement and warranty. If you do not accept these terms you must cease using this software immediately.

Copyright.
Modbus Poll ("Die Software") ist urheberrechtlich geschützt 2002 - 2023 von Witte Software, alle Rechte vorbehalten.

Evaluation and Registration.
Das ist keine freie Software. Sie sind hiermit lizenziert, die Software für einen Zeitraum von 30 Tagen kostenlos zu Evaluierungszwecken zu nutzen.

Wenn Sie die Software nach dem 30 - tägigen Testzeitraum nutzen, ist eine Registrierungsgebühr erforderlich.

Die nicht registrierte Nutzung der Software nach dem 30 - tägigen Testzeitraum verstößt gegen die US-amerikanischen und internationalen Urheberrechtsgesetze.

One registered copy of the Software may either be used by a single person who uses the software personally on one or more computers, or installed on a single computer used by multiple people, but not both.

Für Informationen zu Bestellung und Preisen, besuchen Sie bitte https://www.modbustools.com/order.html

Modbus Poll licenses are perpetual. Once you buy a license to a specific major version, and as long as you abide by the license agreement, you can use that version forever with no additional cost.

Distribution.
Sofern Sie Ihren Lizenzschlüssel nicht einfügen, sind Sie hiermit lizenziert, Kopien der Software zu erstellen, exakte Kopien des Originals an jedermann zu geben und die Software in ihrer unveränderten Form auf elektronischem Wege zu verteilen. Es ist Ihnen ausdrücklich verboten, für solche Kopien in Rechnung zu stellen.

LIMITED WARRANTY.
THE SOFTWARE IS PROVIDED AS IS AND WITTE SOFTWARE DISCLAIMS ALL WARRANTIES RELATING TO THIS SOFTWARE, WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

LIMITATION ON DAMAGES.
WEDEN WITTE SOFTWARE NIE JEDEN, die an der Erstellung, Produktion oder Lieferung dieser SOFTWARE beteiligt sind, haften für indirekte, Folge - oder Zufallsschäden, die aus der Nutzung oder Unfähigkeit der Nutzung solcher SOFTWARE entstehen, selbst wenn WITTE SOFTWARE über die Möglichkeit solcher Schäden oder Ansprüche aufmerksam gemacht wurde. In keinem Fall übersteigt die Haftung der Software für Schäden den für die Lizenz zur Nutzung der Software gezahlten Preis, unabhängig von der Art des Anspruchs. Die Person, die die Software nutzt, trägt alle Risiken in Bezug auf die Qualität und Leistung der Software.

2. Modbus Poll Funktionen

2.1. Connections

Modbus Poll liest / schreibt Daten von Geräten mit:

  • Modbus RTU oder ASCII in RS232 - oder RS485 - Netzwerken. (USB/ RS232 / 485 Konverter)
  • Modbus TCP/IP
  • Modbus Over TCP/IP. (Modbus RTU/ASCII encapsulated in a TCP packet)
  • Modbus UDP/IP
  • Modbus Over UDP/IP. (Modbus RTU/ASCII encapsulated in a UDP packet)

2.2. Unterstützte Modbus-Funktionen

  • 01 (0x01) Lesen von Spulen
  • 02 (0x02) Lesen von diskreten Eingängen
  • 03 (0x03) Lesen von Holding-Registern
  • 04 (0x04) Lesen von Eingabe-Registern
  • 05 (0x05) Schreiben von Einzelspulen
  • 06 (0x06) Single Register schreiben
  • 08 (0x08) Diagnose (nur serielle Linie)
  • 11 (0x0B) Komm-Ereignis - Zähler erhalten (Nur serielle Linie)
  • 15 (0x0F) Schreiben mehrerer Spulen
  • 16 (0x10) Schreiben mehrerer Registers
  • 17 (0x11) Server-ID berichten
  • 22 (0x16) Maske Schreibregister
  • 23 (0x17) Mehrfachregister lesen / schreiben
  • 43 / 14 (0x2B / 0x0E) Gerätekennzeichnung lesen

2.3. Datenprotokoll

  • Log data to a text file
  • Log data direct into Excel

2.4. Anzeigeformate

Each cell can be individual formatted.

  • Signiertes 16 - Bit-Register
  • Unsigniertes 16 - Bit-Register
  • Hex
  • Binary
  • 32 - Bit-Unsigniertes Ganzzahgerät mit beliebiger Wort / Byte-Reihenfolge
  • 32 - Bit-Unsigniertes Ganzzahgerät mit beliebiger Wort / Byte-Reihenfolge
  • 64 - Bit-Unsigniertes Ganzzahgerät mit beliebiger Wort / Byte-Reihenfolge
  • 64 - Bit unsignierte Ganzzahl mit beliebiger Wort / Byte-Reihenfolge
  • 32 - Bit-Float mit beliebiger Wort / Byte-Reihenfolge
  • 64 - Bit-Doppel - Float mit beliebiger Wort / Byte-Reihenfolge

2.5. Verschiedene Features

  • OLE/Automation for interfacing with Excel VBA, Python etc.
  • Monitoring of data traffic
  • Print and print preview
  • Font selection
  • Conditional colors
  • Scaling
  • Real time charting
  • Save/Open workspace
  • Address Scan

3.Übersicht

Modbus Poll uses a multiple document interface. That means several windows can be opened. Each one with different data contents from different slave devices at the same time.

Modbus Poll Englisch BenutzerhandbuchAbbildung

Das Bild zeigt zwei geöffnete Fenster. Eine Lesung 10 Holding-Register von Slave-ID 1 und eine andere Lesung 10 Holding-Register von Slave-ID 2.

3.1. Hilfe von überall

Drücken Sie F1 und erhalten kontextsensitive Hilfe zu einem Thema, das mit dem aktuell ausgewählten Element verknüpft ist.

Shift + F1 ruft einen speziellen "Hilfe-Modus" auf, in dem der Cursor in einen Hilfe-Cursor verwandelt wird (Pfeil + Fragezeichen). Der Benutzer kann dann ein sichtbares Objekt in der Benutzeroberfläche auswählen, wie z. B. ein Menüpunkt, eine Schaltfläche in der Symbolleiste oder ein Fenster. Dies öffnet die Hilfe zu einem Thema, das das ausgewählte Element beschreibt.

3.2. Name Zellen

Here you can type any text for designation of the value cells. You can also copy/paste text from Excel cells.

3.3. Wertezellen

Show the data values of the Modbus registers. If you double click a value cell a dialog box lets you write a new value to the slave device. Typing a number in a value cell shows the dialog as well. It is possible to select the used Modbus function used to write the value.

Das Kontrollkästchen "Dialog bei Antwort ok schließen" wird verwendet, um das Dialogfeld automatisch zu schließen, wenn ein Wert erfolgreich gesendet wird. Dies ist praktisch, wenn viele Werte geändert werden sollen. Auf diese Weise ist es schnell, eine neue Zelle auszuwählen und dann erneut einen neuen Wert einzugeben.

Modbus Poll Englisch BenutzerhandbuchAbbildung1

3.4. Font ändern

Um die Schriftart zu ändern, haben Sie 2 Optionen

  • Select the cells to be changed and then right click.
  • Wählen Sie die Zellen aus, die geändert werden sollen, und dann Menü → Anzeige → Schrift.
Modbus Poll Englisch BenutzerhandbuchAbbildung2

3.5. Bedingte Farben

Bedingte Farben helfen Ihnen, Werte in bestimmten Bereichen visuell anzuzeigen.3 Farboptionen

  • Standardfarbe: Diese Farbe wird verwendet, wenn keine der bedingten Farben auf wahr ausgewertet wird.
  • Regel 1: Diese Farbwahl wird verwendet, wenn der Ausdruck auf true ausgewertet wird. Regel 1 hat Vorrang gegenüber Regel 2.
  • Regel 2: Diese Farbwahl wird verwendet, wenn der Ausdruck auf true ausgewertet wird.

7 Vergleichsoperatoren

  • not used
  • equal to
  • greater than
  • less than
  • greater than or equal to
  • less than or equal to
  • and

Der Operator "und" kann nicht verwendet werden, wenn der Datentyp von float oder 32 - bit langem Typ ist. Der Wert der Bedingung wird als Hex-Zahl eingegeben, wenn "und" ausgewählt wird. Es wird auf true ausgewertet, wenn irgendein der Bits in der Zelle und der Bedingung Wert 1 ist.

3.5.1. Farbe Beispiel

Grüne Farbe, wenn der Zellwert zwischen 398 und 402 liegt

Modbus Poll Englisch BenutzerhandbuchAbbildung3

Skalierung

Skalierung hilft Ihnen, Rohwerte auf von Menschen lesbare Werte zu skalieren. Skalierung funktioniert nur für signierte und unsignierte 16 / 32 - Bit-Ganzzahlen.

Modbus Poll Englisch BenutzerhandbuchAbbildung4

(X1, Y1) und (X2, Y2)

Eine Linie, die durch die beiden Punkte (X1, Y1) und (X2, Y2) fließt

Neigung=m=Y2−Y1X2−X1 = = 2- 1 2- 1Line Gleichung

Y=m⋅(X−X1) + Y1 = ⋅(-1) + 1Präzision

Number of digits after the decimal point.Enable

Es muss aktiviert sein, um den Wert vom Modbus-Server / Slave zu skalieren. Die Skalierung wird automatisch deaktiviert, wenn ein anderes als ein 16/32 - Bit-Ganzzahlformat ausgewählt wird.

3.7. Echtzeit-Charting

Das Diagramm kann 12 Serien in Echtzeit mit bis zu 100.000 Punkten in jeder Reihe zeichnen.

3.8. Adresse Scan

Scan an address range for a list of all valid addresses in a device.

3.9. Neues Fenster öffnen

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

  • Drücken Sie STRG + N
  • Select new in the file menu
  • Drücken SieModbus Poll Englisch BenutzerhandbuchAbbildung5in der Toolbar

4. Verbindungdialog

Um den Verbindungdialog zu öffnen, haben Sie 2 Optionen:

  • Drücken Sie F3
  • Select connect from the connection menu
Modbus Poll Englisch BenutzerhandbuchAbbildung6

4.1. Verbindung

Es gibt 5 verschiedene Verbindungstypen:

  1. Seriell:
    Modbus über serielle Leitung. RS232 oder RS485 Ein USB-Serieller - Konverter kann verwendet werden.
  2. Modbus TCP / IP:
    Select TCP/IP if you want to communicate with a MODBUS TCP/IP network. In this case, slave ID is the same as the Unit ID used in MODBUS TCP/IP.
    Die Portnummer ist standardmäßig 502.
    If the connection fails then try if you can ping your device at the command prompt. If the ping command fails then Modbus Poll fails too.
  3. Modbus UDP / IP:
    Select UDP/IP if you want to communicate with a MODBUS UDP/IP network. This is the same as Modbus TCP/IP but the connection less UDP protocol is used instead.
  4. Modbus RTU / ASCII über TCP / IP:
    This is a RTU or ASCII message sent over a TCP/IP network instead of serial lines.
  5. Modbus RTU / ASCII über UDP / IP:
    This is a RTU or ASCII message sent over a UDP/IP network instead of serial lines.

Verbindungstyp 3 - 5 ist nicht der Standardmodbus wie vonwww.modbus.org Sie werden jedoch für die Bequemlichkeit hinzugefügt.

Depending on your selection some other settings will be grayed.

4.2. Serielle Einstellungen

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

Verwenden Sie diese Option, um denRTUoderASCII- Modus auszuwählen Default RTU.Response timeout

Gibt an, wie lange Modbus Poll auf eine Antwort eines Slave-Geräts warten sollte, bevor es aufgibt. Minimale Verzögerung zwischen den Umfragen

Diese Einstellung gewährleistet eine minimale Verzögerung bis zur Übertragung der nächsten Anforderung unabhängig von der Scanrate. Die Auflösung dieser Einstellung beträgt ca. 15ms. Es ist möglich, auf einigen Computern eine bessere Auflösung zu erhalten, aber nicht auf allen.

Wenn Sie diesen Wert unter 20ms festlegen, kann die 3,5 Char-Zeitlücke zwischen der Antwort und einer neuen Anfrage nicht garantiert werden. Dies liegt daran, dass der Windows-Planer Aufgaben alle 10 - 20ms wechselt. Wenn Sie mehrere Slaves in einem seriellen RS485 - Netzwerk pollen, sollten Sie den Wert NICHT niedriger als 20ms festlegen. In einem TCP / IP-Netzwerk weniger als 20ms ist ok.Serielle Verbindung zu nur einem Slave-Gerät weniger als 20ms ist ok.

User Baud Rate

Specify a custom baud rate if none of the default baud rates are useful.

4.3. Remote-Server

Remote server settings are only available when using an Ethernet connection.IP Address

IP-Adresse des Servers Die Standardnummer ist localhost 127.0.0.1Port

Serverportnummer. Standard 502Connect Timeout

Maximale Zeit, die für den Aufbau einer Verbindung verwendet wird. Standardeinstellung 1000

4.4 Erweiterte Einstellungen

RTS Toggle

RTS Toggle specifies that the RTS line will be high if bytes are available for transmission. After all buffered bytes have been sent, the RTS line will be low.
Sie können dies verwenden, um die Richtung zu wechseln, wenn Sie einen 232 / 485 - Wandler ohne automatischen Richtungsschalter haben.

Die Verwendung von RTS-gesteuerten RS232 / RS485 - Wandlern sollte möglichst vermieden werden. Es ist schwierig, den genauen Zeitpunkt zu bestimmen, wann der Sender mit Nicht-Echtzeit - Betriebssystemen wie Windows und Linux ausgeschaltet werden muss. Wenn es zu früh ausgeschaltet wird, können Zeichen noch im FIFO oder im Übertragsregister des UART sitzen und diese Zeichen gehen verloren. Der Sklave erkennt die Botschaft nicht. Auf der anderen Seite, wenn es zu spät ausgeschaltet wird, dann ist die Nachricht des Slaves beschädigt und der Master wird die Nachricht nicht erkennen.

DSR

DSR gibt an, ob das DSR-Signal (Data-Set - Ready) für die Ausgangsflusssteuerung überwacht wird. Wenn dieses Mitglied TRUE ist und DSR ausgeschaltet ist, wird die Ausgabe ausgesetzt, bis DSR erneut gesendet wird.

CTS gibt an, ob das CTS-Signal (Clear-to - send) für die Ausgangsflusssteuerung überwacht wird. Wenn dieses Kontrollkästchen aktiviert ist und CTS deaktiviert ist, wird die Ausgabe ausgesetzt, bis CTS erneut gesendet wird.DTR

DTR specifies whether the DTR will be enabled or disabled whenever the port is opened.Remove Echo

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

5. Read / Write Definition

Use this command to define the data to be monitored for the active window.

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

  • Drücken Sie F8
  • Wählen Sie "Lese / Schreiben-Definition" aus dem Einrichtenmenü
  • Drücken SieModbus Poll Englisch BenutzerhandbuchAbbildung7auf der Symbolleiste
Modbus Poll Englisch BenutzerhandbuchAbbildung8

5.1. Sklaven ID

Bereich 1 bis 255. (Die MODBUS-Protokollspezifikationen sagen 247). Der Wert 0 wird auch akzeptiert, um direkt mit einem MODBUS / TCP - oder MODBUS / UDP-Gerät zu kommunizieren.

5.2. Funktionscode

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

5.2.1. Lesen Sie Funktionen

The data returned by the read functions are displayed on the grid window.

  • 01: Lesen von Spulen (0x)
  • 02: Lesen von diskreten Eingängen (1x)
  • 03: Lesen von Haltenregistern (4x)
  • 04: Eingangsregister (3x) lesen

5.2.2. Schreiben-Funktionen

The write functions write the data displayed on the grid window.

  • 05: Schreiben Single Coil (Schreiben an Coil-Status)
  • 06: Schreiben Single Register (Schreiben an Holding-Register)
  • 15: Schreiben mehrere Coils (Schreiben an Coils)
  • 16: Schreiben mehrere Register (Schreiben an Holding-Register)

5.3. Adresse

Addresses in the Modbus protocol are confusing! Some protocol specifications use the protocol/message address and others use device addressing.

5.3.1 Protokoll / Nachricht Adresse

Einige Protokollspezifikationen verwenden die Protokoll / Nachricht Adresse, die von 0 bis 65535 zählt, zusammen mit einem Funktionscode. Genau das verwenden auch die neuen Modbus-Spezifikationen. Dies ist die Adresse innerhalb der Nachricht, die auf dem Draht gesendet wird.

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

5.3.2. Device Adresse

Einige Protokollspezifikationen verwenden Geräteadresse / Register. Die Registrierung zählt ab 1. Die erste Ziffer beschreibt die Funktion, die verwendet wird. Das bedeutet, dass die Geräteadresse 40101 durch die Adresse 100 identifiziert wird. Das „4" bedeutet Haltenregister und 4x Register zählen ab 1. Und noch verwirrender: 4x bedeutet Funktionscode 03 und 3x bedeutet Funktionscode 04!

5.3.3. 5 Ziffern vs. 6 Ziffern Adressieren

Das Adressformat 4x zählt von 40001 bis 49999. Die nächste Adresse lautetnot 50000. Früher waren 9999 Adressen genug. Es gibt Fälle, in denen 9999 nicht ausreicht. Danach wird eine Null hinzugefügt. 40101 wird 400101 und so weiter. Dies wird als 6 - Ziffern-Adressierung oder erweiterte Adressierung bezeichnet.

Das ist kein Problem mit Modbus Poll. 410001 wird 10000. Das "4" wird weggeworfen und der Rest 10001 wird um 1 verringert, da wir von 0 statt von 1 zählen.

5.3.4. Adresse Beispiele

These examples show how to set up Modbus Poll if a specification uses device addresses.

Read Holding Registers

Sie möchten alle 1000ms 20 Register von der Gerätsadresse 40011 aus der Slave-ID 2 lesen. Aus dem "4" wissen wir, dass dies die Funktion 03 "Behälterregister lesen" ist.

  • Slave-ID = 2
  • Funktion = "03 Haltungsregister (4x) lesen"
  • Adresse = 10 (11 minus 1)
  • Quantität = 20
  • Scanrate = 1000
Read Discrete Inputs

Sie möchten 1000 Spulen von der Adresse 110201 von der Slave-ID 5 alle 500ms lesen. Aus dem "1" wissen wir, dass dies die Funktion 02 "Lese diskrete Eingaben" ist

  • Slave-ID = 5
  • Funktion = "02 Discrete Inputs lesen (1x)"
  • Adresse = 10200 (10201 - 1)
  • Quantität = 1000
  • Scanrate = 500

5.4. Scanrate

Die Scanrate kann von 0 bis 3600000ms eingestellt werden. Beachten Sie, dass die Einstellung der Scanrate niedriger als die Transaktionszeit nicht sinnvoll ist. Wenn eine serielle Verbindung bei 9600 Baud verwendet wird und 125 Register angefordert werden, beträgt die Transaktionszeit ungefähr 8 + 2 + 250 + 2 = 262 ms + die Lücke (> 3,5 Char-Zeit) zwischen der Anforderung und der Antwort. In diesem Fall ist die Festlegung der Scan-Rate auf z.B. 100ms nicht sinnvoll, da die Transaktionszeit mindestens 262ms + Verzögerung im Slave (Lap) + Min-Zeit zwischen den Umfragen beträgt. (Set im Dialogfeld F3)

5.5. Lesen / Schreiben deaktiviert

Das Kontrollkästchen "Lese / Schreiben deaktiviert" kann verwendet werden, um die Kommunikation für dieses Fenster vorübergehend zu aktivieren oder zu deaktiven. Ein Text (Disabled) wird dann zusammen mit den Tx und Error-Zählern angezeigt.

Modbus Poll Englisch BenutzerhandbuchAbbildung9
Wenn "Lesen / Schreiben" deaktiviert ist, können Sie einzelne Anfragen mit der Taste "Einmal lesen / schreiben" oder mit der Drücke F6 stellen.

Modbus Poll Englisch BenutzerhandbuchAbbildung10
Schaltfläche "Einmal lesen / schreiben"

5.5.1. Deaktivieren auf Fehler

Disable Read/Write in case of error.

5.6. Hide name columns

Hide all name columns. This is convenient to make more space if they are not used.

5.7. Adresse in Zelle

Wenn aktiviert, wird die Adresse auch in der Wertzelle angezeigt wie: 2000 = 00000

Modbus Poll Englisch BenutzerhandbuchAbbildung11

5.8. PLC-Adressen (Base 1)

This option will show the addresses as device addresses.

Modbus Poll Englisch BenutzerhandbuchAbbildung12

5.9. Enron und Daniel Mode

Enron oder Enron / Daniels Modbus ist ein Standardmodbus mit einigen "Vendor Extensions". Die genaue Wirkung dieser Erweiterungen ist kontextabhängig, aber die meisten gängigen Modbus-Befehle arbeiten wie erwartet. Es gibt einige benutzerdefinierte, herstellerdefinierte Funktionen - aber nur wenige Benutzer erwarten oder verwenden sie. Der größte Einfluss hat damit zu tun, wie 32 - Bit-Datenwerte gelesen / geschrieben werden.

Enron-Modbus definiert zwei spezielle 4x-Haltregisterbereiche:

  • 4x5001 bis 4x5999 werden 32 - Bit lange Ganzzahlen (4 - Bytes pro Register) angenommen.
  • 4x7001 bis 4x7999 werden als 32 - Bit-Fließkomma (4 - Bytes pro Register) angenommen.

Der Umgang mit 32 - Bit-Werten in Modbus ist NICHT einzigartig für Enron-MB. Jedoch nimmt Enron-MB den umstrittenen Schritt, 4 - Bytes pro Register anstelle der 2 - Bytes zurückzugeben, die durch den Begriff "Halten Register" in der Modbus-Spezifikation impliziert werden. Dies bedeutet, dass eine Umfrage der Register 4x5001 und 4x5002 in Enron-Modbus 8 - Bytes oder zwei 32 - Bit-Ganzzahlen zurückgibt, während Standard-Modbus nur 4 - Bytes oder eine 32 - Bit-Ganzzahl zurückgibt, die als zwei 16 - Bit-Ganzzahlen behandelt wird. Darüber hinaus gibt das Polling-Register 4x5010 in Enron-MB die zehnte 32 - Bit lange Ganzzahl zurück, während Standard Modbus diese 1 / 2 der fünften 32 - Bit lange Ganzzahl in diesem Bereich betrachten würde.

5.10. Rows

Specify the number of rows in the grid you prefer.

6. Echtzeit-Charting

Verwenden Sie diesen Befehl, um bis zu 12 Datenreihen in einem Diagramm in Echtzeit zu zeichnen.
The real time chart is high speed and capable of drawing a new line as fast as new data is received.

Alle Chart-Einstellungen werden im Workspace gespeichert.Save/Open Workspace

Um das Echtzeit-Charting - Dialog zu öffnen, haben Sie 2 Optionen:

  • Drücken Sie Alt + R
  • Wählen Sie "Echtzeit-Charting" aus dem Menü Anzeige
Modbus Poll Englisch BenutzerhandbuchAbbildung13

Die X-Achse zeigt die Anzahl der Sekunden an, seit das Chart gestartet wurde.

Wenn die Punkte am Ende des Diagramms erreichen, gibt es 3 Optionen:

  • Stoppen am Ende: Das Charting stoppt.
  • Restart am Ende:Das Charting beginnt ganz von vorne.
  • Continue: Es geht weiter, bis es die maximale Anzahl von Punkten erreicht oder Stopp gedrückt wird.

6.1. Settings

Standardmäßig sind alle 12 Serien an die linke Y-Achse gebunden. Aktivieren Sie das Kontrollkästchen "Rechte Y-Achse", wenn Sie eine Reihe mit der rechten Y-Achse verknüpfen möchten.

  • Colors
  • Rechts Y-Achse
  • Title. If title is empty it is initialized with the name from the reading window
  • Offset

Show

  • File name
  • Address

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

Modbus Poll Englisch BenutzerhandbuchAbbildung14

6.2. Zoom-Funktion

Das Zoom auf dem Diagramm kann nützlich sein, wenn Sie mehr Details sehen möchten. Der Zoom wird mit der linken Maustaste gesteuert. Um einen bestimmten Teil des Diagramms zu zoomen, klicken Sie einfach mit der linken Maustaste auf das Diagramm (dies wird die linke obere Ecke des zoomten Rechtecks sein) und ziehen Sie nach unten rechts. Ein Rechteck erscheint. Sobald Sie die Maustaste loslassen, werden sich die Achsen automatisch an die von Ihnen ausgewählte Region anpassen.

Wenn Sie mit der Linken Maustaste auf das Diagramm klicken (wie zum Starten eines Zooms), aber stattdessen in die oberen linken Ecke bewegen, werden alle Änderungen, die mit den Funktionen Zoom und Pan durchgeführt wurden, storniert (das Diagramm wird in dem Zustand sein, in dem es vor den Manipulationen mit Pan und Zoom war).

6.3. Pan-Funktion

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

Das Diagramm weiß nicht, welche Daten verwendet werden sollen, es sei denn, Sie verknüpfen eine Modbus-Datenzelle mit einer der 12 - Serien. Wählen Sie hierzu eine Wertezelle aus und wählen Sie aus dem Menü → Anzeige "Verknüpfung zu Diagramm".

Modbus Poll Englisch BenutzerhandbuchAbbildung15

6.5. Export-Serie

Save series data to disk or copy to clipboard. Paste the data direct in Excel for further processing.
Die Datei erhält trotz der Verwendung eines nicht-komma - Feldtrenners eine. csv-Erweiterung.

Delimiter: Wählen Sie das Zeichen aus, das die Werte in Ihrer Textdatei trennt. Verwenden Sie den Tab-Delimiter beim Kopieren / Einfügen in Excel.Further werden einige zusätzliche Informationen gegeben.

  • Number of points
  • Max point value
  • Min point value
  • Average point value
Modbus Poll Englisch BenutzerhandbuchAbbildung16

7. Adresse Scan

Scan an address range for a list of all valid addresses in a device. Addresses are read one by one and the read result is shown in a list.

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

7.1. Export-Adressen - Scan

Save Address Scan data to disk or copy to clipboard. Paste the data direct in Excel for further processing.
Die Datei erhält trotz der Verwendung eines nicht-komma - Feldtrenners eine. csv-Erweiterung.

Delimiter: Wählen Sie das Zeichen aus, das die Werte in Ihrer Textdatei trennt. Verwenden Sie den Tab-Delimiter beim Kopieren / Einfügen in Excel.

8. Display-Formate

Markieren Sie die Zellen, die formatiert werden sollen. Wählen Sie eines der 28 Anzeigeformate aus dem Anzeigemenü.

8.1. Native Modbus-Register

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

  • Signed
  • Unsigned
  • Hex
  • ASCII - Hex
  • Binary

8.2. 32-bit signierte Integer

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

  • Signatur Big-endian
  • Signed integer Little-endian
  • Signed integer Big-endian byte swap
  • Signed integer Little-endian byte swapExampleByte Reihenfolge:AB CD (Big-endian)
    Die Dezimalzahl 123456789 oder in Hexadezimal07 5B CD 15
    Ordnen Sie, wie sie über das Draht kommen in einer Modbus-Nachricht:07 5B CD 15

8.3. 32-bit unsigned integer

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

  • Unsignierte Ganzzahl Big-endian
  • Unsignierte Ganzzahzahl Little-endian
  • Unsignierte Ganzzahzahl Big-endian Byteswap
  • Unsignierte Ganzzahzahl Little-endian ByteswapExampleByte Order:AB CD (Big-endian)
    Die Dezimalzahl 123456789 oder in Hexadezimal07 5B CD 15
    Reihenfolge, wie sie in einer Modbus-Nachricht über den Draht kommen:07 5B CD 15

8.4. 64-bit signed integer

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

  • signierte Ganzzahl Big-endian
  • Unterzeichnetes Ganzzahl Little-endian
  • Signed integer Big-endian byte swap
  • Signed integer Little-endian byte swapExampleByte Order:AB CD EF GH (Big-endian)
    Die Dezimalzahl -1.234.567.890.123.456, 789 oder in HexadezimalEE DD EF 0B 82 16 7E EB
    Reihenfolge, wie sie in einer Modbus-Nachricht über den Draht kommen:EE DD EF 0B 82 16 7E EB

8.5. 64-Unsignierte Integer

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

  • Unsignierte Ganzzahl Big-endian
  • Unsignierte Ganzzahzahl Little-endian
  • Unsignierte Ganzzahzahl Big-endian Byte Swap
  • Unsignierte Ganzzahzahl Little-endian Byte SwapExampleByte Order:AB CD EF GH (Big-endian)
    Die Dezimalzahl 1,234,567,890,123,456,789 oder in Hexadezimalform11 22 10 F4 7D E9 81 15
    Order, wie sie in einer Modbus-Nachricht über das Draht kommen:11 22 10 F4 7D E9 81 15

8.6. 32-bit floating

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

  • Float Big-endian
  • Float Little-endian
  • Float Big-endian Byte-Swap
  • Float Little-endian byte swapExampleByte Order:AB CD (Big-endian)
    Die Gleitkomma-Nummer 123456.00 oder in Hexadezimal47 F1 20 00
    Order, wie sie in einer Modbus-Nachricht über den Draht kommen:47 F1 20 00

8.7. 64-bit double

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

  • Doppel Big-endian
  • Doppel-Little - Endian
  • Doppel-Big - Endian Byte-Swap
  • Doppel-Little - Endian Byte-SwapExampleByte-Reihenfolge:AB CD EF GH (Big-endian)
    Die Gleitkomma-Nummer 123456789.00 oder in Hexadezimal41 9D 6F 34 54 00 00 00
    Reihenfolge, wie sie in einer Modbus-Nachricht über das Draht kommen:41 9D 6F 34 54 00 00 00

9. Speichern / Öffnen von Workspace

If you open many related Modbus windows it is convenient to save a snapshot of the current layout of all open and arranged Modbus Windows in one workspace.

Ein Arbeitsbereich (* mbw) ist eine Datei, die Anzeigeinformationen und Dateinamen aller geöffneten Fenster enthält. Nicht der tatsächliche Inhalt. Um dies zu tun, gehen Sie zu Datei → Workspace speichern.

The Connection and Chart settings are stored in the Workspace file.

When you open a workspace file, Modbus Poll opens all Modbus Windows and displays them in the layout that you saved.

10. Export nach CSV

Export names and values to a Comma, Semicolon or Tab Separated Values File.Select from the file dialog

  • Komma getrennte Werte Datei (*. csv)
    "Temperatur","19.7"
  • Semikolon getrennte Werte Datei (*. csv)
    "Temperatur"; "19.7"
  • Tab Getrennte Werte Datei (*.txt)
    Temperatur 19.7

Depending on your system, comma or period is used to separate decimals.

11. Exportieren in Modbus Slave

Exportieren von Namen, Werte und Formatierungen in eine Modbus Slave-Datei. *. mbs

Modbus Slave Version 7.4.0 oder neuer ist erforderlich, um die Datei zu öffnen.

12. Testzentrum

The purpose of this test dialog is to help MODBUS slave device developers to test the device with any string of their own composition.
The list box displays the transmitted data as well as the received data.
Sie können mehrere Testzeichenfolgen in der Dropdown-Liste haben. Wenn Sie eine Zeichenfolge eingegeben haben, drücken Sie die Schaltfläche "zu Liste hinzufügen", dann wird die Zeichenfolge in die Liste hinzugefügt.
Die ausgewählte Zeichenfolge wird gesendet, wenn der Schaltfläche "Senden" gedrückt wird.Öffnen Liste

Rest test strings from a file.Save list

Store the test strings to a file.Clear

Clear the test list.Add to list

Add the current test string to the list.Add Check

Add a CRC or LRC to the end of the input string.

Wenn Sie das Testcenter verwenden, möchten Sie möglicherweise die Kommunikation von anderen Fenstern deaktivieren. Aktivieren Sie das Kontrollkästchen „Lese / Schreiben deaktivieren" im Dialog „Lese / Schreiben Definition". Setup → Read / Write Definition.

12.1. ASCII Beispiel

Zeichenfolge im Kombo-Box: 3A 30 31 30 33 30 30 30 30 30 30 30 41

Die übertragene Zeichenfolge, wenn LRC hinzugefügt wird3A 30 31 30 33 30 30 30 30 30 30 30 41 46 32 0D 0A

A CR LF pair is also added.

12.2. TCP / IP Beispiel

Lesen 10 Holdregister.00 00 00 00 00 06 01 03 00 00 00 0A

Die ersten 6 Bytes sind der TCP / IP-Header.

12.3. Test Center String File

With a text editor such as notepad or similar you can prepare strings to be used in the test.
Die erste Zeile in der Datei muss die Zeichenfolge "TestCenter" sein. Auf diese Weise weiß Modbus Poll, dass die Datei das richtige Format hat. Drücken Sie "Liste öffnen", um die vorbereitete Textdatei zu öffnen.

12.3.1. Inhalt einer String-Liste

TestCenter 3A 30 31 30 33 30 30 30 30 30 30 41 3A 30 32 30 33 30 30 30 30 30 41 3A 30 33 30 30 30 30 30 30 30 30 40

12.4. Copy

Use the Copy button to copy selected Tx/Rx strings to the clipboard.
Die SHIFT - und STRG-Tasten können zusammen mit der Maus verwendet werden, um Zeichenfolgen auszuwählen und auszuwählen, Gruppen von Zeichenfolgen auszuwählen und nicht benachbarte Zeichenfolgen auszuwählen.

Leave this window open while doing other commands.

13. Modbus Datenlogging

You can log data to either a text file or direct to Microsoft Excel.

13.1. Textdatei

Wählen Sie Log im Setupmenü aus oder verwenden Sie Verknüpfungstasten: Alt + L

Each Modbus Window logs to its individual text file.

When you want to stop the data logging then select the logging off command on the setup menu.

Modbus Poll Englisch BenutzerhandbuchAbbildung17

13.1.1. Log Rate

Each read

Write a logline for all Modbus requests. Log frequency as scan rate.Select

Specify the log rate in seconds. Independent of scan rate.

Wenn die Scan-Rate z.B. 10000ms beträgt, macht es keinen Sinn, eine Log-Rate von 1 Sekunde zu setzen, da die Daten nur protokolliert werden, wenn neue Daten bereit sind.

13.1.2. Delimiter

Als Delimiter können Sie eine der folgenden Optionen verwenden: Festbreite

Means that the values are organized in columns.Comma

Values separated by a comma.Tab

Values separated by a tab.

13.1.3. Log, wenn nur Daten geändert wurden

Specify that a new log line is written only if any data is changed since last log.

13.1.4. Logfehler

Specify that errors such a timeout etc. are logged.

13.1.5. Protokolldatum

Specify that the current date is added to the log time.

13.1.6. Verwenden Sie "T" als Delimitator

Geben Sie an, dass die Uhrzeit und das Datum durch den Buchstaben "T" getrennt werden, wie in ISO 8601 angegeben.

13.1.7. Log MS

Specify that milliseconds are added to the log time.

13.1.8. Log Adresse

Specify that the Modbus Address is added to the log.

13.1.9. Start Logging, wenn OK gedrückt wird

Geben Sie an, dass die Protokollierung gestartet wird, wenn der OK-Button gedrückt wird. Andernfalls wird die Log-Setup nur gespeichert, wenn * mbp-Datei gespeichert wird.

13.1.10. Start Log, wenn * mbp geöffnet wird

Geben Sie an, dass die Protokollierung automatisch gestartet wird, wenn eine *. mbp-Datei geöffnet wird.

13.1.11. Flush umgehend zu archivieren

This ensures that log lines are not cashed in the file system but physically written immediately.

13.1.12. Appendix

Specify that logs are appended to the selected file. Otherwise a new file is created.

13.1.13. Neue Logdatei um Mitternacht

Close the current log file and start a new file at midnight. A time stamp is added to your filename.

13.1.14. Header-Informationen

  • Header einfügen:Die Informationen werden oben in die Protokolldatei eingefügt.
    • Benennen Sie die Zellen in der oberen Zeile: Namen einfügen.
    • Poll Definition:ID, Funktion usw. einfügen
    • Name:Fügen Sie einen Namen Ihres Logs ein.

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>1 0 0 4 0 0 0 0 0

You can import the data in an Excel spreadsheet.

13.2. Microsoft Excel

Diese Funktion erfordert die Installation von Microsoft Excel. Das Excel 2003 - Protokoll ist auf 65535 Protokolle beschränkt, da dies die maximale Anzahl von Zeilen in einem Excel-Blatt ist. Excel 2007 oder neuer ist auf 1.048.576 Zeilen beschränkt. Jedes Modbus-Fenster protokolliert sich in seinem individuellen Excel-Blatt.

Wählen Sie Excel-Log aus dem Setup-Menü oder verwenden Sie Verknüpfungstasten: Alt + X

Do not touch the Excel sheet while logging as this will interrupt the logging.

Modbus Poll Englisch BenutzerhandbuchAbbildung18

13.2.1. Log Rate

  • Jedes Lesen:Schreiben Sie eine Logline für alle Modbus-Anfragen. Log Frequenz als Scan Rate.
  • Wählen Sie:Geben Sie die Lograte in Sekunden an. Das Log ist unabhängig von der Scan-Rate
    Hinweis: Wenn die Scan-Rate z.B. 10000ms beträgt, macht es keinen Sinn, eine Log-Rate von 1 Sekunde zu setzen, da die Daten nur protokolliert werden, wenn neue Daten bereit sind.
  • Halt nach: Geben Sie die Anzahl der Log-Zeilen an. Beachten Sie, dass Excel 2003 auf 65.536 Zeilen und Excel 2007 auf 1.048.576 Zeilen begrenzt ist.

13.2.2. Header Informationen

  • Header einfügen:Die Informationen werden in den oberen 3 Zeilen des Excel-Blattes eingefügt.
    • Namezellen in der oberen Zeile: Fügen Sie Namen in Zeile 3 ein.
    • Poll Definition:In Zeile 2 ID, Funktion usw. einfügen.
    • Name: Fügen Sie einen Lognamen in Zeile 1 ein.
Modbus Poll Englisch BenutzerhandbuchAbbildung19

Excel log with header information.

14. Kommunikationsverkehr

Wählen Sie das Menü Anzeige → Kommunikation aus, um den Verkehr auf dem seriellen Kabel oder Ethernet-Kabel anzuzeigen. Verwenden Sie die Stopp-Schaltfläche, um das Update zur Inspektion vorübergehend zu stoppen.

Use the copy button to copy the selected line to the clipboard.

Dieses Fenster zeigt nur Daten an, die von Modbus Poll gesendet und empfangen werden. Sie können es nicht als Datensniffer verwenden.
Leave this window open while doing other commands.

15. OLE / Automatisierung

Automation (formerly known as OLE Automation) makes it possible for one application to manipulate objects implemented in another application.

An Automation client is an application that can manipulate exposed objects belonging to another application. This is also called an Automation controller.

Ein Automatisierungsserver ist eine Anwendung, die programmierbare Objekte anderen Anwendungen ausgesetzt.Modbus Pollist ein Automationsserver.

That means you can use any program that supports VBA (Visual Basic for Applications) such as Visual Basic, Excel etc. to interpret and show the modbus data according to your specific requirements.

15.1. Excel Beispiel

You should display the Developer tab or run in developer mode when you want to write macros.

15.1.1. Excel 2007

Modbus Poll Englisch BenutzerhandbuchAbbildung20
  1. Click the Microsoft office button and then click Excel options.
  2. Click popular and then select the show Developers tab in the ribbon check box.
    Note the ribbon is part of the Microsoft fluent user interface.

15.1.2. Excel 2010, 2016

  1. Click on the file tab.
  2. Click options. Excel Options window will open.
  3. On the left pane click Customize Ribbon.
  4. On the right pane, under Main Tabs, check the Developer check box.
  5. Click OK. The Developer tab should now show in the ribbon (right most tab).

15.1.3. Excel Beispielcode

This example opens two windows. One reading registers and another reading Coils.
Modbus Poll ist versteckt, aber Sie können es anzeigen, indem Sie die Zeile "ShowWindow" deaktivieren. Hier wird eines der Fenster angezeigt

An example is also included with the Modbus Poll installation.
Start → Alle Programme → Modbus Poll → Excel Beispiel

Excel VBA Example

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

This Python example opens a window and set all possible data formats.

Python Example

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 tun das gleiche wie Sie im Verbindungsdialog (F3) einrichten.

15.3.1. Verbindung

Connection selects the desired connection. A serial port or one of the Ethernet connections can be selected.

EigenschaftConnectionals IntegerValid-Werte

0 = Serieller Port
1 = Modbus TCP / IP
2 = Modbus UDP / IP
3 = Modbus ASCII / RTU über TCP / IP
4 = Modbus ASCII / RTU über UDP / IP

Example

Connection = 0

BaudRate

Gilt nur für Connection = 0

EigenschaftBaudRateals LongValid-Werte

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

Example

BaudRate = 9600

15.3.3. DataBits

Gilt nur für Connection = 0

EigenschaftDataBitsals IntegerValid-Werte

7
8 (Standard)

Example

DataBits = 8

15.3.4. Keine Parität

Gilt nur für Connection = 0

EigenschaftParityals IntegerValid-Werte

0 =
1 = Odd
2 = Even (Default)

Example

Parity = 2

15.3.5. StopBits

Gilt nur für Connection = 0

EigenschaftStopBitsals IntegerValid-Werte

1 (Default)
2

Example

StopBits = 1

15.3.6. Seriellport

Gilt nur für Connection = 0

EigenschaftSerialPortals IntegerValid-Werte

1...255

Standardwert = 1

Example

SerialPort = 1

15.3.7. Modus

Gilt nur für die Verbindung = 0

EigenschaftModeals IntegerValidwerte

0 = RTU-Modus
1 = ASCII-Modus

Example

Mode = 1

15.3.8. RemoveEcho

Gilt nur für Verbindung = 0
Wenn Ihr Gerät oder der RS232 / RS485 - Wandler die gerade gesendeten Zeichen wiederholt.

EigenschaftRemoveEchoals IntegerValid Werte

0 (Default)
1 (Echos entfernen)

Example

RemoveEcho = 1

15.3.9. ResponseTimeout

The ResponseTimeout specifies the length of time in ms that Modbus Poll should wait for a response from a slave device before giving up.

EigenschaftResponseTimeoutals IntegerValid-Werte

50...100000

Standardwert = 1000

Example

ResponseTimeout = 1000

15.3.10. Verzögerung BetweenPolls

EigenschaftDelayBetweenPollsals IntegerValid-Werte

0...1000

Standardwert = 20

Example

DelayBetweenPolls = 20

15.3.11. ServerPort

Nur für Connection = 1...4

EigenschaftServerPortals LongValid-Werte anwendbar

0...65535

Defaultwert = 502

Example

ServerPort = 502

15.3.12. ConnectTimeout

The ConnectTimeout specifies the length of time that Modbus Poll should wait for a TCP/IP connection to succeed.

Gilt nur für Verbindung = 1...4

EigenschaftConnectTimeoutals IntegerValid-Werte

100...30000ms

Standardwert = 1000ms

Example

ConnectTimeout = 1000

15.3.13. IPVersion

Gilt nur für Connection = 1...4

EigenschaftIPVersionals IntegerValid-Werte

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

Example

IPVersion = 4

15.3.14. Funktion OpenConnection

Opens the connection selected with the Connection property.

Funktion OpenConnection() As IntegerParameters

This function has no parameters.Return value

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

ErrorDescription
0SUCCESS
1Serial Port not available
3Serial port. Not possible to get current settings from the port driver.
4Serial port. Serial port driver did not accept port settings.
5Serial port. Serial port driver did not accept timeout settings.
12TCP/UDP Connection failed. WSA start up
13TCP/UDP Connection failed. Connect error
14TCP/UDP Connection failed. Timeout
15TCP/UDP Connection failed. IOCTL
17TCP/UDP Connection failed. Socket error
21TCP/UDP Connection failed. Address information
255Connection already open

Excel example how to open a Modbus TCP/IP connection

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 example how to setup a serial connection

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

FunktionCloseConnection() As IntegerParameters

This function has no parameters.Return value

Zero if success. Nonzero value if failed.

15.3.16. ShowCommunicationTraffic

Shows the communication traffic window.

FunktionShowCommunicationTraffic()Parameters

This function has no parameters.Return value

None

15.3.17. CloseCommunicationTraffic

Closes the communication traffic window if shown.

FunktionCloseCommunicationTraffic()Parameters

This function has no parameters.Return value

None

15.4. Lesen Sie Funktionen

Die folgenden Funktionen tun das gleiche wie Sie im Dialogfeld Lese / Schreiben Definition (F8) einrichten. Lesen-Funktionen sind mit einem Modbus-Poll - Dokument verbunden. (The Fenster mit Daten)

Example

' 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
You must create a Read before you can use properties to get data.

15.4.1. ReadCoils

Modbus-Funktionscode 01

FunktionReadCoils(SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameters

SlaveID:Die Slave-Adresse 1 bis 255
Adresse:Die Datenadresse (Base 0)
Quantität:Die Anzahl der Daten. 1 bis 2000
ScanRate:0 bis 3600000msReturn value

True if success. False if not success

15.4.2. ReadDiscreteInputs

Modbus Funktionscode 02

FunktionReadDiscreteInputs(SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameters

SlaveID:Die Slave-Adresse 1 bis 255
Adresse:Die Datenadresse (Base 0)
Quantität:Die Anzahl der Daten. 1 bis 2000
ScanRate:0 bis 3600000msReturn value

True if success. False if not success

15.4.3 ReadHoldingRegistrieren

Modbus-Funktionscode 03

FunktionReadHoldingRegisters(SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameters

SlaveID:Die Slave-Adresse 1 bis 255
Adresse:Die Datenadresse (Base 0)
Quantität:Die Anzahl der Daten. 1 - 125
ScanRate:0 bis 3600000msReturn value

True if success. False if not success

15.4.4.4. ReadInputRegisters

Modbus-Funktionscode 04

FunktionReadInputRegisters(SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameters

SlaveID:Die Slave-Adresse 1 bis 255
Adresse:Die Datenadresse (Base 0)
Quantität:Die Anzahl der Daten. 1 bis 125
ScanRate:0 bis 3600000msReturn value

True if success. False if not success

15,5. Automatisierung Schreibfunktionen

Die Schreibfunktionen schreiben die Werte, die im Array gespeichert sind, das von den Eigenschaften gefüllt ist. Die Write-Funktion erzeugt kein Datenfenster. Um ein Datenfenster zu erstellen, verwenden Sie die Win-Funktionen z.B.WriteMultipleRegistersWin.

15.5.1. WriteSingleCoil

Modbus-Funktionscode 05.
Writes the first coil stored in the write array.

Funktion WriteSingleCoil(SlaveID As Integer, Address As Long) As IntegerParameters

SlaveID:Die Slave-Adresse 0 bis 255
Adresse:Die Datenadresse (Base 0)Return value

True if the write array is ready and the data is sent. False if the array is empty or error in the parameters.
The controlling application is responsible for verifying the write operation by reading back the value written.

15.5.2. WriteSingleRegister

Modbus-Funktionscode 06.
Writes the first register stored in the write array.

Funktion WriteSingleRegister(SlaveID als Integer, Adresse so lange) als IntegerParameter

SlaveID:Die Slave-Adresse 0 bis 255
Adresse:Die Datenadresse (Basis 0)Return value

True if the write array is ready and the data is sent. False if the array is empty or error in the parameters.
The controlling application is responsible for verifying the write operation by reading back the value written.

15.5.3. WriteMultipleCoils

Modbus-Funktioncode 15.
Write the coils stored in the write array.

Funktion WriteMultipleCoils(SlaveID As Integer, Address As Long, Quantity As Integer) As IntegerReturn value

True if the write array is ready and the data is sent. False if the array is empty or error in the parameters.
The controlling application is responsible for verifying the write operation by reading back the values written.Parameters

SlaveID:Die Slave-Adresse 0 bis 255
Adresse:Die Datenadresse (Base 0)
QuantityDie Anzahl der Daten. 1 bis 1968

15,5.4. WriteMultipleRegisters

Modbus-Funktionscode 16
Write the registers stored in the write array.

Funktion WriteMultipleRegisters(SlaveID As Integer, Address As Long, Quantity As Integer) As IntegerParameters

SlaveID:Die Slave-Adresse 0 bis 255
Adresse:Die Datenadresse (Base 0)
Quantität:Die Anzahl der Daten. 1 bis 123Return value

True if the write array is ready and the data is sent. False if the array is empty or error in the parameters.
The controlling application is responsible for verifying the write operation by reading back the value written.

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 example

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. Verschiedene Funktionen

Various functions are associated with a Modbus Poll document. (The window with data)

15.6.1 ShowWindow

As default Modbus document windows are hidden. The ShowWindow function makes Modbus Poll visible and shows the document with data content.

FunktionShowWindow()Parameters

This function has no parameters.Return value

None

15.6.2. GetTxCount

Gets the number of requests.

FunktionGetTxCount() As LongParameters

This function has no parameters.Return value

The number of requests.

15.6.3. GetRxCount

Gets the number of response.

FunktionGetRxCount() As LongParameters

This function has no parameters.Return value

The number of response.

15.6.4. getName

Gets the name of a value.

FunktionGetName(Index As Integer) As StringParameters

Index:Index 0 entspricht der ersten Modbus-Adresse.Return value

The name.

15.6.5. SetName

Ändert den Namen eines Wertes. FunktionSetName(Index As Integer, Name As String)Parameters

Index:Index 0 entspricht der ersten Modbus-Adresse
Name:Der Name der Wertzelle.Return value

None

15.6.6. FormatAlle

Format all value cells with the selected format.

FunktionFormatAll(Format As Integer)Parameters

Format:Das Format der Wertzelle.Return value

None

15.6.7. GetFormat

Gets the display format of the Modbus value.

- FunktionGetFormat(Index As Integer) As IntegerParameters

Index: Der Index 0 entspricht der ersten Modbus-Adresse.
Return value

IDFormat
0Signed
1Unsigned
2Hex
3Binary
4Float-Little - Endian-Byte - Swap
5Float big-endian
6Double little-endian byte swap
7Double big-endian
832 - bit Signed little-endian byte swap
932 - bit Signed big-endian
10Schwimmen Little-endian
11Float big-endian byte swap
12Double little-endian
13Double big-endian byte swap
1432 - bit Signed little-endian
1532 - bit Signed big-endian byte swap
1732 - bit Unsigned big-endian
1832 - bit Unsigned little-endian byte swap
1932-bit Unsigniert Big-endian Byte Swap
2032 - Bit Unsignierte Little-endian
2164 - Bit Signierte Big-endian
2264 - Bit Signierte Little-endian Byte-Swap
2364 - Bit Signierte Big-endian Byte-Swap
2464 - Bit Signierte Little-endian
25bit Unsigniert Little-endian Byte Swap
2664-bit Unsigniert Little-endian Byte Swap
2764-bit Unsigniert Big-endian Byte Swap
2864 - bit Unsignierte little-endian
This setting is only for display. You still need to use byteOrder to get the correct endianness when using Get/Set value functions.

15.6.8. SetFormat

Change the display format of the Modbus values. See Format values above.

Funktion SetFormat(Index As Integer, Format As Integer)Parameters

Index:Index 0 entspricht der ersten Modbus-Adresse.
Format:Das Format der Wertzelle.

None

15.6.9. ResizeWindow

Resize an opened window to fit the grid.

FunktionResizeWindow()Parameters

This function has no parameters.Return value

None

15.6.10. ResizeAllColumns

Resize all columns to fit the values inside the cells.

FunktionResizeAllColumns()Parameters

This function has no parameters.Return value

None

15.6.11. Rows

Specify the number of rows in the grid.

Funktion Rows(NumberRows)Parameters

NumberRows:Anzahl der Zeilen im Raster.

IDDescription
010 Zeilen (Standard)
120 Zeilen
250 Zeilen
3100 Zeilen
4Fit to quantity

Return value

None

15.6.12. ReadResult

Use this property to check if communication established with Read is running successful.

EigenschaftReadResultals IntegerParameter

This function has no parameters.Return value

ErrorDescription
0SUCCESS
1TIMEOUT ERROR
2CRC ERROR
3RESPONSE ERROR (The response was not the expected slave id, function or address)
4WRITE ERROR
5READ ERROR
6PORT NOT OPEN ERROR
10DATA UNINITIALIZED
11INSUFFICIENT BYTES RECEIVED
16BYTE COUNT ERROR
19TRANSACTION ID ERROR
81hILLEGAL FUNCTION
82hILLEGAL DATA ADDRESS
84hILLEGAL DATA VALUE
84hSERVER DEVICE FAILURE
85hACKNOWLEDGE
86hSERVER DEVICE BUSY
87hNAK-NEGATIVE ACCORDENCE
8AhGATEWAY PATH UNAVAILABLE
8BhGATEWAY TARGET DEVICE FAILED TO RESPOND

WriteResult

Use this function to check if a write was successful.
Der Wert ist DATA _ UNINITIALIZED, bis das Ergebnis des Slaves verfügbar ist. SieheReadResultfür eine Liste der möglichen Werte.

EigenschaftWriteResultAls IntegerReturn-Wert

Return a write result as an integer.

15.6.14. Speichern

Speichert das aktuelle Fenster. FunktionSave(PathName As String) As BooleanParameters

PathName:Der vollqualifizierte Pfad, an dem die Datei gespeichert werden sollte.Return value

Boolean

Example

' 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. Automatisierungsdaten-Eigenschaften

Die unten stehenden Eigenschaften werden verwendet, um Werte in den internen Schreib - / Lese-Arrays in Modbus Poll zu setzen oder zu erhalten. Der verwendete Index ist keine Modbus-Adresse Der Index zählt immer von 0 ab, unabhängig davon, welche Adresse verwendet wird. Die Daten-Eigenschaften sind mit einem Modbus Poll-Dokument verknüpft. (The

Es gibt 2 Versionen jeder Daten-Eigenschaft:

  • Eine ohne Postfix wieSRegistersdie verwendet wird, um einen Wert aus dem internen Schreib - / Lese-Array zu setzen oder zu erhalten.
  • Einer mit Win als Postfix, wieSRegistersWinwird verwendet, um einen Wert direkt aus dem Datenfenster festzulegen oder abzurufen. Write Dies wird verwendet, wenn das Datenfenster für eine Funktion verwendet wird z. B.WriteMultipleRegistersWin.

Beispiel 1:

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

Beispiel 2 mit Gleitkomma-Werten:
Schreiben Sie drei floating-point - 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 3 Register schreibt.

' 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. Coils, 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]

SRegisters, SRegistersWin

EigenschaftSRegisters(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]

15.7.3. URegisters, URegistersWin

PropertyURegisters(Index As Integer) As LongDescription

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

URegisters(Index) [= neu]

15.7.4. Ints_32, Ints_32Win

EigenschaftInts_32(Index As Integer) As DoubleDescription

Legen Sie eine 32 - Bit-Gänzzahl in der Schreib-Array - Struktur fest oder geben Sie eine Ganzzahl aus dem Lese-Array zurück.Staxa

Ints_32(Index) [= neu]

15.7.5. UInts_32, UInts_32Win

EigenschaftUInts_32(Index As Integer) As DoubleDescription

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

UInts_32(Index) [= neu]

15.7.6. Ints_64, Ints_64Win

EigenschaftInts_64(Index As Integer) As DoubleDescription

Legen Sie eine 64 - Bit-Gewinnzahl in der Schreibarray-Struktur fest oder geben Sie eine Ganzzahl aus dem Read-Array zurück.Stax

Ints_64(Index) [= neu]

15.7.7. UInts_64, UInts_64Win

EigenschaftUInts_64(Index As Integer) As DoubleDescription

Legen Sie eine 64 - Bit unsignierte Ganzzahl in der Schreibarray-Struktur fest oder geben Sie eine unsignierte Ganzzahl aus dem Read-Array zurück.Stax

UInts_64(Index) [= neu]

15.7.8. Float, FloatWin

EigenschaftFloats(Index As Integer) As SingleDescription

Sets a float in the write array structure or returns a float from the read array.Syntax

Floats(Index) [= neu]

15.7.9. Doubles, DoublesWin

EigenschaftDoubles(Index As Integer) As DoubleDescription

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

Doubles(Index) [= neu]

15.7.10. ByteOrder

EigenschaftByteOrderAls IntegerDescription

Legen Sie die Byteordnung fest, die von den Eigenschaften Ints_32, UInts_32, Ints_64, UInts_64, Floats und Doubles verwendet wird.
Die Win-Versionen verwenden diese Eigenschaft nicht ByteOrder.

IDEndianness
0Big-endian (Default)
1Little-endian byte swap
2Big-endian byte swap
3Little-endian

Beispiel für Ints_32:
Byte Order: Big-endian
Die Dezimalzahl 123456789 oder in Hexadezimal 07 5B CD 15
Reihenfolge, wie sie in einer Modbus-Nachricht über den Draht kommen: 07 5B CD 15Stax

ByteOrder [= neuwertig]

15.8. Schreiben-Funktionen (Ein Datenfenster erstellen)

Die folgenden Funktionen tun das gleiche wie Sie im Dialogfeld Lese / Schreiben Definition (F8) eingerichtet haben.
The functions creates a data window and the data content in the data windows is written according to the scan rate.

15.8.1. WriteSingleCoilwin

Modbus-Funktioncode 05.

FunktionWriteSingleCoilWin(SlaveID As Integer, Address As Long, ScanRate As Long) As IntegerParameters

SlaveID:Die Slave-Adresse 1 bis 255
Adresse:Die Datenadresse (Base 0)
ScanRate:0 bis 3600000msReturn value

True if success. False if not success

15.8.2. WriteSingleRegisterWin

Modbus-Funktioncode 06.

Funktion WriteSingleRegisterWin(SlaveID As Integer, Address As Long, ScanRate As Long) As IntegerParameters

SlaveID:Die Slave-Adresse 1 bis 255
Adresse:Die Datenadresse (Base 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.

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

Modbus-Funktioncode 15.

FunktionWriteMultipleCoilsWin(SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameters

SlaveID:Die Slave-Adresse 1 bis 255
Adresse:Die Datenadresse (Base 0)
Menge:Die Anzahl der Daten. 1 bis 1968
ScanRate:0 bis 3600000msReturn value

True if success. False if not success

15.8.4. WriteMultipleRegistersWin

Modbus-Funktionscode 16.

Funktion WriteMultipleRegistersWin(SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameters

SlaveID:Die Slave-Adresse von 1 bis 255
Adresse:Die Datenadresse (Base 0)
Quantität:Die Anzahl der Daten. 1 bis 123
ScanRate:0 bis 3600000msReturn value

True if success. False if not success

16. Ausnahmen und Fehlermeldungen

Modbus Ausnahmen und Fehlermeldungen werden in rotem Text in der 2nd Linie in jedem Fenster.

Modbus Poll Englisch BenutzerhandbuchAbbildung21

16.1. Modbus Ausnahmecodes

Modbus exceptions are errors returned from the slave device.

CodeNameMeaning
01Illegal FunctionThe function code received in the query is not an allowable action for the server (or slave). This may be because the function code is only applicable to newer devices, and was not implemented in the unit selected. It could also indicate that the server (or slave) is in the wrong state to process a request of this type, for example because it is not configured and is being asked to return register values.
02Illegal Data AddressDie in der Abfrage empfangene Datenadresse ist keine zulässige Adresse für den Server. Genauer gesagt ist die Kombination von Referenznummer und Übertragungslänge ungültig. Für einen Controller mit 100 Registern adressiert die PDU das erste Register als 0 und das letzte als 99. Wenn eine Anfrage mit einer Startregisteradresse von 96 und einer Anzahl von 4 Registern gesendet wird, wird diese Anfrage (zumindest in Bezug auf die Adresse) auf den Registern 96, 97, 98, 99 erfolgreich funktionieren. Wenn eine Anforderung mit einer Startregisteradresse von 96 und einer Anzahl von 5 Registern gesendet wird, wird diese Anforderung mit Ausnahmecode 0x02 „Illegal Data Address" fehlgeschlagen, da sie versucht, auf den Registern 96, 97, 98, 99 und 100 zu arbeiten, und es gibt kein Register mit der Adresse 100.
03Illegal Data ValueA value contained in the query data field is not an allowable value for the server (or slave). This indicates a fault in the structure of the remainder of a complex request, such as that the implied length is incorrect. It specifically does NOT mean that a data item submitted for storage in a register has a value outside the expectation of the application program, since the MODBUS protocol is unaware of the significance of any particular value of any particular register.
04Server Device FailureAn unrecoverable error occurred while the server (or slave) was attempting to perform the requested action.
05AcknowledgeSpecialized use in conjunction with programming commands.
The server (or slave) has accepted the request and is processing it, but a long duration of time will be required to do so. This response is returned to prevent a timeout error from occurring in the client (or master). The client (or master) can next issue a Poll Program Complete message to determine if processing is completed.
06Server Device BusySpecialized use in conjunction with programming commands.
Der Server (oder Slave) ist damit beschäftigt, einen langen Programmbefehl zu verarbeiten. Der Client (oder Master) sollte die Nachricht später erneut übertragen, wenn der Server (oder Slave) frei ist.
0aGateway Path UnavailableSpecialized use in conjunction with gateways, indicates that the gateway was unable to allocate an internal communication path from the input port to the output port for processing the request. Usually means that the gateway is misconfigured or overloaded.
0BGateway Target Device Failed to RespondSpecialized use in conjunction with gateways, indicates that no response was obtained from the target device. Usually means that the device is not present on the network.

16.2. Modbus Poll Fehlermeldungen

Error messageMeaning
Timeout ErrorDie Antwort wurde nicht innerhalb der erwarteten Zeit erhalten.Überprüfen Sie Folgendes: Serielle VerbindungSerielle Einstellungen wie Baud-Rate, Parität, Datenbits, Stop-Bits usw. Modbus-Modus, RTU oder ASCIISlave IDResponse timeoutTCP / IP-VerbindungResponse timeoutPrüfen Sie, dass Host und Port mit dem Slave übereinstimmen
Response ErrorThe response is not the expected one. Different slave ID.
CRC ErrorThe CRC value of the received response is not correct.
Write ErrorDies ist ein Fehler, der vom seriellen Treiber gemeldet wurde. Dies kann passieren, wenn ein USB / RS232 / 485 - Wandler verwendet wird und das USB-Kabel entsteckt ist. Es gibt 4 Arten: BruchbedingungE / A-FehlerSerieller VerbindungsfehlerAusgabepufferüberflussSchreibfehler bei TCP / IP-Verbindung wird normalerweise durch verlorene Verbindung verursacht.
Read ErrorDies ist ein vom seriellen Treiber gemeldeter Fehler. Es gibt 6 Arten: Framing-FehlerCharacter Buffer OverrunParity-FehlerInput Buffer OverflowI / A-FehlerBreak ConditionRead-Fehler bei TCP / IP-Verbindung wird normalerweise durch Verlust der Verbindung verursacht.
Insufficient bytes receivedThe response is not the expected length.
Byte count errorThe byte count in the response is not correct. Compared to the expected.
Transaction ID errorIt is used for transaction pairing, the MODBUS server copies in the response the transaction identifier of the request.
Relevante Etiketten
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 Englisch Benutzerhandbuch” 》 有 8 条评论

  1. Sie erreichen im_Anschluss_an einzelnen anhaltenden Kalendertag gema? Hause zudem eigene Beine befinden_sich mude sowie fuhlen sich ahnlich_wie durch Werkstoff beladen hierbei
    Mit Veniselle ist_vorbei vorliegende Nachtmahr
    Aufbringen Sie jene Pflegemittel durch leichten Aktionen seitens untenher gegen oben hinauf zudem bereits hinter einzelnen Zeitspanne empfinden Ihnen gewisse wohltuende Kaltgefuhl sowie einzelne au?ergewohnliche Besserung
    Erhalten Sie sich diese Begeisterung bei jener Korperbewegung ausgeschlossen_von Pein au?erdem Leiden ruckwarts
    eigene Beine sollen jenes dem_Betroffenen anerkennen
    [b][url=https://bit.ly/3QvPZxX]Hier klicken zum Kaufen[/url][/b]

  2. Предлагаем профессиональную облицовку фасадов кирпичом с гарантией качества. [url=https://builder-spb.ru/kladka-oblitsovochnogo-kirpicha-cena.html]Облицовка цена за м2[/url] определяется с учетом типа кирпича, сложности кладки и архитектурных особенностей здания. Выполняем работы любой сложности, используем современные технологии и проверенные материалы. Перед началом работ составляется подробная смета без скрытых расходов. Бесплатный выезд специалиста и консультация.

  3. It’s an amazing article in support of all the web viewers; they will take advantage from
    it I am sure.

  4. Hello there! This is my 1st comment here so I just wanted to give a quick
    shout out and tell you I truly enjoy reading through your posts.
    Can you suggest any other blogs/websites/forums that go over the same topics?
    Many thanks!

  5. You could certainly see your enthusiasm in the article you write.

    The sector hopes for even more passionate writers
    like you who are not afraid to mention how they believe.
    Always go after your heart.

  6. Wow that was strange. I just wrote an incredibly long comment but after I clicked submit my comment didn’t appear.
    Grrrr… well I’m not writing all that over again. Anyways, just wanted to say fantastic blog!

  7. Excellent post. I was checking constantly this blog and I am impressed!
    Very helpful information specifically the last part :
    ) I care for such info a lot. I was seeking this particular info
    for a long time. Thank you and best of luck.

  8. Hey there, You have done an excellent job. I will definitely digg it and personally suggest
    to my friends. I’m confident they will be benefited from this web site.

Antwort veröffentlichen

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