Hier mal ein Vorschlag zum Testen, Einarbeiten und gerne Weiterarbeiten. Habe dann doch insgesamt 6 Latch benötigt:
Du hast 5 Ausgänge, dann kannst Du Dir aussuchen, ob Du UVW oder A1/A2 beschalten willst.
Code: Alles auswählen
/**
* Laderegleransteuerung zu Forumsdiskussion V0.1
* https://forum.timberwolf.io/viewtopic.php?f=65&t=3013
*
* Nutzungsrechte:
* Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht.
*/
{
"Input":[
["In1","Netzspeiseleistung","$I1","a"],
["Stufe 1","","$Comp1","u"],
["Stufe 2","","$Comp2","u"],
["Stufe 3","","$Comp3","u"],
["Interval","","$Interval","u"]
],
"Output":[
["U","","$U","c"],
["V","","$V","c"],
["W","","$W","c"],
["Out1","","$O1","c"],
["Out2","","$O2","c"]
],
"Level":[
["$I1","float",0.0],
["$O1","bool",true],
["$O2","bool",true],
["$Interval", "integer",60],
["$Comp1", "float",1000.0],
["$Comp2", "float",2000.0],
["$Comp3", "float",3000.0],
["$Gate1","bool",false],
["$Gate2","bool",false],
["$Gate3","bool",false],
["$U","bool",false],
["$V","bool",false],
["$W","bool",false],
["$Monofl1","bool",false],
["$Monofl2","bool",false],
["$Monofl3","bool",false],
["$Formula", "string","X1+X2+X3"],
["$count", "integer",0]
],
"Module":[
["Comparator" , "$I1" , "$Gate1" , "$Comp1"],
["Comparator" , "$I1" , "$Gate2" , "$Comp2"],
["Comparator" , "$I1" , "$Gate3" , "$Comp3"],
["Monoflop","$Gate1","-$Gate1","$Monofl1","$Interval",3],
["Monoflop","$Gate2","-$Gate2","$Monofl2","$Interval",3],
["Monoflop","$Gate3","-$Gate3","$Monofl3","$Interval",3],
["Latch","$Gate1","$U","$Monofl1",2],
["Latch","$Gate2","$V","$Monofl2",2],
["Latch","$Gate3","$W","$Monofl3",2],
["Latch","$Gate1","$U","$Gate1",2],
["Latch","$Gate2","$V","$Gate2",2],
["Latch","$Gate3","$W","$Gate3",2],
//Jetzt folgt nur noch eine Umrechnung auf zwei Ausgänge
["CalcFormula",["$U","$V","$W"], "$count", "$Formula"],
["BinaryDemultiplexer","$count",["-$O2","-$O1"]]
]
}