Promotic

Komunikacja przy pomocy interfejsu standardowego DDE

DDE ozancza dynamiczną wymianę zmiennych i służy do współdzielenia zmiennych pomiędzy kilku aplikacjami na jednym komputerze. Mogą to być różne aplikacje wykorzystujące DDE (Excel, Access, 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): zazwyczaj nazwa aplikacji (w systemie PROMOTIC jest to słowo "PROMOTIC" lecz to można 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 służy 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 zapewnia transmisję wybranych danych pomiędzy komputerami. Patrz: Ustawienie NetDDE.

Współdzielenie danych przy pomocy DDE można zastosować do najróżniejszych celów lecz w sterowaniu technologicznym jest jego najczęstszym wykorzystaniem pozyskiwanie danych ze sterownika 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 PLC można wtedy zakupić oprogramowanie firmy trzeciej (zazwyczaj bezpośrednio od producenta sterownika PLC). Takie oprogramowanie jest aplikacją, która potrafi komunikować się ze sterownikami PLC 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 ze sterownikami PLC a ze strony drugiej komunikuje poprzez interfejs DDE z innymi aplikacjami - w naszym przypadku z aplikacją PROMOTIC.
Zastosowanie DDE jest bardzo proste dla projektanta i wystarczy tylko w wybranych zmiennych w obiekcie PmaData 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 wartości w krótkim okresie czasu, wtedy problemy nastaną. Dalszą niekorzystną właściwością (dla projektantów często bardzo ważną) jest (zazwyczaj) niemożliwość konfiguracji poszczególnych wiadomości. Nie można na przykład ustawić, że wartości analogowe mają być przekazywane raz za minutę a wartości binarne 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 oknie konfiguracyjnym 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 (domyślnie: tekst "PROMOTIC") oraz topic (tekst "OBJECT"). Jest konieczne:
- zakreślić opcję "DDE aktywowane"
- NIE zaznaczać opcję "Zakaż współdzielenia danych"
- NIE zaznaczać opcję "Współdziel wszystko oprócz zakazanych". Jeżeli ta opcja zostanie zakreślona, wtedy będzie współdzielone wszystko wyraźnie niezakazane, co zazwyczaj nie jest odpowiednie.


Z kolei jest 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 PmaData i dla DDE serwera jest przeznaczone ExtDdeServer.
2) Przestarzały sposób: To wykonuje się w obiektach PmaNumber lub PmaData w karcie "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 oraz service.

Ustawienie jako DDE klient

W oknie konfiguracyjnym DDE w części Grupy klienckie DDE można zdefiniować grupy klienckie, przy pomocy których poszczególne pozycje są współdzielone. Pozycje w jednej grupie mają wspólne service oraz topic. To ustawienie musi być zgodne z service oraz 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 obiektu PmaData i dla DDE klienta jest przeznaczone ExtDdeClient.
2) Przestarzały sposób: To wykonuje się w obiektach PmaNumber lub PmaData w karcie "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 pozycja dostępna.

Pozycje w oknie "DDE serwer" do ustawienia DDE klienta nie mają sensu.
© MICROSYS, spol. s r.o.