Komparatory ( Comparators ) - Funkcje porównujące między sobą wartości liczbowe . Programując sterownik PLC , a właściwie realizując na nim określony algorytm pracy, funkcja porównania jest jedną z podstawowych . W artykule tym przybliżymy działanie funkcji :
· LT - Less Then - Mniejsze Niż
· LE - Less or Equel - Mniejsze lub Równe
· GT - Great Then - Większe Niż
· GE - Great or Equel - Większe lub Równe
· EQ - Equel - Równe
LT - Less Then - Mniejsze NiżDla wartości IN1 mniejszej od wartości IN2 wyjście Q funkcji zostanie ustawione na "1"
LE - Less or Equel - Mniejsze lub Równe Dla wartości IN1 mniejszej lub równej wartości IN2 wyjście Q funkcji zostanie ustawione na "1"
GT - Great Then - Większe NiżDla wartości IN1 większej od wartości IN2 wyjście Q funkcji zostanie ustawione na "1"
GE - Great or Equel - Większe lub RówneDla wartości IN1 większej lub równej wartości IN2 wyjście Q funkcji zostanie ustawione na "1"
EQ - Equel - Równe Dla wartości IN1 równej wartości IN2 wyjście Q funkcji zostanie ustawione na "1"
UWAGA : Przy używaniu funkcji EQ ( Równe ) należy pamiętać o cyklicznym odczytywaniu wartości z wejść przez sterownik . Może się zdarzyć , że wartość mierzona "przeskoczy" wartość zadaną w ciągu jednego cyklu programu tzn. po pierwszym odczycie wartość mierzona będzie równa np. 120 a po drugim 125 i wtedy sterownik przy wartości zadanej równej 123 jej nie "zobaczy" , spowoduje to nie przewidywalne działanie programu, a ściśle pominięcie warunku w programie .
Przykład 1:Sterowanie napełnianiem zbiornika z analogowym (ciągłym) pomiarem poziomu .
Pomiar poziomu w zbiorniku realizowany jest poprzez wejście analogowe IA0 , poziom załączenia ustawiony na 50 a poziom wyłączenia na 100.Działanie programu wygląda następująco : Przy poziomie poniżej 50 zadziała komparator CP1 ustawiając swoje wyjście na "1" co spowoduje ustawienie wyjścia sterownika Q0.1 na "1" na sztywno (S) . Wyjście Q0.1 pozostanie załączone do momentu kiedy nie zadziała komparator CP2. Po przekroczeniu nastawionego poziomu 100 komparator CP2 ustawi swoje wyjście na "1" co spowoduje RESET ( wyłączenie ) wyjścia Q0.1
Analizując powyższy program warto zwrócić uwagę na to , że wiodącym (priorytetowym) jest WYŁĄCZENIE ( Reset) wyjścia Q0.1 , czyli zawsze po przekroczeniu wartości zadanej w CP2 (CP2.Q=1) zostanie wyłączone wyjście sterownika Q0.1 .
Uwaga praktyczna 1 : Należy pamiętać w tak prostym programie o odpowiednim ustawieniu wartości zadanych ( CP1.IN2 i CP2.IN2) czyli wartość zadanej dla CP1 - załączenie musi być mniejsza niż wartość zadana CP2 - wyłączenie , w innym przypadku wyjście sterownika Q0.1 zostanie załączone dla spełnionego warunku CP1.Q=1 i takim pozostanie , czyli po załączeniu nigdy nie wyłączy się wyjście sterownika.
Uwaga praktyczna 2 : Z kolei przy poprawnie ustawionych wartościach zadanych CP1.IN2 > CP2.IN2 ale zbyt małej różnicy ( histerezie ) pomiędzy nimi w stosunku do możliwych nie wymuszonych zmian wartości mierzonej np. falowanie cieczy w zbiorniku spowodujemy zbyt częste ząłączanie/wyłączanie wyjścia Q0.1. W praktyce "migotanie " stycznika
Wartością mierzoną w przykładzie 1 jest poziom cieczy w zbiorniku , jednak zmiana z układu napełniania zbiornika z cieczą na układ utrzymania ciśnienia itp. nie powoduje zmian w programie a tylko w podłączonych urządzeniach .
W tym rozdziale opiszemy typy i zakresy danych występujących w programach . Z rozdziałem tym warto dokładnie się zapoznać , gdyż informacje tu zawarte są niezbędne przy pisaniu programów na sterowniki PLC na każdym etapie zaawansowania.
Typy danych
W naszym przypadku danymi są wszystkie informacje przychodzące do sterownika „I” ( wejścia cyfrowe, analogowe itd. ), wychodzące ze sterownika „Q” (wyjścia cyfrowe .... itd. ) oraz wewnętrzne sterownika „M” ( zmienne czyli markery ) .
Podstawową jednostką „miary” jest bit może on przyjmować tylko dwie wartości – 0 lub 1 kolejne jednostki składają się z odpowiedniej ilości bitów. jak w tabeli poniżej
oznaczenie
typ danej
ilość bitów
zakres wartości
opis
BOOL
Boolean
1
0-1
Zmienne tego typu mogą przyjmować tylko dwie wartości czyli "0" lub "1" .
BYTE
ciąg 8 bitów
8
nie posiada wartości numerycznej
WORD
ciąg 16 bitów
16
DWORD
ciąg 32 bitów
32
LWORD
ciąg 64 bitów
64
Typy zmiennych o wartości wyrażonej w systemie dziesiętnym , są to liczby całkowite ( integer ), których wartość wyliczana jest ze stanu odpowiednich bitów (konwersja z zapisu dwójkowego na zapis dziesiętny)
SINT
short integer
-128 : 127
"Krótka" liczba całkowita .
INT
integer
-32 768 : 32 767
Liczba całkowita .
DINT
double integer
-231 : (231-1)
"Podwójna" liczba całkowita .
LINT
long integer
-263 : (263-1)
"Długa" liczba całkowita .
USINT
unsigned Short integer
0 : 255
"Krótka" liczba całkowita nieznakowana ( przyjmuje tylko wartości dodatnie).
UINT
unsigned integer
0 : 65535
Liczba całkowita nieznakowana ( przyjmuje tylko wartości dodatnie).
UDINT
unsigned double integer
0 : (232-1)
" Podwójna "liczba całkowita nieznakowana ( przyjmuje tylko wartości dodatnie).
ULINT
unsigned long integer
0 : (264-1)
" długa "liczba całkowita nieznakowana ( przyjmuje tylko wartości dodatnie).
STRING
-
Dowolne znaki czyli litery i cyfry , jednak cyfry będą traktowane jako znak a nie określona wartość .
TIME
czas
typ danej występujący w timerach format zapisu T#XdXhXmXsXms gdzie X to określona wartość i kolejno d- dni, h-godziny,m-minuty, s-sekundy, ms- milisekundy
Pamięć sterownika
Pamięć w sterowniku PLC podzielona jest na dwa główne obszary :
– Obszar pamięci programu , tutaj przechowywany jest kod wprowadzonego programu
– Obszar pamięci danych w której , przechowywane są wszystkie dane wykorzystywane przez sterownik , a dokładniej przez wprowadzony program
Sposób oznaczania i adresowania komórek pamięci przedstawia diagram poniżej :
Poniżej tabela przedstawiająca strukturę pamięci w której przechowywane są dane.
0
2
3
4
5
6
7
9
10
11
12
13
14
15
M0.0
M0.1
M0.2
M0.3
M0.4
...
torrencik_ss