libor
moderátor+
Příspěvků: 388

|
 |
« Odpověď #1 kdy: 14.05.2013, 12:10:54 » |
|
Měřič tepla JSD600 komunikuje buď protokolem, který nazývají Modbus ale není Modbusem (částečně z něj vychází, ale jinak není s Modbusem kompatibilní) nebo zkráceným protokolem, který je potvrzovaný.
V příloze je projekt, který pomocí modulů SerialComm vyčítá z měřiče JSD600 všechny hodnoty, které jsou ve zkráceném protokolu dostupné (postupně po 4 hodnotách). Komunikace probíhá po RS-485 (COM1 na CCPU-03), rychlostí 9600Bd/8bitů/žádná parita, adresa měřiče je nastavena na univerzální hodnotu 241. Dvojice modulů SerialComm jsou tam z důvodu potvrzování paketů (CCPU-03 vyšle dotaz, JSD600 mu potvrdí příjem hodnotou 0x06 a vzápětí odešle i data, tento paket musí CCPU-03 opět potvrdit honotou 0x06, kterou vysílá vždy druhý SerialComm z dvojice).
Hodnoty posílané měřičem jsou 4bajtové float hodnoty, které modul SerialComm neumí přímo zpracovávat, takže výsledek musí být před další použitím zpracován přes nějaké float hradlo (v projektu Aplus).
CCPU-03 tak vyšle 5x stejný dotaz, aby postupně zobrazilo všech 20 hodnot, které se protokolem dají vyčíst. U přenosu nelze kontrolovat CRC, protože to by nyní (verze FW 3.032) znamenalo úpravu FW.
|