Comet system forum

Discussion forum about Comet system products

Temperature, Humdity,

Pressure Transmitters

and Data Loggers

You are not logged in.

#1 20-09-2007 14:57:45

Martin Trusina
Member
Registered: 20-09-2007
Posts: 1

Uživatelský program - vyčítání hodnot přes MODBUS TCP

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

 

#2 24-09-2007 11:46:04

RadimM
Administrator
Registered: 30-05-2007
Posts: 17

Re: Uživatelský program - vyčítání hodnot přes MODBUS TCP

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

 

Board footer

Powered by PunBB | CZ / SK
© Copyright 2002–2005 Rickard Andersson