WÄGETECHNIK · EIGENENTWICKLUNG · SUPPORT
+386 2 320 33 46info@preciz.si
PRECIZWägetechnik.
Verbunden mit Ihrem Prozess.

NEUTRON · MITTEILUNGSPROTOKOLL

Neutron Modbus RTU/TCP — Integrationshandbuch

Neutron Modbus RTU/TCP-Referenz für SPS-, SCADA- und HMI-Integration: Verbindung, Adressierung, Register, Kalibrierung und automatische Kontrollwaagenregelung.

1. MANUELLE VERSANDE

Tabelle 1

Fassung

Datum

Beschreibung der Änderung

1.0

Juni 2026

Erste manuelle Version von Neutron Modbus.

2. OVERVIEW

CloudScale Neutron NS und Neutron NT bieten eine Modbus-Schnittstelle zum Auslesen von Wägedaten, Statusinformationen, digitalen I/O und Kalibrierdaten sowie zum Ausführen ausgewählter Waagenbefehle. Die Schnittstelle ist für die Integration in SPS, SCADA, HMI, MES und individuelle Software vorgesehen.

Neutron unterstützt folgende Modbus-Transportvarianten:

  • Modbus RTU über die RS-232 oder RS-485 Schnittstelle. Die Standard-Modbus-Slave / Unit-ID ist 1.

  • Modbus TCP über Wi-Fi oder Ethernet. Der Standard-TCP-Port ist 502.

Die verfügbaren Funktionen und Registerbereiche sind die gleiche logische Schnittstelle für Modbus TCP und Modbus RTU, mit der Ausnahme, dass TCP nur dann einen Unit Identifier verwendet, wenn dies vom Client oder Gateway verlangt wird.

Wichtig: Kommunikationsparameter wie serielle Porteinstellungen und Netzwerkeinstellungen müssen in Neutron konfiguriert werden, bevor der Modbus-Master angeschlossen wird. Das Gerät verwendet die Modbus-Adresse, die durch den Parameter MBA konfiguriert wurde.

3. KONNEKTION UND AKTIVIERUNG

3.1 MODBUS TCP

Modbus TCP ist über die Netzanbindung des Neutrons verfügbar. Verwenden Sie die dem Gerät zugewiesene IP-Adresse und den TCP-Port 502. Die TCP-Kommunikation erfordert keine serielle Leitungskonfiguration.

Um Modbus TCP zu verwenden, wählen Sie Modbus TCP unter den Waagen-Kommunikationsschnittstellen (Parameter SCI). Modbus TCP kann zusammen mit anderen Schnittstellen verwendet werden. Beispielsweise können Sie weiterhin RS-232 für die Kommunikation mit einem Computer über das CSCP-Protokoll nutzen.

Tabelle 2

Konfiguration

Ergebnis

GGB = 10

Aktiviert nur Modbus TCP.

SCI = 5,10

Ermöglicht die normale Waagenkommunikation über RS-232 zusammen mit Modbus TCP.

SCI = 6,10

Ermöglicht die normale Waagenkommunikation über RS-485 zusammen mit Modbus TCP.

MBA

Setzt Modbus Slave / Unit-Adresse. Standard: 1.

TCP-Port

502

Wenn mehrere SCI-Werte angezeigt werden, konfigurieren Sie die Schnittstellen entsprechend der ausgewählten Neutronenkommunikationskonfiguration. Nachdem Sie Konfigurationsänderungen angewendet haben, starten Sie die Kommunikation oder das Gerät neu, wenn dies im Konfigurationsmenü erforderlich ist.

3.2 TYPISCHE TCP-ANLAGE

Tabelle 3

Position

Beispiel

Modbus-Master

PLC, SCADA, HMI or industrial PC

Transport

Ethernet oder Wi-Fi TCP/IP

Zieladresse

Neutronen-IP-Adresse

Service-Port

502

Einheitenkennung

MBZ-Wert; Standard 1

Für eine stabile Industrieinstallation wird Ethernet immer dann empfohlen, wenn ein drahtgebundenes Netzwerk verfügbar ist. Wi-Fi fügt netzwerkabhängige Latenz hinzu und sollte in der Anwendungsumgebung bewertet werden.

3.3 MODBUS RTU (RS-232/RS-485)

Modbus RTU kann über RS-232 oder RS-485 verwendet werden. Die seriellen Kommunikationseinstellungen des Modbus-Masters müssen mit den in Neutron konfigurierten seriellen Schnittstelleneinstellungen übereinstimmen. Die Modbus-Slave-ID wird von MBA eingestellt und ist standardmäßig auf 1.

Um Modbus RTU zu verwenden, müssen Sie entweder Modbus RS-232 oder Modbus RS-485 unter skaliertem Kommunikationsschnittstellen (Parameter SCI) auswählen.

Tabelle 4

Schnittstelle

Typisches Verdrahtungsprinzip

Wichtiger Hinweis

RS-232

Verbinden Sie TX, RX und GND zwischen Neutron und dem Modbus Master. TX / RX muss möglicherweise gekreuzt werden, je nachdem, ob die angeschlossenen Ports DTE oder DCE sind.

Verwenden Sie kurze Punkt-zu-Punkt-Verbindungen und eine gemeinsame Signalmasse.

RS-485

Verbinden Sie A mit A und B mit B entsprechend der von beiden Geräten verwendeten Terminalmarkierung; Verbinden Sie die Signalreferenz / GND, wenn dies von der Installation erforderlich ist.

Verwenden Sie eine Daisy-Chain-Topologie. Verwenden Sie keine Sternverdrahtung. Leitungsabschluss nur an den beiden physischen Enden anwenden, wo dies erforderlich ist.

Befolgen Sie immer die Markierung des Neutronenanschlusses und das mit dem Gerät gelieferte Schaltbild. Hersteller kennzeichnen RS-485 Polarität nicht immer auf die gleiche Weise; wenn keine Kommunikation hergestellt wird, überprüfen Sie die A/B Polarität und die Master-Konfiguration.

4. BESCHREIBUNG UND DATENVERTRETUNG

Dieses Handbuch verwendet die herkömmliche Modbus-Referenznotation (z. B. 40101). Viele Modbus-Client-Tools verwenden Null-basierte Startadressen. In solchen Werkzeugen entfernen Sie die führende Registerbereichsziffer und subtrahieren 1 von der Referenzadresse.

Tabelle 5

Bezugsnummer

Nullbasierte Startadresse

Beispiel

40001
0

Bestandsregister 40001

40101
100

Bestandsregister 40101

40232
231

Bestandsregister 40232

40380
379

Bestandsregister 40380

Bestätigen Sie die Adressierungskonvention des Modbus-Masters vor der Inbetriebnahme. Ein Offsetfehler eines Registers ist der häufigste Grund für falsche Dateninterpretation.

4.1 GEWICHTSFORMAT

  • Brutto-, Netto- und Tarawerte sind signierte 32-Bit-Ganzzahlen, die in zwei aufeinanderfolgenden 16-Bit-Registern gespeichert sind.

  • Das hohe Wort wird zuerst übertragen (Big-Endian-Registerreihenfolge).

  • Die Dezimalposition wird im Ausgabe-/Statuskonfigurationsregister, Bits 14..13, gemeldet.

  • Hochauflösende Brutto- und Nettoregister 40109-40112 verwenden zwei zusätzliche Dezimalstellen, wenn der hochauflösende Wert verfügbar ist.

Beispiel: Wenn das Dezimalstellenfeld 2 Dezimalstellen anzeigt, stellt der signierte 32-Bit-Wert 12345 123,45 in der aktiven Einheit dar. Die Einheit steht im Register 40113 zur Verfügung und ist auch im Ausgabe-/Status-Konfigurationsregister codiert.

5. UNTERSTÜTZTE MODBUS-FUNKTIONEN

Tabelle 6

Funktion

Name

Verwendung in Neutronen

01

Lesen Sie Coils

Lesen Sie digitale Ausgabezustände (Coils 1..6 Karte zu DO1..DO6).

03

Lesen Sie Bestandsregister

Lesen Sie beschreibbare und befehlsbezogene Register.

04

Lesen Sie Input Registers

Lesen Sie Prozessdaten, Gewichte und Statusregister.

05

Schreibe Single Coil

Legen Sie einen digitalen Ausgang fest, bei dem die Ausgabefunktion deaktiviert ist.

06

Schreiben Single Register

Schreiben Sie ein Bestandsregister, einschließlich befehlsbezogener Felder.

15

Mehrere Spulen schreiben

Legen Sie mehrere digitale Ausgänge fest, bei denen Funktionen deaktiviert sind.

16

Mehrere Register schreiben

Schreiben Sie Befehl, Parameter und Kalibrierdaten als Block.

Schreiboperationen in Ausgänge, die von einer konfigurierten Ausgabefunktion gesteuert werden, werden abgelehnt. Typische funktionsgesteuerte Ausgänge umfassen Toleranz- und Dosierausgänge.

6. KARTE DES PROZESSDATENREGISTERS

6.1 WICHTIGSVERARBEITUNGSREGISTER

Tabelle 7

Input/Holding-Bezug

Beschreibung

Datenart/Anmerkungen

30001-30002 / 40001-40002

Bruttogewicht

Unterzeichnet INT32, Big-Endian Register Order.

30003-30004 / 40003-40004

Nettogewicht

Unterzeichnet INT32, Big-Endian Register Order.

30005 / 40005

Waagenstatus

Bitfeld, siehe Abschnitt 6.3.

30006 / 40006

Befehlsstatus

Befehlsverarbeitungszustand.

30007 / 40007

Ausgabe-/Statuskonfiguration

Bitfeld: Ausgänge, Einheit und Dezimalposition.

Die Hauptkarte ermöglicht es einfachen Mastern, Netto- oder Bruttogewichts- und Schlüsselstatusdaten mit einem kleinen zusammenhängenden Registerbereich zu erhalten.

6.2 ERWEITERTE PROZESSREGISTER

Tabelle 8

Haltungsregister

Beschreibung

Datenart/Anmerkungen

40101-40102

Bruttogewicht

Unterzeichnet INT32.

40103-40104

Nettogewicht

Unterzeichnet INT32.

40105-40106

Leergewicht

Unterzeichnet INT32.

40107

Waagenstatus

Bitfeld, siehe Abschnitt 6.3.

40108

Ausgabe-/Statuskonfiguration

Bitfeld, siehe Abschnitt 6.3.

40109-40110

Hochauflösendes Brutto

Signiert INT32; zwei zusätzliche Dezimalstellen, sofern verfügbar.

40111-40112

Net High-Resolution

Signiert INT32; zwei zusätzliche Dezimalstellen, sofern verfügbar.

40113

Einheit

0 = g; 1 = kg; 2 = t; 3 = lb.

40114

Digitale Eingabemaske

Bits 0..5 = DI1..DI6.

40115

Digitale Ausgabemaske

Bits 0..5 = DO1..DO6.

40116

Maske der Ausgabefunktion

Ein gesetztes Bit bedeutet, dass der zugehörige Ausgang funktionsgesteuert ist.

40117

ADC-Punkte

Roh-ADC-Wert.

40119

Millivolt

Wägezellensignal in mV.

40231

Befehlsstatus

Befehlsverarbeitungszustand.

40232

Kommando

Schreibe hier den Befehlscode.

40233

Befehlsparameter 1

Optionaler Parameter für den Befehl in 40232.

6.3 STATUS- UND KONFIGURATIONSBITBEREICH

6.3.1 SCALE STATUS REGISTER (30005 / 40005 / 40107)

Tabelle 9

Bit

Bedeutung (wenn Bitwert = 1)

0

Nettogewicht ist negativ.

1

Bruttogewicht ist negativ.

2

Das Gewicht ist stabil.

3

Unterlastzustand.

4

Überlastzustand.

5

Tare ist aktiv.

6

Preset / manuelles Tare ist aktiv.

7

Das Bruttogewicht ist Null.

8

Der Digitaleingang 1 ist aktiv.

9

Der Digitaleingang 2 ist aktiv.

10

Scale / ADC-Fehler ist aktiv.

6.3.2 OUTPUT/STATUS-KONFIGURATIONSREGISTER (30007 / 40007 / 40108)

Tabelle 10

Bit(s)

Bedeutung

0..5

Status der digitalen Ausgabe: DO1..DO6.

6..7

Code der aktiven Einheit: 0 = g; 1 = kg; 2 = t; 3 = lb.

8

Waagen-/Wägezellenfehler.

13..14

Dezimalstellencode für Standardgewichtswerte.

Verwenden Sie für Anwendungen, die alle Ausgabezustände erfordern, das Register 40115. Verwenden Sie das Register 40116, um zu bestimmen, welche Ausgänge derzeit von der aktiven Funktion reserviert sind.

7. BEHÖRDEN UND DIGITALE AUSGABEN

7.1 BETRIEB DES GEMEINSCHAFTSREGISTERS

Schreiben Sie einen Befehlscode in das Halteregister 40232. Schreiben Sie den optionalen Parameter auf 40233, bevor Sie den Befehl ausgeben. Der Befehlsstatus kann ab 40231 gelesen werden. Der Befehlscode 0 löscht den Wiederholungsschutz und ermöglicht die erneute Ausführung des gleichen Befehls.

Tabelle 11

Befehlscode

Parameter 40233

Aktion

0
-

Kein Befehl; Wiederholungswache zurücksetzen.

1
0

Null nach Stabilitätsprüfung.

1
1

Null sofort.

2
0

Tara nach der Stabilitätsprüfung.

2
1

Tare sofort.

3
-

Leergewicht.

25

Ausgabebitmaske

Stellen Sie die digitalen Ausgänge entsprechend der Bitmaske ein.

Shortcut: Das Schreiben des Befehlscodes in das Halteregister 40001 führt auch den Befehl aus. Für eine vorhersagbare Integration werden die erweiterten Befehlsregister 40232 und 40233 empfohlen, insbesondere wenn ein Parameter benötigt wird.

7.2 DIGITALE AUSGABEN

  • Spulen 1..6 entsprechen DO1..DO6.

  • Verwenden Sie die Funktionen 01, 05 und 15, um Spulen zu lesen oder zu schreiben.

  • Eine Ausgabe kann nur über Modbus geändert werden, wenn die Ausgabefunktion deaktiviert ist.

  • Wenn eine Ausgabe durch eine Toleranz-, Dosier- oder andere aktive Funktion gesteuert wird, weist das Gerät Modbus-Schreiben in diese Ausgabe zurück.

Beispiel: Um DO1 und DO3 mit dem Befehlscode 25 zu aktivieren, schreiben Sie eine Bitmaske von binär 000101 (Dezimalzahl 5) bis 40233 und schreiben Sie dann 25 bis 40232. Überprüfen Sie das Ergebnis durch das Register 40115 oder die Spulen 1..6.

8. BERECHNUNGSSCHNITTSTELLE

Die Kalibrierung erfolgt über Register. Erfolgreiche Kalibrierdaten werden zum Flash-Speicher gespeichert. Wenn die Kalibrierung fehlschlägt, werden die geänderten Daten nicht gespeichert.

8.1 BERECHNUNGSDATEN

Tabelle 12

Betriebsnummer

Nullbasierter Start

Beschreibung

40300
299

Kalibrierstatusbitfeld.

40301
300

Skalierenkanal.

40302
301

Anzahl der für die Kalibriergewichte verwendeten Dezimalstellen.

40303
302

Anzahl der gültigen Kalibrierpunkte.

40304-40305
303

Null ADC-Punkt, signiert INT32.

Tabelle 13

Kalibrierstatusbit

Bedeutung

0

Nullpunkt existiert.

1

Der erste Kalibriergewichtspunkt existiert.

2

Scale hat die minimal gültige Kalibrierung.

8

Scale / ADC-Fehler ist aktiv.

8.2 BERECHNUNGSPUNKTE

Punkt 1 beginnt bei 40310 (Null-basierter Start 309). Jeder Kalibrierpunkt verwendet acht Register. Das Startregister für Punkt N ist 40310 + ((N - 1) x 8).

Tabelle 14

Offset im Punktblock

Beschreibung

+0

Gültig: 0 = ungültig; 1 = gültig.

+1..+2

Kalibriergewicht, signiert INT32.

+3..+4

ADC-Punkt, unterzeichnet INT32.

+5..+6

Faktor x100, signiert INT32.

+7

Vorbehalten.

Beispiele: Punkt 1 = 40310-40317; Punkt 2 = 40318-40325; Punkt 3 = 40326-40333; Punkt 8 = 40366-40373.

8.3 BERECHNUNGSBEHÖRDEN

Tabelle 15

Betriebsnummer

Nullbasierter Start

Beschreibung

40380
379

Kommando.

40381
380

Nummer des Punktes.

40382-40383
381

Kalibriergewicht, signiert INT32.

40384
383

Flaggen.

40385
384

Auslöser.

40386
385

Befehlsergebnis.

40387
386

Zuletzt ausgeführter Befehl.

Tabelle 16

Kommando

Beschreibung

1

Null kalibrieren.

2

Gewichtspunkt kalibrieren.

3

Kalibrierpunkt löschen.

4

Nullpunkt streichen.

5

Löschen Sie alle Kalibrierungen.

6

Waage neu laden / initialisieren.

Flagsregister 40384: Bit 0 steuert, ob Stabilität erforderlich ist. Ein Wert von 0 wird sofort ausgeführt; ein Wert von 1 erfordert einen stabilen ADC-Durchschnitt. Alle anderen Flagbits sind reserviert.

Tabelle 17

Ergebnis 40386

Bedeutung

0

OK.

1

Falscher Befehl.

2

Schlechte Daten.

3

Nicht erlaubt.

4

Nicht unterstütztes Kommando.

5

Kalibrierung fehlgeschlagen.

8.4 TRIGGERSEQUENZ

Die Firmware verarbeitet die Kalibrierung nur, wenn das Triggerregister 40385 auf einen Wert ungleich Null wechselt. Verwenden Sie für jeden Kalibrierbefehl die folgende Reihenfolge:

  1. Schreibbefehl und alle erforderlichen Parameter.

  2. Schreibe 40385 = 1, um die Operation auszuführen.

  3. Warten Sie auf die Vollendung des Befehls und lesen Sie 40386.

  4. Schreibe 40385 = 0, um den Trigger zurückzusetzen.

  5. Schreiben Sie für den nächsten Befehl Parameter und ändern Sie 40385 erneut auf 1.

8,5 BEISPIELE

Tabelle 18

Kommando

Null kalibrieren

Zweck

Schreiben Sie mehrere Register ab Null-basierte Adresse 379.

Antworten

40380 = 1

Befehl: Kalibrieren Sie Null.

40381 = 0

Punktnummer nicht verwendet.

40382 = 0; 40383 = 0

Kalibriergewicht nicht verwendet.

40384 = 1

Erfordern einen stabilen ADC-Durchschnitt.

40385 = 1

Auslösebetrieb.

Lesen Sie 40386

Erwartetes Ergebnis: 0 (OK).

Tabelle 19

Kommando

Kalibrierpunkt 1 mit 10.000 kg

Zweck

Für 40302 = 3, skalieren Sie das Kalibriergewicht um 1000.

Antworten

40380 = 2

Befehl: Gewichtspunkt kalibrieren.

40381 = 1

Punkt Nummer 1.

40382-40383 = 10000

10.000 kg x 1000.

40384 = 1

Erfordern einen stabilen ADC-Durchschnitt.

40385 = 1

Auslösebetrieb.

Lesen Sie 40386

Erwartetes Ergebnis: 0 (OK).

Tabelle 20

Kommando

Streichung von Nummer 1

Zweck

Entfernen Sie den ersten Kalibrierpunkt.

Antworten

40380 = 3

Befehl: Kalibrierpunkt löschen.

40381 = 1

Punkt Nummer 1.

40385 = 1

Auslösebetrieb.

Tabelle 21

Kommando

Alle Kalibrierungen löschen

Zweck

Entfernen Sie alle gespeicherten Kalibrierdaten.

Antworten

40380 = 5

Befehl: Löschen Sie alle Kalibrierungen.

40385 = 1

Auslösebetrieb.

9. KOMMISSIONIERUNG UND TROUBLESHOOTING

  1. Konfigurieren Sie SCI für die erforderliche Schnittstellenkombination und setzen Sie MBA auf die erforderliche Modbus Slave / Unit ID.

  2. Bestätigen Sie für Modbus TCP die IP-Adresse und verbinden Sie sich mit dem TCP-Port 502. Für Modbus RTU, übereinstimmen serielle Parameter und überprüfen Sie die Verdrahtung.

  3. Lesen Sie ein bekanntes Register wie 40113 (Einheit) oder 40107 (Waagenstatus), um die Adressierung zu prüfen.

  4. Lesen Sie 40101-40106 und decodieren Sie die signierten 32-Bit-Brutto-, Netto- und Tarawerte mit der gemeldeten Dezimalposition.

  5. Prüfen Sie Waagenstatus sowie digitale Ein- und Ausgänge, bevor Sie Steuerungsfunktionen aktivieren.

  6. Verwenden Sie Befehlsregister und Kalibrierfunktionen erst, nachdem Sie sich vergewissert haben, dass der richtige Waagenkanal und der passende Anwendungszustand aktiv sind.

9.2 GEMEINSAME AUSGABEN

Tabelle 22

Symptom

Wahrscheinliche Ursache

Aktion

Keine Modbus Antwort

Scale Communication Interface (SCI) ist nicht für die ausgewählte Schnittstelle konfiguriert; falsche IP/Port- oder serielle Einstellungen; falsche Verdrahtung.

Überprüfen Sie SCI, TCP-Port 502, MBA, Netzwerkerreichbarkeit, serielle Parameter und physische Verdrahtung.

Werte erscheinen verschoben oder ungültig

Client verwendet eine falsche Referenz / Null-basierte Registerkonvertierung; 32-Bit-Wörter in falscher Reihenfolge dekodiert.

Überprüfen Sie die Client-Adressierungskonvention und verwenden Sie signierte INT32 mit Big-Endian-Registerbestellung.

Gewicht hat falsche Dezimalposition

Client ignoriert die Dezimalpositionskonfiguration oder das hochauflösende Format.

Lesen Sie 40108 und wenden Sie die Bits 14..13 an; verwenden Sie nur bei Bedarf hochauflösende Register.

Output kann nicht geschrieben werden

Die Ausgabe wird durch eine zugewiesene Funktion gesteuert.

Lesen Sie 40116 und deaktivieren Sie die entsprechende Ausgabefunktion, bevor Sie die Ausgabe über Modbus steuern.

Derselbe Befehl wird nicht erneut ausgeführt

Der Repeat Guard wurde nicht zurückgesetzt.

Schreibe den Befehl 0 bis 40232 und gib den Befehl dann erneut aus.

Kalibrierbefehl hat keine Wirkung

Der Trigger wechselte nicht zu Nicht-Null oder wurde nach einem vorherigen Befehl nicht zurückgesetzt.

Setzen Sie alle Parameter, ändern Sie 40385 auf 1, lesen Sie 40386, dann schreiben Sie 40385 zurück auf 0.

Sicherheitshinweis: Kalibrierung, Nulleinstellung, Tarierung und Ausgabesteuerung können sich auf das Wägeergebnis und die angeschlossenen Maschinen auswirken. Anwendung der Zugriffskontrolle, Validierung von Befehlen in der Host-Anwendung und Sicherstellung, dass alle Operationen den geltenden messtechnischen und Maschinensicherheitsanforderungen entsprechen.

10. Automatische Kontrollwaage

Dieses Kapitel beschreibt die grundlegende CHECKWEIGHER-Schnittstelle, Register Map Version 1. Es unterstützt den Leseprozessstatus und das letzte abgeschlossene Ergebnis, die Auswahl eines vorhandenen Rezepts, die Konfiguration von Autostart und START / STOP / STOP NOW / RESET. Rezeptbearbeitung, Filterkonfiguration, Anwendungsauswahl, E/A-Zuweisung und detailliertes Debug-Streaming sind nicht enthalten. Konfigurieren Sie diese mit der normalen Setup-Schnittstelle, bevor Sie diesen Block verwenden.

10.1 Verbindung und Adressierung

Die Karte ist auf Modbus TCP identisch und aktivierte Modbus RTU-Schnittstellen. Verwenden Sie einen steuernden Client / Master; zusätzliche Leser können die Daten überwachen. Es gibt eine gemeinsame Befehls-Mailbox für alle Transporte, nicht eine Mailbox pro Client. Verwenden Sie keine Broadcast-Anfragen für diese Schnittstelle. Lesen Sie vor dem Steuern den Block und bestätigen Sie die Gültigkeit von application=4 (CHECKWEIGHER), channel und snapshot.

Die folgenden Adressen sind Null-basierte PDU-Adressen. Für Clients mit 4xxxx Notation, Referenz = 40001 + Adresse: Adresse 400 ist 40401 und Adresse 480 ist 40481. Verwenden Sie die Funktion 03 (oder 04) zum Lesen. Schreiben Sie Befehle nur mit Funktion 16 (0x10), beginnend bei 480 und schreiben Sie genau acht Register. Funktion 06 und Teilschreiben werden abgelehnt. Ergebnis-/Status-Register sind schreibgeschützt. Die Lücke zwischen den Lese- und Schreibblöcken ist nicht lesbar.

Lesen Sie Adresse 400, Zählung 48, um Status, Befehlsbestätigung und das letzte Ergebnis in einer Anforderung zu erhalten. Alternativ lesen Sie 400/count 24 für den Status oder 424/count 24 für das Ergebnis. Alle 32-Bit-Werte verwenden zuerst das hohe Wort; jedes Register verwendet den Standard Modbus High-Byte-erste Ordnung. Teilen Sie einen 32-Bit-Wert nicht auf separate Anforderungen.

10.2 Status- und Ergebnisregisterkarte

Tabelle 23

PDU/Referenz

Wörter

Name/Typ

Beschreibung

400 / 40401
1

MAP_VERSION / UINT16

1 für diese Karte.

401 / 40402
2

BOOT_ID/UINT32

Nicht null zufällige Sitzungstoken, die beim Booten des Geräts generiert werden. Echo in jedem Schreiben; nicht über den Neustart beibehalten. Dies ist kein Sicherheitsnachweis.

403 / 40404
1

CHANAL/UINT16

aktueller Wägekanal.

404 / 40405
1

ANWENDUNG / UINT16

Muss 4 für die Kontrolle sein.

405 / 40406
1

STAAT / UINT16

0 IDLE; 1 START_CHECK; 2 RUN; 3 DRAINING; 4 PAUSED; 5 STOPPED; 6 ERROR; 7 CONS_LOST.

406 / 40407
1

ACTIVE_ID/UINT16

Ausgewähltes Rezept; kann von der RESULT_ID des vorherigen Produkts abweichen.

407 / 40408
1

AUTOSTART / UINT16

Persistent CWAUTO: 0 deaktiviert, 1 aktiviert.

408 / 40409
1

PROCESS_ERROR / UINT16

Aktueller Blockierprozessfehler; 0 keine.

409 / 40410
1

BELT/UINT16

Logische Gürtelanforderung, 0/1; keine Motorrückmeldung.

410 / 40411
1

CONS / INT16

-1 (0xFFFF) nicht zugewiesen; 0 inaktiv; 1 aktiv.

411 / 40412
1

PQ/UINT16

Ausstehende Produkte.

412 / 40413
1

EQ/UINT16

Ausstehende/aktive Ausgabeereignisse.

413 / 40414
1

AUTO_STATE / UINT16

Autostart-Ergebnis: siehe 10.5.

414 / 40415
1

AUTO_ERROR / UINT16

Fehler des Boot-Autostarts; 0 keine.

415 / 40416
1

SNAPSHOT_VALID/UINT16

1 nutzbarer Snapshot; 0 nicht verfügbar. Überprüfen Sie auch die ANWENDUNG vor der Kontrolle.

416 / 40417
2

REQUEST_ID/UINT32

Letzte akzeptierte Anfrage; ändert sich sofort bei der Annahme.

418 / 40419
2

ACK_ID/UINT32

Die letzte abgeschlossene Anfrage. 0 bedeutet keine seit dem Booten.

420 / 40421
1

COMMAND_STATE / UINT16

0 IDLE; 1 BUSY; 2 DONE; 3 FEHLER.

421 / 40422
1

COMMAND_ERROR / UINT16

Anwendungsfehler der abgeschlossenen Anfrage; siehe 10.4.

422 / 40423
1

APPLIED_MASK / UINT16

Bit 0 Rezeptauswahl angewendet; Bit 1 Autostart angewendet. Kann ungleich Null sein, wenn START fehlschlägt.

423 / 40424
1

LAST_COMMAND / UINT16

Befehlscode der letzten akzeptierten Anfrage.

424 / 40425
2

RESULT_SEQ / UINT32

Sequenz des letzten fertigen Produkts; vergleichen Sie zusammen mit BOOT_ID.

426 / 40427
1

ERGEBNIS_ID/UINT16

Rezept für dieses Ergebnis verwendet.

427 / 40428
1

RESULT_FLAGS / UINT16

Bit 0 result existiert; Bit 1 Masse gültig/repräsentierbar; Bit 2 Grenzen darstellbar; Bit 3 numerischer Umwandlungsüberlauf/ungültig.

428 / 40429
1

BEGRIFFSBESTIMMUNGEN / UINT16

Dezimalstellen für W, LO und HI dieses Ergebnisses.

429 / 40430
1

EINHEIT / UINT16

0 g; 1 kg; 2 t; 3 lb; 4 oz; 5 N; 65535 andere/unbekannt. Gehen Sie nicht von g für unbekannte Einheiten aus.

430 / 40431
2

W/INT32

Nettomasse einschließlich Tara; durch 10^DECIMALS dividieren. Verwenden Sie nur, wenn RESULT_FLAGS bit 1 gesetzt ist.

432 / 40433
2

LO/INT32

Untere Toleranzgrenze; nur mit Flags Bit 2 verwenden.

434 / 40435
2

HI/INT32

Obere Toleranzgrenze; nur mit Flags Bit 2 verwenden.

436 / 40437
1

WS/UINT16

Massenklassifizierung: 0 LOW; 1 OK; 2 HIGH; 3 FEHLER.

437 / 40438
1

LTS/UINT16

Länge: 0 OK; 1 LÄNGE_LOW; 2 LÄNGE_HIGH; 3 DISABLED.

438 / 40439
1

ERGEBNIS / UINT16

0 LOW; 1 OK; 2 HIGH; 3 ERROR; 4 OVERLAP; 5 ABORTED; 6 ABORTED_CONS.

439 / 40440
1

PRODUKT_ERROR / UINT16

Fehler dieses Produkts; getrennt von PROCESS_ERROR.

440 / 40441
1

NS/UINT16

Akzeptierte Proben des letzten abgeschlossenen Ergebnisses vor dem Zuschneiden; nicht die aktuelle Produktprobe.

441 / 40442
2

TD/UINT32

Nachweiszeit in Millisekunden seit dem Booten; Wraps nach ca. 49,7 Tagen.

443 / 40444
2

ET/UINT32

Millisekunden vom Nachweis bis zum Ergebnis.

445 / 40446
2

LT/UINT32

Produktsensor EIN Dauer in Millisekunden; 0 im Masse-Trigger-Modus.

447 / 40448
1

RESERVIERT / UINT16

0; Ignorieren für Version 1.

Status und das letzte Ergebnis werden unter die Prozesssperre kopiert. Jede Antwort enthält einen konsistenten Snapshot; bei einer nachfolgenden Anfrage werden möglicherweise neuere Daten angezeigt. RESULT_SEQ, RESULT_ID, DECIMALS und UNIT gehören zum gespeicherten Ergebnis, nicht zum aktuell ausgewählten Rezept. Vor dem ersten Ergebnis ist Flags Bit 0 klar: Interpretieren Sie die Null-gefüllten Ergebnisfelder nicht als echtes Null-Gewichtsprodukt. Lesen verbraucht oder löscht niemals ein Ergebnis.

Beispiel: W high=0x0000, low=0x07D1 ergibt die vorzeichenbehaftete Ganzzahl 2001. Mit DECIMALS=1 und UNIT=0 beträgt die Masse 200.1 g. Negative Werte verwenden das 32-Bit-Zweierkomplement. Liegt die Konvertierung außerhalb des INT32-Bereichs oder ist der Waagenwert nicht darstellbar, wird das zugehörige Gültigkeitsbit gelöscht. Die zugehörigen numerischen Register sind null und Flagbit 3 wird gesetzt. Das ursprüngliche Produktergebnis bleibt unverändert.

10.3 Ein-Schreib-Steuerblock

Tabelle 24

Anschrift/Referenz

Name

Wert

480 / 40481
COMMAND

Nur 0 Einstellungen; 1 START; 2 STOP DRAIN; 3 STOP NOW; 4 RESET.

481 / 40482

CHANGE_MASK

Bit 0: Wählen Sie RECIPE_ID. Bit 1: Set AUTOSTART. Andere Bits müssen 0 sein.

482 / 40483

RECIPE_ID

1–500, wenn das Maskenbit 0 gesetzt ist. Schreibe ansonsten 0. Rezept muss bereits vorhanden sein.

483 / 40484
AUTOSTART

0 oder 1, wenn das Maskenbit 1 gesetzt ist. Schreibe ansonsten 0.

484–485 / 40485–40486

REQUEST_ID

UINT32, high word first. Next nonzero ID after ACK_ID. First request is 1; after 0xFFFFFFFF use 1.
486–487 / 40487–40488

BOOT_ID

UINT32, high word first. Echo the current token from 401–402.

Für COMMAND 2, 3 oder 4 müssen CHANGE_MASK, RECIPE_ID und AUTOSTART alle 0 sein. Einstellungen können mit COMMAND 0 oder 1 kombiniert werden. Rezeptauswahl und Autostart-Änderungen erfordern einen gestoppten, entwässerten Prozess. START ohne Rezeptwechselbit startet das aktuell ausgewählte Rezept. Anwendungsauswahl und Rezepturerstellung bleiben außerhalb des Modbus-Bereichs.

Der vollständige Frame wird validiert, bevor er akzeptiert wird. Es treten keine partiellen Control-Block-Schreiben in Kraft. Eine normale function-16-Antwort bedeutet, dass die Anfrage in die Mailbox akzeptiert wurde, nicht dass START erfolgreich war. Die Ausführung erfolgt aus der vorhandenen Hauptschleife. Umfrage, bis ACK_ID der eingereichten ID entspricht und COMMAND_STATE DONE oder ERROR ist. BUSY kann zu kurz sein, um es zu beobachten; erfordern Sie es niemals, bevor Sie DONE akzeptieren.

Halten Sie eine Anfrage offen. Wenn die Schreibzeit abgelaufen ist, lesen Sie erneut BOOT_ID, REQUEST_ID und ACK_ID. Wenn das Boot-Token unverändert ist, übertragen Sie bei Bedarf genau die gleichen acht Wörter erneut. Eine Wiederholung der zuletzt angenommenen Anfrage mit identischen Daten wird quittiert, ohne sie erneut auszuführen, unabhängig davon, ob sie anhängig oder abgeschlossen ist. Die gleiche ID mit geänderten Daten, übersprungenen / alten IDs, einem anderen Boot-Token oder einer anderen Anforderung, während BUSY abgelehnt wird. Nach einem Neustart mit dem neuen Token und dem aktuellen Prozesszustand neu synchronisieren; Wiedergabe eines alten START nicht automatisch.

Nur die letzte Anforderung wird für die doppelte Erkennung beibehalten; es gibt kein persistentes Befehlsjournal. Ein Netzwerkneustart ohne Geräteneustart löscht das Postfach nicht. Dieses Protokoll geht von einer kontrollierenden SPS aus; es vermittelt keine konkurrierenden Autoren. Das Boot-Token und der Anforderungszähler verhindern versehentliche Wiederholungen und keinen unbefugten Zugriff.

10.4 Angewandte Einstellungen, Befehlsergebnisse und Fehler

Rezeptauswahl wird zuerst angewendet, Autostart als zweites und der Befehl zuletzt. Syntax, ID-Bereich und Rezeptgültigkeit werden vor dem Einstellen von Änderungen überprüft. Flash-Fehler können immer noch eine frühere Einstellung angewendet lassen. APPLIED_MASK meldet genau, welche angeforderten Einstellungen erfolgreich waren. Beispielsweise können Rezept 25 und AUTOSTART=1 gespeichert werden, während START abgelehnt wird, weil CONS inaktiv ist: COMMAND_STATE=ERROR, COMMAND_ERROR=11, APPLIED_MASK=3. Einstellungen werden nicht zurückgerollt. Lesen Sie ACTIVE_ID und AUTOSTART zurück, bevor Sie sich entscheiden, was Sie erneut versuchen möchten.

Die folgenden Fehlercodes gehören zu COMMAND_ERROR und dürfen nicht mit Prozess-/Produktfehlerfeldern verwechselt werden. Ein abgelehnter Transport-Level-Schreiben ändert weder das Postfach noch die ACK_ID. Illegale Adressen, schreibgeschützte Schreibvorgänge, partielle Schreibvorgänge und nicht unterstützte Blockbereiche geben Modbus-Ausnahme 02 zurück. Ein korrekt adressiertes Acht-Wort-Kontrollschreiben mit ungültigen Daten, Token, Sequenz oder Postfachzustand gibt Ausnahme 03 zurück.

Tabelle 25

Code

Bedeutung

0

Erfolg.

1

Ausgewähltes Rezept fehlt oder ist ungültig.

5 / 6

START weigerte sich: Gewicht außerhalb der erlaubten Reichweite.

7

Erforderlicher Speicher nicht verfügbar.

11

Configured CONS ist inaktiv.

13

Die Einheit der Rezeptur stimmt nicht mit der Waage überein.

15

Sensorkonfiguration/Zustand verhindert den Betrieb.

16

Falsche Anwendung, laufender Prozess, anstehende Störung oder eine konkurrierende Waagenoperation.

17

Ungültige Anfrage Argumente oder Messsystem nicht bereit.

25

Einstellungen / Datenbank lesen oder schreiben Fehler.

STOP DRAIN nimmt keine neuen Produkte an und beendet die Bearbeitung bereits angenommener Produkte und ihrer Ausgabeereignisse. Die Bestätigung DONE bedeutet, dass der Stopp angefordert wurde; STATE=5 bestätigt dessen Abschluss. STOP NOW bricht offene Produkte und Ereignisse ab und deaktiviert die Prozessausgänge. Bei einer blockierenden Störung ersetzt STOP kein RESET. RESET prüft die Waage und die Voraussetzungen erneut und startet das Band nicht. Besteht die Ursache weiterhin, schlägt RESET fehl. Für alle Befehle gelten die üblichen Verriegelungen der Kontrollwaage. Ein Ergebnis ist ein Messergebnis und keine Bestätigung dafür, dass eine physische Ausschleusevorrichtung betätigt wurde.

10.5 Autostart

AUTOSTART ist die persistente CWAUTO-Einstellung, standardmäßig 0. Das Aktivieren startet nicht sofort; Kombinieren mit COMMAND=1 für einen sofortigen START. Beim nächsten Gerätestart muss die Anwendung CHECKWEIGHER ausgewählt, initial zeroing aktiviert und erfolgreich und ein gültiges letztes aktives permanentes Rezept verfügbar sein. Es gelten weiterhin normale START-Checks. Ein fehlgeschlagener Boot-Versuch wird nicht wiederholt, wenn sich eine Eingabe später ändert. Manuelles STOP, PAUSE oder Fehler lösen keinen automatischen Neustart aus. Unveränderte Werte führen nicht dazu, dass weitere Einstellungen geschrieben werden.

AUTO_STATE: 0 DISABLED; 1 WAIT_ZERO; 2 ZERO_DISABLED; 3 ZERO_FAILED; 4 NO_PRODUCT; 5 STARTED; 6 START_FAILED; 7 CANCELLED; 8 INACTIVE; 9 INIT_FAILED. AUTO_ERROR ist der abgelehnte Boot-START-Code. Dies ist das Ergebnis des Bootversuchs; STATE und PROCESS_ERROR beschreiben den aktuellen Prozess.

10.6 SPS Beispiele

Beispiel 1 — alles lesen: Funktion 03, PDU start=400, count=48 (Referenz 40401). Überprüfen Sie MAP_VERSION=1, APPLICATION=4 und SNAPSHOT_VALID=1. Speichern Sie BOOT_ID und ACK_ID. Es ist kein Befehl zum Lesen von Daten erforderlich.

Beispiel 2 — wählen sie rezept 25, aktivieren sie autostart und start in einem schreiben. Angenommen, BOOT_ID=0x12345678 und ACK_ID=0. Schreibfunktion 16, PDU start=480, count=8 mit Dezimalwörtern: [1, 3, 25, 1, 0, 1, 4660, 22136]. Die Boot-Wörter sind illustrativ: Kopieren Sie sie immer vom Gerät. Warten Sie auf ACK_ID=1 und COMMAND_STATE=2, dann überprüfen Sie STATE=2 (RUN). Wenn COMMAND_STATE=3 ist, prüfen Sie COMMAND_ERROR und APPLIED_MASK.

Beispiel 3 — STOP DRAIN. Unter der Annahme, dass der vorherige Antrag abgeschlossen ist, übermitteln Sie [2, 0, 0, 0, 0, 2, 4660, 22136]. Warten Sie auf ACK_ID=2. DONE bestätigt die Akzeptanz; weiterhin Polling bis STATE=5 (STOPPED). Ausstehende Produkte können während des DRAININGs immer noch Ergebnisse erzielen.

Beispiel 4 — nur das Rezept ändern, einmal gestoppt: [0, 1, 26, 0, 0, 3, 4660, 22136]. Dies lässt den Autostart unverändert und startet nicht. Beginnen Sie später mit [1, 0, 0, 0, 0, 4, 4660, 22136].

Beispiel 5 — einen korrigierten Fehler zurücksetzen: COMMAND=4 mit Maske/Rezept/Autostart=0, Next Request ID und aktueller BOOT_ID. Warten Sie auf eine erfolgreiche Bestätigung; geben Sie bei Bedarf einen separaten START aus. Senden Sie RESET nicht wiederholt, ohne den Fehler zu diagnostizieren.

Empfohlene zyklische SPS-Logik (strukturierter Text-Pseudocode; Modbus-Blocknamen an Ihre SPS anpassen):

ReadHoldingRegisters(Start := 400, Count := 48, Data := Rx);
BootId := JoinUInt32(Rx[1], Rx[2]);
AckId := JoinUInt32(Rx[18], Rx[19]);
IF BootId <> SavedBootId THEN
    SavedBootId := BootId; HaveSeenResult := FALSE;
    (* Resynchronise command handling; do not replay old START. *)
END_IF;
IF (Rx[15] = 1) AND ((Rx[27] AND 1) <> 0) THEN
    Seq := JoinUInt32(Rx[24], Rx[25]);
    IF NOT HaveSeenResult OR (Seq <> SavedSeq) THEN
        SavedSeq := Seq; HaveSeenResult := TRUE;
        IF ((Rx[27] AND 2) <> 0) AND (Rx[29] <> 65535) THEN
            Mass := SignedInt32(Rx[30], Rx[31]) / Power10(Rx[28]);
        END_IF;
        Samples := Rx[40]; ProductResult := Rx[38];
        (* Process this snapshot once, including invalid/rejected products. *)
    END_IF;
END_IF;

NS bezieht sich auf das letzte fertige Produkt und ist unverändert, bis ein neues Ergebnis eintrifft. Ein Last-Result-Registerblock ist keine Warteschlange: Wenn zwei Produkte zwischen den Umfragen enden, ist das Zwischenergebnis durch diese Grundkarte nicht abrufbar. SEQ-Änderungen überwachen und ein Umfrageintervall unterhalb des kürzesten Produktintervalls auswählen. Entscheiden Sie nach dem erneuten Verbinden, ob das erste verfügbare Ergebnis als wiederhergestellter Snapshot aufgezeichnet oder nur als Ausgangsbasis verwendet werden soll. Diese Schnittstelle garantiert nicht einen Audit-Trail für jedes Produkt.

10.7 Kommissionierungskontrollen

  1. Überprüfen Sie beide Adresskonventionen, Wortreihenfolge und bekannte positive / negative Massen; Lesen Sie alle 48 Wörter und beide 24-Wort-Unterblöcke.

  2. Überprüfen Sie die No-Result-Flags vor dem ersten Produkt, dann ein OK, LOW und ein ungültiges Produkt; bestätigen Sie die Ergebnis-ID / den Aufenthalt der Einheit an das gespeicherte Ergebnis, nachdem sich die Rezeptauswahl geändert hat.

  3. Wiederholen Sie ein identisches akzeptiertes Schreiben vor / nach Abschluss: Es muss einmal ausgeführt werden. Versuchen Sie eine geänderte Nutzlast mit der gleichen ID, einer übersprungenen ID, einem Teilschreiben und einem schreibgeschützten Schreiben: Jede muss abgelehnt werden, ohne die akzeptierten Einstellungen zu ändern.

  4. Testen Sie START mit inaktivem CONS und prüfen Sie APPLIED_MASK; testen Sie STOP DRAIN bis STOPPED, STOP NOW, fault RESET und einen nachfolgenden START.

  5. Trennen/Wiederverbinden und Neustarten des Geräts. Überprüfen Sie die Resynchronisierung der Anforderung und ob ein altes Boot-Token abgelehnt wurde. Testen Sie aktivierten/deaktivierten Autostart mit erfolgreicher und fehlgeschlagener anfänglicher Nullierung.

  6. Wiederholen Sie die eigentliche SPS und beide konfigurierten TCP/RTU-Transporte. Bestätigen Sie, dass die zyklische Kommunikation das Wägen oder Ausgabe-Timing nicht verhindert.

Häufig gestellte Fragen

Wie konvertiere ich eine Registerreferenz in eine PDU-Adresse?

Die Registertabellen verwenden einseitige 4xxxx-Referenzen. Für die Referenz 40101 ist die Null-basierte PDU-Adresse 100. Verwenden Sie die von Ihrem Modbus-Client geforderte Adressierungskonvention.

Wie viele zusätzliche Dezimalstellen verwenden hochauflösende Gewichte?

Hochauflösende Brutto- und Nettogewichte in Registern 40109-40112 verwenden, wenn verfügbar, zwei zusätzliche Dezimalstellen. Dekodieren Sie sie als signierte 32-Bit-Werte und berücksichtigen Sie die Dezimalpositionskonfiguration.

Ist der automatische Checkweigher-Ergebnisblock eine Warteschlange?

Nein. Es hält das letzte abgeschlossene Produktergebnis und bleibt unverändert, bis ein neues Ergebnis eintrifft. Überwachen Sie SEQ und wählen Sie ein Abfrageintervall, das kürzer ist als das kürzeste Produktintervall. Zwischenergebnisse können nicht aus dieser Basiskarte abgerufen werden.

Kann eine SPS START nach dem Neustart des Geräts wiedergeben?

Resynchronisieren Sie die Befehlsverarbeitung, wenn sich BOOT_ID ändert. Lesen Sie die aktuelle BOOT_ID und ACK_ID, wiederholen Sie keinen alten START und folgen Sie der in den SPS-Beispielen beschriebenen Befehlspostfachsequenz und -überprüfungen.

Brauchen Sie Hilfe?

Benötigen Sie Hilfe bei Software, Konnektivität oder der Verwendung einer Lösung? Beschreiben Sie das Problem, damit wir beim nächsten Schritt helfen können.

Eine Anfrage vorbereiten →