4. JĘZYKI PROGRAMOWANIA STEROWNIKÓW PLC 4.1. Wstęp. 4.2. Mapa pamięci sterownika rodziny SIMATIC S7-200 MOVB QB0,MB0



Podobne dokumenty
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

Architektura komputerów

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

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

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

Język FBD w systemie Concept

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

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

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

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.

SPIS TREŚCI: 1. Podział funkcji o działaniu szybkim (High-Speed Functions) Instrukcje przerwań programowych... 2

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

SPIS TREŚCI: 1. Podział funkcji o działaniu szybkim... 2 str. 2. Instrukcje przerwań programowych... 2 str.

CoDeSys 3 programowanie w języku drabinkowym LD

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

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

ZASOBY ZMIENNYCH W STEROWNIKACH SAIA-BURGESS

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

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Sterowniki Programowalne (SP)

IV - INSTRUKCJE SIECIOWE SPIS TREŚCI: 1. Charakterystyka protokołu komunikacyjnego PPI Charakterystyka interfejsu MPI...5

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

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Język programowania: Lista instrukcji (IL Instruction List)

Sterowniki programowalne

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

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Sterownik Visilogic V260

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

Architektura komputerów. Asembler procesorów rodziny x86

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

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

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

Zasady wykonywania programu drabinkowego w sterowniku

Opracował: Jan Front

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

SPIS TREŚCI: 1. Charakterystyka protokołu komunikacyjnego PPI... 2 str. 2. Charakterystyka interfejsu MPI... 4 str.

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131) - języki graficzne (LD, FBD); języki tekstowe (ST, IL).

1 Podstawy c++ w pigułce.

Struktura i działanie jednostki centralnej

Komunikacja między sterownikami przez protokół ADS

CoDeSys 3 programowanie w języku FBD

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

MiAcz2. Programowalne systemy przemysłowe automatyki PLC

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Arytmetyka liczb binarnych

Techniki multimedialne

Technika mikroprocesorowa I Wykład 2

Podstawy Automatyki. Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Zapis liczb binarnych ze znakiem

Mikrokontroler ATmega32. Język symboliczny

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

Sterowniki Programowalne (SP) Wykład #4

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

Programowanie sterowników PLC wprowadzenie

Teoretyczne Podstawy Informatyki

L6.1 Systemy liczenia stosowane w informatyce

Przykładowe pytania DSP 1

Algorytm. a programowanie -

Arytmetyka binarna - wykład 6

Pracownia Komputerowa wykład VI

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

Programowalny sterownik logiczny PLC

Standardowe bloki funkcjonalne

Język programowania: Lista instrukcji (IL Instruction List) Wykład w ramach przedmiotu: Sterowniki programowalne Opracował dr inż. Jarosław Tarnawski

1. Operacje logiczne A B A OR B

Tranzystor JFET i MOSFET zas. działania

Podstawy Informatyki

Automatyzacja i robotyzacja procesów produkcyjnych

Systemy zapisu liczb.

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

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

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

1. Wprowadzanie danych z klawiatury funkcja scanf

2. Format danych i zaimplementowane funkcje MODBUS

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

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

2 Przygotował: mgr inż. Maciej Lasota

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Notatka Aplikacyjna NA 03006PL Maj 2016

Podstawy programowania w języku C i C++

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Technologie informacyjne - wykład 12 -

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Organizacja typowego mikroprocesora

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Ćwiczenie 3. Konwersja liczb binarnych

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

interfejs szeregowy wyświetlaczy do systemów PLC

Działanie i charakterystyka sterownika GE FANUC VersaMaxNano

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

2. Architektura mikrokontrolerów PIC16F8x... 13

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

Transkrypt:

4. JĘZYKI PROGRAMOWANIA STEROWNIKÓW PLC 4.1. Wstęp W rozdziale 4 zostaną przedstawione charakterystyczne cechy metod programowania sterowników PLC, które ujęte są w normie IEC 1131. Omówiono tu metodę STL, która jest reprezentantem metod tekstowych, oraz dwie metody graficzne LAD i FBD. Dokonano klasyfikacji wybranych instrukcji programowych (STL) oraz bloków graficznych zastępujących instrukcje (LAD i FBD) tych metod, podając je wraz ze szczegółowym opisem. Omówiono na przykładach sposób użycia wybranych instrukcji w programie sterującym PLC. By uświadomić Studentom zagadnienia adresowania operandów, które są argumentami niemalże każdej instrukcji programowej, początek rozdziału 4 otwiera mapa pamięci przykładowego sterownika rodziny SIMATIC PLC S7-200. Rozdział kończą zagadnienia konfiguracji programowej sterownika PLC, szczególnie istotne przy doborze sterownika do konkretnego cyfrowego układu sterowania procesem przemysłowym. 4.2. Mapa pamięci sterownika rodziny SIMATIC S7-200 4.2.1. Sposób adresacji operandu w programie PLC Realizacja programu w sterowniku (w CPU) polega ogólnie na dekodowaniu kolejnych instrukcji programowych wraz z ich argumentami (operandami). Instrukcje te i operandy zostają wcześniej zamienione" na kod binarny i rozmieszczone" w pamięci programu CPU przez oprogramowanie sterownika. Czynność dekodowania instrukcji wykonuje układ sterowania mikroprocesora, który jest najważniejszym układem CPU. Uwaga! Każda z instrukcji programowych ma swoje znaczenie i nie powinna być wprowadzona do programu przypadkowo. Ponieważ kod binarny instrukcji programowej jest znany" układowi US mikroprocesora, użytkownik tworzący program sterujący PLC obowiązany jest znać tylko mnemoniki instrukcji oraz, oczywiście, ich znaczenie w programie (patrz uwaga powyżej). Poniższy przykład pokazuje użycie mnemonika instrukcji wraz z jej argumentami: MOVB QB0,MB0 W przykładzie mnemonik instrukcji to MOVB, którego użycie spowoduje przesunięcie (przesłanie) zawartości rejestru QB0 (operandu) do rejestru MB0 (również operand). Jak łatwo się domyślić, rozmiar obu rejestrów jest jednakowy - l bajt. Analizując powyższy przykład, intuicyjnie domyślamy się, że np. instrukcja przesunięcia zawartości rejestru z jednego miejsca w drugie musi zawierać również informację o miejscu znajdowania się (adresach) tych rejestrów w pamięci CPU. Tutaj nazwy QB0 i MB0 określają jednoznacznie de - 1/54 -

facto adresy tych rejestrów. Na przykładzie chociażby powyższego widać, że programista tworząc program sterujący PLC, musi znać i rozumieć tzw. mapę pamięci sterownika (CPU), która zawiera wszystkie dostępne rejestry używane jako operandy w instrukcjach programowych. Należy przy tym zaznaczyć, że symbole takich operandów są narzucone a priori przez producenta sterownika i oprogramowania narzędziowego. Zwraca się uwagę Studentów, że w każdej instrukcji sterującej (poleceniu) umieszczony jest dodatkowy identyfikator rozmiaru argumentów, których ona dotyczy (w przykładzie powyżej był to bajt - MOVB). Zazwyczaj możliwe staje się używanie instrukcji programowych, wykonujących operacje na argumentach, których rozmiar jest wielokrotnością l bajtu. Jasne się staje, że wielkość przestrzeni adresowej określona w bajtach jest wtedy odpowiednio 2- i 4-krotnie większa. Zależność tę pokazano poniżej na przykładzie 32-bitowego operandu MD100, który zawiera": cztery bajty od MB 100 do MB 103; dwa słowa (dwubajty): MW 100 i MW 102. Zastosowane oznaczenia LSB (Least significant bit) i MSB (Most significant bit) oznaczają odpowiednio najmniej i najbardziej znaczący bit dwusłowa MD 100. Podsumowując, organizacja adresowania operandów przy tworzeniu programu sterującego PLC pozwala na posługiwanie się argumentami 8-, 16- i 32-bitowymi. Poniżej przedstawiono mapę pamięci dla sterownika rodziny SIMATIC S7-200. Widać z niej, że użytkownik pisząc program sterujący, może posługiwać się tylko i wyłącznie symbolami rejestrów, które jednoznacznie oznaczają rodzaj operandu - rejestr wejściowy, wyjściowy itp. Dokładna analiza podanej symboliki w pełni pokazuje możliwości programowe tego małego sterownika. - 2/54 -

4.2.2. Mapa pamięci sterownika Tabela 4.1. Nazwy symboliczne rejestrów odnoszących się do pamięci zmiennych (typu odczyt/zapis) Tabela 4.2. Nazwy symboliczne rejestrów odnoszących się do wejść sterownika (typu odczyt/zapis) Tabela 4.3. Nazwy symboliczne rejestrów odnoszących się do wyjść sterownika (typu odczyt/zapis) - 3/54 -

Tabela 4.4. Nazwy symboliczne rejestrów odnoszących się do wewnętrznych bitów pamięci sterownika (typu odczyt/zapis) Tabela 4.5. Nazwy symboliczne rejestrów odnoszących się do wewnętrznych specjalnych bitów pamięci sterownika (tylko odczyt) - 4/54 -

Tabela 4.6. Nazwy symboliczne rejestrów odnoszących się do wewnętrznych specjalnych bitów pamięci sterownika (typu odczyt/zapis) Tabela 4.7. Nazwy symboliczne rejestrów odnoszących się do wewnętrznych timerów sterownika (typu odczyt/zapis) Tabela 4.8. Nazwy symboliczne rejestrów odnoszących się do wewnętrznych liczników sterownika (typu odczyt/zapis) - 5/54 -

Tabela 4.9. Nazwy symboliczne rejestrów odnoszących się do wejść analogowych sterownika (tylko odczyt) Tabela 4.10. Nazwy symboliczne rejestrów odnoszących się do wyjść analogowych sterownika (tylko zapis) Tabela 4.11. Nazwy symboliczne rejestrów odnoszących się do akumulatora (odczyt/zapis) - 6/54 -

Tabela 4.12. Nazwa symboliczna rejestru odnoszącego się do szybkiego licznika HCO (tylko odczyt) - 7/54 -

4.3. Metody zapisu programu dla sterownika PLC Rozwój sprzętu komputerowego, a tym samym wzrost jego możliwości funkcjonalnych, jaki dokonywał się równolegle do wprowadzania nowszych rozwiązań urządzeń automatyki przemysłowej, spowodował, że na rynku oprogramowania dla tych urządzeń, a później również i oprogramowania PLC, pojawiały się systemy narzędziowe coraz wyższego poziomu. Przypomnijmy, że w latach 60. program sterujący tworzony był przy użyciu tzw. języków asemblerowych, których zadaniem było utworzenie kodu sterującego dla urządzenia cyfrowego przy użyciu prostych instrukcji. Do zaprogramowania urządzenia używany był tzw. programator z właściwą klawiaturą znakową, najczęściej w kodzie ASCII. Po napisaniu instrukcji sterującej w edytorze tekstów zamieniana ona była (w wyniku tzw. asemblacji) na kod maszynowy i przesyłana do sterownika przewodem programującym. Należy zaznaczyć, że w tamtym okresie nie funkcjonował jeden standard przedstawiania programu tekstowego i był on zależny od producenta urządzenia. Później, w miarę zwiększania możliwości kart graficznych monitorów (a nawet wyświetlaczy programatorów), pojawiły się systemy programujące, które w sposobie używania oprogramowania były podobne do języków wysokiego poziomu (LAD). Obecnie programowanie sterownika może odbywać się już przez używanie gotowych bloków graficznych (STL i FBD) na ekranie monitora, wywoływanych z tzw. biblioteki. Z nich to tworzy się strukturę graficzną programu (a nawet już algorytmu) sterowania. Jeden blok graficzny zastępuje tutaj cały szereg instrukcji sterujących. Na koniec tej wstępnej charakterystyki metod programowania należy podkreślić, że metody te były również tworzone pod kątem kwalifikacji zawodowych użytkowników tych systemów. Tak więc metody tekstowe skierowane były do kadry inżynierskiej biegłej w posługiwaniu się oprogramowaniem typu asemblerowego. Metody graficzne tworzone zaś były z myślą o kadrze technicznej, rozumiejącej schematy elektryczne i budowę układów sterowania z gotowych bloków funkcjonalnych. Pojawienie się normy IEC 1131 usystematyzowało dodatkowo oprogramowanie sterujące tak, by takie same metody programowania sterowników PLC były dostępne u różnych producentów tych urządzeń. Spotyka się nawet rozwiązania systemów programistycznych umożliwiające utworzenie przez jeden system programu sterującego dla wielu sterowników. Dalej wyjaśnione będą metody tworzenia programu sterującego PLC, posługując się oprogramowaniem narzędziowym STEP7Micro, które przeznaczone jest dla rodziny sterowników SIMATIC S7-200 firmy Siemens. 4.3.1. Metoda tekstowa STL (tekst strukturalny) Tworzenie programu sterującego PLC z wykorzystaniem metody STL polega na używaniu w programie sterującym właściwych tej metodzie instrukcji programowych (mnemoników), wynikających z listy poleceń sterownika. Biorąc następnie pod uwagę właściwe zasady tworzenia programu sterującego, umieszcza się te mnemoniki w odpowiednich wierszach edytora programu (tzw. sieciach) wraz z operandami (argumentami). Pojedyncza linia edytowanego programu musi zawierać: mnemonik rozkazu; - 8/54 -

operand bądź operandy. - 9/54 -

Konstrukcję pojedynczej linii programu wraz z komentarzem pokazuje poniższy przykład, w którym zadeklarowano czasomierz (timer) typu ON: Wyjaśniając powyższy przykład, stwierdzamy, że mnemonikiem rozkazu dla timera typu ON jest skrót TON. W tej rodzinie sterowników mnemonik ten zarezerwowany jest dla czasomierza o ustalonym działaniu. Operandem (argumentem) operacji są wyrażenia oznaczone przez skróty T21 i K10. Pierwszy argument instrukcji związany jest z typem czasomierza (operand bitowy), a drugi z typem stałej 10, która napisana jest przy użyciu kodowania dziesiętnego (mówiąc prościej, jest ona wartością liczby równej dziesięć ). Ponieważ układy mikroprocesorowe operują na wartościach binarnych, wartość tej liczby zostanie zamieniona na postać zero-jedynkową, czyli 00001010. (Oprogramowanie dopuszcza zapis liczb w różnych postaciach). Program w metodzie STL konstruuje się na ekranie monitora (ew. programatora) za pomocą klawiatury alfanumerycznej i po stwierdzeniu jego poprawności przesyła" do sterownika PLC. Możliwe jest umieszczanie komentarzy objaśniających znaczenie używanych instrukcji w tworzonym programie sterującym. Dla tej metody programowania sterownika najczęściej nie istnieje możliwość testowania programu w trybie on-line. Jest to podyktowane tym, że do tworzenia programu metodą STL używa się edytorów tekstów, które nie pozwalają na umieszczanie informacji o aktualnym stanie używanych operandów. Oto przykładowy program PLC utworzony metodą STL: LISTING_4 NETWORK l //Komentarz do sieci LD Q0.0 //Komentarz do instrukcji TON T33.100 NETWORK 2 LD T33 A M0.1 ON I0.5 S Q0.3,1 R M0.0,1-10/54 -

NETWORK 3 LD I0.1 A I0.2 A I0.5 A I0.0 R Q0.3,l NETWORK 4 LDN I0.2 R M0.0,1 NETWORK 5 LDN Q0.0 = Q0.2 S M0.l,l Podczas tworzenia programu pomocne staje się posługiwanie nazwami symbolicznymi, które przyporządkowane są konkretnym operandom używanym w programie sterującym. Pozwala na to zadeklarowana wcześniej tzw. lista przyporządkowująca, która stanowi pewnego rodzaju pomost między operandami a ich symbolami używanymi w programie. Na przykład opis operandu, jego symbol i komentarz mogą mieć następującą postać: Zatem przekształcając LISTING_4, otrzymujemy postać programu zapisaną przy użyciu nazw symbolicznych operandów: LISTING_5 NETWORK l //Komentarz do sieci LD Z0 //Komentarz do instrukcji TON T33,100 NETWORK 2 LD T33 A M1 ON S5 S Z3 R M0 NETWORK 3 LD Sl A S2 A S5 A S0 R Z3 NETWORK 4 LDN S2-11/54 -

R M0 NETWORK 5 LDN Z0 = Z2 S Ml MEND Wybrane mnemoniki rozkazów, które są używane w metodzie STL dla sterownika rodziny SIMATIC S7-200 CPU 212 firmy SIEMENS, podano w tabelach od 4.13 do 4.17. - 12/54 -

Tabela 4.13. Instrukcje typu BOOLEAN (Binarne) Mnemonik Komentarz LD n Ładuj operand; LDN n Ładuj operand z negacją; A n Iloczyn logiczny AND; AN n Negacja iloczynu logicznego NAND; O n Suma logiczna OR; ON n Negacja sumy NOR; EU Detekcja zbocza narastającego impulsu pochodzącego od analizowanego operandu bitowego; ED Detekcja zbocza opadającego i jw.; = n Przyporządkowanie (sterowanie) operandu; ALD Łączenie w iloczynie; OLD Łączenie w sumie; S S_BIT, n Ustaw bit począwszy od n (n bit bazowy); począwszy od adresu S_BIT R R_BIT, n Zeruj bit począwszy od n.; począwszy od adresu R_BIT Uwaga! n - numer bitu (operand bitowy, np. M0.4). - 13/54 -

Tabela 4.14. Instrukcje typu STANDARD FUNCTIONS (bloki funkcyjne) Mnemonik Komentarz TON Txx, n Czasomierz typu ON", gdzie Txx oznacza numer czasomierza, a n jest wartością wstępnie ustaloną (Preset) typu Word (słowo). Z konkretnym numerem czasomierza związana jest stała czasowa T timera: T = lms - T32 T = 10ms - T33 - T36 T = 100ms - T37 - T63; TONR Txx, n Czasomierz RESET", gdzie Txx oznacza numer czasomierza, a n jest wartością wstępnie ustaloną (Preset) typu Word (słowo). Z konkretnym numerem czasomierza związana jest stała czasowa T timera: T = lms - TO T = 10ms Tl - T4 T = 100ms - T5 - T31; CTU Cxx, n Licznik UP (liczący w górę), gdzie Cxx oznacza numer licznika od 0 do 47, a n jest wartością wstępnie ustaloną (Preset) typu Word (słowo); CTUD Cxx, n Licznik UP/DOWN (liczący góra/dół), gdzie Cxx oznacza numer licznika od 48 do 63, a w jest wartością wstępnie ustaloną (Preset) typu Word (słowo); MOVB n1, n2 Instrukcja przesunięcia danej ulokowanej w n1 do n2. Typ danych bajt; ANDW n1, n2 Iloczyn logiczny zmiennych n1 in2. Typ zmiennych Word, DECW n Instrukcja zmniejszania wartości o jeden zmiennej n. Typ zmiennej Word, +I n1, n2 Instrukcja dodawania liczby całkowitych n1, n2 typu Word. Wynik jest umieszczany w n2, -I n1, n2 Instrukcja odejmowania liczb całkowitych n2 n1 typu Word. Wynik umieszczany w n2, MUL n1, n2 DIV n1, n2 Instrukcja mnożenia liczb całkowitych n1*n2 typu n1 - Word, n2 - Dword (podwójne słowo). Wynik umieszczany w n2, Instrukcja dzielenia liczb całkowitych n2 / n1 typu n1 - Word, n2 - Dword (podwójne słowo). Wynik umieszczany w n2. - 14/54 -

Tabela 4.15. Instrukcje typu SPECIAL INSTRUCTIONS (specjalne) Mnemonik Komentarz BCDI n Instrukcja konwersji zmiennej zapisanej w kodzie BCD na postać binarną. Typ n Word IBCD n Instrukcja konwersji zmiennej zapisanej jako binarna (całkowita) na zapis w formacie BCD. Typ n Word - 15/54 -

Tabela 4.16. Instrukcje operacji na przerwaniach Mnemonik Komentarz ATCH l, e Instrukcja dołączenia rodzaju przerwania (numeru zdarzenia) e do podprogramu jego obsługi l. Wybrane numery zdarzeń i ich znaczenie są następujące: 0 - narastające zbocze sygnału na wejściu I0.0; l - opadające zbocze sygnału na wejściu I0.0; 10 - sygnał od wewnętrznego timera; DTCH l, e Instrukcja rozłączenia zdarzenia e od podprogramu jego obsługi l; ENI Instrukcja globalnego uruchomienia wszystkich przerwań; DISI Instrukcja globalnego rozłączenia przerwań; INT:n Definiowanie podprogramu obsługi przerwania; RETI Instrukcja powrotu z podprogramu obsługi przerwania. Liczba podprogramów określona jest na INT 0-31. Tabela 4.17. Instrukcje organizacji programu Mnemonik Komentarz LBL n Definiowanie etykiety n = 0-63; JMP n Instrukcja skoku pod adres etykiety n, CALL n Wywołanie podprogramu n = 0-15; SBR n Definiowanie podprogramu n = 0-15; RET Instrukcja powrotu z podprogramu; MEND Instrukcja końca programu głównego; STOP Instrukcja warunkowego zatrzymania programu; WDR Instrukcja uruchomienia tzw. Watchdog. - 16/54 -

4.3.2. Metoda schematów drabinkowych LAD Tworzenie programu sterującego PLC z wykorzystaniem metody LAD polega na używaniu w programie sterującym właściwych tej metodzie symboli graficznych, wynikających z listy symboli sterownika. Uwzględniając następnie właściwe zasady tworzenia programu sterującego umieszcza się te symbole w odpowiednich miejscach ekranu (pulpitu), tworząc tym samym strukturę programu sterującego. Różne symbole używane w programie sterującym oznaczają zarówno operandy, jak i instrukcje. Metoda LAD przypomina tworzenie schematu elektrycznego stykowych układów sterowania. Najczęściej symbolami zarezerwowanymi dla operandów są: - symbol operandu jako styk normalnie otwarty (wejście); - symbol operandu jako styk normalnie zamknięty (wejście); - symbol operandu jako cewka (wyjście). Do połączeń operandów używane są tzw. linie łączące. W wyniku takich połączeń otrzymujemy np. funkcje sumy logicznej, iloczynu logicznego itp. Dopuszcza się również używanie zdefiniowanych bloków reprezentujących gotowe bloki funkcyjne, np. Timer, Counter, o identycznym działaniu jak w metodzie STL. Przykład konstrukcji sieci w metodzie LAD według LISTNGÓW_4 i 5 przestawia poniżej DIAGRAM_2: - 17/54 -

W tabelach od 4.18 do 4.22 podano odpowiednio postać LAD instrukcji wyszczególnionych w podrozdziale 4.3.2. Tabela 4.18. Postać graficzna instrukcji typu BOOLEAN - 18/54 -

- 19/54 -

- 20/54 -

- 21/54 -

Tabela 4.19. Instrukcje typu STANDARD FUNCTIONS (bloki funkcyjne) - 22/54 -

- 23/54 -

Tabela 4.20. Instrukcje typu SPECIAL INSTRUCTIONS (specjalne) - 24/54 -

- 25/54 -

Tabela 4.21. Instrukcje operacji na przerwaniach Tabela 4.22. Instrukcje organizacji programu - 26/54 -

4.3.3. Metoda schematów blokowych FBD Tworzenie programu sterującego PLC z wykorzystaniem metody FBD polega na używaniu w programie sterującym właściwych tej metodzie bloków graficznych, reprezentujących gotowe instrukcje programowe. Bloki te dostępne są w bibliotece modułów, a zasada ich użycia polega na wywołaniu bloku i umieszczeniu go we właściwym miejscu ekranu monitora. Powstaje w ten sposób struktura graficzna programu sterującego. Metoda - 27/54 -

FBD kojarzona jest często ze strukturą cyfrowych układów sterowania, utworzoną z bloków logicznych. Przykład bloku graficznego przedstawiono poniżej: Przedstawia on blok wykonujący operację iloczynu logicznego AND na dwóch operandach bitowych -10.3 i 10.0. Operacja powyższa w metodzie STL i LAD wyglądałaby odpowiednio: NETWORK 3 LD I0.3 AN I0.0 = Q0.0 oraz Zwraca się uwagę Studentów, że w metodzie FBD dla tego typu instrukcji nie istnieje instrukcja odwrotna, np. AND - NAND, jak to miało miejsce w metodzie STL - A i AN. Tu dla wykonania instrukcji logicznych, gdzie jeden z operandów jest zanegowany, należy posłużyć się znakiem negacji - kółkiem" (I0.0). Przedstawiony blok AND może być używany w programie sterującym jako pojedyncza instrukcja programowa, zwracająca rezultat wykonanej operacji, lub może być użyty jako część składowa sieci instrukcji. Sieć instrukcji powstaje na skutek użycia wielu bloków FBD połączonych liniami na ekranie monitora. Przykład sieci FBD dla programu sterującego zawartego w DIAGRAMIE_2 przedstawia BLOCK_2: - 28/54 -

W tabeli 4.23 podano wybrane instrukcje FBD uzupełnione operandami na wejściu i wyjściu wraz z podaniem realizowanej funkcji logicznej. Jak łatwo zauważyć, stanowią one podzbiór instrukcji STL i LAD, które w programie sterującym przedstawione są w postaci gotowych bloczków. Tabela 4.23. Postać graficzna wybranych instrukcji FBD - 29/54 -

Ponieważ postać graficzna większości bloków funkcyjnych, takich jak Timer, Counter i innych, jest identyczna zarówno w metodzie LAD, jak i FBD, więc w powyższej tabeli nie była prezentowana. - 30/54 -

4.4. Opis działania wybranych instrukcji (bloków) funkcyjnych programu sterującego PLC Opisując działanie poszczególnych instrukcji ujętych w tabelach w podrozdziale 4.3, przyjęto, że deklaracja danego ciągu instrukcji odbywa się w metodzie STL, natomiast wyjaśnienie wpływu tych instrukcji na stan poszczególnych operandów odbywa się na wykresach czasowych. Założono zatem, że ten sposób prezentacji będzie zrozumiały dla Studentów, którzy opanowali materiał z poprzedniego podrozdziału. l. Instrukcja iloczynu logicznego AND dwóch operandów bitowych: 2. Instrukcja sumy logicznej OR dwóch operandów bitowych: 3. Instrukcja ustawiania S dwóch operandów bitowych: 4. Instrukcja zerowania R czterech operandów bitowych: 5. Instrukcja detekcji narastającego zbocza EU pojedynczego impulsu: - 31/54 -

6. Instrukcja detekcji opadającego zbocza ED pojedynczego impulsu: - 32/54 -

Mnemonik TON Txx, n Komentarz Czasomierz typu ON", gdzie Txx oznacza numer czasomierza, a n jest wartością wstępnie ustaloną (Preset) typu Word (słowo). Z konkretnym numerem czasomierza związana jest stała czasowa T timera: T=lms-T32 T= 10ms-T33-T36 T=100ms-T37-T63; TONR Txx, n Czasomierz RESET", gdzie Txx oznacza numer czasomierza, a n jest wartością wstępnie ustaloną (Preset) typu Word (słowo). Z konkretnym numerem czasomierza związana jest stała czasowa T timera: T = l ms - TO T= 10ms-Tl-T4 T=100ms-T5-T31; CTU Cxx, n CTUD Cxx, n Licznik UP (liczący w górę), gdzie Cxx oznacza numer licznika od 0 do 47, a n jest wartością wstępnie ustaloną (Preset) typu Word (słowo); Licznik UP/DOWN (liczący góra/dół), gdzie Cxx oznacza numer licznika od 48 do 63, a w jest wartością wstępnie ustaloną (Preset) typu Word (słowo); MOVB n1, n2 ANDW n1, n2 Instrukcja przesunięcia danej ulokowanej w n1 do n2. Typ danych bajt; Iloczyn logiczny zmiennych n1 in2. Typ zmiennych Word', - 33/54 -

7. Deklaracja czasomierza typu TON: 8. Deklaracja czasomierza typu TONR: 9. Deklaracja licznika typu CTU: 10. Deklaracja licznika typu CTUD: - 34/54 -

- 35/54 -

- 36/54 -

- 37/54 -

11. Instrukcja przesuwania MOVB operandów o rozmiarze l bajtu: 12. Instrukcja iloczynu logicznego AND operandów o rozmiarze 2 bajtów (słowo): 13. Instrukcja zmniejszania zawartości rejestru DECW o rozmiarze 2 bajtów (słowo): 14. Instrukcja sumy algebraicznej +1 dwóch argumentów o rozmiarze 2 bajtów: Poprawne działanie AC1 0000000011111111 +I AC0 0000000000001100 wynik operacji AC0 0000000100001011 15. Instrukcja różnicy algebraicznej -I dwóch argumentów o rozmiarze 2 bajtów: - 38/54 -

Poprawne działanie AC1 0000000100001011 -I AC0 0000000000001100 wynik operacji AC0 0000000011111111-39/54 -

16. Instrukcja mnożenia algebraicznego MUL dwóch operandów o rozmiarze 2 bajtów: 17. Instrukcja dzielenia algebraicznego DIV dwóch operandów o rozmiarze 2 bajtów: - 40/54 -

- 41/54 -

Operacje matematyczne LAD Opis Zmienna Blok funkcyjny umożliwiający dodawanie dwóch liczb całkowitych 16 bitowych ze znakiem (Signet Integer) w zakresie: -32768 do +32767 doprowadzonych do wejść: "IN1" oraz "IN2". Wynik działania, jako zmienna 16 bitowa, wyprowadzony jest na wyjście "OUT". Operacja zostanie wykonana, gdy do wejścia "EN" podany zostaje sygnał./ 1,2,3 (Add Integer): IN1 + IN2 = OUT Blok funkcyjny umożliwiający odejmowanie dwóch liczb całkowitych 16 bitowych ze znakiem (Signet Integer) w zakresie: -32768 do +32767 doprowadzonych do wejść: "IN1" oraz "IN2". Wynik działania, jako zmienna 16 bitowa, wyprowadzony jest na wyjście "OUT". Operacja zostanie wykonana, gdy do wejścia "EN" podany zostaje sygnał./ 1,2,3 (Subtract Integer): IN1 - IN2 = OUT Blok funkcyjny umożliwiający dodawanie dwóch liczb całkowitych 32 bitowych ze znakiem (Signet Integer) w zakresie: -2147483648 do +2147483647 doprowadzonych do wejść: "IN1"oraz "IN2". Wynik działania, jako zmienna 32 bitowa, wyprowadzony jest na wyjście "OUT". Operacja zostanie wykonana, gdy do wejścia "EN" podany zostaje sygnał./ 1,2,3 (Add Double Integer): IN1 + IN2 = OUT Blok funkcyjny umożliwiający odejmowanie dwóch liczb całkowitych 32 bitowych ze znakiem (Signet Integer) w zakresie: -2147483648 do +2147483647 doprowadzonych do wejść: "IN1"oraz "IN2". Wynik działania, jako zmienna 32 bitowa, wyprowadzony jest IN1, IN2: (słowo) VW, T, C, IW, QW, MW, SMW, AC, AIW, K OUT: (słowo) VW, T, C, IW, QW, MW, SMW, AC IN1, IN2: (32 bity) VD, ID, QD, MD, SMD, AC, HC, K OUT: (32 bity) VD, ID, QD, MD, SMD, AC IN1, IN2: (32 bity) VD, ID, QD, MD, SMD, AC, HC, K - 42/54 -

na wyjście "OUT". Operacja zostanie wykonana, gdy do wejścia "EN" podany zostaje sygnał./ 1,2,3 (Subtract Double Integer): IN1 - IN2 = OUT Blok funkcyjny umożliwiający mnożenie dwóch liczb całkowitych 16 bitowych ze znakiem (Signet Integer) w zakresie: -32768 do +32767 doprowadzonych do wejść: "IN1"oraz "IN2". Wynik działania, jako zmienna 32 bitowa, wyprowadzony jest na wyjście "OUT". Operacja zostanie wykonana, gdy do wejścia "EN" podany zostaje sygnał./ 2,3 (Multiply Integer): IN1 * IN2 = OUT Blok funkcyjny umożliwiający dzielenie dwóch liczb całkowitych 16 bitowych ze znakiem (Signet Integer) w zakresie: -32768 do +32767 doprowadzonych do wejść: "IN1"oraz "IN2". Wynik działania, jako zmienna 32 bitowa, wyprowadzony jest na wyjście "OUT". Operacja zostanie wykonana, gdy do wejścia "EN" podany zostaje sygnał. / 1,2,3 (Divide Integer): IN1 / IN2 = OUT Operacja dodawania dwóch 32-bitowych liczb rzeczywistych IN1 oraz IN2 w arytmetyce zmiennoprzecinkowej (floating point). Wynik operacji jest liczbą rzeczywistą 32-bitową i wyprowadzony jest na wyjście "OUT". Operacja zostanie wykonana, gdy do wejścia "EN" podany zostaje sygnał. / 1,2,3 (Add Real): IN1 + IN2 = OUT OUT: (32 bity) VD, ID, QD, MD, SMD, AC IN1, IN2: (słowo) VW, T, C, IW, QW, MW, SMW, AC, AIW, K OUT: (32 bity) VD, ID, QD, MD, SMD, AC Uwaga: Część całkowita ilorazu przechowywana jest w pierwszych 16 mniej znaczących bitach, a reszta w kolejnych 16 bardziej znaczących bitach zmiennej wyjściowej 32 bitowej. - 43/54 -

Operacja odejmowania dwóch 32-bitowych liczb rzeczywistych IN1 oraz IN2 w arytmetyce zmiennoprzecinkowej (floating point). Wynik operacji jest liczbą rzeczywistą 32-bitową i wyprowadzony jest na wyjście "OUT". Operacja zostanie wykonana, gdy do wejścia "EN" podany zostaje sygnał. / 1,2,3 (Subtract Real): IN1 - IN2 = OUT N: (32 bity) VD, ID, QD, MD, SMD, AC, HC, K OUT: (32 bity) VD, ID, QD, SMD, AC Koniec wykładu 17.10 Operacja mnożenia dwóch 32-bitowych liczb rzeczywistych IN1 oraz IN2 w arytmetyce zmiennoprzecinkowej (floating point). Wynik operacji jest liczbą rzeczywistą 32-bitową i wyprowadzony jest na wyjście "OUT". Operacja zostanie wykonana, gdy do wejścia "EN" podany zostaje sygnał. / 1,2,3 (Multiply Real): IN1 * IN2 = OUT Operacja dzielenia dwóch 32-bitowych liczb rzeczywistych IN1 oraz IN2 w arytmetyce zmiennoprzecinkowej (floating point). Wynik operacji jest liczbą rzeczywistą 32-bitową i wyprowadzony jest na wyjście "OUT". Operacja zostanie wykonana, gdy do wejścia "EN" podany zostaje sygnał. / 1,2,3,4 (Divide Real): IN1 / IN2 = OUT Blok funkcyjny umożliwiający wyliczenie pierwiastka kwadratowego z liczby rzeczywistej 32 bitowej, która jest jego parametrem wejściowym "IN". Wynik (część całkowita), jako zmienna 32 bitowa, wyprowadzony jest na wyjście "OUT". Operacja zostanie wykonana, gdy do wejścia "EN" podany zostaje sygnał. / 1, 2, 3 (Square Root of Real Number) N: (32 bity) VD, ID, QD, MD, SMD, AC, HC, K OUT: (32 bity) VD, ID, QD, SMD, AC IN: (32 bity) VD, ID, QD, MD, SMD, AC, HC, K OUT: (32 bity) VD, ID, QD, MD, SMD, AC - 44/54 -

Blok funkcyjny zwiększa wartość słowa wejściowego 16 bitowego ze znakiem (-32768 do +32767) doprowadzonego do wejścia "IN" o "1", gdy podany zostaje sygnał do wejścia "EN". Wynik wyprowadzony jest jako zmienna 16 bitowa ze znakiem na wyjście "OUT"./ 1,2,3 (Increment Word): IN + 1 = OUT Blok funkcyjny zmniejsza wartość słowa wejściowego 16 bitowego ze znakiem (-32768 do +32767) doprowadzonego do wejścia "IN" o "1", gdy podany zostanie sygnał do wejścia "EN". Wynik wyprowadzony jest jako zmienna 16 bitowa ze znakiem na wyjście "OUT"./ 1,2,3 IN: (słowo) VW, T, C, IW, QW, MW, SMW, AC, AIW, K OUT: (słowo) VW, T, C, IW, QW, MW, SMW, AC (Decrement Word): IN - 1 = OUT Blok funkcyjny zwiększa wartość słowa wejściowego 32 bitowego ze znakiem (-2147483648 do +2147483647) doprowadzonego do wejścia "IN" o "1", gdy podany zostanie sygnał do wejścia "EN". Wynik wyprowadzony jest jako zmienna 32 bitowa ze IN: (32 bity) znakiem na wyjście "OUT"./ 1,2,3 VD, ID, QD, MD, SMD, AC, HC, K (Increment Double Word): IN + 1 = OUT - 45/54 -

Blok funkcyjny zmniejsza wartość słowa wejściowego 32 bitowego ze znakiem (-2147483648 do +2147483647) doprowadzonego do wejścia "IN" o "1", gdy podany zostaje sygnał do wejścia "EN". Wynik wyprowadzony jest jako zmienna 32 bitowa ze znakiem na wyjście "OUT"./ 1,2,3 OUT: (32 bity) VD, ID, QD, MD, SMD, AC (Decrement Double Word): IN - 1 = OUT UWAGI: / 1 W przypadku, gdy wynik operacji przekracza zakres dopuszczalny bit specjalny SM1.1 ustawia się na "1", / 2 W przypadku, gdy wynik operacji wyniesie zero bit specjalny SM1.0 ustawia się na "1", / 3 W przypadku, gdy wynik operacji jest ujemny bit specjalny SM1.2 ustawia się na "1", / 4 W przypadku, gdy wystąpi próba dzielenia przez zero bit specjalny SM1.3 ustawi się na "1". - 46/54 -

Funkcje konwersji LAD Opis Zmienna Konwersja danych zapisanych w kodzie BCD-4 na dane zapisane jako liczby całkowite (Integer). Gdy do bloku funkcyjnego podany zostaje sygnał wejściowy "EN" zostaje dokonana konwersja zadanej przez parametr "IN" wartości, a jej wynik zostaje zapisany jako parametr wyjściowy "OUT"./ 1 (BCD to Integer) Konwersja danych zapisanych jako liczba całkowita (max. 9999) na równoważną liczbę zapisaną w kodzie BCD-4. Gdy do bloku funkcyjnego podany zostaje sygnał wejściowy "EN" zostaje dokonana konwersja zadanej przez parametr "IN" wartości, a jej wynik zostaje zapisany jako parametr wyjściowy "OUT"./ 1 (Integer to BCD) Blok funkcyjny pozwalający na ustawienie wartości określonego bitu zmiennej wyjściowe "OUT" 16 bitowej. Pozostałe bity słowa wyjściowego ustawiane są na "0". Numer pozycji (0 do 15) ustawianego bitu określa zmienna "IN". Operacja zostaje dokonana po doprowadzeniu sygnału wejściowego "EN". (Decode) Blok funkcyjny pozwalający na lokalizację w słowie 16 bitowym wejściowym "IN" pierwszego bitu o wartości "1". Operacja ta jest dokonywana po dopłynięciu sygnału wejściowego "EN" i rozpoczyna się od najniższego bitu słowa wejściowego. Numer pozycji zlokalizowanego bitu, w zapisie dwójkowym, udostępniany jest na wyjście "OUT". (Encode) Blok sterujący wyświetlaczem 7-segmentowym. Zakres przetwarzanych danych wejściowych "IN" zawiera się od 0 do 15. Dla liczb większych (max. IN: (słowo) VW, T, C, IW, QW, MW, SMW, AC, AIW, K OUT: (słowo) VW, T, C, IW, QW, MW, SMW, AC, IN: (bajt) VB, IB, QB, MB, SMB, AC,K OUT: (słowo) VW, T, C, IW, QW, MW, SMW, AC, IN: (słowo) VW, T, C, IW, QW, MW, SMW, AC, AIW, K OUT: (bajt) VB, IB, QB, MB, SMB, AC IN: (bajt) VB, IB, QB, MB, SMB, AC,K - 47/54 -

255) cykl konwersji powtarza się, i tak np: liczba 16 odpowiada 0, 17-1,..., 31-15 itd. Konwersja zachodzi, gdy do wejścia "EN" dochodzi sygnał wejściowy. (Segment) Przetwarzanie ciągu znaków zapisanych w formacie ASCII o długości "LEN"" (1 do 255) rozpoczynających się od adresu początkowego "IN" na ciąg liczb heksadecymalnych o adresie początkowym określonym parametrem "OUT". W przypadku LEN=0 proces konwersji nie jest realizowany. Konwersja zachodzi, gdy do wejścia "EN" dochodzi sygnał wejściowy. (ASCII to Hex) Przetwarzane znaki ASCII (0-9 i A-F) przedstawione w postaci liczb heksadecymalnych zawierają się w przedziałach: (16#30-16#39) dla (0-9) i (16#41-16#46) dla (A-F) OUT: (bajt) VB, IB, QB, MB, SMB, AC LEN: (bajt) VB, IB, QB, MB, SMB, AC, K IN: (bajt) VB, IB, QB, MB, SMB, OUT: (bajt)vb, IB, QB, MB, SMB, Przetwarzanie ciągu znaków heksadecymalnych (0-9, A-F) o długości "LEN"" (max. 255) rozpoczynających się od adresu "IN" na ciąg znaków ASCII o adresie początkowym określonym parametrem "OUT". Konwersja zachodzi, gdy do wejścia "EN" dochodzi sygnał wejściowy./ 3 (Hex to ASCII) Blok funkcyjny przetwarzający zmienną 32-bitową ze znakiem (signet integer) na 32-bitową liczbę rzeczywistą o adresie "OUT". Konwersja zachodzi, gdy do wejścia "EN" dochodzi sygnał wejściowy. IN: (bajt) VB, IB, QB, MB, SMB OUT: (bajt) VB, IB, QB, MB, SMB LEN: (bajt) VB, IB, QB, MB, SMB, AC, K IN: (32 bity) VD, ID, QD, MD, SMD, AC, HC, K OUT: (32 bity) - 48/54 -

VD, ID, QD, MD, SMD, Double Word Integer to Real (DI_REAL) AC Blok funkcyjny przetwarzający 32-bitową zmienną IN: (32 bity) rzeczywistą "IN" na 32-bitową zmienną ze znakiem VD, ID, QD, MD, SMD, (signet integer) o adresie "OUT". Operacja konwersji AC, HC, K zachodzi, gdy pierwszym bitem stosu jest "1". / 2 Truncate (TRUNC) OUT: (32 bity) VD, ID, QD, MD, SMD, AC UWAGA: / 1 Gdy zmienna wejścia "IN" bloku I_BCD lub BCD_I będzie miała wartość nieprawidłową, bit specjalny SM1.6 ustawia się na "1", / 2 Gdy zmienna wyjściowa przekroczy wartość dopuszczalną bit specjalny SM1.1 ustawi się na "1", / 3 W przypadku próby konwersji nieprawidłowego znaku ASCII bit specjalny SM1.7 ustawia si na "1". Funkcje zapisu/odczytu zegara systemowego STL Opis Zmienna Blok funkcyjny umożliwiający odczyt bieżącej wartości czasu i daty z zegara wewnętrznego. Informacje te ładowane są do 8 bajtowego bufora danych. Adres początkowy wskazany przez parametr "T" jest adresem pierwszego bajtu. Read Real Time Clock (READ_RTC) T: (bajt) - 49/54 -

Instrukcja umożliwiająca wpisywanie bieżącej wartości czasu i daty do zegara wewnętrznego. Informacje te ładowane są do 8 bajtowego bufora zegarowego o adresie początkowym wskazanym przez parametr "T", który jest adresem pierwszego bajtu. VB, IB, QB, MB, SMB Set Real Time Clock (SET_RTC) Funkcje związane ze strukturą programu (funkcje sterujące) STL Opis Zmienna Przekaźnik skoku warunkowego do miejsca n = (0 do 63) dla CPU w programie o adresie "n". Powoduje ona pominięcie 212 części programu sterującego umieszczonego n = (0 do 255) dla CPU pomiędzy instrukcją "JUMP n", a etykietą "LABEL n". 214 Instrukcja zostanie wykonana, gdy do przekaźnika podany zostaje sygnał. Jump to Label (JMP) Przekaźnik określający miejsce docelowe "n" skoku wywołanego przekaźnikiem "JUMP n" z tą samą etykietą i powoduje dalszą kontynuację wykonywania programu począwszy od tej etykiety. Label (LBL) Przekaźnik powodujący przeniesienie wykonywania programu sterującego do podprogramu o etykiecie "n". Po wykonaniu podprogramu następuje powrót do miejsca bezpośrednio występującego za przekaźnikiem "CALL n". Instrukcja zostanie wykonana, gdy do przekaźnika podany zostaje sygnał. (CALL) Przekaźnik wskazujący początek podprogramu "n" wywołanego przekaźnikiem "CALL n". Wszystkie podprogramy muszą być umieszczone na końcu głównego programu sterującego, tzn. za przekaźnikiem końca programu END. n = (0 do 63) dla CPU 212 n = (0 do 255) dla CPU 214 n = (0 do 15) dla CPU 212 n = (0 do 63) dla CPU 214 n = (0 do 15) dla CPU 212 n = (0 do 63) dla CPU 214-50/54 -

Subroutine (SBR) Uwaga: Przekaźniki CALL/SBR umożliwiają nakładanie się na siebie zakresów działania w ten sposób, że zakres działania jednej pary przekaźników CALL/SBR zawiera się wewnątrz innej pary przekaźników. Pokrywać się może do 9 takich obszarów. Przekaźnik bezwarunkowego powrotu z podprogramu. bez oznaczeń Jest ostatnim elementem każdego podprogramu kończąc jego wykonywanie. Return from Subroutine (RET) Przekaźnik warunkowego powrotu z podprogramu. bez oznaczeń Przekaźnik może być wykorzystany do opuszczania danego podprogramu. Może również wystąpić przed przekaźnikiem bezwarunkowego zakończenia podprogramu "RET". Instrukcja zostanie wykonana, gdy do przekaźnika podany zostaje sygnał. Return from Subroutine (RET) Przekaźnik zakończenia wykonywania części logicznej bez oznaczeń programu. Przekaźnik spowoduje zatrzymanie wykonywania programu w miejscu, w którym występuje i rozpoczęcie cyklu skanowania od początku. Instrukcja zostanie wykonana, gdy do przekaźnika podany zostaje sygnał. (END) Przekaźnik o działaniu bezwarunkowym. Jest ostatnim bez oznaczeń elementem programu sterującego. Powoduje rozpoczęcie przez sterownik skanowania programu od początku. (END) Przekaźnik ten kończy wykonywanie programu i bez oznaczeń powoduje natychmiastowe przejście sterownika w tryb STOP. Instrukcja zostanie wykonana, gdy do przekaźnika podany zostaje sygnał. (STOP) Blok funkcyjny powodujący wielokrotne powtórzenie fragmentu programu sterującego zawartego między instrukcjami "FOR" i "NEXT". Ilość tych powtórzeń określają parametry - początkowy "INITIAL" oraz INDEX: (słowo) VW, T, C, IW, QW, MW, SMW, AC, - 51/54 -

końcowy "FINAL". Parametr "INDEX" określa aktualną liczbę powtórzeń (wykonanych pętli), gdyż jego zawartość wzrasta o jeden po zakończeniu każdej pętli (powtórzenia). Jeśli aktualna wartość parametru "INDEX" będzie większa od wartości parametru końcowego "FINAL", nastąpi zakończenie wykonywania pętli (opuszczenie pętli). Instrukcja zostanie wykonana, gdy do wejścia "EN" podany zostaje sygnał. (FOR) INITIAL: (słowo) VW, T, C, IW, QW, MW, AC, SMW, AIW, K FINAL: (słowo) VW, T, C, IW, QW, MW, SMW, AC, AIW, K np: gdy wartość INITIAL = 1, a FINAL = 10, to fragment programu zawarty pomiędzy blokami "FOR - NEXT" zostanie powtórzony 10 razy. Przekaźnik, o działaniu bezwarunkowym, określa bez oznaczeń koniec obszaru programu sterującego, który podlega wielokrotnemu "zapętleniu". Ustawia pierwszy bit stosu na "1". (NEXT) Uwaga: Instrukcje FOR/NEXT umożliwiają nakładanie się na siebie zakresów działania w ten sposób, że zakres działania jednej pary instrukcji FOR/NEXT zawiera się wewnątrz innej pary instrukcji. Pokrywać się może do 9 takich obszarów. zmienne systemowe SM0.0 Zmienne systemowe Przeznaczenie Zmienne systemowe - tylko do odczytu Bit ten jest zawsze ustawiony na "1" w każdym cyklu skanowania. - 52/54 -

SM0.1 Bit ten jest ustawiony na "1" tylko w czasie pierwszego cyklu skanowania. SM0.2 Bit ustawiany na "1" w pierwszym cyklu skanowania, gdy zmienne z pamięcią stanu w pamięci RAM zostały skasowane. SM0.3 Bit ustawiany na "1" w czasie pierwszego cyklu skanowania po przejściu w tryb RUN po ponownym doprowadzeniu napięcia zasilającego. SM0.4 Bit sterowany impulsami zegarowymi. Zmienia swój stan co 30 sekund. SM0.5 Bit sterowany impulsami zegarowymi. Zmienia swój stan co 0,5 sekundy. SM0.6 Bit zmieniający stan na przeciwny w kolejnych cyklach zegarowych. SM0.7 Bit odzwierciedlający pozycję zewnętrznego przełącznika trybu pracy (pozycja TERM/STOP - bit ustawiony na "0", pozycja RUN - bit ustawiony na "1"). Uwaga: Stan powyższych bitów jest uaktualniany na końcu każdego cyklu skanowania SM1.0 Bit ustawiany na "1", gdy efektem określonej operacji jest cyfra "0". SM1.1 Bit ustawiany na "1", gdy efektem określonej operacji jest przekroczenie zakresu lub niedozwolona wartość parametru. SM1.2 Bit ustawiany na "1", gdy wynikiem operacji matematycznej jest liczba ujemna. SM1.3 Bit ustawiany na "1", gdy wystąpiła próba dzielenia przez zero. SM1.4 Bit ustawiany na "1", gdy wystąpi próba wczytania zmiennej do zapełnionej tablicy danych. SM1.5 Bit ustawiany na "1", gdy wystąpi próba czytania zmiennej z pustej tablicy danych przy użyciu instrukcji LIFO lub FIFO. SM1.6 Bit ustawiany na "1", gdy wystąpi próba konwersji niewłaściwej zmiennej wejściowej w bloku BDC_I. SM1.7 Bit ustawiany na "1", gdy nastąpi próba konwersji niewłaściwej zmiennej wejściowej w bloku ATH. SMB6 Rejestr identyfikujący: parametry jednostki CPU sterownika, rodzaj oraz liczbę wejść i wyjść. Dla jednostki centralnej CPU-212 nr id. ma postać: 00000101, a dla CPU-214 wynosi: 00101010. SMB7 Rejestr przechowujący informacje o ewentualnych błędach, które wystąpiły w obwodach wejść/wyjść sterownika PLC. SMB8-21 Rejestry o adresach parzystych (8,10,12,14,16,18,20) identyfikujące odpowiednio parametry modułów rozszerzeń o numerach (0-6) dotyczące: typu modułu, rodzaju i liczby wejść/wyjść. W drugiej grupie rejestrów o adresach nieparzystych (9,11,13,15, 17,19,21) przechowywane są informacje związane z błędami, które wystąpiły w poszczególnych modułach. Czyli każdy - 53/54 -

z modułów opisany jest parą rejestrów. Dla CPU-212 bajty od SM12 do SM21 są niewykorzystane, gdyż jednostka ta może być rozbudowana max. o dwa moduły zewnętrzne. SMW22 Rejestr 16 - bitowy zapisuje czas ostatniego cyklu skanowania w [ms]. SMW24 Rejestr 16 - bitowy zapisuje minimalny czas cyklu skanowania liczony od momentu uruchomienia sterownika w [ms]. SMW26 Rejestr 16 - bitowy zapisuje maksymalny czas cyklu skanowania liczony od momentu uruchomienia sterownika w [ms]. SMB28-29 Rejestry reprezentujące aktualną pozycję potencjometrów analogowych 0 i 1 sterownika. Zmienne systemowe - typu odczyt/zapis SMB30 Rejestr umożliwiający konfigurowanie portu komunikacyjnego w trybie swobodnym (Freeport). Przez ustawienie odpowiednich wartości bitów tego rejestru można wybrać parytet parzystości, szybkość transmisji danych, odpowiedni protokół komunikacyjny (PPI/Freeport) SMB31 Rejestr umożliwiający zapisywanie zmiennych z obszaru adresowego (0-199) dla CPU-212 lub (0-1023) dla CPU-214 w nieulotnej pamięci sterownika EEPROM. Pierwszy bit bajtu SMB31 wskazuje na rozkaz zachowania wartości, a dwa ostatnie określają format zmiennej (bit, bajt, słowo, zmienna 32-bitowa). SMW32 W pierwszych dziesięciu bitach tego bajtu podaje się adres zmiennej przeznaczonej do zapamiętania w nieulotnej pamięci EEPROM: 000000aaaaaaaaaa. SM34-35 Rejestry określające przedział czasowy dla przerwań programowych w zakresie od 0 do 255ms z rozdzielczością co 1ms. SMB36-65 Rejestry te służą do monitorowania i sterowania funkcjami szybkich liczników (HSC). SMB66-85 Rejestry te służą do monitorowania i sterowania wyjściami impulsowymi o stałym 50% wypełnieniu - PTO lub z modulacją szerokości impulsu (PWM). - 54/54 -