CIL · návod pro technika

Mapování neznámých zpráv

Jak z logu, kde je spousta neznámých zpráv, dostat ty, které opravdu potřebuješ, a přiřadit jim význam. Postup je obecný, příklady jsou z Amazone Pantera (log 29. 9. 2026).

00Nejdřív to hlavní

Všechny neznámé zprávy rozluštit nejde a není to ani potřeba. Část z nich je interní komunikace mezi jednotkami, část se v logu vůbec nemění a část jsou čítače. Pro telematiku obvykle stačí 10–15 veličin. Postup je proto opačný: nejdřív si řekni, co chceš získat, pak to cíleně změř a nakonec v CIL najdi, kde se to na sběrnici projevilo.

Pantera v číslech. Sběrnice ukazuje 42 neznámých nebo konstantních zpráv. Z nich 7 jsou síťové zprávy ISOBUS (přenos grafiky, jazyk terminálu, pracovní sada), které CIL nově pozná sám, a dalších 16 se za celý log nezměnilo. Opravdu k řešení je 19 zpráv, a většina z nich jsou podzprávy dvou proprietárních ID.

01Roztřiď neznámé

Ve Sběrnici dej filtr Neznámé a podívej se na sloupec s tečkami bajtů a na text „mění se B2, B3…“. Podle chování patří každá zpráva do jedné z těchto skupin:

nech být

Konstantní

Za celý log se nezměnila. Může nést něco, s čím se v tomhle logu nepracovalo, ale bez změny ji nenajdeš. Vrať se k ní, až bude log s tou činností.

nech být

Čítač, kontrolní součet

Bajt se mění v každém rámci, hodnota roste o 1 nebo skáče náhodně bez vztahu k čemukoli. Nenese veličinu.

stav

Mění se občas

Pár hodnot, změna jen někdy. Typicky spínače, režimy, sekce, poloha páky. Hledají se přes úkony z telefonu.

veličina

Mění se pořád

Hodně různých hodnot a plynulá změna: rychlost, tlak, otáčky, výška, objem. Hledají se porovnáním s něčím známým a měřítko se dopočítá.

Kdo s kým mluví

Poslední bajt CAN ID je odesílatel, u proprietárních zpráv 1CEFxxyy je xx příjemce. Na Panteře:

ZprávyOd → komuCo to nejspíš je
1CEF9087 · EA, FD, FC, E1…0x87 → 0x90Hlavní jednotka postřikovače posílá data druhé jednotce. Hodně provozu, jen část bude zajímavá pro telematiku.
1CEF8790 · EA, E9, E1, FC0x90 → 0x87Odpovědi druhé jednotky, typicky naměřené hodnoty a stavy z její strany stroje.
00FF0187 · 01 … 22, 00FF01900x87, 0x90 → všemVysílání pro všechny. Nejslibnější místo pro stav stroje: zprávy určené ostatním jednotkám obvykle nesou hotové veličiny.
1CEFFA87, 1CEFFB87, 1CEF87FA0x87 ↔ 0xFA/0xFBKomunikace s dalšími funkcemi postřikovače (třída 6, funkce 129 a 132).

Označení ID · B0 znamená, že jedno CAN ID nese víc různých zpráv a rozlišuje je první bajt. CIL je rozdělí sám, s každou podzprávou pracuješ jako se samostatnou zprávou.

Pozor na rozsah logu. V logu z Pantery nejsou žádné standardní zprávy motoru ani pojezdu (J1939 standard: 0). Zachycená sběrnice je sběrnice nářadí (ISOBUS). Motor, rychlost a motohodiny samojízdného stroje nejspíš běží po jeho vlastní sběrnici podvozku a pro ně je potřeba logovat i ten konektor.

02Rozhodni, co chceš získat

Napiš si seznam veličin pro telematiku a u každé, jestli už ji máš. U postřikovače typicky:

VeličinaDruhStav na Panteře
Pracovní stav (stříká / nestříká)stavznámé: ISOBUS DDI 141
Objem v nádrživeličinaznámé: ISOBUS DDI 72
Stav sekcí (která stříká)stavDDI 141 po elementech, ověřit na úkonech
Nastavená a skutečná dávkaveličinahledat
Tlak postřikuveličinahledat
Rychlostveličinahledat, případně sběrnice podvozku
Výška ramen, rozložení ramenveličina, stavhledat
Čerpadlo, míchánístavhledat

Co je v ISOBUS jako DDI, je nejspolehlivější a nejlépe se exportuje. Proprietární zprávy hledej jen pro to, co v DDI chybí.

03Změř to cíleně v terénu

Log a záznam úkonů v telefonu běží současně. Hodiny telefonu nemusí sedět, CIL je dorovná sám. Důležitá jsou tahle pravidla:

  1. Jeden úkon = jedna věc. Když zároveň zapneš čerpadlo a sklopíš rameno, nejde poznat, který bit patří čemu.
  2. Zapnutí a vypnutí pojmenuj zvlášť, např. „Sekce 3 zap“ a „Sekce 3 vyp“. CIL podle názvu seskupí opakování a hledá bity, které při všech opakováních skončí ve stejném stavu.
  3. Každý úkon opakuj 3–5× s pauzou aspoň 5 s. Jedna změna může být náhoda, pět změn ve stejnou chvíli už ne.
  4. Ťukej v okamžiku úkonu. Posun hodin CIL srovná, zpoždění ruky ne.
  5. U veličin zapiš i hodnotu z displeje, např. úkon „Dávka 150“, pak „Dávka 200“. Dvě známé hodnoty stačí na výpočet měřítka (krok 5).
  6. Veličiny měň plynule a ve velkém rozsahu: rozjezd 0 → 10 km/h, ramena úplně dole → úplně nahoře. Malá změna se ztratí v šumu.

Měřicí plán pro Panteru

Úkon (název v telefonu)JakOpakovat
Postřik zap / Postřik vyphlavní vypínač, stojící stroj5×
Sekce 1 zap / Sekce 1 vyp (a další)vždy jen jedna sekce, ostatní beze změny3×
Dávka 150 / Dávka 200 …změna nastavené dávky, zapsat hodnotu z displeje3×
Čerpadlo zap / vyp, Míchání zap / vypjednotlivě3×
Ramena nahoru / Ramena dolůcelý rozsah, pomalu3×
Rameno rozložit / složitlevé a pravé zvlášť2×
Rozjezd 10 / Zastavenírozjezd na 10 km/h, rovně, pak stát3×

Log začni ještě před zapnutím stroje. Zachytí se tak i start a identifikace jednotek, jako v logu z 29. 9.

Používej úplný log. Ze čtečky PP2CAN je log úplný. Výpis z jednotky Teltonika (CAN Logger) obsahuje jen asi 3 % rámců a hodí se jen na zjištění, která ID na stroji jsou.

04Vyhodnoť stavy v CIL

  1. Zdroje: přetáhni log. Pokud je stroj rozpoznaný, vybere se profil sám. Záznam úkonů, který časově sedí, se vybere a dorovná sám; hláška ukáže „Dorovnáno o … s · sedí X z Y úkonů“. Když nesedí žádný úkon, je to jiný log nebo jiný den.
  2. Průběh: projdi úkony šipkami ↑↓. U každého je vidět, co se změnilo ve známých hodnotách. Když se po „Postřik zap“ změní DDI 141 na zapnuto, víš, že záznam i log sedí.
  3. V detailu úkonu je seznam Neznámé zprávy, které se v tu chvíli změnily. Zajímá tě shoda vysoká: změnila se při všech opakováních téhož úkonu a pokaždé do stejného stavu.
  4. Přejdi do Hledání signálů a klikni na úkon. Tabulka ukáže přesné bity a důvod shody. Tlačítko Pojmenovat otevře editor definice s předvyplněnými bity.
  5. V editoru pojmenuj pole a doplň stavy, např. 0=vyp, 1=zap. Ukládej k profilu stroje: proprietární zprávy platí jen pro daný stroj.
  6. Ověř: vrať se do Průběhu. Nové pole se teď musí objevit u všech opakování úkonu. Když se ukáže jen u některých, zkus sousední bit nebo celý bajt.

Tip. Pro stavy bez úkonů z telefonu: v Průběhu klikni do časové osy na okamžik, kdy víš, co se dělo (např. z videa nebo poznámky), a podívej se na neznámé zprávy v tu chvíli.

05Vyhodnoť veličiny v CIL

U veličin úkony z telefonu pomáhají méně. Hledá se spíš podle tvaru průběhu.

  1. Ve Sběrnici otevři kandidátní zprávu. Mřížka bajtů ukáže, kolik různých hodnot který bajt měl. Veličiny bývají 2 bajty vedle sebe (little-endian, nižší bajt první).
  2. Vytvořit definici: zkus pole 16 bitů na bajtech, které se mění. Sloupec hodnot se počítá živě z logu.
  3. V Průběhu dej u pole 📈. Průběh musí dávat smysl vůči úkonům: rozjezd = hodnota roste, zastavení = klesne k nule.
  4. Měřítko spočítej ze dvou hodnot, které znáš z displeje (úkony „Dávka 150“, „Dávka 200“). V Průběhu u obou úkonů odečti surovou hodnotu pole:
násobek = (displej₂ − displej₁) / (surová₂ − surová₁)
posun   = displej₁ − násobek × surová₁

Typická měřítka v J1939: rychlost ÷256 km/h, otáčky ×0,125, procenta ×0,4, teplota −40 °C. U Deutzu TTV byla rychlost ÷256.

Zeptat se AI (v detailu neznámé zprávy) zkouší tohle za tebe: porovná bajty se všemi známými hodnotami v logu a navrhne pole s měřítkem. Návrh vždy ukáže ověření na logu; ulož jen to, co sedí.

06Do knihovny a do Teltoniky

V detailu zprávy dej u hotového pole + knihovna. V Export Teltonika se pak pro každý signál ukáže Data Mask, payload maska a výraz pro flespi. Podzprávy ID · B0 dostanou payload masku, která vybere správný první bajt, např. EAFFFFFF.

07Co nejde a na co pozor

08Kontrolní seznam