Zasady transmisji danych po OPC DA:
Jest konieczny
OPC serwer.
OPC serwer możnesz uzyskać od różnych firm, które produkują takie oprogramowanie. Często producentem takiego oprogramowania jest producent sterowników PLC.
OPC serwer jest aplikacją dla SO
Windows, która jest uruchomiona albo jako samodzielne oprogramowanie lub może być również w formie na przykład biblioteki DLL. Taki
OPC serwer na przykład potrafi komunikować się ze sterownikami PLC po łączu szeregowym komputera i równocześnie potrafi dane (które uzyska ze sterownika PLC) oferować poprzez interfejs
OPC innym aplikacjom w SO
Windows. W tym przypadku jest taką aplikacją aplikacja PROMOTIC.
W aplikacji PROMOTIC, która chce pozyskiwać (zapisywać) dane z danego sterownika PLC jest konieczne założenie obiektu
PmaOpcDaClient. W tym obiekcie należy wybrać dany
OPC serwer (jeżeli
OPC jest poprawnie zainstalowany, wtedy pojawi się w ofercie).) Do obiektu
PmaOpcDaClient jest konieczne z kolei włożyć wymaganą ilość obiektów
PmaOpcDaClientGroup. Te obiekty przedstawiają grupy danych, które będą transmitowane. Jest koniecznym ich odpowiednie ustawienie. Możesz określić, czy grupa danych ma być automatycznie odczytywana czy też zapisywana. Jeżeli nie chcesz odczytywać/zapisywać dane automatycznie, wtedy można to wykonywać w skrypcie poprzez metodę
PmaOpcDaClientGroup.Read-
PmaOpcDaClientGroup.Write.
Z kolei jest konieczne dafinicja, które dane chcemy transmitować. To można wykonać na dwa sposoby:
1)
Rozszerzenie danych: Zastosowanie
Rozszerzenie danych jest bardzo dogodnym sposobem, jak określać dane, którymi chcemy komunikować się. Dane te można ydefiniować dla pozycji danych obiektu
PmaData i dla
OPC jest przeznaczone
ExtOpcDa.
2)
Definicja danych bezpośrednio w obiekcie PmaOpcDaClientGroup: W karcie "
Dane" można określić zmienne, które są nakonfigurowane podobnie jak na przykład w obiekcie
PmaData. Dodatkowo jest konieczne ustawić na każdej pozycji dwie wartości dotyczące komunikacji
OPC. Są to
ItemId oraz
AccesPath. Te dwie wartości przedstawiają adres danej zmiennej w
OPC serwerze. Jeżeli
OPC serwer wspiera
OPC w wersji 2, wtedy wybór danych powinien działać bezpośrednio z
OPC serwera (przy pomocy przycisku z trzemi kropkami). Jeżeli ta funkcja nie działa, wtedy jest konieczne określić ręczne tych wartości.
Dostęp do pozycji danych w obiekcie
PmaOpcDaClientGroup jest taki sam jak w obiekcie
PmaData, tzn. na przykład przy pomocy metody
PmaOpcDaClientGroup.Item. Właściwość ta udostępni jedną zmienną jako obiekt
PmVar, u której można stwierdzić standardowe dane (przedewszystkim wartość zmiennej właściwością
Value) lecz w obiekcie
PmaOpcDaClientGroup posiada obiekt
PmVar jeszcze dalsze 2 właściwości specyficzne tylko dla
OPC. Chodzi o właściwość
PmVar.Quality, przy pomocy której można stwierdzić ważność odebranej wartości oraz właściwość
ExtOpcDa.TimeStamp, przy pomocy której można stwierdzić znacznik czasu ostatniej aktualizacji wartości.
OPC DA Pojęcia podstawowe:
CACHE:
Pomocnicza pamięć
OPC serwera, do której serwer na bieżąco zapisuje dane, które uzsykuje z innych źródeł danych (np. ze sterownika PLC,
DEVICE - patrz dalej). Jeżeli
OPC klient wymaga danych, wtedy nie musi je uzyskiwać powoli ze sterownika PLC, lecz może je szybko odczytać z tej pamięci w
OPC serwerze.
DEVICE:
Źródło danych, z którego
OPC serwer pozyskuja dane. Dostęp do tych danych jest zazwyczaj wyraźnie wolniejszy niż do danych w
CACHE.
Transmisja asynchroniczna:
Sposób transmisji danych pomiędzy klientem i serwerem. Klient odeśle żądanie do
OPC serwera (zapis, odczyt) i NIE CZEKA na koniec obsługi żądania.
OPC serwer obsłuży żądanie w przeciągu pewnego czasu i jego wynik zostanie przesłany do klienta. Klient w czasie między odesłaniem żądania i otrzymaniem wyniku może wykonywać inne operacje. Ten sposób transmisji danych jest odpowiedni dla długotrwałych operacji, na przykład odczyt lub zapis danych z
DEVICE.
Transmisja synchroniczna:
Sposób transmisji danych pomiędzy klientem i serwerem. Klient odeśle żądanie do
OPC serwera (zapis, odczyt) i CZEKA na koniec obsługi żądania. Ten sposób transmisji danych jest odpowiedni dla bardzo szybkich operacji, na przykład odczyt lub zapis danych z
CACHE jeżeli
OPC serwer znajduje się na tym samym komputerze co klient.
Instrukcja do prostej próby komunikacji OPC:
1. Wytwórz pusty projekt (lub wykorzystaj już istniejący) i w nim wytwórz obiekt
PmaOpcDaClient. W konfiguratorze "
OPC serwer - CLSID/ProgID" wprowadź
OPC serwer, do którego chcesz się podłączyć (serwer można wybrać przy pomocy przycisku po prawej). Jeżeli wymagany serwer nie jest oferowany, wtedy to znaczy, że nie jest na Twoim komputerze poprawnie zainstalowany.
5. Wypałnij konfigurator "
ItemId" wymaganym
OPC adresem zmiennej. Ten konfigurator można wypełnić przy pomocy przycisku po prawej - wtedy uruchamia się
OPC serwer i sam zaoferuje zmienne, które może transmitować (funkcję tą wspierają tylko
OPC serwery z interfejsem
OPCv2.0 i nowsze - starsze
OPC serwery nie posiadają tej funkcji).
6. Niektóre typy adresacji wymagają oprócz konfiguratora "
ItemId" dodatkowo wypełnienie konfiguratora
AccessPath (do wprowadzania wykonaj taki sam proces jak w poprzednim punkcie). U większości
OPC serwerów jednak można ten konfigurator pozostawić pusty.
7. Zakończ wprowadzanie zmiennej i uruchom aplikację (runtime).
8. W celu prób nie musisz wytwarzać żadnych ekranów, wszystko możesz stwierdzić w
INFO systemie. Otwórz okno INFO systemu, przejdź do pozycji "PmaRoot" i tam przejdź do obiektu
PmaOpcDaClientGroup, który wytworzyłeś.
W karcie "Vars" zobaczysz bieżące wartości i stany zmiennych.
W karcie "Object" możesz zobaczyć statystykę transmisji OPC tego obiektu.
9. Jeżeli transmisja danych nie działa, wtedy spojrzyj do karty "
Errors" w INFO systemie.