Menu

Rejestry indeksów – opis, przykłady zastosowania

utworzone przez sty 15, 20180 komentarzy

W sterownikach PLC firmy Delta Electronics występują rejestry indeksowania umożliwiające odczyt lub zapis wartości do rejestru o adresie przesuniętym o wartość indeksu. Jest to szczególnie pomocna funkcja zarówno podczas wykonywania operacji zapisu i odczytu wartości w kolejnych rejestrach, wyszukiwania rejestru o największej lub najmniejszej wartości, oraz pracach na rejestrach o adresach wynikających z kolejności wykonywanych przez program instrukcji.

Dla sterowników serii Slim występuje 16 indeksów (E0-E7 oraz F0-F7).

W sterownikach modułowych serii AH500 jest ich 32 (E0-E31).

Aby prawidłowo zapisać adres rejestru z wykorzystanym indeksowaniem należy po adresie rejestru dodać znak „@” i nazwę indeksu: np. D0@E0

 

Przykład 1 Zapis rejestru z indeksowaniem:

Na rysunku 1 przedstawiono przykładowy fragment programu, w którym po spełnieniu odpowiednich warunków zapisywane są wartości we wskazanych przez indeksy rejestrach.

Zgodnie z programem odpowiednio dla załączonego:

  • M0 uzyskamy zapis wartości 5 do rejestru D0 przesuniętego o wartość E0=10 czyli D10. Po tej operacji D10=5.

  • M1 uzyskamy zapis wartości 5 do rejestru D0 przesuniętego o wartość E0=20 czyli D20. Po tej operacji D20=5.

  • M2 uzyskamy zapis wartości 15 do rejestru D0 przesuniętego o wartość E1=30 czyli D30. Po tej operacji D30=15.

  • M3 uzyskamy zapis wartości 15 do rejestru D0 przesuniętego o wartość E1=40 czyli D40. Po tej operacji D40=15.

 

rejestry indeksów

Rys. 1 Sposób zapisu rejestru z indeksowaniem

 

Przykład 2 Zapis kolejno próbkowanych punktów

Na rysunku 2 przedstawiono fragment programu do zapisu kolejno próbkowanych współrzędnych pozycji. Próbkowanie odbywa się na zbocze narastające M10. Po jego wystąpieniu zostaje zwiększona wartość wskaźnika E0 od którego zależy miejsce zapisu współrzędnych X i Y punktu.

zapisane_X jest w tym przykładzie zmienną globalną o adresie D2000, zapisane_Y natomiast jest zmienną globalną o adresie D2002.

Taki sposób zapisu danych da następujący efekt

D2000 – współrzędna X pkt 1

D2002 – współrzędna Y pkt 1

D2004 – współrzędna X pkt 2

D2006 – współrzędna Y pkt 2

D2008 – współrzędna X pkt 3

D2010 – współrzędna Y pkt 3

itd.

Dla zabezpieczenia przed przepełnieniem rejestrów zapisu ustawione zostały granice dla narastania wartości indeksu. W tym przykładzie jest to wartość 3996 co oznacza że ostatni zapis wykona się w D5992 dla współrzędnej X oraz D5994 dla współrzędnej Y ostatniego punktu. Po dalszych próbach próbkowania zostanie wygenerowany alarm ALM_za_duzo_punktow.

 

rejest indeksów

Rys. 2 Zapis próbkowanych punktów w kolejnych rejestrach

 

Przykład 3 Wyszukiwanie maksymalnej wartości w rejestrach

Na rysunku 3 przedstawiono fragment programu do sprawdzania maksymalnej i minimalnej wartości współrzędnej Y spośród rejestrów z przykładu nr 2. Na zbocze narastające M20 zostaje załączone porównanie aktualnej wartości maksymalnej i minimalnej z aktualnym rejestrem wskazanym przez E0. Odpowiednie zapętlenie wywołania M20 spowoduje sprawdzenie wartości od D2002 do D5994 co czwarty rejestr i zapisanie wartości do max_Y i min_Y. Po sprawdzeniu wszystkich rejestrów dla potwierdzenia zostanie załączony bit M19.

 

rejestr indeksów

Rys. 3 Wyszukiwanie maksymalnej i minimalnej wartości w rejestrach

 

Przykład 4 Wypełnianie kolejnych rejestrów tą samą wartością

Na rysunku 4 przedstawiono fragment programu do zapisywania rejestrów tą samą wartością. Na zbocze narastające M20 zostaje załączone zapisywanie wartości 996 do aktualnego rejestru wskazanego przez E0. Odpowiednie zapętlenie wywołania M20 spowoduje zapis 996 od D0 do D996 co czwarty rejestr. Po zapisie wszystkich rejestrów dla potwierdzenia zostanie załączony bit M19.

 

rejestr indeksów

Rys. 4 Zapis kolejnych rejestrów tą samą wartością

 

Przykład 5 Przejazdy w interpolacji liniowej na kolejno zapisane pozycje

Na rysunku 5 przedstawiono fragment programu sterownika 10 MC do ruchu w interpolacji liniowej przez kolejne punkty zapisane w rejestrach:

D100 – współrzędna X pkt 1

D102 – współrzędna Y pkt 1

D104 – współrzędna X pkt 2

D106 – współrzędna Y pkt 2

D108 – współrzędna X pkt 3

D110 – współrzędna Y pkt 3

itd.

Przejazdy na poszczególne pozycje zostaną zatrzymane dla pierwszej wartości współrzędnej X = 0.00.

 

rejestr indeksów

Rys. 5 Przejazd w interpolacji liniowej na kolejno zapisane pozycje

[AnythingPopup id="1"]