Vítej, Host. Prosím přihlaš se nebo se zaregistruj.
24.04.2026, 20:51:06

Domů Nápověda Vyhledávání Přihlásit Registrovat
 
Fórum k produktům firmy ELSACO Kolín  

+  PROMOS fórum
|-+  FRED - grafické vývojové prostředí
| |-+  FRED - platforma XCom
| | |-+  Nefungují nulové vif a dif
0 uživatelů a 1 Host prohlíží toto téma. « předchozí další »
Stran: [1] Dolů Tisk
Autor Téma: Nefungují nulové vif a dif  (Přečteno 4114 krát)
libor
moderátor+

Příspěvků: 388



« kdy: 16.09.2011, 07:49:44 »

Na PL2 mám projekt s modulem M-Bus, který čte data z měřiče tepla. Mám nulové hodnoty vif a dif a na výstupech vidím data měřiče. Úplně stejně jsem to udělal na XCOM-21 a nefunguje to. Proč?

Dotaz zaslaný mailem (viz výzva).
Zaznamenáno

libor
moderátor+

Příspěvků: 388



« Odpověď #1 kdy: 16.09.2011, 07:53:05 »

Platorma PL2 (CCPU-02/03/21) a XCOM mají různé možnosti. U PL2 byla možnost zobrazit první data ve zprávě při ponechání nulových hodnot vif a dif, protože nikde není vidět odpověď měřiče.

Na XCOM je vidět odpověď měřiče (výstup out u modulů pro M-Bus komunikaci). Pokud si u zobrazovacího labelu nastavíte formát zobrazení hexadecimálně a počet bajtů nastavíte na 1, tak uvidíte celou odpověď. Z toho se dají jednoduše zjistit vif a dif dat, které měřič v odpovědi posílá.

Na přiloženém obrázku je vidět odpověď měřiče.

(připojené soubory vidí pouze registrovaní uživatelé)
Zaznamenáno

libor
moderátor+

Příspěvků: 388



« Odpověď #2 kdy: 16.09.2011, 08:20:04 »

Data začínají na 20. bajtu (počítáno od 1), jak je vidět na prvním obrázku.

Nejprve zpráva obsahuje dif - pokud je nahozen nejvyšší bit (0x80), tak se do výsledné podoby difu započítává další bajt (maximálně 4 po sobě jdoucí bajty). Dále zpráva pokračuje položkou vif - opět stejně jako u dif - pokud je nahozen nejvyšší bit (0x80), tak se do hodnoty vifu započítává další bajt (opět maximálně 4 po sobě jdoucí bajty).

Nejnižší 4 bity položky dif rozhodují o délce dat a o tom, jak budou data interpretována. možnosti jsou následující:
  • 1 - celé číslo o délce 1 bajt
  • 2 - celé číslo o délce 2 bajty
  • 3 - celé číslo o délce 3 bajty
  • 4 - celé číslo o délce 4 bajty
  • 5 - desetinné číslo o délce 4 bajty
  • 6 - celé číslo o délce 6 bajtů (XCOM uloží pouze poslední 4 bajty)
  • 7 - celé číslo o délce 8 bajtů (XCOM uloží pouze poslední 4 bajty)
  • 9 - BCD číslo o délce 1 bajt
  • 10 - BCD číslo o délce 2 bajty
  • 11 - BCD číslo o délce 3 bajty
  • 12 - BCD číslo o délce 4 bajty
  • 14 - BCD číslo o délce 4 bajty

Na druhém přiložené obrázku je vyznačena první dvojice dif (0x108C) a vif (0x06) - data jsou typu 12 (nejnižší 4 bity z dif = 0x108C je 0xC = 12), nebo-li BCD o délce 4 bajty, takže za dif a vif následují 4 bajty dat. Následně začíná dif další datové položky v odpovědi.

(připojené soubory vidí pouze registrovaní uživatelé)
Zaznamenáno

Stran: [1] Nahoru Tisk 
« předchozí další »
Skočit na:  


Poháněno MySQL Poháněno PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines Validní XHTML 1.0! Validní CSS!