PESdde KOMUNIKAÈNÍ DDE SERVER PRO AUTOMATY MICROPEL VERZE 2.3 POPIS ROZHRANÍ A OVLÁDÁNÍ 03.2002
1.
Co je nového ve verzi 2.3
Proti verzi 2.1 jsou v této verzi dvì významná vylepení: 1. Server nyní stále jistou malou èástí svého èasu monitoruje vechny síové adresy a aktualizuje si tabulku aktivních pøipojených stanic. Je-li tedy pøipojena nová stanice, DDE server ji bìhem nìkolika sekund (cca 4x "duty-period") vezme na vìdomí. 2. PESdde je od této verze uzpùsoben i pro bìh pod systémem Microsoft Windows2000 (s instalovanou podporou WIN2K - viz dále).
2.
O programu
PESdde je komunikaèní program, urèený pro provoz pod systémem Microsoft Windows® 95/98/ME/2000, který umoòuje aplikacím v systému Windows (Excel, Control panel atd.) komunikovat se sítí automatù. Základem komunikace mezi aplikací v systému Windows a DDE serverem je standardní komunikaèní rozhraní systému Windows, rozhraní DDE. Komunikace mezi serverem a sítí automatù probíhá zcela samostatnì pøes sériový komunikaèní port COM. Jako fyzické rozhraní mezi COM portem a sítí automatù se pøedpokládá pøevodník rozhraní RS232/RS485 - PES-CA1 (nebo jiný vyhovující pøevodník tìchto rozhraní). Program PESdde.exe lze spustit z pøíkazového øádku, nebo jej nainstalovat napø. jako zástupce na plochu. Lze jej samozøejmì zaøadit i do sloky "Po sputìní" - pro aplikace, automaticky spoutìné po startu poèítaèe (viz kap. Tipy). Celý komplet DDE serveru zahrnuje soubory: PESdde.exe - vlastní program DDEini.cfg - konfiguraèní soubor Ver_En.dll - dynamická knihovna pro anglickou verzi Ver_Cz.dll - dynamická knihovna pro èeskou verzi UPOZORNÌNÍ - V systémovém adresáøi Windows musí být pøítomna dynamická knihovna DDEML.DLL (mìla by být standardnì souèástí Windows).
1
PESdde
DDE server pro Windows
03.2002, 7 stran
1
3.
Provoz pod OS Microsoft Windows 2000
Nejprve je tøeba nainstalovat podporu WIN2K pro bìh aplikací pod Windows2000 (instaluje-li se software z distribuèního CD, je automaticky pøekopírován i balíèek WIN2K, jinak lze balíèek nalézt na CD v adresáøi DATACZ). Pøed prvním sputìním DDE serveru je jetì tøeba spustit instalaèní program CPesInst.exe (viz dokumentace k WIN2K na tomto CD). Tento úkon staèí provést jen jednou, DDE server u pak na daném poèítaèi bude vdy pod Windows 2000 pracovat.
4.
Dialogové okno programu
Po sputìní aplikace se objeví hlavní okno obsahující nìkolik informaèních polí. Pole Hláení o prùbìhu podává informaci o momentální aktivitì programu spolu s èasem, ve kterém událost nastala (toto pole má kapacitu 100 øádkù). Pole Zapojené automaty udává seznam adres automatù, které jsou momentálnì k dispozici. Tento seznam se aktualizuje po stisku tlaèítka Spustit. Tato operace dále také inicializuje komunikaèní port a dá systému Windows na vìdomí, e je k dispozici aplikace slouící jako DDE server (tlaèítku Spustit odpovídá uvedení parametru /s na pøíkazové øádce pøi sputìní programu). Komunikaèní port musí být pøedtím správnì nastaven v odpovídajícím poli. Dále je také tøeba nastavit poloku Podíl PC na èase automatù. Protoe automaty, zvlá jsou-li v síti, potøebují ponechat prostor pro vlastní operace, komunikace s PC probíhá v urèitých intervalech. Doba intervalu je standardnì nastavena na 2000 ms a lze ji zmìnit v konfiguraèním souboru v poloce "duty-period" (tento èas nelze brát naprosto striktnì, jde o pøiblinou hodnotu). Z tohoto intervalu si PC "ukrojí" pro svoje potøeby podíl, jeho procentuelní velikost je uvedena právì v poloce "Zatíení sítì". Mùe být v intervalu 5-100%. Pøenosová rychlost se nastaví automaticky na základì informací získaných z automatù. Tlaèítko Zastavit ukonèí vechna trvalá propojení (viz níe), DDE ale zùstane inicializováno. Je tøeba ho také pouít pøed znovupouitím tlaèítka Spustit (napø. pøi zmìnì nastavení zmínìného podílu PC na èase automatù). Tlaèítko Konec zastaví probíhající DDE operace, uloí nastavení do konfiguraèního souboru a aplikaci ukonèí.
5.
Zpùsob komunikace
PESdde pøi komunikaci vyuívá klasický komunikaèní standard DDE, jeho podrobný popis je moné nalézt v odpovídajících manuálech (napø. v helpu Microsoft Developer Studia 97, prostøedí C++). Na tomto místì se jím proto nebudeme zabývat a uvedeme pouze specifické informace pro tuto aplikaci. PESdde vyuívá vyí verzi komunikace zaloenou na spolupráci se standardní knihovnou DDEML.DLL. V pøípadì komplikací se ujistìte, e knihovna je k dispozici v systémovém adresáøi Windows.
2
PESdde
DDE server pro Windows
03.2002, 7 stran
2
V ádosti o DDE propojení je tøeba specifikovat tøi hodnoty: název sluby, název tématu a název poloky. V naem pøípadì je tøeba jako název sluby zadat pesdde a jako název tématu var. Syntaxe poloky je specifikována v kap. Pøíkazy. Zpùsob zadání tìchto hodnot pak u závisí na konkrétní aplikaci. Pøi komunikaci lze vyuít buï DDE slubu REQUEST pro jednorázové ètení, slubu POKE pro jednorázový zápis, nebo slubu ADVISE pro ustanovení zasílání urèitého okruhu dat v pravidelných intervalech.
Adresy promìnných Vude, kde je vyadována adresa poloky (bitu nebo wordu), se udává vdy tzv. absolutní adresa (viz dokument " Adresy promìnných v PLC"). Adresy poloek na zásobníku (STACK) se udávají tak, jak je adresujeme napø. registrem POINTER v automatu.
Pøíklad Ukázka zadání pøíkazu v Microsoft Excel, který bude v dané buòce obnovovat aktualizované hodnoty dvaceti bitù vyètených z automatu èíslo 30 poèínaje bitem na adrese 66 (bity M2..M21) : =pesdde|var!'t[1000]b[30][66][20]' = .......... rovnítko (uvozuje volání pøíkazu DDE) pesdde .......... název sluby .......... .......... .......... ..........
var ! 'xxxx'
znak pro oddìlení názvu sluby a tématu název tématu ukonèení specifikace sluby a tématu název poloky (MS Excel ji vyaduje v apostrofech)
Uvedený zápis pøíkazu v buòce je specifický pro MS Excel a mùe být v kadé aplikaci øeen jinak. Syntaxe jednotlivých názvù poloek je popsána v kap. Pøíkazy.
6.
Pøíkazy ádost o jednorázové ètení
"r"
Pøi ádosti o ètení je tøeba název poloky specifikovat ve formátu: rX[Automat][Poèátek_bloku][Poèet_poloek] pøièem místo X se uvádí znak : b BIT - ète se bit (promìnné X, Y, M, B) w WORD - ète se word (promìnné I, O, D, W) s STACK - ète se word ze zásobníku ádost slouí k vyètení jedné poloky nebo souvislého bloku poloek. Je-li uveden pouze Poèátek_bloku, ète se jen jedna poloka.
3
PESdde
DDE server pro Windows
03.2002, 7 stran
3
Automat adresa automatu v síti (0..30) Poèátek_bloku adresa první poloky (bit 0..318, word 0..255) Poèet_poloek poèet poloek (0..255) DDE server vrátí textový øetìzec ve formátu ##èíslo#èíslo# ...#èíslo##. Pokud jde o jedinou poloku, øetìzec nebude obsahovat znaky #, ale jen èíslo.
ádost o jednorázový zápis
"s"
ádost o zápis má následující formát: sX[Automat][Poèátek_bloku]##èíslo#èíslo# ...#èíslo## pøièem místo X se uvádí znak : b BIT - zapisuje se bit (promìnné X, Y, M, B) w WORD - zapisuje se word (promìnné I, O, D, W) s STACK - zapisuje se word do zásobníku ádost slouí k zápisu jedné poloky nebo souvislého bloku poloek. Je-li uveden pouze Poèátek_bloku, zapíe jen jednu poloku, èíslo se pak neuvozuje znaky #. Automat adresa automatu v síti (0..30) Poèátek_bloku adresa první poloky (bit 0..318, word 0..255) Byl-li zápis úspìný, DDE server vrátí øetìzec "OK".
ádost o trvalé propojení
"t"
Realizuje trvalé vyèítání poloek v zadaném intervalu. Od okamiku zadání ádosti jsou pak adateli periodicky zasílána data. V ádosti o trvalé propojení je tøeba název poloky specifikovat ve formátu: t[Perioda]X[Automat][Poèátek_bloku][Poèet_poloek]X[Automat][Poèátek_bloku]... kde místo X se uvádí znak: b BIT - ète se bit (promìnné X, Y, M, B) w WORD - ète se word (promìnné I, O, D, W) s STACK - ète se word ze zásobníku Perioda v milisekundách uvádí interval výètù. Jak je vidìt, je mono vyèítat najednou rùzná data. Poloka s názvem t[2000]b[30][65][10]w[30][100][10] napøíklad ustanoví vyèítání 10 bitù a 10 wordù v dvouvteøinovém intervalu. Automat adresa automatu v síti (0..30) Poèátek_bloku adresa první poloky (bit 0..318, word 0..255) Poèet_poloek poèet poloek (0..255) POZOR! Název poloky mùe obsahovat maximálnì 255 znakù.
4
PESdde
DDE server pro Windows
03.2002, 7 stran
4
Je-li syntaxe v poøádku, vrací server øetìzec v následujícím formátu: ##èíslo#èíslo# ... #èíslo##èíslo#èíslo# ...#èíslo## kde èíslo je hodnota dotazované promìnné, jednotlivé poloky jsou oddìleny znakem # a dvojice ## znaèí vdy celistvý blok vztahující se k odpovídajícímu výètu. Má-li ádost tvar: t[Perioda]X[Automat][Poèátek_bloku] bude vyètena jediná poloka, která nebude uvozena znaky # (opìt vhodné tøeba pro velmi jednoduchou aplikaci vyèítání poloek do buòky tabulky MS-Excel, nebo jakéhokoliv jiného produktu podporujícího výmìnu dat pøes DDE). Poznámka Nestaèí-li server pøi více ádostech o trvalé propojení (sluba ADVISE) data pravidelnì vyèítat, jsou jednotlivé poadavky øazeny do fronty èítající 100 prvkù a postupnì odbavovány. Jednorázové ètení nebo zápis (sluba REQUEST a POKE) je odbaveno okamitì.
Tolerance Funkce vyhodnocování tolerance doby platnosti dat slouí k optimalizaci pøístupù na komunikaèní linku. Mùe se toti stát, e více aplikací bude od DDE serveru poadovat stejná data, nebo jedna aplikace generuje poadavky na data velmi èasto a pøitom skuteèné nároky na "èerstvost" tìchto dat nemusí být ve skuteènosti vysoké. V tomto pøípadì DDE server (pokud má data naètena do pamìti a jejich nastavená platnost jetì nevyprela) poskytne data pøímo z pamìti a nebude je vyèítat po sériové lince. Tolerance je hodnota v milisekundách a udává dobu od posledního výètu, bìhem ní jsou vyètená data stále jetì platná . Po uplynutí této doby provádí server pøi odpovídajícím poadavku nový výèet z pamìti automatù. Pøedpokládejme napøíklad, e parametr tolerance je nastaven na hodnotu 2000 a byla zadána ádost o trvalé propojení t[1000]w[30][65][10] (ve vteøinových intervalech se z automatu 30 vyèítá 10 wordù poèínaje od adresy 65). Je-li nyní provedeno jednorázové ètení rw[30][70][2] (výèet 2 wordù poèínaje od adresy 70), nebudou se tato data znovu vyèítat z automatu, ale pouijí se naposledy vyètené hodnoty. Tato situace nastane proto, e pøi vteøinových výètech a dvouvteøinovém tolerovaném "stáøí" vyètených dat, jsou pøi jednorázovém poadavku o tatá data hodnoty vdy dostateènì èerstvé, ne aby je bylo nutno znovu vyèítat. Je-li hodnota tolerance nastavena na 0, data jsou vyèítána vdy znovu pøi kadém poadavku. Základní hodnota tolerance je nastavena globálnì v konfiguraèním souboru DDEini (viz dále), nicménì kadá aplikace si mùe zvolit i svoji vlastní hodnotu, která je zapomenuta v okamiku ukonèení DDE propojení. ádost o nastavení nové hodnoty má následující formát: tol[Tolerance]
5
PESdde
DDE server pro Windows
03.2002, 7 stran
5
Parametr Tolerance udává v milisekundách poadovaný èas. V MS-Excel by potom napøíklad pøíkaz =pesdde|var!'tol[3000]' zapsaný do libovolné buòky provedl nastavení tolerance pro DDE propojení s Microsoft Excelem na 3 vteøiny. Po zavøení seitù Excelu, jejich buòky obsahovaly DDE pøíkazy smìrované na server, a DDE pøíkazu zadaném v novì otevøeném seitu, bude znovu platit globální hodnota tolerance zadaná v konfiguraèním souboru. Poznámka: Program Microsoft Excel po zadání DDE pøíkazu zkusí zaslat daný øetìzec nejprve jako ádost o trvalé propojení (sluba ADVISE) a pak jako ádost o jednorázové ètení (sluba REQUEST). To je dùvod, proè se pøi komunikaci s Excelem vdy zobrazí v poli Hláení o prùbìhu informace o chybné syntaxi, protoe syntaxe jednorázových a trvalých pøíkazù se lií (viz výe). Komunikace DDE se pøesto ustanoví správnì, protoe Excel zkouí rùzné druhy spojení a se "trefí".
7.
Konfiguraèní soubor
Konfiguraèní soubor je textový s názvem DDEini.cfg a lze ho editovat napø. programem WordPad, nebo editory programù NortonCommander, WinCommander atd. atd. Obsahuje 5 poloek, z nich první dvì lze nastavit pøímo v dialogovém oknì. port
èíslo pouívaného sériového portu (uvádí se hodnota 1 a 4)
peak-load
podíl PC na èase automatù (uvádí se hodnota v procentech)
duty-period délka èasového intervalu, z nìho se odpoèítává podíl PC na èase automatù (v milisekundách) tolerance
základní doba, po kterou se povaují vyètená data za aktuální
version
urèuje jazykovou mutaci (hodnota Cz èeská a En anglická verze)
8.
Chování programu v systému Windows
Program PESdde.exe lze spustit z pøíkazového øádku, nebo jej nainstalovat napø. jako zástupce na plochu. PESdde lze v systému spustit jen jeden. Pøi pokusu o sputìní dalí instance se aktualizuje okno ji bìící instance a pokus o nové sputìní je ukonèen. Zavøení aplikace pøedchází výstraný dialog, upozoròující uivatele na to, e server mùe být pouíván jinou aplikací a uzavøením se poruí komunikace dané aplikace a sítì automatù. Poznámka: Toto výstrané upozornìní se objeví vdy, tedy i v pøípadì, e server ji není vyuíván ádnou aplikací.
6
PESdde
DDE server pro Windows
03.2002, 7 stran
6
Automatický start Pokud je program sputìn s parametrem /s , pak se po jeho sputìní automaticky provede inicializace komunikaèního portu a DDE propojení, pøesnì stejnì jako po ruèním sputìní tlaèítkem Spustit.
Vícejazyèná verze Aplikaci je také mono spustit v anglické mutaci. To, jaká jazyková mutace bude sputìna, urèuje parametr "version=" v souboru DDEini.cfg. version=Cz (spustí se èeská verze) version=En (spustí se anglická verze)
Ochrana COM portu PESdde pøísluný COM testuje, zda není uíván jinou aplikací. Pokud je, zobrazí upozornìní a dalí èinnost je ukonèena. Naopak, pokud je COM volný, je tento COM alokován a chránìn proti pøístupu jiné aplikace. Po ukonèení èinnosti PESdde serveru je tento COM opìt uvolnìn pro ostatní aplikace. Pokud se tedy objeví upozornìní, e "COMx: je uíván jinou aplikací..." nastaly tyto monosti: 1) Je otevøeno okno, v nìm bìí (bìel) program, komunikující na volaném COMu. 2)
Volaný COM není zapnut v aktivním Hardwarovém nastavení (viz nastavení Windows: "System-vlastnosti")
3)
Je vyuíván hardwarem, napøíklad myí
Poznámka: V pøípadì problémù je tøeba se ujistit, e pouívaný COM port nemá spoleèné hardwarové pøeruení s jiným COM portem. Pøípadnì toto pøeruení zmìnit na dalí volné. Viz System-vlastnosti.
9.
Tipy
Pokud je poèítaè vyuíván výhradnì na vizualizaci pøipojené aplikace, je vhodné nadefinovat sputìní PESdde do Windows-nabídky Start -> Po sputìní a ve vlastnostech programu zadat na pøíkazovém øádku parametr /s (jetì je vhodné nastavit vlastnosti programu tak, aby se spustil jako minimalizovaný). Server PESdde se tak po nastartování Windows sám spustí a zapojí do sítì automatù. Pro automatizované zpracování, nebo zaèlenìní do vlastních aplikaèních programù je vhodnìjí vyuívat blokové pøenosy (celá komunikace je pak mnohem efektivnìjí). ádost o jedinou poloku je naopak výhodná tehdy, potøebujeme-li celkovì málo poloek, nebo nechceme-li se zabývat "rozkousáním" odpovìdi serveru pøi blokovém pøenosu (napø. zobrazení poloky v buòce tabulky v MS-Excelu apod.).
7
PESdde
DDE server pro Windows
03.2002, 7 stran
7