Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Komunikacja przy pomocy interfejsu standardowego DDE

DDE ozancza dynamiczną wymianę danych i jest przeznaczone do współdzielenia danych pomiędzy kilku aplikacjami na jednym komputerze. Mogą to być różne aplikacje wykorzystujące DDE (Excel, Acces, itd.) włącznie dalszych aplikacji PROMOTIC.

Jeżeli ma być współdzielona grupża zmiennych, wtedy dla takiej grupy musi istnieć jeden DDE serwer i jeden lub większa ilość DDE klientów. DDE serwer "posiada" wszystkie zmienne, klienci odwoływują się do tych zmiennych, mogą te zmienne odczytywać i zapisywać do nich, jeżeli jest to dozwolone.

Adres współdzielonej zmiennej składa się z trzech części:

- service (aplikacja): w większości przypadków nazwa aplikacji (w systemie PROMOTIC jest to słowo "PROMOTIC" lecz można to zmienić)
- topic (temat): nazwa strefy danych (w systemie PROMOTIC jest to słowo "OBJECT" i nie można go zmienić)
- item (pozycja): nazwa konkretnej zmiennej (w systemie PROMOTIC określa projektant aplikacji)
 
DDE jest przeznaczone do współdzielenia danych na jednym komputerze. Po uruchomieniu sieciowego rozszerzenia NetDDE jest jednak możliwe współdzielenie danych pomiędzy aplikacjami uruchomionymi na różnych komputerach podłączonych w jednej sieci komputerowej. Na tych komputerach musi być uruchomione oprogramowanie NetDDE.exe (jest zawarty w SO Windows), który jest sieciowym DDE agentem, który umożliwia transmisję wybranych danych pomiędzy komputerami. Patrz: Ustawienie NetDDE.
 
Współdzielenie danych przy pomocy DDE można wykorzystać do najróżniejszych celów lecz w sterowaniu technologicznym jest jego najczęstszym wykorzystaniem pozyskiwanie danych ze sterowników PLC. System PROMOTIC wprawdzie posiada dla najczęściej wykorzystywanych sterowników własne drivery, lecz te nie pokrywają wszystkich sterowników PLC. Do komunikacji aplikacji PROMOTIC ze sterownikami można wtedy zakupić oprogramowanie firmy trzeciej (najczęściej bezpośrednio od producenta PLC). Takie oprogramowanie jest apliakcją, która potrafi komunikować się ze sterownikiem i może być wykorzystana przez inne aplikacje (włącznie z aplikacjami PROMOTIC) jako serwer danych. Według interfejsu można zakupić dla sterowników PLC OPC serwery lub/i DDE serwery. OPC jest lepszym i szybszym interfejsem niż DDE, lecz w niektórych przypadkach OPC serwer może nie być do dyspozycji i istnieje tylko DDE serwer. Taki DDE serwer jest więc oprogramowaniem, który z jednej strony komunikuje się ze sterownikiem PLC a ze strony drugiej komunikuje poprzez interfejs DDE z innymi aplikacjami - w naszym przypadku z aplikacją PROMOTIC.

Wykorzystanie DDE jest bardzo proste dla projektanta i wystarczy tylko w wybranych zmiennych w obiekcie PmData wytworzyć ExtDdeClient i wypełnić parametry adresu DDE.

Niekorzystnym jest względna powolność przekazu pomiędzy DDE serwerem i aplikacją (chodzi o transmisję wartości pomiędzy różnymi aplikacjami). Jeżeli chcielibyśmy przekazywać tysiące danych w krótkim okresie czasu, wtedy problemy nastaną. Dalszą niekorzystną właściwością (dla projektantów często bardzo ważną) jest (w większości) niemożliwość konfiguracji poszczególnych komunikatów. Nie można na przykład ustawić, że wartości analogowe mają być przekazywane raz za minutę a wartości binarne np. raz za sekundę.

 
W aplikacji PROMOTIC można przy pomocy DDE nie tylko współdzielić dane, lecz takżemożna do DDE serwera wysłać polecenie (Patrz metoda Pm.DdeExecute).
 

Ustawienie jako DDE serwer

W zakładce PmRoot > DDE w części DDE serwer można zdefiniować pozycję Aplikacja 'service'. Wszystkie współdzielone wartości oferowane aplikacją PROMOTIC jako DDE serwer będą oferowane pod adresem service (tekst ustawiony domyślnie na "PROMOTIC") i topic (tekst "OBJECT"). Jest konieczne:
- zakreślić opcję "DDE aktywowane"
- nie zakreślać opcję "Zakaz współdzielenia danych"
- nie zakreślać opcję "Współdziel wszystko oprócz zakazanych". Jeżeli ta opcja zostanie zakreślona, wtedy będzie współdzielone wszystko wyraźnie niezakazane, co w większości przypadków nie jest odpowiednie.
 
Z kolei jest jednak konieczne ustawić, które pozycje (które konkretne dane) mają być współdzielone. Do dyspozycji są dwa sposoby:
1) Rozszerzenie danych: Zastosowanie Rozszerzenie danych jest bardzo dogodnym sposobem, jak zdefiniować dane, którymi chcemy komunikować się. Definicję można wykonać dla pozycji danych obiektu PmData i dla DDE serwera jest przeznaczone ExtDdeServer.
2) Przestarzały sposób: To wykonuje się w obiektach PmNumber lub PmData w ich zakładkach DDE. Tutaj w części Konfiguratory "DDE serwer" jest konieczne:
- konfigurator "Współdzielenie pozycji" ustawić na Współdzielić
- konfigurator "DDE pozycja (item)" - ustawić nazwę (identyfikator) danej. Pod tą nazwą dana pozycja będzie dostępna w innych aplikacjach. Nazwy żadnych dwu pozycji nie mogą być zgodne dla jednego topic i service.

Ustawienie jako DDE klient

W zakładce PmRoot > DDE w części Grupy klienckie DDE można zdefiniować grupy klienckie, przy pomocy których poszczególne pozycje są współdzielone. Zmienne w jednej grupie mają wspólne service i topic. To ustawienie musi być zgodne z service i topic serwera, z którym mają być dane współdzielone.
 
Ustawieniem grupy DDE określa się, z którym DDE serwerem jest wymagana komunikacja. Oprócz tego jest jeszcze konieczne zdefiniować, które pozycje (które konkretne dane) mają być współdzielone.
1) Rozszerzenie danych: Wykorzystanie Rozszerzenie danych jest bardzo dogodnym sposobem, jak zdefiniować, którymi danymi chcemy komunikować się. Definicję można wytworzyćdla pozycji danych oiektu PmData i dla DDE klienta jest przeznaczone ExtDdeClient.
2) Przestarzały sposób: To wykonuje się w obiektach PmNumber lub PmData wich zakładkach DDE. Tutaj w części Konfiguratory "DDE klient":
Grupa DDE - należy ustawić grupę, w której chcemy współdzeilić zmienną.
DDE pozycja (item) - pod jaką nazwą będzie zmienna dostępna.

Pozycje w oknie "DDE serwer" przy ustawianiu DDE klienta nie mają sensu.

© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice