.PAR - sekce [STATION]


V sekci [STATION] se uvádějí definice parametrů jednotlivých stanic.
 Komunikační parametry     Definice kanálů systémových proměnných automatu     Definice veřejných datových bloků automatu


Ukázka sekce [STATION] v PAR souboru

[STATION]

  ADDRESS 2
  CONNECT NONE
  COMM_TIME 666

  IDENT 1001
  VERSION_IMP 1002
  VERSION_USER 1003
  VERSION_BUS 1004

  CONTROL_WORD 1500
  SET_CONTROL_WORD 1501
  STATUS_WORD 1502
  GET_STATUS_WORD 1503

  DATETIME_INPUT 1005
  DATETIME_OUTPUT 1012
  DATETIME_SET 1019
  DATETIME_GET 1020

  BLOCK 1 OFFSET 20 LEN 12
    REAL INPUT 100
    REAL INPUT 300
    REAL INPUT 302
  END

  BLOCK 1 OFFSET 24 LEN 9
    REAL OUTPUT 301
    CARDINAL OUTPUT 50000
    SHORTINT OUTPUT 50001
  END

  BLOCK 0 OFFSET 0 LEN 2
    INTEGER INPUT 101
  END

  BLOCK 2 OFFSET 2 LEN 2
    BITSETWORD INPUT 107
  END

  BLOCK 0 OFFSET 200 LEN 2
    INTEGER INPUT 102
  END

  BLOCK 2 OFFSET 2 LEN 2
    INTEGER OUTPUT 103
  END

  BLOCK 3 OFFSET 0 LEN 3
    BYTE OUTPUT 104
    BYTE INPUT 105
    BITSET INPUT 150
  END

  BLOCK 3 OFFSET 11 LEN 7
    ARRAY 7 BYTE INPUT 200
  END

  BLOCK 3 OFFSET 50 LEN 1
    BITSET INPUT 230
  END

  BOOLEAN_INPUT
    BLOCK 3 OFFSET 50 BIT 0 CHANNEL 210
    BLOCK 3 OFFSET 50 BIT 1 CHANNEL 211
    BLOCK 3 OFFSET 50 BIT 2 CHANNEL 212
    BLOCK 3 OFFSET 50 BIT 3 CHANNEL 213
    BLOCK 3 OFFSET 50 BIT 4 CHANNEL 214
    BLOCK 3 OFFSET 50 BIT 5 CHANNEL 215
    BLOCK 3 OFFSET 50 BIT 6 CHANNEL 216
    BLOCK 3 OFFSET 50 BIT 7 CHANNEL 217
  END

  BOOLEAN_OUTPUT
    BLOCK 3 OFFSET 50 BIT 0 CHANNEL 220
    BLOCK 3 OFFSET 50 BIT 1 CHANNEL 221
    BLOCK 3 OFFSET 50 BIT 2 CHANNEL 222
    BLOCK 3 OFFSET 50 BIT 3 CHANNEL 223
    BLOCK 3 OFFSET 50 BIT 4 CHANNEL 224
    BLOCK 3 OFFSET 50 BIT 5 CHANNEL 225
    BLOCK 3 OFFSET 50 BIT 6 CHANNEL 226
    BLOCK 3 OFFSET 50 BIT 7 CHANNEL 227
    BLOCK 3 OFFSET 10 BIT 0 CHANNEL 2500
  END
END

... a odpovídajícího DMF souboru
; poznámka: všechny číselné proměnné,
;           definované ve veřejných
;           datových blocích, jsou
;           směrem k CW typ "real".

begin
 1 - 2 integer in
 3 longint in
 4 integer in
 5 real in
 100 real in
 101 real in
 102 real in
 103 real out
 104 real out
 105 real in
 107 - 122 boolean in
 150 - 157 boolean in
 200 - 206 real in
 210 - 217 boolean in
 220 - 227 boolean out
 230 - 237 boolean in
 300 real in
 301 real out
 302 real in
 666 real in
 1005 - 1011 shortcard in
 1012 - 1018 shortcard out
 1019 boolean out
 1020 boolean out
 1500 cardinal out
 1501 boolean out
 1502 cardinal in
 1503 boolean out
 2500 boolean out
 50000 real bidirectional
 50001 real bidirectional
end.

  • [STATION]
    počátek skupiny pro definici jedné stanice
  • END
    Konec skupiny (Uvádí se na konci definice sekce STATION. Zde uvedeno pro přehlednost na začátku)
 Komunikační parametry:
  • ADDRESS < bajt >
    její komunikační adresa
  • ADDRESS_CHANNEL < číslo_kanálu >
    kanál typu shortcard bidirectional pro změnu komunikační adresy (od verze 2.05)
  • CONNECT < řetězec >
    Připojí se ke CONNECT/Global + na konec CONNECT_END/Global. Obsahuje telefonní číslo pro navázání spojení přes modem.
  • COMM_TIME < číslo_kanálu >
    Číslo kanálu typu real input, obsahuje čas v sekundách od poslední přijaté komunikační zprávy.
 Definice kanálů systémových proměnných automatu:
  • IDENT < číslo_kanálu >
    kanál typu string input pro identifikační řetězec
  • VERSION_IMP < číslo_kanálu >
    kanál typu string input pro verzi implementace
  • VERSION_USER < číslo_kanálu >
    kanál typu string input pro verzi uživatelského SW
  • VERSION_BUS < číslo_kanálu >
    kanál typu string input pro verzi protokolu

  • DATETIME_INPUT < číslo_kanálu >
    7 x kanál typu shortcard input. Vyčtené datum a čas stanice. Jednotlivé kanály jsou v tomto pořadí: rok, měsíc, den, den v týdnu, hodina, minuta a sekunda.
  • DATETIME_GET < číslo_kanálu >
    kanál typu boolean output. Zápis hodnoty TRUE způsobí vyslání zprávy typu GETTIDA. Vyčtené hodnoty lze zjistit pomocí DATETIME_INPUT.
  • DATETIME_OUTPUT < číslo_kanálu >
    7 x kanál typu shortcard output. Zapisované datum a čas stanice. Jednotlivé kanály jsou v tomto pořadí: rok, měsíc, den, den v týdnu, hodina, minuta a sekunda.
  • DATETIME_SET < číslo_kanálu >
    kanál typu boolean output. Zápis hodnoty TRUE způsobí vyslání zprávy typu SETTIDA s parametry podle DATETIME_OUTPUT.

  • CONTROL_WORD < číslo_kanálu >
    kanál typu cardinal bidirectional. Zapisované "řídící slovo automatu" - CONTROL_WORD.
  • SET_CONTROL_WORD < číslo_kanálu >
    kanál typu boolean output. Zápis hodnoty TRUE způsobí vyslání zprávy typu SETCW s parametry podle položky CONTROL_WORD.
  • STATUS_WORD < číslo_kanálu >
    kanál typu cardinal input. Vyčtené "stavové slovo automatu" - STATUS_WORD.
  • GET_STATUS_WORD < číslo_kanálu >
    kanál typu boolean output. Zápis hodnoty TRUE způsobí vyslání zprávy typu GETSW. Vyčtený stav lze zjistit položkou STATUS_WORD.

 Definice veřejných datových bloků automatu:

POZOR ! Každý blok může být dlouhý max. 246 bajtů (tj. max velikost dat jednoho komunikačního paketu). Pokud chcete definovat větší datové pole, musíte jej rozepsat do více bloků s přičítáním hodnoty OFFSET.

1. Bloky čtené v celku funkcí READN, zapisované po jednotlivých proměnných funkcí WRITEN, popř. WRITEB (u proměnných bitset a bitsetword)

Obecná definice jednoho packetu datového bloku:


 TIMER_BLOCK | BLOCK < num > OFFSET < addr > LEN < len >
   [ WRITE_CHANNEL < číslo-kanálu > ]
   definice promenne "1"
   definice promenne "2"
   ..
   ..
   definice promenne "N"
 END

  • TIMER_BLOCK
    Označení znamená, že blok bude načítán z automatu vždy s každou událostí aplikace CW, která vyslala do ovladače požadavek na zjištění nové hodnoty kanálu, jenž odpovídá definici proměnné ve veřejném datovém bloku.
  • BLOCK
    Blok (resp. všechny takto definované bloky spolu s případnou definicí BOOLEAN_INPUT - viz dále) bude automaticky načítán vždy, když ovladač nedostává žádné požadavky od aplikace.
  • < num >
    Číslo veřejného datového bloku
  • OFFSET < addr >
    Adresa počátku definice proměnných v bloku
  • LEN < len >
    Délka datového bloku (součet velikostí všech proměnných právě definovaného bloku, nebo jeho části, maximálně však 246 bajtů)
  • WRITE_CHANNEL < číslo-kanálu >
    Kanál typu BOOLEAN OUTPUT. Jeho změnou (zápisem libovolné hodnoty) se způsobí zápis celého bloku najednou. Pozor! Tím, že uvedete do bloku tuto definici, ztrácíte možnost zapisovat do bloku po jednotlivých proměnných ! Změny hodnot proměnných se uchovávají v paměti ovladače a zápis do automatu lze provést pouze najednou.

Obecná definice proměnné v bloku:


 [ ARRAY < len > ] < typ > < směr > < číslo_kanálu >

  • ARRAY
    Při definici tohoto klíčového slova a jeho parametru - délky pole < len > - bude definováno pole proměnných stejného typu a směru s čísly kanálů od < číslo_kanálu > do < číslo_kanálu > + < len > - 1

  • < typ >
    ... typ proměnné - viz sloupec PAR v níže uvedené tabulce
    CPARDMFpočet bajtů proměnné
    floatREALreal4
    longLONGINTreal4
    dwordCARDINALreal4
    intINTEGERreal2
    intWORDreal2
    charBYTEreal1
    smallintSHORTINTreal1
    bity z charBITSET8 x boolean1
    bity z intBITSETWORD16 x boolean2
    null-strSTRING < len >stringdefinuje se.
    délka = < len >

  • < směr >
    INPUT nebo OUTPUT. Pokud chcete proměnnou v bloku číst i zapisovat, uveďte zde klíčové slovo OUTPUT a jeho definici v DMF-souboru jako bidirectional.

  • < číslo_kanálu >
    Číslo kanálu definované proměnné. Pro použití v CW aplikaci nutno zadat do DMF odpovídající číslo kanálu, jeho typ a směr.


2. jednotlivé proměnné typu BOOLEAN, čtené po bitech funkcí READB, zapisované WRITEB

 BOOLEAN_INPUT
  { promenne nacitany pomoci zpravy READB }
  BLOCK < num > OFFSET < addr > BIT < 0-7 > CHANNEL < chan >
  BLOCK < num > OFFSET < addr > BIT < 0-7 > CHANNEL < chan >
  { .. }
  { .. }
  BLOCK < num > OFFSET < addr > BIT < 0-7 > CHANNEL < chan >
 END


 BOOLEAN_OUTPUT
  { promenne zapisovany pomoci zpravy WRITEB }
  BLOCK < num > OFFSET < addr > BIT < 0-7 > CHANNEL < chan >
  BLOCK < num > OFFSET < addr > BIT < 0-7 > CHANNEL < chan >
  { .. }
  { .. }
  BLOCK < num > OFFSET < addr > BIT < 0-7 > CHANNEL < chan >
 END

Nezapoměňte příslušné boolean input/output kanály dle bodu 2. přidat do DMF !


Poznámky k definicím bloků / proměnných

  • Každá stanice může mít definováno více sekcí BLOCK, sekce BOOLEAN_INPUT a BOOLEAN_OUTPUT může být u každé stanice definována jen jednou.
  • Každá stanice musí mít definovánu alespoň jednu proměnnou v jedné sekci BLOCK nebo jeden BOOLEAN_INPUT nebo jeden BOOLEAN_OUTPUT.