Seite 1 von 1

AND-Logikbaustein mit einstellbarem Sendeverhalten/Sendefilter V1.0

Verfasst: Mi Jun 29, 2022 11:58 pm
von Dragonos2000
Angeregt von diesem Thread viewtopic.php?p=40554#p40554 habe ich einen AND-Logikbaustein erstellt, dessen Sendeverhalten sich einstellen lässt. Vielleicht kann es wer brauchen, bei Bedarf kann ich das gerne noch auf andere Logikfunktionen anpassen.

Sendeoptionen:
  • Nur False senden
  • Nur True senden
  • False und True senden, aber nur wenn sich der Ausgangswert geändert hat
  • False und True immer senden, wenn die Logik getriggert wird

Code: Alles auswählen

{
	"Level": [
		["$ConstFalse","bool",false],
		["$ConstTrue","bool",true],
		["$bit0","bool",false],
		["$bit1","bool",false],		
		["$LastVal","bool",false],
		["$SameVal","bool",false],
		["$Send","bool",false],
		["$SendAll","bool",false],
		["$SendAllChngd","bool",false],
		["$SendFalse","bool",false],
		["$SendTrue","bool",false],		
		["$O_ResultAnd","bool",false],
		["$P_OpMode","integer",0],
		["$VAR<I_Input!>","bool",false],
		["$VAR<Inhibit?>","bool",false]
	],
	"Input": [
		["Operation mode","Operation mode: 0=Send both results whenever triggered; 1=Send only TRUE results; 2=Send only FALSE results; 3=Send both results, only when output changes", "$P_OpMode","u"],
		["AND input","Inputs of AND logic","$VAR<I_Input!>","a"],
		["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
	],
	"Output": [
		["Output","Output of the logic","$O_ResultAnd","x"]
	],
	"Module": [
		["Break",["$VAR<Inhibit?>"]],											//completely disable logic
		["And",["$VAR<I_Input!>"], "$O_ResultAnd"],
		["Limiter","$O_ResultAnd",0,"$SameVal",["$LastVal", "$LastVal"]],       //Check, if $O_ResultAnd has new value
		["Latch","$O_ResultAnd","$LastVal","$ConstTrue",0],						//Save $O_ResultAnd for next cycle
		["BinaryDemultiplexer","$P_OpMode",["$bit0","$bit1"]],
		["Latch","$ConstFalse","$Send","$ConstTrue",0],							//Reset
		["And",["$O_ResultAnd","$bit0","-$bit1"], "$SendTrue"],					//Evaluate sending TRUE
		["And",["-$O_ResultAnd","-$bit0","$bit1"], "$SendFalse"],				//Evaluate sending FALSE
		["And",["-$bit1","-$bit0"], "$SendAll"],								//Evaluate sending always
		["And",["$bit1","$bit0","-$SameVal"], "$SendAllChngd"],					//Evaluate sending change
		["Latch","$ConstTrue","$Send","$SendTrue",0],							//Set sending when TRUE
		["Latch","$ConstTrue","$Send","$SendFalse",0],							//Set sending when FALSE
		["Latch","$ConstTrue","$Send","$SendAll",0],							//Set sending always
		["Latch","$ConstTrue","$Send","$SendAllChngd",0],						//Set sending on change
		["SendExplicit","$Send","$O_ResultAnd",0]
	],
	"_Meta": {
		"Icon": "",
		"Version": "1.0",
		"_description": "Logic module with configurable sending behaviour"
	}
}
/** 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. */
Sollte soweit selbsterklärend sein, ansonsten fragen.

Disclaimer:
Die Verwendung erfolgt auf eigene Gefahr. Ich hafte nicht für etwaige entstandene Schäden, die durch die Nutzung entstanden sind, noch garantiere ich eine Fehler freie Funktion.

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.

Re: AND-Logikbaustein mit einstellbarem Sendeverhalten/Sendefilter V1.0

Verfasst: So Sep 15, 2024 5:59 pm
von theAndy
Hi das ist eine super Logik, vielen Dank fürs bereitstellen.
Ich bin mit den Logiken noch nicht ganz so vertraut, du hast angeboten die Logik evtl. noch zu erweitern. :D
-> ich würde beim "Output" die Funktion "Mapping zu Ganzzahl" benötigen, könntest du das evtl. noch einfügen?
Das ist bei der bestehen leider nicht vorhanden.
(Hintergrund ist, ich möchte damit einen Rollladen auf ein eine genaue Position fahren)

Ich wäre dir sehr Dankbar :-)
Grüße Andy