Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Energoelektroniki i Maszyn Elektrycznych Symulator sterownika programowalnego PS4-201-MM1 Instrukcja użytkownika Gdańsk 2006-1 -
Spis treści 1. Informacje o programie... 3 2. Edycja programu użytkownika... 4 2.1. Otwieranie programów... 4 2.2. Deklaracja zmiennych... 5 2.3. Edycja kodu programu... 6 3. Uruchomienie symulacji... 9 4. Załącznik... 13-2 -
1. Informacje o programie Symulator jest programem symulującym działanie sterownika programowalnego PS4-201-MM1 firmy Moeller Electric. Symulacja obejmuje wykonywanie programu aplikacyjnego sterownika napisanego w języku listy instrukcji (IL Instruction List) lub w języku schematów drabinkowych (LD Ladder Diagram). jest narzędziem uniwersalnym, gdyż oprócz symulacji pozwala tworzyć programy i sprawdzać ich poprawność, a także uruchamiać je razem z aplikacją w postaci modelu sterowanego obiektu. został opracowany przez Krzysztofa Żukowskiego, dyplomanta kierunku Automatyka i Robotyka, w ramach jego pracy dyplomowej wykonywanej w Katedrze Energoelektroniki i Maszyn Elektrycznych. Żukowski K.: Symulator sterownika programowalnego PS4-201-MM1. Praca dyplomowa. Opiekun pracy: dr inż. I. Mosoń. Politechnika Gdańska, Wydz. Elektrotechniki i Automatyki, Gdańsk, 2001. Obrona pracy dyplomowej odbyła się 28 listopada 2001 roku. Opisy zamieszczone w tej instrukcji użytkownika zostały zaczerpnięte z wymienionej powyżej pracy dyplomowej (z rozdziału 3 i z załącznika). Z dodatkowymi informacjami dotyczącymi symulatora i jego wykorzystania można zapoznać się w poniższej publikacji. Mosoń I., Żukowski K.: Symulator sterownika programowalnego PS4-201-MM1. Zastosowanie komputerów w nauce i technice 2002, XII cykl seminariów zorganizowanych przez PTETiS Oddział w Gdańsku, Zesz. Nauk. Wydz. Elektrotechniki i Automatyki Politechniki Gdańskiej Nr 18, 2002, s.125-130. - 3 -
2. Edycja programu użytkownika Praca z symulatorem to w dużej mierze operacje na kodzie programu sterownika. został wyposażony w narzędzia do edycji programów PLC, dzięki którym można edytować programy, tworzyć nowe, zapisywać je na dysk w postaci plikowej i ponownie odczytywać. Forma prezentacji programu i deklaracji zmiennych może być wybrana przez użytkownika. Przyciski wyboru formy prezentacji pozwalają szybko wybrać preferowany rodzaj okna. W zależności od aktualnie wybranego rodzaju okna program udostępnia odpowiednie przyciski na listwie narzędziowej. Ograniczenie liczby przycisków (opcji dostępnych w danym momencie programu) stanowi duże ułatwienie w pierwszych kontaktach z programem. 2.1. Otwieranie programów Edytor pozwala tworzyć nowe programy, funkcje oraz bloki funkcyjne. Aby wybrać rodzaj jednostki oprogramowania należy kliknąć na jeden z trzech przycisków otwierających nowe okna edycyjne lub wybrać opcję z menu. Otwieranie nowych okien Rys.1. Przyciski otwierania nowych okien W edytorze można otwierać programy zapisane w plikach o rozszerzeniu POE. Pliki te można odczytywać z projektów zapisanych w oprogramowaniu Sucosoft S40, jak również zapisanych w programie. Odczyt plików z dysku Rys.2. Przyciski otwierania programów z pliku Otwarty program jest ładowany jako lista instrukcji; po załadowaniu użytkownik może wybrać dogodny sposób prezentacji. Pliki zapisane przez symulator na dysk mogą być - 4 -
odczytywane w oprogramowaniu Sucosoft S40. 2.2. Deklaracja zmiennych Wszystkie zmienne użyte w programie muszą być wcześniej zadeklarowane. Górna część okna edytora to lista deklaracji. Zawarte w niej opisy dotyczą typu, wartości początkowej, atrybutu, adresu zmiennej. Po deklaracji zmiennej dozwolony jest komentarz umieszczony w nawiasach (* *), lub w odpowiednim polu tabeli. Deklaracja obejmuje nie tylko zmienne, ale również bloki funkcyjne używane w programie. Każda deklaracja to ukonkretnienie bloku. Sekcja deklaracji może być przedstawiona (Rys.3) w postaci tabeli (lewa część) lub tekstu (prawa część). Sekcja deklaracji Rys.3. Okna deklaracji zmiennych Wybór sposobu przedstawiania umożliwiają przyciski na listwie narzędziowej. Nowa zmienna Sposób przedstawiania zmiennych Rys.4. Przyciski zmiany formy deklaracji zmiennych Gdy lista zmiennych jest przedstawiona w postaci tabeli, wpisu typu nowej zmiennej - 5 -
można dokonać wybierając z rozwijanej listy odpowiednią pozycję. Klikając podwójnie na pole typu tabeli zmiennych możemy wybrać typ bloku funkcyjnego z okna dialogowego. Rys.5. Okno dialogowe wprowadzania nazw bloków funkcyjnych Podstawowe typy zmiennych, operatory i bloki funkcyjne dostępne w symulatorze są wyszczególnione w załączniku. 2.3. Edycja kodu programu Edytor udostępnia dwie formy przedstawiania kodu źródłowego: listę instrukcji i schemat drabinkowy. Druga forma, z uwagi na ograniczenia przyjętej w Sucosoft S40 konwencji, będzie łączona ze schematem bloków funkcyjnych. Zamiany formy prezentacji, możliwe w trakcie edycji, są dostępne w obie strony IL LD oraz LD IL. Forma przedstawiania kodu programu Rys.6. Przyciski zmiany formy prezentacji programu Po wybraniu IL ukazuje się okno edytora tekstu, w którym można wpisać nowy program. Wpisywanie operatorów, funkcji, bloków funkcyjnych może odbywać się z klawiatury lub za pomocą przycisków listwy narzędziowej Edytora IL. - 6 -
Drukuj listę Sprawdź składnię Operacje edytorskie: kopiuj, wytnij, wklej Wstaw funkcję lub zadeklarowany blok funkcyjny Początek nowej linii i wpis LD Rys.7. Przyciski listwy narzędziowej okna edycyjnego listy instrukcji Wybranie jako języka edycji schematu drabinkowego powoduje zmianę z formy tekstowej na graficzną tekst zawarty w kodzie programu jest tłumaczony na układ bloków lub styków. Korzystanie z takiej konwersji wymaga poprawnie napisanego kodu; gdy występują w nim błędy lub tłumaczenie nie jest możliwe następuje umieszczenie fragmentu kodu IL w oknie graficznym. Wstaw funkcję Styk równolegle lub szeregowo Wstaw linię skoku lub powrotu Wstaw nową linię schematu bloków funkcyjnych Wstaw nową linię z blokiem funkcyjnym Wstaw nowy szczebel drabinki Rys.8. Przyciski listwy narzędziowej okna edycyjnego schematów drabinkowych Edytor Schematu drabinkowego posiada własną listwę narzędziową, która pojawia się w chwili przejścia na graficzną formę wyświetlania. Dostępne opcje pozwalają modyfikować i tworzyć nowe linie schematu. Gdy zastosowanie opcji w stosunku do aktywnej w schemacie linii nie jest możliwe, przycisk związany z tą opcją jest nieaktywny. Przykładowe linie napisane w edytorze graficznym przedstawiono na rysunku 9. - 7 -
Rys.9. Przykładowe linie programu Modyfikacja nazw zmiennych sterujących stykami, lub zmiennych znajdujących się na wejściach funkcji i bloków funkcyjnych, następuje przez podwójne kliknięcie myszką lub podświetlenie elementu i wciśnięcie klawisza Enter. - 8 -
3. Uruchomienie symulacji Rozpoczęcie symulacji powoduje pojawienie się okna z panelem wirtualnego sterownika. Panel przedstawia aktualną konfigurację sterownika sterownik PS4-201-MM1 i wybrane rozszerzenia. Panel służy do wprowadzania zmiennych wejściowych i sygnalizacji stanu zmiennych wyjściowych we wszystkich modułach konfiguracji. Konfigurację sterownika można modyfikować do tego celu służy specjalne okno. Moduły można wybrać z list rozwijanych lub załadować cały zestaw modułów z pliku. Konfiguracja może być zachowywana na dysku a także odczytywana pliki z konfiguracją zawierają tekstową informację o nazwach wybranych modułów. Wybór konfiguracji sterownika Rys.10. Przycisk aktywacji okna tworzenia konfiguracji Rys.11. Okno konfiguracji sterownika W oknie definicji konfiguracji należy również wybrać adres sterownika w sieci. Adres ten stanowi istotną informację dla zdefiniowanych zmiennych. Symulacja działania sterownika jest możliwa, gdy aktywne jest okno edycyjne z programem, a wśród okien otwartych znajdują się funkcje i bloki funkcyjne użytkownika zastosowane w symulowanym programie. Symulacja jest wywoływana jednym przyciskiem z głównej listwy narzędziowej. - 9 -
Zakończenie symulacji Zatrzymanie symulacji Wykonanie jednej instrukcji Uruchomienie symulacji Rys.12. Przyciski uruchomienia i wyboru trybu pracy symulatora Wstrzymanie cyklu symulacji jest opcją, która pozwala wykonywać program krok po kroku. Każde wciśnięcie przycisku wykonanie jednej instrukcji powoduje przejście do kolejnej linii listy. Praca z symulowanym sterownikiem dzięki graficznemu obrazowi panelu jest intuicyjna i nie wymaga większych komentarzy. Wprowadzanie zmiennych analogowych odbywa się pod gniazdami komunikacyjnymi, lub w dolnej części sterownika w miejscu gdzie jest umieszczona listwa zaciskowa. Pola edycyjne do wprowadzania danych pokazują się po kliknięciu na listwę zaciskową. Zmienne binarne wprowadzane są za pomocą przycisków, a ich stany sygnalizowane są zapaleniem się diod. Oprócz panelu sterownika można obserwować także: wykres z przebiegami zmiennych numerycznych, tabelę z wartościami zmiennych. Poszczególne okna, które można włączyć podczas symulacji niosą dodatkową informację o stanach zmiennych. Ułatwia to testowanie zwłaszcza wtedy, gdy program jest wykonywany krok po kroku, czyli gdy przejście do kolejnej instrukcji jest wywoływane przez użytkownika. Okno podglądu zmiennych zawiera tabelę wartości zmiennych i ich nazwy. Włączane jest ono przyciskiem na listwie narzędziowej w dolnej części okna symulacji. Gdy oknem tym jest wykres lub tabela podglądu wartości, to po aktywacji należy do okna dodać nazwy zmiennych, których wartości mają być przedstawiane. Uruchomienie podglądu listy instrukcji powoduje pojawienie się okna z instrukcjami programu głównego. Okno pozwala obserwować aktualnie wykonywaną instrukcję gdy symulator jest w trybie wstrzymania cyklu. - 10 -
Przyciski wyboru modułu Informacje o cyklu Okno ze sterownikiem i jego rozszerzeniami Wykres z przebiegiem wartości Okno podglądu wartości zmiennych Okno podglądu listy instrukcji Rys.13. Okno symulacji Aktywacja podglądu listy instrukcji Dodawanie zmiennych do listy podglądu Aktywacja listy podglądu Zapis wykresu do pliku Wydruk wykresu Dodawanie zmiennych do wykresu Aktywacja wykresu Rys.14. Przyciski pomocniczych okien symulacji - 11 -
Jeśli istnieje potrzeba przetestowania programu razem ze sterowanym urządzeniem można posłużyć się jednym z modeli umieszczonych w symulatorze. Podłączenie do wirtualnego sterownika modelu obiektu pozwala testować program w warunkach najbardziej zbliżonych do rzeczywistych. Odpowiednio zbudowany model pozwala zbadać zachowanie programu w sytuacjach awaryjnych np. po wyłączeniu zasilania. Sytuacje awaryjne takie jak wyłączenia zasilania mogą spowodować powstanie takich warunków początkowych dla programu, których nie przewidział programista. Określenie podłączonych wejść i wyjść sterownika odbywa się w specjalnych polach charakterystycznych dla każdego modelu. Używając prawego przycisku myszki na tabeli połączeń można aktywować okno z listą zmiennych wejściowych i wyjściowych. Wybór zmiennej i wciśnięcie przycisku OK jest równoznaczne z podłączeniem wejścia lub wyjścia sterownika do modelu oraz dodaniem połączenia do listy. Na rysunku 15 przedstawiono model silnika liniowego. Umieszczona w prawym dolnym rogu tabela jest listą połączeń wyjść i wejść modelu z wirtualnym sterownikiem. Rys.15. Model silnika liniowego Wybranie modelu w konfiguracji wirtualnego sterownika powoduje, że nie jest możliwe wprowadzanie sygnałów z panelu sterownika. Sygnały z modelu wybierane są w programie na podstawie tabeli połączeń. - 12 -
4. Załącznik Typy zmiennych: BOOL, INT, SINT, USINT, UINT, String, TIME, TIME_of_DAY, DATE, DATE_and_TIME, BYTE, WORD Bloki funkcyjne: F_TRIG, R_TRIG, TimeGenerator, MS_TimeRising, S_TimeRising, MS_TimeFalling, S_TimeFalling, RS, SR, TP, CTD, CTU, CTUD, TOF, TON, SR_x, SRB_x, SRW_x, LifoBx, LifoWx, FifoBx, FifoWx, 'RTC', 'GetRealTimeClock', 'DATConcat', 'DateConcat', 'TimeConcat', 'TODConcat', 'DATSplit', 'DateSplit', 'TimeSplit', 'TODSplit', 'TimePulse', 'SetRealTimeClock', '_16BitCounter', '_16Bit_Compare', '_16BbitBinaryToBCD', 'BCDTo16BitBinarry', 'CounterAlarm' Lista operatorów: LD, OR, AND, XOR, ST, S, R, CAL, JUMP, GE, GT, LE, LT Lista funkcji konwersji: USINT_TO_BYTE, UINT_TO_WORD,INT_TO_WORD, USINT_TO_WORD, SINT_TO_WORD, UINT_TO_BYTE, SINT_TO_BYTE, USINT_TO_BOOL, UINT_TO_BOOL, USINT_TO_BOOL, INT_TO_BOOL, USINT_TO_SINT, SINT_TO_USINT, UINT_TO_INT, INT_TO_UINT, USINT_TO_UINT, USINT_TO_INT, SINT_TO_UINT, SINT_TO_INT, UINT_TO_USINT, UINT_TO_SINT, INT_TO_USINT, INT_TO_SINT, UDINT_TO_UINT, BOOL_TO_USINT, BOOL_TO_UINT, BOOL_TO_SINT, BOOL_TO_INT, BYTE_TO_USINT, WORD_TO_UINT, BYTE_TO_SINT, WORD_TO_INT, BYTE_TO_SINT, WORD_TO_INT, BYTE_TO_UINT, BYTE_TO_UDINT, BYTE_TO_INT, WORD_TO_USINT, WORD_TO_SINT, BYTE_TO_BOOL, WORD_TO_BOOL, WORD_TO_BOOL, BYTE_TO_WORD, BYTE_TO_DWORD, WORD_TO_DWORD, WORD_TO_BYTE, DWORD_TO_BYTE, DWORD_TO_WORD, BOOL_TO_BYTE, BOOL_TO_WORD, BOOL_TO_DWORD, DATE_AND_TIME_TO_TIME_OF_DAY, DATE_AND_TIME_TO_DATE, TIME_TO_UINT, TIME_TO_USINT, USINT_TO_BCD, - 13 -
UINT_TO_BCD, SINT_TO_BCD, INT_TO_BCD, BCD_TO_USINT, BCD_TO_UINT, BCD_TO_SINT, BCD_TO_INT, ADDRESS_TO_UINT Lista funkcji operujących rejestrami: IsCarryRegister, IsBitTrue, IsCarry, IsOverflow, IsPositive, IsZero Lista funkcji arytmetycznych: ADD, DIV, MUL, SUB Pozostałe funkcje: NOT, ABS, NEG, ROL, ROR, SHL, SHR, ShiftLeftCarry, ShiftRightCarry, LEN - 14 -