Prace Naukowe Instytutu Maszyn, Napędów i Pomiarów Elektrycznych Nr 60 Politechniki Wrocławskiej Nr 60 Studia i Materiały Nr 27 2007 Krzysztof P. DYRCZ * Sterowniki swobodnie programowalne, PLC, sterowniki mikroprocesorowe. MIKROPROCESOROWY STEROWNIK ZE SWOBODNĄ KONFIGURACJĄ WEJŚĆ I WYJŚĆ W artykule przedstawiono koncepcję budowy taniego, uniwersalnego sterownika mikroprocesorowego ze swobodną konfiguracją wejść i wyjść cyfrowych. Zaprojektowany i wykonany sterownik może zostać zaliczony do grupy sterowników PLC ze względu na całkowicie dowolną konfigurację wejść i wyjść cyfrowych, a także ze względu na sposób programowania. Programowanie sterownika odbywa się za pomocą komputera PC w graficznym środowisku programistycznym o cechach zbliżonych do klasycznego języka drabinkowego (ang. Ladder Diagram). 1. WSTĘP Sterowniki mikroprocesorowe od wielu lat stanowią podstawową grupę urządzeń sterujących w systemach automatyki przemysłowej. Ze względu na niemal nieograniczony zakres zastosowań, łatwość zmiany algorytmu sterującego oraz stosunkowo niski koszt tych urządzeń (biorąc pod uwagę zwłaszcza stosunek możliwości do ceny) sterowniki mikroprocesorowe są wytwarzane przez wielu producentów. Ponadto, ze względu na docelowe przeznaczenie, sterowniki te wykonywane są w wielu różnych odmianach. Pomimo dużej liczby gotowych rozwiązań ciągle powstają nowe konstrukcje sterowników, dlatego też podjęto próbę zbudowania stosunkowo prostego i taniego sterownika mikroprocesorowego, który mógłby być używany w warunkach laboratoryjnych. Aby sterownik mikroprocesorowy spełniał wymagania stawiane sterownikom PLC, musi współpracować ze specjalistycznym oprogramowaniem pozwalającym na swobodną zmianę programu sterującego. W przypadku sterowników dostępnych na rynku, koszt takiego oprogramowania jest niejednokrotnie porównywalny z kosztem zakupu * Politechnika Wrocławska, Instytut Maszyn, Napędów i Pomiarów Elektrycznych, ul. Smoluchowskiego 19, 50-372 Wrocław, tel. (071) 3204291, e-mail: Krzysztof.Dyrcz@pwr.wroc.pl
samego sterownika. Wynika to głównie z tego, że musi ono współpracować z cała rodziną sterowników określonego producenta, a więc uwzględniać właściwości, które w danym sterowniku mogą nie występować. Zaletą budowania własnego sterownika jest ograniczenie tego kosztu, ponieważ oprogramowanie napisane do współpracy z określonym sterownikiem wykorzystuje wyłącznie możliwości tego konkretnego urządzenia, przez co jest stosunkowo proste i niewymagające do działania komputerów o wysokich parametrach technicznych. W artykule przedstawiono koncepcję budowy taniego, uniwersalnego sterownika mikroprocesorowego współpracującego z dedykowanym oprogramowaniem pozwalającym na zmianę programu sterującego pracą urządzenia. Sterownik został zbudowany w trakcie realizacji magisterskiej pracy dyplomowej [1]. 2. MIKROPROCESOROWY STEROWNIK 2.1. KONCEPCJA BUDOWY STEROWNIKA Założeniem konstrukcji sterownika było zaprojektowanie i wykonanie urządzenia, które będzie charakteryzowało się cechami zbliżonymi do cech sterowników PLC. Założono, że mikroprocesorowy sterownik będzie wyposażony w następujące moduły użytkowe: 4 wejścia cyfrowe, 4 wyjścia cyfrowe, 3 wyjścia PWM, 2 wejścia licznikowe, interfejs RS232, interfejs 1 Wire, interfejs ISP, zegar czasu rzeczywistego. Ponadto, sterownik będzie współpracował z dedykowanym oprogramowaniem narzędziowym umożliwiającym dowolną konfigurację wejść i wyjść cyfrowych, wykorzystanie zaimplementowanych interfejsów, a także pozwalającym na napisanie prostego programu sterującego pracą sterownika. Założono, że sterownik zostanie wykonany w obudowie kompaktowej z wewnętrznym zasilaczem, bez możliwości rozbudowy o dodatkowe moduły zewnętrzne, za wyjątkiem czujników podłączanych przez interfejs 1-Wire. Aby umożliwić współpracę urządzenia z innymi sterownikami PLC założono, że napięcia sterujące wejściami i wyjściami sterownika będą wynosiły +24V dla poziomu logicznego wysokiego (jedynka logiczna) oraz 0V dla poziomu logicznego niskiego (zero logiczne).
2.2. CZĘŚĆ SPRZĘTOWA STEROWNIKA ORAZ OPROGRAMOWANIE SYSTEMOWE Sterownik mikroprocesorowy został zbudowany przy zastosowaniu popularnego mikrokontrolera AVR ATMEGA 8535 firmy ATMEL [2]. Jest to 8 bitowy mikrokontroler typu RISC, którego architektura wewnętrzna jest wystarczająca do skonstruowania sterownika spełniającego założenia wymienione w punkcie 2.1. Ponadto, rozmiar dostępnej wewnętrznej pamięci danych (512b RAM i 512b EEPROM) umożliwia zapamiętanie wystarczająco dużej liczby zmiennych oraz prostego programu sterującego pracą urządzenia. Zgodnie z założeniami, sterownik wyposażono w 4 wejścia oraz 4 wyjścia cyfrowe o napięciu sterującym 24V. W celu dopasowania poziomu napięć wejściowych i wyjściowych sterownika do poziomu napięć systemowych 5V mikrokontrolera zastosowano popularny układ ULN2803, który zapewnia także obciążalność prądową wyjść sterownika na poziome 0.5A. Zarówno wejścia, jak i wyjścia sterownika są dowolnie konfigurowalne. W przypadku wejść oznacza to, że każdemu z nich może być przypisana dowolna zmienna wejściowa w programie sterującym, ponadto wejścia 1 i 2 mogą pełnić funkcję wejść licznikowych. W przypadku wyjść, oprócz dowolnego przypisania do nich zmiennych wyjściowych istnieje możliwość skonfigurowania wyjścia 2, 3 i 4 jako wyjść sygnałów PWM. Sygnały wejść i wyjść cyfrowych sterownika wyprowadzone są z obudowy urządzenia w dwojaki sposób: na panelu czołowym za pomocą gniazd RCA, oraz na panelu tylnym za pomocą złącza systemowego typu DB15. Dzięki temu uzyskano możliwość bardzo elastycznego połączenia sterownika z urządzeniami zewnętrznymi. Sterownik wyposażony jest w trzy interfejsy komunikacyjne: interfejs RS 232 służący do komunikacji sterownika z komputerem PC. Transmisja danych jest realizowana jako transmisja asynchroniczna z wykorzystaniem dwóch linii: TxD i RxD. Przesyłane słowo ma format 10 bitowy: bit startu (0), 8 bitów danych i bit stopu (1). interfejs ISP służący do programowania mikrokontrolera sterownika. Jest to interfejs serwisowy, nieużywany podczas normalnej pracy sterownika. Za pomocą tego interfejsu możliwa jest zmiana oprogramowania systemowego sterownika. Interfejs jest zgodny ze standardem interfejsu ISP stosowanym przez firmę ATMEL, interfejs 1 Wire służący do obsługi dodatkowych czujników również wyposażonych w ten typ interfejsu, np. popularnego czujnika temperatury W DS18B20. celu zwiększenia niezawodności sterownika, wyposażono go w awaryjne zasilanie bateryjne, które zasila układy elektroniczne sterownika w przypadku zaniku napięcia zasilania sieciowego. Rolę przełącznika zasilania spełnia wysoko specjalizowany układ ICL7673. Schemat ideowy głównego modułu sterownika przedstawiono na rys. 1.
Rys. 1. Schemat ideowy głównego modułu sterownika Fig. 1. Schematic diagram of the main module of controller
Na rysunku 2 pokazano widok panelu przedniego oraz tylnego sterownika. a) b) Rys. 2. Widok panelu przedniego a) oraz tylnego b) sterownika Fig. 2. Front a) and back b) panel of the controller Oprogramowanie systemowe sterownika zostało napisane w języku BASCOM AVR [3]. Zapewnia ono pracę sterownika w dwóch trybach: Stop oraz Start. W trybie Stop możliwa jest zmiana programu sterującego pracą urządzenia, natomiast w trybie Start sterownik wykonuje wpisany do pamięci program. Przejście sterownika do wybranego trybu pracy odbywa się przez wciśnięcie jednego z przycisków sterujących znajdujących się na panelu czołowym urządzenia. Tak jak w typowych sterownikach PLC program sterujący wykonywany jest cyklicznie, przy czym domyślnym trybem pracy sterownika po włączeniu zasilania jest tryb Stop. 2.3. PROGRAM UŻYTKOWNIKA Programowanie pracy sterownika odbywa się za pomocą specjalistycznego oprogramowania narzędziowego MSP3. Jest to program wyposażony w graficzny interfejs użytkownika, który wyglądem i cechami funkcjonalnymi przypomina typowe narzędzia do programowania sterowników PLC, przy czym środowisko MSP3 umożliwia pisanie programu sterującego w sposób zbliżony do języka drabinkowego. Nie jest możliwe pisanie programów w pozostałych językach programowania sterowników PLC (np. FBD lub IL). Wygląd głównego okna programu MSP3 pokazano na rys. 3.
Rys. 3. Wygląd głównego okna programu MSP3 Fig. 3. The main window of the MSP3 software Na rys. 2 strzałkami oznaczono charakterystyczne pola: 1 menu główne, 2 wygląd ramki transmisji, 3 pole programu, 4 numer linii programu, 5 nazwa linii programu. Jak wynika z rys. 3, pisany program funkcjonalnie podzielony jest na linie, którym można nadawać indywidualne nazwy. Ze względu na pojemność pamięci procesora głównego sterownika możliwe jest napisanie programu składającego się maksymalnie z 50 linii. Pisanie programu polega na wstawianiu gotowych bloków funkcyjnych przez kliknięcie prawym klawiszem myszki w polu programu 3. Pojawia się wówczas menu kontekstowe umożliwiające wybór funkcji lub wykonanie operacji edytorskiej na zaznaczonym wcześniej bloku. Widok menu przedstawiono na rys. 4, natomiast możliwe funkcje do wykonania pokazano w tabeli 1. Rys. 4. Widok menu wyboru funkcji Fig. 4. Menu at choice function
Tabela 1. Funkcje możliwe do wykonania w programie MSP3 Table 1. Function s in the MSP3 programm Bit Logic Math Conditions AND OR NOT XOR SR RS ASCRIBE + - / * DIV MOD = > < >= <= W jednej linii programu może zostać umieszczona tylko jedna funkcja, w związku z tym najdłuższy program możliwy do napisania w środowisku MSP3 może składać się maksymalnie z 50 różnych funkcji. Widok przykładowego programu składającego się z 3 funkcji pokazano na rys. 5. Rys. 5. Przykładowy program sterownika Fig. 5. Example of controller s programm
Oprogramowanie MSP3 wyposażone jest w menu systemowe, które umożliwia wykonywanie podstawowych operacji na plikach, zapis programu do sterownika, odczyt programu z pamięci sterownika oraz konfigurację komunikacji ze sterownikiem. 3. UWAGI W artykule przedstawiono koncepcję budowy stosunkowo taniego i prostego mikroprocesorowego sterownika programowalnego. Ze względu na wykonywane funkcje oraz łatwość zmiany programu sterującego można opisany sterownik zaliczyć do grupy sterowników PLC. Opisany sterownik został zaprojektowany i wykonany w trakcie realizacji magisterskiej pracy dyplomowej. LITERATURA [1] PAPAJ M., Uniwersalny sterownik mikroprocesorowy ze swobodną konfiguracją portów wejścia i wyjścia, Magisterska praca dyplomowa, opiekun dyd. dr inż. Krzysztof P. Dyrcz, Wrocław, 2007 [2] ATMEGA 8535, User Manual, www.atmel.com [3] BASCOM AVR, User manual MICROPROCESSOR CONTROLLER WITH PROGRAMMABLE INPUT AND OUTPUT A novel construction of the microprocessor controller with the easy programmable inputs and outputs is presented in the paper. The brief foredesign, construction and special software to programming the controller are described. The software is created specially for this controller and makes possible programming in the graphics language similar Ladder Diagram.