Podstawowe wiadomości dotyczące sterowników SIMATIC S7 200

Podobne dokumenty
MiAcz2. Programowalne systemy przemysłowe automatyki PLC

Programowalny sterownik logiczny PLC

PLC Siemens S7 200 S PC. Charakterystyka S Panel tekstowy

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Kurs Zaawansowany S7. Spis treści. Dzień 1

Elementy oprogramowania sterowników. Instrukcje podstawowe, funkcje logiczne, układy czasowe i liczenia, znaczniki

Część 2. Mikrokontrolery i programowalne urządzenia sterujące

Politechnika Gdańska. Gdańsk, 2016

Sterowniki programowalne

Opracował: Jan Front

CoDeSys 3 programowanie w języku drabinkowym LD

Działanie i charakterystyka sterownika GE FANUC VersaMaxNano

Programowanie sterowników PLC wprowadzenie

Podstawy programowania PLC w języku drabinkowym - ćwiczenie 5

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

Kurs STARTER S5. Spis treści. Dzień 1. III Budowa wewnętrzna, działanie i obsługa sterownika (wersja 0504)

Sterowniki Programowalne (SP) Wykład #4

Język FBD w systemie Concept

Kurs Podstawowy S7. Spis treści. Dzień 1

Sterowniki Programowalne (SP)

Architektura komputerów

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

PLC1: Programowanie sterowników logicznych SIEMENS SIMATIC S7-300/400 - kurs podstawowy

Spis treści. Dzień 1. I Rozpoczęcie pracy ze sterownikiem (wersja 1707) II Bloki danych (wersja 1707) ZAAWANSOWANY TIA DLA S7-300/400

Sterownik Visilogic V260

Kurs SIMATIC S7-300/400 i TIA Portal - Zaawansowany. Spis treści. Dzień 1

Konfiguracja i programowanie PLC Siemens SIMATIC S7 i panelu tekstowego w układzie sterowania napędami elektrycznymi. Przebieg ćwiczenia

PROGRAMOWALNE STEROWNIKI LOGICZNE

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Kurs SIMATIC S7-300/400 i TIA Portal - Podstawowy. Spis treści. Dzień 1. I System SIEMENS SIMATIC S7 - wprowadzenie (wersja 1503)

STEROWANIE MASZYN I URZĄDZEŃ I. Laboratorium. 4. Przekaźniki czasowe

CoDeSys 3 programowanie w języku FBD

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Sterowniki programowalne. System GE Fanuc serii Zasady działania systemu (część I)

Siemens Simatic S7-300 Informacje podstawowe o sterowniku programowalnym

1. Język programowania STL... 2 str. 2. Pojęcie stosu... 3 str Funkcja ładuj - LD... 4 str Iloczyn i suma logiczna - AND/OR... 4 str.

Przejrzystość, intuicyjny charakter i łatwość oprogramowania sterowników FATEK.

Struktura i działanie jednostki centralnej

STEP 7/MicroWin 32 - WPROWADZENIE

S P I S T R E Ś C I. 1. Język programowania STL... 2 str. 2. Pojęcie stosu... 5 str.

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

PLC2: Programowanie sterowników logicznych SIEMENS SIMATIC S7-300/400 - kurs zaawansowany

Ćwiczenia z S S jako Profinet-IO Controller. FAQ Marzec 2012

Konfiguracja i programowanie sterownika GE Fanuc VersaMax z modelem procesu przepływów i mieszania cieczy

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Schemat drabinkowy str Lista instrukcji str. 3. Opis elementów logicznych oprogramowania MicroWin...

LABORATORIUM AUTOMATYKA i ROBOTYKA Inne funkcje sterownika PLC część 2

Mikroprocesor Operacje wejścia / wyjścia

Spis treści. Dzień 1. I Konfiguracja sterownika (wersja 1312) II Tryby pracy CPU (wersja 1312) III Bloki funkcyjne (wersja 1312)

Architektura komputerów. Asembler procesorów rodziny x86

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Dokumentacja Licznika PLI-2

Temat: Pamięci. Programowalne struktury logiczne.

Organizacja typowego mikroprocesora

Programowany układ czasowy

Spis treści. I Sterowniki programowalne SIMATIC (wersja 1908) II Łączenie sterownika z programatorem (wersja 1908)

Przykład programowania PLC w języku drabinkowym - ćwiczenie 6

Cyfrowe Elementy Automatyki. Bramki logiczne, przerzutniki, liczniki, sterowanie wyświetlaczem

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

LEKCJA TEMAT: Zasada działania komputera.

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Kurs STEP7 TIA - Zaawansowany. Spis treści. Dzień 1. I Konfiguracja sprzętowa sterownika SIMATIC S7-1200/1500 (wersja 1501)

Ćw. 7: Układy sekwencyjne

2. Architektura mikrokontrolerów PIC16F8x... 13

STEROWANIE URZĄDZENIAMI PRZEMYSŁOWYMI ĆWICZENIE 1 OPERACJE NA DANYCH

1 Podstawy c++ w pigułce.

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Sterowniki PLC. Sterowniki PLC. Wprowadzenie nazewnictwo. Historia. Dlaczego sterowniki PLC stały się tak popularne?

Podstawy programowania sterowników SIMATIC S w języku LAD / Tomasz Gilewski. Legionowo, cop Spis treści

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

ARCHITEKTURA PROCESORA,

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Budowa i zasada działania komputera. dr Artur Bartoszewski

Zasady wykonywania programu drabinkowego w sterowniku

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Programowany układ czasowy APSC

Elastyczne systemy wytwarzania

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

1.1. Wymogi bezpieczeństwa Pomoc techniczna TIA Portal V13 instalacja i konfiguracja pakietu...18

Wstęp Architektura... 13

Magistrala systemowa (System Bus)

Mikrooperacje. Mikrooperacje arytmetyczne

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

STEROWNIKI PROGRAMOWALNE PLC

INSTRUKCJA OBSŁUGI. Przekaźnik czasowy ETM ELEKTROTECH Dzierżoniów. 1. Zastosowanie

LEKCJA TEMAT: Współczesne procesory.

Przemysłowe Systemy Automatyki ĆWICZENIE 2

Karta katalogowa JAZZ OPLC JZ20-R31

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Lista instrukcji mikroprocesora Programowanie w assemblerze

Systemy wbudowane. Wprowadzenie. Nazwa. Oznaczenia. Zygmunt Kubiak. Sterowniki PLC - Wprowadzenie do programowania (1)

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

Transkrypt:

Podstawowe wiadomości dotyczące sterowników SIMATIC S7 200 SIMATIC S7-200 firmy Siemens jest nazwą nowej rodziny sterowników programowalnych (PLC = ang. Programmable Logic Controller) zaprojektowanych do realizacji małych i średnich zadań sterowania automatycznego. Dzięki temu istnieje możliwość łatwego i masowego wprowadzania nowoczesnych układów kontroli do najprostszych maszyn czy linii technologicznych. Charakteryzują się one małymi wymiarami, zwartą budową oraz potężnym zestawem instrukcji. Koncepcja ich budowy oparta jest na sprawdzonej strukturze sterowników przemysłowych SIMATIC S5. Głównym elementem każdego sterownika jest tzw. centralna jednostka przetwarzająca (CPU = ang. central processing unit) nadzorująca pracą sterownika. Rodzaj użytej jednostki centralnej stanowi podstawę podziału sterowników S7. Różnią się one przede wszystkim liczbą obsługiwanych wejść-wyjść. Porównanie różnych modeli S7-200 Programy dla sterowników S7, przy wykorzystaniu programu narzędziowego STEP 7 Micro/Win lub STEP 7 Micro/DOS, mogą być przedstawione w formie graficznej jako tzw. schemat drabinkowy (LAD) lub jako uporządkowana lista (ciąg) instrukcji (STL). Edytor LAD wyświetla program w postaci graficznej, podobnej do elektrycznego diagramu połączeń. Programowanie to pozwala symulować przepływ prądu elektrycznego ze źródła zasilania przez serię logicznych warunków wejściowych (styków), które na końcu załączają wyjście. Edytor LAD po lewej stronie posiada szynę zasilającą, która dostarcza energii do obwodu bramek (styków). Styk, który jest zwarty umożliwia przepływ energii do następnego elementu (styk rozwarty blokuje przepływ) co w końcu, w zależności od warunków wej./wyj powoduje wywołanie odpowiedniej akcji. Urządzeniem umożliwiającym tworzenie programu sterującego może być: komputer klasy IBM PC lub komputer przenośny.

Charakterystyka S7-200 CPU222 Moduł centralny S7-200 jest zwartym urządzeniem, składającym się z jednostki centralnej (CPU) oraz modułów rozszerzeń. Procesor (CPU) realizuje przetwarzanie programu i zapamiętywanie danych procesu automatyzacji. Dodatkowe wejścia i wyjścia można zrealizować poprzez dołączenie modułów rozszerzeń. Moduł zasilacza zasila jednostkę centralną i wszystkie przyłączone moduły rozszerzające. Wejścia i wyjścia łączą sterownik z obiektem : wejścia I0.0 I0.7 nadzorują poziom sygnałów urządzeń wykonawczych (np. przełączniki lub czujniki), a wyjścia Q0.0 Q0.5 sterują pracą pomp, silników i innych urządzeń automatyki. Za pomocą interfejsu komunikacyjnego (łącza PPI) można do jednostki centralnej przyłączyć programator i inne urządzenia. Niektóre procesory S7-200 posiadają dwa interfejsy komunikacyjne. Wskaźniki stanu (diody LED) informują o trybie pracy procesora (RUN lub STOP), bieżącym stanie sygnałów na zintegrowanych wejściach i wyjściach, oraz o ewentualnych błędach systemowych. Gdy zachodzi konieczność użycia zegara czasu rzeczywistego należy wybrać odpowiednią jednostkę centralną CPU, ponieważ nie wszystkie CPU posiadają wbudowany zegar czasu rzeczywistego. Opcjonalny moduł EEPROM pozwala na zapis programu, jak również może służyć jako nośnik danych do przenoszenia danych pomiędzy CPU. Sterownik pracuje cyklicznie, na początku każdego cyklu przetwarzania stany modułów wejściowych są odczytywane i zapisywane do pamięci wejść procesowych (PII). Pamięć wejść procesowych jest specjalnym obszarem pamięci w sterowniku programowalnym. Na końcu przetwarzania cyklu programu wyniki przetwarzania są przekazywane do pamięci wyjść procesowych (PIQ). Każdy cykl programu kończy ustawieniem wyjść fizycznych sterownika. Po zakończeniu cyklu następuje rozpoczęcie następnego. Jednostka centralna sterownika przetwarza sygnały wejściowe zgodnie z poleceniami zapisanymi w programie użytkowym. Cykl obejmuje odczyt wejść, jedno przetworzenie programu użytkowego i zapis do wyjść. W trakcie przetwarzania programu realizowana jest autodiagnostyka i obsługa komunikacji. Moduły wyjść przetwarzają sygnały przychodzące z programu użytkowego na sygnały wyjściowe, takie jak napięcia, prądy, czy też stan styków przekaźników wyjściowych sterownika. Wprowadzenie do programowania sterowników S7 200 za pomocą schematów drabinkowych Program składa się z wykonywalnych instrukcji oraz komentarzy. Instrukcje zgrupowane są w tzw. program główny oraz procedury programu lub procedury przerwań. Stworzony program jest kompilowany i ładowany do S7-200 (bez komentarzy!). Dla optymalnej organizacji programu, należy użyć elementów organizacyjnych takich jak: program główny (Main), podprogramy (subroutines), programy / procedury przerwa (interrupt routines). Procedura główna (Main) stanowi podstawowy trzon programu kontrolującego aplikację. S7-200 wykonuje ją sekwencyjnie jeden raz w każdym cyklu. Procedura główna (Main) jest odpowiednikiem bloku programowego OB1 (w sterownikach serii S5 oraz S7-300/400).

Podprogramy stanowiące części programu aplikacji są wykonywane tylko wtedy, gdy zostaną odpowiednio wywołane w programie głównym, przez inny podprogram lub przez wystąpienie zdarzenia/przerwania systemowego. Podprogramy są bardzo pomocne do tworzenia powtarzających się funkcji. Utworzona funkcja może by wywoływana wiele razy w programie aplikacji skracając w ten sposób ilość niezbędnego kodu sterującego procesem. Użycie podprogramów dostarcza wiele korzyści : Użycie podprogramów redukuje całkowitą ilość kodu programu. Użycie podprogramów zmniejsza długo cyklu programu przez przesunięcie części kodu poza procedurę główną. S7-200 cyklicznie wykonuje tylko procedur główną, niezależnie czy kod jest czy nie jest wykonywany. Zastosowanie podprogramów w procedurze głównej pozwala wykonywa ich kod tylko gdy jest to konieczne/dozwolone. Podprogramy dzielą kod na funkcjonalne części przez co staje się czytelniejszy oraz łatwiejszy do wykorzystania w innych programach z minimalnym, dodatkowym nakładem pracy. Programy przerwań stanowią opcjonalną część programu, która reaguje na specyficzne zdarzenie w systemie. Procedura przerwania określa czynności, które należy wykonać w razie wystąpienia zdarzenia. Kiedy zdarzenie wystąpi S7-200 wykonuje kod procedury przerwania. Procedura przerwania nie jest wykonywana przez program główny. Jest ona skojarzona ze zdarzeniem i S7-200 wykonuje ją tylko w przypadku wystąpienia zdarzenia oraz tyle razy ile ono wystąpi.

Szczebel drabiny logicznej (oznaczany w programie jako NETWORK) musi posiadać odpowiedni format i składnię. Najważniejsze zasady: każdy szczebel może zawierać do 16 linii równoległych, każda linia może zawierać do 16 elementów logicznych połączonych szeregowo, ostatnim elementem szeregowego połączenia w danym szczeblu musi być jeden z przekaźników lub blok funkcyjny, szczebel może zawierać maksymalnie do 16 przekaźników, szczebel musi zawierać przynajmniej jeden styk przed wystąpieniem przekaźnika, bloku funkcyjnego lub połączenia pionowego, nie może wystąpić rozgałęzienie mające początek lub koniec wewnątrz innego odgałęzienia. Wybierając w programie sterującym określone wejście (I) lub wyjście (Q) sterownika należy podać numer identyfikacyjny (I/O) określający jednocześnie adres w pamięci wewnętrznej CPU. Specyfikacja identyfikatorów, którymi możemy się posługiwać przy tworzeniu programu sterującego : Identyfikator - oznaczenie nazwa I - zmienna wejściowa Q - zmienna wyjściowa M - wewnętrzna zmienna dyskretna SM - wewnętrzna zmienna specjalna (zmienna systemowa) V - zmienne pamięciowe T - timer C - licznik AI - zmienna wejściowa analogowa AQ - zmienna wyjściowa analogowa AC - akumulator HC - szybki licznik K stała Systemowe bity pamięci SM Bity systemowe zawierają różne informacje i funkcje sterujące oraz stanowią komunikację pomiędzy sterownikiem S7-200, a programem użytkownika.

Dostęp do danych S7-200 zachowuje dane w różnych obszarach pamięci, które maj unikalne adresy. Można bezpośrednio odwoływać się do adresu pamięci, który chcemy użyć. Pozwala to programowi na bezpośredni dostęp do danych. Aby mieć dostęp do bitu w obszarze pamięci, należy podać adres, który zawiera identyfikator obszaru pamięci, adres bajtu i numer bitu. Rysunek pokazuje przykład dostępu do bitu (który zwany jest równie adresowaniem bajt.bit ). W tym przykładzie obszar pamięci oraz adres bajtu (I= wejście, i 3 = 3 bajty) są rozdzielone kropką (.) aby odseparować adres bitu (bit 4-y). Można korzystać z kilku obszarów pamięci (V, I, Q, M, S, L oraz SM) używając danych jak bajt, słowo lub podwójne słowo. Aby mieć dostęp do bajtu, słowa, podwójnego słowa w pamięci, należy wyspecyfikować adres w sposób podobny jak dla bitu. Adres ten zawiera identyfikator obszaru, oznaczenie rozmiaru danej oraz adres bazowy bajtu, słowa lub podwójnego słowa. Obraz wejść procesu: I S7-200 próbkuje fizyczne wejścia na początku każdego cyklu programu i zapisuje je do rejestru obrazu wejściowego procesu. Obszar ten jest dostępny poprzez adresowanie bitów, bajtów, słów oraz podwójnych słów. Bit: I[adres bajtu].[adres bitu] I0.1 Bajt, słowo lub podwójne słowo: I[rozmiar][adres bazowy] IB4 Obraz wyjść procesu: Q Na końcu cyklu programu, S7-200 kopiuje wartości zapisane w rejestrze obszaru wyjść procesu do wyjść fizycznych. Obszar ten jest dostępny poprzez adresowanie bitów, bajtów, słów oraz podwójnych słów. Bit: Q[adres bajtu].[adres bitu] Q1.1 Bajt, słowo lub podwójne słowo: Q[rozmiar][adres bazowy] QB5 Obszar pamięci danych: V Pamięć typu V może by użyta do przechowywania pośrednich wyników operacji programu wykonywanych przez CPU. Obszar ten jest dostępny poprzez adresowanie bitów, bajtów, słów oraz podwójnych słów. Bit: V[adres bajtu].[adres bitu] V10.2 Bajt, słowo lub podwójne słowo: V[rozmiar][adres bazowy] VW100

Obszar pamięci o dostępie bitowym: M Pamięć typu M może by użyta jako obszar znaczników do zapamiętania stanów binarnych wyników operacji logicznych. Obszar ten jest dostępny poprzez adresowanie bitów, bajtów, słów oraz podwójnych słów. Bit: M[adres bajtu].[adres bitu] M26.7 Bajt, słowo lub podwójne słowo: M[rozmiar][adres bazowy] MD20 Akumulatory AC Akumulatory są uniwersalnymi rejestrami odczytu i zapisu, które mogą by użyte podobnie jak pamięć. Przykładowo, akumulatorów można użyć do przekazania parametrów do i z podprogramu oraz zachowania pośrednich wartości użytych w obliczeniach. S7-200 posiada 32-bitowe akumulatory (AC0, AC1, AC2 i AC3). Dane w akumulatorach mogą by dostępne jako bajty, słowa i podwójne słowa. Rozmiar dostępnych danych jest zależny od instrukcji użytej przy pobieraniu danych z akumulatora. Jak pokazano na rysunku, można użyć 8 lub 16 mniej znaczących bitów akumulatora przy dostępie bajtowym lub słowowym. Aby użyć 32 bity akumulatora należy użyć instrukcji podwójnego słowa. Podstawowe elementy logiczne programu sterującego, które mogą być przypisane wejściom oraz wyjściom elementów logicznych w oprogramowaniu narzędziowym STEP7-Micro/Win. Nazwa kategorii Styki - wejścia (Contacts) Przekaźniki wyjściowe, cewki wyjścia (Output Coils) Timery i liczniki (Timers/Counters) Typ styki normalnie otwarte/zamknięte, komparatory, styk negacji, styki impulsowe. przekaźnik o stykach otwartych, przekaźniki ustawialne SET/RESET. timery bez pamięci, timery z pamięcią, liczniki zliczające w górę oraz w górę i w dół.

Instrukcje styków i cewek wraz z komentarzami.

Timery Timery zliczają określony przedział czasowy. Rozdzielczość (lub podstawa czasu) danego timera określona jest przez wartość czasu danego interwału. Np., TON z rozdzielczości 10ms zlicza kolejne interwały 10-milisekundowe jakie wystąpią po uaktywnieniu timera TON: zliczenie do 50 dla timera 10-milisekundowego oznacza warto 500 ms. Timery SIMATIC dostępne są z rozdzielczością : 1ms, 10 ms i 100 ms. TON służy do odmierzania pojedynczych interwałów czasowych. TONR służy do kumulacji kolejnych interwałów czasowych. TOF służy do opóźnienia warunku wyłączenia (nieaktywny). Numery kolejne(nazwy) i rozdzielczości timerów : Instrukcje TON i TONR zliczają czas gdy wejście zezwalające (enable) jest aktywne. Jeżeli wartość bieżąca jest równa lub większa od nastawionego czasu, ustawiany jest bit Timera. Warto bieżąca Timera TON jest kasowana gdy wejście zezwalające jest nieaktywne, przy czym wartość bieżąca dla Timera TONR jest zachowywana w przypadku gdy wejście to jest nieaktywne. Timer TONR możemy wykorzystywać do kumulowania czasu, w momencie gdy wejście zmienia się z 1 na 0. Instrukcja kasowania reset (R) używana jest do kasowania wartości bieżącej TONR. Zarówno TON, jak i TONR kontynuuje zliczanie w momencie gdy osiągnięta jest wartość zadana, zatrzymanie zliczania czasu następuje w momencie osiągnięcia maksymalnej wartości 32, 767. Instrukcja TOF wykorzystywana jest do opóźnienia wyłączenia danego wyjścia przez ustalony przedział czasu po wyłączeniu wyjścia. Jeżeli wejście zezwalające jest załączone wtedy natychmiast następuje załączenie bitu timera, a wartość bieżąca ustawiana jest na 0. Jeżeli wejście zmieni stan na nieaktywny, Timer zaczyna zlicza do momentu osiągnięcia zadanego czasu. Jeżeli osiągnięta zostanie wartość nastawiona, bit timera jest wyłączany, a wartość bieżąca jest zatrzymywana, jednak w momencie gdy wejście zmieni stan ponownie na aktywny zanim TOF osiągnie wartość nastawioną, bit timera pozostaje aktywny. Wejście zezwalające (enable) musi zmieni stan z 1 na 0 aby TOF zaczął odliczać czas. Jeżeli Timer TOF znajduje się wewnątrz obszaru SCR, a obszar ten jest nieaktywny, wtedy warto bieżąca ustawiana jest na 0, bit timera jest kasowany, a wartość bieżąca nie jest zwiększana.

Timer typ ON bez pamięci TON Timer typu ON z pamięcią -TONR

Timer typu Off TOF Instrukcje obsługi podprogramów Instrukcja wywołania podprogramu (CALL) przekazuje sterowanie do podprogramu SBR_N. Instrukcja wywołania podprogramu może być z parametrami lub bez parametrów. Po tym jak podprogram zakończy swoje działanie przekazuje sterowanie do instrukcji, która następuje po instrukcji wywołania podprogramu. Instrukcja warunkowego powrotu z podprogramu (CRET) kończy działanie podprogramu zależnie od logiki warunku. Wskazówka Step 7-Micro/WIN automatycznie dodaje powrót bezwarunkowy z każdego podprogramu. Instrukcje przesunięcia Instrukcje : MOVB przesuń bajt, MOVW przesuń słowo MOVD przesuń podwójne słowo MOVR przesuń liczbę rzeczywistą przepisuj wartość komórki na wejściu IN do nowej komórki na wyjściu OUT.

Instrukcje : BMB - przepisanie bloku bajtów (Block Move Byte) BMW - przepisanie bloku słów BMD - przepisanie bloku podwójnych słów przepisuj określoną ilość danych do nowego obszaru pamięci przez przepisywanie podanej ilości N bajtów, słów i podwójnych słów począwszy od adresu wejściowego IN do nowego bloku począwszy od adresu podanego na wyjściu OUT. N ma zakres od 1 do 255. Instrukcje przesunięcia w lewo i w prawo Instrukcje przesuwania powoduj przemieszczenie wartości podanej na wejściu IN w prawo lub w lewo o zadaną w parametrze N ilość bitów i ładuj wynik na wyjście OUT. Instrukcje przesuwania (Shift) wypełniają zerami bity, które zostały zwolnione w wyniku przesunięcia. Jeżeli ilość bitów do przesunięcia (N) jest większa lub równa długości maksymalnie dozwolonej (8 dla bajtu, 16 dla słowa i 32 dla podwójnego słowa) wtedy wartość przesuwana jest o maksymalnie dozwoloną ilość. Jeżeli ilość przesunięć jest większa od 0, bit przepełnienia (SM1.1) przyjmuje warto ostatniego przesuniętego bitu poza dany rejestr. Bit zera SM1.0 ustawiany jest jeżeli rezultat operacji przesunięć CIA wynosi zero. Instrukcje bajtowe są instrukcjami bez znaku. Dla instrukcji słowa i podwójnego słowa jeżeli występuje bit znaku (liczby ze znakiem) jest on równie przesuwany. Instrukcje rotacji w lewo i w prawo Instrukcje rotacji przesuwaj (rotuj) wartość podaną na wejściu IN w prawo lub w lewo o zadaną w parametrze N ilość bitów i ładuj wynik na wyjście OUT. Rotacja jest przesuwaniem w pętli (ostatni bit wchodzi na miejsce pierwszego i odwrotnie). Jeżeli wartość ilości bitów do przesunięcia (N) jest większa lub równa długości maksymalnie dozwolonej (8 dla bajtu, 16 dla słowa i 32 dla podwójnego słowa) wtedy S7-200 przeprowadza operację modulo z wartości przesuwaną tak aby otrzymać poprawną wartość rotacji, zanim nastąpi przesunięcie. Wynik stanowi rotację o 0 do 7 dla bajtu, 0 do 15 dla słowa i 0 do 31 dla podwójnego słowa.

Jeżeli wartość przesuwania równa się zeru, wtedy rotacja nie jest wykonywana. Jeżeli rotacja jest wykonana wtedy wartość ostatniego rotowanego bitu kopiowana jest do bitu przepełnienia - SM1.1. Jeżeli warto przesuwania nie stanowi podzielnika przez 8 (dla instrukcji bajtowych), 16 (dla instrukcji słowowych) oraz 32 (dla instrukcji podwójnego słowa), wtedy ostatni rotowany bit kopiowany jest do bitu przepełnienia pamięci SM1.1. Bit zera SM1.0 ustawiany jeżeli rezultat operacji rotacji wynosi zero. Instrukcje bajtowe są instrukcjami bez znaku. Dla instrukcji słowa i podwójnego słowa jeżeli występuje bit znaku (liczby ze znakiem) jest on również przesuwany.

Operacje na łańcuchach znaków Długość łańcucha (String Length) Instrukcja SLEN określa długość łańcucha znaków podanego na wejście IN. Kopiowanie łańcucha (Copy String) Instrukcja kopiowania SCPY kopiuje łańcuch podany w IN do drugiego łańcucha podanego w OUT. Łączenie dwóch łańcuchów (Concatenate String) Instrukcja SCAT dołącza łańcuch podany w IN na koniec drugiego łańcucha podanego w OUT. Kopiowanie fragmentu z łańcucha znaków Instrukcja kopiowanie fragmentu łańcucha z całości (SSCPY) kopiuje określoną ilość znaków N z podanego łańcucha w IN począwszy od indeksu INDX, do nowego łańcucha znaków OUT.

Instrukcje matematyczne Dodawanie IN1 + IN2 = OUT Odejmowanie IN1-IN2=OUT OUT-IN1=OUT Instrukcja dodawania liczb całkowitych (+I) lub odejmowania liczb całkowitych (-I), dodaje lub odejmuje dwie 16-to bitowe liczby całkowite i generuje wynik 16 bitowy. Instrukcja dodawania liczb całkowitych podwójnej długo ci (+D) lub odejmowania liczb całkowitych podwójnej długo ci (-D), dodaje lub odejmuje dwie 32 bitowe liczby całkowite i generuje wynik 32 bitowy. Instrukcja dodawania liczb rzeczywistych (+R) lub odejmowania liczb rzeczywistych (-R), dodaje lub odejmuje dwie 32 bitowe liczby rzeczywiste i generuje wynik 32 bitowy. Mnożenie IN1 * IN2 = OUT Dzielenie IN1 / IN2=OUT Instrukcja mnożenia liczb całkowitych (*I) lub dzielenia liczb całkowitych (/I), mnoży lub dzieli dwie 16-to bitowe liczby całkowite i generuje wynik 16 bitowy (Przy dzieleniu nie jest zachowywana reszta). Instrukcja mnożenia liczb całkowitych podwójnej długości (*D) lub dzielenia liczb całkowitych podwójnej długości (/D), mnoży lub dzieli dwie 32 bitowe liczby całkowite i generuje wynik 32 bitowy (Przy dzieleniu nie jest zachowywana reszta). Instrukcja mnożenia liczb rzeczywistych (*R) lub dzielenia liczb rzeczywistych (/R), mnoży lub dzieli dwie 32 bitowe liczby rzeczywiste i generuje wynik 32 bitowy.

Instrukcje zwiększania i zmniejszania Instrukcje inkrementacji i dekrementacji dodają lub odejmują wartość 1 do lub od wartości na wejściu IN, a wynik zapisywany jest na wyjście OUT. Instrukcja dla inkrementacji bajtu (INCB) i dekrementacji bajtu (DECB) operują na liczbach bez znaku. Instrukcja dla inkrementacji słowa (INCW) i dekrementacji słowa (DECW) operują na liczbach ze znakiem. Instrukcja dla inkrementacji podwójnego słowa (INCD) i dekrementacji podwójnego słowa (DECDB) operuj na liczbach ze znakiem.

Instrukcje operacji logicznych Instrukcje inwersji bajtu (INVB), słowa (INVW) oraz inwersja podwójnego słowa (INVD) wymagaj podania zmiennej na wejście IN i ładują wynik inwersji zmiennej wejściowej na wyjście OUT. AND bajt, AND słowo, AND podwójne słowo Instrukcje logiczne AND bajty (ANDB), AND słowa (ANDW), AND podwójne słowa (ANDD) tworzą AND (iloczyn logiczny) dla odpowiednich bitów dwóch wartości wejściowych IN1 oraz IN2. Wynik wpisywany jest na wyjście OUT. OR bajt, OR słowo, OR podwójne słowo Instrukcje logiczne OR bajty (ORB), OR słowa (ORW), OR podwójne słowa (ORD) tworzą OR (sumę logiczną ) dla odpowiednich bitów dwóch wartości wejściowych IN1 oraz IN2. Wynik wpisywany jest na wyjście OUT. XOR bajt, XOR słowo, XOR podwójne słowo Instrukcje logiczne XOR bajty (XORB), XOR słowa (XORW), XOR podwójne słowa (XORD) tworzą sumę EXKLUSIV OR dla odpowiednich bitów dwóch wartości wejściowych IN1 oraz IN2. Wynik wpisywany jest na wyjście OUT. Instrukcje pętli Instrukcje FOR i NEXT wykorzystywane s do tworzenia pętli programowych, powtarzanych określoną ilość razy. Każda z instrukcji FOR wymaga zawsze równie instrukcji NEXT. Możemy zagnieżdżać instrukcje For-Next (umieszcza kolejne pętle For-Next wewnątrz istniejących pętli For-Next) do poziomu 8 pętli. Instrukcja FOR wykonuje wszystkie instrukcje pomiędzy instrukcjami For i Next. Możemy określić wartość indeksową lub licznik bieżący pętli INDX, wartość początkową INIT oraz wartość końcową FINAL. Instrukcja Next oznacza koniec instrukcji For w pętli. Jeżeli uaktywnimy pętlę For-Next wtedy proces pętli jest kontynuowany, a do zakończenia iteracji, niezależnie czy zmienimy wartość początkową od której pętla startuje. Możemy zmieniać wartości dla pętli For-Next jeżeli jest ona aktywna. Jeżeli pętla zostanie uaktywniona ponownie, kopiuje ona wartości początkowe do wartości indeksu (bieżący numer pętli). Instrukcja For-Next kasuje się samoczynnie w czasie kolejnego wywołania. Na przykład, podajemy warto INIT jako 1, a FINAL na 10, instrukcje pomiędzy instrukcją For a Next będą wykonywane 10 razy, a INDX będzie inkrementowany: 1, 2, 3,... 10. Jeżeli wartość początkowa jest większa niż wartość końcowa (FINAL) wtedy pętla nie jest wykonywana. Po każdym wykonaniu instrukcji pomiędzy instrukcjami FOR i NEXT, wartość INDX jest inkrementowana, a rezultat jest porównywany z wartością końcową. Jeżeli INDX jest większy niż wartość końcowa, pętla jest kończona.

Źródło : Simatic S7-200 Podręcznik", Siemens, Warszawa 2009.