czwartek, 4 grudnia 2014

Podstawy ST - składnia

Szybki jak utwory grupy Behemoth przegląd składni rozpoczniemy od prostych typów danych:
  • BOOL
  • BYTE (1 bajt), WORD (2 bajty), DWORD (4 bajty), LWORD (8 bajtów)
  • SINT (1 bajt), INT (2 bajty), DINT (4 bajty), LINT (8 bajtów)
  • USINT (1 bajt), UINT (2 bajty), UDINT (4 bajty), ULINT (8 bajtów)
  • REAL (4 bajty), LREAL (8 bajtów)
  • TIME
  • DATE, TIME_OF_DAY, DATE_AND_TIME
  • STRING (liczba znaków podawana przy deklaracji w "()" lub w "[]")

Konwersji w wiekszości przypadków dokonujemy odpowiednią funkcją postaci TYP1_TO_TYP2(wyrażenie).

Domyślny jest zapis dziesiętny, ale można używać innych i liczbę 10 zapisać w kodzie jako 16#A, 8#12 lub 2#1010. Podobnie jest z zapisem czasu, godziny i daty, kilka przykładów:
  • T#1s
  • T#1d2h3ms
  • D#2014-12-24
  • TOD#21:30:50.66
  • DT#2014-12-24-21:30:50.66

Jeśli chodzi o typy złożone, przykład deklaracji tablicy:
Tab : ARRAY [1..10] OF BYTE;

i struktury:
TYPE ST_Odczyt :
STRUCT
 Command : STRING(5);
 Name : STRING(15);
 Address : WORD;
 RegisterCount : WORD;
END_STRUCT
END_TYPE

Wskaźniki to wyżej wymienionych tworzymy poprzedzając nazwę typu frazą POINTER TO. Adres dla wskaźnika możemy uzyskać używając funkcji ADR. Dereferencja natomiast następuje po dołożeniu "^" na końcu nazwy zmiennej

Komantarze:
(* to jest komentarz *)

Operatory:
  • Operator przypisania: :=
  • Operatory porównania: =, <>, <, >, <=, >=
  • Operatory logiczne: NOT, AND, OR, XOR
  • Operatory arytmetyczne: +, -, *, /, MOD

Instrukcja warunkowa:
IF warunek THEN
 instrukcje
ELSIF warunek THEN
 instrukcje
ELSE
 instrukcje
END_IF

Przykładowa instrukcja wyboru:
CASE krok OF
1:
 instrukcje
2,3:
 instrukcje
4..6:
 instrukcje
ELSE
 instrukcje
END_CASE

Pętla for:
FOR przypisanie TO wyrażenie BY krok DO
 instrukcje
END_FOR

Pętla while:
WHILE warunek DO
 instrukcje
END_WHILE

Pętla repeat:
REPEAT
 instrukcje
UNTIL warunek
END_REPEAT

Wyjście z każdej z nich umożliwia instrukcja EXIT.

Na koniec kilka podstawowych funkcji:
  • ABS - wartość bezwzględna
  • LIMIT - wartość zawężona do granic przedziału
  • MIN, MAX - mniejsza/większa z podanych wartości
  • SHL, SHR - przesunięcia bitowe w lewo i w prawo
  • SIZEOF - rozmiar
  • SIN, COS, TAN, ASIN, ACOS, ATAN - funkcje trygonometryczne
  • SQRT - pierwiastek kwadratowy
  • TRUNC - część całkowita

Operacje na napisach:
  • CONCAT - połączenie napisów
  • FIND - pozycja znaku w napisie
  • LEN - długość napisu
  • MID - fragment napisu

Brak komentarzy:

Prześlij komentarz