Seite 1 von 1

Integer auf BCD/Binär Demultiplexer

Verfasst: Fr Jun 21, 2019 3:29 pm
von bgumler
Hallo zusammen,

liege ich richtig damit, dass ich mit dem Binärdemultiplexer einen Integerwert, z.B. 1-16 auf 4 "Binärausgänge" 0/1 dekodieren kann?
Wenn ja, warum krieg ich das nicht hin?
Mir scheint es am DPT des Eingangsobjekts zu liegen? Der Auswahldialog wähnt meine Eingangsobjekte immer vom Wert Float.
Welchen DPT muss ich da in ETS für Objekt und GA vergeben?
Hab mal diverse 8 Bit unsigned/signed Typen duuchprobiert: Kein Erfolg...

Da die ETS im Umgang mit TWS kotz-langsam, der Export aus und Import in TW des Projektes auch mit viel Warten verbunden ist, mag ich grad nicht mehr viel rumprobieren. Auf dieses Feature warte ich aber schon lange, um meine Meltem Lüftunganlagen zu steuern.

Danke
Bernd

Re: Integer auf BCD/Binär Demultiplexer

Verfasst: Fr Jun 21, 2019 5:03 pm
von S. Kolbinger
Hallo Bernd,
bgumler hat geschrieben: Fr Jun 21, 2019 3:29 pm liege ich richtig damit, dass ich mit dem Binärdemultiplexer einen Integerwert, z.B. 1-16 auf 4 "Binärausgänge" 0/1 dekodieren kann?
Wenn ja, warum krieg ich das nicht hin?
Mit deiner Einschätzung liegst du genau richtig.
Aber leider stellen sich aktuell noch 2-3 gemeine Bugs in den Weg.
  1. Teilweise werden die DPTs nicht korrekt auf unsere internen Datentypen gemappt.
  2. Der DOS ist noch zu restriktiv und erlaubt aktuell keine Float-Werte am Integer-Eingang
  3. Das Hinzufügen von weiteren Ein- bzw. Ausgängen macht noch Probleme in der Konfig
Damit du aber nicht auf die nächste Release warten musst, habe ich dir eine Custom-Logik (mit Float-Eingang und 8 Bit Ausgang) zusammen gestellt.

Code: Alles auswählen

{
    "Level": [
        ["$FloatIn","float",0],
        ["$MuxIn","integer",0],
        ["$Bit_0_","bool",false],
        ["$Bit_1_","bool",false],
        ["$Bit_2_","bool",false],
        ["$Bit_3_","bool",false],
        ["$Bit_4_","bool",false],
        ["$Bit_5_","bool",false],
        ["$Bit_6_","bool",false],
        ["$Bit_7_","bool",false],
        ["$VAR<Inhibit?>", "bool", false]
    ],
    "Module": [
        ["Break", ["$VAR<Inhibit?>"]],
        ["Polynomial",0,"$MuxIn",["$FloatIn"]],
        ["BinaryDemultiplexer","$MuxIn",["$Bit_0_","$Bit_1_","$Bit_2_","$Bit_3_","$Bit_4_","$Bit_5_","$Bit_6_","$Bit_7_"]]
    ],
    "Input": [
        ["IN","Floatingpoint Eingang","$FloatIn","c"],
        ["Inhibit", "INHIBIT", "$VAR<Inhibit?>", "u"]
    ],
    "Output": [
        ["Bit 0","Binärausgang","$Bit_0_","a"],
        ["Bit 1","Binärausgang","$Bit_1_","a"],
        ["Bit 2","Binärausgang","$Bit_2_","a"],
        ["Bit 3","Binärausgang","$Bit_3_","a"],
        ["Bit 4","Binärausgang","$Bit_4_","a"],
        ["Bit 5","Binärausgang","$Bit_5_","a"],
        ["Bit 6","Binärausgang","$Bit_6_","a"],
        ["Bit 7","Binärausgang","$Bit_7_","a"]
    ]
}
Bild
Die Ausgänge, die du nicht brauchst, lässt du einfach offen.