PROFIBUS.DLL pro Control Web

Obsah:


dialogove okno


PROFIBUS.DLL - komunikacni driver pro CW3, verze 3.00

posledni editace: 23.9.1998

(c)1996-1998 ELSACO Kolin, Hradec Kralove

Z duvodu jineho kodovani cestiny v Dosu, Windows a Control Panelu je tento popisovy soubor psan bez hacku a carek, aby byl alespon trochu citelny ve vsech prostredich, ostatne systemovym clovekum by to vubec nemelo vadit.


UPGRADE

verze 2.01, uvolnena asi 7.2.1997 ( TIME_BLOCK - synchronizovane cteni )

  1. Pri definicich jednotlivych bloku ve stanicich lze uvest jako klicove slovo definice bloku TIME_BLOCK. Struktura definice je dale stejna jako pri BLOCK.
  2. Komunikace s blokem TIME_BLOCK bude casove synchronizovana s ctenim jeho kanalu nadrazenou aplikaci. Zpravy tohoto typu jdou do vysilaci fronty pro rizeni, tj. maji prioritu pred "prstynkem". Pokud bude pred zarazenim do fronty zjisteno, ze tam zprava tohoto typu jiz je, nebude nova zarazena.
  3. Pro komunikaci podle "prstynku" plati nadale, ze je provaden ve volnem case, kdy v prioritni vysilaci fronte nic neni. Proto pozor na casovani aplikace, pri casove narocnosti vyrizovani zprav z vysilaci fronty by se mohlo stat, ze "prstynek" nebude vubec provaden. Pak je vhodne pri vytvareni PAR-souboru nedefinovat zadny kanal pro "prstynek", tj. nepouzivat definice BLOCK, BOOLEAN_INPUT ani BOOLEAN_OUTPUT. Sekce BOOLEAN_INPUT a BOOLEAN_OUTPUT lze nahradit v bloku promennou typu BITSET, popripade BITSETWORD.
  4. Z duvodu synchronizace prenosu po jednotlivych blocich je VHODNE uvadet kanaly typu OUTPUT jako samostatne bloky, nejlepe jako TIME_BLOCK. Pak pri nenadefinovani zadne promenne do sekce BLOCK nedojde k aktivaci programove obsluhy "prstynku".
  5. Predelano dialogove okno ovladace do anglickeho jazyka vcetne veskerych zprav do ramecku "Line state":

    jednotliva hlaseni:
    1. start ovladace:
      Dojde k vypsani zprav nastaveni serioveho portu, stavu nacteni skupiny
      [GLOBAL] - "global info OK", a stavu nasteni stanic "Stations loaded".
    2. hlaseni pri prekroceni casu pri vysilani a prijmu:
      Address xxx - timeout on transmit (vysilani)
      Address xxx - timeout on receive (prijem)
      "xxx" obsahuje adresu stanice, se kterou doslo k chybe.
    3. vypis pri stisku tlacitka "INFO":
      Promos / Profibus RS485, (c) 1998 R.Vacek
      Version x.xx (DAPI x.xx)
      COM: cislo rychlost bity parita stop-bit | options
      Station address x - a blocks, b BIn, c BOut
      ...
      Station address x - a blocks, b BIn, c BOut
    4. pocatek preruseni komunikace se stanici z duvodu nekolika chyb za sebou:
      Address xxx - sleep mode

  6. pri instalaci najdete v adresari PAR program PAR2DMF.EXE pro automaticke
    vytvareni DMF-souboru podle definice PAR-souboru.


odstranene chyby
  • obcasne chyby pri zapisu vystupnich kanalu, ktere vznikaly pri kombinovani vstupnich a vystupnich promennych v jednom bloku
  • chyba pri cteni vstupnich kanalu z promennych typu BITSET a BITSETWORD
  • doladen zapis (OUTPUT) do "blokovych" promennych typu BITSET a BITSETWORD.


verze 2.02, vytvorena 8.7.1997
  1. definovan diagnosticky kanal cislo 6, jako BOOLEAN OUTPUT. zapis hodnoty TRUE do tohoto kanalu zpusobi obcerstveni vsech kanalu, definovanych jako OUTPUT. Tzn. zaradi se do prioritni fronty pro rizeni vsechny tyto kanaly s poslednimi stavy.
  2. Tento kanal 6 je do souboru .DMF automaticky zarazen pri jeho vytvoreni pomoci programu PAR2DMF.EXE
  3. Kanalu OUTPUT budou do fronty zarazovany ve stejnem poradi, jako jsou definovany jednotlive stanice v PAR-souboru.


verze 2.03, vytvorena 25.06.1997

verze 2.04, vytvorena 02.09.1997
- kanal 7 boolean output -> true = vymaz vysilaci fronty

verze 2.05, vytvorena 04.09.1997
- ADDRESS_CHANNEL / SHORTCARD BIDIR = pro zmenu kom. adresy promenna pro [STATION], je nepovinna

verze 3.00, vytvorena 12.08.1998
- prvni chodiva betaverze ovladace pro CW / Windows verzi


UVOD

Struktura PAR-souboru jako definice komunikacnich zprav pro PROFIBUS PROMOS

Jednotlive bloky parametru jsou rozdeleny do skupin, hlavicka kazde skupiny zacina jejich nazvem ohranicenym zavorkami [ ] a konci slovem END.

Rozdeleni jednotlivych definic do radku a odsazeni ve sloupcich je nepovinne, ale je vhodne jej pouzivat k udrzeni prehlednosti v souboru.

Cteni kazdeho parametru jako jedno slovo STRING (lze oddelovat libovolnym poctem mezer, tabulatoru a novych radku-CR+LF) a pote rozebrani do promennych, v zavorkach <...> je uveden typ a priklad. Soucasti je moznost zapisu hexa-cisel, za cislem pak bude znak "h" bez mezery, pr. FFh


psani poznamek do PAR-souboru:
poznamku nutno uhranicit slozenymi zavorkami {}. Tyto zavorky je nutno psat take jako samostatna slova, tj. zleva i zprava s oddelovacem:

napr.:

  • spravne je tato poznamka:
    { dobry den }
  • chybne je to:
    {dobry den} nebo
    {dobry den } nebo
    { dobry den}

Pokud je nutno jako parametr promenne uvest retezec (STRING), je mozno uvest klicove slovo NONE, ktere znaci prazdny retezec.

Poznamka: z PAR-souboru pujde pomocnym programkem PAR2DMF.EXE vytvorit soubor .DMF (mapovaci soubor kanalu pro CP)

Pokud budete vytvaret mapu kanalu ovladace rucne, musi mit presnou strukturu podle definovaneho PAR-souboru. Pozor! v mapovacim souboru .DMF musi byt vse uvedeno malymi pismeny.

Pri definici cisla kanalu je mozno uvadet cela cisla v rozsahu 100 - 65532. Ostatni kanaly jsou rozervovany pro diagnostiku a ladeni:

aktualni stav komunikace:
kanal popis
1 (integer) adresa stanice 2 (integer) cislo bloku 3 (longint) offset v bloku 4 (integer) delka bloku (u BLOCK) nebo cislo prenaseneho bitu (BOOLEAN) 5 (real) pocet zprav ve vysilaci fronte vystupnich kanalu COMM_TIME (real) cas od posledni kom.zpravy, 1 kanal pro kazdou stanici, cislo kanalu definovano v sekci [STATION] 6 (boolean out) zapis hodnoty TRUE do tohoto kanalu zpusobi obcerstveni vsech kanalu, definovanych jako OUTPUT. Tzn. zaradi se do prioritni fronty pro rizeni vsechny tyto kanaly s poslednimi stavy. 7 (boolean out) true = vymaz vysilaci fronty !!! 8 (boolean out) true = zakaz komunikace, ovladac vrati hodnoty kanalu ihned a dle poslednich stavu 9 (longint out) Z80 pack time = vstup pro konverzi do kanalu 10 az 18 10 (longint in) Z80 date 11 (longint in) Z80 time 12 (cardinal in) Z80 year 13 (cardinal in) Z80 month 14 (cardinal in) Z80 day 15 (cardinal in) Z80 hour 16 (cardinal in) Z80 minute 17 (cardinal in) Z80 second 18 (string in) Z80 datetime string "DD.MM.RRRR HH:MM" kanaly pro praci s modemem 20 - string out - telef.cislo pro vytoceni 21 - bool out - zmena = init modemu 22 - bool in - true = posledni init byl OK 23 - bool out - zmena = provede spojeni s cislem dle kan. 20 24 - bool in - true = prave se snazi o spojeni 25 - bool in - true = spojeni provedeno - zapne "prstynek" 26 - bool out - zmena = zavesi linku 27 - bool out - hodnota promenne X.ISACTIVE !!! - je/neni modem 28 - real in - aktualni prubeh timeoutu 1.zpravy v bafru
kanaly pro testovani chodu aplikaci bez pripojeni hardware: (soucasna verze 1.00 toto dosud neumi) kanal popis 65533 (longreal) Hodnota, ktera bude zapsana do kanalu (konverze typu je automaticka, u typu BOOLEAN 1=true,0=false) 65534 (longreal) Cislo kanalu, do ktereho bude zapsana 65535 (boolean) Zapis TRUE zpusobi prenos hodonty do kanalu dle nastaveni
Struktura souboru .DMF je popsana v navodu na system Control Panel a dale je v tomto textu nize uveden priklad tohoto souboru.

Na poradi definice jednotlivych skupin ZALEZI z duvodu kontroly definice nekterych promennych podle jinych, jejichz hodnota by mela byt znama, tj. definice by mela byt uvedena drive, proto v souboru uvadejte skupiny v poradi [COM], [GLOBAL] a pote minimalne jedna definice skupiny [STATION].

"Ostre" ukazky parametrickych souboru obsahuje instalacni disketa, tyto ukazky budou pri instalaci nakopirovany do adresaru PAR a DMF Vaseho systemu Control Panel.


UVOD

; PARAMETRICKY SOUBOR PRO DEFINICI CINNOSTI OVLADACE  P R O F I B U S . D L L
-zacatek-souboru-

  ; nastaveni komunikacniho portu
  ; lze nastavit obecne z duvodu kompatibility s jakymkoliv SW
  ; norma na profibus rika toto: PARITY EVEN, BITS 8, STOPS 1
  [COM]                  ; hlavicka skupiny - NUTNO DEFINOVAT
   SYSTEM          ; podle COM.INI
   BAUD      ; dale 2400, 4800, 9600, 19200, 38400, 57600 Bd
   BITS         ; pocet bitu
   PARITY  ; NONE=neni, EVEN=suda, ODD=licha, MARK=1, SPACE=0
   STOPS        ; nebo 2
   OPTIONS      ; odzkouseno: 0=RS232, 32=RS485 (RTS flow control)
                         ;  konstanty z CP_DAPI:
                         ;  (* HandShake modes in SetComParams procedure *)
                         ;  hmCTSHandShake     = 0;     (* HW CTS-RTS handshake *)
                         ;  hmFullDuplex       = 1;     (* for RS-485 *)
                         ;  hmDTRNegativeLogic = 2;
                         ;  hmDTRStableState   = 3;
                         ;  hmXOnXOff          = 4;
                         ;  (* RTS options - must be ORed with HandShake *)
                         ;  hmRTSNormal        = 0;
                         ;  hmSwapRTS_DTR      = [5];
                         ;  hmRTS_ON           = [6];
                         ;  hmRTS_OFF          = [5,6];
                         ;  hmReserve          = 15;
   BUFFER_SIZE  ; delka vyrovnavaciho bafru pro rec/trans
                            ; vhodne uvest minimalne 2 x max.delku zpravy,
                            ; tj. 2 x 256 = 512
  END                       ; konec skupiny


UVOD [GLOBAL] ; hlavicka skupiny - NUTNO DEFINOVAT ADDRESS ; sitova adresa ovladace - MASTER ; uvadi se co nejnizsi TIMEOUT ; max. doba odpovedi na jednu vyzvu ; uvadi se cas ve vterinach SILENCE_WAIT ; msec - pauza mezi relacemi, cas klidu na drate ; z ProfiBusu : minimalne 3 x delka znaku = ; = 11 bitu / rychlost SLEEP_TIME ; Delka sleep-modu ve vterinach. ; Pokud s nekterou stanici nevyjde relace ; SLEEP_COUNT - pokusu za sebou, nebude po dobu ; SLEEP_TIME s touto stanici probihat zadna relace, ; aby tato stanice zbytecne nebrzdila komunikaci ; s jinymi stanicemi. Po uplynuti teto doby ; nasleduje normalni komunikace, tj. pokud komm. ; nebyla obnovena, stanice opet spadle do sleep-modu ; a toto se opakuje tak dlouho, dokud nedojde k ; obnoveni spojeni. ; Pokud spadnou do sleep-modu vsechny stanice, ; bude po dobu jednoho SLEEP_TIME provedeno ; totalni zastaveni komunikace. SLEEP_COUNT ; kolikrat musi nevyjit relace, aby stanice spadla ; do sleep-modu PREFIX ; prefixova zprava pred kazdym vysilanim, pripraveno ; pro obsluhu modemu, stejne jako promenne SUFFIX, ; INIT, CONNECT, CONNECT_END a DISCONNECT. ; V soucasne verzi ovladace nejsou tyto promenne ; nijak vyuzity, tzn. je vhodne do jejich definic ; uvest klicove slovo NONE SUFFIX ; tato zprava bude vyslana po vyslani vyzvy ; znak _ mezera ~ pauza 1 sec behem vysilani # kod 0Dh = CR INIT CONNECT CONNECT_END DISCONNECT REINSTAL_TIMEOUT ; pokud nedostane zadnou zpravu do ; zadaneho casu (v sec), provede inicializaci ; portu - funkce vznikla z duvodu hardwarovych ; vypadku (ztrata obsluhy preruseni) nekterych ; seriovych portu Pee-See. END


UVOD [STATION] ; hlavicka skupiny - NUTNO uvest alespon 1 stanici ADDRESS ; adresa stanice ADDRESS_CHANNEL ; kanal pro zmenu kom.adresy (od verze 2.05) CONNECT ; pripoji se k CONNECT/Global + na konec CONNECT_END/Global ; obsahuje telefonni cislo pro volani modemem ; zatim nevyuzito, zadejte zde slovo NONE IDENT ; identifikacni retezec VERSION_IMP ; verze implementace VERSION_USER ; verze uzivatelskeho SW VERSION_BUS ; typ implementace profibusu ; tyto promenne jsou vycteny pomoci zpravy typu IDENT ; a jsou rozlozeny do zadanych 4 kanalu typu STRING DATETIME_INPUT ; posledni precteny stav RTC ze stanice ; zadava se cislo kanalu pro ROK, automaticky budou obsazeny nasleduji- ; ci kanaly stejneho typu pro MESIC, DEN, DEN v TYDNU, HODINU, MINUTU ; a SEKUNDU v tomto poradi DATETIME_GET ; zapis hodnoty TRUE do kanalu zpusobi vyslani zpravy typu GETTIDA ; prectene hodnoty budou aplikaci vraceny do kanalu DATETIME_INPUT DATETIME_OUTPUT ; co bude zapisovat do RTC stanice, definice stejna jako DATETIME_INPUT ; v souboru DMF s opacnym smerem (out) DATETIME_SET ; zapis hodnoty TRUE do kanalu zpusobi vyslani zpravy typu SETTIDA ; s parametry podle DATETIME_OUTPUT COMM_TIME ; cislo kanalu typu REAL, obsahuje cas v sekundach od posledni vyhodno- ; cenene komunikacni zpravy


UVOD ; definice jednotlivych bloku: ; ; obecna struktura hlavicky: ; TIMER_BLOCK ... ; BLOCK OFFSET LEN ; definice promenne "1" ; definice promenne "2" ; .. ; .. ; definice promenne "N" ; END ; ; obecna definice promenne v bloku: ; [ARRAY ] ; ; popis typu: ; ARRAY ... pri definici tohoto klicoveho slova a jeho ; parametru (delky pole) bude nasledujici promenna ; definovana jaho pole kanalu od po ; . ; ; (Dynamic-C) (PAR-soubor) (DMF-soubor) ; float -> REAL -> shortreal ; long -> LONGINT -> longint ; int -> INTEGER -> integer ; int (?) -> WORD -> cardinal ; char -> BYTE -> shortcard ; bity z char -> BITSET -> 8 x boolean ; bity z int -> BITSETWORD -> 16 x boolean ; null-str -> STRING -> string ; ; kazda stanice muze mit definovano vice sekci BLOCK . ; kazda stanice musi mit definovanu alespon jednu promennou, tj. ; jeden BLOCK nebo jeden BOOLEAN_INPUT nebo jeden BOOLEAN_OUTPUT. ; BLOCK OFFSET LEN REAL INPUT ; 4B -moc az +moc {v .DMF typ ShortReal ! } LONGINT INPUT ; 4B double integer WORD INPUT ; 2B 0 az +65535 INTEGER INPUT ; 2B -32767 az +32767 BYTE INPUT ; 1B 0 az +255 BITSET INPUT ; 1B 8 kanalu za sebou typu Boolean BITSETWORD INPUT ; 2B 16 kanalu za sebou typu Boolean STRING INPUT ; NULL-TERMINATED v PROMOSU !!! ARRAY REAL INPUT ; v pameti zabere LEN[REAL]*LEN[pole] = 4 * max.index ; podobne: ARRAY WORD INPUT ; len = 2 * max.index ARRAY INTEGER INPUT ; len = 2 * max.index ARRAY BYTE INPUT ; len = 1 * max.index ;... ;... to stejne s moznosti OUTPUT ;pr. REAL OUTPUT LONGINT OUTPUT ; 4B double integer WORD OUTPUT ; 2B 0 az +65535 INTEGER OUTPUT ; 2B -32767 az +32767 BYTE OUTPUT ; 1B 0 az +255 STRING OUTPUT .. ARRAY INTEGER OUTPUT .. END BOOLEAN_INPUT ; promenne nacitany pomoci zpravy READB BLOCK OFFSET BIT CHANNEL BLOCK OFFSET BIT CHANNEL .. .. BLOCK OFFSET BIT CHANNEL END BOOLEAN_OUTPUT ; promenne zapisovany pomoci zpravy WRITEB BLOCK OFFSET BIT CHANNEL BLOCK OFFSET BIT CHANNEL .. .. BLOCK OFFSET BIT CHANNEL END BLOCK .... END BLOCK .... END END ; od STATION .. .. [STATION] ......... dalsi stanice END END -konec-souboru-


UVOD

popis cinnosti driveru

Pokud pri instalaci ovladace PROFIBUS dojde k chybe cteni parametrickeho souboru, bude instalace prerusena (pri startu aplikace bude prerusen jeji start) s vypisem prislusne chyby souboru v dialogovem okne.

seznam chybovych hlaseni:
  1. 'Nenalezen souboru parametru'
    Na disku v prislusne ceste neni zadany definicni soubor .PAR. Zkontro- lujte cestu *.PAR = v presmerovacim souboru .RED systemu CP2 nebo v teto ceste vytvorte parametricky soubor pozadovaneho jmena.
  2. 'Chybi definice skupiny'
    Nutno definovat skupinu [COM] a [GLOBAL]. Dale je nutno definovat alespon jednu skupinu [STATION].
  3. 'Neni definovana zadna stanice'
    Chybi definice alespon jedne skupiny [STATION].
  4. 'Chybna definice promenne '
    Nesmyslne zadani hodnoty promenne nebo zadane cislo je mimo rozsah.
  5. 'Chybi END na konci skupiny'
    Pri nacitani se narazilo na hlavicku dalsi skupiny aniz by byla predchozi ukoncena.
  6. '! Chyba alokace pameti !'
    Nedostatek pameti pri instalaci definovanych struktur.
  7. 'Chyba instalace COM portu !'
    Chybne zadani parametru skupiny [COM].
  8. 'expected: [ARRAY ] BYTE|BITSET|BITSETWORD|WORD|LONGINT|INTEGER|REAL|STRING '
    Ocekavana definice promenne bloku podle uvedeneho popisu.
  9. 'expected INPUT or OUTPUT'
    Ocekavano klicove slovo INPUT nebo OUTPUT v definici promenne.
  10. 'expected channel number (word type)'
    Ocekavano cislo kanalu jako cele cislo typu word (0 - 65535).
  11. 'channels 1 to 99 and 65533 to 65535 are reserved'
    Kanaly uvedeneho rozsahu jsou rezervovany pro diagnostiku komunikace a ladeni aplikace.
  12. 'LEN expected in BLOCK-HEADER'
    Ocekavana definice delky bloku v jeho hlavicce.
  13. 'OFFSET expected in BLOCK-HEADER'
    Ocekavana definice pocatku pameti definovaneho bloku v hlavicce.
  14. 'OFFSET in BOOLEAN BLOCK expected'
    Ocekavana definice pametove bunky definovaneho bloku v sekci BOOLEAN.
  15. 'BIT <0-7> in BOOLEAN BLOCK expected'
    Ocekavana definice cisla bitu z definovane bunky bloku.
  16. 'CHANNEL in BOOLEAN BLOCK expected'
    Ocekavana definice cisla kanalu promenne.
  17. 'BLOCK OFFSET BIT <0-7> CHANNEL or END expected'
    Ocekavana definice promenne v bloku BOOLEAN nebo klicove slovo END pro ukonceni tohoto bloku.
  18. 'Prekrocen maximalni pocet stanic'
    V parametrickem souboru je definovano vice skupin [STATION], nez je mozno definovat pro Vasi verzi ovladace PROFIBUS.DLL. Soucasna verze pro distribuci umoznuje definovat maximalne 20 stanic.


poznamky

  1. nastaveni sekce COM podle definice normy na profibus:
    [COM] SYSTEM 2 ; cislo COM-kanalu v PC BAUD 57600 ; komunikacni rychlost, pb_initslave(xx,adr) ... BAUD = xx * 1200 BITS 8 PARITY EVEN STOPS 1 OPTIONS 32 ; smer toku dat je prepinan RTS-signalem BUFFER_SIZE 1024 ; velikost vyr.bufferu END
    v sekci [GLOBAL] jsou tyto promenne pro definici casovani obsluhy COM-portu:
    • TIMEOUT sec ... max. doba odpovedi stanice (do teto doby musi byt prijata cela odpovidaci zprava
    • SILENCE_WAIT msec ... cas mezi relacemi, prodleva pro casove rozliseni jednotlivych relaci, zadava se v milisec., doba od prijmu posledniho bajtu odpovedi a pocatkem vysilani prvniho bajtu dalsiho pozadavku SLEEP_TIME ... viz bod 5.
    • SLEEP_COUNT pocet ... viz bod 5.
    • REINSTAL_TIMEOUT sec ... po zadanou dobu zadna vyhodnocena zprava -> probehne inicializace COM - portu

  2. sekce BLOCK
    • nacitani probiha pomoci zpravy READN
    • max. delka bloku je zatim 246 bajtu (vychazi z max. delky profibusove zpravy)
    • delsi bloky nutno zatim rucne rozepsat na vice bloku s pripoctenim OFFSET
    • sekce s definici pouze vstupnich promennych (INPUT) jsou vyrazeny s automatickeho nacitani dat pomoci prstynku
    • pri zapisu do kanalu OUTPUT je vyslana hodnota pomoci zpravy WRITEN primo na spocteny OFFSET teto promenne (ne cely BLOCK)
    • v jednom bloku lze kombinovat INPUT/OUTPUT
  3. sekce BOOLEAN_INPUT, BOOLEAN_OUTPUT - promenne ze vstupni sekce _INPUT jsou nacitany v prstynku pomoci zpravy READB - promenne z vystupni sekce _OUTPUT jsou zapisovany zpravou WRITEB
  4. zpravy WRITEN a WRITEB maji pred prstynkem (cteni vstupnich dat) prioritu a jsou ukladany do kruhoveho bufferu, po prijmu a vyhodnoceni kladne odpovedi na tyto typy zprav je provedena zprava z bufferu vymazana. Pokud nastane TIMEOUT nebo je prijata jina odpoved nez typu SACK (viz navod na PROFIBUS), je zprava presunuta z hlavy bufferu na jeho konec.
  5. pokud nastane s libovolnou stanici vice poruch komunikace za sebou, nez urcuje promenna SLEEP_COUNT, je po definovany cas SLEEP_TIME pozastavena komunikace s touto komunikaci, aby dalsi poruchy nebrzdily komunikaci jinych stanic (odzkouseno je COUNT=20, TIME=600)
  6. pokud nastane pozadavek na prenos hodnoty kanalu OUTPUT a tento typ zpravy jiz bude nalezen ve vysilacim bufferu, misto vlozeni dalsi zpravy do nej bude preparametrizovana nalezena zprava.
  7. pri zatim rucni definici souboru .DMF je nutno psat vse pouze malymi pismeny (!!!) - pokud bude neco zadane velkymi pismeny -> pri definici kanalu z gr.editoru to projde tvrdym RESETem ! (chyba v CP)


UVOD

UKAZKA DEFINICE PARAMETRICKEHO SOUBORU .PAR

[COM] SYSTEM 2 BAUD 57600 BITS 8 PARITY EVEN STOPS 1 OPTIONS 32 BUFFER_SIZE 1024 END [GLOBAL] ADDRESS 1 TIMEOUT 0.2 SILENCE_WAIT 0.6 SLEEP_TIME 0.0 SLEEP_COUNT 20.0 PREFIX NONE SUFFIX NONE INIT "ATX3" "#" CONNECT "ATDP" "" CONNECT_END "#" "" DISCONNECT "~~+++~~" "ATH0#~~" REINSTAL_TIMEOUT 2.0 END [STATION] ADDRESS 2 CONNECT NONE 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 COMM_TIME 666 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 4 REAL OUTPUT 301 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 -konec-souboru- poznamka: dale uvedeny soubor DMF je vytvoren z ukazky .PAR


UVOD

UKAZKA DEFINICE MAPOVACIHO SOUBORU .DMF: ---------------------------------------- begin 1 - 2 integer in 3 longint in 4 integer in 5 real in 100 shortreal in 101 integer in 102 integer in 103 integer out 104 shortcard out 105 shortcard in 107 - 122 boolean in 150 - 157 boolean in 200 - 206 shortcard in 210 - 217 boolean in 220 - 227 boolean out 230 - 237 boolean in 300 shortreal in 301 shortreal out 302 shortreal in 400 - 407 boolean 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 end. -konec-souboru-


UVOD pripravovano: ------------- 1. sekce BLOCK nebude omezena definici LEN = 246 max. Rozdeleni na vice bloku pri preteceni max. delky zpravy bude provedeno automaticky 2. prstynek bude rozdelen na casovani zvlast nastavitelne pro kazdou stanici: [STATION] AUTO_BLOCK_TIME .. .. END