SP_Ćwiczenia_Język ST
Transkrypt
SP_Ćwiczenia_Język ST
Ćwiczenia Sterowniki Programowalne Język ST i operacje na macierzach Ćwiczenia przeprowadzone w czasie zajęć: 1. Odnajdowanie wartości minimalnej/maksymalnej w tablicy. VAR tablica: ARRAY[0..10] OF INT; Max : REAL; Min :REAL; Index :INT; END_VAR Max :=tablica[0]; Min :=tablica[0]; //deklaracje bloku zmienych //początkowa maksymalna wartość startowa //początkowa minimalna wartość startowa FOR Index:=1 TO 10 DO //przeszukiwanie wartości tablicy IF tablica[Index] > Max THEN //sprawdzanie warunku na maks Max := tablica[Index]; END_IF; IF tablica[Index] < Min THEN //sprawdzanie warunku na min Min:=tablica[Index]; END_IF END_FOR 2. Liczenie średniej z ostatnich 5 pomiarów. VAR tablica: ARRAY[0..4] OF REAL; Pomiar:REAL; Index:INT; Srednia:REAL; Suma:REAL; Pomocnicza:INT; END_VAR FOR Index:=4 TO 1 BY -1 DO Pomocnicza:=Index -1; tablica[Index]:=tablica[Pomocnicza]; END_FOR tablica[0]:=Pomiar; Suma:=0.0; FOR Index:=0 TO 4 DO Suma:=Suma+tablica[Index]; END_FOR Srednia:= Suma/5.0; 3. Dodawanie macierzy. VAR Tablica: ARRAY[0..10,0..5] OF REAL; //deklaracje bloku zmienych Tablica2: ARRAY[0..10,0..5] OF REAL; Tablica3: ARRAY[0..10,0..5] OF REAL; Index :INT; Index2 :INT; END_VAR FOR Index:=0 TO 10 DO FOR Index2:=0 TO 5 DO Tablica3[Index][Index2] := Tablica1[Index][Index2]+ Tablica2[Index][Index2]; END_FOR END_FOR 4. Mnożenie macierzy. VAR Tablica: ARRAY[0..10,0..5] OF REAL; //deklaracje bloku zmienych Tablica2: ARRAY[0..5,0..10] OF REAL; Tablica3: ARRAY[0..10,0..10] OF REAL; Index :INT; Index2 :INT; Index3 :INT; END_VAR FOR Index:=0 TO 10 DO FOR Index2:=0 TO 10 DO Tablica3[Index][Index2]:=0.0; FOR Index3 :=0 TO 5 DO Tablica3[Index][Index2] := Tablica3[Index][Index2] + +Tablica1[Index][Index3]* Tablica2[Index3][Index2]; END_FOR END_FOR END_FOR Do zapamiętania: - Język ST nie obsługuje obliczeń w indeksach np. tab[index-1] Nie wszystkie sterowniki obsługują zmienne deklarowane w kodzie programu, wiele z nich, między innymi sterowniki GeFanuc wymagają wcześniej zadeklarowania wszystkich zmiennych i przydzielenia im pamięci w konfiguracji sterownika, łącznie ze zmiennymi indeksów w pętlach. Materiał pomocniczy http://www.industry.usa.siemens.com/drives/us/en/motion-control-systems-and-solutions/motioncontrol-products/motion-controllers/simotion-scout/se-tabs/Documents/MC-SIMOTION-STprogramming-manual.pdf (aktualne 13.1.2014)