Często wykorzystywanym urządzeniem peryferyjnym dla sterowników PLC są enkodery .Służą one przede wszystkim do ustalania dokładnej pozycji elementów , pomiaru odległości przy wszelkiego typu maszynach wymagających dokładnego pozycjonowania . Najbardziej rozpowszechnionymi są enkodery obrotowe w , których pomiar zależny jest od kąta obrotu .
Rozróżniane są dwa podstawowe typy enkoderów ze względu na rodzaj przedstawiania wyniku pomiaru i są to : Enkodery inkrementalne ( przyrostowe ) i enkodery absolutne różniące się zasadniczo sposobem przedstawiania wyniku.Enkodery inkrementalne - W tego typu enkoderach wynik pomiaru przedstawiany jest jako pojedyncze impulsy zero jedynkowe na wyjściach i dlatego zawsze określana jest ilość impulsów na obrót np. 1000 impulsów na pełen obrót (360 stopni). Oczywiście jest określany także rodzaj impulsu tzn, +5V , +24V itp.Enkodery tego typu wymagają od sterownika obsługującego, zliczania impulsów w celu ustalenia aktualnej pozycji. Budowa mechaniczna enkodera wygląda jak na rysunku poniżej:
Większość sterowników PLC posiada gotowe moduły programowe obsługujące enkodery inkrementalne - tutaj omówimy sposób działania tych modułów. Podstawowe i zawsze występujące sygnały jakie otrzymuje sterownik od enkodera inkrementalnego to : A - Sygnał prostokątny o określonym napięciu.B - Sygnał prostokątny przesunięty względem sygnału A.
Przesunięcie sygnału B względem A służy określeniu kierunku obrotu enkodera a co za tym idzie określeniu czy sterownik ma dodawać wartość czy też odejmować.Poniżej program w języku drabinkowym ilustrujący działanie enkodera inkrementalnego.
Wyjścia enkodera podłączono pod wejścia sterownika PLC jak poniżej : I 0.0 - sygnał z enkodera A I 0.1 - sygnał z enkodera B I 0.2 - ewentualny reset ( zerowanie ) stanu licznika w sterowniku a w praktyce ustalenie pozycji zerowej enkodera. Wejścia --|P|-- oznaczają wykrywanie zbocza narastającego - "1" przenoszone jest dalej tylko na jeden cykl programu- W programie wykorzystano licznik CTUD ( Counter Up Down ) Wartość licznika CV (wartość aktualna) pokazuje w powyższym programie aktualne połażenie enkodera a właściwie ilość impulsów o ile został on przesunięty. I tak na przykład osiągnięcie wartości "55" dla enkodera o parametrze 360 imp/obr będzie informowało o obrocie o 55 stopni co , w zależności od budowy mechanicznej całego układu można przeliczyć na przesunięcie liniowe. UWAGA : Powyższy przykład tylko ilustruje współdziałanie sterownika PLC z enkoderem inkrementalnym , w praktyce stosowane ( jak wspomniano wcześniej ) są gotowe moduły programowe dostarczane przez producentów sterowników. Spowodowane jest to stosunkowo wolna praca sterownika w normalnym trybie. Przykład : Dla wypozycjonowania z dokładnością tylko do 1 mm ( co na warunki przemysłowe jest dokładnością "żadną") na długości 1m używając enkodera jedno obrotowego (1 obr = 1m) wymagana rozdzielczość enkodera wynosi 1000 imp/obr. Zakładając użycie nawet szybkiego sterownika PLC np z czasem cyklu 10 ms , minimalny czas przesunięcia o 1m wynosiłby 20s czyli osiągnięto by prędkość 3m na minutę . Łatwo policzyć , że dla osiągnięcia dokładności 0,1mm czas przesunięcia w tym przypadku wydłuża się 10 razy .
^
Enkodery absolutne - Tutaj wynik pomiaru przedstawiany jest nieco inaczej tzn w postaci słowa o określonej ilości bitów czyli ciągu bitów określających dokładnie położenie kątowe enkodera . Rozdzielczość enkodera określana jest za pośrednictwem ilości bitów w jakich przedstawiany jest wynik. Na przykład enkoder o rozdzielczości 8 bitów ma tarcze podzieloną na 256 części i jego rozdzielczość wynosi 1,40625 stopniaW przypadku enkoderów absolutnych , inaczej niż w enkoderach inkrementalnych , zawsze wiadomo w jakiej pozycji się on znajduje wynika to z budowy tarczy pomiarowej . W enkoderach absolutnych wykorzystuje się zwykle dwa typy kodowania jest to naturalny kod dwójkowy oraz tzw. kod Gray'a . Zaletą kodu Gray'a jest to , że zmiana sąsiadujących ze sobą wartości następuje poprzez zmianę tylko jednego bitu. Poniżej rysunki tarcz dla obu typów kodowania dla wartości 4 bitowych.
Wartość dziesiętna
Wartość w kodzie Gray'a
Wartość dwójkowa
0
0000
1
0001
2
0011
0010
3
4
0110
0100
5
0111
0101
6
7
8
1100
1000
9
1101
1001
10
1111
1010
11
1110
1011
12
13
14
15
seczek