DDE je dynamická výměna dat a slouží ke sdílení proměnných mezi několika aplikacemi na jednom počítači. Mohou to být různé aplikace využívající
DDE (
Excel,
Access, atd.) včetně dalších aplikací PROMOTIC.
Pokud se má sdílet skupina proměnných, pak pro tuto skupinu musí být jeden DDE server a jeden nebo více DDE klientů. DDE server "vlastní" všechny proměnné, klienti se na tyto proměnné odkazují, mohou je číst i do nich zapisovat, pokud je toto dovoleno.
Adresa sdílené proměnné se skládá ze tří částí:
- service (aplikace): většinou název aplikace (v systému PROMOTIC je to slovo "PROMOTIC" ale lze změnit)
- topic (námět): název oblasti dat (v systému PROMOTIC je to slovo "OBJECT" a nelze změnit)
- item (položka): název konkrétní proměnné (v systému PROMOTIC zadává projektant aplikace)
DDE slouží ke sdílení dat na jednom počítači. Po spuštění síťové nádstavby
NetDDE je však umožněno sdílet data mezi aplikacemi běžícími na různých počítačích zapojených do stejné počítačové sítě. Na těchto počítačích musí být spuštěn program
NetDDE.exe (je obsažen v
OS Windows), což je síťový
DDE agent, který zajišťuje přenos vybraných
DDE dat mezi počítači. Viz:
Nastavení NetDDE.
Sdílení dat pomocí
DDE lze použít k mnoha účelům ale pro technologické řízení je nejčastějším použitím
získávání dat z PLC automatu. Systém PROMOTIC má sice pro běžné automaty
vlastní ovladače, ale tyto nepokrývají zcela všechny PLC automaty. Pro komunikaci aplikace PROMOTIC s PLC automaty pak lze zakoupit software od jiné firmy (většinou přímo výrobce PLC). Tento software je aplikace, která s PLC automaty umí komunikovat a může pak sloužit jiným aplikacím (včetně aplikace PROMOTIC) jako server dat. Podle rozhraní se dají koupit pro PLC automaty
OPC servery nebo/a DDE servery. OPC je lepší a rychlejší rozhraní než
DDE ale někdy OPC server nemusí být k dispozici a je jen DDE server. Takový DDE server je tedy software, který z jedné strany komunikuje s PLC automaty a z druhé strany komunikuje přes rozhraní
DDE s jinými aplikacemi - v našem případě s aplikací PROMOTIC.
Použití DDE je pro projektanta velmi jednoduché a stačí například pouze u zvolených proměnných v objektu PmaData vytvořit ExtDdeClient a vyplnit parametry DDE adresy.
Nevýhodou je relativní pomalost přenosu mezi DDE serverem a aplikací (jedná se o přenos hodnot mezi různými aplikacemi). Pokud bychom chtěli přenášet tisíce hodnot za krátký časový úsek, pak vzniknou problémy. Další nevýhodou (pro projektanty často dost podstatnou) je (většinou) nemožnost konfigurace jednotlivých zpráv. Nelze například zadat že analogové vstupy se mají přenášet jednou za minutu a digitální jednou za sekundu.
V aplikaci PROMOTIC lze pomocí
DDE komunikace nejen sdílet data, ale lze do DDE serveru poslat povel (viz metoda
Pm.DdeExecute).
Nastavení jako DDE server
V kartě "
PmaRoot > DDE" se v části
DDE server definuje položka
Aplikace 'service'. Všechny sdílené proměnné poskytované aplikací PROMOTIC jako DDE serverem budou nabízeny pod adresou
service (přednastaveno: text
"PROMOTIC") a
topic (text
"OBJECT"). Je nutno:
Nyní však je nutno definovat, které položky (která konkrétní data) se mají sdílet. Jsou dva způsoby:
1)
Datové rozšíření: Použít
Datové rozšíření je velmi vhodný způsob jak definovat s kterými daty chceme komunikovat. Definuje se v datové položce objektu
PmaData a pro DDE server je určeno
ExtDdeServer.
2) Zastaralý způsob: provádí se v objektech
PmaNumber nebo
PmaData v jejích kartách
DDE. Zde v části
Konfigurátory "DDE server" je nutno:
- konfigurátor "
DDE položka (item)" - nastavit název (identifikátor) data. Pod tímto názvem bude položka přístupná jiným aplikacím. Jména žádných dvou položek se však pro jeden daný
topic a
service nesmí shodovat.
Nastavení jako DDE klient
V kartě "
PmaRoot > DDE" se v části
DDE klientské skupiny definují DDE klientské skupiny, pomocí kterých jsou položky sdíleny. Položky v jedné skupině mají společný
service a
topic. Toto nastavení se musí se shodovat se
service a
topic serveru, s nímž mají být data sdíleny.
Nastavením
DDE skupiny je definováno, s kterým DDE serverem je požadováno komunikovat. Je však ještě potřeba definovat, které položky (která konkrétní data) se mají sdílet.
1)
Datové rozšíření: Použít
Datové rozšíření je velmi vhodný způsob jak definovat s kterými daty chceme komunikovat. Definuje se v datové položce objektu
PmaData a pro DDE klienta je určeno
ExtDdeClient.
2) Zastaralý způsob: provádí se v objektech
PmaNumber nebo
PmaData v jejích kartách
DDE. Zde v části
Konfigurátory "DDE klient" nastavíme:
DDE skupina - DDE klientská skupina, ve které chceme proměnnou sdílet.
Položky v okně "DDE server" pro nastavení DDE klienta nemají význam.