Anfängerproblem - IF/THEN in CFC

MarcoH

Level-1
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

als kompletter Neueinsteiger in CodeSys versuche ich gerade die Basics zu verstehen. Ich habe einen funktionierenden Code (CFC) mit dem ich z.Z. ein wenig "spiele".
Das Endziel ist, bei Aktivierung eines Schalters den BWM im Haus eine andere Funktion zuzuordnen (Pseudo-Alarmaanlage ;))

Ich habe 2 grundlegende Verständisproblem (Vielleicht vergleiche ich das Ganze zu sehr mit VB?):

Ich habe mir gedacht ich erstelle mir eine Variable "Abwesend" und wenn die auf true gesetzt ist, werden die BWM umgeleitet.
Problem 1: Wie/wo setzte ich den Wert der Variable? (Sei es nun manuell im Code (oder später in der Visu) oder bei Betätigung eines bestimmten Tasters (bspw. DI_4_1)). Alle meine Versuche schlugen bisher fehl. (Wie gesagt, das Ganze in CFC)

Problem 2: Wie bilde ich eine IF/THEN Situation in CFC ab? In der Art von

IF NOT Abwesend THEN
Bel_EG_Flur;
ELSE
Bel_Aussen;
END_IF;

Ich weiß, das sind Basics, aber ich versuche gerade CodeSys zu verstehen.

Vielen Dank
Marco

PS: Wenn es hier lieber gesehen wird, kann ich den Post auch mit dem vorigen zusammenfassen. (Das grundlegene Thema "Anfängerfragen" sind ja identisch.
 
Zuletzt bearbeitet:
Hallo Marco,

Schreibe den Teil deines Programmes doch in ST, da kannst Du einfach mit einer IF-Anweisung arbeiten.

Gruß

Frank
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Für so eine einfache Umschaltung zwischen zwei Werten elementaren Datentyps gibt es in CFC (wie auch in ST) den Baustein "SEL" (binäre Selektion).
Über den ersten binären Eingang wird festgelegt, ob der erste oder der zweite Parameterwert durchgeschaltet werden soll. Das entspricht genau deinem gezeigten If-Then Beispiel.
 
Also, ich hab kurz n Demoprogramm gemacht, ich hab dabei gleich beide Fragen beantwortet denke ich.

Anmerkung:

Das Programm stellt eigentlich folgenden ST-Code dar:

Code:
[COLOR=#333333][FONT=Verdana]IF NOT Abwesend THEN [/FONT][/COLOR]
[COLOR=#333333][FONT=Verdana]Bel_EG_Flur := TRUE;
[/FONT][/COLOR][COLOR=#333333][FONT=Verdana]Bel_Aussen := FALSE;[/FONT][/COLOR]
[COLOR=#333333][FONT=Verdana]ELSE [/FONT][/COLOR]
[COLOR=#333333][FONT=Verdana]Bel_EG_Flur := [/FONT][/COLOR][COLOR=#333333][FONT=Verdana]FALSE;[/FONT][/COLOR][COLOR=#333333][FONT=Verdana]
[/FONT][/COLOR][COLOR=#333333][FONT=Verdana]Bel_Aussen := [/FONT][/COLOR][COLOR=#333333][FONT=Verdana]TRUE;[/FONT][/COLOR]
[COLOR=#333333][FONT=Verdana]END_IF;[/FONT][/COLOR]
 

Anhänge

  • Beispiel.PNG
    Beispiel.PNG
    11,1 KB · Aufrufe: 137
Zuletzt bearbeitet:
Vielen Dank euch beiden. Werde das zeitnah testen. Momentan ist hier grad Land unter, beide Kinder krank.

Gruß
Marco
 
Vergiss dann aber nicht, Falls du es über eine Variable steuerst, diese mal mindestens als PERSISTENT anzulegen, dass auch nach nem kurzen Stromausfall nicht gleich die "Alarmanlage" loslegt :)

Das aber nur nebenbei.
 
Zurück
Oben