Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
1
Katedra Inżynierii Systemów Sterowania WEiA PG Przemysłowe Sieci Informatyczne - Laboratorium
Instrukcja do ćwiczenia: Komunikacja OPC (OLE for Process Control)
Opracował: mgr inż. Karol Kulkowski
1. Czym jest OPC? OPC jest interoperatywnym (zapewniającym współdziałanie) standardem
zapewniającym bezpieczną i niezawodną wymianę danych w przestrzeni automatyki przemysłowej i w innych gałęziach przemysłu. OPC jest niezależne od platformy i zapewnia niezakłócony przepływ informacji pomiędzy urządzeniami różnych producentów. Odpowiedzialna za rozwój i utrzymanie tego standardu jest organizacja OPC Foundation.
Standard OPC oparty jest na opacowanej przez Microsoft technologii OLE COM (Object Linking and Embedding Component Object Model) oraz DCOM (Distributed Component Object Model). Wykorzystując serwer będący centrum wymiany danych, umożliwia przesył danych pomiędzy urządzeniami przesyłającymi dane o odmiennych od siebie protokołach i standardach pełniąc rolę pośrednika.
2. Cel laboratorium Laboratorium ma na celu zapoznanie się ze strukturą i sposobem działania
technologii OPC oraz nabycie wiedzy i umiejętności pozwalającej na sprawną komunikację
pomiędzy urządzeniami (takimi jak sterownik PLC, komputer ze środowiskiem obliczeniowym
MATLAB czy wizualizacją InTouch) z wykorzystaniem serwera OPC.
2. Konfiguracja serwera OPC Konfiguracja serwera OPC na potrzeby laboratorium oparta została na przykładzie
oprogramowania KepServer firmy Kepware Technologies. Aby rozpocząć pracę z serwerem
KepServer, należy uruchomić Kepserver Administration - na wywołanej przy zegarze (Tray
Icon) zielonej ikonie programu należy kliknąć PPM i wybrać Settings. W zakładce Runtime
należy wybrać Selected Mode jako Interactive i zatwierdzić OK (rys. 1).
2
Rys. 1. KepServer Settings
Następnie należy uruchomić KepServer EX5 Configuration (ikona na pulpicie
lub PPM na ikonie przy zegarze systemowym i wybranie Configuration). Na górnej belce
programu należy wybrać Runtime/Disconnect. Na tym etapie możliwe jest otwarcie
demonstracyjnego projektu KepServer. Aby to uczynić, należy wybrać File/Open i wczytać
projekt o nazwie 'simdemo.opf', a następnie zatwierdzić przyciskiem Otwórz ( ścieżka pliku:
C:/Pliki programów(x86)/Kepware/KEPServerEX5/Projects).
Na potrzeby laboratorium wykorzystywany jest protokół DDE wprowadzony
przez Microsoft (początkowo w systemie operacyjnym Windows 3.x) pozwalający
na komunikację pomiędzy aplikacjami uruchomionymi na komputerze. Protokół ten doczekał
się wersji sieciowej pod nazwą NetDDE. Został wyparty przez mechanizm OLE.
Użycie tego protokołu na laboratorium spowodowane jest wymogiem od strony aplikacji
InTouch firmy Wonderware. Dzięki możliwości dostępu do serwera OPC z użyciem DDE
wyeliminowano użycie dodatkowego programu pośredniczącego OPCLink pomiędzy
aplikacją InTouch i serwerem OPC (Intouch –[DDE]-> serwer OPC
zamiast Intouch –[DDE]-> OPCLink –[OPC]-> serwer OPC). Dlatego też ważne jest
włączenie komunikacji DDE w ustawieniach serwera OPC, aby umożliwić komunikację
aplikacji InTouch z serwerem.
Aby utworzyć nowy projekt, należy wybrać File/New nie zapisując poprzedniego
projektu. Kolejnym krokiem jest konfigurowanie nowego projektu poprzez wybranie
File/Project Properties. W zakładkach FastDDE/SuiteLink zaznaczyć należy Enable
FastDDDE/SuiteLink connections to the server, następnie w zakładce DDE należy
zaznaczyć Enable DDE connections to the server oraz Enable Net DDE, jak również
zwrócić uwagę na Timing (domyślnie 100ms) oraz Application Name "server_runtime"
(rys. 2. i 3.). Ustawienia zatwierdzić, klikając OK.
3
Rys. 2. Zakładka DDE
Rys. 3. Zakładka FastDDE/SuiteLink
Następnym krokiem jest dodanie nowego kanału komunikacyjnego. W tym celu
należy kliknąć w lewej części programu na Click to add channel. Następnie należy nadać
nazwę (kliknąć dalej) -> Wybrać sterownik (dla S-1200: Siemens TCP/IP Ethernet,
dla MATLAB: Simulator) -> Wybrać kartę sieciową, przez którą łączy się komputer ->
Zaznaczyć Write only latest value for all tags -> kliknąć Zakończ.
W następnym kroku należy dodać urządzenie klikając add a device. Następnie
należy wprowadzić nazwę->Wybrać sterownik (dla Siemens: S7-1200, dla MATLAB: 16 Bit
Device) -> wpisać IP sterownika -> Ustawić Scan Mode na Respect client specified scan
rate -> resztę ustawień zostawić domyślnie i zakończyć klikając Zakończ.
W krokach dotyczących dodawania kanału i urządzenia możliwe jest wybranie innych
protokołów komunikacji i urządzeń niż opisane na potrzeby laboratorium. Dzięki rozwijanym
listom można wybrać inne znane z laboratoriów protokoły takie jak: Ethernet, Serial
(komunikacja szeregowa), SNP, Modbus. Przy użyciu tego samego typu list można dokonać
konfiguracji serwera również dla sterowników z rodziny GE Fanuc znajdujących się
w laboratorium czy innych urządzeń (pod warunkiem zainstalowania na komputerze
odpowiednich sterowników dla danego urządzenia).
4
[IP sterownika można sprawdzić w programie TIA Portal V11 poprzez Project
Tree/PLC/Device configuration, a następnie w dolnej części programu wybrać zakładkę
Properties i w drzewie w zakładce General wybrać PROFINET interface/Ethernet
addresses (rys. 4.)]
Rys. 4. Sprawdzanie IP sterownika w TIA Portal V11
Po dodaniu urządzenia można dodać grupę dla etykiet. Można to uczynić klikając
PPM na dodanym urządzeniu i wybierając New Tag Group, której można nadać nazwę.
W następnym kroku do urządzenia można dodać etykiety. W tym celu należy kliknąć
add a static tag, a następnie wprowadzić Nazwę (Name), Adres zmiennej z urządzenia
np. sterownika (Adress) (pomocny może być znak zapytania obok pola adresu), Opis
(opcjonalnie), Typ, Rodzaj dostępu (odczyt, zapis, odczyt i zapis, na potrzeby laboratorium
zalecany odczyt i zapis read/write), częstotliwość skanowania (domyślnie 100ms).
Zatwierdzić OK. Przykładowo dla zmiennej Memory typu Bool o adresie 0 i bicie 0
adres wygląda następująco: M00.0 dla zmiennej Memory typu WORD o adresie 100:
MW100.
3. Przegląd zasobów serwera OPC z użyciem klienta Po utworzeniu projektu można go zapisać wybierając File/Save,
a następnie uruchomić serwer wybierając Runtime/Connect i zatwierdzając TAK.
Aby podglądać pracę serwera używa się szybkiego klienta. Można go uruchomić poprzez
ikonę na belce programu (pierwsza od prawej) lub poprzez Tools/Launch OPC Quick
Client. W drzewie klienta należy wybrać ustawiony serwer. Dla sterownika Siemens 1200
i urządzenia o nazwie Device1 będzie się nazywał jak wybrany na rys. 5. Siemens
1200.Device1.
5
Rys. 5. OPC Quick Client
Klikając PPM na tag w kliencie można wybrać Synchronous Write i nadpisać
wartość, jeśli ustawiono Write lub Read/Write.
Na stronie producenta istnieje możliwość pobrania wersji demonstracyjnej programu
z zastrzeżeniem ciągłego czasu użytkowania programu do 2 godzin.
4. Praca z MATLAB i OPC Komunikację między środowiskiem MATLAB firmy Mathworks a serwerem OPC
można nawiązać w dwojaki sposób. Pierwszym ze sposobów jest wymiana danych
z użyciem wiersza poleceń (Command Window) przez zastosowanie odpowiednich komend.
Drugą metodą jest wykorzystanie bloków toolbox’a załączonego do biblioteki Simulink’a w
środowisku MATLAB Simulink. Obie metody opisane zostały w punktach poniżej.
4a. Komunikacja MATLAB (Command Window) – serwer OPC Połączenie między serwerem OPC a środowiskiem MATLAB można nawiązać
przy użyciu komendy 'connext()' definiując wcześniej nazwę serwera i jego adres funkcją
'opcda()'. Aby dodać grupę w środowisku MATLAB, do której będzie można dodać obiekty
na potrzeby komunikacji z serwerem OPC, należy posłużyć się komendą 'addgroup()'.
Do utworzonej grupy można przypisać etykiety zmiennych biorących udział w komunikacji
między środowiskiem MATLAB a serwerem OPC za pomocą komendy 'additem()',
w której należy podać nazwę grupy oraz nazwę etykiety na serwerze OPC. Do zapisania
wartości na serwerze służy funkcja 'write()', a do odczytu 'read()'. W obu należy podać nazwę
obiektu, a następnie nazwę urządzenia dla funkcji odczytu lub wartość dla funkcji zapisu. Po
ukończeniu komunikacji, aby odłączyć się od serwera, należy użyć komendy 'disconnect()'.
Poniżej zaprezentowany jest przykład użycia opisanych wcześniej funkcji.
da = opcda('192.168.1.9','Kepware.KEPServerEX.V5'); %zdefiniowanie serwera connect(da); %podłączenie do serwera zdefiniowanego wcześniej da %kontrola stanu połączenia definiowanego wyżej
6
grp = addgroup(da); %zdefiniowanie grupy w MATLAB RANDOM = additem(grp, 'Simulation Examples.Functions.Random2'); %dodanie
obiektu do grupy W1 = additem(grp, 'Data Type Examples.16 Bit Device.K Registers.Word1');
%dodanie obiektu do grupy R = read(RANDOM, 'device') %odczytanie obiektu RANDOM write(W1, 350); %zapisanie etykiety Data Type Examples.16 Bit Device.K
Registers.Word1 poprzez obiekt W1
% disconnect(da) %rozłączenie z serwerem
4b. Komunikacja MATLAB Simulink - serwer OPC Aby połączyć MATLAB Simulink z OPC, należy utworzyć nowy diagram Simulink,
a następnie z biblioteki Simulink z toolboxa OPC wstawić bloki OPC Read, OPC Write
oraz OPC Configuration (pierwszy zawsze należy ustawić OPC configuration!).
Klikając dwukrotnie na każdy z bloków należy ustawić:
OPC configuration:
Wybrać Configure OPC Clients (rys. 6.) -> Add -> Select ->
-> Kepware.KEPServerEX.V5 następnie zatwierdzić: dwukrotnie OK, następnie Close
oraz OK.
Rys. 6. OPC configuration MATLAB
OPC Read:
Wybrać zmienne do odczytu Add items->, wybrać z drzewa odpowiedni kanał
i urządzenie, a następnie zaznaczyć zmienne i przesunąć przyciskiem >> na prawą stronę
(rys. 7.). Zatwierdzić OK, zmienić Sample time na zgodny z wcześniej ustawionymi
(0.1 dla 100ms) i zatwierdzić OK.
7
Rys. 7. OPC Read MATLAB
OPC Write:
Dodać zmienne poprzez Add items->, analogicznie do OPC Read przeciągnąć
poprzez >> wybrane zmienne i zatwierdzić dwukrotnie OK.
Przed uruchomieniem symulacji należy wybrać na górnej belce diagramu Simulink
Simulation-> Model Configuration Parameters. Następnie wybrać Solver i zmienić jego
typ na Fixed Step. Zapisać zmiany, po czym w oknie z czasem symulacji wpisać inf.
Po zbudowaniu reszty diagramu można uruchomić symulację. Należy pamiętać,
że bloki OPC Read i OPC Write podają i pobierają zmienne w kolejności takiej, w jakiej
zostały dodane, dlatego należy, używając bloków mux i demux, w odpowiedni sposób
podłączyć sygnały podpięte do tych bloków. Należy również pamiętać o typach przesyłanych
danych i ich ewentualnej konwersji poprzez blok convert np. na zmienną typu bool.
5. Współpraca InTouch z OPC Aplikacja InTouch firmy Wonderware wykorzystuje protokół DDE na potrzeby
wymiany danych z inną aplikacją, w tym przypadku z serwerem OPC. Należy pamiętać
o włączeniu obsługi DDE przez serwer OPC.
Aby nawiązać połączenie KepServer - InTouch należy w projekcie KepServer
stworzyć nowy alias poprzez wybranie na górnej belce programu Edit/Alias Map...
Następnie klikając tarczę z nr 1 i 'gwiazdką' dodać Nazwę (np. Device_1)
i wybrać urządzenie wcześniej skonfigurowane, z którym chcemy powiązać ten alias.
W kolejnym kroku można uruchomić program InTouch i stworzyć nowy projekt.
Następnie z górnej belki programu należy wybrać Special/Access Names/Add,
podać nazwę (node name pozostawić puste), dodać nazwę aplikacji jak w ustawieniach
serwera OPC "server_runtime", wpisać Topic zgodny z aliasem dodanym na serwerze OPC,
w tym przypadku "Device_1", oraz zaznaczyć DDE.
8
Aby zdefiniować nową zmienną, należy wybrać Tools/Tagname Dictionary
(lub Tagname Dictionary bezpośrednio z okna w lewym dolnym rogu ekranu).
Następnie należy stworzyć nową zmienną klikając New (zaznaczyć Details),
nadać jej Nazwę, typ I/O..., ustawić czy ma być tylko odczytywana, tylko zapisywana
czy odczytywana i zapisywana. Następnie należy wybrać Access Name wybierając z listy
zdefiniowany wcześniej. W nazwie Item wprowadzić należy nazwę taką, jaką ma tag
na serwerze OPC. Tak zdefiniowaną zmienną należy zapisać klikając save,
a następnie można jej użyć w programie InTouch. Przykład zmiennej w InTouch
z porównaniem z serwerem OPC pokazany jest na rys. 8.
Rys. 8. Zmienna w InTouch
Aby odczytać zmienną w InTouch, należy wybrać na górnej belce programu File/New
Window i podać nazwę okna (opcjonalnie dodatkowe parametry okna) i zatwierdzić OK.
W oknie, korzystając z belki narzędziowej znajdującej się po prawej stronie programu,
należy utworzyć Tekst '##' (kliknięcie w innej części okna myszką kończy dodawanie tekstu).
Następnie należy kliknąć dwukrotnie LPM na dodany napis i zaznaczyć Value Display
Analog. Następnie kliknąć Analog. W polu Expression należy wpisać nazwę zmiennej
do wyświetlenia (lub kliknąć dwukrotnie LPM w polu i wybrać zmienną z listy),
zmiany zatwierdzić OK, zmienić format na odpowiedni i zaznaczyć Fixed Width, a następnie
zatwierdzić dwukrotnie OK.
Aby uruchomić wizualizację, należy kliknąć przycisk Runtime w prawym górnym rogu
ekranu (okno, które chcemy wyświetlić musi być włączone). Główne okno aplikacji InTouch
pokazane jest na rys. 9.
9
Rys. 9. Aplikacja InTouch z jednym oknem
ZADANIA DO WYKONANIA:
W czasie wykonywania laboratorium proszę o sporządzanie notatek na potrzeby
sprawozdania oraz efektywnej realizacji terminu drugiego realizowanego w ramach cyklu o
tematyce OPC.
Rys. 10. Schemat poglądowy wymiany danych
10
Niezbędnym minimum wymaganym do zaliczenia laboratorium jest zrealizowanie
podpunktów 1-4.
Pracując na projekcie demonstracyjnym simdemo.opf:
1. Zapoznać się ze strukturą udostępniania danych w OPC:
- Zapoznać się ze strukturą drzewa i nazwać jego poszczególne gałęzie;
- Wskazać różnicę między "Channel1" i jego gałęziami podrzędnymi a "Data Type
Examples".
2. Zapoznać sie z działaniem OPC Quick Client:
- Uruchomić wbudowanego szybkiego klienta OPC serwera KepServer (pamiętać,
aby serwer został wcześniej uruchomiony);
- Określić, czym są symbole Q, V i T używane w technologii OPC charakteryzujące każdą
zmienną;
- W grupie Simulation Examples.Functions odczytać poprzez dwukrotne kliknięcie jedną
ze zmiennych o etykiecie Simulation Examples.Functions.Random, zwrócić uwagę na
wartości Q, V i T;
- W grupie Data Type Examples.16 Bit Device.K Registers nadpisać zmienne o etykietach
Data Type Examples.16 Bit Device.K Registers.Word1 i Data Type Examples.16 Bit
Device.K Registers.Word3.
3. Użycie MATLAB, jako klienta OPC:
- Wykorzystać MATLAB'a jako klienta, aby połączyć się z serwerem KepServer w wersji
demonstracyjnej;
- odczytać w MATLAB Simulation Examples.Functions.Random2;
- nadpisać poprzez MATLAB Data Type Examples.16 Bit Device.K Registers.Word1,
a następnie sprawdzić wartość tej samej zmiennej w OPC Quick Client.
4. Serwer OPC dla Siemens S-1200:
- utworzyć i skonfigurować projekt dla sterownika Siemens S-1200;
- obserwować na sterowniku wejście analogowe IW64 oraz wejście cyfrowe I0.0;
- utworzyć i skonfigurować projekt KepServer dla Siemens S-1200;
- odczytywać (tylko) wejście cyfrowe I0.0 oraz wejście analogowe IW64 na serwerze;
- zapisywać z serwera do sterownika Wyjście analogowe QW80 oraz wyjście cyfrowe Q0.0.
5. MATLAB, PLC, OPC, InTouch
- nadpisywać z MATLAB QW80 na sterowniku;
- na sterowniku sumować IW64 i QW80, zapisywać sumę na MW1;
11
- odczytać MW1 w InTouch.
(Zmodyfikować projekt serwera OPC, jeśli zachodzi taka potrzeba)
Bibliografia: https://opcfoundation.org/
http://www.kepware.com/
http://www.astor.com.pl/
http://www.mathworks.com/
http://en.termwiki.com/