Programowanie Wybranych Sterowników Przemysłowych Strona 1 z 3
Laboratorium 3
Biblioteka Shift +Rotate
1. Cel ćwiczenia
Celem ćwiczenia jest zapoznanie się z instrukcjami programu TIA Portal, które operują na
bitach. Za pomocą funkcji Shift + Rotate można przesuwać, obracać bity w dowolnym kierunku i o
dowolną wartość. Są to podstawowe operacje służące między innymi do mnożenia dwóch liczb,
obliczania sum kontrolnych CRC.
2. Przebieg ćwiczenia
Ćwiczenie jest podzielone na dwa etapy. W pierwszej części są opisane wszystkie elementy
biblioteki Shift Rotate. W drugim etapie są przedstawione przykładowe układy wykorzystujące dane
funkcje.
2.1. Instrukcje z biblioteki Shift Rotate
Wszystkie elementy biblioteki Shift Rotate są przedstawione na rysunku 1
.
Shift right – przesuwanie danych w prawo
Shift left – przesuwanie danych w lewo
Rotate right – rotacja danych w prawo
Rotate left – rotacja danych w lewo
Rysunek 1 Elementy biblioteki Shift + Rotate
Funkcje przesuwania (Shift left, Shift right) służą do przesuwania bitów danych o zadaną
liczbę. Wszystkie dane, które wychodzą poza zakres typu danej zostają kasowane. W przesuwaniu w
prawo nowe bity, które są wprowadzane mają wartość taką samą jak bit znaku liczby. Przy
przesuwaniu w lewo liczby dochodzą od strony najmłodszego bitu dodatkowe zera. Przykładowe
przesunięcia liczby dodatniej są przedstawione na rysunku 2, oraz dla liczby ujemnej - rysunek 3. W
sytuacji, gdy liczba przesunięć bitów wychodzi poza zakres danego typu dana zostaje wyzerowana.
Programowanie Wybranych Sterowników Przemysłowych Strona 2 z 3
Laboratorium 3
Biblioteka Shift +Rotate
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
Rysunek 2 Przesunięcie liczby 1234 o 2 miejsca w prawo
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
Rysunek 3 Przesunięcie liczby -1234 o 2 miejsca w prawo
Rotacje danych (Rotate left, Rotate right) działają bardzo podobnie do funkcji przesuwania. W
rotacji dane, które wychodzą poza zakres typu zostają przepisane z najmłodszego bitu do najstarszego
(w przypadku rotacji w prawo) lub przepisaniu z najstarszego bitu do najmłodszego (w przypadku
rotacji w lewo). Przykładowe rotacje liczby dodatniej są przedstawione na rysunku 4, oraz dla liczby
ujemnej - rysunek 5. W przypadku, gdy liczba przesunięć bitów wychodzi poza zakres danego typu
dana zostaje obrócona o wartość modulo danego typu zmiennej.
Uwaga!
Liczby ujemne są zapisywane z wykorzystaniem uzupełnienia do dwóch. Zapis ten polega na
przepisaniu od prawej strony wszystkich bitów do logicznej 1 włącznie. Następne bity są negowane.
Do konwersji reprezentacji systemu liczbowego zmiennych warto wykorzystać Watch Table,
w którym mamy możliwość zmiany typu na bieżąco.
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
Rysunek 4 Rotacja liczby 1234 o 2 miejsca w prawo
Programowanie Wybranych Sterowników Przemysłowych Strona 3 z 3
Laboratorium 3
Biblioteka Shift +Rotate
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
Rysunek 5 Rotacja liczby -1234 o 2 miejsca w prawo
Zadanie 1
Należy zapoznać się z wszystkimi elementami Shift Rotate w pomocy programu TIA Portal
(nazwa funkcji >> przycisk „F1”). Na czym polega różnica pomiędzy przesunięciem, a rotacją?
Zadanie 2
Należy sprawdzić, czy wartości z rysunków 2-5 zostały prawidłowo wyliczone. Zapisz wyniki
w postaci dziesiętnej.
Zadanie 3
Należy wykonać następujące operacje na liczbie odpowiadającej numerowi albumu studenta:
a) przesunięcie w prawo liczby o 2 znaki,
b) rotacja w lewo liczby o 3 znaki,
c) przesunięcie w lewo liczby o 4 znaki,
d) rotacja w prawo liczby o 6 znaków.
Wynik zapisz w postaci dziesiętnej i szesnastkowej. Następnie należy napisać w postaci dwójkowej
wyniki poszczególnych etapów zadania wraz z prezentacją zmienionych wartości.
Zadanie 4
Należy zrealizować tożsame zadania z punktu poprzedniego „Zadanie 3” jednak jako liczbę
wykorzystać swój ujemny numer albumu.