Discussion forum about Comet system products
You are not logged in.
Dobrý den,
máte k dispozici ukázkový kus kódu obsahující blok dat, která se pošlou po socketu a jaká je odpověď zařízení?
Potřebuji vyčítání teploty z T0510 zabudovat do programu v C#. Děkuji.
Offline
Dobrý den,
ukázkový kus kódu co se týče knihoven pro Modbus komunikaci bohužel nemáme, pro tyhle účely používáme knihovny třetí strany. Data, která je nutno poslat pomocí TCP, vypadají přibližně takto:
Modbus query - celkem 12 bytů
------------------------------------
Příklad:
0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x30, 0x00, 0x04
Význam:
WORD 0x00, 0x00 = transaction identifier
WORD 0x00, 0x00 = protocol identifier
WORD 0x00, 0x06 = length
BYTE 0x01 = unit identifier (slave adresa jednotky)
BYTE 0x03 = read multiple registers (typ příkazu)
WORD 0x00, 0x30 = reference number (adresa Modbus)
WORD 0x00, 0x04 = word count (počet hodnot ke čtení)
Modbus response - celkem 17 bytů
----------------------------------------
Příklad:
0x00 0x00 0x00 0x00 0x00 0x0b 0x01 0x03 0x08 0x00 0xef 0x01 0xc5 0x00 0x72 0x05 0x60
Význam:
WORD 0x00, 0x00 = transaction identifier
WORD 0x00, 0x00 = protocol identifier
WORD 0x00, 0x0b = length
BYTE 0x01 = unit identifier (slave adresa jednotky)
BYTE 0x03 = read multiple registers (typ příkazu)
BYTE 0x08 = byte count (počet přečtených bytů)
WORD 0x00, 0xef = hodnota teploty (INT*10)
WORD 0x01, 0xc5 = hodnota relativni vlhkosti (INT*10)
WORD 0x00, 0x72 = hodnota počítané veličiny (INT*10)
WORD 0x05, 0x60 = hodnota atmosférického tlaku (int*10^N, záleží na zvolené jednotce)
Offline