I. Produktübersicht
Dieses Produkt unterstützt den StandardModbus RTU Protokoll的Smart Wireless Sensor Gateway GerätmitMulti-Node Sensor Datenerfassung、Kommunikationsparameter Konfiguration.和Geräteverwaltungsfunktion.Über die RS485 - Schnittstelle mit dem Obercomputer (PLC, Touchscreen, SCADA-System usw.) kommuniziert, unterstützt vollständige Register-Lese - und Schreiboperationen, kann weit verbreitet inintelligente Landwirtschaft、Umweltüberwachung、industrielle Automatisierung、Viehzucht、Gebäudesicherheitund anderen Bereichen verwendet werden.
Das Gateway dient als zentraler Knotenpunkt des drahtlosen Sensornetzwerks und kann bis zu einem64 Funk-SensorenDie Daten der Sensoren werden in das Standardmodbus RTU-Protokollformat konvertiert, um die Integration des Host-Systems zu erleichtern.
2. Übersicht über das Kernfunktionssystem (aus Vereinbarung abgeleitet)
Basierend auf den Registerdefinitionen, den Operationsfällen und den Datenstrukturen dieses Protokolls können die folgenden Funktionsmodule des Produkts vollständig berechnet werden:
| Seriennummer | Funktionsmodule | Funktionsbeschreibung | Entsprechende Register / Basierend auf |
|---|---|---|---|
| 1 | Modbus RTU Slave-Kommunikation | Standard Modbus RTU Slave-Modus, RS485 physikalische Schnittstelle, Funktionscode unterstützt 03/06/10 | Kapitel 2, Kapitel 3 |
| 2 | Multi-Node - Sensor-Management | Unterstützt bis zu 64 drahtlose Sensorknoten gleichzeitig online, Unabhängige Adressierung pro Knoten | 0002H-Register (Bereich 0 - 63) und Sensordatenbereich Zuweisungsregeln |
| 3 | Unterstützung für sieben Sensortypen | Temperatur und Luftfeuchtigkeit, Ohrzeichen (Nutztierhaltung), Rauch, Radar, Infrarot, Fernbedienung Allgemeines 1527 - Gerät | Index-Register niedrig 8 - Bit-Codierung Typ-Definition |
| 4 | Doppel-Daten - Reporting-Modus | Aktive Reporting-Modus (Sensor-Auto - Push) + Abfrage-Berichting - Modus (Host-Poll - Lesen) | 0005H-Register |
| 5 | Sensor-Binded - Pairing-System | Software-Befehlbindung + Hardware-Taste - Bindung (5 Sekunden lang gedrückt), LED-Indikator - Statusfeedback | 0006H-Register, Kapitel 6 Bindungsverwaltung Anweisungen |
| 6 | Vollständige Parameter-Registrierung | Slave-Station - Adresse (1 ~ 247), Baud-Rate (5 Gängen), Reporting-Modus können über Registermodifizierung | 0003H ~ 0005H Register |
| 7 | Sensor-Lebenszyklus - Management | Knoten hinzufügen, Daten lesen, einzelne Knoten löschen, Alle Bindungen mit einem Klick löschen | Schreiben mehrerer Registers (0x10) Operationen + 0007H Register |
| 8 | Mehrdimensionale Datenerfassung | Temperatur / Feuchtigkeit / Vibration / Rauchkonzentration / menschliche Präsenz Detektion / Stromleistung / Subgeräte-Typ und andere Daten | Data1 / Data2 / Battery Felddefinition |
| 9 | Batteriekapazitätüberwachung | Echtzeit-Batteriekapazitätüberwachung für jeden drahtlosen Sensorknoten (0% ~ 100%) | Batterienregister (+5 Offset) |
| 10 | Firmware-Versionsabfrage | Lesen der Firmware-Versionsnummer des Geräts, Erleichterung der Versionsverwaltung und Wartung Bestätigung | 0001H Lese-Only - Register |
| 11 | Broadcast-Adressen - Unterstützung | Unterstützt Modbus Broadcast-Adresse 0xFF (255), kann Befehl für alle Slave-Stationen ausstellen | Adressbereich Beschreibung |
| 12 | CRC16 - Überprüfungsmechanismus | CRC - 16 / MODBUS-Polynomial 0xA001 - Überprüfungen, um die Integrität der Datenübertragung zu gewährleisten | Kapitel 2 - Überprüfungsmethode + Anhang C-Sprachenalgorithmus |
III. Detaillierte Informationen zu unterstützten Sensortypen
Das Gateway unterstützt die folgenden sieben Sensortypen, basierend auf der Code-Definition der unteren 8 - Bit (Sensor-Type - Feld) des Index-Registers im Protokoll.und weitere Erweiterungen:
3.1 Sensor-Typen - Codierung Zusammenfassung
| Typ-Codierung | Sensor-Name | Hauptdatenfelder | Data1 Bedeutung | Data2 Bedeutung | Typische Anwendungsszenarien |
|---|---|---|---|---|---|
| 00H | Allgemeines 1527 - Codiergerät | Untergerätetyp + Zustandsdaten | Leerlauf | Untergerätetyp-Codierung | Allgemeines drahtloser Fernbedienung / Tür-Magnet / Tür-Fenster - Sensor |
| 01H | Temperatur-Feuchtigkeit - Sensor | Temperatur + Feuchtigkeit + Strom | Temperaturwert (0,1 ° C) | Feuchtigkeitwert (0,1%) | Gewächshaus, Lagerhaus, Maschinenraum, Labor |
| 02H | Ohrmarker-Sensor (für Viehzucht) | Temperatur + Vibrationszähler + Strom | Temperaturwert (0,1 ° C) | Anzahl der Erschütterungen (Zeiten) | Temperaturüberwachung, Östrous / Gesundheitswarnung für Vieh |
| 03H | Rauch / Rauch-Sensor | Rauchkonzentration + Strom | Leerlauf | Rauchkonzentration (ppm) | Lagerbrandschutz, Küchensicherheit, Fabrikfeuerschutz |
| 04H | Radar menschlicher Präsenzsensor | Präsenz + Strom | Leerlauf | Präsenz (0 = niemand / 1 = jemand) | Intelligente Beleuchtung, Konferenzraum, Toilettenverbindung |
| 05H | Infrarot-PIR - Sensor | Präsenz + Strom | Frei | Präsenz (0 = unbesetzt / 1 = besetzt) | Einbruchsalarm, Korridor-Induktion, Sicherheitsüberwachung |
| 06H | Drahtlose Fernbedienung | Tastenstatus + Untergerätetyp | Frei | Tastenstatusdaten | Fernbedienung, Beleuchtungsteuerung, Geräteschalter |
| 07H + | Reservierte Erweiterungen | Zu definieren (XXXX) | Zu definieren | Zu definieren | Erweiterungsbits für zukünftige neue Sensortypen |
3.2 Detaillierte Beschreibung der einzelnen Sensordatenformate
1 Temperatur-Feuchtigkeit - Sensor (Typ = 01H)
| Byte-Position | Feldname | Datentyp | Einheit | Wertebereich | Beispiel |
|---|---|---|---|---|---|
| +0 ~ +1 (Byte0 ~ 1) | Index | UINT16 | - | High 8 - bit = Number (0 ~ 63) Low 8 = Typ (0x01) | 0x0001 Zeigt die eindeutige Identifikation des Temperatur-Feuchtigkeitssensors Nr. 1 |
| +2 ~ +5 (Byte2 ~ 5) | Geräteadresse | UINT32 | - | 32 - Bit | 0x12345678 |
| +6 ~ +7 (Byte6 ~ 7) | Temperaturdaten1 | INT16 | 0,1 ° C | -3276,8 ~ 3276,7 ° C | 0x00FB = 25.1 ° C; 0xFFEC = -2.0 ° C |
| +8 ~ +9 (Byte8 ~ 9) | Luftfeuchtigkeit Data2 | UINT16 | 0.1% | 0 ~ 100% | 0x028B = 65,1%; 0x01F4 = 50,0% |
| +10 ~ +11 (Byte10 ~ 11) | Batterie Batterie | UINT16 | 1% | 0% ~ 100% | 0x0064 = 100%; 0x0032 = 50% |
2 Ohr-Tag - Sensor für Viehzucht (Typ = 02H)
Wireless-Ohr - Tag-Sensor speziell für Vieh, Schafe, Schweine und andere Tiere entwickelt, ist eine der Features dieses Produkts:
| Byte-Position | Feldname | Datentyp | Einheit | Wertebereich | operative Bedeutung |
|---|---|---|---|---|---|
| +0 ~ +1 | Index | UINT16 | - | Low 8 = 0x02 | Identifiziert als Ohrtag-Typ |
| +2 ~ +5 | Gerätenadresse Addr | UINT32 | - | eindeutige Identifikation | eindeutige ID pro Vieh |
| +6 ~ +7 | Temperatur Data1 | INT16 | 0,1 ° C | Temperaturbereich | Temperatur des Viehs (z. B. 38,5 ° C = normale Rindertemperatur) |
| +8 ~ +9 | Vibrationsdaten2 | UINT16 | 次 | 0 ~ 65535 | Aktivität / Anzahl der Vibrationen zur Beurteilung von Aktivität oder ungewöhnlichem Verhalten von Vieh |
| +10 ~ +11 | Batterie Batterie | UINT16 | 1% | 0% ~ 100% | Ohr-Tag - Batterie-Verbleibskapazität |
3 Rauch / Rauch-Sensor (Typ = 03H)
| Byte-Position | Feldname | Datentyp | Einheit | Wertebereich | Anmerkung |
|---|---|---|---|---|---|
| +6 ~ +7 | Data1 | — | — | Leerlauf | Nicht benutzt |
| +8 ~ +9 | Rauchkonzentration Data2 | UINT16 | ppm | 0 ~ 5000 ppm | 0x1388 = 5000 ppm (Hochkonzentrations-Alarmschwelle) |
| +10 ~ +11 | Batterie Batterie | UINT16 | 1% | 0% ~ 100% | Sensorbatterieleistung |
4 Radar menschliche Präsenz-Sensor (Typ = 04H) & Infrarot-PIR - Sensor (Typ = 05H)
Beide Sensoren werden für die Erkennung der menschlichen Präsenz verwendet, aber das technische Prinzip ist verschieden:
| Vergleich | Radar-Sensor (Typ = 04H) | Infrarot-PIR - Sensor (Typ = 05H) |
|---|---|---|
| Detektionsprinzip | Millimeterwellen-Radar Doppler-Effekt | Thermoelektroelektro-Infrarot - Erkennung |
| Data2 - Wert | 0x0000 = Niemand; 0x0001 = jemand | 0x0000 = Niemand; 0x0001 = Mensch |
| Vorteile | Durchdringbar in Kunststoff / Glas, unabhängig von Temperatur, kann kleine Bewegungen (wie Atmung) detektieren, geeignet für "Mensch im Licht" | niedrige Kosten, extrem niedriger Stromverbrauch, geeignet für mobile Erkennung |
| Nachteile | Höhere Kosten | Nicht nachweisbar im Ruhezustand des menschlichen Körpers, beeinflusst durch Umgebungstemperatur |
| Anwendungsszenario | Intelligentes Büro / Konferenzraum / Toilette (präzise Präsenzerkennung) | Flur / Gang / Eingang (Bewegungserkennung) |
5 Drahtlose Fernbedienung (Typ = 06H) & allgemeines 1527 - Kodierungsgerät (Typ = 00H)
| Feld | Drahtlose Fernbedienung (06H) | allgemeines 1527 - Gerät (00H) |
|---|---|---|
| Data1 | Leerlauf | Leerlauf |
| Data2 | Tastenstatusdaten (Codierung je nach Fernbedienungsmodell) | Untergerätetypencodierung (Einstellungen werden nach Bindung vom Host aktualisiert) |
| Anmerkung | Für den Empfang von 433 MHz-Fernbedienungssignalen verwendet | Kompatibel mit den meisten EV1527 - kodierten drahtlosen Sendegeräten auf dem Markt (Tormagnet, Wasserüberschwemmung, Vibration usw.) |
IV. Kommunikationsparameter und Frame-Format - Spezifikation
4.1 Grundlegende Kommunikationsparameter
| Parameter Elemente | Standardwerte | Optionale Werte / Bereiche | Konfigurationsmethode |
|---|---|---|---|
| Kommunikationsprotokoll | Modbus RTU | — | Fix |
| Physikalische Schnittstelle | RS485 | — | Fix |
| Datenformat | 8N1 (8 Datenbits, ohne Verifikation, 1 Stop-Bit) | konfigurierbar | Standard 8N1 |
| Slave-Adresse | 1 | 1 bis 247 | Schreiben in das Register 0003H |
| Broadcast-Adresse | 255 (0xFF) | Nur 255 | Senden Sie Befehle |
| Baudrate an alle Slaves | 9600 bps | 9600 / 19200 / 38400 / 57600 / 115200 | Schreiben in das Register 0004H |
| Prüfmethode | CRC16 | Polynomial 0xA001 (MODBUS-Standard) | Fix |
| Maximale Anzahl von Sensoren | — | 64 | Hardware-Beschränkung |
| Frame-Interval - Zeit | ≥ 3,5 Zeichen-Zeit | @9600bps≈ 3.6ms; @ 115200bps≈ 0,3 ms | RTU-Protokollanforderung |
4.2 Baudrate-Konfigurationsvergleichstabelle (0004H-Register)
| Schreibwert | tatsächliche Baudrate | Einzelzeichenzeit | 3,5 Zeichenintervall | Anwendbares Szenario |
|---|---|---|---|---|
| 0 | 9600 bps | ≈ 1.04 ms | ≈ 3.6 ms | Standardempfohlen, stabil und zuverlässig |
| 1 | 19200 bps | ≈ 0,52 ms | ≈ 1,8 ms | mittlere Geschwindigkeitsanforderung |
| 2 | 38400 bps | ≈ 0,26 ms | ≈ 0,9 ms | Höhere Geschwindigkeit |
| 3 | 57600 bps | ≈ 0.17 ms | ≈ 0,6 ms | Hochgeschwindigkeitsübertragung |
| 4 | 115200 bps | ≈ 0,087 ms | ≈ 0,3 ms | Höchste Geschwindigkeit, erfordert Sicherstellung der Leitungsqualität |
4.3 Unterstützte Funktionen
| Funktionscode | Name | Richtung | Zweck |
|---|---|---|---|
| 0x03 | Lesen-Halt - Register | Master → Slave | Versionsnummer, Knotenzahl, Sensordaten usw. lesen |
| 0x06 | Schreiben eines einzigen Registers | Master → Slave | Einstellung von Adresse, Baudrate, Modus, Startbindung usw. |
| 0x10 | Schreiben mehrerer Registers | Master → Slave | Hinzufügen von Sensoren, Entfernen von Knoten, Batch-Schreibdaten usw. |
V. Vollständige Registerkarte
5.1 Systemsteuerungsregisterbereich (0001H ~ 000FH)
| Registeradresse | Registername | Lesen - und Schreiben-Berechtigungen | Datenformat | Wertbereich / Beschreibung |
|---|---|---|---|---|
| 0001H | Versionsnummer | Read-only | UINT16 | Versionsnummer der Gerätfirmware, z. B. 0x0102 für V1.2 |
| 0002H | Anzahl der aktuell online verfügbaren Knoten | Read-only | UINT16 | Anzahl der aktuell registrierten Sensorknoten, die gebunden sind (0 - 63) |
| 0003H | RS485 - Adresse | Lesen und Schreiben | UINT16 | Modbus-Sklavenstation - Adresse, Standard 1, Bereich 1 - 247 |
| 0004H | Serial Port Baudrate | Lesen und Schreiben | UINT16 | 0=9600, 1=19200, 2=38400, 3=57600, 4=115200 |
| 0005H | Einstellungen für den aktiven Reporting-Modus | Lesen und Schreiben | UINT16 | 0 = Aktive Eskalation aktiviert (Standard); 1 = Abfrage Eskalation aktiviert |
| 0006H | Bindungspaarung aktiviert | Nur schreiben | UINT16 | Schreiben 1 Bindungen aktivieren (Lampe blinkt, 20 Sekunden Zeitüberschreiten automatisch beenden) |
| 0007H | Alle gebundenen Daten löschen | Nur schreiben | UINT16 | Alle gebundenen Sensordaten löschen, erneut gebunden werden müssen |
| 0008H ~ 000FH | Bewahrung | — | — | Reservierung für zukünftige Erweiterungen |
5.2 Sensordatenregisterbereich (ab 0010H)
Nutzung pro Sensor6 aufeinander folgende Register (12 Byte)mit Unterstützung für bis zu 64 Sensoren:
| Sensornummer | Registeradressbereich | +0 Index | +1 Addr_H | +2 Addr_L | +3 Data1 | +4 Data2 | +5 Battery |
|---|---|---|---|---|---|---|---|
| Sensor1 | 0010H ~ 0015H | Nummer + Typ | Adresse hoch 16 Bit | Adresse niedrig 16 Bit | Daten1 | Daten 2 | Batterieleistung |
| Sensor 2 | 0016H ~ 001BH | Ähnlich | Ähnlich | Ähnlich | Ähnlich | Ähnlich oben | Ähnlich oben |
| Sensor 3 | 001CH ~ 0021H | Ähnlich oben | Ähnlich oben | Ähnlich oben | Ähnlich oben | Ähnlich oben | Ähnlich |
| Sensor 4 | 0022H ~ 0027H | Ähnlich | Ähnlich | Ähnlich | Ähnlich | Ähnlich oben | Ähnlich |
| ... | Drücken Sie +6 Inkremental | ... | ... | ... | ... | ... | ... |
| Sensor N | 0010H + (N - 1) * 6 ~ 0015H + (N - 1) * 6 | Ähnlich | Ähnlich | Ähnlich | Ähnlich oben | Ähnlich oben | Ähnlich oben |
| Sensor 64 | 012AH ~ 012FH | Ähnlich oben | Ähnlich oben | Ähnlich oben | Ähnlich oben | Ähnlich oben | Ähnlich oben |
VI. Detaillierte Beschreibung des Betriebsmodus
6.1 Dual-Daten - Reporting - Modus
Das Gateway unterstützt zwei Daten-Berichtigungs - Modi, die über das Register 0005H umschaltet werden:
Modus 0: Active Reporting Modus (Standard)
- Wenn der Sensor eine Änderung der Daten erkennt,lädt Daten automatisch auf das Gateway hoch, nachdem der drahtlose Sensor Datenänderungen erkannt hat
- Aktualisiert das interne Register-Cache sofort nach Erhalt des Gateways
- Der Host kann die neuesten Daten jederzeit über den 0x03 - Funktionscodeabfragen
- Vorteile:Gute EchtzeitSensor-Aktualisierung, Daten rechtzeitig
- Anwendbares Szenario: Szenario, in demEchtzeitüberwachungin Echtzeit überwacht werden muss (z. B. Temperaturüberschreitung, Einbruchserkennung usw.)
Modus 1: Abfrage-Berichtigungsmodus
- Der drahtlose Sensor gibt nur Daten zurück, wennden Gateway-Abfragebefehl empfängtDaten zurückgeben.
- Leseanforderung ausführen → Gateway-Abfrage an den Sensor → Rückgabe von Daten
- Vorteile:Stromsparen, der Sensor ist die meiste Zeit im Ruhezustand
- Anwendbares Szenario:BatteriebetriebeneSensoren, Szenarien mit niedrigem Stromverbrauch (z.B. Fernüberwachung in der Landwirtschaft)
6.2 Bindungspartnering
Vor dem Hinzufügen eines drahtlosen Sensors zu einem Gateway muss die Bindungspärung abgeschlossen sein. UnterstütztZwei Triggermethoden:
Methode 1: Bindung von Softwarebefehlen (0006H über Modbus schreiben)
- Der Host schreibt einen Wert in das Register 0006H1: Senden 01 06 00 06 00 01 A8 0B
- Das Gateway geht in den Bindungsmodus,Die LED beginnt zu blinken
- Ziel drahtlosen Sensor.Senden von Daten einmal(oder das Signal auslösen)
- Das Gateway empfängt und erkennt das Sensorsignal,zugewiesen automatisch einen freien Speicherplatzund protokolliert die Sensoradresse
- erfolgreich: Die LED stoppt das Blinken, das Gateway gibt die Antwort zurück 01 06 00 06 00 01 A8 0B (Erfolgskode 1)
- Wenn innerhalb von 20 Sekunden kein Sensorsignal empfangen wird, gibt die Antwort mit dem Timeout zurück 01 06 00 06 00 02 E8 0A (Timeout-Code 2), beendet den Bindungsmodus
Methode 2: Hardware-Tasten - Bindung
- Drücken Sie die Paare-Taste im Gateway-Panel 5 Sekunden lang
- , um den Bindungsmodus zu betreten (die gleiche Wirkung wie die Software-Befehl)
- Folgende Schritte sind die gleichen wie Methode 1
VII. Vollständige Operations-Szenarien (10 Instanzen mit Byte-für - Byte-Anschluss)
Das folgende Beispiel enthält vollständige Operations-Beispiele, die alle Funktionen abdecken, einschließlich hexadezialer Anforderung / Antwort-Frame und Feld-für-Feld - Auflösung.
7.1 Systemregisteroperationen (6 Beispiele)
Beispiel 1: Gerät-Firmware - Versionsnummer lesen (Lesen 0001H)
| Projekt | Inhalt |
|---|---|
| Operationstyp | Lesen-Halt - Register (Funktionscode 0x03) |
| Anforderungsrahmen (Hex) | 01 03 00 01 00 01 D5 CA |
| Bitte um Analyse | [Adresse = 01] [Funktionscode = 03] [Startadresse = 0001H] [Registeranzahl =1] [CRC = D5CA] |
| Antwortrahmen (hexadezimal) | 01 03 02 01 02 B8 44 |
| Antwort zur Auflösung | [Adresse = 01] [Funktionscode = 03] [Bytes = 2] [Daten = 0102] →V1.2 Version[CRC= B844) |
Fall 2: Lesen Sie die Anzahl der aktuellen Online-Sensor - Knoten (Lesen 0002H)
| Element | Inhalt |
|---|---|
| Anforderungsrahmen | 01 03 00 02 00 01 25 CA |
| Antwortrahmen | 01 03 02 00 08 B9 82 |
| Ergebnisinterpretation | Derzeit sind8Sensorknoten online |
Fall 3: Modifizierung der RS485 - Slave-Station - Adresse des Geräts (Schreiben 0003H → neue Adresse = 2)
| Projekt | Inhalt |
|---|---|
| Operationstyp | Schreiben eines einzelnen Registers (Funktioncode 0x06) |
| Anforderung Frame | 0 |
| Bitte um Analyse | [Adresse = 01] [Funktionscode = 06] [Register = 0003H] [Daten = 0002 → Adresse geändert zu 2] [CRC = F80B] |
| Antwort auf Frame | 01 06 00 03 00 02 F8 0B (Echo-Anforderung - Frame, Schreiberfolg) |
| Anmerkung | Nach der Änderung wird eine neue Adresse (0x02) für die Nachfolgekommunikation benötigt |
Fall 4: Änderung der Baudrate des seriellen Anschlusses auf 19200 (Schreiben 0004H → Wert = 1)
| Eintrag | Inhalt |
|---|---|
| Anforderungsrahmen | 01 06 00 04 00 01 09 CB |
| Anforderungsresolution | [Adresse = 01] [Funktioncode = 06] [Register = 0004H] [Daten = 0001 → Baudrate Option 1] [CRC = 09CB] |
| Antwortframe | 01 06 00 04 00 01 09 CB (Erfolgreich) |
| Hinweis | Nach der Änderung muss die Baudrate des seriellen Anschlusses des Host auf 19200 umgestellt werden, um die Kommunikation fortzusetzen |
Fall 5: Umschalten zum Abfrage-Eskkalationsmodus (Schreiben 0005H → Wert = 1)
| Elemente | Inhalte |
|---|---|
| Anforderungsrahmen | 01 06 00 05 00 01 58 0B |
| Bitte um Analyse | [Adresse = 01] [Funktionscode = 06] [Register = 0005H] [Daten = 0001 → Abfrage-Modus] [CRC = 580B] |
| Antwort auf Frame | 01 06 00 05 00 01 58 0B (Erfolgreich in den Abfrage-Berichtigungsmodus wechseln) |
Fall 6: Sensorbindung Paare gestartet (Schreiben 0006H → Wert = 1)
| Projekt | Inhalt |
|---|---|
| Anforderung Frame | 0 0 |
| Bitte um Analyse | [Adresse = 01] [Funktionscode = 06] [Register = 0006H] [Daten = 0001 → Startbindung] [CRC = A80B] |
| Antwort Frame (Erfolgreich) | 01 06 00 06 00 01A8 0B (Code 1 = Befehl erfolgreich ausgeführt, Warte auf den Sensor) |
| Response Frame (Timeout) | 01 06 00 06 00 02 E8 0A (Code 2 = Sensor-Netzwerk innerhalb von 20 Sekunden, Timeout) |
7.2 Sensor-Daten - Register-Betrieb (4 Fälle)
Fall 7: Handliches Hinzufügen von Sensor 1 zum System (Schreibadresse 0x12345678)
Wenn die 32 - Bit-Adresse eines Sensorgeräts bekannt ist, kann sie direkt per Register-Schreiben dem System hinzugefügt werden:
| Projekt | Inhalt |
|---|---|
| Operationstyp | Schreiben mehrerer Registers (Funktionscode 0x10) |
| Zieldresse | Startadresse des Sensor 1 0010H, drei Registers aufeinanderfolgend geschrieben (Index + Addr_H + Addr_L) |
| Anforderung Frame | 01 10 10 00 03 06 00 01 12 34 56 78 A1 E1 |
| Byte-Auflösung | [01= Adresse] [10 = Funktionscode] [00 10 = Startadresse 0010H] [00 03 = Schreiben 3 Registers] [06= 6 Byte Gesamtdaten] [00 01 = 1 + Temperatur-Feuchtigkeit - Typ] [12 34 = Adresse oben 16 Bit] [56 78 = Adresse unten 16 Bit] [A1 E1 = CRC] |
| Antwortrahmen | 01 10 00 10 00 03 81 CD (Bestätigung des Schreibens von 3 Registeren ab 0010H) |
Fall 8: Alle Daten von Sensor 1 gelesen (6 Register = 12 Byte)
| Projekte | Inhalt |
|---|---|
| Anforderung Frame | 01 03 00 10 00 06 C4 0D |
| Anforderung Auflösung | [01= Adresse] [03 = Funktionscode] [00 10 = Startadresse 0010H] [00 06 = 6 Register lesen] [CRC = C40D] |
| Antwort Frame | 01 03 0C 00 01 12 34 56 78 00 FA 01 F4 00 64 B5 F1 |
| Bewertungen analysieren | [01= Adresse] [03 = Funktionscode] [0C = 12 Byte Daten] [00 01 → Sensor Nr. 1 + Temperatur-Feuchtigkeit - Typ (01H) [12 34 56 78 → 32 - Bit-Gerätadresse 0x12345678] [00 FA → Temperatur 25,0 ° C (250 × 0,1)] [01 F4 → Feuchtigkeit 50,0% (500 × 0,1)] [00 64 → Batterie 100%] [B5 F2 = CRC |
Fall 9: Entfernen von Sensor1 (Adressenregister löschen)
Der Sensor kann entfernt werden, indem man alle entsprechenden Adressregister löscht:
| Eintrag | Inhalt |
|---|---|
| Anforderungsrahmen | 01 10 00 03 06 00 00 00 00 00 00 00 03 = 3 Registers |
| Bitte um Analyse | [01= Adresse] [10 = Funktionscode] [00 10 = Startadresse] [00 03 = 3 Registers] [06= 6 Byte Daten] [00 00 00 00 00 00 00 = Alles löschen] [E7 15 = CRC] |
| Antwortrahmen | 01 10 00 10 00 03 81 CD (Erfolgreich gelöscht) |
| Effekt | Die Adresse des Sensors 1 wurde gelöscht und das System empfängt keine Daten mehr von diesem Sensor, Speicherbehälter Freisetzung |
Fall 10: Direkt Schreiben von Temperatur - und Feuchtigkeitsdaten für Sensor 1
| Projekt | Inhalte |
|---|---|
| Anforderung Frame | 0 |
| Bitte um Analyse | [01= Adresse] [10 = Funktionscode] [00 13 = Startadresse 0013H (Data1)] [00 02 = Schreiben 2 Registers] [04= 4 Byte Daten] [01 2C → Temperatur 30,0 ° C (300 × 0,1)] [02 58 → Feuchtigkeit 60,0% (600 × 0,1)] [72 19 = CRC] |
| Antwortrahmen | 01 10 00 13 00 02 B0 0D (Schreiberfolgreich) |
VIII. Ausnahmebehandlung und Fehlercode
8.1 Modbus-Ausnahme - Antwortformat
Gibt eine Ausnahme-Antwort zurück, wenn eine unerlaubte Operation von der Station erkannt wurde:
- Normaler Funktionscode ändert sich auf 1 (z. B. 0x03 → 0x83, 0x06 → 0x86, 0x10 → 0x90)
- gefolgt von 1 Byte Ausnahmecode
| Ausnahmecode | Bedeutungen | Häufige Ursachen | Lösung |
|---|---|---|---|
| 01 | Ungültiger Funktionscode | Nicht unterstützter Funktionscode | Verwenden Sie nur 0x03/0x06/0x10 |
| 02 | Ungültige Datenadresse | Registeradresse außerhalb des gültigen Bereichs | Prüfen Sie, ob die Adresse im Bereich 0001H ~ 012FH liegt |
| 03 | Ungültiger Datenwert | Der geschriebene Datenwert übersteigt den zulässigen Bereich | Prüfen Sie den Wertbereich (z. B. Adresse sollte zwischen 1 und 247) |
8.2 Bindungsfunktion Rückgabecode (0006H-Register)
| Rückgabecode | Bedeutung | Beschreibung |
|---|---|---|
| 1 | Befehl erfolgreich ausgeführt | Bindungsbefehl empfangen, Gateway in Pairing-Modus gewartet auf Sensor-Zugang |
| 2 | Bindungszeitüberschreiten | Sensorsignal nicht innerhalb von 20 Sekunden empfangen, Bindungsmodus automatisch beendet |
8.3 Fehlersuchtabelle
| Problemphänomen | Mögliche Ursache | Lösung |
|---|---|---|
| Kommunikationszeitüberschreiten, Keine Antwort | RS485 - Adressunpassung oder Baudrate-Inkonsistenz | Überprüfen der Konfiguration des Adressregisters 0003H und des Baudrate-Registers 0004H |
| Sensordaten sind alle Null ausgelesen | Sensorknoten sind nicht registriert / gebunden oder Adressschreibfehler | Überprüfen Sie, ob das Adressregister, das mit 0010H beginnt, ordnungsgemäß nicht Nullwert geschrieben wird |
| Das Register kann nicht geschrieben werden | Funktionscode verwendet falsch oder mit unzureichenden Berechtigungen | Bestätigen Sie, dass der richtige Funktionscode verwendet wird: 0x06 für ein einzelnes Schreiben, 0x10 für mehrere Schreibungen; 0001H / 0002H ist nur für Lesen |
| CRC-Verifizierungsfehler | Fehler beim Datenübertragen | Überprüfen der RS485 - Leitungsverbindung (A + / B - Rückverbindung, fehlender Terminationswiderstand), CRC neu berechnet |
| Bindungsfehler (wiederholte Timeout) | Sensor nicht in Kommunikationsbereich oder Batterie erschöpft | Sensor-Gateway - Entfernung verkürzen, Sensorbatterie ausgetauscht |
| Teilweise Sensordaten nicht aktualisiert | Der Sensor übersteigt die Abdeckung des drahtlosen Signals | Ausrichtung der Gateway-Antenne anpassen oder Repeater hinzufügen |
IX. Hinweise und bewährte Verfahren
9.1 Wichtige Hinweise
- Frame-Interval - Zeit: Im RTU-Modus muss ein Schweigenintervall von mindestens3,5 Zeichenzwischen zwei benachbarten Frames aufrechterhalten werden. Kürzstes Frame-Intervall bei verschiedenen Baudraten:
- 9600 bps: ca. 3,6 ms
- 115200 bps: ca. 0,3 ms
- Big-End - Byte-Sequenz: Beim Schreiben mehrerer Registers mit Funktionscode 0x10 müssen die Daten imBig-Endian - Modusorganisiert werden, wobei die hohen Bytes vor und die niedrigen Bytes hinterher stehen.
- Broadcast-Operation nicht antwortet: Alle Slaves führen die Aktion durch, wenn ein Befehl an die Broadcast-Adresse 0xFF gesendet wird, abergibt keine Antwort Frame zurück。
- Sensor-Add - Regeln: Adress-Register (Addr_H + Addr_L) muss beim Hinzufügen eines Sensors geschrieben werdenNicht-Null - Wert; das Schreiben von Nullen ist das Löschen des Knoten.
- Operationsintervall: Warten Sie mindestens100 msnach der Aktualisierung der Sensordaten, bevor Sie die nächste Registeroperation durchführen.
- Bindungsrisiko löschen: Schreiben im Register 0007HLöschen Sie alle gebundenen SensordatenBitte bestätigen Sie vor dem Vorgang, dass keine vorhandenen Konfigurationen behalten werden müssen, nachdem sie gelöscht wurden, müssen Sie sie neu binden.
9.2 Empfohlene Betriebsweise
- Erster Einschalt: Lesen von 0001H bestätigt Firmware-Version, Lesen von 0002H bestätigt Anfangszustand
- Konfiguration der Kommunikationsparameter: Ändern von 0003H (Adresse), 0004H (Bolt-Rate), 0005H (Messellmodus)
- BindungssensorHinzufügen von Sensoren durch 0006H oder physische Tasten
- : Lesen Sie die Anzahl der Knoten durch 0002H und lesen Sie die entsprechenden Sensordatenbereichs, um die Daten zu bestätigen, dass sie normal sinddurch Hinzufügen von Sensoren durch 0006H oder physischen Tasten
- tägliche Betriebs - und Wartung: Regelmäßige Lesen des Sensor-Batterie - Felds, um die Batterie zu überwachen und die Batterie mit geringer Batterie zu ersetzen
X. CRC16 - Algorithmus-Implementierung
Dieses Protokoll verwendet denMODBUS-Standard CRC16Prüfealgorithmus mit dem Polynomial0xA001(d.h. die Bit-Inversion von 0x8005). Hier ist die vollständige C-Referenzimplementierung:
#include <stdint.h>
/**
* MODBUS CRC16 计算
* @param data 待计算的数据缓冲区指针
* @param len 数据长度(字节)
* @return 16 位 CRC 校验值(低字节在前)
*
* 多项式:0xA001(MODBUS 标准)
* 初始值:0xFFFF
*/
uint16_t calc_crc(uint8_t *data, uint16_t len)
{
uint16_t crc = 0xFFFF; // 初始值
for (uint16_t i = 0; i < len; i++)
{
crc ^= data[i]; // 与当前字节异或
for (uint8_t j = 0; j < 8; j++) // 逐位处理
{
if (crc & 0x0001) // 最低位为 1
{
crc >>= 1; // 右移一位
crc ^= 0xA001; // 与多项式异或
}
else
{
crc >>= 1; // 仅右移
}
}
}
return crc;
}
/* 使用示例:
* uint8_t frame[] = {0x01, 0x03, 0x00, 0x01, 0x00, 0x01};
* uint16_t crc = calc_crc(frame, 6);
* 结果:crc = 0xCAD5(低字节 0xD5 在前,高字节 0xCA 在后)
*/
XI. Materialien-Downloads und technische Unterstützung
- Version dieses Dokuments:V1.3(2025 - 10 - 03 Update)
- Das Protokoll folgt den Standards:Modbus-Industriestandard - Protokoll-Spezifikation
- Spezifische Register-Definitionen basieren auf der tatsächlichen Firmware des Geräts
- Für technische Unterstützung wenden Sie sich bitte an den Hersteller, um die neuesten Register-Map - Tabellen und Protokoll-Dokumentationen zu erhalten
Versionsverlauf
| Versionsnummer | Veröffentlichungsdatum | Wichtige Änderungen |
|---|---|---|
| V1.1 | 2025-09-01 | Basisversion, Standardmodbus-RTU - Protokoll als Master-Knoten - Kommunikationsprotokoll |
| V1.2 | 2025-09-21 | Ergänzung der Software-Befehl - Start-Bindungsfunktion; Ergänzung der Hardware-Key - Start-Bindungsfunktion |
| V1.3 (aktuell) | 2025-10-03 | Korrektur Maximale Anzahl von unterstützten Sensoren auf 64; Hinzufügen von Sensor-Type - Datenfeld; Hinzufügen von Sensor-Datensegment - Format Detaillierte Beschreibung; Bindungszeitüberschreitung von 20 Sekunden behoben; 0007H-Register hinzugefügt (alle Bindungen mit einem Klick löschen) |
XII. Typisches Anwendungsszenario
Szenario 1: Smart Agriculture - Greenhouse Environment Monitoring System
Bereitstellung in GewächshausTemperatur-Feuchtigkeit - Sensor (Typ = 01H), die Daten über dieses Gateway über Modbus RTU auf eine SPS oder ein Touchscreen-Steuerungssystem hochgeladen werden. Es kann die Ventilator, das Sprühsystem, die Vorhänge und andere Ausrüstung verbinden, um die automatische Regulierung der konstanten Temperatur und Feuchtigkeit zu erreichen. Unterstütztbis zu 64 SensorpunkteErfüllung der Bedürfnisse von mehreren Standorten für die Überwachung von großen Gewächshaus.
Szenario 2: Intelligente Viehzucht - Gesundheitsmanagement für Viehzucht
Tragen einesdrahtlosen Ohr-Tag - Sensors (Typ = 02H)für jede Kuh / Schafe, und das Gateway sammelt zentral Temperatur - und Aktivitätsdaten für Viehzucht. Automatische Alarmmeldung, wenn die Körpertemperatur eines Tieres einen festgelegten Schwellenwert überschreitet (Krankheitswarnung) oder wenn sich die Aktivität abnormal ändert, wird der Östrous / Gesundheitszustand beurteilt.64 Kapazitätist ausreichend, um die Anforderungen der Viehmanagement für kleine und mittlere Betriebe zu decken.
Szenario 3: Brandschutz - Feuerwehrüberwachung in Lager / Maschinenräumen
EinrichtungRauchsensors (Typ = 03H)zur Echtzeitüberwachung der Rauchkonzentration in Schlüsselbereichen wie Lager und Maschinenräumen. Wenn die Konzentration den Schwellenwert überschreitet, wird der optische Alarm, das Abluftsystem oder die Feuerwehr-Verknüpfungsplattform über den Modbus-Hochcomputer ausgelöst. Mit Temperatur-Feuchtigkeitssensoren wird zudem eine umfassende Umweltsicherheitsüberwachung ermöglicht.
Szenario 4: Intelligentes Gebäude - menschliche Präsenz und Beleuchtung
Installation in Büros, Konferenzräumen und ToilettenRadar-Sensor (Typ = 04H)或Infrarot-PIR - Sensor (Typ = 05H)für eine präzise Personenerkennung. Das Radar-System erkennt kleine Bewegungen (auch Atem) und ermöglicht eine echte "MBI_739] Menschen in einem sofortigen LichtDer Mensch leuchtet." intelligente Beleuchtungsteuerung, die erhebliche Energieeinsparungen. Die Sensordaten werden über das Gateway in das Gebäudeautomatische System (BAS) oder den KNX / Modbus-Bus zugegriffen.
Szenario 5: Sicherheits-Alarm - Einbruchserkennung in Kombination mit drahtloser Fernbedienung
kombiniertInfrarot-Sensor (Typ = 05H)Perimeter-Eintrusion - Erkennung mitdrahtloser Fernbedienung (Typ = 06H)für die Verteidigung / Entfernung.Gerät für allgemeine Anwendung 1527 (Typ = 00H)ist kompatibel mit verschiedenen Arten von drahtlosen Detektoren wie Türmagneten, Glasbruch, Wasserüberschwemmung und anderen, um ein komplettes drahtloses Sicherheitssystem zu bauen, alle Daten über Modbus RTU auf den Alarm-Host oder SCADA-Plattform zugreifen.
Antwort veröffentlichen