
Kleine Version, kostenlos!!
Modbus Slave
Modbus Slave wird verwendet, um bis zu 100 Slave-Geräte in 100 Fenstern zu emulieren! Verwenden Sie dieses Simulations-Tool, um Ihre SPS-Programmierung zu beschleunigen. Beginnen Sie mit der Programmierung und dem Testen, bevor Sie das Zwangsgerät vom Lieferanten erhalten. Die Hauptanwendung kann auf alle Daten zugreifen, die in einem geöffneten Dokument enthalten sind. Die gleiche Benutzeroberfläche wie Modbus-Polling.
Überwachung des seriellen Verkehrs. OLE-Automatisierung für die Verbindung mit Visual Basic, Excel usw. Interpretation und Darstellung von Modbus-Daten nach Ihren speziellen Anforderungen. Zum Beispiel in Excel abhängige Daten bearbeiten. Probieren Sie das mit dem Programm gelieferte Excel example.xls aus.
Jedes Fenster, das in einem Modbus-Sklaven geöffnet wird, kann so konfiguriert werden, dass es Daten von denselben oder verschiedenen Slaven-Knoten darstellt.
Modbus Systemanforderungen von der Station
Hardwareanforderungen
Prozessor; empfohlen 1 GHz oder schneller
1 GB RAM
5 MB freier Festplattenspeicherplatz
1024 x 768 Anzeigeauflösung Betriebssystemanforderungen
Unterstützt alle Windows-Versionen von Windows 7 bis Windows 11.
Modbus Slave Version 8 läuft unter Windows XP.
1.1.1. Stille Installation
Stille Installation erfordert keine Benutzerintervention und keine Benutzeroberfläche. Der Benutzer sieht kein Dialogfeld und wird keine Fragen gestellt.
Verwenden Sie den Befehlszeilen-Schalter / S.
Modbus-Funktionen von der Station
Verbindung
Der Modbus-Slave verwendet die folgenden Methoden zum Lesen / Schreiben von Daten vom Gerät:
- Modbus RTU oder ASCII in einem RS232 - oder RS485 - Netzwerk. (USB/ RS232 / 485 - Konverter)
- Modbus TCP/IP
- Modbus über TCP / IP. (Modbus RTU in TCP-Paketen eingeschlossen)
- Protokoll UDP / IP
- Modbus basierend auf UDP / IP. (Modbus RTU in einem UDP-Paket eingeschlossen)
Unterstützte Modbus-Funktionen
- 01 (0x01) Lesespule
- 02 (0x02) Diskreten Eingang lesen
- 03 (0x03) Halte-Register lesen
- 04 (0x04) Eingangs-Register lesen
- 05 (0x05) Schreiben einer einzelnen Spule
- 06 (0x06) Schreiben eines einzelnen Registers
- 08 (0x08) Diagnose (nur serielle Kabel)
- 11 (29] 0x0B) Zähler für Kommunikationsereignisse abrufen (nur serielle Leitungen)
- 15 (0x0F) Schreiben mehrerer Spulen
- 16 (0x10) Schreiben mehrerer Registers
- 17 (0x11) Berichterstattung Server-ID (nur serielle Leitung)
- 22 (0x16) Masken Schreibregister
- 23 (0x17) Lesen / Schreiben mehrerer Registers
- 43 / 14 (0x2B / 0x0E) Lesen Sie die Gerätekennzeichnung
Anzeigeformat
Jede Zelle kann einzeln formatiert werden.
- Die 16 - stelligen Schriftzeichen (16 - Bit-Register)
- 16 - bit unsigned register (Unsigned 16 - bit register)
- Hexadezimal (Hex)
- Binär (Binary)
- 32 - bit signed integer with any word / byte order32 - bit signed integer with any word / byte order)
- 32 - bit unsignierte Ganzzahl in der Reihenfolge von Bytes (32-bit unsignierte Ganzzahl mit beliebiger Wort - / Bytes-Reihenfolge)
- 64 - bit unsigned integer with any word / byte order64-bit-signierte Ganzzahl mit beliebiger Wort / Byte-Reihenfolge)
- 64 - bit unsigned integer with any word / byte order64 - bit unsigned integer with any word / byte order)
- 32 - Bit-Fließkomma - Zahl mit beliebiger Wörter / Byte-Reihenfolge (32 - bit float with any word / byte order)
- 64 - bit float mit beliebiger Wörter / Byte order (64 - Bit double float with any word / byte order)
Zusätzliche Funktionen
- für die OLE / Automatisierung in Verbindung mit Excel VBA, Python usw.
- Datenverkehrüberwachung
- Drucken und Druckvorschau
- Schriftartenauswahl
- Konditionierte Farbe
- Skalierung
- Live-Diagramme
- Speichern / Öffnen von Arbeitsbereichen
Übersicht
Modbus Slave verwendet eine Multi-Dokument - Schnittstelle. Das bedeutet, dass mehrere Fenster geöffnet werden. Jeder hat einen unterschiedlichen Dateninhalt und dient zur Simulation verschiedener Slaves gleichzeitig.

Das Foto zeigt zwei geöffnete Fenster. Einer simuliert 10 Aufbewahrungsregister von der Adresse 0 (40001) Slave-ID1 und der andere simuliert 10 Aufbewahrungsregister von der Adresse 0 (40001) Slave-ID2.
Hilfe überall
Drücken Sie F1, um kontextbezogene Hilfe zu einem Thema zu erhalten, das sich auf das aktuell ausgewählte Projekt bezieht.
SHIFT + F1ruft einen speziellen „Hilfe-Modus" auf, bei dem der Cursor zu einem Hilfe-Cursor wird (Pfeil + Fragezeichen). Anschließend können Benutzer sichtbare Objekte in der Benutzeroberfläche auswählen, z. B. Menüelemente, Schaltflächen in der Symbolleiste oder Fenster. Dadurch wird die Hilfe zu einem Thema geöffnet, das das ausgewählte Element beschreibt.
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, wird ein Dialogfeld angezeigt, in dem Sie einen neuen Wert in die Wertzelle eingeben können. Wenn Sie eine Zahl in die Wertzelle eingeben, wird auch das Eingabe-Dialogfeld angezeigt.

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

Bedingte Farbe
Bedingte Farben helfen Ihnen, Werte innerhalb eines bestimmten Bereichs visuell anzuzeigen. 3 Farben Auswahl
- Standardfarbe: Diese Farbe wird verwendet, wenn keine der bedingten Farbberechnungen true sind.
- Regel 1: Wenn der Ausdruck true ausgewertet wird, wird diese Farbauswahl verwendet. Regel 1 hat Vorrang vor Regel 2
- Regel 2: Wenn der Ausdruck true ausgewertet wird, wird diese Farbauswahl verwendet.
Sieben Vergleichssysteme
- not used: nicht verwendet
- equal to: gleich
- greater than: größer als
- less than: kleiner als
- greater than or equal to: größer oder gleich
- less than or equal to: kleiner oder gleich
- and: und
Der Operator "und" kann nicht verwendet werden, wenn der Datentyp float oder 32 - bit long ist. Wenn Sie "und" auswählen, wird der Bedingungswert als Hexadezimalzahl eingegeben. Wenn ein beliebiges Bit in der Zelle und in den bedingten Werten 1 ist, wird das Ergebnis wahr.
Farbbeispiel
Grün, wenn der Zellwert größer als 0, rot, wenn der Wert kleiner als 0.

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

(X1, Y1) und (X2, Y2)
Eine Linie durch zwei Punkte (X1, Y1) und (X2, Y2)
Neigung = m = Y2 − Y1 / X2 − X1
Gerade Gleichung
Y = m ⋅ (X − X1) + Y1
Genau
Anzahl der Stellen nach dem Dezimalpunkt.
Aktivieren
Diese Funktion muss aktiviert sein, um die Werte vom Modbus-Server / Slave-Standort zu skalieren. Wenn Sie ein nicht - 16 / 32 - Bit-Ganzzahlanzeigeformat wählen, deaktiviert das Skalieren automatisch das
Live-Diagramm
Das Diagramm kann 12 Serien mit bis zu 100.000 Punkten pro Serie in Echtzeit zeichnen.
Öffnen Sie ein neues Fenster
Um ein weiteres Fenster zu öffnen, haben Sie 3 Optionen:
- Drücken Sie STRG + N
- Wählen Sie im Datei-Menü
- 按
In der Toolbar.
Verbindungen auf der Symbolleiste
Um das Verbindungs-Dialogfeld zu öffnen, haben Sie 2 Optionen:
- Drücken Sie F3
- Wählen Sie Verbindung aus dem Verbindungsmenü

Verbindung(Verbindung)
Es gibt 5 verschiedene Verbindungsarten:
- Serieller Anschluss:
Modbus über serielle Leitungen. RS232 oder RS485 Es kann ein USB-Serial - Wandler verwendet werden. - Modbus TCP / IP:
Wählen Sie TCP / IP, um mit einem MODBUS-TCP / IP - Netzwerk zu kommunizieren. In diesem Fall ist die Slave-Station - ID identisch mit der in MODBUS TCP / IP verwendeten Einheit-ID.
Die Portnummer lautet standardmäßig 502. - Modbus UDP / IP:
Wenn Sie mit einem MODBUS-UDP / IP - Netzwerk kommunizieren möchten, wählen Sie UDP / IP aus. Dies ist das gleiche wie Modbus TCP / IP, aber das Verbindungslose UDP-Protokoll verwendet. - Modbus RTU über TCP / IP:
Dies ist eine RTU-Nachricht, die über ein TCP / IP-Netzwerk und nicht über eine serielle Leitung gesendet wird. - Modbus RTU über UDP / IP:
Dies ist eine RTU-Nachricht, die über ein UDP / IP-Netzwerk und nicht über eine serielle Leitung gesendet wird.
Je nach Ihrer Wahl werden einige weitere Einstellungen grau.
Serien einrichten(Serial Settings)
Verwenden Sie diese Parameter, um die seriellen Port-Einstellungen zu setzen. 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. Digitale SR
Gibt an, ob das DSR-Signal (Data Set Ready) für die Ausgangsstromsteuerung überwacht wird. Wenn das Mitglied TRUE ist und die DSR ausgeschaltet ist, wird die Ausgabe angehalten, bis die DSR erneut gesendet wird. CTS
Gibt an, ob das CTS-Signal (Clear Send) für die Ausgangsübertragungssteuerung überwacht wird. Wenn Sie dieses Kontrollkästchen aktivieren und das CTS deaktivieren, wird die Ausgabe angehalten, bis das CTS erneut gesendet wird. Sofortiger Strategiewechsel
Gibt an, dass die RTS-Leitung hoch ist, wenn die Bytes für die Übertragung verfügbar sind. Nachdem alle Pufferbyte gesendet wurden, wird die RTS-Leitung niedrig.
Wenn Ihr 232 / 485 - Wandler keinen automatischen Richtungsschalter hat, können Sie ihn verwenden, um die Richtung zu wechseln.
| Wenn möglich, sollten Sie RS232 / RS485 - Wandler mit RTS-Steuerung vermeiden. Bei Nicht-Echtzeit - Betriebssystemen wie Windows und Linux ist es schwierig, die genaue Zeit zu bestimmen, zu der der Sender ausgeschaltet wird. Wenn Sie zu früh schließen, befinden sich die Zeichen möglicherweise immer noch im Sendenregister von FIFO oder UART und gehen sie verloren. Das Gerät kann diese Nachricht nicht erkennen. Auf der anderen Seite, wenn es zu spät ausgeschaltet wird, wird die Nachricht des Slaves beschädigt und das Master-Gerät wird die Nachricht nicht erkennen können. |
TCP / IP-Server(TCP / IP-Server)
Die TCP / IP-Server - Einstellungen sind nur verfügbar, wenn eine Ethernet-Verbindung verwendet wird. IP-Adresse
Gibt die IP-Adresse an, die abgehört werden soll. Dies ist sehr nützlich, wenn Sie mehrere Netzwerkverbindungen auf Ihrem PC haben. Jede Instanz von Modbus Slave kann ein bestimmtes Netzwerk abspüren. Standardmäßig ist 127.0.0.1 Jede Adresse für den lokalen Host
Wählen Sie diese Option, wenn Sie möchten, dass Modbus Slave alle Netzwerke abhört. Ignorieren der Einheit-ID
Viele SPS-Geräte ignorieren dieses Feld, und der Standardwert für die meisten Clients ist Null. Allerdings kann ein Gateway oder ein dediziertes Programm die Einheitsnummer verwenden, um anzuzeigen, welche Art von Verarbeitung erforderlich ist. Port
Die Serverportnummer. Standard 502
Slave-Definition(Slave-Definition)
Verwenden Sie diesen Befehl, um ein Datenarray zu definieren, das für das aktive Fenster definiert wird.
Um das Slave Definition-Dialogfeld zu öffnen, haben Sie 3 Optionen:
- Drücken Sie F8
- Wählen Sie "Slave-Definition" aus dem Einstellungsmenü
- 按
In der Toolbar.

Slave-ID(Slave-ID)
in der Symbolleiste _160] im Bereich von 1 bis 255. (Die Modbus-Spezifikation lautet 247). Der Wert 0 kann auch direkt mit MODBUS / TCP oder MODBUS / UDP-Geräten kommuniziert werden.
Funktionscode(Funktion)
Sie können einen von 4 Funktionscodes auswählen.
- 01: Lese-Spule (0x). Akzeptieren der Schreibfunktionen 05 und 15
- 02: Diskretene Eingabe gelesen (1x)
- 03: Halte-Register gelesen (4x). Akzeptieren Schreibfunktionen 06, 16, 22 und 23
- 04: Eingabe-Register (3x)
Adresse(Address)
Die Adresse im Modbus-Protokoll ist verwirrt! Einige Protokolle Spezifikationen verwenden Protokoll / Nachricht Adressen, während andere Spezifikationen Geräte Adressieren verwenden.
Protokoll / Nachricht Adresse
Einige Protokollspezifikationen verwenden Protokoll / Nachricht Adressen, die von 0 bis 65535 gezählt werden, sowie Funktionscodes. Dies wird auch in der neuen Modbus-Spezifikation verwendet. Dies ist die Adresse in einer Nachricht, die über die Linie gesendet wird.
Modbus Slave verwendet die Protokoll - / Nachrichtenadresse von 0 bis 65535 zu zählen.
Geräteadresse
Einige Protokolle spezifizieren die Verwendung von Geräteadressen / Registers. Die Zählung beginnt mit 1. Die erste Zahl beschreibt die zu verwendenden Funktionen. Dies bedeutet, dass die Gerätadresse 40101 durch die Adresse 100 identifiziert wird.„4" bedeutet, dass das Hold-Register und das 4x-Register von 1 abzählen. Daher ist der Verweis "4XXXX" implizit. Noch verwirrender ist: 4x steht für den Funktionscode 03, 3x steht für den Funktionscode 04!
5 - Bit und 6 - Bit Adressierung
Adressformat 4x Zählung von 40001 bis 49999. Die nächste Adresse ist nicht50000.Früher waren 9999 Adressen ausreichend. In manchen Fällen reicht 9999 nicht aus. Fügen Sie dann eine Null hinzu. 40101 wird zu 400101 und so weiter. Dies wird als 6 - Bit-Adressierung oder erweiterte Adressierung bezeichnet.
Das ist kein Problem für Modbus Slave. 410001 wird zu 10.000. Die „4" wird verworfen und 10001 verbleibt minus 1, da wir mit 0 statt 1 zählen.
Beispiel für Adresse
Diese Beispiele zeigen, wie Modbus-Slaven eingerichtet werden können, wenn die Spezifikation Geräteadressen verwendet.
Festlegen von Haltregistern
Sie möchten 20 Register von der Gerätadresse 40011 mit Gerät-ID2 definieren. Von "4" wissen wir, dass dies die Funktion 03 ist "Lesen halten Register".
- Slave-ID = 2
- Funktion = "03 Read Hold Register (4x) "
- Adresse = 10 (11 minus 1)
- Anzahl = 20
Definieren Sie diskrete Eingaben
Sie möchten 1000 Spulen von der Adresse 110201 der Slave Station ID5 definieren. Von "1" wissen wir, dass dies die Funktion 02 "Lesen diskreter Eingang"
- Slave ID = 5
- Funktion = "02 Lesen diskreter Eingang (1x)"
- Adresse = 10200 (10201 - 1)
- Anzahl = 1000
Name-Spalten ausblenden(Name-Spalten ausblenden)
Alle Spalten mit Namen ausblenden. Wenn Sie sie nicht verwenden, kann dies bequem mehr Platz freigeben.
Adresse in der Zelle(Adresse in der Zelle)
Wenn aktiviert, wird die Adresse auch in der Wertzelle angezeigt, z. B.: 2000 = 00000

PLC-Adresse (Basis1)PLC-Adressen (Base1)
Diese Option zeigt die Adresse als Gerätenadresse an.

Anzahl der Zeilen(Rows)
Gibt die Anzahl der Zeilen in einem Gitter an, das Sie bevorzugen.
Echtzeit-Diagramm(Real time Charting)
Mit diesem Befehl können Sie bis zu 12 Datenreihen in Echtzeit in einem Diagramm zeichnen.
Die Echtzeit-Charts sind schnell und können neue Linien so schnell wie möglich zeichnen, sobald neue Daten erhalten werden.
| Alle Diagrammeinstellungen werden in der Arbeitsbereichsdatei gespeichert. Arbeitsbereich speichern / öffnen |
Um das Dialogfeld Live-Chart zu öffnen, haben Sie 2 Optionen:
- Drücken Sie Alt + R
- Wählen Sie Live-Chart aus dem Anzeigenmenü

Die X-Achse zeigt die Anzahl der Sekunden seit dem Start des Diagramms an.
Wenn der Punkt am Ende des Diagramms erreicht, gibt es 3 Optionen:
- Stoppt am Ende:Das Diagramm stoppt.
- Neustart am Ende:Die Karte beginnt neu.
- Weiter: Weiter,fortfahren:
Einrichtung(Settings)
Standardmäßig sind alle 12 Serien an die linke Y-Achse verknüpft. Wenn Sie die Serie mit der rechten Y-Achse verknüpfen möchten, aktivieren Sie das Kontrollkästchen „Rechte Y-Achse". Geben Sie
- Farbe
- Rechts Y-Achse
- Überschrift. Wenn der Titel leer ist, wird mit dem Namen im Lesenfenster initialisiert
- Ausgleich
Anzeige
- Dateiname
- Adresse
Der Offset ist nützlich, um Datenpunkte auf der gleichen Y-Achse auszurichten. Beispielsweise können Datenpunkte von 0 oder 1 verschoben werden, 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 Panor vorgenommen haben, rückgängig gemacht (das Diagramm bleibt in seinem ursprünglichen Zustand, bevor Sie Panor und Skalieren vornehmen).
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
Das Diagramm weiß nicht, welche Daten verwendet werden sollen, wenn Sie die Modbus-Dateneinheit nicht mit einer der zwölf Serien verknüpfen. Wählen Sie hierzu eine Wertzelle aus und wählen Sie dann "Verknüpfen mit einem Diagramm" aus dem Menü → Anzeige.

Exportieren von Serien
Speichert Seriendaten auf der Festplatte oder kopiert sie in die Zwischenablage. Fügen Sie die Daten direkt in Excel zur weiteren Verarbeitung ein.
Die Datei hat trotz der Verwendung von nicht-Komma - Feldtrennzeichen die Erweiterung. csv.
Trennzeichen:Wählen Sie die Zeichen aus, die die Werte in der Textdatei trennen. Verwenden Sie Tab-Trennzeichen beim Kopieren / Einfügen in Excel. Darüber hinaus wurden einige zusätzliche Informationen geliefert.
- Punkte
- Maximale Punktzahl
- Minimale Punktzahl
- Durchschnittspunktzahl

Das Format
zeigt die Zellen an, die formatiert werden sollen. Wählen Sie im Anzeigemenü eines der 28 Anzeigestellungen aus.
Native Modbus-Register
Das 16 - Bit-Modbus - Register kann in vier verschiedenen Modi angezeigt werden.
- 签
- unsigniert
- Hexadezimal
- ASCII - Hexadezimal
- Binär
32 - Bit-signierte Ganzzahl(32 - Bit-signierte Ganzzahl)
Es kombiniert zwei 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.
- Es gibt eine große Zahl von Symbolen.
- Ein kleines Symbol für ganze Zahlen.
- Es gibt ein vollständiges Symbol für den Austausch.
- Es gibt symbolisierte Ganzzahl Kleine Ende Byte Austausch Beispiel Byte Reihenfolge:AB CD (Big-End)
Dezimalzahl 123456789 oder Hexadezimalzahl07 5B CD15
Reihenfolge, die in einer Modbus-Nachricht über eine Linie übertragen wird:07 5B CD15
32 - Bit unsignierte Ganzzahl(32 - Bit unsigned integer)
Es vereint zwei 16 - Bit Modbus-Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.
- unsignierte Ganzzahl große Mastanzahl
- unsignierte Ganzzahl kleine Mastanzahl
- unsignierte Ganzzahl Big-endian Byte-Austausch
- unsignierte Ganzzahl kleine Byte-Austausch Beispiel Byte-Reihenfolge:AB CD (Big-End)
Dezimalzahl 123456789 oder Hexadezimalzahl07 5B CD15
Reihenfolge, die in einer Modbus-Nachricht über eine Linie übertragen wird:07 5B CD15
64 - Bit-signierte Ganzzahl(64 - Bit-signierte Ganzzahl)
Es kombiniert vier 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.
- Es gibt eine große Zahl von Symbolen.
- Ein kleines Symbol für ganze Zahlen.
- Es gibt ein vollständiges Symbol für den Austausch.
- Es gibt symbolisierte Ganzzahl Kleine Ende Byte Austausch Beispiel Byte Reihenfolge:AB CD EF GH (Größeres Ende)
Dezimalzahl - 1,234,567,890,123,456,789 oder HexadezimalzahlEE DD EF0B82 16 7E EB
Leitungsreihenfolge in Modbus-Nachrichten:EE DD EF0B82 16 7E EB
64 - Bit unsignierte Ganzzahl(64 - Bit unsigned integer)
Es vereint vier 16 - Bit Modbus-Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.
- Unsignierte Ganzzahl Große Mastanzahl
- Unsignierte Ganzzahl Kleine Mastanzahl
- Unsignierte Ganzzahl Big-endian Byte Austausch
- Unsignierte Ganzzahl Kleine Byte Austausch Beispiel Byte Reihenfolge:AB CD EF GH (Big-End)
Dezimalzahlen 1,234,567,890,123,456,789 oder Hexadezimalzahlen11 22 10F4
7D E9 81 15 Reihenfolge der Leitungen in der Modbus-Nachricht:11 22 10F4 7D E9 81 15
32 - Bit-Floating(32 - Bit-Floating)
Es kombiniert zwei 16 - Bit-Modbus - Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.
- Große Zahl schwimmen.
- Fließkomma-Größere Mastanzahl
- Fließkomma-Größere Bytes-Austausch
- Fließkomma-Größere Bytes-Austausch Beispiel Bytes-Reihenfolge:AB CD (Größeres Ende)
Fließkomma 123456.00 oder Hexadezimal47F1 20 00
Leitungsreihenfolge in Modbus-Nachrichten:47F1 20 00
64 - Bit doppelgenaue Gleitkommazahlen(64 - Bit double)
Es vereint vier 16 - Bit Modbus-Register. Es kann in vier verschiedenen Wort / Byte-Reihenfolge angezeigt werden.
- Doppelte große Zahl
- Doppel-kleine End
- Doppel-große End-Byte - Austausch
- Doppel-kleine End-Byte - Austausch Beispiel-Byte - Reihenfolge:AB CD EF GH (Big-End)
Fließkommazahl 123456789.00 oder Hexadezimal41 9D6F34 54 00 00 00
Leitungsreihenfolge in einer Modbus-Nachricht:41 9D6F34 54 00 00 00
Speichern / Öffnen eines Arbeitsbereichs
Wenn Sie viele verwandte Modbus-Fenster öffnen, können Sie bequem einen Snapshot des aktuellen Layouts aller geöffneten und angeordneten Modbus-Fenster in einem Arbeitsbereich speichern.
Der Arbeitsbereich (* msw) 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
Verbindungs - und Diagrammeinstellungen werden in Arbeitsbereichsdateien gespeichert.
Wenn Sie eine Arbeitsbereichsdatei öffnen, öffnet Modbus Slave alle Modbus-Fenster und zeigt sie in Ihrem gespeicherten Layout an.
Kommunikationsverkehr
Wählen Sie das Menü „Anzeige" → „Kommunikation", um den Datenverkehr auf einer seriellen Linie oder einem Ethernet-Kabel anzuzeigen. Verwenden Sie die Schaltfläche Stoppen, um die Aktualisierung vorübergehend zu stoppen, um zu überprüfen.
Verwenden Sie die Kopie-Schaltfläche, um die ausgewählte Zeile in die Zwischenablage zu kopieren.

| Dieses Fenster zeigt nur Daten an, die von Modbus-Stationen 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 öffnet.Modbus Slaveist ein automatisierter Server.
Das bedeutet, dass Sie Modbus-Daten entsprechend Ihren spezifischen Anforderungen interpretieren und anzeigen können, indem Sie jedes Programm verwenden, das VBA (Visual Basic for Applications) unterstützt (z. B. Visual Basic, Excel usw.).
Excel-Beispiel
Wenn Sie ein Makro schreiben möchten, sollten Sie die Registerkarte "Entwickler" anzeigen oder im Entwicklermodus ausführen.
Excel 2007

- Klicken Sie auf die Schaltfläche Microsoft Office, und klicken Sie dann auf Excel-Optionen.
- Klicken Sie auf "Popular" und aktivieren Sie das Kontrollkästchen "Registerkarte für Entwickler im Ribbon anzeigen".
Beachten Sie, dass das Band Teil der Microsoft Fluent-Benutzeroberfläche ist.
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 „Anpassbare Band".
- Wählen Sie im rechten Bereich unter der "Hauptarbeiter" das Kontrollkästchen "Entwickler".
- Klicken Sie auf "OK". Die Registerkarte „Entwickler" sollte nun im Leibband angezeigt werden (die Registerkarte rechts).
Excel-Beispielcode
Dieses Beispiel öffnet ein Fenster, das ein Aufbewahrungsregister simuliert.
Der Modbus-Slave ist versteckt, aber Sie können ihn anzeigen, indem Sie die Zeile "ShowWindow" dekommentieren. Dadurch wird eines der Fenster angezeigt.
Ein Beispiel ist ebenfalls in der Installation von Modbus Slave enthalten.
Start → Alle Programme → Modbus Slave → Excel-Beispiel Excel-VBA - Beispiel
Public doc As Object
Public app As Object
Dim status As Integer
Dim n As Integer
Private Sub StartSlave_Click()
' Create an application object. You can only create 1 application object
Set app = CreateObject("Mbslave.Application")
' Create a new Modbus Slave document (Data Window)
' This is the same as open a new data window in Modbus Slave
' You can create up to 50 Modbus Slave documents (Data Window)
Set doc = CreateObject("Mbslave.Document")
' Show Modbus Slave
' res = doc.ShowWindow()
' Create doc2 if needed.
' Set doc2 = CreateObject("Mbslave.Document")
' Set one of 5 connection types.
app.Connection = 1 ' Modbus TCP/IP
' TCP/IP settings.
' No need to set IP address. We listen to any address. (Default).
app.ServerPort = 502
app.IPVersion = 4
' Open the connection.
res = app.OpenConnection()
Range("D5").Value = res
res = doc.SetupHoldingRegisters(1, 100, 8)
doc.SRegisters(0) = 1 ' Modbus address 100
doc.SRegisters(1) = -10 ' Note that the Index used counts from 0
doc.URegisters(2) = 50000 ' no matter the Modbus address used.
doc.URegisters(3) = 60000
doc.Longs(4) = 10000 ' A long takes 2 registers
doc.Floats(6) = 123.45 ' A float takes 2 registers
' Now a master can read 8 Holding registers with a mix of 3 data types
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('Mbslave.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("Mbslave.Document")
# Setup 100 holding registers with slave ID 1, address 0 (40001)
Win1.SetupHoldingRegisters(1, 0, 100)
# 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
# Use ByteOrder to set the actual endianness
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")
# Set different values
Win1.SRegisters(0, -100)
Win1.SRegisters(1, 100)
Win1.URegisters(2, 43690)
Win1.URegisters(3, 65535)
Win1.ByteOrder = BE
Win1.Ints_32(4, -123456)
Win1.ByteOrder = LE
Win1.Ints_32(6, -123456)
Win1.ByteOrder = BE_BS
Win1.Ints_32(8, -123456)
Win1.ByteOrder = LE_BS
Win1.Ints_32(10, -123456)
Win1.ByteOrder = BE
Win1.UInts_32(12, 123456)
Win1.ByteOrder = LE
Win1.UInts_32(14, 123456)
Win1.ByteOrder = BE_BS
Win1.UInts_32(16, 123456)
Win1.ByteOrder = LE_BS
Win1.UInts_32(18, 123456)
Win1.ByteOrder = BE
Win1.Ints_64(20, -123456)
Win1.ByteOrder = LE
Win1.Ints_64(24, -123456)
Win1.ByteOrder = BE_BS
Win1.Ints_64(28, -123456)
Win1.ByteOrder = LE_BS
Win1.Ints_64(32, -123456)
Win1.ByteOrder = BE
Win1.UInts_64(40, 123456)
Win1.ByteOrder = LE
Win1.UInts_64(44, 123456)
Win1.ByteOrder = BE_BS
Win1.UInts_64(48, 123456)
Win1.ByteOrder = LE_BS
Win1.UInts_64(52, 123456)
Win1.ByteOrder = BE
Win1.Floats (60, 123.456)
Win1.ByteOrder = LE
Win1.Floats (62, 123.456)
Win1.ByteOrder = BE_BS
Win1.Floats(64, 123.456)
Win1.ByteOrder = LE_BS
Win1.Floats(66, 123.456)
Win1.ByteOrder = BE
Win1.Doubles(80, 123.456)
Win1.ByteOrder = LE
Win1.Doubles(84, 123.456)
Win1.ByteOrder = BE_BS
Win1.Doubles(88, 123.456)
Win1.ByteOrder = LE_BS
Win1.Doubles(92, 123.456)
# 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.
Verbindung
Verbindungen Wählen Sie die gewünschte Verbindung aus. Sie können einen seriellen Port oder eine Ethernet-Verbindung wählen.
EigenschaftVerbindungensind Ganzzahl gültiger Wert
0 = serieller Port
1 = Modbus TCP / IP
2 = Modbus UDP / IP
3 = Modbus RTU über TCP / IP
4 = Modbus RTU über UDP / IP
Beispiel
Connection = 0
Baudrate
Nur für Verbindungen = 0
AttributBaudRateals Long gültiger Wert
300
600
1200
2400
4800
9600 (Standard)
14400
19200
38400
56000
57600
115200
128000
153600
230400
256000
460800
921600 Beispiel
BaudRate = 9600
Datenbits
Nur für die Verbindung = 0
EigenschaftDataBitsals Ganzzahl gültiger Wert
7
8 (Standard)
Beispiel
DataBits = 8
Checkbit
Nur für die Verbindung = 0
EigenschaftParitätals Ganzzahl gültiger Wert
0 = Keine
1 = ungerade Zahl
2 = gerade Zahl (Standard)
Beispiel
Parity = 2
Stopp-Bit
Nur für Verbindungen = 0
EigenschaftStopBitsals Ganzzahl gültiger Wert
1 (Standard)
2
Beispiel
StopBits = 1
Serieller Port
Nur für Verbindungen = 0
EigenschaftSerialPortals Ganzzahl gültiger Wert
1...255
Standardwert = 1 Beispiel
SerialPort = 1
Serverport
Nur für Verbindungen = 1...4
EigenschaftServerPortist Long gültig
0...65535
Standardwert = 502 Beispiel
ServerPort = 502
IP-Version
Nur für Verbindungen = 1...4
EigenschaftIPVersionals Ganzzahl gültiger Wert
4 = IP-Version 4 (Standard)
6 = IP-Version 6
Beispiel
IPVersion = 4
Jede Adresse
Nur für Verbindungen = 1...4
EigenschaftAnyAddressals Ganzzahl gültiger Wert
0 = Jede Adresse = false
1 = Jede Adresse = true (Standard)
Beispiel
AnyAddress = 1
Ignorieren der Einheit-ID
Nur für Verbindungen = 1...4
AttributIgnoreUnitIDals Integer gültiger Wert
0 = Ignorieren von Zell-ID = false
1 = Ignorieren von Zell-ID = true (Standard)
Beispiel
IgnoreUnitID = 1
Öffnen von Verbindungen
Öffnen Sie die Verbindung, die Sie mit der Eigenschaft "Verbindung" ausgewählt haben.
FunktionOpenConnection() gibt den Wert als Ganzzahl
zurück:
ist bei Erfolg Null. Bei Fehlschlag ist es nicht Null. Beispiel für das Öffnen einer Modbus-TCP / IP-Verbindung
Public app As Object
Dim res As Integer
' Create an object to Modbus Slave
Set app = CreateObject("Mbslave.Application")
app.Connection = 1 ' Select Modbus TCP/IP
app.IPVersion = 4
' app.IPAddress = "192.168.1.27" ' No need to setup if AnyAddress = 1. Modbus Slave listen on all.
app.ServerPort = 502
res = OpenConnection()Beispiel für das Einrichten einer seriellen Verbindung
Public app As Object
Dim status As Integer
' Create an object to Modbus Slave
Set app = CreateObject("Mbslave.Application")
app.Connection = 0 ' Mode is serial port
app.SerialPort = 1 ' Com port 1
app.BaudRate = 9600 ' 9600 baud
app.Parity = 0 ' None parity
app.Mode = 0 ' RTU mode
status = app.OpenConnection()Schließen der Verbindung
FunktionCloseConnection() Als Integer gibt den Wert
zurück, wenn er erfolgreich ist. Bei Fehlschlag ist es nicht Null.
Kommunikationsverkehr anzeigen
FunktionShowCommunicationTraffic()
Zeigt das Kommunikationsverkehrsfenster an.
Schließen des Kommunikationsverkehrs
FunktionCloseCommunicationTraffic()
Schließt das Kommunikationsverkehrsfenster, wenn angezeigt.
Automatisierungseinstellungen
Die folgenden Funktionen sind die gleichen, die Sie im Dialogfeld Lesen / Schreiben Definitionen (F8) festlegen. Die Lesefunktion ist mit Modbus-Slaven - Dokumenten verbunden. (Fenster mit Daten)
. Beispiel
Res = doc.SetupDiscreteInputs (1, 100, 5) Coils (0) = 1 ' Address 100 = 1 Coils (1) = 0 ' Note that the index used in Coils starts from 0 Coils (2) = 1 ' no matter the address used. Coils (3) = 0 Coils (4) = 1 ' Now the Master reads 1, 0, 1, 0, 1 when read 5 discrete inputs starting from address 100
Setzen Sie die Spule
FunktionSetupCoils(SlaveID As Integer, Adresse As Long, Quantity As Integer) Als Integer Rückgabewert
Ist wahr, wenn Erfolg. Wenn nicht erfolgreich, ist der Parameter falsch
SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Basis-Adresse 0)
Anzahl:Anzahl der Daten. 1 bis 10000
Festlegen von diskreten Eingaben
FunktionFestlegen von diskreten Eingaben(SlaveID als Ganzzahl, Adresse als Ganzzahl, Quantität als Ganzzahl) Gibt den Wert
als Ganzzahl zurück, wenn er erfolgreich ist. Wenn nicht erfolgreich, ist es falsch
SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Basis-Adresse 0)
Anzahl:Datenmenge. 1 bis 10.000
Registrierung aufbewahren
FunktionSetupHoldingRegisters(SlaveID As Integer, Adresse As Long, Quantity As Integer) gibt den Wert
als wahr zurück, wenn er erfolgreich ist. Wenn nicht erfolgreich, falsch Argument
SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Basis-Adresse 0)
Quantity:Anzahl der Daten. 1 bis 10000
Setzt das Eingangsregister
FunktionSetupInputRegisters(SlaveID As Integer, Adresse As Long, Quantity As Integer) Als Integer Rückgabewert
Ist wahr, wenn es erfolgreich ist Bei Erfolg fehlt Falscher Parameter
SlaveID:Slave-Adressen 1 bis 255
Adresse:Datenadresse (Basis-Adresse 0)
Anzahl:Anzahl der Daten. 1 bis 10000
Fenster zeigt
FunktionShowWindow()
Das Modbus-Dokumentenfenster ist standardmäßig ausgeblendet. Die ShowWindow-Funktion ermöglicht Modbus Polls, Dokumente mit Dateninhalten sichtbar und anzuzeigen.
Namensbeschaffung
FunktionGetName(Index ist Ganzzahl) erhält den Namen des Wertes für die Zeichenfolgebeschreibung
.
Index 0 entspricht der ersten Modbus-Adresse.
Einstellungsnamen
FunktionSetName(Index ist eine ganze Zahl, Name ist eine Zeichenfolge) Beschreibung
Geben Sie den Namen des Einstellungswerts an.
Der Index 0 entspricht der ersten Modbus-Adresse.
Automatische Inkrementation
Die EigenschaftAutoIncrement(Index ist Ganzzahl) legt die automatische Inkrementation des Wertes für die Boolean-Wert - Beschreibung
fest.
Der Index 0 entspricht der ersten Modbus-Adresse.
Satz
Automatisches Inkremental(Index) [= neuer Wert]
Alle Formatieren
FunktionFormatAll(Formatiert als Ganzzahl)
Formatiert alle Wertzellen mit dem ausgewählten Format. Format des Arguments
: Das Format der ZelleWert.
Erhalt des Formats
Die FunktionGetFormat(Index ist Ganzzahl) als Ganzzahlbeschreibung
Abrufen des Anzeigeformats des Modbus-Wertes.
| ID | Format |
|---|---|
| 0 | 签 |
| 1 | Unsignierte |
| 2 | Hexadezimal |
| 3 | Binär |
| 4 | Kleiner Austausch mit Schwimmen. |
| 5 | Fließkomma-Klein - Bytes-Austausch |
| 6 | Fließkomma-Klein - Bytes-Austausch |
| 7 | Fließkomma-Klein - Bytes-Austausch |
| 8 | 32 - Bit-Signifizierter kleiner Bytes-Austausch |
| 9 | 32 - Bit-Signifizierter kleiner Bytes-Austausch |
| 10 | Fließkomma-Klein - Bytes-Austausch |
| 11 | Fließkomma-Klein - Bytes-Austausch |
| 12 | Doppel-Kleinsatz |
| 13 | Doppel-Big - End-Byte - Austausch |
| 14 | 32 - Bit-Symbolisiertes Small-End - Byte-Sequenz |
| 15 | 32 - Bit-Symbolisiertes Big-End - Byte-Austausch |
| 17 | 32 - Bit-Symbolisiertes Small-End - Byte-Sequenz |
| 18 | 32 - Bit-Symbolisiertes Small-End - Byte-Austausch |
| 19 | 32 - Bit-Symbolisiertes Big-End - Byte-Austausch |
| 20 | 32 Bits ohne Symbolen |
| 21 | 64 Bits haben ein großes Symbol. |
| 22 | 64 - Bit-Symbol - Small-End - Byte-Austausch |
| 23 | 64 - Bit-Symbol - Groß-End - Byte-Austausch |
| 24 | 64 - Bit-Symbol - Small-End - Byte-Sequenz |
| 25 | 64 - Bit-Symbol - Groß-End - Byte-Sequenz |
| 26 | 64 - Bit-Symbol - Small-End - Byte-Austausch |
| 27 | 559] 64 - Bit unsignierte kleine Byte-Sequenz |
| 28 | 64 - Bit-Unsignifizierter Kleinkreis |
| Diese Einstellung dient nur zur Darstellung. Wenn Sie die Get / Set-Wert - Funktion verwenden, müssen Sie dennoch byteOrder verwenden, um die richtige Byte-Sequenz zu erhalten. |
Format einrichten
FunktionSetFormat(Index als Ganzzahl, Format als Ganzzahl) beschreibt
das Anzeigeformat für Modbus-Werte. Bitte beachten Sie die oben angegebenen Formate.
Fenstergröße ändern
FunktionResizeWindow()
Ändert die Größe des geöffneten Fensters an das Gitter.
Anzahl der Zeilen
FunktionRows(NumberRows)
Gibt die Anzahl der Zeilen im Raster an. Parameter
NumberRows: Anzahl der Zeilen imAnzahl der Zeilen im Netz.
| ID | Beschreibung |
|---|---|
| 0 | 10 Zeilen (Standard) |
| 1 | 20 Zeilen |
| 2 | 50 Zeilen |
| 3 | Geeignet für die Menge |
Automatisierungsdatenattribute
Die folgenden Attribute werden verwendet, um Werte in Modbus-Arrays von der Station aus zu schreiben / zu lesen. Der verwendete Index ist nicht die Modbus-Adresse. Unabhängig von welcher Adresse verwendet wird, wird der Index immer ab 0 gezählt. Die Dateneigenschaften sind dem Modbus-Slaven - Dokument zugeordnet. (Fenster mit Daten)
Beispiel 1:
' doc is assumed created first. See Excel example. doc.SRegisters(0) = 1 doc.SRegisters(1) = 10 doc.SRegisters(2) = 1234
Beispiel 2: Verwendung eines Gleitkomma-Wertes
doc.Floats(0) = 1.3 doc.Floats(2) = 10.5 doc.Floats(4) = 1234.12
Coil(Coils)
Attribut Coil (Index As Integer) As Integer
Beschreibung
Setzt eine Spule in einer Schreibarray-Struktur oder gibt eine Spule aus einem Lesarray zurück.
Syntax
Coils(Index) [= neu]
Kurzes Integer-Register(SRegisters)
Attribut Kurze Integer-Register (Index As Integer) As Integer
Beschreibung
Setzt ein Register in einer Schreibarray-Struktur oder gibt ein Register aus einem Lesarray zurück.
Syntax
SRegisters(Index) [= neu]
Unsignierte Register(URegisters)
Attribut Unsigned Register (Index As Integer) As Long
Beschreibung
Setzt ein Register in einer Schreibarray-Struktur oder gibt ein Register aus einem Lesarray zurück.
Syntax
URegisters(Index) [= neuer Wert]
32 - Bit-Integrator(Ints_32)
Eigenschaft 32 - Bit-Integrator (Index As Integer) As Double
Beschreibung
Setzt eine 32 - Bit-Ganzzahl in der Schreib-Array - Struktur oder gibt eine Ganzzahl aus einem Lesetarray zurück.
Syntax
URegisters(Index) [= neu]
Unsignierte 32 - Bit-Gänzwerte(UInts_32)
Eigenschaft Unsignierte 32 - Bit-Gänzwerte (Index As Integer) As Double
Beschreibung
Legen Sie eine 32 - Bit unsignierte Ganzzahl in der Schreibarray-Struktur oder geben Sie eine unsignierte Ganzzahl aus einem Lesetarray zurück.
Syntax
UInts_32(Index) [= neu]
64 - Bit-Integrator(Ints_64)
Attribut 64 - Bit-Integrator (Index) As Integer As Double
Beschreibung
Setzt eine 64 - Bit-Ganzzahl in der Schreibarray-Struktur oder gibt eine Ganzzahl aus dem Lesetarray zurück.
Syntax
Ints_64(Index) [= neu]
Unsignierte 64 - Bit-Ganzwerte(UInts_64)
Eigenschaft Unsignierte 64 - Bit-Ganzwerte (Index As Integer) As Double
Beschreibung
Legen Sie eine 64 - Bit unsignierte Ganzzahl in der Schreib-Array - Struktur fest oder geben Sie eine unsignierte Ganzzahl aus einem Lesetarray zurück.
Syntax
UInts_64(Index) [= neu]
Fließkommazahlen(Floats)
Eigenschaft Fließkommazahlen (Index As Integer) As Single
Beschreibung
Legen Sie eine Fließkommazahl in der Schreibarray-Struktur oder geben Sie eine Fließkommazahl aus dem Lesetarray zurück.
Syntax
Floats(Index) [= neu]
Fließkommazahl mit doppelter Präzision(Doubles)
Attribut Fließkommazahl mit doppelter Präzision (Index As Integer) As Double
Beschreibung
Legen Sie eine Fließkommazahl mit doppelter Präzision in einer Schreibarray-Struktur oder geben Sie eine Fließkommazahl mit doppelter Präzision aus einem Lesarray zurück.
Syntax
Doubles(Index) [= neu]
Byte-Reihenfolge(ByteOrder)
AttributByteOrderals Ganzzahlbeschreibung
Legen Sie die Bytereihenfolge fest, die für die Attribute Ints_32, UInts_32, Ints_64, UInts_64, Gleitkomma - und Doppelkomma-Eigenschaften verwendet wird.
| ID | Die Reihenfolge |
|---|---|
| 0 | Große Ordnung (Default) |
| 1 | Small-End - Sequenz-Byte - Austausch |
| 2 | Big-End - Sequenz-Byte - Austausch |
| 3 | Small-End - Sequenz |
Ints_32 Beispiel:
Byte-Sequenz: Big-End - Sequenz
Dezimal-Zahl 123456789 oder Hexadezimal 07 5B CD15
Übertragungsreihenfolge in einer Modbus-Nachricht: 07 5b CD 15
Syntax
Reihenfolge [= neuer Wert]

Applet-Version, kostenlos!!!
非常需要找个软件
试试看
求软件
good
good
支持
学习求教
adada
求软件
一直在找这个软件,终于找到 ,非常好用
*这软件不错*
OK
网络上还没看到这么详尽的教程太棒了!
教程挺详细的,我还需要软件
求编程
666
woxuyao
很全很赞
教程挺详细的,我还需要软件
贼好用
需要需要,下载测试
66
666
v
666
很棒,太需要了
太棒了,正需要
好好好666
好好好
教程详细!太棒了!
666