Wenn Boolean true dann Integer-Wert senden - wie geht das?

Hi, kurze Frage.
Wie kann ich eine Boolean zu einer Integer wandeln? Hat mir jemand ein Beispiel für IPSWorkflow?
Oder anders gesagt: Wenn eine Variable true meldet dann soll ein definierter Wert (5) an eine Integer gesendet werden. Komm nicht drauf.
Danke

Kann mir niemand helfen? Oder ist meine Frage zu speziell?
Es gibt zwar die Umwandlung „Wert zu Integer“, aber das klappt nicht.

Ich hab deine Frage mal am Stück in ChatGPT eingegeben und folgendes als Antwort erhalten:

Um eine Boolean-Variable zu einer Integer-Variable in IP-Symcon zu konvertieren, können Sie ein Skript erstellen, das den Wert der Boolean-Variable überprüft und entsprechend den gewünschten Integer-Wert setzt. Hier ist ein Beispiel, wie Sie dies tun können:

  1. Erstellen Sie ein neues Skript in IP-Symcon und fügen Sie den folgenden Code ein:
<?php  
   
$booleanVariableID = 12345; // Ersetzen Sie dies durch die ID Ihrer Boolean-Variable  
$integerVariableID = 67890; // Ersetzen Sie dies durch die ID Ihrer Integer-Variable  
$trueValue = 5; // Der Wert, der gesetzt wird, wenn die Boolean-Variable 'true' ist  
   
$booleanValue = GetValueBoolean($booleanVariableID);  
   
if ($booleanValue) {  
    SetValueInteger($integerVariableID, $trueValue);  
} else {  
    SetValueInteger($integerVariableID, 0);  
}  
   
?>  
  1. Ersetzen Sie 12345 durch die tatsächliche ID Ihrer Boolean-Variable und 67890 durch die ID Ihrer Integer-Variable.

  2. Speichern Sie das Skript und führen Sie es aus, um die Konvertierung durchzuführen.

In diesem Beispiel wird der Wert 5 an die Integer-Variable gesendet, wenn die Boolean-Variable true ist, andernfalls wird der Wert 0 gesendet. Sie können die Werte an Ihre Anforderungen anpassen.

Hinweis: Dieses Beispiel konzentriert sich auf die grundlegende Umwandlung von Booleans in Integers. Für eine spezifische IPSWorkflow-Implementierung können Sie die IP-Symcon-Dokumentation und das Community-Forum konsultieren.

LG Dennis :slight_smile:

1 „Gefällt mir“

Woran man sieht, dass sie ein System nur so gut ist wie man es mit Infos füttert.

Die Frage war nicht nach einem PHP Script, sondern einen Workflow.
Michael

1 „Gefällt mir“

Ich dank dir für den Tipp.
Dann muss ich mir mal überlegen das doch in PHP zu machen.
Eigentlich wollt ich das nicht, weil ich mich so gar nicht damit auskenne. Deshalb wäre mir der Logikplan natürlich lieber.

Mir persönlich wäre ein Workflow dafür viel zu viel Arbeit. Das Skript, welches ChatGPT da ausgeworfen hat, entspricht dem, wie ich es auch fix machen würde. Geht am schnellsten und ist am übersichtlichsten.

1 „Gefällt mir“

OK, ich denk drüber nach.
Aber trotzdem sollte das doch irgendwie gehen. Nicht jeder kann programmieren und Skripte schreiben. Ich bekomm das dann evtl schon irgendwie hin, aber ich denk auch an andere (mich teils eingeschlossen) die sich solche Sachen einfach nur zusammen klicken wollen.

1 „Gefällt mir“

Also, ich habe ein Experiment gemacht. Ich habe mal einen WorkFlow geöffnet und genau diese Aufgabenstellung versucht. Ich sitze da seit 10 Minuten dran und kriege es nicht hin.

So sähe es intuitiv aus. Bool-Variable auf diese „Bei Änderung“ Box. Bis dahin funktioniert alles. An „Auslösung“ hänge ich den Kasten „Variable schreiben“. Und ab da geht nix mehr. Wo trage ich die 5 ein?

Alles viel zu kompliziert. Das Skript da oben ist ohne Chat GPT in 2 Minuten geschrieben. Ich bin froh, dass Symcon diese Möglichkeit bietet.

1 „Gefällt mir“

Logikeditor ist nicht meine Stärke, aber so würde es gehen

Sobald Bool auf true, geht die Integer auf 5…

1 „Gefällt mir“

Das ist es… Dank dir.
Da freut sich mein Elektrikerherz dass ich´s nun doch zusammenklicken kann.
Da hätt ich ja selbst drauf kommen können :grinning:
Eine Doku zu den einzelnen Bausteinen hätte geholfen.

Danke für die Hilfestellung.

Viel zu kompliziert und - wie man sieht - auch nicht wirklich intuitiv zu bedienen.

1 „Gefällt mir“

Ich habe es hier einmal aufgebaut. Das taucht im Objektbaum als Typ „Logikplan“ auf. Das war es auch schon. Ich habe keine Chance in der Konsole, zu sehen, ob das Ding aktiv ist oder nicht. Ich habe keine Chance, es irgendwie von wo anders zu modifizieren. Es ist einfach da. So wie es ist. Fertig.

Wenn ich mir ein Skript mit Ereignis nehme, sehe ich sofort in der Konsole, ob das Ereignis aktiv ist oder nicht. Ich kann das Ereignis aus anderen Skripten beeinflussen, es z.B. aktivieren oder deaktivieren.

So ein Workflow mag für den einen oder anderen leicht und schnell zusammengeklickt sein. MIr persönlich fehlt irgendwas im Hirn, um damit zum Ziel zu kommen, wie ich oben eindrucksvoll bewiesen habe.

Um sich nicht die grenzenlosen Möglichkeiten von IP-Symcon zu verbauen, kann ich jedem nur empfehlen, paar Minuten Zeit in die Skripterstellung zu investieren, denn dann hat man alle Möglichkeiten, die IP-Symcon bietet.

Ich weiß auch, dass einige gleich wieder „Ablaufplan“ schreien. Ja, der kommt einem Skript schon etwas näher. Aber das, was IP-Symcon ausmacht, nämlich das man es hervoragend aus sich selbst heraus steuern kann, kann man so richtig vollumfänglich und unkompliziert nur aus Skripten heraus nutzen.

Ich will den Workflow gar nicht schlecht reden. Für einige mag es die richtige Lösung sein. Man muss sich nur der Nachteile bewusst sein.

2 „Gefällt mir“

Du kannst den logikplan aufrufen und dir live alles anzeigen lassen inkl Änderungen von Werten.

Der Logikplan ist auch nicht kompliziert, eher ungewohnt. Er erleichtert aber denjenigen den Ein-/Umstieg aus der Logo/SPS-Welt kommend.

Ich kenne viele Elektriker, die dir anhand eines logikeditor dinge zaubern können (gerade logo) das man blass wird. Man muss auch keine Programmiersprache erlernen.

Also hat es durchaus Vorteile, vielleicht nicht für dich, nicht für mich, aber für andere schon.

2 „Gefällt mir“

Genau. Aufrufen. Ich habe da nichts übersichtliches in der Konsole.

Das erklärt es.

Also gibt es durchaus eine Zielgruppe. Ich werde definitiv nicht dazugehören :slight_smile:

Und den Neulingen, die so gar keine Erfahrung haben, weder mit SPS noch mit Logo, denen lege ich das gute alte Skript an die Hand.

Ich gehör definitiv zu denen, die nicht Scripten wollen…
ICH WILL KLICKEN! :vulcan_salute:

2 „Gefällt mir“

Wird der von mir markierte Teil wirklich benötigt? Da kommt doch genau das heraus was man vorne hineinsteckt?

edit:
Gerade getestet, den oben rot markierten Teil kann man weglassen.
Es genügt diese Version, um bei Bedingung=TRUE den Wert 5 zu senden. Bei FALSE passiert nichts.

Das macht das alles ja schon ein wenig einfacher. Danke Volker.

Und wie müsste es aussehen, wenn ich bei Bedingung = FALSE den Wert 5 haben möchte? (Ich hab die Testumgebung leider gerade eben gelöscht und kann es daher nicht selber testen.)

Dann würde ich das Eingangssignal nochmal invertieren, ansonsten identisch. Der „Bedingte Wert“ löst bei Bedingung=TRUE aus.

Das sieht alles ziemlich ähnlich aus wie bei der Gira X1 Logik, nur dass man dort beim Wertgeber direkt einen konstanten Wert im Wertgeber-Element eintragen kann. Hier im IPS-Logikplan ist es eine extra Box für den Wert.

Nachtrag zum erweiterten Fall von @DerStandart, wenn man bei TRUE eine 5 senden möchte und bei FALSE eine 17

1 „Gefällt mir“

So siehts jetzt bei mir aus. Scheint zu gehen:

zu unterschiedlichen Bedingungen wird entweder 0,1 oder 5 gesendet.
Das hätte ich mit nem Skript NIE hinbekommen.