Kommunikationsprotokoll:
Diese Kommunikation verwendet das Standardmodbus RTU-Kommunikationsprotokoll, unterstützt den Funktionscode 01 04 05 06, die Daten sind 16 - Bit-Ganz.
Kommunikationsbaudrate: 1200 2400 4800 9600 Einstellbar (Standard-Baud - Rate ist 1200), Adresse: 1 - 254 kann eingerichtet werden (Fabrik-Standard - Adresse 01), 1 Startbit, 8 Datenbit, keine Parität
Ein Funktionscode 01
Lesen Sie den Spule-Zustand des Remote-Gerätes (Schaltervolumen-Daten, jedes Bit repräsentiert eine Schaltervolumen, 0 = aus 1 = ein, Adresse in Bit-Adresse dargestellt, Daten in Byte dargestellt, weniger als ein Byte-Bit, höhere Bit mit 0 gefüllt)
Lesen Sie den aktuellen Schaltervolumen-Status des Geräts an der Adresse 01
| Host-Anfrage: Senden Sie die Daten an die Adresse 010100000018 | |||||||
| 01 | 01 | 00 | 00 | 00 | 18 | ||
| Anschrift | Funktionscode | Startadresse | Anzahl der Spule | CRCL | CRCH | ||
| Slave-Antwort: Rückgabe 010101 | |||||||
| 01 | 01 | 03 | 00 | 00 | Adresse | 37 | |
| Anschrift | Energiecode | Anzahl der Bytes | Spule-Zustand1 | Spule-Zustand2 Spule-Zustand3 | CRCL | CRCH | |
Diese Kommunikation setzt 24 Online-Lese - Spule (Schaltvolumen), Spule-Adresse = 0x0000 ~ 0x0017
Rückgabe von Spule-Zustand1, Adresse 0 ~ 7 (ein Byte Daten)
D7 = Press ein / aus D6 = Hochwind ein / aus D5 = Schlaganfall ein / aus D4 = Niedrigwind Ein / Aus
D3 = Alarm Ein / Aus D2 = Reserviert D1 = Reservierung D0 = Reserved
Gibt den Spule-Zustand 2, Adresse 8 ~ F zurück (ein Byte von Daten)
D7 = Ein / Aus D6 = Frisch D5 = Reservierung D4 = Entfeuchtung / Belüftung (0 = Entfeuchtung 1 = Belüftung)
D3 = Aufbewahrung D2 = Feuchte Kontrolle D1 = Reservierung D0 = Reservierung
Rückgabe von Spule-Zustand 3, Adresse 10 ~ 17 (Ein Byte Daten) Schutz-Zustand Reservierung
D7 = Reservierung D6 = Vorbehalt D5 = Reservierung D4 = Reservierung
D3 = Reservierung D2 = Vorbehalt D1 = Reservierung D0 = Reservieren
Beispiel: Host send: 01 01 00 00 18 3c 00
Gerät für Adresse 1 Lesen des aktuellen Geräteszustands
Zwei Funktionscode 04
Verwenden Sie diesen Funktionscode für das Remote-Gerät, um Geräteninformationen zu lesen.(Jeder Informationsparameter ist ein Register), 16 - Bit-Datenformat, HEX-Code, hohe Byte vor
Lesen Sie die aktuellen Geräteparameter
| Host-Anforderung:发送数据为 01040000000271CB | ||||||||||||||
| 01 | 04 | 00 | 00 | 00 | 02 | 71 | CB | |||||||
| 地址 | 功能码 | 起始寄存器地址 | 输入寄存器数量 | CRCL | CRCH | |||||||||
| 从机应答:返回数据为 01040400C8012C7A37(温度:20.0℃ 湿度30.0%RH) | ||||||||||||||
| 01 | 04 | 04 | 00 | C8 | 01 | 2C | 7A | 37 | ||||||
| Adresse | Funktionscode | Anzahl der Bytes | Einstellungen Luftfeuchtigkeit (HEX) | Aktuelle Luftfeuchtigkeit (HEX) | CRCL | CRCH | ||||||||
Diese Kommunikation setzt 4 Register (Datenvolumen) mit Adressen 0x0000 ~ 0x0003 2 Daten gleichzeitig lesen, so dass die Anzahl der Eingaberegister entspricht 0x0002, Adresse = 0x0000 oder 0x0002
Adresszuweisung:
0x0000: Luftfeuchtigkeit festlegen 0x0001: Aktuelle Luftfeuchtigkeit
0x0002: Spule-Temperatur 0x0003: Reserviert
Hinweis 1: Die Temperatur-Feuchtigkeit - Daten H (High-Byte) und die Daten L (Low-Byte) sind jeweils die entsprechenden aktuellen Temperatur-Feuchtigkeit - Werte:
Die hochgeladenen Daten müssen durch 10 geteilt werden, z. B. die Luftfeuchtigkeit hochgeladen hexadezimal 0311, entspricht Dezimal 00785, entspricht 78,5%.
Hinweis 2: Die Temperatur unter Null wird mit einer negativen Zahl angegeben, z. B. -11,5 ° C.则 11.5℃对应十进制正数=115 16进制=0x73
负数用补码,则= 0xFFFF-0x0073= 0Xff8C
Hinweis 3: Daten bei Ausfall der Temperatur-Feuchtigkeit = 0xFFFF
Beispiel: Host sendet: 01 04 00 00 00 02 71 CB
Lesen von 2 Byte von Daten ab 0000 vom Gerät mit der Adresse 1 (d.h. Gerätefeuchtigkeit und aktuelle Luftfeuchtigkeit)
Drei-Funktionscode 05
Verwenden Sie diesen Funktionscode für das Remote-Gerät, um eine einzelne Spule zu schreiben (Schreiben Sie ON / OFF-Zustand für ein einzelnes Register, jeder Schalter ist ein Register 16 - Bit-Datenformat, HEX-Code, hohes Byte vor, FF00 = ON, 0000 = OFF)
Schreiben Sie den Startbefehl für das Gerät an die Adresse 1
| Host-Anfrage: Senden Sie Daten an die Adresse 01050000FF00 | |||||||
| 01 | 05 | 00 | 00 | FF | 00 | ||
| Anschrift | Funktionscode | Preset-Register Adresse hoch | Preset-Register Adresse niedrig | Registerdaten hoch | Registerdaten niedrig | CRCL | CRCH |
| Slave-Rückgabe: Die zurückgegebenen Daten sind 0105000FF00 | |||||||
| 01 | 05 | 00 | 00 | FF | 00 | ||
| Anschrift | Funktionscode | Vorinstellungsregister Adresse hohe | Vorinstellungsregister Adresse niedrig | Daten hohe | Daten niedrig platzieren | CRCL | CRCH |
Diese Kommunikation setzt 1 Online-Schreibspule (Schaltervolumen), Spule-Adresse = 0x0000
Beispiel Host send: 01 05 00 00 ff 00 8c 3a
Anschluss-Einstellungen für Adresse 1 Gerät
Beispiel Host send: 01 05 00 00 00 00 cd ca
Einstellungen für das Gerät mit der Adresse1 Shutdown
Vier-Funktionscode06
Verwenden Sie diesen Funktionscode für Remotegeräte, um Dateninformationen in ein einzelnes Register zu schreiben (Jeder Informationsparameter ist ein Register), 16 - Bit-Datenformat, HEX-Code, hohe Bytes vor
Dieses Protokoll definiert 11 Parameter-Menge schreiben, die jeweils folgende Adressen entsprechen:
Voreinstellte Registeradresse: 0x0000 Schreiben Betriebsmodus 0x0000 = Entfeuchtung 0x0001 = Lüftung
0x0001 Schreiben Sie den HEX-Code für die Einstellungen der Luftfeuchtigkeit mit einer Dezimalstelle
0x0002 Schreiben der aktuellen Zeit HEX-Code, hohe Byte-Stunden, niedrige Byte-Minuten
0x0003 Schreib-Einstellungstiming Start-HEX - Code, hohe Byte-Stunde, niedrige Byte-Minuten
0x0004 Schreibzeit-Einstellungen HEX-Code, hohe Byte-Stunden, niedrige Byte-Minuten
0x0005 ~ 0x0008 Reservierte Steuerung
0x0009 Hex-Code für die Korrektur der Geräteadresse, hohe Bytes = 0, niedrige Bytes 0 ~ 254
0x000a Schreiben Sie den Hex-Code für die Korrektur der Baudrate der Kommunikation,
Senden Sie Beispiele:
Beispiel: Schreiben des Lüftungsmodus für Adresse1
Hostsend: 01 06 00 00 00 01 48 0a
Beispiel: Schreiben der Luftfeuchtigkeit für Adresse1 48%
Hostsend: 01 06 00 01 e0 d8 12
Beispiel: Schreiben an Adresse1 Aktuelle Uhrzeit 8: 30
Host send: 01 06 00 02 08 1e af c2
Beispiel: Schreiben an Adresse1 Timed Startzeit 10: 40 Uhr
Host send: 01 06 00 03 0a 28 7f74
Beispiel: Schreiben von Adresse 1 Timed Shutdown 13: 12
Host send: 01 06 00 04 0d 0c cc9e
Beispiel: Schreiben von Adresse 1 Ändern von Adresse 1 in Adresse 2
Hinweis: Adress-Register = 0x0009 Maschinenadresse gültige Daten sind ein Byte, Adresswert hoch = 0, niedrig 0 ~ 254
Host Senden: 01 06 00 09 00 02 d8 09
| Host Anforderung: Senden Sie Daten als 01060009000209D8 (Adresse 1 in 2) | |||||||
| 01 | 06 | 00 | 09 | 00 | 02 | 09 | D8 |
| Anschrift | Funktionscode | Vorinstellungsregister Adresse hohe | Vorinstellungsregister Adresse niedrig | Registerdaten hohe | Registerdaten niedrig | CRCL | CRCH |
| Rückgabe: Die Daten sind 01060009000209D8 | |||||||
| 01 | 06 | 00 | 09 | 00 | 02 | 09 | D8 |
| Adresse | Funktionscode | Preset-Register Adresse Hohe | Preset-Register Adresse Niedrig. | Setzen Sie die hohen Datenbits | Setzen Sie die niedrigen Datenbits | CRCL | CRCH |
Beispiel: für die Adresse 1 Aktuelle Baudrate geändert auf 4800 (Hexadezimal von 4800 auf 12C0)
Host Senden: 01 06 00 0a 12 c0 a5 38
| Host Anfrage: Senden von Daten auf 0106000A12C0A538 (Baudrate von 9600 geändert auf 4800) | |||||||
| 01 | 06 | 00 | 0A | 12 | C0 | A5 | 38 |
| Anschrift | Funktionscode | Vorinstellungsregister Adresse hohe | Vorinstellungsregister Adresse niedrig | Daten hohe | Daten niedrig platzieren | CRCL | CRCH |
| Zurückgabe: 0106000A12C0A538 | |||||||
| 01 | 06 | 00 | 0A | 12 | C0 | A5 | 38 |
| Adresse | Funktionscode | Vorinstellungsregister Adresse hohe Bit | Preset-Register Adress-Low - Bit | Daten-High - Bit | Daten-Low - Bit | CRCL | CRCH |
Hinweis 3: Fehlercode-Frameformat
Adresse Fehlercode Ausnahmecode CRCL CRCH
Fehlercode = Funktionscode + 0x80
Ausnahmecode = 01 oder 02 oder 03 oder 04
01 = ungültiger Operationscode
02 = ungültige Datenadresse
03 = Daten-Ausnahme
04 = MB-Fehler
Anmerkung 4: CRC-Prüfmethode
CRC-Erzeugungsfunktion
unsigned short CRC16 Die Funktion (puchMsg, usDataLen) / * gibt die CRC * /
unsigned char * puchMsg; / * Nachricht zurück, die CRC berechnet. */
unsigned short usDataLen; / * Anzahl der Bytes in der Nachricht * /
{
unsigned char uchCRCHi = 0xFF; / * Initialisierung des CRCs mit hohen Bytes * /
unsigned char uchCRCLo = 0xFF; / * Initialisierung des CRCs mit niedrigem Byte * /
unsigned uIndex; / * CRC-Abfragetabellenindex * /
while (usDataLen - -) / * Vollendet den gesamten Nachrichtenpuffer * /
{
uIndex = uchCRCLo ^ * puchMsgg + +; / * CRC berechnet * /
|
uchCRCHi = auchCRCLo[uIndex];
}
return (uchCRCHi < < 8| (auchchchCRCLo);
}
High-Byte - Tabelle
/ * CRC-Werte für hohe Bytes * /
static unsigned char auch CRCHi[] = {
0x00, 0xC1, 0x40, 0x01, 0xC0, 0x80, 0x41, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC1, 0x81, 0x40, 0x01,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1,
0x81, 0x40, 0x01,
Siehe auch: 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0x80, 0x41, 0x01,
0xC0, 0x80, 0x41,
0x001, 0x81, 0x401, 0x01, 0x40, 0x41, 0x001, 0x81, 0x40, 0x41, 0x40, 0x
0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80
0x41, 0x01, 0xC0,
0x80, 0x41, 0x40, 0xC1, 0x81, 0x40, 0xC1, 0x81, 0x40, 0x01, 0xC1, 0x01, 0x01, 0x
0x80, 0x41, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00,
0xC1, 0x81, 0x40,
0x01, 0x01, 0x
0x00, 0xC1, 0x81,
0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0x40, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC1,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1,
0x81, 0x40, 0x01,
Siehe auch: 0x80, 0x41, 0x01, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0xC0, 0x80, 0x41,
0x00, 0x1, 0x81, 0x40, 0x00, 0x1, 0x81, 0x40, 0x01, 0x0, 0x80, 0x41,
0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80,
0x80, 0x41, 0x40, 0xC1, 0x81, 0x40, 0xC1, 0x81, 0x40, 0x01, 0xC1, 0x01, 0x01, 0x
0x80, 0x41, 0x01,
Siehe auch: 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0xC0, 0x80, 0x41,
0x01, 0x01, 0x
0x00, 0xC1, 0x81,
0x40
} ;
Niedrige Tabelle
/ * CRC-Wert für niedrigste Bytes * /
statische Char auchCRCLo[] = {
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7,
0x05, 0xC5, 0xC4,
0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB,
0x0B, 0xC9, 0x09,
0x08, 0xC8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE,
0xDF, 0x1F, 0xDD,
0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2,
0x12, 0x13, 0xD3,
0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF2, 0x32,
0x36, 0xF6, 0xF7,
0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E,
0xFE, 0xFA, 0x3A,
0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B,
0x2A, 0xEA, 0xEE,
0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27
0xE7, 0xE6, 0x26,
0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1,
0x63, 0xA3, 0xA2,
0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD,
0x6D, 0xAF, 0x6F,
0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8,
0xB9, 0x79, 0xBB,
0x79, 0x79, 0x79, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBC, 0x7C, 0xB4,
0x74, 0x75, 0xB5,
0x77, 0xB6, 0x76, 0x72, 0xB3, 0x73, 0xB1, Siehe auch: „Das ist die Veröffentlichung von ‚ Veröffentlichung von ' Veröffentlichung von ‚ Veröffentlichung von ' Veröffentlichung von ‚ Veröffentlichung von ‚ Veröffentlichung von ' Veröffentlichung von ‚ Veröffentlichung von ‚ Veröffentlichung von ' Veröffentlichung von ‚ Veröffentlichung von ‚ Veröffentlichung von ' Veröffentlichung von ‚ Veröffentlichung von ' Veröffentlichung von ‚ Veröffent 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59
0x50, 0x90, 0x91,
Siehe auch: 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94,
0x54, 0x9C, 0x5C,
0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9B, 0x5B, 0x99, 0x59, 0x59, 0
0x58, 0x98, 0x88,
0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D,
0x4D, 0x4C, 0x8C,
0x44, 0x84, 0x85, 0x45, 0x87, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83,
0x41, 0x81, 0x80,
0x40
};
Herstellerinformationen:

400-0858-758
www.hzsongdao.com
Hangzhou Matsushima Industrie Limited
Telefon: 0571 - 85367531 / Fax: 0571 - 85367531
Adresse: 528 Shunfeng Road, Qianjiang Economic Development Zone, Yuhang District, Hangzhou

Antwort veröffentlichen