
I. Netzwerktopologie
Das Gerät verwendet eine zentrale Netzwerksteuerung, um eine stabile und effiziente Kommunikation zwischen den Geräten zu gewährleisten.
Zweitens, Adresseinstellungen
- Eintritt in die Einstellungen: Im Einschaltzustand des Geräts, drücken Sie die Tasten "Modus" und "Windgeschwindigkeit" lang, um den Adresseinstellungsmodus zu betreten.
- Anzahl wechselnUmschalten Sie die Anzahl der Adressbits durch Drücken der Taste "Modus".
- Einrichtung verlassen: Drücken Sie die Taste "Windgeschwindigkeit", um den Adress-Einstellungsmodus zu beenden.
III. Kommunikationsvereinbarungen
3.1 Einführung in das Protokoll
Dieses Gerät verwendet das international übliche MODBUS-RTU - Kommunikationsprotokoll für die RS485 - Halbduplex-Kommunikation. Der Host liest die Funktionsnummer 0x03, schreibt die Funktionsnummer 0x10 oder 0x06, verwendet 16 - Bit-CRC - Überprüfung, wenn der Überprüfungsfehler nicht antwortet.
3.2 Kommunikationsparameter
- Baudrate: 9600
- Datenformat:
- Start: 1 Person
- Daten-Bit: 8 Bit
- Stopp-Bit: 1 Bit
- Check-Bit: Kein
- Gerätadressbereich: 0x01 ~ 0xFE
3.3 Kommunikation Ausnahmebehandlung
- Ausnahmeantwortung: Wenn eine Ausnahmeantwort auftritt, wird die höchste Position der Funktionsnummer auf 1 gesetzt. Wenn der Host beispielsweise die Funktionsnummer 0x03 anfordert, wird der Slave die Funktionsnummer 0x83 zurückgeben.
- Fehler Typcode:
- 0x01: Funktionscode illegal (Gerät unterstützt die empfangene Funktionsnummer nicht)
- 0x02: Datenstandort illegal
- 0x03: Datenwert illegal (Datenwert vom Host überschreitet den entsprechenden Datenbereich des Geräts)
Beispiel: Wenn der Host-Anforderungs - Funktionscode 0x04 ist, ist das Slave-Ausnahme - Antwort-Paket0x01 0x84 0x01 0x82 0xc0。
3.4 Kommunikationsfunktionscode
Gerätadresse Standardwert: 0x01
3.4.1 Single-Read / Multiple-Register
Host send(Beispiel für Multiple-Read - Register):
| Byte-Position | Inhaltsbeschreibung | Beispielwert (hexadezimal) |
|---|---|---|
| 1 | Gerätesendresse | 0x01 |
| 2 | Funktionscode | 0x03 |
| 3 | Startadresse Hohe | 0x00 |
| 4 | Startadresse Niedrig | 0x00 |
| 5 | Daten-Wort - Länge | 0x00 |
| 6 | Daten-Wort - Länge | 0x10 |
| 7 | CRC-Code - Länge | 0x44 |
| 8 | CRC-Code - Länge-Low | 0x06 |
Normale Antwort des Slaves:
| Byte-Position | Inhaltsbeschreibung | Beispielwert (hexadezimal) |
|---|---|---|
| 1 | Geräteadresse | 0x01 |
| 2 | Funktionscode | 0x03 |
| 3 | Anzahl der Datenbytes | 0x10 |
| 4-5 | Daten 1 Hoch - und Niedrig-Bits | 0x00 0x00 |
| 6-7 | Daten 2 Hoch - und Niedrig-Bits | 0x00 0x12 |
| 8-9 | Daten 3 Hoch - und Niedrig-Bits | 0x00 0x0d |
| 10-11 | Daten 4 Hoch-Low - Bit | 0x00 0x02 |
| 12-13 | Daten 5 Hoch-Low - Bit | 0x00 0x00 |
| 14-15 | Daten 6 Hoch-Low - Bit | 0x00 0x00 |
| 16-17 | Daten 7 Hoch-Low - Bit | 0x00 0x00 0x00 |
| 18-19 | 8 niedrigere Daten | 0x00 0x00 |
| 20-21 | Daten 9 Höchst - und Niedrig | 0x00 0x00 |
| 22-23 | Daten 10 Höchst - und Niedrig | 0x00 0x00 |
| 24 | CRC-Code Höchst - und Niedrig | 0x6f |
| 25 | CRC-Code niedrig | 0xc5 |
3.4.2 Schreiben Single-Way - Register
Host Senden:
| Byte-Position | Inhaltsbeschreibung | Beispielwert (hexadezimal) |
|---|---|---|
| 1 | Gerätsadresse | 0x01 |
| 2 | Funktionscode | 0x06 |
| 3 | Register-Adresse Hoch | 0x00 |
| 4 | Register-Adresse Niedrig | 0x02 |
| 5 | Schreiben von Daten Hoch | 0x00 |
| 6 | Schreibdaten niedrig | 0x19 |
| 7 | CRC-Code hoch | 0xE9 |
| 8 | CRC-Code niedrig | 0xC0 |
Slave-Antwort:
| Byte-Position | Inhaltsbeschreibung | Beispielwert (hexadezimal) |
|---|---|---|
| 1 | Gerätadresse | 0x01 |
| 2 | Funktionscode | 0x06 |
| 3 | Register-Adresse Höhere Ziffern | 0x00 |
| 4 | Registeradresse niedrig | 0x02 |
| 5 | Schreibdaten hoch | 0x00 |
| 6 | Schreibdaten niedrig | 0x19 |
| 7 | CRC-Code hoch | 0xE9 |
| 8 | CRC-Code Low Bit | 0xC0 |
3.4.3 Schreibmultiplexregister
Host Senden:
| Byte-Position | Inhaltsbeschreibung | Beispielwert (hexadezimal) |
|---|---|---|
| 1 | Gerätadresse | 0x01 |
| 2 | Funktionscode | 0x10 |
| 3 | Registeradresse hohe | 0x00 |
| 4 | Registeradresse niedrig | 0x00 |
| 5 | Datenwortlänge Höchst | 0x00 |
| 6 | Datenwortlänge Niedrig | 0x01 |
| 7 | Datenbytelänge | 0x02 |
| 8 | Schreiben von Datenhöchst | 0x00 |
| 9 | Schreiben von niedrigen Daten | 0x55 |
| 10 | CRC-Code hoch | 0x66 |
| 11 | CRC-Code niedrig | 0x6f |
Slave-Antwort:
| Bytes-Position | Inhalt beschreiben | Beispielwert (hexadezimal) |
|---|---|---|
| 1 | Gerätadresse | 0x01 |
| 2 | Funktionscode | 0x10 |
| 3 | Registeradresse Höhere Bit | 0x00 |
| 4 | Adresse niedrig | 0x00 |
| 5 | Daten-Wort - Länge hoch | 0x00 |
| 6 | Daten-Wort - Länge niedrig | 0x01 |
| 7 | CRC-Code hoch | 0x91 |
| 8 | CRC-Code Low | 0xc5 |
3.4.4 Register-Adressen - Bildtabelle
| Sequenznummer | Register-Adresse | Variablename | Standardwert | Anzahl der Bytes | Beschreibung des Wertbereichs | Lesen und Schreiben zulässig |
|---|---|---|---|---|---|---|
| 1 | 0x0000 | Ein - und Ausschalten | 0x0000 | 2 | 0x0001 Ein - und Ausschalten | R/W |
| 2 | 0x0001 | Aktuelle Temperatur | 0x0000 | 2 | 10 - Dezimal-Format, 0 - 51 (0x0012 für 18 Grad) | R |
| 3 | 0x0002 | Einstelltemperatur | 0x0014 | 2 | 10 - Dezimal-Format bis zu den zulässigen Temperaturwerten (0x0012 für 18 Grad) | R/W |
| 4 | 0x0003 | Modus | 0x0000 | 2 | 0x0000 Kühlung, 0x0001 Heizung, 0x0002 Lüftung | R/W |
| 5 | 0x0004 | Windgeschwindigkeit | 0x0000 | 2 | Automatisch 0x0000, niedrige Geschwindigkeit 0x0001, mittlere Geschwindigkeit 0x0002, Hochgeschwindigkeits 0x0003 | R/W |
| 6 | 0x0005 | Zustand des Kühlventils (zwei-Regelventil) | 0x000000 | 2 | Schließen 0x0000, Öffnen 0x0001 | R |
| 7 | 0x0006 | Zustand des Heizventils | 0x0000 | 2 | Schließen 0x0000, Öffnen 0x0001 | R |
| 8 | 0x0007 | Zustand des Schlüssels | 0x000000 | 2 | Schließen 0x0000, Öffnen 0x0001 (Taste beim Öffnen ist ungültig) | R/W |
| 9 | 0x0008 | Mindest zulässige Temperatur Einstellung | 0x000a | 2 | Dezimalformat, 0 - 15 (0x0012 bedeutet 18 Grad) | R/W |
| 10 | 0x0009 | Höchst zulässige Temperatur Einstellung | 0x001e | 2 | Dezimalformat, 20 - 30 (0x0012 steht für 18 Grad) | R/W |
Hinweis: CRC ist nur für Informationszwecke und unterliegt der MODSCAN32 - Kommunikation.
IV. Die Routine
4.1 Tests des seriellen Port-Tools
4.1.1 Lesen des Registers
Senden eines Pakets:01 03 00 00 00 05 85 C9
Senden Sie die Analyse:
- 01: Gerätsadresse
- 03: Funktionscode lesen
- 00 00: Registerstart-Adresse
- 00 05: Registerend-Adresse
- 85C9: CRC-Checkcode
Rückgabe von Paketen:01 03 0A 00 01 00 1E 00 19 00 00 00 03 8A E4
Rückgabe von Resolution:
- 01: Geräteadresse
- 03: Lesen des Funktionscodes
- 0A: 10 Daten
- 00 01: Startzustand
- 00 1E: Aktuelle Temperatur (0x1e = 30 ° C)
- 00 19: Einstellungen der Temperatur (0x19 = 25 ° C)
- 00 00: Kühlmodus
- 00 03: Windgeschwindigkeit
- 8A E4: CRC-Prüfcode
4.1.2 Schreiben Einstellungen Temperaturregister
Paket Senden:01 06 00 02 00 19 E9 C0
Senden Analyse:
- 01: Gerätadresse
- 06: Schreiben Funktionscode
- 00 02: Registeradresse 2 (aktuelle Temperatur)
- 00 19: Aktueller Temperaturwert (0x19 = 25 ° C).
- E9C0: CRC-Checkcode
Rückgabe von Paketen:01 06 00 02 00 19 E9 C0
4.1.3 Lesen des Sperrregisters
Senden von Paketen:01 03 00 07 00 01 01
Senden von Resolutionen:
- 01: Gerätadresse
- 03: Lesen des Funktionscodes
- 00 07: Start-Register - Adresse
- 00 01: Anzahl der Register lesen
Rückgabepakete:01 03 02 00 01 79 84
Rückgabeanalyse:
- 01: Gerätadresse
- 03: Funktionscode lesen
- 02: Anzahl der zurückgegebenen Daten
- 00 01: Sperrstatus (0x00 ausgeschaltet, 0x01 eingeschaltet)
- 79 84: CRC-Prüfcode
4.1.4 Schreibschlossregister
Senden von Paketen:01 06 00 07 00 00
Senden von Analysen:
- 01: Gerätadresse
- 06: Schreibfunktionscode
- 00 07: Schlüsselschlossregisteradresse
- 00 00: Schließen Schloss (00), 01 für Schloss
返回数据包:01 06 00 07 00 00 38 0B
Produkt-Link:https://item.taobao.com/item.htm? = t&id=902596793260
Antwort veröffentlichen