Seite 1 von 1

[V4.0.1] Logik zum Konvertieren von bool in 0/1

Verfasst: So Aug 25, 2024 12:40 pm
von Kaaennixx
Hallo zusammen,

Ich bin mir sicher, dass möglich ist, was ich vorhabe, aber leider finde ich noch keine Lösung.

Ich habe in der Visu ein Widget, welches ein Objekt schalten soll, was 0/1 erwartet. Ich dachte, die automatische Konvertierung würde das schon regeln, aber leider funktioniert das nicht. Ich bekomme dann einen Fehler. Also benötige ich eine Logik, welche das für mich macht.

Am Eingang das Visu Objekt, also bool, da ja im Moment nichts anderes möglich ist, soweit ich weiß. Und am Ausgang dann 0 /1. Das sollte doch eigentlich ganz einfach sein, oder? Irgendwie stehe ich hier etwas auf dem Schlauch.. :roll:

Viele Grüße
Raimund

Re: [4.0.1] Logik zum Konvertieren von bool in 0/1

Verfasst: So Aug 25, 2024 1:54 pm
von MrWilson
Hallo Raimund,

du legst eine Und-Logik an und stellst bei der Ausgangsfunktion Mapping auf Ganzzahl ein.

Grüße Willy

Re: [4.0.1] Logik zum Konvertieren von bool in 0/1

Verfasst: So Aug 25, 2024 1:57 pm
von starwarsfan
Hoi Raimund
Kaaennixx hat geschrieben: So Aug 25, 2024 12:40 pm Am Eingang das Visu Objekt, also bool, da ja im Moment nichts anderes möglich ist, soweit ich weiß. Und am Ausgang dann 0 /1. Das sollte doch eigentlich ganz einfach sein, oder? Irgendwie stehe ich hier etwas auf dem Schlauch.. :roll:
Ich hab's grad mal versucht und das via Customlogik so gemacht:

Code: Alles auswählen

{
  "Level":[
    ["$BoolIn", "bool", true],
    ["$IntOut", "integer", 0],
    ["$ConstInt0", "integer", 0],
    ["$ConstInt1", "integer", 1],

    ["$VAR<Inhibit?>", "bool", false]
  ],
  "Input": [
    ["Boolean Input", "", "$BoolIn", "a"],
    ["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
  ],
  "Module": [
    ["Break", ["$VAR<Inhibit?>"]],
    ["Multiplexer", ["$ConstInt0", "$ConstInt1"], "$IntOut", "$BoolIn"]
  ],
  "Output": [
    ["Integer Output", "", "$IntOut", "ct"]
  ]
}
Das funktioniert hier problemlos. Input "true" liefert "1" auf dem Ausgang. Input "false" liefert "0" auf dem Ausgang. Wenn Du's andersherum brauchst, musst Du nur einfach die beiden Konstanten im Multiplexer tauschen.

Re: [4.0.1] Logik zum Konvertieren von bool in 0/1

Verfasst: So Aug 25, 2024 5:34 pm
von gbglace
Kaaennixx hat geschrieben: So Aug 25, 2024 12:40 pm Ich habe in der Visu ein Widget, welches ein Objekt schalten soll, was 0/1 erwartet.
Was für ein Objekt ist das denn, das die Automatische Konvertierung nicht funktioniert?

Re: [4.0.1] Logik zum Konvertieren von bool in 0/1

Verfasst: So Aug 25, 2024 6:48 pm
von StefanW
Hi Raimund,
Kaaennixx hat geschrieben: So Aug 25, 2024 12:40 pmUnd am Ausgang dann 0 /1.
Was meinst Du denn mit "0" und mit "1"?

Ist das eine Zahl? Ein String? Ein boolescher Wert (dann aber bitte mit TRUE und FALSE kennzeichnen).

lg

Stefan

Re: [4.0.1] Logik zum Konvertieren von bool in 0/1

Verfasst: So Aug 25, 2024 10:21 pm
von Kaaennixx
Hallo und danke für die zahlreichen Antworten.

Es sind ja schon einige Tips dabei, die werde ich morgen gern testen.

Zur Erklärung: Es geht um meine neue Wärmepumpe, die ich per Modbus TCP angebunden habe. Bei dieser kann ich, um die Wärmepumpe zu starten wenn der Strom günstig ist (Tibber), per Modbus die SG Ready Schnittstelle simulieren, ohne die Kontakte verkabeln und potentialfrei schalten zu müssen. Ich schicke also per Modbus für die 2 SG Ready Kontakte eine 0 oder eine 1 als Integer zur Wärmepumpe. Da ich an einer Logik die Schaltzeiten zu automatisieren noch arbeite, war mein Plan dieses erstmal über die Visu von Hand schaltbar zu machen.

Verbinde ich nun mein Widget mit dem Modbus Objekt, bekomme ich beim Auslösen einen Fehler, dass die Objekte nicht kompatibel sind (den genauen Wortlaut hab ich grad nicht mehr im Kopf). Der TWS macht also nicht von allein aus dem true eine 1 und aus dem false eine 0, was ich eigentlich erwartet hatte. Deshalb benötige ich die Logik :)

Re: [V4.0.1] Logik zum Konvertieren von bool in 0/1

Verfasst: Mo Aug 26, 2024 3:44 pm
von Eraser
Ich schätze mal du musst den Weg über das Output-Mapping und einer banalen UND-Logik gehen.

Re: [V4.0.1] Logik zum Konvertieren von bool in 0/1

Verfasst: Mo Aug 26, 2024 7:01 pm
von gbglace
OK das ist aber schade, das es da nicht funktioniert. Ein binäres Signal kommt ja immer erstmal als 1Bit 0/1 an.

In einer Logikzelle nimmt er das auch anstandslos an, um damit in einer freien Formel Sachen zu multiplizieren / Addieren usw.
Da hätte ich jetzt auch gedacht, das er aus dem 1Bit 0/1 ein Integer 0/1 machen könnte wenn es ein Input an ein Modbus Integer Datenpunkt ist.
Es ist ja immerhin kein String der als false/true aus dem Visu-Objekt kommt.

Re: [V4.0.1] Logik zum Konvertieren von bool in 0/1

Verfasst: Mo Aug 26, 2024 7:40 pm
von StefanW
Hi Raimund,

das empfangende Objekt im Modbus ist mit welchem Datentyp angelegt? Bool? Int? Float?

lg

Stefan

PS: Wir haben ja noch die Implementierung des Aussende- / Rückmelde-Assistenten im VISU System vor uns und dort stellt man dann ein, wie was gesendet werden soll.

PSS: Automatische Typkonvertierung passiert immer im jeweils empfangenden Subsystem, hier wäre das wohl das für Modbus und daher meine Nachfrage

Re: [V4.0.1] Logik zum Konvertieren von bool in 0/1

Verfasst: Mo Aug 26, 2024 9:52 pm
von Kaaennixx
Hi Göran, Hi Stefan,

das Objekt ist in UINT angelegt. Ich habe es heute zeitig noch nicht geschafft die Tips zu testen, aber ich bleibe dran. Rückmeldung folgt.