Přidání proměnné

Proměnná se zakládá ve dvou krocích: nejprve se definuje v projektu a poté se přiřadí protokolu, ze kterého má dostávat data.

Definice proměnné

  1. Otevřete Home → Project Configuration → Variables, v rozbalovacím seznamu vedle tlačítka + ponechte typ Scalar a klikněte na +. (Typ Matrix má vlastní postup — kapitola Proměnná Matrix.)
  2. Vyplňte vlastnosti: Name (unikátní jméno), Label, volitelně Namespace a Description.
  3. Zvolte Data Type (datový typ hodnoty) a Presentation (prezentaci vytvořenou v předchozí kapitole). Length nechte 1, pokud nejde o pole hodnot.
  4. Potvrďte tlačítkem Apply — velikost hodnoty se dopočítá automaticky podle datového typu.

Bitové pole (Bit Shift a Bit Mask)

Stavová slova ze zařízení často nesou více údajů v jednom slově — jednotlivé bity příznaků nebo několikabitové čítače a stavy. Pole Bit Shift a Bit Mask v detailu proměnné vyříznou z přenášeného slova jen požadované bity:

pole = (raw >> BitShift) & BitMask
  • Bit Shift — posun slova před maskováním. Zadává se >>2 (doprava), <<3 (doleva), nebo jen číslo (kladné = doprava); prázdné pole = žádný posun.
  • Bit Mask — maska vybírající bity po posunu, hexadecimálně (0x0F) nebo desítkově (15); prázdné pole nebo 0 = žádné maskování.

Příklad: dvoubitový stav v bitech 7–8 slova UShort vyříznete pomocí Bit Shift >>7 a Bit Mask 0x03:

Proměnná s bitovým polem — Bit Shift >>7 a Bit Mask 0x03Proměnná s bitovým polem — Bit Shift >>7 a Bit Mask 0x03

Jak se bitové pole chová:

  • Raw hodnota proměnné zůstává celé slovo tak, jak přišlo z komunikace — logují se a přehrávají celá slova. Bitové pole je první krok přepočtu raw → engineering; teprve na vyříznuté bity se aplikuje konverze (typicky enum s názvy stavů, nebo lineární).
  • Na tutéž adresu lze navázat více proměnných s různým Shift/Mask — každé pole stavového slova je pak samostatná proměnná s vlastní prezentací.
  • Zápis zapisuje jen bity pole: aktuální slovo se přečte, bity pole se vymění a slovo se zapíše zpět (read–modify–write); ostatní bity zůstávají. Hodnota, která se do pole nevejde, se odmítne.
  • Bitové pole má smysl jen u celočíselných datových typů; u Float/Double/String se ignoruje.

Bitová pole se typicky používají u stavových slov z řídicích jednotek: jedno slovo z ECU, několik proměnných s různým bitovým posunem a maskou. Kompletní ukázku najdete v příkladu Bitové pole a skript.

Přiřazení k protokolu

  1. V téže sekci vyberte v pravé části Source — dvojici driver + protokol, která má proměnnou plnit daty.
  2. Přesuňte proměnnou šipkou mezi Communicated proměnné zvoleného source. (Proměnná musí být nejprve potvrzená přes Apply.)
  3. V detailu komunikace nastavte:
    • Direction — směr komunikace (Read, Write, ReadWrite),
    • Event — událost určující, kdy se komunikuje (např. perioda),
    • Comm params — parametry proměnné pro daný protokol: u Raw CAN CAN ID, offset a pořadí bajtů; u Modbusu tabulka, adresa a směr, např. registerType="holdingRegister";address="100";direction="read";eventRef="poll500ms"; u JSON Signal jméno signálu (name) (úplný přehled parametrů: Protokoly),
    • Multiplier — volitelný násobič protokolu,
    • Log to FileDataLogger — zaškrtněte, má-li se proměnná logovat (viz kapitola Logování dat).

Proměnná a její přiřazení k protokoluProměnná a její přiřazení k protokolu

Přiřazené proměnné poznáte v Solution Exploreru podle modrého odznaku.

Důležité: Proměnná bez přiřazeného zdroje (driver + protokol) nemá odkud brát data a nelze ji navázat na žádný control — přetažení na pracovní plochu se neprovede. Poznáte ji v Solution Exploreru snadno: po najetí myší tooltip ukazuje Source: not found a ikona proměnné nemá modrý odznak. Týká se to i proměnných načtených tlačítkem Import (například ze souboru vytvořeného nástroji QFW SDK) — import založí jen definice. Nápravou je přiřazení k protokolu v Project Configuration podle postupu výše; u XCP navíc vyplňte v Comm params address a addressExtension.

Kopie, export a import

U seznamu proměnných (a stejně tak konverzí, prezentací a událostí) jsou tlačítka Copy, Export a Import:

  • Copy — zduplikuje vybranou položku pod novým jménem,
  • Export — uloží všechny položky sekce do XML souboru (u proměnných jen definice, bez přiřazení k protokolům),
  • Import — načte položky z XML souboru; existující položky se nikdy nepřepisují ani nepřejmenovávají.

Pravidla

  • Proměnnou nelze smazat, dokud je přiřazená k nějakému source — nejprve ji odeberte z Communicated.
  • Z Communicated ji nelze odebrat, dokud je navázaná na nějaký control na pracovní ploše.

Dále

Hodnoty proměnných si zobrazíme — Vytvoření pracovní plochy.