-Menü

Beiträge anzeigen

Dieser Abschnitt erlaubt es Ihnen, alle Beiträge anzusehen, die von diesem Mitglied geschrieben wurden. Beachten Sie, dass Sie nur Beiträge sehen können, die in Teilen des Forums geschrieben wurden, auf die Sie aktuell Zugriff haben.

Beiträge anzeigen-Menü

Beiträge - chriszero

#16
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;