Modbus Produkte zu empfehlen:peidianxiang.taobao.com
Modbus Poll-Bericht
Modbus pollEs ist ein sehr beliebter Modbus-Masterstation - Gerätemulator, unterstützt Modbus RTU, ASCII, TCP / IP und andere Protokollmodus, kann Modbus-Kommunikationsgeräte Personal testen und simulieren, um das Kommunikationsprotokoll zu verwenden, so dass das Gerät besser zu überwachen, testen und debuggen, sondern auch einfacher zu beobachten Modbus-Kommunikationsprozess der verschiedenen Nachrichten-Daten, nicht nur eine Menge Zeit zu sparen, sondern auch erheblich verbessern die Produktivität.
Es unterstützt eine Multi-Dokument - Schnittstelle und kann mehrere Slave-Geräte / Datendomains gleichzeitig überwachen. Jedes Fenster wird einfach von der Gerät-ID, Funktion, Adresse, Größe und Abfrageintervall eingestellt. Sie können die Register und die Spulen aus einem beliebigen Fenster lesen und schreiben. Wenn Sie ein separates Register ändern möchten, klicken Sie einfach auf diesen Wert. Oder Sie können mehrere Register / Spule-Werte ändern. Verschiedene Formaten für Daten bereitstellen, wie Gleitkomma, Doppelpräzision und Long Integer (die durch Bytes-Sequenz ausgetauscht werden können).
Modbus Poll Betriebssystemanforderungen
Hardwareanforderungen
Prozessor: Empfohlen 1 GHz oder schneller
Arbeitsspeicher: 1 GB RAM
Festplatte: 5 MB freier Festplatteplatz
Auflösung: 1024 x 768 und höher
System: Unterstützt alle Windows-Versionen von Windows 7 bis Windows 11.
Modbus Poll 7 wird unter Windows XP unterstützt.
Kündigung der Benutzerlizenzvereinbarung
Bevor Sie Modbus Poll nutzen, sollten Sie die folgenden Allgemeinen Geschäftsbedingungen sorgfältig lesen. Sofern Sie nicht eine andere Lizenzvereinbarung mit Witte Software unterzeichnet haben, akzeptieren Sie durch Ihre Nutzung der Software diese Lizenzvereinbarung und die Garantie. Wenn Sie diese Bedingungen nicht akzeptieren, müssen Sie die Nutzung der Software unverzüglich einstellen.
Urheberrecht.
Modbus Poll ("Software") Copyright 2002 - 2022 bei Witte Software, alle Rechte vorbehalten.
Bewertung und Registrierung.
Das ist keine freie Software. Hiermit ermächtigen Sie die kostenlose Nutzung der Software für 30 Tage.
Wenn Sie die Software nach dem 30 - tägigen Testzeitraum verwenden, müssen Sie eine Registrierungsgebühr zahlen.
Die Nutzung der Software, die nicht nach einem 30 - tägigen Testzeitraum registriert wird, verstößt gegen die US-amerikanischen und internationalen Urheberrechtsgesetze.
Eine registrierte Kopie der Software kann von Einzelpersonen verwendet werden, die die Software auf einem oder mehreren Computern verwenden, oder auf einem einzelnen Computer installiert werden, der von mehreren Personen verwendet wird, aber nicht gleichzeitig verwendet werden kann.
Informationen zu Bestellungen und Preisen finden Sie bitte unterhttps://www.modbustools.com/order.html
Die Modbus Poll-Lizenz ist dauerhaft. Sobald Sie die Lizenz für eine bestimmte Version erworben haben und solange Sie die Lizenzvereinbarung einhalten, können Sie diese Version dauerhaft ohne zusätzliche Kosten verwenden.
Verteilung.
Wenn Sie Ihren Lizenzschlüssel nicht enthalten, erhalten Sie hiermit die Lizenz, die Software zu kopieren; eine exakte Kopie des Originals an jeden zur Verfügung zu stellen; und die Software in unveränderter Form elektronisch zu verteilen. Es ist ausdrücklich untersagt, dass Sie für eine solche Kopie Gebühren erheben.
Begrenzte Garantie.
Die Software wird so geliefert, wie sie ist, und WITTE Software liefert keine ausdrücklichen oder stillschweigenden Garantien in Bezug auf die Software, einschließlich, aber nicht beschränkt auf alle stillschweigenden Garantien für die Vertriebsfähigkeit und die Eignung für einen bestimmten Zweck.
Schadensersatzbeschränkungen.
WITTE Software oder jede Person, die an der Erstellung, Produktion oder Lieferung der Software beteiligt ist, haftet nicht für mittelbare, Folgeschäden oder Folgeschäden, die durch die Nutzung oder Unfähigkeit der Nutzung solcher Software entstehen, selbst wenn WITTE Software über die Möglichkeit solcher Schäden oder Ansprüche informiert wurde. In keinem Fall, unabhängig von der Form des Anspruchs, haftet WITTE SOFTWARE für Schäden nicht mehr als den Preis, der für die Lizenz zur Nutzung der Software bezahlt wurde. Die Nutzer der Software übernehmen alle Risiken für die Qualität und Leistung der Software.
Modbus Poll Funktion
Verbindung
Modbus Lese - / Schreibdaten vom Gerät abfragen, wobei:
- Modbus RTU oder ASCII im RS232 - oder RS485 - Netzwerk verwendet wird. (USB/ RS232 / 485 - Konverter)
- Modbus TCP/IP
- Modbus auf TCP / IP basiert. (Modbus RTU / ASCII in einem TCP-Paket eingeschlossen)
- Modbus UDP/IP
- Modbus auf UDP / IP basiert. (Modbus RTU / ASCII in einem UDP-Paket eingeschlossen)
Unterstützte Modbus-Funktionen
- 01: Lesespule
- 02: Leses diskreter Eingang
- 03: Lesen-Halt - Register
- 04: Eingangsregister lesen
- 05: Schreiben einzelner Spulen
- 06: Schreiben einzelner Registers
- 15: Schreiben mehrerer Spulen
- 16: Schreiben mehrerer Registers
- 17: Berichtsserver-ID
- 22: Masken Schreibregister
- 23: Lesen / Schreiben Registers
- 43/14: Lesen der Geräte-Identifikation
Datenaufzeichnungen
- Datenaufzeichnungen in einer Textdatei
- Datenaufzeichnungen direkt in Excel
Anzeigeformat
- Jede Zelle kann individuell formatiert werden.
- 16 - Bit-Register mit Symbol
- 16 - Bit-Register ohne Zeichen
- Hexadezimal
- Binär
- 32 - Bit-signierte Ganzzahl in beliebiger Wort / Byte-Reihenfolge
- 32 - Bit-unsignierte Ganzzahl in beliebiger Wort / Byte-Reihenfolge
- 64 - Bit-signierte Ganzzahl in beliebiger Wort / Byte-Reihenfolge
- 64 - Bit-unsignierte Ganzzahl in beliebiger Wort / Byte-Reihenfolge
- mit beliebiger Wort / Byte-Reihenfolge 32 - Bit-Fließkommazahl in Byte-Reihenfolge
- 64 - Bit-Doppelkommazahl in beliebiger Wort / Byte-Reihenfolge
Zusätzliche Funktionen
- für die OLE / Automatisierung von Schnittstellen zu Excel VBA, Python usw.
- Datenverkehr überwachen
- Drucken und Druckvorschau
- Schriftartenauswahl
- Konditionierte Farbe
- Skalierung
- Echtzeitdiagramme
Zusammenfassung
Modbus Poll unterstützt eine Multi-Window - Schnittstelle, mit der mehrere Modbus-Slaven - Stationen und Datenzonen gleichzeitig überwacht werden. Für jedes Fenster müssen Sie einfach die ID, den Funktionscode, die Adresse, die Länge und die Abfragezeit des Modbus-Sklaven angeben, um Register und Spulen von jedem Fenster aus zu lesen und zu schreiben.

Benutzeranweisungen
按 F1Erhalten Sie Hilfe-Dokumentationen für das aktuell ausgewählte Projekt.
SHIFT + F1Aufrufen eines speziellen "Hilfe-Modus", in dem der Cursor in einen Hilfe-Cursor verwandelt wird (Pfeil + Fragezeichen). Anschließend können Benutzer sichtbare Objekte in der Benutzeroberfläche auswählen, z. B. Menüelemente, Schaltflächen in der Symbolleiste oder Fenster. Dadurch wird die Hilfe zu einem Thema geöffnet, das das ausgewählte Element beschreibt.
Benannte Zelle
Sie können hier beliebigen Text eingeben, um die Wertzelle anzugeben. Sie können auch Text aus einer Excel-Zelle kopieren / einfügen.
Wert Zelle
zeigt den Datenwert des Modbus-Registers an. Wenn Sie auf eine Wertzelle doppelklicken, können Sie in einem Dialogfeld einen neuen Wert in das Slave-Gerät schreiben. Wenn Sie eine Zahl in eine Wertzelle eingeben, wird ein Dialogfeld ebenfalls angezeigt. Sie können die Modbus-Funktion für das Schreiben von Werten auswählen.
Das Kontrollkästchen "Close dialog on Response ok" wird verwendet, um das Dialogfeld automatisch zu schließen, wenn der Wert erfolgreich gesendet wurde. Dies ist bequem, wenn Sie eine große Anzahl von Werten ändern möchten. Auf diese Weise können Sie schnell eine neue Zelle auswählen und dann erneut einen neuen Wert eingeben.

Schrift ändern
Um die Schrift zu ändern, haben Sie 2 Optionen
- Wählen Sie die Zelle aus, die Sie ändern möchten, und klicken Sie dann auf die rechte Maustaste.
- Wählen Sie die Zelle aus, die Sie ändern möchten, und wählen Sie dann Menü → Anzeige → Schrift.

Bedingte Farben
Bedingte Farben helfen Ihnen, Werte innerhalb eines bestimmten Bereichs visuell anzuzeigen. 3 Farben Auswahl
- Standardfarbe: Diese Farbe wird verwendet, wenn keine bedingte Farbe als wahr bewertet wird.
- Regel 1: Wenn der Ausdruck wahr ist, wird diese Farbauswahl verwendet.
- Regel 2: Wenn der Ausdruck wahr ist, wird diese Farbauswahl verwendet. Regel 2 hat Vorrang vor Regel 1.
7 Vergleichsoperatoren
- nicht verwendet
- gleich
- Mehr als... noch besser.
- kleiner als
- größer oder gleich
- kleiner oder gleich
- 和
Der Operator "AND" kann nicht verwendet werden, wenn der Datentyp Fließkomma oder 32 - Bit lang ist. Wenn "und" ausgewählt wird, wird der Bedingungswert als Hexadezimalzahl eingegeben. Wenn ein beliebiges Bit in der Zelle und in den bedingten Werten 1 ist, ist das Ergebnis wahr.
Farbbeispiel
Grün
Skaliert, wenn die Zellen zwischen 398 und 402 liegen
Skalieren hilft Ihnen, den ursprünglichen Wert auf einen von Menschen lesbaren Wert zu skalieren. Die Skalierung gilt nur für 16 / 32 - Bit-Ganzzahlen mit und ohne Zeichen.
(X1, Y1) und (X2, Y2)
durch (X1, Y1) und (X2, Y2) Zwei-Punkt - Linie
Kleine l o p e = m = ja 2 - ja 1X2 - X1 Kleine l ○ pe = m = ja 2 - ja 1X2 - X1 - Linie Gleichung
ist = m⋅ (X-X1) + Y1 ist = m⋅ (X-X1) + ist die Zahl der Ziffern nach dem Dezimalpunkt von 1 exakt
. Enable
Es muss aktiviert sein, um die Werte von Modbus-Servern / Slaves zu skalieren. Wenn Sie kein 16 / 32 - Bit-Gewinnzahlanzeigeformat wählen, wird das Skalieren automatisch deaktiviert.
Echtzeit-Charts
Dieses Diagramm kann in Echtzeit in 12 Serien mit bis zu 100.000 Punkten pro Serie gezeichnet werden.
Neues Fenster öffnen
Um ein weiteres Fenster zu öffnen, haben Sie 3 Optionen:
Verbindungsdialog
Um das Verbindungsdialog zu öffnen, haben Sie 2 Optionen:
- Drücken Sie F3
- Wählen Sie Verbindungen aus dem Verbindungsmenü
Kontakt
Es gibt 5 verschiedene Verbindungsarten:
- Seriell:
Modbus über serielle Leitungen. RS232 oder RS485 Es kann ein USB-Serial - Wandler verwendet werden. - Modbus TCP / IP:
Wählen Sie TCP / IP, wenn Sie mit einem MODBUS-TCP / IP - Netzwerk kommunizieren möchten. In diesem Fall ist die Slave-Station - ID identisch mit der in MODBUS TCP / IP verwendeten Einheit-ID.
Die Portnummer lautet standardmäßig 502.
Wenn die Verbindung fehlschlägt, versuchen Sie, ob Sie das Gerät in der Eingabeaufforderung ping können. Wenn der Befehl ping fehlschlägt, schlägt auch die Modbus Poll fehl. - Modbus UDP / IP:
Wenn Sie mit einem MODBUS-UDP / IP - Netzwerk kommunizieren möchten, wählen Sie UDP / IP aus. Dies ist dasselbe wie Modbus TCP / IP, aber das UDP-Protokoll ohne Verbindung verwendet wird. - Modbus RTU / ASCII über TCP / IP:
Dies ist eine RTU - oder ASCII-Nachricht, die über ein TCP / IP-Netzwerk anstatt über eine serielle Leitung gesendet wird. - Modbus RTU / ASCII über UDP / IP:
Dies ist eine RTU - oder ASCII-Nachricht, die über ein UDP / IP-Netzwerk und nicht über eine serielle Leitung gesendet wird.
| Verbindungstypen 3 - 5 sind nicht die vonwww.modbus.organgegebenen Standardmodbus, wurden aber aus einfachen Gründen hinzugefügt. |
Abhängig von Ihrer Wahl werden einige andere Einstellungen grau.
Serial-Einstellungen
Verwenden Sie diese Parameter, um die seriellen Port-Einstellungen festzulegen. Sie sind nur verfügbar, wenn der Verbindungstyp "Serial Port" ist. Modus
Verwenden Sie diese Option, um denRTU或ASCII- Modus auszuwählen. Die RTU ist aus. Response Timeout
Gibt an, wie lange die Modbus Poll auf eine Antwort des Geräts warten sollte, bevor sie aufgegeben wird. Der Standardwert ist 1000 Millisekunden. Minimale Verzögerung zwischen den Polls
Diese Einstellung gewährleistet eine minimale Verzögerung vor der Übertragung der nächsten Anforderung unabhängig von der Scanrate. Die Auflösung dieser Einstellung beträgt ca. 15ms. Auf einigen Computern ist eine bessere Auflösung verfügbar, aber nicht auf allen.
| Wenn Sie diesen Wert auf weniger als 20 Millisekunden festlegen, ist ein Intervall von 3,5 Zeichen zwischen der Antwort und einer neuen Anfrage nicht garantiert. Dies liegt daran, dass der Windows-Terminator alle 10 bis 20 Millisekunden die Aufgaben wechselt. Wenn Sie mehrere Slaves in einem seriellen RS485 - Netzwerk abfragen, sollten Sie diesen Wert nicht auf weniger als 20 Millisekunden festlegen. Dies ist, um ein Intervall von 3,5 Zeichen zu gewährleisten. In einem TCP / IP-Netzwerk ist weniger als 20 Millisekunden in Ordnung. Eine serielle Verbindung mit nur einem Slave-Gerät, die weniger als 20 ms dauert, ist möglich. |
Remote-Server
Die Remote-Server - Einstellungen sind nur verfügbar, wenn eine Ethernet-Verbindung verwendet wird. IP-Adresse
IP-Adresse des Servers. Standardmäßig ist der localhost 127.0.0.1 - Port
Serverportnummer. Die Standard-Verbindungszeitüberschreitung 502
wird für die maximale Zeit verwendet, um eine Verbindung herzustellen. Standard 1000
Erweiterte Einstellungen
RTS-Schalter
RTS Toggle gibt an, dass die RTS-Leitung hoch ist, wenn die Bytes für die Übertragung verfügbar sind. Nachdem alle Puffer-Bytes gesendet sind, wird die RTS-Leitung niedrig.
Wenn Sie einen 232 / 485 - Wandler ohne automatischen Richtungsschalter haben, können Sie ihn verwenden, um die Richtung zu wechseln.
| Wenn möglich, sollten Sie RS232 / RS485 - Wandler mit RTS-Steuerung vermeiden. Bei Nicht-Echtzeit - Betriebssystemen wie Windows und Linux ist es schwierig, den genauen Zeitpunkt zu bestimmen, an dem der Sender ausgeschaltet wird. Wenn Sie zu früh schließen, können sich die Zeichen noch im Sendenregister von FIFO oder UART befinden, und diese Zeichen gehen verloren. Die Station kann diese Nachricht nicht erkennen. Auf der anderen Seite, wenn es zu spät geschlossen wird, wird die Nachricht der Slave-Station zerstört und die Master-Station wird die Nachricht nicht erkennen können. |
DSR
DSR Gibt an, ob ein DSR-Signal (Data Set Ready) für die Ausgangsstromsteuerung überwacht wird. Wenn dieses Mitglied TRUE ist und die DSR ausgeschaltet ist, wird die Ausgabe angehalten, bis die DSR erneut gesendet wird.
CTS Gibt an, ob das CTS-Signal (Clear Send) für die Ausgangsstromsteuerung überwacht wird. Wenn Sie dieses Kontrollkästchen aktivieren und das CTS deaktivieren, wird die Ausgabe angehalten, bis das CTS erneut gesendet wird. DTR
DTR Gibt an, ob DTR aktiviert oder deaktiviert wird, wenn der Port geöffnet wird. Entfernen von Echo
Wenn Ihr Gerät oder der RS232 / RS485 - Wandler das gerade gesendete Zeichen wiederholt.
Lesen / Schreiben Definition
Verwenden Sie diesen Befehl, um die Daten zu definieren, die von einem aktiven Fenster überwacht werden sollen.
Um das Lesen / Schreiben-Definitionsdialog zu öffnen, haben Sie 3 Optionen:
Stations-ID
Bereich von 1 bis 255. (Die Modbus-Protokoll - Spezifikation sagt 247). Der Wert 0 wird auch für die direkte Kommunikation mit MODBUS / TCP oder MODBUS / UDP-Geräten akzeptiert.
Funktionscode
Sie können einen von acht Funktionscodes wählen.
5.2.1。Les en Sie Funk tionen
Die von der Lesen-Funktion zurückgegebenen Daten werden im Rasterfenster angezeigt.
- 01: Lese-Spule (0x)
- 02: Leses diskreter Eingang (1x)
- 03: Lesehaltregister (4x)
- 04: Lesehaltregister (3x)
5.2.2. Schreiben von Funktionen
Schreiben von Funktionen Schreiben von Daten, die in einem Rasterfenster angezeigt werden.
- 05: Schreiben einzelner Spule (Schreiben Spule Zustand)
- 06: Schreiben einzelner Register (Schreiben Halte Register)
- 15: Schreiben an mehreren Spulen
- 16: Schreiben an mehrere Register
Adresse
Die Adresse im Modbus-Protokoll ist verwirrend! Einige Protokolle spezifizieren die Verwendung von Protokoll - / Nachrichtenadressen, während andere Geräteadressieren verwenden.
5.3.1。Vereinbar ung / Nach richt Ad resse
Einige Protokollspezifikationen verwenden eine Protokoll - / Nachrichtenadresse, die von 0 bis 65535 zählt, sowie einen Funktionscode. Dies wird auch in der neuen Modbus-Spezifikation verwendet. Dies ist die Adresse in einer Nachricht, die über das Netzwerk gesendet wird.
Modbus Polls verwenden Protokoll - / Nachrichtenadressen, die von 0 bis 65535 gezählt werden.
5.3.2. Geräte Adresse
Einige Protokolle spezifizieren die Verwendung von Geräteadressen / Registers. Die Zählung beginnt mit 1. Die erste Zahl beschreibt die zu verwendenden Funktionen. Dies bedeutet, dass die Gerätadresse 40101 durch die Adresse 100 identifiziert wird.„4" steht für das Haltregister, 4x-Register zählen von 1 an. Noch verwirrender ist: 4x steht für den Funktionscode 03, 3x steht für den Funktionscode 04!
5.3.3. 5 und 6 Adressen
4x Adressformat von 40001 bis 49999. Die nächste Adresseist nicht50000. Früher waren 9999 Adressen ausreichend. In manchen Fällen reicht 9999 nicht aus. Fügen Sie dann eine Null hinzu. 40101 wird 400101 und so weiter. Dies wird als 6 - Bit-Adressierung oder erweiterte Adressierung bezeichnet.
Das ist nicht das Problem der Modbus Poll. 410001 wird in 10000 geändert. Die "4" wird verworfen und der Rest von 10001 minus 1, weil wir von 0 statt von 1 gezählt werden.
5.3.4. Beispiel für Adresse
Diese Beispiele zeigen, wie Modbus-Abfragen eingerichtet werden können, wenn die Spezifikation Geräteadressen verwendet.
Lese-Halt - Register
Sie möchten 20 Register alle 1000 Millisekunden von der Gerätadresse 40011 von ID 2 lesen. Von "4" wissen wir, dass dies die Funktion 03 "Lesen halten Register".
- Abstand-Station - ID = 2
- Funktion = "03 Lesen-Halt - Register (4x) "
- Adresse = 10 (11 minus 1)
- Anzahl = 20
- Scanrate = 1000
Diskrete Eingabe lesen
Sie möchten alle 500 Millisekunden 1000 Spulen von der Adresse 110201 der Slave-Station - ID5 lesen. Von "1" wissen wir, dass dies die Funktion02 "Lesen diskrete Eingabe"
- von der Station ID = 5
- Funktion = "02 Lesen diskrete Eingabe (1x)"
- Adresse = 10200 (10201 - 1)
- Anzahl = 1000
- Scanrate = 500
Scanrate
Die Scanrate kann auf 0 bis 3600000ms festgelegt werden. Beachten Sie, dass es sinnlos ist, die Scan-Rate auf niedriger als die Transaktionszeit einzustellen. Wenn Sie eine serielle Verbindung von 9600 Baute verwenden und 125 Register anfordern, beträgt die Transaktionszeit etwa 8 + 2 + 250 + 2 = 262 ms + die Lücke zwischen Anforderung und Antwort (> 3,5 Zeichenzeit). In diesem Fall ist es sinnlos, die Scan-Rate auf beispielsweise 100 Millisekunden einzustellen, da die Transaktionszeit mindestens 262 Millisekunden + die Verzögerung (Lap) in der Slave-Station + die minimale Zeit zwischen den Polls beträgt. (Einstellungen im Verbindungsdialogfeld F3).
Lesen / Schreiben deaktiviert
Mit dem Kontrollkästchen "Lese / Schreiben deaktiviert" können Sie die Kommunikation in diesem Fenster vorübergehend aktivieren oder deaktivieren. Dann wird der Text (deaktiviert) sowie der Tx - und Fehlerzähler angezeigt.
5.5.1。Ver bot en bei Fehler n
Lesen / Schreiben bei Fehlern deaktivieren.
Spalte mit Namen ausblenden
Alle Namen verstecken. Wenn Sie sie nicht verwenden, können Sie bequem mehr Platz freisetzen.
Adresse in der Zelle
Wenn aktiviert, wird die Adresse auch in der Wertzelle angezeigt, z. B.: 2000 = 00000
SPS-Adresse (Basis 1)
Diese Option zeigt die Adresse als Gerätadresse an.
Das Enron / Daniel Modell
Enron oder Enron / Daniels Modbus ist ein Standardmodbus mit einigen "Vendor-Erweiterungen". Die genaue Wirkung dieser Erweiterungen hängt vom Kontext ab, aber die häufigsten Modbus-Befehle funktionieren wie erwartet. Es gibt einige benutzerdefinierte, von Herstellern definierte Funktionen - aber nur wenige Benutzer erwarten oder nutzen sie. Die größten Auswirkungen beziehen sich auf die Art und Weise, wie 32 - Bit-Datenwerte gelesen / geschrieben werden.
Enron-Modbus definiert zwei spezielle 4x-Halt - Registerbereiche:
- 4x5001 bis 4x5999 wird als 32 - Bit-große Ganzzahl (4 Byte pro Register) angenommen.
- 4x7001 bis 4x7999 werden 32 - Bit-Fließkommazahlen (4 Bytes pro Register) angenommen.
Die Verarbeitung von 32 - Bit-Werten in Modbus ist nicht nur für Enron-MB. Jedoch hat Enron-MB den umstrittenen Schritt unternommen, um 4 Bytes pro Register zurückzugeben, anstatt 2 Bytes, wie der Begriff "Halt Register" in der Modbus-Spezifikation impliziert. Dies bedeutet, dass ein Polling der Register 4x5001 und 4x5002 in Enron-Modbus 8 Bytes oder zwei 32 - Bit-Gewinnzahlen zurückgibt, während ein Standard-Modbus nur 4 Bytes oder eine 32 - Bit-Gewinnzahl zurückgibt, die als zwei 16 - Bit-Gewinnzahlen angesehen wird. Darüber hinaus gibt das Polling-Register 4x5010 in Enron-MB die zehnte 32 - Bit lange Ganzzahzahl zurück, während Standardmodbus die Hälfte der fünften 32 - Bit langen Ganzzahzahl in diesem Bereich berücksichtigt.
行
Geben Sie die Anzahl der Zeilen im Raster an, die Sie bevorzugen.
Echtzeit-Diagramm
Mit diesem Befehl können Sie bis zu 12 Datenreihen in Echtzeit in einem Diagramm zeichnen.
Die Echtzeit-Diagramme sind hochgeschwindig und können neue Linien zeichnen, sobald neue Daten erhalten werden.
| Alle Diagrammeinstellungen werden im Arbeitsbereich gespeichert.Arbeitsbereich speichern / öffnen |
Um das Live-Diagramm - Dialogfeld zu öffnen, haben Sie 2 Optionen:
- Alt + R drücken
- Wählen Sie im Anzeigenmenü "Echtzeit-Diagramm"
Die X-Achse zeigt die Anzahl der Sekunden seit dem Diagrammstart an.
Wenn der Punkt am Ende des Diagramms erreicht, gibt es 3 Optionen:
- Stoppt am Ende:Das Diagramm stoppt.
- Neustart am Ende:Die Karte beginnt neu.
- Weiter:Es dauert an, bis die maximale Punktzahl erreicht oder Stopp gedrückt wird.
Einstellung
Standardmäßig sind alle zwölf Serien an die linke Y-Achse verknüpft Wenn Sie die Serie mit der rechten Y-Achse verknüpfen möchten, aktivieren Sie das Kontrollkästchen „Rechte Y-Achse". Geben Sie
- Farbe
- Rechte Y-Achse
- Titel
- Ausgleich
Anzeige
- Dateiname
- Adresse
Der Offset ist nützlich, um Datenpunkte auf derselben Y-Achse auszurichten. Beispielsweise können Sie Datenpunkte von 0 oder 1 verschieben, so dass sie nicht aufeinander angezeichnet werden.
Zoom-Funktion
Wenn Sie weitere Details anzeigen möchten, kann es nützlich sein, das Diagramm zu vergrößern. Die Skalierung wird durch die linke Maustaste gesteuert. Um einen bestimmten Teil des Diagramms zu skalieren, klicken Sie einfach mit der linken Maustaste auf das Diagramm (dies wird die linke obere Ecke des Zoom-Rechtecks sein) und ziehen Sie in die untere rechts Ecke. Es wird ein Rechteck entstehen. Sobald Sie die Maustaste loslassen, passt sich die Welle automatisch an den von Ihnen gewählten Bereich an.
Wenn Sie mit der linken Maustaste auf ein Diagramm klicken (z. B. mit dem Zoom beginnen), aber wenn Sie sich in die obere linke Ecke bewegen, werden alle Änderungen, die Sie mit der Funktion Zoom und Panorama vorgenommen haben, rückgängig gemacht (das Diagramm bleibt in seinem ursprünglichen Zustand, bevor Sie mit Panorama und Panorama vorgenommen haben).
Panorama-Funktion
Um ein Steuerelement zu schwenken, klicken Sie mit der rechten Maustaste irgendwo auf dem Steuerelement und bewegen Sie die Maus. Der Punkt unter der Maus folgt der Bewegung der Maus.
Verknüpfen von Daten mit einer Diagrammreihe
Es sei denn, Sie verknüpfen die Modbus-Dateneinheit mit einer der 12 Serien, das Diagramm weiß nicht, welche Daten verwendet werden sollen. Wählen Sie hierzu eine Wertzelle aus und wählen Sie dann "Verknüpfen mit einem Diagramm" aus dem Menü → Anzeige.
Kopieren von Serien
Speichert Seriendaten auf der Festplatte oder kopiert sie in die Zwischentafel. Fügen Sie die Daten direkt in Excel zur weiteren Verarbeitung ein.
Die Datei hat trotz der Verwendung von nicht-Komma - Feldtrennern die Erweiterung .csv.
Trennzeichen:Wählen Sie die Zeichen aus, die Werte in der Textdatei trennen. Verwenden Sie Excel-Tabs. Darüber hinaus wurden einige zusätzliche Informationen gegeben.
- Punkte
- Maximaler Punktwert
- Minimaler Punktwert
- Durchschnittspunktwert
Anzeigeformat
Markiert die Zellen, die formatiert werden sollen. Wählen Sie im Anzeigemenü eines der 28 Anzeigestellungen aus.
Natives Modbus-Register
Das 16 - Bit-Modbus - Register kann in vier verschiedenen Modi angezeigt werden.
- 签
- nicht unterschrieben
- Hexadezimal
- Binär
32 - Bit-signierte Ganzzahl
Diese kombiniert zwei 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.
- Symbolische Ganzzahl Big-endian
- Symbolische Ganzzahl Little-endian
- Symbolische Ganzzahl Big-End Byte Exchange
- Symbolische Ganzzahl Small-End Byte Exchange Beispiel Bytes Reihenfolge:AB CD (Big-endian)
Dezimalzahl 123456789 oder Hexadezimalzahl07 5B CD15
Die Reihenfolge, in der sie in einer Modbus-Nachricht durch die Linien gehen:07 5B CD15
32 - Bit unsignierte Ganzzahl
Diese kombiniert zwei 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.
- unsignierte Ganzzahl Big-endian
- unsignifizierte Ganzzahl Kleine Sequenz
- unsignierte Ganzzahl Big-End - Byte-Austausch
- unsignierte Ganzzahl Kleine-End - Byte-Austausch Beispiel Byte-Sequenz:AB CD (Big-endian)
Dezimalzahl 123456789 oder Hexadezimalzahl07 5B CD15
Die Reihenfolge, in der sie in einer Modbus-Nachricht durch die Linien gehen:07 5B CD15
64 - Bit-signierte Ganzzahl
Dies kombiniert vier 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.
- Signierte Ganzzahl Big-endian
- Signierte Ganzzahl Little-endian
- Signierte Ganzzahl Big-End Byte Exchange
- Signierte Ganzzahl Small-End Byte Exchange Beispiel Byte Reihenfolge:AB CD EF GH (Big-End)
Dezimalzahl - 1,234,567,890,123,456,789 oder HexadezimalEE DD EF0B82 16 7E EB
Reihenfolge, in der die Linien in einer Modbus-Nachricht durchlaufen werden:EE DD EF0B82 16 7E EB
64 - Bit unsignierte Ganzzahl
Diese kombiniert vier 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.
- Unsignierte Ganzzahl Big-endian
- Unsignierte Ganzzahl Kleine Sequenz
- Unsignierte Ganzzahl Big-endian Byte-Austausch
- Unsignierte Ganzzahl Small-End - Byte-Austausch Beispiel Byte-Reihenfolge:AB CD EF GH (Big-End)
Dezimal 1,234,567,890,123,456,789 oder Hexadezimal11 22 10 F4 7D E9 81 15
Die Reihenfolge, in der sie in einer Modbus-Nachricht durch die Linie gehen:11 22 10F4 7D E9 81 15
32 - Bit-Floating
Dieses System kombiniert zwei 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.
- Schwimmen am Ende
- Kleine Schwimmbänder.
- Großer Austausch von Schwimmen.
- Kleines Beispiel für den Austausch von Bytes:AB CD (Big-endian)
Fließkommazahlen 123456.00 oder Hexadezimal47F1 20 00
Die Reihenfolge, in der sie in einer Modbus-Nachricht durch die Linie gehen:47F1 20 00
64 - Bit Doppelpräzision
Dies kombiniert vier 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.
- Doppelte große Enden
- Doppel-Small - End-Sequenz
- Doppel-Big - End-Byte - Austausch
- Doppel-Small - End-Byte - Austausch Beispiel-Byte - Reihenfolge:AB CD EF GH (Big-endian)
Fließkommazahlen 123456789.00 oder Hexadezimal41 9D6F 34 54 00 00 00
Die Reihenfolge, in der sie in einer Modbus-Nachricht durch die Linie gehen:41 9D6F34 54 00 00 00
Speichern / Öffnen eines Arbeitsbereichs
Wenn Sie viele verwandte Modbus-Fenster öffnen, ist es bequem, einen Snapshot aller geöffneten und angeordneten Modbus-Fenster in einem Arbeitsbereich zu speichern.
Der Arbeitsbereich (* mbw) ist eine Datei, die die Anzeigeinformationen und den Dateinamen aller geöffneten Fenster enthält. Nicht der tatsächliche Inhalt. Gehen Sie zu diesem Zweck zu Datei → Arbeitsbereich speichern
Wenn Sie eine Arbeitsbereichsdatei öffnen, öffnet Modbus Poll alle Modbus-Fenster und zeigt sie in Ihrem gespeicherten Layout an.
Export als csv
Exportiert Namen und Werte in eine Wertdatei, die durch Komma, Semikolon oder Tabs getrennt wird. Wählen Sie im Datei-Dialogfeld
- Komma-getrennte Wertdatei (*. csv)
Temperatur, "19.7" - Semikolon-getrennte Wertdatei (*. csv)
Temperature; "19.7" - Tab-getrennte Wertdatei (*. txt)
Temperatur 19,7
Je nach Ihrem System werden Kommas oder Punkte verwendet, um Dezimalzahlen zu trennen.
Testzentrum
Dieses Testdialogfeld soll den Entwicklern von MODBUS-Geräten helfen, Geräte mit einer von ihnen selbst erstellten Zeichenfolge zu testen.
Das Listenfeld zeigt die gesendeten Daten und empfangenen Daten an.
Sie können mehrere Testzeichenfolgen im Dropdown-Liste - Feld haben. Nachdem Sie die Zeichenfolge eingegeben haben, drücken Sie die Schaltfläche „Zu Liste hinzufügen", und fügen Sie die Zeichenfolge der Liste hinzu.
Sendet die ausgewählte Zeichenfolge, wenn Sie die Taste "Senden" drücken.Öffnen Sie die Liste
Ausruhen der Testzeichenfolge aus der Datei. Speicherliste
Speichert die Testzeichenfolge in einer Datei. Beseitigung
Löschen Sie die Testliste. zur Liste hinzufügen
Fügt der aktuellen Testzeichenfolge der Liste hinzu. Hinzufügen von Check
Fügt CRC oder LRC am Ende der Eingabezeichenfolge hinzu.
Wenn Sie das Prüfungszentrum verwenden, möchten Sie möglicherweise die Kommunikation aus anderen Fenstern deaktivieren. Aktivieren Sie das Kontrollkästchen Lesen / Schreiben deaktivieren im Dialogfeld Lesen / Schreiben-Definition. Setzen → Lesen / Schreiben Definitionen.
ASCII-Beispiel
Zeichenkette im Kombinationsfeld:
3A 30 31 30 33 30 30 30 30 30 30 30 41
Die übertragene Zeichenkette
3A 30 31 30 33 30 30 30 30 30 30 30 41 46 32 0D 0A
fügt auch ein CR-LF - Paar hinzu, wenn LRC hinzugefügt wurde.
TCP / IP Beispiel
Lesen Sie 10 Register.
00 00 00 00 00 06 01 03 00 00 00 0A
Die ersten sechs Bytes sind TCP / IP-Header.
Testcenter String-Datei
Mit einem Notepad oder einem ähnlichen Texteditor können Sie die Zeichenfolgen für den Test vorbereiten.
Die erste Zeile in der Datei muss die Zeichenfolge "TestCenter" sein. Auf diese Weise erkennt Modbus Poll das richtige Dateiformat. Drücken Sie "Liste öffnen", um die vorbereitete Textdatei zu öffnen.
10.3.1. Inhalt der Stringliste
测试中心 3A 30 31 30 33 30 30 30 30 30 30 30 41 3A 30 32 30 33 30 30 30 30 30 30 30 41 3A 30 33 30 33 30 30 30 30 30 30 30 41
Kopieren
Verwenden Sie die Kopie-Taste, um die ausgewählte Tx / Rx-Zeichenfolge in die Zwischenablage zu kopieren.
Die SHIFT - und STRG-Tasten können mit der Maus verwendet werden, um eine Zeichenfolge auszuwählen und auszuwählen, eine Gruppe von Zeichenfolgen auszuwählen und nicht benachbarte Zeichenfolgen auszuwählen.
| Dieses Fenster wird geöffnet, während andere Befehle ausgeführt werden. |
Modbus-Datenprotokoll
Sie können Daten in Textdateien oder direkt in Microsoft Excel protokollieren.
Textdatei
Wählen Sie das Protokoll aus dem Einstellungsmenü oder verwenden Sie die Verknüpfungstaste: Alt + L
Jedes Modbus-Fenster wird in einer separaten Textdatei protokolliert.
Wenn Sie die Datenerfassung beenden möchten, wählen Sie im Einstellungsmenü den Befehl Abmeldung aus.
11.1.1. Tagebuch-Rate
Schreibt eine Protokollzeile für alle Modbus-Anfragen pro Lesen
Aufzeichnen Sie die Frequenz als Scanrate. Wählen Sie
Geben Sie die Protokollrate in Sekunden an. Es hat nichts mit der Scan-Rate zu tun.
| Wenn die Scan-Rate beispielsweise 10000 ms beträgt, ist es sinnlos, die Log-Rate auf 1 Sekunde zu setzen, da die Daten nur protokolliert werden, wenn neue Daten bereit sind. |
11.1.2. Trennzeichen
Als Trennzeichen können Sie eine der folgenden Optionen verwenden: Fixed Width
zeigt an, dass die Werte nach Spalten organisiert werden. Komma
Werte, die durch Komma getrennt sind. Tag
Werte, die durch Tabler getrennt sind.
11.1.3. Nur Datenänderungen protokollieren
Gibt an, dass die neue Protokollzeile nur dann geschrieben wird, wenn seit dem letzten Protokoll irgendwelche Datenänderungen vorgenommen wurden.
11.1.4. Aufzeichnung Fehler
Fehler, wie z. B. Zeitüberschreitung der angegebenen Aufzeichnung.
11.1.5。Dat ums ver zeich nis
Geben Sie an, dass das aktuelle Datum der Protokollzeit hinzugefügt wird.
11.1.6。Auf zeichnung Mill isek unden
Geben Sie an, dass Millisekunden der Protokollzeit hinzugefügt werden.
11.1.7。Journal Ad resse
Gibt an, dass die Modbus-Adresse dem Protokoll hinzugefügt wird.
11.1.8。Auf zeichnung starten , wenn Sie OK dr ücken
Geben Sie an, dass die Aufnahme beginnt, wenn Sie die OK-Taste drücken. Andernfalls werden die Protokoll-Einstellungen nur beim Speichern der * mbp-Datei gespeichert.
11.1.9。Start des Protokoll s beim Ö ff nen von * mb p
Gibt an, dass die Protokollierung beim Öffnen der *. mbp-Datei automatisch gestartet wird.
11.1.10。So for tige Ak tual isierung des Arch iv s
Dadurch wird sichergestellt, dass die Logzeilen nicht im Dateisystem ausgewertet werden, sondern sofort physisch geschrieben werden.
11.1.11。Zus ätz lich
Gibt an, dass das Protokoll an die ausgewählte Datei angehängt wird. Andernfalls wird ein neues Dokument erstellt.
11.1.12。Ne ue Protokoll date ien um Mit terna cht
Schließt die aktuelle Protokolldatei und startet um Mitternacht eine neue. Der Zeitstempel wird zu Ihrem Dateinamen hinzugefügt.
Beispiel für eine Textdatei mit fester Breite:
22:28:13 <40001> 17395 0 0 0 0 0 0 0 0 22:28:14 <40001> 17396 1 0 0 0 0 0 0 0 22:28:15 <40001> 17394 1 0 0 2 55 0 0 0 22:28:16 <40001> 13350 1 0 0 4 0 0 0 0
Sie können Daten in eine Excel-Tabelle importieren.
Mit Microsoft Excel
Diese Funktion erfordert die Installation von Microsoft Excel. Excel 2003 - Protokolle sind auf 65.535 Protokolle begrenzt, da dies die maximale Anzahl von Zeilen in einem Excel-Arbeitsblatt ist. Excel 2007 oder höher ist auf 1.048.576 Zeilen begrenzt. Jedes Modbus-Fenster wird in einer separaten Excel-Tabelle protokolliert.
Wählen Sie das Excel-Protokoll aus dem Einstellungsmenü oder verwenden Sie die Verknüpfungstaste: Alt + X
Berühren Sie die Excel-Tabelle nicht, da dies die Aufzeichnung unterbricht.
11.2.1. Tagebuch-Rate
- pro Lesen:Schreibt die Log-Zeile für alle Modbus-Anfragen. Aufzeichnen Sie die Frequenz als Scanrate.
- Auswahl:Geben Sie die Log-Rate in Sekunden an. Das Protokoll hat nichts mit der Scanrate zu tun.
Hinweis:Wenn die Scanrate beispielsweise 10000 ms beträgt, ist es sinnlos, die Aufzeichnungsrate auf 1 Sekunde einzurichten, da die Daten nur aufgezeichnet werden, wenn neue Daten bereit sind. - Nach dem Stopp:Angabe der Anzahl der Zeilen des Protokolls. Bitte beachten Sie, dass Excel 2003 auf 65.536 Zeilen und Excel 2007 auf 1.048.576 Zeilen begrenzt ist.
11.2.2.Überschrift Informationen
- Einfügen Sie den Titel ein:Die Informationen werden in die obersten 3 Zeilen des Excel-Arbeitsblattes eingefügt.
- Benennen der Zelle in der ersten Zeile:Fügen Sie den Namen in Zeile 3 ein.
- Polling-Definition:Fügen Sie ID, Funktion usw. in Zeile 2 ein.
- Name:Fügen Sie in Zeile 1 einen Lognamen ein.
Excel-Protokolle mit Titelinformationen.
Kommunikationsverkehr
Wählen Sie das Menü Display → Communication, um den Datenverkehr auf einer seriellen Linie oder einem Ethernet-Kabel anzuzeigen. Verwenden Sie die Schaltfläche Stoppen, um die Aktualisierung vorübergehend zu stoppen, um zu überprüfen.
Verwenden Sie die Kopie-Schaltfläche, um die ausgewählte Zeile in die Zwischentafel zu kopieren.
| Dieses Fenster zeigt nur die Daten an, die von Modbus Poll gesendet und empfangen werden. Sie können es nicht als Daten-Sniffer verwenden. |
| Dieses Fenster wird geöffnet, während andere Befehle ausgeführt werden. |
OLE / Automatisierung
Automatisierung (früher als OLE-Automatisierung bezeichnet) ermöglicht es einer Anwendung, Objekte zu manipulieren, die in einer anderen Anwendung implementiert sind.
Ein Automatisierungsclient ist eine Anwendung, die ein öffentliches Objekt, das einer anderen Anwendung gehört, manipulieren kann. Dies wird auch als Automatisierungsteuerung bezeichnet.
Ein Automatisierungsserver ist eine Anwendung, die programmierbare Objekte für andere Anwendungen veröffentlicht.Modbus PollEs handelt sich um einen automatisierten Server.
Das bedeutet, dass Sie jedes Programm verwenden können, das VBA (Visual Basic for Applications) unterstützt, wie Visual Basic, Excel usw., um Modbus-Daten nach Ihren spezifischen Anforderungen zu interpretieren und anzuzeigen.
Excel-Beispiel
Wenn Sie ein Makro schreiben möchten, sollten Sie die Registerkarte Entwickler anzeigen oder im Entwicklermodus ausführen.
13.1.1. Excel 2007
- Klicken Sie auf die Schaltfläche Microsoft Office, und klicken Sie dann auf Excel-Optionen.
- Klicken Sie auf Beliebt und aktivieren Sie dann die Registerkarte Entwickler anzeigen im Kontrollkästchen des Bands.
Beachten Sie, dass das Band Teil der Microsoft Fluent-Benutzeroberfläche ist.
13.1.2. Excel 2010, 2016
- Klicken Sie auf die Registerkarte Datei.
- Klicken Sie auf Optionen. Das Excel-Optionenfenster wird geöffnet.
- Klicken Sie im linken Bereich auf das benutzerdefinierte Band.
- Wählen Sie im rechten Bereich unter der Haupt-Registerkarte das Kontrollkästchen Entwickler.
- Klicken Sie auf OK. Die Entwickler-Registerkarte sollte nun im Leibband (rechtsseitiges Registerkarte) angezeigt werden.
13.1.3. Excel-Beispielcode
Dieses Beispiel öffnet zwei Fenster. Ein Lesegister und eine weitere Lesespule.
Die Modbus-Umfrage ist versteckt, aber Sie können sie anzeigen, indem Sie die Zeile "ShowWindow" dekommentieren. Dadurch wird eines der Fenster angezeigt.
Ein Beispiel ist ebenfalls in der Installation von Modbus Poll enthalten.
Start → Alle Programme → Modbus-Polling → Excel-Beispiel Excel VBA-Beispiel
Public doc1 As Object
Public doc2 As Object
Public app As Object
Dim res As Integer
Dim n As Integer
Private Sub StartModbusPoll_Click()
Set app = CreateObject("Mbpoll.Application")
Set doc1 = CreateObject("Mbpoll.Document")
Set doc2 = CreateObject("Mbpoll.Document")
' Read 10 Holding Registers every 1000ms
res = doc1.ReadHoldingRegisters(1, 0, 10, 1000)
' Read 10 Coil Status every 1000ms
res = doc2.ReadCoils(1, 0, 10, 1000)
' doc1.ShowWindow()
app.Connection = 1 ' Modbus TCP/IP
app.IPAddress = "127.0.0.1" ' local host
app.ServerPort = 502
app.ConnectTimeout = 1000
res = app.OpenConnection()
End Sub
Private Sub Read_Click()
Cells(5, 7) = doc1.ReadResult() 'Show results for the requests
Cells(6, 7) = doc2.ReadResult()
For n = 0 To 9
Cells(5 + n, 2) = doc1.SRegisters(n)
Next n
For n = 0 To 9
Cells(18 + n, 2) = doc2.Coils(n)
Next n
End SubPython-Beispiel
Dieses Python-Beispiel öffnet ein Fenster und setzt alle möglichen Datenformate ein. Python Beispiel
import win32com.client as win32
SIGNED = 0
UNSIGNED = 1
HEX = 2
BINARY = 3
FLOAT_LE_BS = 4
FLOAT_BE = 5
DOUBLE_LE_BS = 6
DOUBLE_BE = 7
S32_LE_BS = 8
S32_BE = 9
FLOAT_LE = 10
FLOAT_BE_BS = 11
DOUBLE_LE = 12
DOUBLE_BE_BS = 13
S32_LE = 14
S32_BE_BS = 15
U32_BE = 17
U32_LE_BS = 18
U32_BE_BS = 19
U32_LE = 20
S64_BE = 21
S64_LE_BS = 22
S64_BE_BS = 23
S64_LE = 24
U64_BE = 25
U64_LE_BS = 26
U64_BE_BS = 27
U64_LE = 28
#Endianness
BE = 0
LE = 3
BE_BS = 2
LE_BS = 1
App = win32.Dispatch('Mbpoll.Application')
App.Connection = 1
App.IPAddress = "127.0.0.1"
App.ServerPort = 502
App.OpenConnection
#Create a Modbus display window called Win1
Win1 = win32.Dispatch("Mbpoll.Document")
# Read 100 holding registers from slave ID 1, address 0 (40001) every 1000ms
Win1.ReadHoldingRegisters(1, 0, 100, 1000)
# Show the Modbus window
Win1.ShowWindow()
# Show 20 rows
Win1.Rows(1)
# Disable refresh for speed
Win1.EnableRefresh = False
# Set all different formats
# This sets how the value is displayed
Win1.SetFormat(0, SIGNED)
Win1.SetFormat(1, UNSIGNED)
Win1.SetFormat(2, HEX)
Win1.SetFormat(3, BINARY)
Win1.SetFormat(4, S32_BE)
Win1.SetFormat(6, S32_LE)
Win1.SetFormat(8, S32_BE_BS)
Win1.SetFormat(10, S32_LE_BS)
Win1.SetFormat(12, U32_BE)
Win1.SetFormat(14, U32_LE)
Win1.SetFormat(16, U32_BE_BS)
Win1.SetFormat(18, U32_LE_BS)
Win1.SetFormat(20, S64_BE)
Win1.SetFormat(24, S64_LE)
Win1.SetFormat(28, S64_BE_BS)
Win1.SetFormat(32, S64_LE_BS)
Win1.SetFormat(40, U64_BE)
Win1.SetFormat(44, U64_LE)
Win1.SetFormat(48, U64_BE_BS)
Win1.SetFormat(52, U64_LE_BS)
Win1.SetFormat(60, FLOAT_BE)
Win1.SetFormat(62, FLOAT_LE)
Win1.SetFormat(64, FLOAT_BE_BS)
Win1.SetFormat(66, FLOAT_LE_BS)
Win1.SetFormat(80, DOUBLE_BE)
Win1.SetFormat(84, DOUBLE_LE)
Win1.SetFormat(88, DOUBLE_BE_BS)
Win1.SetFormat(92, DOUBLE_LE_BS)
# Set all Names to used format
Win1.SetName(0, "SIGNED")
Win1.SetName(1, "UNSIGNED")
Win1.SetName(2, "HEX")
Win1.SetName(3, "BINARY")
Win1.SetName(4, "S32_BE")
Win1.SetName(6, "S32_LE")
Win1.SetName(8, "S32_BE_BS")
Win1.SetName(10, "S32_LE_BS")
Win1.SetName(12, "U32_BE")
Win1.SetName(14, "U32_LE")
Win1.SetName(16, "U32_BE_BS")
Win1.SetName(18, "U32_LE_BS")
Win1.SetName(20, "S64_BE")
Win1.SetName(24, "S64_LE")
Win1.SetName(28, "S64_BE_BS")
Win1.SetName(32, "S64_LE_BS")
Win1.SetName(40, "U64_BE")
Win1.SetName(44, "U64_LE")
Win1.SetName(48, "U64_BE_BS")
Win1.SetName(52, "U64_LE_BS")
Win1.SetName(60, "FLOAT_BE")
Win1.SetName(62, "FLOAT_LE")
Win1.SetName(64, "FLOAT_BE_BS")
Win1.SetName(66, "FLOAT_LE_BS")
Win1.SetName(80, "DOUBLE_BE")
Win1.SetName(84, "DOUBLE_LE")
Win1.SetName(88, "DOUBLE_BE_BS")
Win1.SetName(92, "DOUBLE_LE_BS")
# Refresh
Win1.EnableRefresh = True
Win1.ResizeAllColumns ()
Win1.ResizeWindow()
print (Win1.GetName(1))
_ = input("Press ENTER to quit:")Verbindungsfunktionen / Eigenschaften
Die folgenden Eigenschaften und Funktionen sind die gleichen, wie Sie im Verbindungs-Dialogfeld (F3) eingestellt haben.
13.3.1. Kontakt
Verbindung Wählen Sie die gewünschte Verbindung. Sie können einen seriellen Port oder eine Ethernet-Verbindung wählen.
EigenschaftVerbindungist ein gültiger ganzzahlwert
0 = serieller Port
1 = Modbus TCP / IP
2 = Modbus UDP / IP
Modbus ASCII / RTU über TCP / IP
4 = Modbus ASCII / RTU über UDP / IP
Beispiel
Connection = 013.3.2. Baudrate
Nur für die Verbindung = 0
EigenschaftBaudRateals Long gültiger Wert
300
600
1200
2400
4800
9600 (Standard)
14400
19200
38400
56000
57600
115200
128000
153600
230400
256000
460800
921600 Beispiele
BaudRate = 960013.3.3 Das Datenbit
ist nur für die Verbindung = 0
EigenschaftDataBitsgültiger ganzzahlwert
7
8 (Standard)
Beispiel
DataBits = 813.3.4. Gleichwertigkeit
Nur für die Attribute Connection = 0
EigenschaftenParitätals Ganzzahl gültiger Wert
0 = Keine
1 = Gerade Zahl
2 = Gerade Zahl (Standard)
Beispiel
Parity = 213.3.5. Stoppen Sie Platz
ist nur für die Verbindung = 0
EigenschaftStopBitsgültiger ganzzahlwert
1 (Standard)
2
Beispiel
StopBits = 113.3.6 verfügbar. Serieller Port
nur für Connection = 0
Setzen Sie die SerialPort- Eigenschaft auf einen gültigen Ganzzahlwert
1...255
Standardwert = 1 Beispiel
SerialPort = 113.3.7. Modus
Nur für den Connection = 0
Attribut- Modus verfügbarist ein gültiger ganzzahlwert
0 = RTU-Modus
1 = ASCII-Modus
Beispiel
Mode = 113.3.8. Echo entfernen
Nur für Connection = 0
Wenn Ihr Gerät oder der RS232 / RS485 - Wandler das gerade gesendete Zeichen wiederholt.
EigenschaftenRemoveEchoEffektiv für ganze Zahlen
0 (Standard)
1 (Echo-Entfernung)
Beispiel
RemoveEcho = 113.3.9. ResponseTimeout
ResponseTimeout Gibt die Dauer (in ms) an, wie lange die Modbus-Poll auf eine Antwort des Geräts warten sollte, bevor sie aufgegeben wird.
EigenschaftenResponseTimeoutist ein gültiger ganzzahlwert.
50...100000
Standardwert = 1000 Beispiel
ResponseTimeout = 100013.3.10.轮询之间的延迟
属性DelayBetweenPolls为整数有效值
0…1000
默认值 = 20例子
DelayBetweenPolls = 2013.3.11。Der Server-Port
Nur für die Attribute Connection = 1...4
EigenschaftenServerPortas Long gültiger Wert
0...65535
Standardwert = 502 Beispiel
ServerPort = 50213.3.12. Connection Timeout
ConnectTimeout Gibt an, wie lange die Modbus Polls auf eine erfolgreiche TCP / IP-Verbindung warten.
Nur für Connection = 1... 4
EigenschaftenConnectTimeoutist ein gültiger ganzzahlwert
100... 30000 ms
Standardwert = 1000 ms Beispiel
ConnectTimeout = 100013.3.13. IP-Version
nur für Connection = 1...4
Die EigenschaftIPVersionist ein gültiger ganzzahlwert
4 = IP-Version 4 (Standard)
6 = IP-Version 6
Beispiel
IPVersion = 413.3.14.Öffnen von Verbindungen
Öffnet die Verbindung, die mit der Verbindungseigenschaft ausgewählt wurde.
FunktionOpenConnection() als Ganzzahlargument
Diese Funktion hat keine Argumente. Rückgabewert
Fehler 3 - 5: Bitte überprüfen Sie, ob Sie den neuesten seriellen Port-Treiber haben.
| Fehler | Beschreibung |
|---|---|
| 0 | Erfolg |
| 1 | Serieller Port nicht verfügbar |
| 3 | Serieller Port. Die aktuellen Einstellungen können vom Port-Treiber nicht abgerufen werden. |
| 4 | Serieller Port. Der serielle Port-Treiber akzeptiert keine Port Einstellungen. |
| 5 | Serieller Port. Der serielle Port-Treiber akzeptiert keine Timeout-Einstellungen. |
| 12 | Die TCP / UDP Verbindung ist fehlgeschlagen. WSA Start |
| 13 | TCP / UDP Verbindung fehlgeschlagen. Verbindungsfehler |
| 14 | TCP / UDP-Verbindung ist fehlgeschlagen. Pause |
| 15 | TCP / UDP-Verbindung ist fehlgeschlagen. IOCTL |
| 17 | Die TCP / UDP-Verbindung ist fehlgeschlagen. Socket-Fehler |
| 21 | Die TCP / UDP-Verbindung ist fehlgeschlagen. Adressinformationen |
| 255 | Verbindungen geöffnet |
Excel-Beispiel zum Öffnen einer Modbus TCP / IP-Verbindung
Public app As Object
Dim res As Integer
' Create an object to Modbus Poll
Set app = CreateObject("Mbpoll.Application")
app.Connection = 1 ' Select Modbus TCP/IP
app.IPVersion = 4
app.IPAddress = "192.168.1.27"
app.ServerPort = 502
app.ConnectTimeout = 1000
app.ResponseTimeout = 1000
res = app.OpenConnection()Python-Beispiel, wie man eine serielle Verbindung einrichtet
import win32com.client as win32
App = win32.Dispatch('Mbpoll.Application')
App.Connection = 0 # Serial connection
App.SerialPort = 3 # Com port 3
App.BaudRate = 9600 # 9600 baud
App.Parity = 0 # None parity
App.Mode = 0 # RTU mode
App.ResponseTimeout = 1000 # Wait 1000ms until give up
App.DelayBetweenPolls = 20 # Ensure minimum 20 ms gap until next request
App.OpenConnection
#Create a Modbus display window called Win1
Win1 = win32.Dispatch("Mbpoll.Document")
# Read 10 holding registers from slave ID 1, address 0 (40001) every 1000ms
Win1.ReadHoldingRegisters(1, 0, 10, 1000)
# Show the Modbus window
Win1.ShowWindow()
# Show 10 rows
Win1.Rows(0)
# Disable refresh for speed
Win1.EnableRefresh = False
# Set the name of the registers
Win1.SetName(0, "Register 0")
# Set the value to write
Win1.EnableRefresh = True
Win1.ResizeAllColumns ()
Win1.ResizeWindow()
_ = input("Press ENTER to quit:")Schließen der Verbindung
FunktionCloseConnection() als Ganzzahlargument
Diese Funktion hat keine Argumente. Der Rückgabewert
ist Null bei Erfolg. Wenn es fehlschlägt, ist es ein nicht-Null - Wert.
ShowCommunicationTraffic
Zeigt das Kommunikationsfenster an.
FunktionShowCommunicationTraffic() Argument
Diese Funktion hat keine Argumente. Rückgabewert
Kein
Schließen des Verkehrs
Schließen des Verkehrsfensters, wenn angezeigt.
FunktionCloseCommunicationTraffic() Argument
Diese Funktion hat keine Argumente. Rückgabewert
Keine
Lesefunktion
Die folgenden Funktionen sind identisch mit den Einstellungen, die Sie im Dialogfeld Lesen / Schreiben-Definitionen (F8) eingestellt haben. Die Lesfunktion ist mit dem Modbus Poll-Dokument verbunden. (Datenfenster) Beispiel
' First a Modbus Poll document is needed.
Public doc As Object
Set doc = CreateObject("Mbpoll.Document")
res = doc.ReadCoils(1, 0, 100, 1000) ' Read 100 coils every 1000ms| Sie müssen zuerst ein Lesen erstellen, bevor Sie die Eigenschaft verwenden können, um Daten zu erhalten. |
Lesen Sie die Spiele
Modbus Funktionscode01
FunktionReadCoils(SlaveID As Integer, Adresse As Long, Quantity As Integer, ScanRate As Long) Als Integer Parameter.
SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
Quantity:Anzahl der Daten. 1 bis 2000
Scannrate:0 bis 3600000 ms Rückgabewert
Wenn es Erfolg hat, ist es wahr. Wenn es nicht gelingt, ist es falsch.
diskreten Eingang
Modbus-Funktioncode02
FunktionReadDiscreteInputs(SlaveID As Integer, Adresse As Long, Quantity As Integer, ScanRate As Long) As Integer Parameter
SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
Quantity:Anzahl der Daten 1 bis 2000
Scan-Rate:0 bis 3600000 ms Rückgabewert
True, wenn es erfolgreich ist. Wenn es nicht gelingt, ist es falsch
13.4.3. ReadHoldingRegisters
Modbus-Funktioncode03
FunktionReadHoldingRegisters(SlaveID As Integer, Adresse As Long, Quantity As Integer, ScanRate As Long) As Integer Parameter
SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
Quantity:Anzahl der Daten. 1 bis 125?
Scan-Rate:0 bis 3600000 ms Rückgabewert
True, wenn es erfolgreich ist. Falsch, wenn es nicht gelingt
13.4.4. Modbus-Funktionscode04
Modbus-Funktionscode04
FunktionReadInputRegisters(SlaveID As Integer, Adresse As Long, Quantity As Integer, ScanRate As Long) As Integer Parameter
SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
Quantity:Anzahl der Daten. 1 bis 125
Scanrate:0 bis 3600000 Millisekunden Rückgabewert
True, wenn es erfolgreich ist. Wenn es nicht gelingt, ist es falsch.
Automatisierte Schreibfunktionen
Schreibfunktionen Schreiben Werte, die in einem Array gespeichert sind, das mit Attributen gefüllt ist. Die folgende Write-Funktion erstellt kein Datenfenster. Um ein Datenfenster zu erstellen, verwenden Sie die Win-Funktion, z.B.WriteMultipleRegistersWin。
13.5.1. Schreiben Single Coil
Modbus Funktionscode 05.
Schreibt die erste Spul, die im Schreibarray gespeichert ist.
FunktionWriteSingleCoil(SlaveID As Integer, Adresse So Long) As Integer Parameter
SlaveID:Slave-Adressen 0 bis 255
Adressen:Datenadresse (Base 0) Gibt den Wert
zurück, wenn das Schreibarray bereit ist und die Daten gesendet wurden. Wenn das Array leer ist oder der Parameter falsch ist, ist es Falsch.
Die Steuerungsanwendung ist dafür verantwortlich, Schreibvorgänge durch das Lesen des geschriebenen Wertes zu überprüfen.
13.5.2. Schreiben eines einzelnen Registers
Modbus-Funktionscode 06.
Schreibt das erste Register, das im Schreibarray gespeichert ist.
FunktionWriteSingleRegister(SlaveID As Integer, Adresse As Long) As Integer Parameter
SlaveID:Slave-Adressen 0 bis 255
Adresse:Datenadresse (Base 0) Rückgabewert
Ist wahr, wenn das Schreibarray bereit ist und die Daten gesendet wurden. Wenn das Array leer ist oder der Parameter falsch ist, ist es Falsch.
Die Steuerungsanwendung ist für die Validierung von Schreibvorgängen verantwortlich, indem sie den geschriebenen Wert zurücklesen.
13.5.3. Schreiben Sie mehrere Schleife.
Modbus-Funktionscode 15.
Schreibe die in einem Schreibarray gespeicherten Spulen.
FunktionWriteMultipleCoils(SlaveID As Integer, Adresse As Long, Quantity As Integer) Als Integer gibt den Wert
zurück, wenn das Schreibarray bereit ist und die Daten gesendet wurden. Wenn das Array leer ist oder der Parameter falsch ist, ist es Falsch.
Die Steuerungsanwendung ist verantwortlich für die Validierung von Schreibvorgängen, indem sie den geschriebenen Wert zurücklesen. Parameter
SlaveID:Slave-Adressen 0 bis 255
Adresse:Datenadresse (Base0)
QuantityAnzahl von Daten. 1 bis 1968
13.5.4 Schreiben mehrerer Register
Modbus-Funktioncode 16.
Schreiben Sie ein Register, das im Schreibarray gespeichert ist.
FunktionWriteMultipleRegisters(SlaveID As Integer, Adresse As Long, Quantity As Integer) As Integer Parameter
SlaveID:Slave-Adressen 0 bis 255
Adresse:Datenadresse (Base 0)
Quantity:Anzahl der Daten. 1 bis 123 Gibt einen Wert
zurück, wenn das Schreibarray bereit ist und die Daten gesendet wurden. Wenn das Array leer ist oder der Parameter falsch ist, ist es Falsch.
Die Steuerungsanwendung ist dafür verantwortlich, Schreibvorgänge durch das Lesen des geschriebenen Wertes zu überprüfen.
13.5.5. Python Beispiel
Python-Beispiel, wie man ein Fenster erstellt, das 10 Register von der Adresse 0 (40001) liest und dann 5 Register schreibt. Python-Beispiel
import sys
import time
import win32com.client as win32
App = win32.Dispatch('Mbpoll.Application')
App.Connection = 1 # TCP/IP connection
App.IPAddress = "127.0.0.1"
App.ResponseTimeout = 1000 # Wait 1000ms until give up
App.DelayBetweenPolls = 20 # Ensure minimum 20 ms gap until next request
App.ConnectTimeout = 500 # Wait 500ms until give up
App.ServerPort = 502
result = App.OpenConnection
if result != 0:
print("Connection failed. Error: ", result)
sys.exit()
#Create a Modbus display window called Win1
Win1 = win32.Dispatch("Mbpoll.Document")
# Read 10 holding registers from slave ID 1, address 0 (40001) every 1000ms
Win1.ReadHoldingRegisters(1, 0, 10, 1000)
# Show the Modbus window
Win1.ShowWindow()
# Show 10 rows
Win1.Rows(0)
# Resize the window to fit to the grid
Win1.ResizeWindow()
time.sleep(1.0) # Wait until read is done
if Win1.ReadResult == 0: # Check read result
print("Modbus register 0 (40001) = ", Win1.SRegisters(0))
else:
print("Read failed error: = ", Win1.ReadResult)
print ("Tx count = %d, Rx count = %d" % (Win1.GetTxCount, Win1.GetRxCount))
# Prepare the internal array in Modbus Poll with data to write
Win1.SRegisters(0, 1) # Note that parameter 1 is not a
Win1.SRegisters(1, 10) # Modbus address but an index to the array
Win1.SRegisters(2, 100)
Win1.SRegisters(3, 1000)
Win1.SRegisters(4, 10000)
# Write the registers. This function do not create a window in Modbus Poll
# Use the function <<WriteMultipleRegistersWin>> to create a data window
Win1.WriteMultipleRegisters (1, 0, 5)
_ = input("Wait for write Press ENTER:")
if Win1.WriteResult == 0: # Check write result
print("Modbus write success")
else:
print("Write failed error: = ", WriteResult)
_ = input("Press ENTER to quit:")Funktionen
Funktionen sind mit einem Modbus Poll-Dokument zugeordnet. (Datenfenster)
13.6.1 Präsentationsfenster
Standardmäßig ist das Modbus-Dokumentenfenster ausgeblendet. Die ShowWindow-Funktion macht Modbus Polls sichtbar und zeigt Dokumente mit Dateninhalten an.
FunktionAnzeigefenster() Parameter
Diese Funktion hat keine Parameter. Rückgabewert
Kein
13.6.2. Abrufen Sie die Anzahl der TxCount
Anzahl der Suchanfragen.
FunktionGetTxCount() solange die Parameter
Diese Funktion hat keine Argumente. Gibt den Wert zurück
Anzahl der Anfragen.
13.6.3. Erhalten Sie die Empfangszählung
Abrufzahl der Antworten.
FunktionGetRxCount() Solange die Argumente
Diese Funktion hat keine Argumente. Rückgabewert
Die Anzahl der Antworten.
13.6.4. Namensbeschaffung
Der Name des Suchwertes.
FunktionGetName(Index ist Ganzzahl) ist ein Zeichenkettenparameter
Index:Index 0 entspricht der ersten Modbus-Adresse. Gibt den Namen des Werts
Name.
13.6.5. Sammlung Name
Ändern Sie den Namen des Wertes. FunktionSetName(Index ist eine ganze Zahl, Name ist eine Zeichenfolge) Parameter
Index:Index 0 entspricht der ersten Modbus-Adresse.
Name:Der Name der Zelle Wert. Der zurückgegebene Wert
ist nicht
13.6.6. Alle Formatieren
Formatiert alle Wertzellen mit dem gewählten Format.
FunktionFormatAll(formatiert als Ganzzahl) Parameter
Format:Format der Wertzelle. Der Rückgabewert
ist nicht
13.6.7. Format abrufen
Abrufen des Darstellungsformats des Modbus-Wertes.
FunktionGetFormat(Index ist Ganzzahl) ist Ganzzahl Argument
Index:Index 0 entspricht der ersten Modbus-Adresse.
Rückgabewert
| ID | Format |
|---|---|
| 0 | 签 |
| 1 | Unsigniert |
| 2 | Hexadecimal |
| 3 | Binärsystem |
| 4 | Floating Point Small-End Byte Exchange |
| 5 | Floating Point Big-End |
| 6 | Doppel Small-End Byte Exchange |
| 7 | Doppel Big-End - Sequenz |
| 8 | 32 - Bit-Symbol Small-End Byte Exchange |
| 9 | 32 - Bit-Symbol Big-End - Sequenz |
| 10 | Kleine Schwimmbänder. |
| 11 | Floating-Point - Big-End - Byte-Switch |
| 12 | Dual-Klein - End-Sequenz |
| 13 | Dual-Big - End - Byte-Switch |
| 14 | 32 - Bit-Symbolisierte Kleine - End-Sequenz |
| 15 | 32 - Bit-Symbolisierte Big-End - Byte-Switch |
| 17 | 32 - Bit-Symbolisierte Kleine - End-Sequenz |
| 18 | 32 - Bit-Symbolisierte Kleine - End-Byte - Switch |
| 19 | 32 - Bit-Symbolisierte Big-End - Byte-Switch |
| 20 | 32 Bits ohne Symbol |
| 21 | 64 - Bit-Unsignierte Großsequenz |
| 22 | 64 - Bit-Unsignierte Kleine Sequenz |
| 23 | 64 - Bit-Unsignierte Großsequenz |
| 24 | 64 - Bit-Unsignierte Kleine Sequenz |
| 25 | 64 - Bit-Unsignierte Großsequenz |
| 26 | 64 - Bit-Unsignierte Kleine Sequenz |
| 27 | 64 - Bit-Unsignifizierter Big-End - Byte-Austausch |
| 28 | 64 - Bit Unsigned Small End Order |
| Diese Einstellung dient nur zur Darstellung. Wenn Sie die Get / Set-Wert - Funktion verwenden, müssen Sie dennoch byteOrder verwenden, um die richtige Byte-Reihenfolge zu erhalten. |
13.6.8. Format einrichten
Ändern Sie das Anzeigeformat für Modbus-Werte. Bitte beachten Sie die oben angegebenen Formate.
FunktionSetFormat(Index ist eine ganze Zahl, Format ist eine ganze Zahl) Parameter
Index:Index 0 entspricht der ersten Modbus-Adresse.
Format:Das Format der Wertzelle. Der zurückgegebene Wert
ist nicht
13.6.9. Fenstergröße ändern
Ändern Sie die Größe des geöffneten Fensters an das Raster.
FunktionAnpassung des Fensters() Parameter
Diese Funktion hat keine Argumente. Der Rückgabewert
ist nicht
13.6.10. Größe aller Spalten anpassen
Größe aller Spalten an die Werte in der Zelle.
FunktionResizeAllColumns() Argument
Diese Funktion hat keine Argumente. Rückgabewert
Nein
13.6.11。OK .
Gibt die Anzahl der Zeilen in einem Raster an.
Funktion行(NumberRows) Parameter
NumberRows: Die Anzahl der Zeilen im Raster.
| ID | Beschreibung |
|---|---|
| 0 | 10 Zeilen (Standard) |
| 1 | 20 Zeilen |
| 2 | 50 Zeilen |
| 3 | 100 Zeilen |
| 4 | Passend für die Menge |
Rückgabewert
Kein
13.6.12. Leseergebnis
Diese Eigenschaft wird verwendet, um zu überprüfen, ob die Kommunikation mit Read erfolgreich ausgeführt wurde.
EigenschaftReadResultAls Integer Argument
Diese Funktion hat keine Argumente. Rückgabewert
| Fehler | Beschreibung |
|---|---|
| 0 | Erfolg |
| 1 | Timeout-Fehler |
| 2 | CRC-Fehler |
| 3 | RESPONSE ERROR (Die Antwort ist nicht die erwartete Sekundär-ID, Funktion oder Adresse) |
| 4 | Schreibfehler |
| 5 | Lesefehler |
| 6 | Port nicht geöffnet Fehler |
| 10 | Daten nicht initialisiert |
| 11 | Unzureichende Anzahl von Bytes empfangen |
| 16 | Bytes Fehler |
| 19 | Transaktions-ID - Fehler |
| 81 Stunden | Unzulässige Funktionen |
| 82 Stunden | Unzulässige Datenadresse |
| 83 Stunden | Unzulässige Datenwerte |
| 84 Stunden | Servergerätfehler |
| 85 Stunden | Bestätigung |
| 86 Stunden | Servergerät beschäftigt |
| 87 Stunden | NAK-Negative Bestätigung |
| 8Ah | Gateway-Pfad nicht verfügbar |
| 8Bh | Das Gateway-Zielgerät reagiert nicht auf |
13.6.13. Schreibergebnis
Verwenden Sie diese Funktion, um zu überprüfen, ob das Schreiben erfolgreich ist.
Dieser Wert ist DATA _ UNINITIALIZED, bis das Ergebnis von der Station verfügbar ist. Eine Liste der möglichen Werte finden Sie inReadResult.
EigenschaftWriteResultAls Integer Rückgabewert
Gibt das Schreibergebnis als Ganzzahl zurück.
Automatische Dateneigenschaften
Die folgenden Eigenschaften werden verwendet, um Werte in einem internen Schreib - / Lesetarray von Modbus Poll zu setzen oder abzurufen. Der verwendete Index ist nicht die Modbus-Adresse. Egal welche Adresse verwendet wird, der Index beginnt immer mit 0 zu zählen. Die Dateneigenschaften sind mit dem Modbus Poll-Dokument zugeordnet. (Datenfenster)
Es gibt zwei Versionen für jede Dateneigenschaft:
- Eine ohne Suffix, wieSRegistersVerwenden Sie das Festlegen oder Abrufen von Werten aus einem internen Schreiben / Lesen Array.
- Einer der WINN-Punkte, zum BeispielSRegistersWin, wird verwendet, um Werte direkt aus dem Datenfenster zu setzen oder abzurufen. Dies wird verwendet, wenn ein Datenfenster zum Schreiben von Funktionen verwendet wird, z. B.WriteMultipleRegistersWin。
Beispiel 1:
' doc is assumed created first. See Excel example.
' Writes 1 to index 0 in the data array used for the Write function later
doc.SRegisters(0) = 1
doc.SRegisters(1) = 10
doc.SRegisters(2) = 1234
' Write 3 registers stored in Modbus Poll internal array
' to Modbus address 100 (40101)
' A window is not created
res = doc.WriteMultipleRegisters(1, 100, 3)
' The above example do not create a data window but just make a single Modbus write.mit einem Gleitkommawert Beispiel 2:
Schreiben Sie drei Gleitkomma-Werte.
' doc is assumed created first. See Excel example.
doc.Floats(0) = 1.3
doc.Floats(2) = 10.5
doc.Floats(4) = 1234.12
' Write the 6 register stored in Modbus Poll
res = doc. WriteMultipleRegisters(1, 0, 6)
' 6 Registers are written as a floating point value is 32 bit wide.Beispiel 3:
Erstellen Sie ein Fenster, das in drei Registers geschrieben wird.
' doc is assumed created first. See Excel example.
' A window is created that writes the content every 1000ms
res = doc.WriteMultipleRegistersWin(1, 100, 3, 1000)
' Writes 1 to the first cell in the data window
doc.SRegistersWin(0) = 1
doc.SRegistersWin(1) = 10
doc.SRegistersWin(2) = 1234
' Now the 3 registers are written to slave id 1 address 100 every 1000ms13.7.1. Spiele, Spiele gewinnen.
EigenschaftSpulen(Index ist Ganzzahl) ist Ganzzahl Beschreibung
Setzt eine Spul in der Schreibarray-Struktur oder gibt eine Spul von einem Lesarray zurück. Syntax
Spule(Index) [= neu]
13.7.2. SRegisters, SRegistersWin
EigenschaftSRegisters(Index As Integer) Als Integer Beschreibung
Setzt ein Register in der Schreibarray-Struktur oder gibt ein Register aus einem Lesarray zurück. Satz
SRegisters(Index) [= neuer Wert]
13.7.3 URegisters, URegistersWin
AttributURegisters(Index ist Ganzzahl) Nur beschreibt
Ein Register in der Schreibarray-Struktur oder ein Register aus einem Lesarray zurückgegeben. Syntax
URegisters(Index) [= neuer Wert]
13.7.4. Ints_32, Ints_32Win
EigenschaftInts_32(Index ist Ganzzahl) für Double Beschreibung
Setzt eine 32 - Bit Ganzzahl in der Schreibarray-Struktur oder gibt eine Ganzzahl aus einem Lesarray zurück. Syntax
Ints_32(Index) [= neuer Wert]
13.7.5. UInts_32, UInts_32Win
AttributUInts_32(Index As Integer) As Double Beschreibung
Setzt eine 32 - Bit unsignierte Ganzzahl in der Schreib-Array - Struktur oder gibt eine unsignierte Ganzzahl aus einem Lesetarray zurück. Syntax
UInts_32(Index) [= neuer Wert]
13.7.6. Ints_64, Ints_64Win
AttributInts_64(Index ist Ganzzahl) als Double beschrieben
Setzt eine 64 - Bit-Ganzzahl in der Schreibarray-Struktur oder gibt eine Ganzzahl aus dem Lesetarray zurück. Syntax
Ints_64(Index) [= neuer Wert]
13.7.7. UInts_64, UInts_64Win
AttributUInts_64(Index As Integer) As Double Beschreibung
Legen Sie eine 64 - Bit unsignierte Ganzzahl in der Schreibarray-Struktur fest oder geben Sie eine unsignierte Ganzzahl aus einem Lesarray zurück. Satz
UInts_64(Index) [= neuer Wert]
13.7.8.
EigenschaftFließkomma-Zahl(Index ist Ganzzahl) ist eine einzelne Beschreibung
Legen Sie eine Fließkomma-Zahl in der Schreibarray-Struktur oder geben Sie eine Fließkomma-Zahl aus dem Lesetarray zurück. Syntax
Gleitkomma-Zahl13.7.9. Doppel, Doppel gewinnt
13.7.9。D opp el , D opp el gew innt .
AttributDoppelpräzision Zahl(Index ist Ganzzahl) Doppelpräzision Zahl Beschreibung
Legen Sie eine Doppelpräzision in einer Schreibarray-Struktur oder geben Sie eine Doppelpräzision aus einem Lesarray zurück. Syntax
Doppel(Index) [= neu]
13.7.10。Be feh l se ite
AttributByteOrderAs Integer Beschreibt die Byte-Reihenfolge, die
bei den Einstellungen Ints_32, UInts_32, Ints_64, UInts_64, Floats und Doubles verwendet.
Win-Versionen verwenden diese Eigenschaft nichtByteOrder。
| ID | Byte-Sequenz |
|---|---|
| 0 | Big-End (Standard) |
| 1 | Small-End - Byte-Switching |
| 2 | Big-End - Bytes-Switch |
| 3 | Small-End - Reihenfolge |
Ints_32 Beispiel:
Bytes-Reihenfolge: Big-End -
Dezimal-Zahl 123456789 oder Hexadezimal 07 5B CD15
Die Reihenfolge, in der sie in einer Modbus-Nachricht durch die Linien gehen: 07 5B CD15 Syntax
Byte-Sequenz[= Neuer Wert]
Schreiben von Funktionen (Datenfenster erstellen)
Die folgenden Funktionen sind die gleichen, die Sie im Dialogfeld Lesen / Schreiben Definitionen (F8) festlegen.
Diese Funktionen erstellen ein Datenfenster, in dem der Dateninhalt basierend auf der Scanrate geschrieben wird.
13.8.1. Schreiben Sie eine Schleife gewinnen
Modbus Funktionscode 05.
FunktionWriteSingleCoilWin(SlaveID As Integer, Adresse As Long, ScanRate As Long) Als Integer Argument
SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
ScanRate:0 bis 3600000ms Rückgabewert
True, wenn Erfolg. Wenn nicht erfolgreich
13.8.2 Schreib-Register gewinnt
Modbus Funktionscode 06.
FunktionWriteSingleRegisterWin(SlaveID As Integer, Adresse As Long, ScanRate As Long) As Integer Parameter
SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
ScanRate:0 bis 3600000ms Rückgabewert
Wenn es Erfolg hat, ist es wahr. Python Beispiel, wie man ein Fenster öffnet und alle 1000 Millisekunden ein Register schreibt
import win32com.client as win32
SIGNED = 0
App = win32.Dispatch('Mbpoll.Application')
App.Connection = 1
App.IPAddress = "127.0.0.1"
App.ServerPort = 502
App.OpenConnection
#Create a Modbus display window called Win1
Win1 = win32.Dispatch("Mbpoll.Document")
# Write 1 holding registers to slave ID 1, address 0 (40001) every 1000 ms
Win1.WriteSingleRegisterWin(1, 0, 1000)
# Show the Modbus window
Win1.ShowWindow()
# Fit rows to quantity
Win1.Rows(4)
# Disable refresh for speed
Win1.EnableRefresh = False
# This sets how the value is displayed
Win1.SetFormat(0, SIGNED)
# Set the Name of the register
Win1.SetName(0, "Setting")
# Set the value to write
Win1.SRegistersWin(0, 100)
Win1.EnableRefresh = True
Win1.ResizeAllColumns ()
Win1.ResizeWindow()
_ = input("Press ENTER to quit:")13.8.3. WriteMultipleCoilsWin
Modbus-Funktioncode 15.
FunktionWriteMultipleCoilsWin(SlaveID As Integer, Adresse As Long, Quantity As Integer, ScanRate As Long) As Integer Parameter
SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
Quantity:Anzahl der Daten. 1 bis 1968
Scan-Rate:0 bis 3600000 ms Rückgabewert
True, wenn es erfolgreich ist. Falsch, wenn nicht erfolgreich
13.8.4. WriteMultipleRegistersWin
Modbus-Funktioncode 16.
FunktionWriteMultipleRegistersWin(SlaveID As Integer, Adresse As Long, Quantity As Integer, ScanRate As Long) As Integer Parameter
SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Base 0)
Quantity:Anzahl der Daten. von 1 bis 123
Scan-Rate:0 bis 3600000 ms Rückgabewert
True, wenn es erfolgreich ist. Wenn nicht erfolgreich, ist es falsch
Ausnahmen und Fehlermeldungen
Modbus-Ausnahmen und Fehlermeldungen werden in der zweiten Zeile jedes Fensters mit rotem Text angezeigt。

Modbus-Ausnahmecode
Eine Modbus-Ausnahme ist ein Fehler, der vom Gerät zurückgegeben wird.
| Der Code | Name | Bedeutung |
|---|---|---|
| 01 | Illegale Funktion | Der Funktionscode, der in der Abfrage empfangen wurde, ist nicht vom Server (oder Slave) zulässig. Dies kann daran liegen, dass der Funktionscode nur für neuere Geräte verfügbar ist und nicht in der ausgewählten Einheit implementiert wurde. Es kann auch darauf hindeuten, dass der Server (oder der Slave) sich in einem falschen Zustand befindet, um diese Art von Anfrage zu verarbeiten, zum Beispiel weil er nicht konfiguriert ist und aufgefordert wird, einen Registerwert zurückzugeben. |
| 02 | Ungültige Datenadresse | Die in der Abfrage empfangene Datenadresse ist nicht die vom Server zulässige Adresse. Genauer gesagt ist die Kombination der Referenznummer und der Übertragungslänge ungültig. Für einen Controller mit 100 Registern ist die PDU-Adresse 0 für das erste Register und 99 für das letzte Register. Wenn die gesendete Anforderung mit der Start-Register - Adresse 96 beginnt und die Anzahl der Register 4 beträgt, wird die Anforderung erfolgreich (zumindest in Bezug auf die Adresse) in den Registeren 96, 97, 98, 99 ausgeführt. Wenn die Anforderung mit der Start-Register - Adresse 96 und der Anzahl der Register 5 gesendet wird, schlägt die Anforderung mit dem Ausnahmecode 0x02 „Ungültige Datenadresse" fehl, da sie versucht, die Register 96, 97, 98, 99 und 100 zu betreiben und kein Register mit der Adresse 100 ist. |
| 03 | Ungültiger Datenwert | Der Wert im Abfrage-Datenfeld ist nicht vom Server (oder Slave) zulässig. Dies zeigt, dass es einen Fehler in der Struktur des Restes der komplexen Anfrage gibt, wie etwa eine falsche implizite Länge. Dies bedeutet nicht, dass ein in einem Register gespeichertes Dateneintrag mit einem Wert überschritten wird, der von der Anwendung erwartet wird, da das MODBUS-Protokoll die Bedeutung eines bestimmten Wertes für ein bestimmtes Register kennt. |
| 04 | Servergerätefehler | Bei dem Versuch des Servers (oder des Sekundärs) ist ein nicht wiederherstellbarer Fehler aufgetreten, die angeforderte Aktion auszuführen. |
| 05 | Erkannt die Verwendung von | ausschließlich in Verbindung mit Programmierbefehlen. Der Server (oder ein Slave-Server) hat die Anforderung akzeptiert und verarbeitet sie, es dauert jedoch eine lange Zeit. Diese Antwort wird zurückgegeben, um Timeout-Fehler auf dem Client (oder Host) zu vermeiden. Der Client (oder der Host) kann dann eine Polling-Abschluss - Meldung senden, um festzustellen, ob die Verarbeitung abgeschlossen ist. |
| 06 | Server-Gerät beschäftigt | wird speziell in Verbindung mit Programmierbefehlen verwendet. Der Server (oder Slave) verarbeitet einen langen Programmbefehl. Wenn der Server (oder der Slave) frei ist, sollte der Client (oder der Master) die Nachricht später erneut übertragen. |
| 0A | Gateway-Pfad nicht verfügbar | Bei Verwendung mit einem Gateway kann das Gateway keinen internen Kommunikationspfad vom Eingangs - zum Ausgangsschnitt für die Verarbeitung von Anfragen zuweisen. Meist bedeutet dies, dass das Gateway falsch konfiguriert oder überlastet ist. |
| 0B | Reaktionsfehler des Gateway-Zielgeräts | Bei Verwendung mit einem Gateway wird keine Antwort vom Zielgerät erhalten. Das bedeutet in der Regel, dass das Gerät nicht im Netzwerk existiert. |
Modbus-Fehlermeldung
| Fehlermeldung | Bedeutung |
|---|---|
| Timeout-Fehler | Keine Antwort innerhalb der erwarteten Zeit erhalten.Überprüfen Sie Folgendes: Serielle Verbindungen Serielle Einstellungen, wie z. B. Baudrate, Parität, Datenbits, Stoppbits usw. Modbus-Modus, RTU oder ASCII Slave-Station - ID-Antwortzeitüberschreiten TCP / IP-Verbindungs - Antwortzeitüberschreiten Überprüfen, ob Host und Port mit Slave übereinstimmen |
| Antwortfehler | Die Reaktion ist nicht erwartet. Unterschiedliche Stationen ID. |
| CRC-Fehler | Der CRC-Wert für die empfangene Antwort ist nicht korrekt. |
| Schreibfehler | Dies ist ein Fehler, der vom seriellen Treiber gemeldet wurde. Dies kann auftreten, wenn Sie einen USB / RS232 / 485 - Adapter verwenden und das USB-Kabel entfernen. Es gibt 4 Arten: UnterbrechungsbedingungEingabe-Ausgabe - FehlerSerielle VerbindungsfehlerAusgabe-Puffer - ÜberflussSchreibfehler mit TCP / IP-Verbindungen werden normalerweise durch Verbindungsverlust verursacht. |
| Lesefehler | Dies ist ein Fehler, der vom seriellen Treiber gemeldet wurde. Es gibt 6 Arten: Kompositionfehler Zeichenpuffer überflutet Paritätsfehler Eingabepuffer überflutet Eingabe Ausgabefehler Unterbrechungsbedingungen Lesfehler mit TCP / IP-Verbindungen werden normalerweise durch Verbindungsverlust verursacht. |
| Die empfangene Anzahl von Bytes | Die Antwort war nicht die erwartete Länge. |
| Anzahl der Fehler | ist falsch. Im Vergleich zu den Erwartungen. |
| Transaktions-ID - Fehler | Es wird für die Transaktionspaarung verwendet, wobei der MODBUS-Server die angeforderte Transaktionsidentifikation in der Antwort kopiert. |
Die Software ist Modbus Poll 9.9.2.1690 chinesische Version, bitte kommentieren Sie nach dem Download!!!

11
111
Download
1
很好
1111111
222
111111
11111
感谢分享
学习
xz
介绍的很详细,非常好用
xiazia
感谢
Download
谢谢
666
感谢
收下
谢谢楼主
最新版吗?给力!
感谢楼主
感谢楼主
感谢楼主
感谢楼主
感谢感谢
感谢楼主
介绍的很详细,非常好用
ceshi