teoria sterowania – laboratorium - prz

Transkrypt

teoria sterowania – laboratorium - prz
PRz, 2008, Żabiński Tomasz
AUTOMATYKA I REGULACJA AUTOMATYCZNA
LABORATORIUM
Programowanie sterownika CX1000 firmy Beckhoff – wprowadzenie
1. Konfiguracja pakietu TwinCAT do współpracy ze sterownikiem CX1000
2. Tworzenie prostego programu w języku LD – wprowadzenie
3. Standardowe bloki funkcyjne – język LD
3.1. Elementy dwustanowe
3.2. Elementy detekcji zbocza
3.3. Liczniki
3.4. Czasomierze
4. Programowanie zadań sekwencyjnych w języku SFC
5. Zdalny pulpit systemu Windows CE
Przygotowanie do ćwiczenia:
- pobranie, zainstalowanie i zapoznanie się z pakietami TwinCAT oraz Beckhoff
Information System z lokalizacji www.beckhoff.pl (wprowadzając dane na stronie
www należy podać informację, że osoba pobierająca jest studentem PRz),
- zapoznanie się z dokumentacją sterownika CX1000 (konfiguracja: CX1000-0111,
CX1100-0002, CX1000-N000, CX1000-N001) umieszczoną w Beckhoff Information
System lub na stronie www.beckhoff.pl,
- zapoznanie się materiałami pomocniczymi umieszczonymi na stronie
www.tomz.prz-rzeszow.pl,
- opanowanie podstaw programowania w języku LD,
- zrealizowanie zadań zamieszczonych we wprowadzeniu (napisanie programów) i ich
przetestowanie w trybie symulacji w pakiecie TwinCAT.
W sprawozdaniu należy zamieścić:
- kody zrealizowanych programów,
- opis działania wykorzystywanych elementów programowych np. standardowych bloków
funkcyjnych (raport powinien zawierać wyniki dla wyczerpującej liczby przypadków
testujących działanie poszczególnych elementów programowych), sekwencji
wywoływania akcji w języku SFC itp.,
- wnioski i spostrzeżenia.
Literatura
- J. Kasprzyk, Programowanie sterowników przemysłowych, ISBN 83-204-3109-3, WNT 2005
- T.Legierski, J.Kasprzyk, J.Wyrwał, J.Hajda, Programowanie sterowników PLC, Pracownia
Komputerowa Jacka Skalmierskiego
- materiały pomocnicze na stronie www.tomz.prz-rzeszow.pl (głównie: Sterowniki_IEC61131-3.pdf)
- Beckhoff Information System – do pobrania ze strony www.beckhoff.pl oraz dokumentacje ze strony
www.beckhoff.pl
1
PRz, 2008, Żabiński Tomasz
Stanowisko laboratoryjne ze sterownikiem CX1000
Sterownik CX1000 należy do grupy urządzeń określanych jako komputery
wbudowane (Embedded-PC).
Dodatkowe Interfejsy
USB 1.1
Jednostka centralna
Interfejs
Ethernet
Zasilacz
Diody
statusu
Diody
statusu
DVI
RS232
Szyna
K-Bus
Interfejs
PC104
Interfejs
PC104
Pamięć
flash
Diody zasilania
Złącze zasilania
sterownika
Wyświetlacz
2 x 16 linii
Złącza zasilania
układów we/wy
podłączonych do
szyny K-Bus
np. KL2408
Realizacja ćwiczenia
1. Konfiguracja pakietu TwinCAT do współpracy z sterownikiem CX1000
1.1. Zdefiniowanie połączenia AMS dla sterownika CX1000 – interfejs Ethernet
Uruchomienie systemu TwinCAT w trybie konfiguracji
Przy pomocy ikony pakietu TwinCAT
znajdującej się na pasku zadań systemu
Windows, uruchomić opcję Config z menu System.
Klawisz myszy otwiera okno
Tryb konfiguracji
Tryby pracy TwinCAT są sygnalizowane odpowiednimi kolorami ikony programu:
- zielony – uruchomiony,
- czerwony – zatrzymany,
- niebieski - tryb konfiguracji,
- żółty - w trakcie uruchamiania.
2
PRz, 2008, Żabiński Tomasz
Konfiguracja połączenia sieciowego
Komunikacja ze sterownikiem za pośrednictwem interfejsu Ethernet wymaga
odpowiedniej konfiguracji sieci. Protokoły sieciowe sterownika oraz komputera PC z
pakietem TwinCAT muszą być tak skonfigurowane, aby urządzenia znajdowały się w tej
samej sieci (odpowiedni adres IP i maska podsieci – aby zweryfikować poprawność
konfiguracji można wykorzystać instrukcję ping).
Jeżeli sterownik odpowiada na rozkaz ping, należy przejść do punktu Konfiguracja
połączenia w pakiecie TwinCAT chyba, że prowadzący zadecyduje inaczej.
Domyślna nazwa sterownika, odczytywana po ustanowieniu połączenia, składa się z
napisu CX_ oraz ostatnich trzech bajtów MAC-ID umieszczonego na sterowniku (np.
CX_013DC8).
Konfiguracja połączenia w pakiecie TwinCAT
Przy pomocy ikony
znajdującej się na pasku zadań Windows, uruchomić pakiet
System Manager a następnie należy wybrać opcję New z menu File.
Klawisz myszy
otwiera okno
W celu zdefiniowania połączenia, w oknie General dla SYSTEM-Configuration wybrać
opcję Choose Target.... Następnie uruchomić procedurę automatycznego wyszukiwania
sterowników znajdujących się w sieci Ethernet – przycisk Search (Ethernet).... W oknie Add
Route Dialog określić typ warstwy transportowej (Transport Type) jako TCP/IP a następnie
uruchomić opcję wyszukiwania rozgłoszeniowego – przycisk Broadcast Search. Jeżeli
sterownik zostanie odnaleziony, w oknie Add Route Dialog pojawi się odpowiedni wpis
zawierający nazwę urządzenia (Host Name) oraz informacje o adresach IP, AMS oraz wersji
urządzenia.
3
PRz, 2008, Żabiński Tomasz
Brak symbolu X w polu Connected oznacza, że nie odbyło się logowanie do sterownika. W
polu Router Name (Target) można dokonać zmiany nazwy sterownika (np. CX_SalaD9),
która będzie w przyszłości identyfikowała skonfigurowane połączenie. W kolejnym kroku
należy określić Address Info jako IP Address oraz nacisnąć przycisk Add Route. W efekcie
pojawi się okno logowania, w którym należy nacisnąć przycisk OK dla użytkownika
Administrator bez hasła.
Gdy logowanie się powiedzie, w polu Connected pojawi się symbol X.
W kolejnym kroku należy zamknąć okno Add Route Dialog przy pomocy przycisku Close
oraz wybrać zdefiniowane połączenie dla aktualnego projektu. W tym celu należy zaznaczyć,
przy pomocy myszki, nazwę zdefiniowanego połączenia i wybór zatwierdzić przyciskiem
OK.
4
PRz, 2008, Żabiński Tomasz
Jeżeli odpowiednie urządzenie nie zostanie wykryte, należy sprawdzić czy sterownik jest
dostępny w sieci np. instrukcją ping i odpowiednio skonfigurować komputer PC (adresy IP,
maska sieci).
W przypadku, gdy komunikacja ze sterownikiem powiodła się, w systemie TwinCAT
dodany zostanie obiekt AMS Router identyfikujący zdefiniowane połączenie. Informacje o
aktualnie istniejących AMS Router, można uzyskać wykorzystując ikonę TwinCAT
znajdującą się na pasku zadań Windows i uruchamiając okno TwinCAT System Properties.
Klawisz myszy otwiera okno
Wybór opcji Properties
Dodany AMS Router
W oknie Remote Computers powinien znajdować się opis wpisany uprzednio jako nazwa
sterownika. Tak skonfigurowane połączenie może być wykorzystywane w przyszłości bez
konieczności ponownego definiowania struktury komunikacyjnej.
Po wykonaniu powyższych operacji system TwinCAT jest gotowy do współpracy ze
sterownikiem CX1000. Aktualny tryb pracy systemu jest sygnalizowany w pasku statusu
okna TwinCAT System Manager, jak pokazano na poniższych rysunkach. W celu wyszukania
urządzeń we/wy podłączonych do szyby K-bus system powinien znajdować się w trybie
konfiguracji.
5
PRz, 2008, Żabiński Tomasz
Nazwa połączenia
Stan połączenia
(Timeout – kolor
żółty – przerwa w
komunikacji)
Stan połączenia
(RTime – kolor
zielony – połączenie
aktywne)
Stan połączenia
(Config Mode –
kolor niebieski –
tryb konfiguracji)
Wykrywanie urządzeń połączonych z sterownikiem (tutaj dotyczy szyny K-Bus)
Automatyczne wykrywanie urządzeń możliwe jest w trybie konfiguracji, jeżeli System
Manager jest w innym trybie należy dokonać przełączenia.
Przełączenie w tryb konfiguracji
W celu wykrycia urządzeń wejścia/wyjścia, należy uruchomić (prawy klawisz myszy) funkcję
Scan Devices... dla I/O-Devices znajdującego się w gałęzi I/O-Configuration.
6
PRz, 2008, Żabiński Tomasz
Podstawowe urządzenia, które powinny zostać wykryte, dla badanego stanowiska
laboratoryjnego, pokazano na poniższym rysunku. Aby wprowadzić wykryte urządzenia do
projektu, należy zatwierdzić wynik wyszukania przyciskiem OK.
Wykryte urządzenia umieszczone zostaną w projekcie (jak pokazano na poniższym rysunku –
Device 1 do 3), dodatkowo wyświetlone zostanie okno umożliwiające wyszukanie modułów
podłączonych do szyny K-bus (Scan for boxes). Naciśniecie przycisku TAK rozpocznie
proces wyszukiwania.
Moduły znalezione na szynie K-bus wyświetlone zostaną w gałęzi zasilacza CX1100 w polu
CX1100-KB.
Przykładowa konfiguracja
Jeżeli nie wszystkie fizycznie podłączone urządzenia zostały automatycznie wyszukane,
należy uruchomić (prawy klawisz myszy) funkcję Scan Boxes... dla Device 2 (CX1100)
znajdującego w gałęzi I/O Devices.
7
PRz, 2008, Żabiński Tomasz
Jeżeli zachodzi taka potrzeba, parametry połączenia sieciowego w sterowniku można
zmodyfikować wybierając zakładkę CX Settings dla gałęzi SYSTEM – Configuration.
Gdy konfiguracja rzeczywista jest zgodna z automatycznie rozpoznaną, należy aktywować
strukturę w sterowniku przy pomocy przycisku Activate configuration
i uruchomić
System Manager w trybie pracy (Run-Mode).
Aktualizacja
konfiguracji w
sterowniku
Jeżeli aktualizacja konfiguracji i uruchomienie System Manager w trybie pracy powiedzie się,
na pasku statusu pojawi się, na zielonym tle, napis RTime.
8
PRz, 2008, Żabiński Tomasz
W ostatnim kroku utworzony projekt należy zapisać na dysku pod wybraną nazwą.
2. Tworzenie prostego programu w języku LD – wprowadzenie
Aby utworzyć program należy uruchomić narzędzie TwinCAT PLC Control.
PLC Control
Klawisz myszy otwiera okno
2.1.Wybór obiektu docelowego
W pierwszym etapie należy określić sterownik, dla którego tworzony będzie program
oraz sposób komunikacji z urządzeniem.
Z menu File wybrać opcję New, następnie określić docelową platformę w
pojawiającym się oknie dialogowym.
W przypadku, gdy połączenie ze sterownikiem skonfigurowano jak w punkcie 1, jako
platformę docelową należy wybrać CX_SalaD9. Podstawowe biblioteki (standard.lbx)
związane z wybraną platformą zostaną automatycznie dołączone do projektu. Następnie
należy określić język, w jakim będzie tworzony program.
Wybór języka
programowania
Pakiet TwinCAT PLC Control umożliwia programowanie w pięciu językach zgodnych ze
standardem IEC 61131-3 oraz dodatkowym językiem CFC. Na tym etapie możliwe jest
również określenie typu obiektu (Type of POU – Program Organization Unit – jednostka
9
PRz, 2008, Żabiński Tomasz
organizacyjna programu), jaki będzie tworzony: program (Program), blok funkcyjny
(Function Block) lub funkcja (Function). Dla potrzeb dalszych przykładów należy wybrać typ
obiektu jako Program oraz język LD.
Dostępne języki programowania
IL (Instruction List) – tekstowy język programowania będący odpowiednikiem języka
typu assembler, którego zbiór instrukcji obejmuje operacje
logiczne, arytmetyczne, relacji, jak również funkcje przerzutników,
czasomierzy, liczników itp..
LD (Ladder Diagram) – graficzny język programowania, który swoją strukturą
przypomina stykowe obwody przekaźnikowe. Dopuszcza się w nim
użycie funkcji arytmetycznych, logicznych, porównań i relacji jak
również bloków funkcyjnych: przerzutników, czasomierzy,
liczników, regulatora PID czy bloków programowych.
FBD
(Function
Block Diagram) – graficzny język programowania będący
odpowiednikiem schematów przepływu sygnału dla obwodów
logicznych przedstawionych w formie połączonych bramek
logicznych oraz bloków funkcyjnych takich jak w języku LD.
ST (Structured Text) – tekstowy język programowania będący odpowiednikiem języka
algorytmicznego wysokiego poziomu (np. C), zawierający struktury
programowe takie jak np.
If ... then ... else ... end_if
Case ... of ... end_case
For ... to ... do ... end_for
While ... do ... end_while
Repeat ... until ... end_repeat
SFC (Sequential Function Chart) - graficzny język pozwalający na opisywanie zadań
sterowania sekwencyjnego za pomocą grafów zawierających etapy
(kroki) i warunki przejścia (tranzycje) między etapami. Grafy SFC
obrazują strukturę programu, zaś poszczególne jego elementy są
programowane w wybranych językach: IL, LD, FBD lub ST.
CFC (Continuous Function Chart) – graficzny język programowania zbliżony do FBD.
2.2.Przykład prostego programu w języku LD
ZADANIE. Zrealizować w języku LD koniunkcję (AND) dwóch symbolicznych
zmiennych binarnych o nazwach Input1 oraz Input2 zaś wynik operacji umieścić w
symbolicznej zmiennej binarnej Output. Należy wykorzystać dwa styki zwierne oraz
jedną cewkę zwykłą.
Output
Input1 Input 2
Okno TwinCAT PLC Control dla języka LD pokazano na poniższym rysunku.
10
PRz, 2008, Żabiński Tomasz
Okno deklaracji
zmiennych
lokalnych
Okno kodu
programu
Okno
komunikatów
Okno organizacji projektu: programy, bloki funkcyjne, funkcje
W niniejszym przykładzie wykorzystana zostanie funkcja AND. W oknie kodu
programu należy wprowadzić program pokazany na poniższym rysunku.
Graficzne elementy
języka LD
Aby wstawić do programu graficzne elementy języka LD, można wykorzystać pasek
narzędzi zaznaczony na powyższym rysunku czerwoną elipsą, bądź skorzystać z menu
kontekstowego prawego klawisza myszy dla okna kodu programu.
Po wstawieniu do programu styku (Contact) zwiernego
nazwę
zmiennej z nim związanej należy wprowadzić z klawiatury, zastępując
ciąg znaków „???” (umiejscowiony powyżej symbolu graficznego styku)
nazwą zmiennej. Ponieważ zmienne symboliczne Input1, Input2 oraz
Output nie zostały wcześniej zadeklarowane, po wprowadzeniu nazwy
zmiennej pojawi się okno deklaracji zmiennych pokazane na poniższym
rysunku.
Dla potrzeb niniejszego przykładu dla wszystkich zmiennych należy wprowadzić FALSE
jako wartość inicjalizującą (Initial Value) oraz zatwierdzić (przyciskiem OK) pozostałe
domyślne parametry. W obszarze deklaracji zmiennych lokalnych pojawi się zapis
dotyczący trzech zmiennych binarnych (BOOL): Input1, Input2 oraz Output, którym
przypisano początkowe wartości FALSE.
11
PRz, 2008, Żabiński Tomasz
W dalszej kolejności należy zapisać program na dysku wykorzystując menu File i
opcję Save. Po wprowadzeniu kodu programu można przystąpić do jego kompilacji i
konsolidacji wybierając z menu Project opcję Build. Gdy proces zakończy się sukcesem, w
oknie komunikatów nie pojawi się informacja o błędach, program jest gotowy do testów.
0 Error(s), 0 Warning(s)
Operacja Build
zakończona sukcesem
W celu uruchomienia program, w menu Online należy wybrać platformę docelową – opcja
Choose Run-Time System... i określić odpowiednie urządzenie. W przypadku, gdy połączenie
skonfigurowano jak w punkcie 1, uruchomienie programu bezpośrednio w sterowniku
CX1000 wymaga zaznaczenia opcji jak na poniższym rysunku.
Jeżeli fizyczny sterownik nie jest dostępny, utworzony program można zostać przetestowany
w trybie symulacji poprzez wybór z menu Online opcji Simulation Mode. W kolejnym kroku
należy zalogować się do sterownika używając opcji Login z menu Online. Gdy program w
sterowniku różni się od aktualnie uruchamianego, system wyświetli okno komunikatu
umożliwiające zaprogramowanie sterownika nową wersją programu.
12
PRz, 2008, Żabiński Tomasz
W wyniku naciśnięcia przycisku Tak nowy program zostanie przesłany do sterownika. W
przypadku, gdy logowanie oraz przesłanie programu zakończy się sukcesem (dotyczy to
zarówno pracy bezpośrednio ze sterownikiem jak i trybu symulacji) program TwinCAT PLC
Control przechodzi do trybu podglądu działania programu. W menu Online uaktywniają się
opcje takie jak np. Logout (pozwala wrócić do trybu edycji programu) oraz Run (uruchamia
program). Aby obserwować działanie programu należy go uruchomić przy pomocy opcji
Run, powodzenie operacji jest sygnalizowane pojawieniem się napisu RUN na zielonym tle w
pasku statusu głównego okna TwinCAT PLC Control.
Podgląd wartości
zmiennych
lokalnych
Program uruchomiony
W celu testowania programu, wartości zmiennych mogą być modyfikowane podczas jego
działania. Zmianę wartości zmiennej można zrealizować między innymi „klikając”
dwukrotnie lewym przyciskiem myszki na nazwie zmiennej zarówno w oknie podglądu
wartości zmiennych lokalnych jak i w oknie programu. W przypadku zmiennych logicznych
(BOOL) zmiana wartości pomiędzy TRUE albo FALSE jest podpowiadana przez system
automatycznie, w przypadku zmiennych innych typów pojawia się okno dialogowe
umożliwiające wprowadzenie danych. Żądanie zmiany wartości zmiennej sygnalizowane jest
ciągiem znaków <:=nowa wartość zmiennej> wyświetlanym obok jej nazwy. Aby zmiana
nastąpiła należy uruchomić opcję Force Values z menu Online.
Żądanie zmiany wartości
zmiennej Input1 z FALSE
na TRUE
Po zatwierdzeniu zmiany (Force Values) aktualna wartość zmiennej w oknie deklaracji
zmiennych jest sygnalizowana czerwonym kolorem na niebieskim tle (jak pokazano na
poniższym rysunku) bądź odpowiednim symbolem graficznym w oknie programu.
13
PRz, 2008, Żabiński Tomasz
Zmiennej Input1 nadano
wartość TRUE
Aby sprawdzić działanie powyższego programu, wartości zmiennych Input1 i Input2 należy
modyfikować zgodnie z tablicą prawdy dla koniunkcji logicznej i obserwować wartość
zmiennej output. Przypadek, gdy zmienna, Output uzyskuje wartość TRUE pokazano na
poniższym rysunku.
2.3. Powiązanie symbolicznych zmiennych z fizycznym obszarem pamięci urządzenia
Aby symboliczna zmienna z programu PLC mogła być powiązana z fizycznym
wejściem, wyjściem bądź obszarem pamięci sterownika musi być zadeklarowana jako tzw.
zmienna adresowana. W celu ulokowania zmiennej w odpowiednim obszarze pamięci (obszar
wejść, wyjść, przestrzeń flag) w jej deklaracji należy użyć słowa kluczowego AT. Sposób
deklarowania zmiennej adresowanej pokazano na poniższym schemacie
I
X
Nazwa
zmiennej
AT
%
Q
B
Adres
:
Typ
zmiennej
;
W
M
D
gdzie symbole I ,Q, M określają obszar pamięci w jakim ma być ulokowana zmienna:
I – obszar zmiennych wejściowych,
Q – obszar zmiennych wyjściowych,
M – obszar przestrzeni flag (fizyczny obszar pamięci sterownika o podanym adresie).
14
PRz, 2008, Żabiński Tomasz
Modyfikatory X, B, W, D określają rozmiar zmiennej:
X - bit (bit),
B - bajt (byte - 8 bitów),
W - słowo (word - 16 bitów),
D - podwójne słowo (double word - 32 bity).
Adres określa fizyczną lokalizację zmiennej adresowanej w danym obszarze pamięci. W
przypadku zmiennych bitowych adres jest tworzony jako ciąg liczb całkowitych bez
znaku, oddzielonych kropkami np. 1.3 co oznacza bit o indeksie numer 3 (liczone od 0) w
bajcie 1. Adresy zmiennych bitowych ulokowanych w przestrzeniach wejść (I) i wyjść (Q)
mogą być identyczne, gdyż są przechowywane w różnych obszarach pamięci. Dla
zmiennych B, W, D - Adres jest reprezentowany przez liczbę całkowitą bez znaku.
Typ zmiennej – określa typ zmiennej np. BOOL, BYTE, INT, REAL, ARRAY pozwalający
na prawidłowa jej interpretację przez operatory danego języka programowania.
W typowych przypadkach, zmienne reprezentujące fizyczne wejścia albo wyjścia
urządzenia powinny być ulokowane w odpowiednim obszarze pamięci bez dokładnego
wyszczególnienia Adresu. Powiązanie danej zmiennej z fizycznym wyjściem/wyjściem jest
realizowane w pakiecie TwinCAT System Manager. W omawianym przypadku Adres w
deklaracji zmiennej zastępowany jest znakiem ‘* ‘ np. Output AT %Q*:BOOL; co oznacza,
że zmienna Output jest ulokowana w obszarze wyjść zaś jej szczegółowy adres zostanie
określony w TwinCAT System Manager.
Aby powiązać zmienną Output (przykład opisany w punkcie 2.2) z fizycznym
wyjściem urządzenia należy zmienić jej deklarację w następujący sposób
Output AT %Q* : BOOL := FALSE;
W kolejnym kroku należy dokonać ponownej kompilacji programu (menu Project
opcja Rebuild all). W wyniku poprawnego utworzenia programu (w lokalizacji, w której
zapisano projekt na dysku) zostanie utworzony plik z rozszerzeniem tpy.
Aby powiązać zmienną output z fizycznym wyjściem sterownika należy uruchomić projekt
TwinCAT System Manager utworzony dla aktualnej konfiguracji sprzętowej urządzenia i
połączyć z nim utworzony projekt PLC. Operacja ta jest realizowana przy pomocy opcji
Append PLC Project..., dostępnej w TwinCAT System Manager dla gałęzi PLC –
Configuration w menu pomocniczym wywoływanym przy pomocy prawego klawisza myszy.
Połączenie z
programem PLC
Wykonanie powyższej operacji umożliwia programowi TwinCAT System Manager dostęp do
zmiennych adresowanych zadeklarowanych w projekcie PLC. Jak pokazano na poniższym
rysunku dla rozważanego programu dostępna jest jedna zmienna o nazwie MAIN.Output
gdzie MAIN określa nazwę programu w którym zmienna Output została zadeklarowana. W
przypadku modyfikacji deklaracji zmiennych adresowanych w projekcie PLC, należy w
pakiecie TwinCAT System Manager zaktualizować dane dotyczące danego projektu PLC.
Operacja ta jest realizowana przy pomocy funkcji ReScan....
15
PRz, 2008, Żabiński Tomasz
Aktualizacja
projektu PLC
W wyniku dwukrotnego kliknięcia lewym klawiszem myszy na wybranej nazwie
zmiennej, uzyskuje się dostęp do fizycznych wejść/wyjść urządzenia, które mogą być z daną
zmienną skojarzone.
Przykładową możliwość dowiązania zmiennej Output do fizycznych wyjść urządzenia
wyposażonego w moduł wyjść binarnych KL2408 pokazano na poniższym rysunku.
Klikając dwukrotnie lewym klawiszem myszy na wybranym wyjściu modułu KL2408
dokonujemy jego powiązania ze zmienną Output. Informacja o powiązaniu zmiennej z
fizycznym wyjściem jest sygnalizowana między innymi znakiem strzałki przy nazwie
zmiennej (zobacz opis zmiennej MAIN.Output na poniższym rysunku).
Następnie utworzone powiązania należy przesłać do sterownika przy pomocy
przycisku Activate configuration
.
Aktualizacja
konfiguracji w
sterowniku
Po wykonaniu powyższej operacji należy powrócić do pakietu TwinCAT PLC Control i
uruchomić program PLC w sterowniku. Operacja ta jest realizowana identycznie jak w
przypadku trybu symulacji. Należy pamiętać, aby poprawnie określić system docelowy
(Choose Run-Time System...) oraz wyłączyć tryb symulacji (Simulation Mode) - opcje menu
Online. Po poprawnym przesłaniu programu PLC do sterownika, w zakładce Resources w
16
PRz, 2008, Żabiński Tomasz
folderze Global_Variables pojawi się pole TwinCAT_Configuration, które zawiera informacje
o powiązaniach zmiennych adresowanych z fizyczną pamięcią urządzenia. W niniejszym
przypadku zmienna Output została ulokowana w przestrzeni wyjść pod adresem QX0.0.
Uruchomienie i testowanie programu może być realizowane dla programu działającego w
sterowniku w analogiczny sposób jak dla trybu symulacji.
Zadanie 2.3.1. Zrealizować w języku LD alternatywę (OR) dwóch symbolicznych
zmiennych binarnych o nazwach Input1 oraz Input2 zaś wynik operacji umieścić w
symbolicznej zmiennej binarnej Output, przypisanej następnie do jednego z fizycznych wyjść
modułu KL2408. Należy wykorzystać dwa styki zwierne oraz jedną cewkę zwykłą.
Output
Input1 Input 2
Przykładowe rozwiązanie
Zadanie 2.3.1. Zrealizować w języku LD alternatywę wykluczającą (XOR) dwóch
symbolicznych zmiennych binarnych o nazwach Input1 oraz Input2, zaś wynik operacji
umieścić w symbolicznej zmiennej binarnej Output, przypisanej następnie do jednego z
fizycznych wyjść modułu KL2408. Należy wykorzystać odpowiednie styki oraz jedną cewkę
zwykłą.
Zadanie 2.3.2. Zrealizować w języku LD koniunkcję (AND), alternatywę (OR) i
alternatywę wykluczającą (XOR) dwóch symbolicznych zmiennych binarnych o nazwach
Input1 oraz Input2 zaś wynik operacji umieścić w symbolicznych zmiennych binarnych
Output1, Output2, Output3 przypisanych następnie do trzech fizycznych wyjść modułu
KL2408. Należy wykorzystać operatory AND, OR, XOR.
17
PRz, 2008, Żabiński Tomasz
Przykładowe rozwiązanie
Aby zastosować powyższe operatory, należy wykorzystać Box with EN dostępny w
oknie programu w menu kontekstowym prawego klawisza myszy. Listę dostępnych
operatorów, funkcji i bloków funkcyjnych można uzyskać wywołując okno Input assistant
poprzez naciśniecie klawisza funkcyjnego F2, gdy kursor jest ustawiony w polu nazwy bloku
np. AND.
Okno asystenta pokazano na poniższym rysunku.
Aby zbudować program składający się z kilku obwodów (network), należy dodawać kolejne
obwody np. przy pomocy opcji Network (before) albo Network (after) wywoływanych przy
pomocy menu kontekstowego prawego klawisza myszy w oknie programu.
Zadanie 2.3.3. Zmodyfikować zadanie 2.3.2, tak aby zmienne Input1 oraz Input2 były
powiązane z fizycznymi wejściami modułu KL1408.
Zadanie 2.3.4. Napisać w języku LD dwa programy o nazwach MAIN oraz PROG, z
których pierwszy realizuje funkcję AND dla dwóch wejść fizycznych modułu KL1408, zaś
drugi funkcję OR dla kolejnych dwóch wejść fizycznych. Programy powinny być
umieszczone w jednym projekcie i wykonywane jako dwa zadania (Task) działające z
identycznym czasem cyklu. Wynik działania obu programów należy wyświetlać na dwóch
wybranych wyjściach modułu KL2408.
18
PRz, 2008, Żabiński Tomasz
Przykładowe rozwiązanie
MAIN
PROG
Aby wprowadzić do projektu dodatkowy program (tutaj PROG) należy wybrać opcję Add
Object... z menu kontekstowego prawego klawisza myszy dla folderu POUs w oknie
organizacji projektu.
Następnie należy określić typ obiektu (Type of POU) jako Program, wybrać język
programowania (Language of the POU) oraz nazwę programu (Name of the New POU).
Po wprowadzeniu kodu programów MAIN oraz PROG, należy utworzyć dodatkowe zadanie
dla programu PROG (Task) i określić cykl pracy. Konfiguracji zadań dokonuje się w zakładce
Resources okna organizacji projektu dla gałęzi Task configuration.
19
PRz, 2008, Żabiński Tomasz
Program MAIN jest domyślnie przypisany do zadania STANDARD. Ady dodać zadanie dla
programu PROG należy wybrać z menu kontekstowego prawego klawisza myszy dla Task
configuration opcję Append Task.
Następnie dla nowo utworzonego zadania należy określić jego nazwę i określić priorytet oraz
czas cyklu.
W końcowym etapie należy przypisać do nowo utworzonego zadania (tutaj TASKPROG)
program PROG. Realizuje się to za pomocą opcji Append Program Call menu kontekstowego
prawego klawisza myszy dla nowo utworzonego zadania.
Następnie należy dokonać kompilacji programu i określić konfigurację sprzętową w
pakiecie TwinCAT System Manager.
Zadanie 2.3.5. Napisać w języku LD dwa programy o nazwach PROG_AND oraz
PROG_OR, z których pierwszy realizuje funkcję AND dla dwóch wejść fizycznych modułu
KL1408, zaś drugi funkcję OR dla tych samych wejść fizycznych. Wybór aktualnie
realizowanego programu zależy od stanu wybranego dodatkowego wejścia modułu KL1408.
Gdy wejście jest załączone wykonywany jest program PROG_AND, gdy wyłączone
PROG_OR. Programy powinny być umieszczone w jednym projekcie i realizowane w
jednym zadaniu Standard przypisanym do programu MAIN. Wynik działania programów
należy wyświetlać na wybranym wyjściu modułu KL2408.
20
PRz, 2008, Żabiński Tomasz
Przykładowe rozwiązanie
Zmienne powiązane z wejściami (tutaj Input1 i Input2) dla programów PROG_AND i
PROG_OR oraz zmienną związaną z wyjściem (tutaj Output) należy zadeklarować jako
zmienne globalne. Można to zrealizować w oknie deklaracji zmiennych wybierając klasę
zmiennej (Class) jako VAR_GLOBAL.
Lista zadeklarowanych zmiennych globalnych znajduje się w zakładce Resources w gałęzi
Global Variables.
Program MAIN:
Programy PROG_AND oraz PROG_OR należy zrealizować analogicznie jak w zadaniu 2.3.4.
21
PRz, 2008, Żabiński Tomasz
3. Standardowe bloki funkcyjne – język LD
Wykorzystując język LD należy zapoznać się z działaniem standardowych bloków
funkcyjnych (elementy dwustanowe, elementy detekcji zbocza, liczniki, czasomierze)
zdefiniowanych w normie IEC-61131-3.
Lista standardowych funkcji dołączonych do projektu, wraz z opisem, jest
umieszczona w Library Manager znajdującym się w zasobach projektu (Resources), co
pokazano na poniższym rysunku.
Opis bloków
funkcyjnych
Zasoby
Lista bloków funkcyjnych
3.1. Elementy dwustanowe (bistabilne – bistable elements)
Elementy dwustanowe zdefiniowane w normie IEC-61131-3 to przerzutniki SR i RS oraz
Semafor.
Przerzutnik SR
Zadanie 3.1.1. Napisać program w języku LD umożliwiający testowanie działania
przerzutnika SR przy pomocy dwóch przełączników i jednej diody podłączonych do
sterownika. Należy wykorzystać dwa wejścia modułu KL1408 oraz jedno wyjście modułu
KL2408.
Opis:
Q1 = SET1 OR (NOT RESET AND Q1)
Program
22
PRz, 2008, Żabiński Tomasz
Blok funkcyjny RS można wstawić do programu wykorzystując opcję Function Block
... menu kontekstowego prawego klawisza myszy.
Przed uruchomieniem programu w sterowniku należy pamiętać o powiązaniu
zmiennych Output, Input oraz Reset z fizycznymi wyjściami/wejściami modułów KL1408 i
KL2408.
Przerzutnik RS
Zadanie 3.1.2. Napisać program w języku LD umożliwiający testowanie działania
przerzutnika RS przy pomocy dwóch przełączników i jednej diody podłączonych do
sterownika. Należy wykorzystać dwa wejścia modułu KL1408 oraz jedno wyjście modułu
KL2408.
Opis:
Q1 = NOT RESET1 AND (SET OR Q1)
Semafor SEMA
Zadanie 3.1.3. Napisać program w języku LD umożliwiający testowanie działania
Semafora przy pomocy dwóch przełączników i jednej diody podłączonych do sterownika.
Należy wykorzystać dwa wejścia modułu KL1408 oraz jedno wyjście modułu KL2408.
Opis: CLAIM=TRUE ustawia semafor (BUSY=TRUE),
RELEASE=TRUE gdy CLAIM=FALSE
zwalnia semafor (BUSY=FALSE)
Aby zrealizować zadania 3.1.1 – 3.1.3 w jednym programie, dla każdego zadania należy
dodać nowy obwód (Network (before), Network (after)) przy pomocy menu kontekstowego
prawego klawisza myszy dla oknie programu.
3.2. Elementy detekcji zbocza
Elementy detekcji zbocza zdefiniowane w normie IEC-61131-3 to detektor zbocza
narastającego R_TRIG oraz detektor zbocza opadającego F_TRIG.
Detektor zbocza narastającego (rising edge) R_TRIG
Zadanie 3.2.1. Napisać program w języku LD umożliwiający testowanie działania
bloku funkcyjnego R_TRIG przy pomocy jednego przełącznika i jednej diody podłączonych
do sterownika. Należy wykorzystać jedno wejście modułu KL1408 oraz jedno wyjście
modułu KL2408.
Opis: Wyjście Q utrzymuje wartość TRUE pomiędzy dwoma
kolejnymi wywołaniami bloku w sytuacji, gdy nastąpiła zmiana wartości
wejścia CLK z FALSE na TRUE. W przeciwnym wypadku Q utrzymuje
wartość FALSE. Dla trzech kolejnych wywołań bloku, gdy pomiędzy
dwoma pierwszymi wywołaniami nastąpiła odpowiednia zmiana CLK,
wyjście Q utrzymuje wartość TRUE pomiędzy drugim i trzecim
wywołaniem bloku.
23
PRz, 2008, Żabiński Tomasz
Detektor zbocza opadającego (falling edge) F_TRIG
Zadanie 3.2.2. Napisać program w języku LD umożliwiający testowanie działania
bloku funkcyjnego F_TRIG przy pomocy jednego przełącznika i jednej diody podłączonych
do sterownika. Należy wykorzystać jedno wejście modułu KL1408 oraz jedno wyjście
modułu KL2408.
Opis: Wyjście Q utrzymuje wartość
TRUE pomiędzy dwoma kolejnymi
wywołaniami bloku w sytuacji,
gdy nastąpiła zmiana wartości wejścia CLK z TRUE na FALSE. W
przeciwnym wypadku Q utrzymuje wartość FALSE. Dla trzech
kolejnych wywołań bloku, gdy pomiędzy dwoma pierwszymi
wywołaniami nastąpiła odpowiednia zmiana CLK, wyjście
Q
utrzymuje wartość TRUE pomiędzy drugim i trzecim wywołaniem
bloku.
3.3. Liczniki
Liczniki zdefiniowane w normie IEC-61131-3 to licznik dodający, licznik odejmujący
oraz licznik dodająco-odejmujący.
Licznik dodający (up-counter) CTU
Zadanie 3.3.1. Napisać program w języku LD umożliwiający zliczanie liczby
wykrytych zbocz narastających na wybranym wejściu binarnym. Liczbę zliczonych zbocz
narastających należy wyświetlać w systemie binarnym przy pomocy trzech kolejnych diod.
Gdy liczba impulsów przekroczy wartość możliwą do wyświetlenia przy pomocy trzech diod,
zliczanie należy rozpocząć ponownie od wartości zero. Należy wykorzystać jedno wejście
modułu KL1408 oraz trzy wyjścia modułu KL2408.
Opis:
CU – wejście, którego zmiany z
wartości FALSE na
TRUE są zliczane
RESET – wejście zerujące licznik
PV – wartość zadana
CV – liczba zliczonych impulsów
Q – wyjście załączane, gdy CV osiągnie wartość PV
Liczbę zliczonych zbocz należy obserwować w trybie podglądu działania programu.
Przykładową realizację zadania pokazano na poniższym rysunku.
24
PRz, 2008, Żabiński Tomasz
Licznik odejmujący (down-counter) CTD
Zadanie 3.3.2. Napisać program w języku LD umożliwiający zliczanie „w dół” liczby
wykrytych zbocz opadających na wybranym wejściu binarnym. Odliczaną „w dół” liczbę
zboczy opadających należy wyświetlać w systemie binarnym przy pomocy trzech kolejnych
diod. Gdy liczba impulsów osiągnie wartość 0 zliczanie „w dół” należy rozpocząć ponownie.
Należy wykorzystać jedno wejście modułu KL1408 oraz trzy wyjścia modułu KL2408.
Opis:
CD– wejście, którego zmiany z
wartości FALSE na
TRUE są zliczane
LOAD – wejście ustawiające CV na wartość PV
PV – wartość zadana
CV – liczba zliczonych impulsów
Q – wyjście załączane, gdy CV osiągnie wartość 0
Do wykrywania zbocza opadającego należy zastosować blok funkcyjny F_TRIG.
W pewnych sytuacjach, gdy nastąpiła zmiana programu, należy wykonać restart
sterownika (menu Online opcja Reset po uprzednim zalogowaniu się opcją Login, przed
wykonaniem restartu należy zatrzymać działanie programu – opcja Stop menu Online a
następnie wykonać Reset i ponownie uruchomić sterownik opcją Run).
Licznik dodająco-odejmujący (down-counter) CTUD
Zadanie 3.3.3. Napisać program w języku LD umożliwiający zliczanie wykrytych
zboczy narastających dla dwóch wejść binarnych. Zbocze narastające na wejściu pierwszym
powoduje zwiększanie liczby zliczonych impulsów, zaś zbocze narastające na wejściu drugim
zmniejszanie tej liczby. Liczbę impulsów należy wyświetlać w systemie binarnym przy
pomocy trzech kolejnych diod. Gdy liczba impulsów przekroczy wartość zero lub wartość
możliwą do wyświetlenia przy pomocy trzech diod, zliczanie należy rozpocząć od zera.
Należy wykorzystać dwa wejścia modułu KL1408 oraz trzy wyjścia modułu KL2408.
25
PRz, 2008, Żabiński Tomasz
Opis: CU – wejście, którego zmiany z wartości FALSE na
TRUE są zliczane „w górę”
CD – wejście, którego zmiany z
wartości FALSE na
TRUE są zliczane „w dół”
RESET – wejście zerujące licznik
LOAD – wejście ustawiające CV na wartość PV
PV – wartość zadana dla zliczania „w dół’
CV – liczba zliczonych impulsów
QU – wyjście załączane, gdy CV osiągnie wartość PV
QD – wyjście załączane, gdy CV osiągnie wartość 0
3.4. Czasomierze
Czasomierze (timery) zdefiniowane w normie IEC-61131-3 to czasomierz załączający z
opóźnieniem, wyłączający z opóźnieniem, generator impulsu o zadanym czasie trwania oraz
zegar czasu rzeczywistego. W pakiecie TwinCAT zegar czasu rzeczywistego nie znajduje się
w standardowej bibliotece Standard.Lib, aby go użyć należy dołączyć do projektu bibliotekę
TcUtilities.Lib,
Czasomierz załączający (on-delay) TON
Zadanie 3.4.1. Napisać program w języku LD załączający wybrane wyjście
sterownika z opóźnieniem 10 sek. w stosunku do chwili wykrycia zbocza narastającego na
wybranym wejściu sterownika. Należy wykorzystać jedno wejście modułu KL1408 oraz
jedno wyjście modułu KL2408.
Opis: IN – wejście uruchamiające czasomierz (zbocze
narastające
uruchamia czasomierz, zbocze opadające
zeruje odliczany
czas)
PT – wartość zadana czasu do odliczenia
Q – wyjście załączane, gdy upłynie założony czas opóźnienia
ET – aktualna wartość mierzonego czasu
Czasomierz wyłączający (off-delay) TOF
Zadanie 3.4.2. Napisać program w języku LD wyłączający wybrane wyjście
sterownika z opóźnieniem 10 sek. w stosunku do chwili wykrycia zbocza opadającego na
wybranym wejściu sterownika. Należy wykorzystać jedno wejście modułu KL1408 oraz
jedno wyjście modułu KL2408.
Opis: IN – wejście uruchamiające czasomierz (zbocze
opadające
uruchamia czasomierz, zbocze narastające
zeruje odliczany
czas)
PT – wartość zadana czasu do odliczenia
Q – wyjście wyłączane, gdy upłynie założony czas opóźnienia
ET – aktualna wartość mierzonego czasu
Generator impulsu (timer-pulse) TP
Zadanie 3.4.3. Napisać program w języku LD załączający wybrane wyjście
sterownika na czas równy 10 sek. do chwili wykrycia zbocza narastającego na wybranym
26
PRz, 2008, Żabiński Tomasz
wejściu sterownika. Należy wykorzystać jedno wejście modułu KL1408 oraz jedno wyjście
modułu KL2408.
Opis: IN – wejście uruchamiające generator (poziom
wysoki
uruchamia generator, poziom niski zeruje
licznik gdy czas
impulsu osiągnął lub przekroczył wartość
zadaną PT)
PT – wartość zadana czasu trwania impulsu
Q – wyjście załączane na czas PT, od momentu wykrycia zbocza
narastającego na wejściu IN
ET – aktualna wartość mierzonego czasu
Zadanie 3.4.4. Napisać program w języku LD generujący na wybranym wyjściu
przebieg prostokątny o czasie trwania stanu wysokiego 6 sekund i stanu niskiego 3 sekund.
Należy wykorzystać jedno wyjście modułu KL2408.
6 sek.
3 sek.
4. Programowanie zadań sekwencyjnych w języku SFC
Do realizacji programów w języku SFC nie należy stosować kroków IEC. Należy
sprawdzić czy opcja ta jest nieaktywna, między innymi informuje o tym stan przycisku
znajdującego się w pasku narzędzi oraz w menu Extras -> Use IEC-steps. Przycisk wciśnięty
oznacza, że w programie będą stosowane kroki IEC.
Zadanie 4.1. Napisać program realizujący podstawowy schemat działania urządzenia
uwzględniający trzy stany pracy: Inicjalizacja, Praca normalna, Stop. Do stworzenia
struktury wewnętrznej programu należy wykorzystać graf sekwencji SFC. Do zdefiniowania
akcji dla poszczególnych kroków i warunków przejścia należy zastosować język LD.
START
Działanie układu:
- po uruchomieniu i restarcie systemu program
rozpoczyna działanie od stanu Inicjalizacja,
- Inicjalizacja trwa 5 sekund, po których następuje
przejście do stanu Praca normalna,
- Praca normalna, trwa 10 sekund, po których
następuje przejście do stanu Stop,
- powrót z Stop do Praca normalna następuje po
upływie kolejnych 5 sekund.
Dodatkowe wymagania
- aktualny stan urządzenia jest sygnalizowany przy
pomocy trzech diod (świecenie diody pierwszej
sygnalizuje stan Inicjalizacja, świecenie drugiej
Praca normalna, świecenie trzeciej oznacza Stop).
Inicjalizacja
Init
P01
Praca
„normalna”
Normal
P12
Stop
Stop
P21
Przykładowa realizacja zadania 4.1 przy pomocy grafu SFC
Aby utworzyć nowy projekt wykorzystujący język SFC z menu File należy wybrać
opcję New, wybrać platformę docelową a następnie określić język programowania jako SFC.
27
PRz, 2008, Żabiński Tomasz
Graficzny edytor wspomagający tworzenie programu w języku SFC pokazano na poniższym
rysunku.
Symbole SFC
Kroki IEC
Okno deklaracji
zmiennych
lokalnych
Okno kodu
programu
Okno
komunikatów
Okno organizacji projektu: programy, bloki funkcyjne, funkcje
Identycznie jak w przypadku programu tworzonego w języku LD edytor zawiera okna:
deklaracji zmiennych, kodu programu, komunikatów oraz organizacji projektu. Symbole
graficzne języka SFC są dostępne w na pasku narzędzi okna głównego (oznaczone czerwoną
elipsą na powyższym rysunku).
Domyślny program w języku SFC zawiera krok Init,
tranzycję
Trans0
oraz skok oznaczający powrót do akcji Init
.
Schemat sekwencyjny związany z zadaniem 4.1 zawiera trzy kroki: Init, Normal oraz Stop,
które należy wprowadzić do schematu SFC. Aby to zrealizować należy zaznaczyć tranzycję
Trans0 przy pomocy lewego klawisza myszki (pojedyncze „klikniecie” na graficznym
symbolu tranzycji
- poprawne zaznaczenie jest sygnalizowane graficznie przy pomocy
prostokąta
) a następnie wykorzystując menu kontekstowe (pojedyncze
„klikniecie” prawym klawiszem myszki na zaznaczonym symbolu tranzycji) należy wybrać
opcję Step-Transition (before) bądź Step-Transition (after). Jednoczesne zaznaczenie
tranzycji i wywołanie menu kontekstowego uzyskuje się przy pomocy pojedynczego
„kliknięcia” prawym klawiszem myszki na graficznym symbolu tranzycji.
28
PRz, 2008, Żabiński Tomasz
W wyniku dwukrotnego wykonania powyższych czynności, uzyskuje się schemat zawierający
trzy kroki oraz trzy tranzycje pokazany na poniższym rysunku.
Następnie należy zmienić nazwy kroków oraz tranzycji tak, aby uzyskać
schemat dla zadania 4.1. Zmianę nazw można wykonać „klikając”
jednokrotnie lewym klawiszem myszki na określonej nazwie i wprowadzając
nową nazwę przy pomocy klawiatury. Po wyjściu ze stanu Stop program
powinien powrócić do stanu Normal, dlatego też należy zmodyfikować
parametry skoku na końcu programu wprowadzając nazwę Normal zamiast
Init.
W wyniku wprowadzenia powyższych zmian aktualną postać programu
pokazano na poniższym rysunku.
Zmienne powiązane z tranzycjami P01, P12, P21 należy zadeklarować jako zmienne typu
BOOL. Pomocnicze okno deklaracji zmiennych pojawia się po wprowadzeniu nowej nazwy
dla zmiennej związanej z tranzycją.
W kolejnym etapie tworzenia programu należy zaprogramować odpowiednie
instrukcje dla kroków i tranzycji. Można tego dokonać za pomocą języków dostępnych w
29
PRz, 2008, Żabiński Tomasz
pakiecie TwinCAT. Dla poszczególnych kroków możliwe jest określenie przy pomocy menu
kontekstowego (prawy klawisz myszki) dwóch rodzajów akcji: akcji wejściowej (entryaction), akcji wyjściowej (exit-action).
Dodawanie akcji
wejściowej/ wyjściowej
Usuwanie akcji
wejściowej/ wyjściowej
akcja-wejściowa – wywoływana jednokrotnie za każdym razem gdy blok staje się aktywny
akcja-wyjściowa – wywoływana jednokrotnie za każdym razem gdy blok przestaje być
aktywny
główna akcja powiązana z krokiem – wywoływana cyklicznie w czasie gdy blok jest
aktywny
Aby przypisać do danego kroku akcję główną, należy kliknąć
dwukrotnie lewym klawiszem myszki na graficznym symbolu
kroku i wybrać język programowania danej akcji. Symbol
graficzny kroku, dla którego określono akcję główną posiada w
prawym górnym rogu znak trójkąta wypełnionego kolorem
czarnym
. Aby przejść do trybu edycji wcześniej
zdefiniowanej akcji głównej, należy dwukrotnie kliknąć lewym
klawiszem myszy w prawym górnym rogu graficznego symbolu
kroku (trójkąt wypełniony kolorem czarnym).
Aby zdefiniować wymagane akcje, do projektu należy dodać kod z nimi związany. W
niniejszym przykładzie dodano trzy akcje główne o nazwach ActionInit, ActionNormal oraz
ActionStop. W efekcie uzyskano graf SFC pokazany na poniższym rysunku.
30
PRz, 2008, Żabiński Tomasz
Dla poszczególnych kroków należy określić akcje wejściowe i wyjściowe. Realizuje się to
przy pomocy menu kontekstowego prawego klawisza myszy dla poszczególnych kroków,
wywołując Add Entry-Action oraz Add Exit-Action. Dowiązanie do kroku akcji wejściowej
sygnalizowane jest literą E w lewym dolnym rogu symbolu kroku np.
, zaś akcji
wyjściowej literą X w prawym dolnym rogu np.
. Aby wprowadzić kod związany z
daną akcją wejściową/wyjściową należy kliknąć podwójnie na symbolu E albo X
wyświetlanym na graficznym symbolu kroku.
Schemat sekwencji, po wprowadzeniu dodatkowych akcji, pokazano na poniższym rysunku.
Przykładowy kod programu pokazano poniżej
PROGRAM MAIN
VAR
P01: BOOL;
P12: BOOL;
P21: BOOL;
LEDInit AT %Q*: BOOL;
LEDNormal AT %Q*: BOOL;
LEDStop AT %Q*: BOOL;
TimerTONInit: TON;
TimerTONNormal: TON;
TimerTONStop: TON;
END_VAR
Krok Init – akcja główna
Krok Init - akcja wyjściowa
31
PRz, 2008, Żabiński Tomasz
Krok Normal – akcja wejściowa
Krok Stop – akcja wejściowa
Krok Normal – akcja główna
Krok Stop – akcja główna
Krok Normal – akcja wyjściowa
Krok Stop – akcja wyjściowa
Zadanie 4.2. Rozszerzyć przykład z zadania 4.1 do układu działającego zgodnie z
schematem zamieszczonym na poniższym rysunku.
32
PRz, 2008, Żabiński Tomasz
START
Inicjalizacja
Status=0
P01
Praca
„normalna”
Status=1
PA
P03
Status=3
P12
Stop
Reset
Awaria
P4
Status=2
P21
Działanie układu:
- po uruchomieniu i restarcie systemu program rozpoczyna działanie od stanu Inicjalizacja
- stan Inicjalizacja trwa 10 sek., jeżeli w tym czasie na wejściu INICJALIZACJA pojawi się
narastające zbocze, następuje przejście do stanu Praca normalna. Jeżeli sygnał ten nie
pojawi się w założonym czasie 10 sek. - następuje przejście do stanu Awaria
- podstawowy stan pracy urządzenia to Praca normalna - gdy operator naciśnie przycisk
STOP, następuje przejście do stanu Stop
- powrót z stanu Stop do Praca normalna następuje po naciśnięciu przycisku CONTINUE
przez operatora
- w każdym stanie pracy urządzenia, gdy zostanie aktywowany przycisk awaryjny AWARIA
system przechodzi do stanu Awaria
- wyjście ze stanu Awaria następuje po naciśnięciu przez operatora przycisku RESTART
Przejścia pomiędzy stanami:
P01 - następuje przed upływem 10 sek. od wejścia w stan Inicjalizacja, jeżeli na wejściu
INICJALIZACJA pojawi się narastające zbocze
P12 – naciśnięto przycisk STOP
P21 – naciśnięto przycisk CONTINUE
P03 – następuje po upływie 10 sek. od wejścia w stan Inicjalizacja, jeżeli na wejściu
INICJACJA nie pojawiło się narastające zbocze sygnału
PA - naciśnięto przycisk AWARIA
P4 - naciśnięto przycisk RESTART
Dodatkowe wymagania:
- zmienna status posiada odpowiednie wartości liczbowe w poszczególnych stanach jak
pokazano na rysunku
- aktualny stan urządzenia jest sygnalizowany przy pomocy czterech diod (świecenie diody
pierwszej sygnalizuje, że system znajduje się w stanie Inicjalizacja, świecenie drugiej
33
PRz, 2008, Żabiński Tomasz
Praca normalna, świecenie trzeciej oznacza stan Stop, miganie czwartej oznacza stan
Awaria)
- aktywacja przycisków STOP, CONTINUE, AWARIA, RESTART oraz INICJALIZACJA
następuje w wyniku wykrycia zbocza narastającego na odpowiednim wejściu modułu
KL1408
- program należy zapisać w sterowniku tak, aby po zaniku i przywróceniu zasilania
rozpoczynał pracę od stanu Inicjalizacja (nalezy stworzyć tzw. Bootproject - – menu Online
opcja Create Bootproject po wcześniejszym zalogowaniu się opcją Login).
Zadanie 4.3. Rozszerzyć przykład z zadania 4.2, realizując w stanie Praca normalna
zliczanie impulsów (narastających zboczy) na wybranym wejściu sterownika (zob. zadanie
3.3.1). Jeżeli kolejny impuls nie pojawi się przed upływem 10 sek. od poprzedniego, program
przechodzi w stan Timeout zgodnie z poniższym rysunkiem. W stanie Timeout impulsy nie są
zliczane, aby powrócić do stanu zliczania należy nacisnąć przycisk CLEAR_TIMEOUT.
Praca normalna
Status=1
P11
Zliczanie impulsów
P14
Status=4
Timeout
P41
Zadanie 4.4. Rozszerzyć przykład z zadania 4.3, tak aby utrata zasilania nie
powodowała utraty stanu licznika impulsów. Sygnalizacja diodowa aktualnego stanu
licznika również powinna być prawidłowa bezpośrednio po powrocie napięcia zasilania.
Wskazówka: W sterowniku CX1000 nie występują zmienne typu RETAIN. Aby
wartość zmiennej była zachowana mimo utraty zasilania, należy wykorzystać pamięć
NOV-RAM (Non-Volatile Random Access Memory). Zmienna musi być
zadeklarowana jako zmienna adresowana w obszarze wyjść (AT %Q*).
Konfiguracja pamięci NOV-RAM
W oknie System Managera należy wybrać gałąź Device 3 (NOV/DP-RAM) i uaktywnić
opcję Auto Init linked PLC Outputs – jak pokazano na poniższym rysunku.
34
PRz, 2008, Żabiński Tomasz
Następnie w polu Outputs należy zdefiniować zmienną o identycznym typie jak zmienna z
programu PLC, której wartość ma być przechowywana w pamięci nieulotnej.
Tutaj zadeklarowano zmienną typu WORD o nazwie ZmiennaX.
W ostatnim etapie należy powiązać zmienną z programu PLC (tutaj Value) z zmienną
ulokowaną w pamięci NOV-RAM (ZmiennaX) – co pokazano na poniższym rysunku.
Lista zmiennych zdefiniowanych w przestrzeni wyjść znajduje się w gałęzi PLCConfiguration w opcji Outputs. Dwukrotne kliknięcie na nazwie zmiennej wyświetla okno
Attach Variable, które ulokować tę zmienną w pamięci nieulotnej.
35
PRz, 2008, Żabiński Tomasz
5. Zdalny pulpit systemu Windows CE
Wykorzystując program CERHost.exe dostępny miedzy innymi w Beckhoff
Information System, sprawdzić działanie zdalnego pulpitu dla systemu Windows CE
sterownika CX1000.
Należy wywołać opcję Connect z menu File i wprowadzić jako Hostname np. adres IP
sterownika. Logowanie wymaga wprowadzenia hasła – zalogowanie przeprowadzi
prowadzący zajęcia.
Po poprawnym nawiązaniu komunikacji wyświetlony zostanie ekran zdalnego pulpitu
sterownika CX1000.
Podłączając do modułu CX1000-N001 monitor (złącze DVI) oraz myszkę i klawiaturę (złącza
USB) możliwe jest bezpośrednie konfigurowanie systemu Windows CE sterownika CX1000
bez potrzeby wykorzystywania dodatkowego komputera PC.
36

Podobne dokumenty