Materiały dodatkowe Simulink PLC Coder

Transkrypt

Materiały dodatkowe Simulink PLC Coder
Katedra Inżynierii Systemów Sterowania
Materiały dodatkowe
Simulink PLC Coder
Opracowali:
mgr inż. Tomasz Karla
Data:
Listopad, 2016 r.
Dodatkowe informacje
Materiały dodatkowe mają charakter ogólny i służą tylko do zapoznania się
z poszczególnymi procedurami. Należy korzystać z nich wybiórczo w
zależności od potrzeb. Parametry opisane w niniejszej instrukcji nadpisują
wszelkie parametry z materiałów dodatkowych.
Wstęp
Simulink PLC Coder jest narzędziem pakietu oprogramowania MATLAB,
który pozwala na „targetowanie” (generowanie kodu źródłowego
kompatybilnego z konkretnym urządzeniem) bloków z modeli Simulink do
sterowników PLC.
Generowany kod źródłowy aplikacji może być w postaci kodu drabinkowego
(tylko i wyłącznie operacje binarne na stycznikach i przekaźnikach) oraz w
języku ST (Structural Text).
Simulink PLC Coder wspiera szereg IDE (ang. Integrated Development
Environment) dla sterowników PLC różnych producentów, jednak nie
wszystkie są wspierane w jednakowym stopniu.
Występują duże ograniczenia w ilości wykorzystywanych bloków z
przyborników Simulink czy też możliwych opcji solverów.
Procedura generowania kodu dla PLC w języku ST na wybranym przykładzie
1. Zdefiniować model Simulink.
2. Zidentyfikować elementy, dla których należy wygenerować kod
źródłowy.
3. Umieścić wybrane elementy w subsystemie.
4. Skonfigurować subsystem aby był traktowany jako „atomic block” (z
menu pod prawym przyciskiem myszy po kliknięciu na subsystem).
5. Wybrać „target” IDE (np. Tia Portal) w zakładce PLC Code Generation
w ustawieniach modelu (z menu pod prawym przyciskiem myszy po
kliknięciu na subsystem PLC Code -> Options).
Należy pamiętać by także zadeklarować odpowiednią ścieżkę dostępu do
IDE. W systemach 64 bitowych Windows, biblioteki często są instalowane
w folderze Program Files (x86). Domyślna ścieżka nie musi więc być
poprawna.
W wypadku sterowników Siemens należy wybrać Tia Portal Double
Precision, dla sterowników GeFanuc zaś Generic.
6. Wybrać solver i ustawić parametry modelu.
Rekomendowane jest użycie solvera typu fixed-step wersji discrete.
7. Sprawdzić kompatybilność subsytemu z Simulink PLC Coderem” (z
menu pod prawym przyciskiem myszy po kliknięciu na subsystem).
8. Wygenerować kod ST ” (z menu pod prawym przyciskiem myszy po
kliknięciu na subsystem).
Wygenerowany kod pojawi się w aktywnym folderze ustawionym w
Workspace MATLABA w podfolderze zadeklarowanym przy wybieraniu
IDE. Można go otworzyć za pomocą Notatnika Windows.
9. Sprawdzić otrzymany kod źródłowy.
10. Zaimportować kod do sterownika PLC.
Procedura wdrażania kodu z Simulink PLC Coder na PLC Siemens
1. Zaimportować kod źródłowy z Simulink PLC Coder.
Zakładka External source files.
2. Wygenerować bloki funkcyjne z kodu źródłowego (menu pod prawym
przyciskiem myszy).
Zostaną wygenerowane nowe bloki funkcyjne, które można wykorzystać w
kodzie sterownika.
3. Dodać blok „Cyclic interrupt” w „Program blocks” w celu zapewnienia pracy
z określonym okresem wcześniej zadeklarowanym w modelu Simulink.
4. Umieszczenie wybranych funkcji w drabince programu.
5. Zadeklarowanie wymaganych zmiennych i przypisanie im pamięci.
6. Zmienne macierzowe dodaje się w blokach typu „Data block” w zakładce
„Program blocks”
Dla macierzy deklarujemy nazwę zmiennej, następnie jej typ wpisując wg
wzoru:
Array [0 .. X-1] of TYPE
Gdzie X-1 to liczba elementów macierzy minus 1, TYPE zaś typ danych
np. LREAL
Zmienne zostaną utworzone automatycznie. Dopuszczalne są tylko
jednowymiarowe. Jeśli kod korzysta z tablicy dwuwymiarowej, należy
zadeklarować tablicę o długości wszystkich pól macierzy dwuwymiarowej
np. macierz 3x2 to będzie Array [0 .. 5] of LREAL
W wypadku korzystania z macierzy jako danych wejściowych/wyjściowych
z bloków funkcyjnych, należy podać tylko nazwę bloku pamięci Data block
oraz nazwę zmiennej bez uzupełniana indeksu (nawiasy „[]” należy
skasować jeśli zostaną podpowiedziane w czasie wpisywania nazwy
zmiennej)
7. Dodać blok „Startup”.
Blok ten wykorzystany zostanie do wprowadzenia warunków
początkowych. Dodać w bloku startup nowo utworzoną funkcję z
zaimportowanego kodu ST, wybrać odpowiedni blok danych, w którym
przechowywane są dane funkcji (w wypadku, gdy już wcześniej została
ona dodana do kodu w sterowniku i posiada już zadeklarowany blok
danych funkcji) lub dodać nowy blok danych funkcji. Następnie ustawić
wejście funkcji ssMethodType na 0. W wypadku korzystania z funkcji w
głównym programie należy ustawić ja na wartość 1.
8. Sprawdzić przepływ danych przez wszystkie bloki i uruchomić program.
Zmienne można podglądać za pomocą tablic „Watch table” lub w oknie
kodu wykonywanego przez sterownik.