PAS Część 2. Mikrokontrolery i programowalne urządzenia sterujące 1 Koncepcja Johanna von Neumanna z roku 1944 Budowa systemów przetwarzania danych, tj. komputerów Pierwszy rodzaj architektury komputera opracowanej przez Johna von Neumanna, Johna W. Mauchly ego oraz Johna Presper Eckerta. Cechą charakterystyczną tej architektury jest to, że dane przechowywane są wspólnie z instrukcjami, co sprawia, że są kodowane w ten sam sposób. 2 1
Architektura Harvard Separacja pamięci danych od pamięci rozkazów sprawia, że architektura harwardzka jest obecnie powszechnie stosowana w mikrokomputerach jednoukładowych, w których dane programu są najczęściej zapisane w nieulotnej pamięci ROM/EPROM/EEPROM, natomiast dla danych tymczasowych wykorzystana jest pamięć RAM (wewnętrzna lub zewnętrzna). 3 Mikrokontrolery The First Microcontroller - In 1971, the first microcontroller was invented by two engineers at Texas Instruments, according to the Smithsonian Institution. Gary Boone and Michael Cochran created the TMS 1000, which was a 4-bit microcontroller with built-in ROM and RAM. The microcontroller was used internally at TI in its calculator products from 1972 until 1974, and was refined over the years. In 1974, TI offered the TMS 1000 for sale to the electronics industry. The TMS 1000 was available in various configurations of RAM and ROM sizes. As of 1983, about 100 million TMS 1000 devices had been sold. Intel Microcontrollers - In addition to producing the first microprocessor, Intel also developed many important microcontrollers, two of which are the 8048 and 8051. Introduced in 1976, the 8048 was one of Intel's first microcontrollers and was used as the processor in the IBM personal computer keyboard. It is estimated that over one billion 8048 devices were sold. The 8051 followed in 1980 and became one of the most popular microcontroller families. Variations of the 8051 architecture are still being produced today, making the 8051 one of the most longlived electronic designs in history. >>> 2
Procesor GPU silnik nowoczesnej grafiki GPU Architektura NVIDIA Kepler Tegra K1 192 rdzenie NVIDIA CUDA CPU Rdzenie CPU i architektura Czterordzeniowa architektura NVIDIA 4-Plus- 1 ARM Cortex -A15 "r3" Maksymalna częstotliwość taktowania zegara Pamięć Rodzaj pamięci Maksymalna pojemność pamięci Wyświetlanie LCD 2,3 GHz DDR3L oraz LPDDR3 8 GB (40-bitowe rozszerzenie adresu fizycznego) 3840x2160 HDMI 4K (UltraHD, 4096x2160) Obudowa Wymiary/rodzaj obudowy Technologia produkcji 23x23 FCBGA 16x16 S-FCCSP 15x15 FC PoP 28 nm >>> Architektura mikrokontrolera 6 3
Programowalny sterownik logiczny PLC 7 PLC GE Fanuc VersaMax 8 4
Siemens S7-200 9 PLC Siemens S7 1200 10 5
Ustawianie stanu wyjść cyfrowych w trybie STOP 11 Filtrowanie wejść cyfrowych 12 6
Specyfikacja identyfikatorów, którymi możemy się posługiwać przy tworzeniu programu sterującego Identyfikator - oznaczenie nazwa I - zmienna wejściowa Q - zmienna wyjściowa M - wewnętrzna zmienna dyskretna SM - wewnętrzna zmienna specjalna (zmienna systemowa) V - zmienne pamięciowe T - timer C - licznik AI - zmienna wejściowa analogowa AQ - zmienna wyjściowa analogowa AC - akumulator HC - szybki licznik K stała 13 Obraz pamięci wejść i wyjść Obraz wejść procesu: I S7-200 próbkuje fizyczne wejścia na początku każdego cyklu programu i zapisuje je do rejestru obrazu wejściowego procesu. Obszar ten jest dostępny poprzez adresowanie bitów, bajtów, słów oraz podwójnych słów. Bit: I[adres bajtu].[adres bitu] I0.1 Bajt, słowo lub podwójne słowo: I[rozmiar][adres bazowy] IB4 Obraz wyjść procesu: Q Na końcu cyklu programu, S7-200 kopiuje wartości zapisane w rejestrze obszaru wyjść procesu do wyjść fizycznych. Obszar ten jest dostępny poprzez adresowanie bitów, bajtów, słów oraz podwójnych słów. Bit: Q[adres bajtu].[adres bitu] Q1.1 Bajt, słowo lub podwójne słowo: Q[rozmiar][adres bazowy] QB5 14 7
Obszary pamięci danych Obszar pamięci danych: V Pamięć typu V może by użyta do przechowywania pośrednich wyników operacji programu wykonywanych przez CPU. Obszar ten jest dostępny poprzez adresowanie bitów, bajtów, słów oraz podwójnych słów. Bit: V[adres bajtu].[adres bitu] V10.2 Bajt, słowo lub podwójne słowo: V[rozmiar][adres bazowy] VW100 Obszar pamięci o dostępie bitowym: M Pamięć typu M może by użyta jako obszar znaczników do zapamiętania stanów binarnych wyników operacji logicznych. Obszar ten jest dostępny poprzez adresowanie bitów, bajtów, słów oraz podwójnych słów. Bit: M[adres bajtu].[adres bitu] M26.7 Bajt, słowo lub podwójne słowo: M[rozmiar][adres bazowy] MD20 15 Akumulatory Akumulatory są uniwersalnymi rejestrami odczytu i zapisu, które mogą by użyte podobnie jak pamięć. Przykładowo, akumulatorów można użyć do przekazania parametrów do i z podprogramu oraz zachowania pośrednich wartości użytych w obliczeniach. S7-200 posiada 32-bitowe akumulatory (AC0, AC1, AC2 i AC3). Dane w akumulatorach mogą by dostępne jako bajty, słowa i podwójne słowa. Rozmiar dostępnych danych jest zależny od instrukcji użytej przy pobieraniu danych z akumulatora 16 8
Software Termin logika odgrywa określoną rolę w nazwie programowalny sterownik logiczny PLC, ponieważ programowanie oparte jest na logicznych żądaniach urządzeń wejścia. W większości programowalnych sterowników logicznych pisanie pierwszego programu jest równoważne z rysowaniem schematu drabinkowego. 17 Zasady programowania w języku drabinkowym PLC Obwody programowanego układu są rozmieszczone w postaci poziomych linii zawierających wejścia (styki) oraz wyjścia (cewki). Wejścia zawsze poprzedzają wyjścia i mogą mieć formę styków normalnie otwartych lub styków normalnie zamkniętych. W każdej linii programu musi być co najmniej jedno wyjście, odpowiadające dowolnemu urządzeniu sterowanemu przez PLC. Wejścia i wyjścia posiadają przypisane symbole tworząc instrukcje schematu drabinkowego. Język drabinkowy zawiera także takie elementy jak liczniki, timery oraz funkcje arytmetyczne służące do wykonywania złożonych sekwencji programowych. 18 9
Schemat drabinkowy PLC 19 Interpretacja schematu drabinkowego Dwie linie pionowe nazywane są liniami zbiorczymi i reprezentują połączenie zasilania, w tym wypadku 24V i 0V. Każda z poziomych linii jest linią programu. Wyjście umieszczone na linii programu jest włączone jeżeli styki doprowadzają zasilanie (24V) do cewki. Podczas programowania w języku drabinkowym należy zwrócić uwagę na fakt, iż program jest wykonywany przez PLC począwszy od pierwszej linii, której instrukcje są wykonywane kolejno od lewej do prawej strony i dopiero wówczas program wykonuje instrukcje kolejnej linii. Pytanie 20 10
Cykl PLC S7-200 ; typowo 3-10ms Odczyt - realizacja programu - zapis 21 Podstawowe elementy programu S7-200 22 11
Podprogramy Podprogramy stanowiące części programu aplikacji są wykonywane tylko wtedy, gdy zostaną odpowiednio wywołane w programie głównym, przez inny podprogram lub przez wystąpienie zdarzenia/przerwania systemowego. Podprogramy są bardzo pomocne do tworzenia powtarzających się funkcji. Utworzona funkcja może by wywoływana wiele razy w programie aplikacji skracając w ten sposób ilość niezbędnego kodu sterującego procesem. Użycie podprogramów dostarcza wiele korzyści : Użycie podprogramów redukuje całkowitą ilość kodu programu. Użycie podprogramów zmniejsza długość cyklu programu przez przesunięcie części kodu poza procedurę główną. S7-200 cyklicznie wykonuje tylko procedur główną, niezależnie czy kod jest czy nie jest wykonywany. Zastosowanie podprogramów w procedurze głównej pozwala wykonywać ich kod tylko gdy jest to konieczne/dozwolone. Podprogramy dzielą kod na funkcjonalne części przez co staje się czytelniejszy oraz łatwiejszy do wykorzystania w innych programach z minimalnym, dodatkowym nakładem pracy. 23 Programy przerwań Programy przerwań stanowią opcjonalną część programu, która reaguje na specyficzne zdarzenie w systemie. Procedura przerwania określa czynności, które należy wykonać w razie wystąpienia zdarzenia. Kiedy zdarzenie wystąpi S7-200 wykonuje kod procedury przerwania. Procedura przerwania nie jest wykonywana przez program główny. Jest ona skojarzona ze zdarzeniem i S7-200 wykonuje ją tylko w przypadku wystąpienia zdarzenia oraz tyle razy ile ono wystąpi. 24 12
Podstawowe funkcje złożone języka PLC operacje kombinacyjne operacje pamięciowe- operacje zatrzasku, operacje czasowe - timery, liczniki, operacje arytmetyczne i logiczne, operacje organizacyjne- wywołania bloków, skoków. 25 Sposoby prezentacji programu PLC LAD - Ladder Diagram Schemat drabinkowy STL - Statement Lists Lista instrukcji CSF - Control System Flowcharts Funktory logiczne GRAPH - Graf W programowaniu PLC najwcześniej znalazł zastosowanie język drabinkowy (LAD), ponieważ jest on łatwy w użyciu i mało skomplikowany. Obecnie język drabinkowy LAD znajduje najszersze zastosowanie w PLC. 26 13
LAD,STL,CSF,GRAPH 5 27 Systemowe bity pamięci SM Bity systemowe zawierają różne informacje i funkcje sterujące oraz stanowią komunikację pomiędzy sterownikiem S7-200, a programem użytkownika 28 14
Funkcje detekcji zboczy sygnałów I P I oraz I N I I P I I N I p.bogdański, B.Janota Realizacja programu przełącznik impulsowy za pomocą funkcji : detekcji zbocza narastającego i pamięci bitowej Set M0.0 Reset M0.0 15
Podstawowe funkcje złożone języka PLC operacje kombinacyjne operacje pamięciowe- operacje zatrzasku, operacje czasowe - timery, liczniki, operacje arytmetyczne i logiczne, operacje organizacyjne- wywołania bloków, skoków. 31 Realizacja programu Zatrzask 16
Realizacja programu Zatrzask za pomocą funkcji Set/Reset Podstawowe funkcje złożone języka PLC operacje kombinacyjne operacje pamięciowe- operacje zatrzasku, operacje czasowe - timery, liczniki, operacje arytmetyczne i logiczne, operacje organizacyjne- wywołania bloków, skoków. 34 17
Timer TON z zapamiętywaniem Timer TON 18
Timer TON z zapamiętywaniem Przebiegi czasowe Timer TOF 19
Liczniki standardu SIMATIC Licznik zliczający w dół 20
Licznik zliczający w górę/dół Podstawowe funkcje złożone języka PLC operacje kombinacyjne operacje pamięciowe- operacje zatrzasku, operacje czasowe - timery, liczniki, operacje arytmetyczne i logiczne, operacje organizacyjne- wywołania bloków, skoków. 42 21
Instrukcje operacji logicznych Inwersja Przykład instrukcji INV 22
Instrukcje zwiększania i zmniejszania INC i DEC Podstawowe funkcje złożone języka PLC operacje kombinacyjne operacje pamięciowe- operacje zatrzasku, operacje czasowe - timery, liczniki, operacje arytmetyczne i logiczne, operacje organizacyjne- wywołania bloków, skoków. 46 23
Instrukcje pętli FOR-NEXT Na przykład, podajemy wartość INIT jako 1, a FINAL na 10, instrukcje pomiędzy instrukcją For a Next będą wykonywane 10 razy, a INDX będzie inkrementowany: 1, 2, 3,... 10. Jeżeli wartość początkowa jest większa niż wartość końcowa (FINAL) wtedy pętla nie jest wykonywana. Po każdym wykonaniu instrukcji pomiędzy instrukcjami FOR i NEXT, wartość INDX jest inkrementowana, a rezultat jest porównywany z wartością końcową. Jeżeli INDX jest większy niż wartość końcowa, pętla jest kończona. Przykład instrukcji FOR_NEXT 24