.PAR - sekce [STATION]


V sekci [STATION] se uvádějí definice parametrů jednotlivých stanic.

Promos RT / RTm / RT40


Od verze 3.07:

Rozšíření čtení/zápisu dat do libovolné oblasti paměti systému Promos-RT/RTm/RT40.

Do sekce [STATION] lze připsat libovolný počet bloků MEMORY_BLOCK pro I/O přístup do paměti CMOS-RAM automatu.

Obecná definice

Ukázka:

   MEMORY_BLOCK
     ADDR $D61A          { pocatek stejny s ADVYP, tj. aktualni stav analog. vstupu }
     CHANNEL 10001       { blok bude prirazen ke kanalum od cisla 10001 }
     CHANNEL_READ 10000  { kanal boolan output, jeho zapsanim se zpusobi vycteni celeho bloku }
     TYPES               { zacatek definic jednotlivych kanalu "za sebou" }
       REAL INPUT        { kanal 10001, reprezentujici AD01 }
       REAL INPUT        { kanal 10002, reprezentujici AD02 }
       REAL INPUT        { kanal 10003, reprezentujici AD03 }
       REAL INPUT        { kanal 10004, reprezentujici AD04 }
       REAL INPUT        { kanal 10005, reprezentujici AD05 }
     TYPES_END
   MEMORY_BLOCK_END

   MEMORY_BLOCK
     ADDR $0301          { pocatek bloku, 1. regulator UT }
     CHANNEL 20001       { blok bude prirazen ke kanalum od cisla 20001 }
     CHANNEL_READ 20000  { kanal boolan output, jeho zapsanim se zpusobi vycteni celeho bloku }
     TYPES               { zacatek definic jednotlivych kanalu "za sebou" }
       REAL BIDIR        { kanal 20001, reprezentujici POSUN }
     TYPES_END
   MEMORY_BLOCK_END

   MEMORY_BLOCK
     ADDR $0302          { pocatek bloku, 1. regulator UT }
     CHANNEL 20003       { blok bude prirazen ke kanalum od cisla 20003 }
     CHANNEL_READ 20002  { kanal boolan output, jeho zapsanim se zpusobi vycteni celeho bloku }
     TYPES               { zacatek definic jednotlivych kanalu "za sebou" }
       REAL BIDIR        { kanal 20003, reprezentujici SKLON }
     TYPES_END
   MEMORY_BLOCK_END

   MEMORY_BLOCK
     ADDR $D001          { pocatek bloku, chod regulatoru TUV a UT }
     CHANNEL 30001       { blok bude prirazen ke kanalum od cisla 30001 }
     CHANNEL_READ 30000  { kanal boolan output, jeho zapsanim se zpusobi vycteni celeho bloku }
     TYPES               { zacatek definic jednotlivych kanalu "za sebou" }
       BYTE BIDIR        { kanal 30001, reprezentujici chod TUV, zapis 01 -> bezi, 00 -> nebezi }
       BYTE BIDIR        { kanal 30002, reprezentujici chod UT , zapis 01 -> bezi, 00 -> nebezi }
     TYPES_END
   MEMORY_BLOCK_END

Monitorování vyčtených hodnot a zápis řídících konstant do RT

Od verze 3.05: Vzhledem k nedostatku počtu kanálů pro jednotlivé stanice byla změněno automatické číslování kanálů pro jednotlivé stanice na "ručně" definované a plně ovlivnitelné programátorem.

Programátor tak má možnost definovat, kde je který kanál umístěn (definovat pro jednotlivé čtené a zapisované hodnoty čísla kanálů, a to i včetně diagnostických kanálů, ovlivňujících průběh komunikace).

  • ORIGINAL_CHANNELS

Pokud do sekce uvedete klíčové slovo ORIGINAL_CHANNELS, tak bude stanice používat původní čísla kanálů, jako u ovladače starší verze. Takže pokud chcete rozšířit nějakou stávající aplikaci CW, postačí do .PAR souboru u všech stanic uvést toto klíčové slovo a aplikace se s novým ovladačem bude chovat stejně jako se starší verzí. POZOR ! Pokud vyměníte ovladač za verzi 3.05 a vyšší a ponecháte původní .PAR/DMF soubor i aplikaci, tak se z/do aplikace do/z ovladače nedostanou žádné hodnoty !

Při "ruční" definici přístupových kanálů pro stanici je nutno definovat v sekci [STATION] všechny typy a přístupové kanály, které hodláte používat. Jejich seznam je uveden níže. Způsob zápisu do .PAR je jednoduchý: < klíčové slovo > < číslo kanálu >, návazně na to je nutno definovat v .DMF souboru příslušný typ a směr kanálu. V tabulce (viz níže) jsou ve sloupci default uvedena čísla kanálů, která budou k jednotlivým typů přiřazena, pokud v dané sekci [STATION] bude nalezeno klíčové slovo ORIGINAL_CHANNELS. Pozor ! Protože se jedná o stanice, není toto "defaultní" číslo konečné, ale jedná se o posun (offset) od 500-ti násobku pořadí stanice.

příklad: stanice v .PAR souboru, definovaná jako třetí v pořadí s definicí ORIGINAL_CHANNELS, bude používat kanály 1001-1096 pro binární vstupy, 1097-1192 pro binární výstupy (povely), 1193-1256 pro analogové vstupy, atd.

Tabulka definic:

klíčové slovo
směr a typ
(pro .DMF soubor)
default č. kanálu
popis
CHANNEL_BI
input boolean
1
binární vstupy, obsadí se následujících 96 kanálů
CHANNEL_BO
output boolean
97
binární výstupy, obsadí se následujících 96 kanálů
CHANNEL_AI
input real
193
analogové vstupy, obsadí se následujících 64 kanálů
CHANNEL_CT
input real
257
čítačové vstupy, obsadí se následujících 48 kanálů
CHANNEL_MO
bidir real
305
výstupy memory_out, obsadí se následujících 100 kanálů
CHANNEL_MI
input real
405
vstupy memory_in, obsadí se následujících 45 kanálů
ErrorNoAnswer
bidir real
450
počítadlo zpráv bez odpovědi *)
MsgCounter
bidir real
481
počítadlo požadavků na komunikaci, od 4.01i *)
ErrorInMess
input real
451
počítadlo zpráv příjatých s chybou
SilenceTime
input real
452
čas v sekundách bez komunikace
SleepTime
input real
453
zbývající čas "uspání" stanice
ErrCount
input real
454
počet aktuálních chyb, při překročení SLEEP_COUNT v sekci GLOBAL začne "SLEEP-mód" po dobu SLEEP_TIME
Video
input string
456
řádky displeje, obsadí se následující 4 kanály
out_read_AIvardis
output boolean
460
způsobí vyčtení AI z Vardisu a přepočet do AI dle ANALOG_LIMITS
out_read_CT
output boolean
461
způsobí vyčtení CT
out_write_BO
output boolean
462
způsobí zápis povelů
out_write_MO
output boolean
463
způsobí zápis MO
in_now_comm
input boolean
464
true=právě komunikuje
in_last_com_err
input boolean
465
true=chyba při poslední komunikaci
bi_new_BI
bidir boolean
466
vyčtení/nulování nových BI
bi_new_AI
bidir boolean
467
vyčtení/nulování nových AI
bi_new_CT
bidir boolean
468
vyčtení/nulování nových CT
bi_new_MI
bidir boolean
469
vyčtení/nulování nových MI
bi_new_err_control
bidir boolean
470
vyčtení/nulování chyby řízení Vardisu
out_write_restart
output boolean
471
zápis restartu pro Vardis
out_read_BI
output boolean
472
způsobí vyčtení BI
out_read_KI
output boolean
473
způsobí vyčtení KI, Diregt
out_write_KO
output boolean
474
způsobí zápis KO, Diregt
out_read_AI
output boolean
475
způsobí vyčtení AI (3bf hodnot)
out_connect_modem
output boolean
476
naváže spojení přes modem
in_connecting_modem
input boolean
477
právě navazuje spojení
in_connected_modem
input boolean
478
spojení přes modem navázáno
in_active_message
bidir boolean
479
vyčtení/nulování příznaku aktivního hlášení
out_write_all_BO_MO
output boolean
480
způsobí opětný zápis všech BO a MO
CallCode
bidir longcard
---
Vyčtením se zjistí aktuální stav proměnné CallCode z objektu MODEM systému PL2. Hodnotu lze dále zpracovat systémem CW, např. rozebráním na jednotlivé bity. Zápisem hodnoty do kanálu lze poslední stav CallCode v ovladači nastavit. Hodnota CallCode se změní přenosem aktivního hlášení ze stanice, pokud se kanál in_active_message (implicitně kanál č. 479 pro 1. stanici) změní do log. 1 (true).

*) Od verze 4.01i: Pro každou stanici (v sekci [STATION]) přibyla položka "MsgCounter", defaultně nastavena (při ORIGINAL_CHANNELS) jako offset-kanál č. 481 typu "real bidirectional". Obsahuje počet všech požadavků na komunikaci s danou stanicí. Stejně tak původní "ErrorNoAnswer" je také "real bidirectional", z důvodu možnosti zapsat zpět do ovladače jejich hodnoty, např. přístrojem "backup" pro zálohování. Poměrem "ErrorNoAnswer" a "MsgCounter" lze monitorovat úspěšnost komunikace.

U ovladače DWPL2TCP se spojení se stanicemi ovládá stejně jako u CWDRTMOD, tedy najednou lze spojit pouze jednu stanici, spojení se ovládá kanály definovanými klíčovými slovy out_connect_modem, in_connecting_modem a in_connected_modem.