Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.


Nachrichten - chriszero

Seiten: 1 [2]
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;

Seiten: 1 [2]