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.