Podstawy Elektroniki i Elektrotechniki

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

Opracował: Jan Front

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

Sterowniki Programowalne (SP)

Sterowniki Programowalne (SP)

Programowanie sterowników PLC wprowadzenie

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

LEKCJA TEMAT: Zasada działania komputera.

WPROWADZENIE Mikrosterownik mikrokontrolery

Sterowniki Programowalne (SP) Wykład 11

Systemy Czasu Rzeczywistego (SCR)

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

Działanie i charakterystyka sterownika GE FANUC VersaMaxNano

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

SiR_4 Standaryzacja metod programowania sterowników PLC norma PN-IEC Typy danych i deklaracje zmiennych.

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

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

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

Modułowy programowalny przekaźnik czasowy firmy Aniro.

PROGRAMOWALNE STEROWNIKI LOGICZNE

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. Sieci i sterowniki przemysłowe

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

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Szczegółowy Opis Przedmiotu Zamówienia: Zestaw do badania cyfrowych układów logicznych

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

CoDeSys 3 programowanie w języku FBD

Politechnika Gdańska. Gdańsk, 2016

Sterowniki Programowalne (SP)

NX700 PLC

STEROWNIKI PROGRAMOWALNE PLC

JAZZ OPLC JZ20-R10 i JZ20-R16

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

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

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

Karta katalogowa JAZZ OPLC JZ20-R31

Karta katalogowa JAZZ OPLC JZ20-T40/JZ20-J-T wejść cyfrowych, 2 wejścia analogowe/cyfrowe, 2 wejścia analogowe. 20 wyjść tranzystorowych

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

CoDeSys 3 programowanie w języku drabinkowym LD

Siemens Simatic S7-300 Informacje podstawowe o sterowniku programowalnym

NX70 PLC

Standardowe bloki funkcjonalne

Segmenty rynku sterowników

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

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Spis treści. Dzień 1. I Konfiguracja sterownika (wersja 1410) II Edycja programu (wersja 1406) III Środowisko TIA Portal (wersja 1410)

Systemy wbudowane. Paweł Pełczyński

Zastosowania mikrokontrolerów w przemyśle

Technologie informacyjne - wykład 12 -

Wstęp do PLC. Sławomir Mamica

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

MIKROKONTROLERY I MIKROPROCESORY

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

Pierwsze kroki z easy Soft CoDeSys Eaton Corporation. All rights reserved.

Karta katalogowa JAZZ OPLC. Modele JZ20-R10/JZ20-J-R10 i JZ20-R16/JZ20-J-R16

Język FBD w systemie Concept

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

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Budowa i zasada działania komputera. dr Artur Bartoszewski

System mikroprocesorowy i peryferia. Dariusz Chaberski

Karta katalogowa JAZZ OPLC. Modele JZ20-T10/JZ20-J-T10 i JZ20-T18/JZ20-J-T18

Wstęp Architektura... 13

PRZED PRZYSTĄPIENIEM DO ZAJĘĆ PROSZĘ O BARDZO DOKŁADNE

JAZZ OPLC JZ20-R31/JZ20-J-R31

Budowa Mikrokomputera

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

Wyjścia analogowe w sterownikach, regulatorach

Sterowniki Programowalne (SP) Wykład 6

Sterowniki PLC. Elektrotechnika II stopień Ogólno akademicki. przedmiot kierunkowy. Obieralny. Polski. semestr 1

SFC zawiera zestaw kroków i tranzycji (przejść), które sprzęgają się wzajemnie przez połączenia

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Szybkie prototypowanie w projektowaniu mechatronicznym

MiniModbus 4DO. Moduł rozszerzający 4 wyjścia cyfrowe. Wyprodukowano dla. Instrukcja użytkownika

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

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

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

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

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Mikroprocesor Operacje wejścia / wyjścia

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

Organizacja typowego mikroprocesora

Istnieje wiele metod przekształcania algorytmów wprogram sterujący.

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego.

Budowa komputera Komputer computer computare

Funkcje: wejściowe, wyjściowe i logiczne. Konfigurowanie zabezpieczeń.

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

E-E-A-1008-s6. Sterowniki PLC. Elektrotechnika I stopień Ogólno akademicki. kierunkowy (podstawowy / kierunkowy / inny HES)

Generator przebiegów pomiarowych Ex-GPP2

INDU-22. Przemysłowy Sterownik Mikroprocesorowy. Przeznaczenie. masownica próżniowa

Kurs Projektowanie i programowanie z Distributed Safety. Spis treści. Dzień 1. I Bezpieczeństwo funkcjonalne - wprowadzenie (wersja 1212)

System czasu rzeczywistego

Architektura systemów komputerowych. dr Artur Bartoszewski

DigiPoint Karta katalogowa DS 5.00

Elastyczne systemy wytwarzania

Budowa systemów komputerowych

Karta katalogowa JAZZ OPLC JZ10-11-PT15/JZ10-J-PT15. 3 wejścia cyfrowe, 3 wejścia analogowe/cyfrowe, 3 wejścia PT1000/NI1000

Architektura komputerów

Transkrypt:

Podstawy Elektroniki i Elektrotechniki Sławomir Mamica mamica@amu.edu.pl Programowalne Sterowniki Logiczne http://main5.amu.edu.pl/~zfp/sm/home.html

1. O systemach wbudowanych Plan Definicja i przykłady Charakterystyka SW i wymagania im stawiane 2. O PLCach Definicja i zadania Budowa i zasada działania Fazy cyklu programowego 3. O programowaniu PLCów Języki programowania Jednostki organizacyjne oprogramowania Bloki funkcyjne vs. funkcje 4. Standardowe funkcje i bloki funkcyjne

O systemach wbudowanych http://main5.amu.edu.pl/~zfp/sm/home.html

Podziękowania Ta część prezentacji jest kompilacją kilku prezentacji autorstwa dra Zdzisława Stryły Taki kolor oznacza informacje szczególnie istotne

O czym to będzie? System wbudowany = komputer wewnątrz produktu

Przykłady Notes elektroniczny. Drukarka. Telefon komórkowy. Samochód: silnik, hamulce, wskaźniki, itd.. Telewizja. Urządzenia domowe...

Przykłady cd. Proste sterowanie: kuchenka mikrofalowa, etc. Aparat fotograficzny Canon EOS 3 ma trzy mikroprocesory. 32-bit RISC CPU steruje autofocusem i efektem oczu. TV analogowa: wybór kanału, itd. TV cyfrowa: programowalne CPUs + układy sprzętowe.

Samochodowe systemy wbudowane Współczesne samochody z górnej półki mogą mieć ponad 100 mikroprocesorów: Mikrokontrolery sterują urządzeniami na desce rozdzielczej; 4-bit mikrokontroler sprawdza pasy bezpieczeństwa; 16/32-bit mikroprocesor steruje silnikiem

BMW 850i Anti-lock brake system (ABS): reguluje siłę hamowania dla uniknięcia poślizgu; Automatic stability control (ASC+T): steruje silnikiem dla zwiększenia stabilności. ABS i ASC+T komunikują się ze sobą. ABS został wprowadzony wcześniej ---należało podłączyć resztę do istniejącego ABS.

Historia Koniec lat 1940 : komputer MIT Whirlwind stworzony do operacji w czasie rzeczywistym. Do sterowania symulatorem lotniczym. Pierwszy mikroprocesor - Intel 4004 na początku lat 70. Mikroprocesorowe sterowanie silnikiem samochodowym od lat siedemdziesiątych. Optymalizacja składu mieszanki, uwarunkowania czasowe, itd.; Różne tryby pracy: rozgrzewanie, jazda, podjazd pod górę, itd..; Zmniejszenie emisji zanieczyszczeń, zmniejszenie zużycia paliwa.

Hierarchia komputerów Wydajność + + ++ ++ +++ ++++ CENA $ $ $$ $$ $$$ $$$$ Sterowniki wbudowane Systemy DSP PC Sterowniki przemysłowe Minframe/stacje robocze Superkomputery

Definicja System wbudowany (Embedded system): urządzenie, które zawiera komputer programowalny, ale nie jest komputerem ogólnego przeznaczenia, a nawet z zewnątrz wcale nie jest komputerem; Charakterystyka aplikacji umożliwia optymalizację konstrukcji: Nie potrzebujemy bajerów znanych z komputerów ogólnego przeznaczenia; Czasem stosujemy zamiast procesora układy cyfrowe (układy programowalne).

Wbudowany komputer output analog CPU input analog embedded computer mem

Co trzeba poznać? Sprzęt: Architektura komputera: CPU, organizacja pamięci, urządzenia I/O Jak jest wykonywany program; podprogramy i przerwania Oprogramowanie: Języki programowania sterowników przemysłowych PLC; Adresowanie pamięci; Narzędzia programistyczne; Metodologia konstrukcji i programowania.

Oprogramowanie systemów wbudowanych Historycznie SW nie miały systemu operacyjnego; Obecnie jest wiele SO dla SW (Tiny OS, ucos, RTOS, Embedded Linux, Embedded Windows); SO dla sterowników przemysłowych (?); Kod wykonywalny musi być przygotowany i ładowany z innej platformy; Oprogramowanie dopasowane do sprzętu; Oprogramowanie przykrojone do zadania (kompilatory dla konkretnego procesora, programowanie w asemblerze); Programista musi znać i rozumieć sprzęt

Sprzęt systemów wbudowanych Tradycyjnie nie mają wiele wspólnego ze stylem PC; Zwykle są to procesory specjalizowane (mikrokontrolery, procesory sygnałowe); myślenie niskopoziomowe, ale z uwzględnieniem dużej wydajności; Sprzęt przykrojony do zadania Robimy jedną rzecz (może kilka), ale dobrze;

Różne mikroprocesory Microsterownik (Microcontroller): zawiera układy I/O, pamięć wbudowaną. Procesor sygnałowy (Digital signal processor - DSP): mikroprocesor zoptymalizowany do cyfrowego przetwarzania sygnałów. Typowe długości słowa maszynowego: 8-bit, 16-bit, 32- bit.

Cechy systemów wbudowanych W ciągu roku na świecie produkuje się ~~ 75 milionów mikroprocesorów w stylu PC; W tym samym czasie powstaje ~~ 2.5 miliarda jednostek wbudowanych: Cechują się: Specjalizacją dopasowaną do zadania Wydajnością dopasowaną do zadania; Niskim kosztem produkcji (relatywnie); Małymi rozmiarami (tam, gdzie potrzeba); Małą energochłonnością (tam, gdzie potrzeba);

Cechy systemów wbudowanych Wykonują niewielki zestaw ściśle powiązanych funkcji (nie są to systemy ogólnego przeznaczenia) Często są częścią większego systemu, który nie jest komputerem: Maszyna do kawy, przyrząd naukowy, rakieta Często obsługiwane przez dyletanta Często pracują w czasie rzeczywistym odtwarzacz MP3, rejestrator danych, system nawigacji Są połączeniem zintegrowanego sprzętu i oprogramowania.

Złożoność funkcjonalna Często należy wykonywać zaawansowane algorytmy lub przełączać między algorytmami. Telefon komórkowy, drukarka laserowa. Często muszą zapewniać skomplikowany interfejs użytkownika.

Praca w czasie rzeczywistym Zadanie musi być ukończone w określonym czasie (deadline). Hard real time: niespełnienie warunku czasowego powoduje błąd. Soft real time: niespełnienie warunku czasowego powoduje pogorszenie działania. Wiele systemów jest wieloprędkościowych (multi-rate): muszą wykonywać zadania ze zmiennymi prędkościami.

Wymogi pozafunkcjonalne Wiele SW jest produkowanych masowo muszą mieć niskie koszty wytwarzania. Ograniczona pamięć, moc procesora, itp.. Zużycie energii krytyczne w urządzeniach zasilanych bateryjnie Nadmierne zużycie energii zwiększa koszt nawet w urządzeniach zasilanych z sieci.

Dlaczego mikroprocesor? Coraz częściej mikroprocesor zastępuje układ specjalizowany: Mikroprocesory są wydajne w tym sensie, że można użyć tego samego sprzętu do wykonywania różnych zadań. Upraszczają projektowanie rodzin produktów. Używają więcej zasobów, niż układy specjalizowane, ale zwykle działają wcale nie wolniej: potokowanie; duże zespoły konstrukcyjne; coraz szybsza technologia VLSI (Very-large-scale integration).

Zużycie energii Układy specjalizowane zużywają mniej energii. Współczesne procesory mają możliwość kontroli zużycia energii. Odpowiednia konstrukcja oprogramowania może pomagać zmniejszeniu zużycia.

Wyzwania przy tworzeniu systemów wbudowanych Ile zasobów potrzeba? Wielkość CPU (rejestrów), pamięci, ilość I/O Jak spełnić wymagania czasowe? Szybszy sprzęt, czy lepsze oprogramowanie? Jak ograniczać zużycie energii? Wyłączać zbędne układy? Ograniczać dostęp do pamięci?

Problemy ciąg dalszy Czy to rzeczywiście działa? Czy założenia są poprawne? Czy implementacja spełnia założenia? Jak sprawdzić charakterystyki czasu rzeczywistego? Jak testować na prawdziwych danych? Jak pracujemy z systemem? Obserwowalność, sterowalność? Platforma projektowa?

PLC Czyli programowalne sterowniki logiczne kompromis pomiędzy uniwersalnością a zapotrzebowaniem na zasoby

O PLCach http://main5.amu.edu.pl/~zfp/sm/home.html

PLC Programmable Logic Controller (Programowalny Sterownik Logiczny) Definicja (skrócona): Uniwersalne urządzenie mikroprocesorowe przeznaczone do sterowania pracą maszyny lub urządzenia technologicznego

Norma IEC 61131 Norma ta dotyczy sterowników programowalnych oraz związanych z nimi urządzeń peryferyjnych. Pierwsza edycja normy została opublikowana przez Międzynarodową Komisję Elektrotechniczną w roku 1993 jako IEC 61131 Programmable Controllers ; przyjęta bez zmian w Europie jako EN 61131. Składa się z pięciu części: Postanowienia ogólne, Wymagania i badania dotyczące sprzętu, Języki programowania, Wytyczne dla użytkownika, Wymiana informacji.

Norma IEC 61131-1 Część 1. Postanowienia ogólne (General Information) Część ta zawiera ogólne definicje i typowe własności funkcjonalne, które odróżniają sterowniki programowalne PLC od innych systemów. Obejmuje standardowe własności sterowników PLC, jak np.: cykliczne przetwarzanie programu użytkownika korzystającego z przechowywanego w pamięci obrazu stanu wejść i wyjść sterownika lub przydział czasu pracy na komunikację z programatorem czy urządzeniami interfejsu operatora.

Norma IEC 61131-2 Część 2. Wymagania i badania dotyczące sprzętu (Equipment Requirements and Tests) Zdefiniowane zostały tu elektryczne, mechaniczne i funkcjonalne wymagania dla urządzeń oraz odpowiednie testy jakości. Określono także warunki środowiskowe, w jakich ma pracować PLC (temperatura, wilgotność powietrza itp.) oraz dokonano klasyfikacji sterowników i narzędzi programowania.

Norma IEC 61131-3 Część 3. Języki programowania (Programing Languages) Ujednolicono stosowane dotychczas języki programowania w zharmonizowany i zorientowany przyszłościowo system. Pojęcia podstawowe, zasady ogólne, model programowy i model komunikacyjny zostały opisane za pomocą formalnych definicji. Specyfikuje syntaktykę (znaczenie) i semantykę (składnię) tekstowych i graficznych języków programowania, oraz elementy konfiguracji wspomagające instalację oprogramowania w sterownikach.

Norma IEC 61131-4 Część 4. Wytyczne dla użytkownika (User Guidelines) Część ta stanowi przewodnik dla użytkownika PLC, wspomagający go we wszystkich fazach projektowania systemu automatyki. Podane zostały praktyczne informacje, poczynając od analizy systemu i wyboru sprzętu, aż po zastosowania.

Norma IEC 61131-5 Część 5. Wymiana informacji (Messaging Service Specifications) Ta część normy dotyczy zasad komunikacji między sterownikami z różnych rodzin oraz z innymi urządzeniami. W połączeniu z normą ISO 9506 (MMS) specyfikującą zasady komunikacji w procesie produkcji określa ona funkcje adresowania urządzeń, wymiany danych, przetwarzania alarmów, sterowanie dostępem i administrowanie siecią.

Norma IEC 61131 Komitet IEC wydał dwa raporty: propozycje rozszerzeń do normy (Technical Report 2), wskazówki dotyczące implementacji języków programowania dla sterowników programowalnych (Technical Report 3). Ponadto przedstawione zostały: korekta błędów dostrzeżonych po publikacji normy (ang. Corrigendum), dokument zawierający propozycje poprawek i udoskonaleń (ang. Amendments). W przygotowaniu jest część dotycząca języka dla sterowania z wykorzystaniem zbiorów rozmytych (ang. Fuzzy Control Language).

Definicja PLC wg. normy IEC 61131: Cyfrowy system elektroniczny do stosowania w środowisku przemysłowym, który posługuje się pamięcią programowalną do przechowywania zorientowanych na użytkownika instrukcji w celu sterowania przez cyfrowe lub analogowe wejścia i wyjścia szeroką gamą maszyn i procesów.

Klasyfikacja Podstawowym parametrem określającym możliwości sterownika PLC jest liczba przetwarzanych sygnałów wejściowych i wyjściowych tzw. liczba punktów (nazwą tą określa się obwody wejściowe lub wyjściowe). Umowny podział sterowników ze względu na ilość wejść/wyjść: nanosterowniki - do 32 punktów mikrosterowniki - do 128 punktów, układy o średniej liczbie wejść/wyjść - do 1024 układy duże - powyżej 1024 wejść/wyjść

Klasyfikacja Sterowniki PLC stanowią dużą i różnorodną grupę produktów: od modeli najprostszych, tzw. przekaźników programowalnych, poprzez sterowniki kompaktowe, modułowe lub rozproszone, aż do skomplikowanych urządzeń o możliwościach zbliżonych do komputerów przemysłowych. W nazwach często pojawiają się informacje dotyczące sposobu realizacji (np. sterownik kompaktowy) zamiast PLC (ale rodzina pozostaje PLC). Ze względu na architekturę sterownika najbardziej popularne są: sterowniki kompaktowe (zazwyczaj określonego przeznaczenia) sterowniki modułowe (swobodnie konfigurowalne) sterowniki rozproszone (a właściwie systemy rozproszone)

Sterowniki kompaktowe Sterowniki kompaktowe należą do klasy najmniejszych (do 128 punktów) o sztywnej architekturze. Przeznaczone są głównie do sterowania niewielkimi maszynami lub prostymi procesami. W jednej obudowie znajduje się tu: zasilacz (PS, ang. Power Supply), jednostka centralna (CPU, ang. Central Proccessing Unit), niewielka liczba wejść i wyjść cyfrowych, rzadziej analogowych.

Przykład: EASY 512-AC-RC Mini-serownik PLC: zasilany napięciem 230V AC, z zegarem czasu rzeczywistego, wyświetlaczem i klawiaturą umożliwiającą programowanie bez użycia programu na PC-ta. Do 16 informacji tekstowych na panelu. Zasilanie - 230VAC Liczba wejść cyfrowych 230 VAC - 8 Liczba wyjść przekaźnikowych - 4 Dostępnych linii programu - 128 Elementów w linii programu - 4 Montaż na szynie TS 35 Możliwy montaż w obudowach modułowych

Sterowniki modułowe Sterownik modułowy składa się z płyty / kasety łączeniowej z gniazdami lub innym systemem do podłączenia wybranych modułów podstawowych: zasilacza jednostki centralnej CPU oraz modułów opcjonalnych.

Sterowniki modułowe Moduły opcjonalne: wejść i wyjść cyfrowych (ang. Digital Input, Digital Output), wejść i wyjść analogowych (ang. Analog Input, Analog Output), szybkich liczników (HSC, ang. High-Speed Counter), pozycjonowania osi (APM, ang. Axis Positioning Module), komunikacyjnych, do podłączenia sterownika do sieci lokalnej w określonym standardzie, np. Modbus, Profibus, ControlNet, Genius itp. lub do sieci Ethernet, wejściowych dla czujników temperatury, regulatora PID lub regulatorów rozmytych,

Przykład: PACSystems RX3i

Sterowniki rozproszone DCS (Distributed Control System) rozproszony system sterowania w aspekcie architektury systemu sterowania oraz infrastruktury sprzętowo-programowej sterowania. Podejście zdecentralizowane podstawowy cel sterowania złożonym obiektem podzielony na szereg mniejszych, powiązanych ze sobą zagadnień (dekompozycja). Dekompozycja funkcjonalna wydzielenie szeregu funkcjonalnie różnych wzajemnie powiązanych celów sterowania. Dekompozycja przestrzenna podział na lokalne zadania tego samego rodzaju ale z mniejszą ilością przetwarzanej informacji, powiązane z przestrzennie wydzielonymi częściami całego zadania sterowania.

Sterowniki rozproszone Dwa rozwiązania przemysłowe: DCS oraz PLC/SCADA. Systemy te wywodzą się z różnych zastosowań, jednak wraz z rozwojem elektroniki, informatyki i automatyki ich funkcjonalność stała się podobna (brak unikalnych cechach funkcjonalnych niedostępnych w drugim systemie). Można natomiast mówić o specyfice każdego z tych systemów. PLC pierwotnie było zorientowane na zastąpienie układów stycznikowo-przekaźnikowych, na sterowanie dyskretne z dużą rozdzielczością czasową np. napędami, maszynami, procesami wsadowymi, pojedynczymi urządzeniami. DCS od początku projektowane były do zadań regulacji ciągłej z wykorzystaniem sygnałów analogowych. Ich głównymi aplikacjami były sektory chemiczny i rafinerie czyli systemy wielkiej skali.

Sterowniki rozproszone

Budowa sterownika PLC

CPU Podstawowe dane charakteryzujące CPU: czas typowego cyklu programowego (szybkość CPU, np. czas wykonywania 1000 instrukcji bitowych lub 1000 instrukcji bitowych i 200 arytmetycznych) sposób zasilania maksymalna liczba wejść i wyjść cyfrowych i analogowych wielkość pamięci przeznaczonej na program aplikacji i dane oraz typ stosowanej pamięci (RAM, EPROM, FLASH) możliwość wykonywania obliczeń zmiennoprzecinkowych możliwość forsowania zmiennych (wymuszania ich wartości z poziomu programatora) szczególnie przydatne na etapie testowania programu lub całego systemu sterowania

Co w pamięci RAM? dane systemowe (obszar niedostępny dla użytkownika) program użytkownika (może być w ROM) obraz wejść i wyjść sterownika dane pomocnicze Podtrzymanie bateryjne: dane użytkownika mogą być w części lub całości zachowane w czasie zatrzymania sterownika (dane podtrzymywane, ang. retentive variables) co umożliwia ciepły restart sterownika. Program użytkownika może być przechowywany w pamięci zewnętrznej (E)EPROM.

Dane użytkownika Pamięć przeznaczona na dane użytkownika dzieli się na obszary: dane wejściowe, zawierające obraz wejść sterownika, wg normy IEC 61131-3 oznaczane przez %I lub %IX, dane wyjściowe, zawierające obraz wyjść sterownika, wg normy IEC 61131-3 oznaczane przez %Q lub %QX, dane pomocnicze, dane zadeklarowane w programie użytkownika, ale nie przypisane do wejść ani wyjść.

Moduły wejść-wyjść Pośredniczą w wymianie danych z otoczeniem. Dzielą się na dwa typy: cyfrowe (Digital Input, Digital Output), analogowe (Analog Input, Analog Output). Wszystkie sygnały trafiające do CPU muszą mieć postać cyfrową sygnał wejściowy analogowy jest dekodowany (A/C) (podobnie sygnał wyjściowy C/A).

Moduł wejściowy Umożliwia wprowadzanie do sterownika sygnałów wejściowych cyfrowych lub analogowych. Galwaniczna izolacja wejść (transoptory) ze względu na wrażliwość układów sterownika na przepięcia. Dodatkowe zabezpieczenie wejścia przed zakłóceniami impulsowymi filtry RC włączane równolegle. Wejścia cyfrowe muszą mieć zapewniony odpowiedni poziom sygnałów, aby rozpoznawać je jako '1' lub '0'. Wejścia analogowe, na które podawany jest sygnał ciągły, są sprzężone z przetwornikami analogowo-cyfrowymi. Sygnały analogowe są z reguły dostosowane do określonego poziomu sygnałów wejściowych.

Moduł wyjściowy Umożliwia wyprowadzenie ze sterownika sygnałów sterowania w postaci analogowej lub cyfrowej. Wyjścia cyfrowe mogą być wykonane na tranzystorach lub przekaźnikach. Wyjścia przekaźnikowe: izolacja układów sterownika od obwodów wyjściowych, mała częstość łączeń, ograniczona trwałość. Wyjścia tranzystorowe: bardzo duża częstość łączeń, obciążalność zdecydowanie mniejsza niż wyjść przekaźnikowych, można stosować jedynie przy zasilaniu obwodów wyjściowych prądem stałym. Wyjścia analogowe: sterowanie pracą układów analogowych np. mocą grzałki, przetwornik C/A, izolacja galwaniczna.

Transoptor Transoptor (optoizolator) półprzewodnikowy element optoelektroniczny składający się z fotoemitera i fotodetektora umieszczonych we wspólnej obudowie. Sprzężenie optyczne może być stałe (w przypadku obudowy zamkniętej, izolującej optycznie od otoczenia) lub zmienne, modulowane z zewnątrz poprzez zmianę współczynnika transmisji lub odbicia światła (w przypadku obudowy optycznie otwartej). Wysokonapięciową izolację elektryczną oraz stałe sprzężenie optyczne między fotodetektorem a fotoemiterem umożliwia zastosowanie światłowodu wykonanego z przezroczystego tworzywa lub szkła. Taki transoptor pozwala przesyłać sygnały elektryczne z wejścia na wyjście bez połączeń galwanicznych obwodów wejściowego i wyjściowego.

Wyjście analogowe 8-bitowy przetwornik C/A DAC08. (sygnał cyfrowy, C z procesora, analogowy, A na zewnątrz) Symetryczne wyjście prądowe (A). Na ośmiu bitach wejścia cyfrowego koduje się 8-bitową liczbę binarną. Jeśli wszystkie wejścia są w stanie wysokim to z końcówki OUT wypływa prąd o maksymalnym natężeniu (a /OUT = 0A). wyjście analogowe Jeśli końcówka /OUT jest podłączona do masy, to na wyjściu pojawia się napięcie 0-5V w zależności od wpisanych na wejście przetwornika danych.

Wejścia analogowe 8-bitowy przetwornik A/C ADC0804. (C do procesora, A z zewnątrz) Przetwarzane napięcie jest różnicą napięć na końcówkach I+ i I-. Jeśli uziemiono wejście I-, to na wejście I+ podaje się napięcie w pełnym zakresie przetwarzania układu: 0-5V. Na I+ wędruje sygnał z ośmiokanałowego multipleksera analogowego 4051. Wybór wejścia: 3 najmłodsze linie magistrali danych zatrzaskiwane w rejestrze zatrzaskowym na sygnał z dekodera adresu (po sygnale zapisu do przetwornika).

Podstawowe zadanie sterownika Generowanie sygnałów sterujących w odpowiedzi na zmiany sygnałów wejściowych, zgodnie z przyjętym algorytmem sterowania lub regulacji. Zadanie to realizowane jest poprzez cykliczny odczyt stanu sygnałów wejściowych sterownika, realizację programu użytkownika oraz aktualizację sygnałów wyjściowych sterownika. Pojedynczy cykl pracy sterownika zwany jest cyklem programowym (ang. Program Sweep).

Podstawowe zadanie sterownika Reakcja sterownika zależy od wyników operacji arytmetyczno - logicznych wykonanych dla aktualnych wartości wejść sterownika, jego zmiennych wewnętrznych oraz zaprogramowanych warunków czasowych. Może także zależeć od operacji wykonanych na danych transmitowanych w sieciach łączących wiele elementów pomiarowych, sterowników, regulatorów, komputerów itp..

Cykl programowy Pojedynczy cykl pracy sterownika. Realizowany w zewnętrznej, bezwarunkowej pętli typu WHILE. Podzielony na fazy. Odpowiednio krótki (aby zapewnić pracę w czasie rzeczywistym). Możliwość ustawienia czasu trwania cyklu na stałą wartość (Constant Sweep). Zależnie od trybu pracy sterownika niektóre fazy mogą nie występować lub podlegać ograniczeniom.

Fazy cyklu programowego Kolejna faza zaczyna się dopiero po zakończeniu poprzedniej! Porządkowanie cyklu (Housekeeping). Czytanie stanów wejść (Data Input). Wykonanie programu użytkownika (Program Execution). Aktualizacja stanów wyjść (Data Output). Obsługa urządzeń zewnętrznych (Service External Devices). Wykonanie funkcji diagnostycznych (Diagnostics).

Tryby pracy RUN tryb pracy z programem użytkownika, czas przeznaczony na komunikację z programatorem jest zwykle ograniczony STOP tryb oczekiwania na załadowanie/uruchomienie programu użytkownika, nie występuje faza wykonania programu Tryby specjalne: praca z pojedynczym cyklem (Single Sweep) wykonywany jest tylko jeden pełny cykl w trybie RUN, po czym sterownik przechodzi w tryb STOP praca krokowa wykonanie tylko jednego rozkazu praca bez aktywacji sygnałów wyjściowych w celu testowania programu bez włączania sterowanych urządzeń

Faza porządkowania Obejmuje m.in.: obliczanie czasu potrzebnego do wykonania cyklu planowanie startu do następnego cyklu określenie jego trybu aktualizację tablicy błędów kasowanie zegara watchdog

Faza czytania wejść Przepisanie stanów modułów wejściowych sterownika do odpowiadających im obszarów w pamięci danych sterownika (State RAM). Moduły wejść cyfrowych obszar danych wejściowych binarnych. Moduły wejść analogowych obszar danych wejściowych w postaci rejestrów (zwykle 16-bitowych). Czas trwania tej fazy zależy od liczby i typu modułów wejściowych oraz ich umiejscowienia (płyta główna, płyta rozszerzeń, lokalizacja zdalna).

Faza wykonania programu Wykonanie jednego pełnego przebiegu programu użytkownika wraz z zapisem wyników w pamięci danych. Czas wykonania programu zależy od jego długości, użytych instrukcji oraz od modelu CPU. W trybie STOP faza ta nie jest wykonywana. Rozdzielenie pracy sterownika na poszczególne fazy zapewnia m.in. to, iż wyjścia nie zostaną ustawione zanim program użytkownika się nie zakończy (wartości pośrednie zmiennych wyjściowych nie są kierowane na wyjścia).

Faza aktualizacji wyjść Przepisanie danych z obszarów w pamięci danych sterownika (State RAM) do odpowiadających im modułów wejściowych sterownika. Obszar danych wyjściowych binarnych moduły wyjść cyfrowych. Obszar danych wyjściowych w postaci rejestrów (zwykle 16- bitowych) moduły wyjść analogowych. Czas trwania tej fazy zależy od liczby i typu modułów wyjściowych oraz ich umiejscowienia (płyta główna, płyta rozszerzeń, lokalizacja zdalna).

Faza obsługi urządzeń zewnętrznych Obejmuje obsługę: żądań wymiany danych od urządzenia programującego (programatora) modułów inteligentnych (tj. takich, które samodzielnie wykonują zadane operacje, np. obliczenia) modułów komunikacyjnych Czas trwania tej fazy zależy przede wszystkim od liczby urządzeń i wymienianych informacji. W trybie RUN czas przeznaczony na komunikację z programatorem jest zwykle ograniczony.

Faza diagnostyki Sprawdzenie konfiguracji sterownika oraz poprawności kolejnego fragmentu programu użytkownika (zadanej liczby słów).

Uwarunkowania czasowe Między wystąpieniem zdarzenia (zmiana sygnałów wejściowych), a reakcją sterownika (wygenerowaniem sygnałów sterujących), występuje opóźnienie, które zależy od czasu trwania cyklu programowego sterownika oraz od opóźnień wprowadzanych przez moduły wejściowe i wyjściowe. Najbardziej niekorzystna sytuacja ma miejsce wtedy, gdy zdarzenie nastąpi tuż po zakończeniu fazy czytania wejść. Informacja o nim zostanie odczytana dopiero w następnym cyklu. Czyli właściwy sygnał sterujący będzie wygenerowany pod koniec następnego cyklu. Stąd w najgorszym przypadku opóźnienie między zdarzeniem a reakcją sterownika może wynosić prawie dwa cykle programowe.

Uwarunkowania czasowe Aby zapewnić odpowiednio szybką odpowiedź sterownika, cykl programowy musi być znacznie krótszy niż wymagania czasowe nałożone na system sterowania.

Cykl o zadanym czasie trwania Istnieje możliwość zadania stałej wartości czasu trwania cyklu (Constant Sweep). Zadany czas powinien być nieco większy, niż rzeczywisty czas potrzebny na wykonanie wszystkich faz cyklu. Po wykonaniu wszystkich faz sterownik czeka, aby rozpocząć nowy cykl zgodnie z zadanym czasem. Jeśli rzeczywisty czas, potrzebny na wykonanie cyklu, jest dłuższy niż czas zadany, następuje przekroczenie zadanego czasu trwania cyklu, sygnalizowane ustawieniem odpowiednia zmiennej systemowej.

O programowaniu PLCów http://main5.amu.edu.pl/~zfp/sm/home.html

Norma IEC 61131-3 Języki programowania PLC opisuje część 3 normy IEC 61131. Definiuje one: Dwie grupy języków: tekstowe i graficzne. Model programowy (elementy języków programowania): Typy danych (Data types), Jednostki organizacyjne oprogramowania (Program organization units), Elementy schematu funkcji sekwencyjnej (Sequential Function Chart), Elementy konfiguracji (Configuration elements).

Norma IEC 61131-3 Języki programowania PLC opisuje część 3 normy IEC 61131. Definiuje one: Dwie grupy języków: tekstowe i graficzne. Model programowy: Typy danych, Jednostki organizacyjne oprogramowania, Elementy schematu funkcji sekwencyjnej, Elementy konfiguracji.

Norma IEC 61131-3 Języki programowania PLC opisuje część 3 normy IEC 61131. Definiuje one: Dwie grupy języków: tekstowe i graficzne. Model programowy: Typy danych, Jednostki organizacyjne oprogramowania, Elementy schematu funkcji sekwencyjnej, Elementy konfiguracji.

Języki programowania Języki graficzne: Schemat Drabinkowy (LD, Ladder diagram) podobny do schematów elektrotechnicznych, w których, oprócz symboli styków, cewek i połączeń między nimi, dopuszcza się także użycie funkcji oraz bloków funkcjonalnych. Schemat Bloków Funkcyjnych (FBD, Function Block Diagram) odpowiednik schematu przepływu sygnału dla obwodów logicznych przedstawionych w formie połączonych bramek, funkcji i bloków funkcyjnych.

Języki programowania Języki tekstowe: Lista Instrukcji (IL, Instruction List) język niskiego poziomu, przypominający język asemblera. Tekst Strukturalny (ST, Structured Text) język wysokiego poziomu, oparty na języku Pascal.

Elementy wspólne języków Nazwy [identyfikatory] (identifiers) ciągi znaków, których programista może użyć do nazwania własnych zmiennych, jednostek POU itp. Dopuszczalne znaki: litery (bez rozróżnienia wielkich i małych ale tylko w literałach!), cyfry, znak podkreślenia. Nazwa musi zaczynać się od litery lub pojedynczego znaku podkreślenia. Dopuszczalna długość nazwy może zależeć od konkretnego systemu programującego. Norma IEC 61131-3 wymaga (od tego systemu), aby przynajmniej sześć pierwszych znaków nazwy było znaczących.

Elementy wspólne języków Słowa kluczowe (keywords) nazwy standardowe, zdefiniowane w normie jako elementy danego języka. Słowa kluczowe nie mogą być używane jako identyfikatory wprowadzane przez użytkownika (nazwy własne). W zasadzie słowa kluczowe powinny być pisane z użyciem wielkich liter (niektóre systemy tego wymagają).

Elementy wspólne języków Do słów kluczowych należą: nazwy deklaracji, np. PROGRAM, FUNCTION, VAR_INPUT; nazwy elementarnych typów danych, np. BOOL, INT, TIME; nazwy standardowych funkcji i bloków funkcjonalnych, np. AND, ADD, MOVE, SHL, TON, CTU; nazwy parametrów wejściowych i wyjściowych standardowych funkcji i bloków funkcjonalnych; operatory języka IL; operatory i instrukcje języka ST; elementy SFC; zmienne EN i ENO w językach graficznych.

Elementy wspólne języków Literały (literals) służą do przedstawiania wartości danych (zmiennych lub stałych). Ich format zależy od typu danej, który jednocześnie określa zakres zmienności. Literały - Przedstawianie danych w postaci czasów trwania

Elementy wspólne języków Literały - Przedstawianie danych w postaci liczbowej

Elementy wspólne języków Przedrostki do przedstawiania danych w postaci godziny dnia i daty Literały - Przedstawianie danych w postaci daty i godziny dnia

Elementy wspólne języków Ograniczniki (delimiters) znaki specjalne, takie jak + - $ = := # ; ( ) * oraz spacja, (znaczenie omówione będzie przy okazji ). Użytkownik może wstawić spację w tekstach programów wszędzie, za wyjątkiem słów kluczowych, literałów oraz identyfikatorów.

Elementy wspólne języków Komentarze pomiędzy ogranicznikami (* oraz *). Mogą pojawić się w dowolnym miejscu, w którym można używać spacji. (W języku IL komentarze powinny być na końcu linii.) Nie powinny być zagnieżdżane, tzn. nie należy wstawiać komentarza w komentarzu (choć niektóre systemy w niektórych językach na to pozwalają, np. CoDeSys). Nie należy umieszczać wielu komentarzy jeden za drugim, tylko blokować je w jeden (choć niektóre systemy w niektórych językach na to pozwalają, np. CoDeSys).

Kompatybilność języków Każdy z języków programowania posiada pewne cechy, które powodują, że do zaprogramowania niektórych zagadnień nadaje się lepiej, niż inne. Język LD jest najodpowiedniejszy do programowania operacji logicznych (algebra Boole a). Języki tekstowe są wygodniejsze w procedurach zarządzania pamięcią lub przy programowaniu obliczeń iteracyjnych. Programy w językach graficznych są stosunkowo łatwe do analizy, za to język IL jest najbardziej elastyczny.

Kompatybilność języków Niektóre pakiety programowania umożliwiają tłumaczenie pomiędzy językami (choć norma nie stawia takich wymagań). Podstawowy problem stanowi niepełna kompatybilność poszczególnych języków. Szczególna trudność pojawia się przy przechodzeniu z języków graficznych na tekstowe i odwrotnie, i wynika z różnego sposobu przetwarzania w tych grupach. Języki tekstowe są przede wszystkim językami proceduralnymi, tzn. instrukcje są wykonywane jedne po drugich. W językach graficznych podstawą jest przepływ sygnału ( prądu w języku LD), który może być realizowany równolegle.

Kompatybilność języków Stąd, aby ustrzec się tego typu niejednoznaczności, w niektórych systemach programowania wprowadza się pewne ograniczenia w językach graficznych, takie jak np.: nie dopuszcza się do wprowadzania operacji logicznych w obwodzie po operacjach przypisania (np. w języku LD po wprowadzeniu cewki nie można już dalej rozwijać obwodu); nie dopuszcza się do stosowania instrukcji sterujących (skoki), albo (jeśli się dopuszcza) w trakcie wykonywania obwodu z góry na dół napotkanie takiej instrukcji powoduje zakończenie wykonywania danego obwodu.

Kompatybilność języków W językach graficznych nie ma instrukcji iteracyjnych (typu REPEAT, WHILE, FOR), stąd tłumaczenie ich z języka ST wymaga tworzenia skomplikowanych obwodów, w których w sposób jawny operuje się wskaźnikiem pętli i sprawdza warunki jej zakończenia za pomocą funkcji porównania. Wykorzystanie własności równoległego przetwarzania w językach graficznych poprzez łączenie jednego wyjścia z większą liczbą wejść przy tłumaczeniu na języki tekstowe wymaga wprowadzania dodatkowych zmiennych w celu uzyskania kompatybilności programów.

Norma IEC 61131-3 Języki programowania PLC opisuje część 3 normy IEC 61131. Definiuje one: Dwie grupy języków: tekstowe i graficzne. Model programowy: Typy danych, Jednostki organizacyjne oprogramowania, Elementy schematu funkcji sekwencyjnej, Elementy konfiguracji.

Typy danych Typy danych służą do określenia struktury danych w sterowniku, zarówno stałych jak i zmiennych, a w szczególności zakresu wartości, jakie mogą przyjmować dane oraz wielkości obszaru pamięci potrzebnego do ich przechowywania. W normie IEC 61131-3 zdefiniowano pewną liczbę elementarnych typów danych. Możliwe jest definiowanie przez użytkownika swoich własnych typów danych, czyli typów pochodnych, w postaci np. tablic lub struktur.

Uniwersalne typy danych Typy bazowe służące do deklaracji typów elementarnych

Elementarne typy danych

Typy pochodne Deklaracja typu pochodnego: pomiędzy słowami kluczowymi TYPE END_TYPE format Nowa_Nazwa : Deklaracja_Typu ; ( uwaga na : oraz ; ) Deklaracja_Typu może zawierać słowa kluczowe (STRUCT, ARRAY, itp.), nazwy wcześniej zdefiniowanych typów (elementarnych i użytkownika), literały i zakresy (.. ).

Typy pochodne przykłady

Norma IEC 61131-3 Języki programowania PLC opisuje część 3 normy IEC 61131. Definiuje one: Dwie grupy języków: tekstowe i graficzne. Model programowy: Typy danych, Jednostki organizacyjne oprogramowania, Elementy sekwencyjnego schematu funkcyjnego, Elementy konfiguracji.

Sekwencyjny schemat funkcyjny Sekwencyjny Graf Funkcyjny (SFC, Sequential Function Chart) - umożliwia opisanie zadań sterowania za pomocą grafów zawierających kroki (etapy) i warunki przejścia (tranzycji) między tymi krokami. Definicje akcji dla poszczególnych kroków oraz warunki przejścia programuje się w jednym z czterech wymienionych wyżej języków. Programy są przedstawiane w postaci podobnej do diagramów stanów. Norma przewiduje możliwość łączenia w ramach jednego projektu podprogramów, napisanych w różnych językach; na przykład, akcje, przypisane do kroków SFC, mogą być przedstawione w języku ST lub IL.

Norma IEC 61131-3 Języki programowania PLC opisuje część 3 normy IEC 61131. Definiuje one: Dwie grupy języków: tekstowe i graficzne. Model programowy: Typy danych, Jednostki organizacyjne oprogramowania, Elementy schematu funkcji sekwencyjnej, Elementy konfiguracji.

Elementy konfiguracji Wspomagają instalowanie i uruchamianie programów w systemach sterownikowych. Zalicza się do nich: Konfiguracje (Configurations), Zasoby (Resources), Zadania (Tasks), Zmienne globalne (Global variables), Ścieżki dostępu (Access paths).

Elementy konfiguracji Konfiguracja jest elementem języka, który odpowiada systemowi sterowników programowalnych rozumianemu jako całość, obejmującą wszystkie pozostałe elementy oprogramowania. Zasób jest programowym odpowiednikiem sprzętu realizującego funkcje przetwarzania sygnałów, łącznie z funkcjami określonymi przez podłączone czujniki i elementy wykonawcze (sensor and actuator interface) oraz urządzenia operatorskie MMI (Man- Machine Interface).

Elementy konfiguracji Zadania wraz z konfiguracją służą do określenia kolejności wykonania programu użytkownika. Zmienne globalne zmienne dostępne w całym programie użytkownika, z poziomu dowolnego POU. Najczęściej służą do komunikacji programu z wejściami i wyjściami sterownika. Ścieżki dostępu do zmiennych.

Norma IEC 61131-3 Języki programowania PLC opisuje część 3 normy IEC 61131. Definiuje one: Dwie grupy języków: tekstowe i graficzne. Model programowy: Typy danych, Jednostki organizacyjne oprogramowania, Elementy schematu funkcji sekwencyjnej, Elementy konfiguracji.

POU Jednostki organizacyjne oprogramowania: Stanowią najmniejsze, niezależne jednostki programu użytkownika. Mogą być oddzielnie kompilowane, a dopiero później łączone. Trzy rodzaje POU (w kolejności zmniejszających się możliwości funkcjonalnych): programy, bloki funkcyjne, funkcje. W normie nie występuje pojęcie podprogramu (subroutine) - rolę podprogramów pełnią bloki funkcjonalne i funkcje.

Hierarchia POU Jednostka organizacyjna oprogramowania może wywoływać jednostki o tej samej bądź mniejszej funkcjonalności. Tzn. program może wywoływać POU dowolnego typu. Blok funkcyjny może wywoływać funkcje lub inne bloki funkcyjne, ale nie może wywoływać programów. Funkcja może wywoływać tylko inne funkcje. Niedopuszczalne jest wywoływanie rekurencyjne, tzn. POU nie może wywoływać siebie ani bezpośrednio, ani pośrednio.

POU Elementy jednostek organizacyjnych oprogramowania: typ POU oraz nazwa (dla funkcji także typ danej wyjściowej), deklaracje zmiennych (wejściowych, wyjściowych, lokalnych), ciało POU (kod w dowolnym języku dopuszczalnym przez IEC 61131-3). Typ POU jest określony przez odpowiednie słowo kluczowe: PROGRAM, FUNCTION_BLOCK, FUNCTION. Nazwa POU musi być unikalna w ramach danego projektu; po zadeklarowaniu POU jej nazwa i interfejs zewnętrzny są dostępne wszystkim innym POU w projekcie. Nie ma możliwości deklaracji lokalnych podprogramów.

Programy Stoją na szczycie hierarchii POU. Mają dostęp do wejść i wyjść sterownika, zmiennych globalnych i ścieżek dostępu oraz możliwość udostępniania ich innym POU. Mogą wywoływać wszystkie POU dowolnego typu: programy, bloki funkcyjne, funkcje.

PLC_PRG PLC_PRG w pewnym sensie program główny. Jeśli nie skonfigurowano zadań do sterowania przetwarzaniem projektu, to sterownik rozpoczyna wykonanie programu użytkownika od modułu PLC_PRG, czyli projekt musi zawierać taki moduł. PLC_PRG jest wywoływany tylko jeden raz na każdy cykl sterujący (bezpośredni wniosek z niedozwoloności rekurencji). PLC_PRG jest modułem typu program generowanym automatycznie podczas tworzenia nowego projektu. Jeśli jest dostępna konfiguracja zadań, wówczas projekt nie musi zawierać modułu PLC_PRG, gdyż o kolejności wykonywania zadań decyduje konfiguracja.

Funkcje a bloki funkcyjne Podstawowa różnica między funkcją a blokiem funkcyjnym: wywołanie funkcji z tymi samymi argumentami (parametrami wejściowymi) zawsze daje tę samą wartość na wyjściu (wartość funkcji), wywołanie bloku funkcyjnego z tymi samymi parametrami wejściowymi nie musi prowadzić do tych samych wartości wyjściowych. Przyczyna: zmienne wewnętrzne bloku funkcyjnego są pamiętane pomiędzy kolejnymi wywołaniami przechowując informację o jego stanie wewnętrznym ( element dynamiczny ), zmienne wewnętrzne funkcji nie są pamiętane ( element statyczny ).

Funkcje a bloki funkcyjne Blok funkcyjny to nie są zblokowane funkcje!!! Należy zatem unikać nazwy blok funkcji

Bloki funkcyjne Egzemplarz (ukonkretnienie, instancja, ang. instance) bloku funkcyjnego zmienna typu będącego blokiem funkcyjnym. Posiada unikalną nazwę oraz własną realizację struktury danych. (Podobnie do obiektu określonej klasy w językach programowania wyższego poziomu.) Dzięki temu wartości zmiennych wewnętrznych i wyjściowych są przechowywane pomiędzy kolejnymi wywołaniami (w kolejnych cyklach programowych). Zwraca wartości poprzez zmienne wyjściowe może ich być więcej niż jedna. Nazwa egzemplarza może być użyta na wejściu funkcji lub innego bloku funkcyjnego.

Bloki funkcyjne Deklaracja bloku funkcyjnego (a w zasadzie typu będącego blokiem funkcyjnym): Słowo kluczowe Nazwa (typu) Deklaracje zmiennych: Wejściowych Wyjściowych Wewnętrznych

Bloki funkcyjne Użycie bloku funkcyjnego w LD (dwa egzemplarze) Typ bloku Nazwa egzemplarza Poszczególne egzemplarze deklarowane tak jak inne zmienne w jednostce wywołującej

Bloki funkcyjne Zmienne wejściowe i wyjściowe w egzemplarzu występują w takiej samej kolejności jak w deklaracji Deklaracja bloku Realizacja bloku Sposób komunikacji z blokiem funkcyjnym zmienne wewnętrzne są niewidoczne

Bloki funkcyjne Przypisanie zmiennych uwaga na typ Deklaracja bloku Deklaracje zmiennych w jednostce wywołującej Realizacja bloku

Bloki funkcyjne Deklaracja bloku Pierwsza zmienna na liście zmiennych wejściowych oraz wyjściowych BOOL pogrzebna do zawieszenia drabince bloku na Jeśli inna błąd przypisania Realizacja bloku

Bloki funkcyjne Przypisanie zmiennych zakres deklaracji zmiennych Zmienna zadeklarowana w jednostce wywoływanej Zmienna zadeklarowana w jednostce wywołującej Każda z nazw zmiennych jest unikalna w swojej jednostce POU więc nie ma konfliktu (to nie dotyczy nazw typów, np. nazwy typu bloku funkcyjnego) Wyjątek 2: egzemplarz jako zmienna globalna

Funkcje Funkcja nie posiada zmiennych wyjściowych. Zwraca wartość (tylko jedną) poprzez nazwę funkcji, więc w ciele funkcji trzeba jej nazwie przypisać wynik. Nie posiada egzemplarzy wartości zmiennych wewnętrznych nie są przechowywane pomiędzy kolejnymi wywołaniami. Zmienne lokalne funkcji nie są pamiętane, nawet gdyby je zadeklarować jako RETAIN (bateryjne podtrzymanie zmiennych). Podobnie jak dla bloków funkcyjnych, zmienne wejściowe w wywołaniu pojawiają się w takiej kolejności jak w deklaracji. Pierwsza zmienna wejściowa powinna być typu BOOL (do zawieszenia funkcji na drabince).

Funkcje Deklaracja funkcji Słowo kluczowe Nazwa funkcji Deklaracje zmiennych: Wejściowych Typ zwracanej wartości Wewnętrznych Brak zmiennych wyjściowych Przykładowe przypisanie wyniku do nazwy funkcji

Funkcje Użycie funkcji w LD (dwa razy) Brak egzemplarzy na liście zmiennych jednostki wywołującej. Nazwa funkcji przypisana do zmiennej Brak możliwości kontynuowania szczebelka po użyciu funkcji.

Bloki z wejściem EN W drabinkach funkcje są wywoływane w postaci bloków z wejściem EN. Aby funkcja została wywołana na EN musi pojawić się 1. Co daje możliwości warunkowego wywołania funkcji. (Nie tylko funkcje można obudować blokiem z EN.)

Norma IEC 61131-3 Języki programowania PLC opisuje część 3 normy IEC 61131. Definiuje one: Dwie grupy języków: tekstowe i graficzne. Model programowy: Typy danych, Jednostki organizacyjne oprogramowania, Elementy schematu funkcji sekwencyjnej, Elementy konfiguracji.

Zmienne Deklarowane w POU, niezależnie od używanego języka programowania. Deklaracja zmiennej zawiera: nazwę (identyfikator), [ulokowanie w odpowiednim obszarze pamięci opcjonalnie], [atrybut opcjonalnie], typ danych. Zakres działania takiej deklaracji jest lokalny w obrębie POU, tzn. że inne POU nie mają dostępu do tej zmiennej. Mogą być one przekazywane jako parametry wejściowe lub wyjściowe przy wywoływaniu POU. (Wyjątek: zmienne globalne).

Zmienne Typ zmiennej VAR VAR_INPUT VAR_OUTPUT VAR_IN_OUT VAR_EXTERNAL VAR_GLOBAL VAR_ACCESS Opis Deklaracja zmiennych wewnętrznych w POU Deklaracja zmiennych dostarczanych z zewnątrz do POU, wartości nie mogą być zmieniane w POU Deklaracja zmiennych wyprowadzanych na zewnątrz POU Deklaracja zmiennych dostarczanych do POU z zewnątrz i wyprowadzanych na zewnątrz, wartości mogą być zmieniane wewnątrz POU Deklaracja zmiennych wcześniej zdefiniowanych w konfiguracji jako VAR_GLOBAL, wartości mogą być zmieniane wewnątrz POU Deklaracja zmiennych globalnych Deklaracja ścieżek dostępu

Przedrostki określające położenie i rozmiar zmiennej Lp. 1 2 3 4 5 6 7 8 9 Przedrostek I Q M X brak B W D L Opis Położenie - wejście (Input) Położenie - wyjście (Output) Położenie - pamiąć (Memory) Rozmiar - pojedynczy bit Rozmiar - pojedynczy bit Rozmiar - bajt (8 bitów) Rozmiar - słowo (16 bitów) Rozmiar - słowo podwójne (32 bity) Rozmiar - słowo poczwórne (64 bity)

PRZYKŁADY %QX75 lub %Q75 %IW215 %QB7 %MD48 %1W2.5.7.1 bit nr 75 na wyjściu, słowo nr 215 z wejścia, bajt nr 7 na wyjściu, słowo podwójne pod adresem 48 w pamięci, adresacja hierarchiczna,

Standardowe funkcje i bloki funkcyjne http://main5.amu.edu.pl/~zfp/sm/home.html

Funkcje standardowe 1. Funkcje konwersji typów (Type conversion functions). 2. Funkcje liczbowe (Numerical functions). 3. Funkcje na ciągach bitów (Bit string functions). 4. Funkcje wyboru i porównania (Selection and comparison functions). 5. Funkcje na ciągach znaków (Character string functions). 6. Funkcje na typach danych związanych z czasem (Functions of time data types). 7. Funkcje na wyliczeniowych typach danych (Functions ofenumerated data types).

Standardowe bloki funkcjonalne czasomierze ( timery ) TON, TOF, TP liczniki CTU, CTD, CTUD elementy detekcji zbocza R_TRIG, F_TRIG elementy dwustanowe RS, SR, SEMA zegar czasu rzeczywistego RTC

TON opóźnione załączanie

TON opóźnione załączanie

TOF opóźnione wyłączanie

TOF opóźnione wyłączanie

TP pojedynczy impuls

TP pojedynczy impuls

CTU - Licznik w górę

CTU - Licznik w górę

CTD - Licznik w dół

CTD - Licznik w dół

CTUD - Licznik w górę i w dół

CTUD - Licznik w górę i w dół

R_TRIG Detektor zbocza narastającego

F_TRIG Detektor zbocza opadającego

O systemach wbudowanych Definicja, przykłady, charakterystyka, wymagania im stawiane O PLCach Definicja, zadania, budowa i zasada działania, fazy cyklu programowego O programowaniu PLCów Podsumowanie Języki programowania, jednostki organizacyjne oprogramowania (POU), bloki funkcyjne vs. funkcje Standardowe funkcje i bloki funkcyjne

W następnym odcinku (Suplement) Prąd sinusoidalnie zmienny Podstawy fizyki półprzewodników Elementy półprzewodnikowe Wybrane układy elektroniki analogowej C/A i A/C Proszę pamiętać o zadaniach domowych! http://main5.amu.edu.pl/~zfp/sm/home.html

I to by było na tyle Dziękuję za uwagę!