Hallo, Ich habe mal eine grundlegende Verständnissfrage
In der Funktion DEAD_ZONE2 ist die Variable Y als VAR_OUTPUT deklariert, wird aber in einem elsif zu einem Vergleich verwendet.
Ich bin C/C++ Programmierer und versteh grad nicht so recht warum mit Y verglichen wird. Die hat doch immer 0, weil ihr nichts zugewiesen wurde? Oder wird das "elsif" auch ausgeführt wenn das "if" schon wahr war?
Ansonsten würde das für mich keinen Sinn machen. In C würd er nämlich in das "else if" nicht mehr springen wenn das "if" wahr gewesen wäre. Somit wäre das "elsif" immer unwahr.
FUNCTION_BLOCK DEAD_ZONE2
VAR_INPUT
X : REAL;
L : REAL;
END_VAR
VAR_OUTPUT
Y: REAL;
END_VAR
IF ABS(x) > L THEN
Y := X;
ELSIF Y > 0.0 THEN
Y := L;
ELSE
Y := -L;
END_IF;