Beispiel
Dieses Kapitel zeigt ein Beispiel für die Berechnung eines Neigungswinkels in einem SPS-Programm.
Voraussetzung: die Neigungsmessung wurde so konfiguriert wie im Kapitel Berechnung in der Steuerung beschrieben.
Variablen-Verknüpfungen in TwinCAT
- „AI Inputs Channel 1“ > „Value“ ist verknüpft mit
ay
- „AI Inputs Channel 2“ > „Value“ ist verknüpft mit
ax
- „AI Inputs Channel 3“ > „Value“ ist verknüpft mit
az
Programm-Code
PROGRAM MAIN
VAR
ax AT %I* : INT;
ay AT %I* : INT;
az AT %I* : INT;
Neigung : LREAL;
END_VAR
IF (ay <> 0 OR az <> 0) THEN (* Division durch 0 verhindern *)
Neigung := ATAN( ax / SQRT( ay * ay + az * az ) ) * 360 / ( 2 * 3.14 );
END_IF
(* Sprung beim Nulldurchgang von az ausgleichen *)
IF az > 0 THEN
Neigung := 180 - Neigung;
END_IF
(* Offset einfügen, um den Messbereich von -90...270 auf -180...+180 zu verschieben *)
IF Neigung > 180 THEN
Neigung := Neigung - 360;
END_IF