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)