Hallo zusammen,
im Handbuch steht ja zum Thema "Verschachteln von if-Anweisungen" auf Seite 111:
Hier mein Beispel was nicht tut was es soll:
[highlight=epc]
PoolLevelString=$intit$;
if !Startverzoegerung or \\
change("Pool_Levelsensor1-9/7/6") or change("Pool_Levelsensor2-9/7/7") or \\
change("Pool_Levelsensor3-9/7/8") or change("Pool_Levelsensor4-9/7/9") then
{
PoolLevelString=$$;
if "Pool_Levelsensor1-9/7/6" == EIN then PoolLevelString = $1$ endif;
PoolLevelString=PoolLevelString+$,$;
if "Pool_Levelsensor2-9/7/7" == EIN then PoolLevelString = PoolLevelString + $2$ endif;
PoolLevelString=PoolLevelString+$,$;
if "Pool_Levelsensor3-9/7/8" == EIN then PoolLevelString = PoolLevelString + $3$ endif;
PoolLevelString=PoolLevelString+$,$;
if "Pool_Levelsensor4-9/7/9" == EIN then PoolLevelString = PoolLevelString + $4$ endif;
} endif;
[/highlight]
Je nach Status der Gruppenadressen sollten also zum Schluß ein String wie: 1,2,3,4 oder 1,2,, oder auch 1,,,4 usw. rauskommen.
Was heisst "invalidiert jede Anweisung im then Zweig"? Ich würde es so verstehen dass jedes if im then Zweig neu ausgewertet wird.
Konnte ich aber nicht beobachten. Ich habe gestern zum Testen die GA "Pool_Levelsensor4-9/7/9" per ETS mit dem Wert "1" auf den Bus geschrieben.
Im Debugger hatte die GA auch den Wert "EIN".
Jedoch im String der Variable PoolLevelString fehlte die "4".
Hab ich da was falsch verstanden?
Grüße
Matthias
im Handbuch steht ja zum Thema "Verschachteln von if-Anweisungen" auf Seite 111:
Bei Abfragebedingung==EIN invalidiert die If-Funktion jede Anweisung im then-Zweig.
[highlight=epc]
PoolLevelString=$intit$;
if !Startverzoegerung or \\
change("Pool_Levelsensor1-9/7/6") or change("Pool_Levelsensor2-9/7/7") or \\
change("Pool_Levelsensor3-9/7/8") or change("Pool_Levelsensor4-9/7/9") then
{
PoolLevelString=$$;
if "Pool_Levelsensor1-9/7/6" == EIN then PoolLevelString = $1$ endif;
PoolLevelString=PoolLevelString+$,$;
if "Pool_Levelsensor2-9/7/7" == EIN then PoolLevelString = PoolLevelString + $2$ endif;
PoolLevelString=PoolLevelString+$,$;
if "Pool_Levelsensor3-9/7/8" == EIN then PoolLevelString = PoolLevelString + $3$ endif;
PoolLevelString=PoolLevelString+$,$;
if "Pool_Levelsensor4-9/7/9" == EIN then PoolLevelString = PoolLevelString + $4$ endif;
} endif;
[/highlight]
Je nach Status der Gruppenadressen sollten also zum Schluß ein String wie: 1,2,3,4 oder 1,2,, oder auch 1,,,4 usw. rauskommen.
Was heisst "invalidiert jede Anweisung im then Zweig"? Ich würde es so verstehen dass jedes if im then Zweig neu ausgewertet wird.
Konnte ich aber nicht beobachten. Ich habe gestern zum Testen die GA "Pool_Levelsensor4-9/7/9" per ETS mit dem Wert "1" auf den Bus geschrieben.
Im Debugger hatte die GA auch den Wert "EIN".
Jedoch im String der Variable PoolLevelString fehlte die "4".
Hab ich da was falsch verstanden?
Grüße
Matthias
Kommentar