Katedra Inżynierii Systemów Sterowania WEiA PG Przemysłowe ...

11
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).

Transcript of Katedra Inżynierii Systemów Sterowania WEiA PG Przemysłowe ...

Page 1: Katedra Inżynierii Systemów Sterowania WEiA PG Przemysłowe ...

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).

Page 2: Katedra Inżynierii Systemów Sterowania WEiA PG Przemysłowe ...

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.

Page 3: Katedra Inżynierii Systemów Sterowania WEiA PG Przemysłowe ...

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).

Page 4: Katedra Inżynierii Systemów Sterowania WEiA PG Przemysłowe ...

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.

Page 5: Katedra Inżynierii Systemów Sterowania WEiA PG Przemysłowe ...

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

Page 6: Katedra Inżynierii Systemów Sterowania WEiA PG Przemysłowe ...

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.

Page 7: Katedra Inżynierii Systemów Sterowania WEiA PG Przemysłowe ...

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.

Page 8: Katedra Inżynierii Systemów Sterowania WEiA PG Przemysłowe ...

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.

Page 9: Katedra Inżynierii Systemów Sterowania WEiA PG Przemysłowe ...

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

Page 10: Katedra Inżynierii Systemów Sterowania WEiA PG Przemysłowe ...

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;

Page 11: Katedra Inżynierii Systemów Sterowania WEiA PG Przemysłowe ...

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/