Seite 2 von 2

Re: Status vor Logik nach Ablauf wieder herstellen

Verfasst: Fr Jun 25, 2021 2:56 pm
von Eraser
Hier meine Logik:
1.PNG

Code: Alles auswählen

// ======================================================================================
// Definiertes Blinken eines Ausgangs
// -) Blinken endet mit dem vorherigen Zustand des Ausgangs (bevor die Logik aktiv wurde)
// -) Blinkanzahl ist fix mit 3 hinterlegt
// -) Ein- und Ausschaltzeit des Blinkens ist einstellbar
// ======================================================================================

{
"Level":[
	["$Trigger","bool",false],
	["$Status","bool",false],
	["$Status_Value","integer",0],
	["$Status_SAVE","bool",false],
	["$BlinkNo","integer",3],
	["$Time","float",0.0],
	["$Output","bool",false],
	["$Output_T_on","bool",false],
	["$Output_T_off","bool",false],
	["$Inhibit","bool",false],
	["$KonstTrue","bool",true],
	["$TEMP_T1_On","bool",false],
	["$TEMP_T1_Off","bool",false],
	["$TEMP_T2_On","bool",false],
	["$TEMP_T2_Off","bool",false],
	["$TEMP_T3_On","bool",false],
	["$TEMP_T3_Off","bool",false]
],

"Input":[
	["Trigger","Trigger zum Starten des Blinkens (Flanke auf 1)","$Trigger","a"],
	["Status","Aktueller Zustand des Ausgangs","$Status","u"],
//	["Blink-Anzahl","Anzahl der Blinkvorgänge","$BlinkNo","u"],
	["Schaltzeit","Dauer des Schaltsignals in Sekunden","$Time","u"]
],

"Output":[
	["Output","Schaltausgang","$Output","a"]
],

"Module":[
	// Abfrage auf Status - Wert in integer umwandeln
	["BinaryMultiplexer",["$Trigger","$Status"],"$Status_Value"],
	// Abfrage auf Status - Wenn Trigger=0, dann nicht den neuen Status übernehmen
	["Multiplexer",["$Status_SAVE","$Status","$Status_SAVE","$Status"],"$Status_SAVE","$Status_Value"],
	// Impuls 1
	["Monoflop","$Trigger",0,"$TEMP_T1_On","$Time",2],
	["Monoflop","-$TEMP_T1_On",0,"$TEMP_T1_Off","$Time",2],
	// Impuls 2
	["Monoflop","-$TEMP_T1_Off",0,"$TEMP_T2_On","$Time",2],
	["Monoflop","-$TEMP_T2_On",0,"$TEMP_T2_Off","$Time",2],
	// Impuls 3
	["Monoflop","-$TEMP_T2_Off",0,"$TEMP_T3_On","$Time",2],
	["Monoflop","-$TEMP_T3_On",0,"$TEMP_T3_Off","$Time",2],
	// Ausgangsvarianten
	["Or",["$TEMP_T1_On","$TEMP_T2_On","$TEMP_T3_On"],"$Output_T_on"],
	["Or",["-$TEMP_T1_On","-$TEMP_T2_On","-$TEMP_T3_On"],"$Output_T_off"],
	// Ausgang setzen
	["Multiplexer",["$Output_T_on","-$Output_T_on"],"$Output","$Status_SAVE"],
	// Trigger rücksetzen
	["And",["-$KonstTrue"],"$Trigger"]
]
}
/**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.*/
Zwei Variablen (Status und Output) sind vom Namen her auch in anderen Variablennamen enthalten, was laut den letzten Erkenntnissen nicht sein sollte. Da die Logik aber schon älter ist, das Problem zu der Zeit noch nicht aktuell war und die Logik nun schon Monate problemlos läuft, hab ich das hier jetzt nicht geändert.
Ich glaube mich aber zu erinnern, dass das Problem mit dem Namen im Namen nur bei Input und Output-Variablen vorhanden war oder?

Re: Status vor Logik nach Ablauf wieder herstellen

Verfasst: Fr Jun 25, 2021 3:16 pm
von Bancoras
@Eraser
Vielen vielen Dank für deine Logik. Ich probiere da mal mit herum, sieht aber sehr vielversprechend aus. :handgestures-thumbupright:
Gehe ich richtig mit der Annahme, dass ich bei ["$BlinkNo","integer",3], die Blinkanzahl verändern kann?
Update: Meine Annahme war falsch, so einfach war es doch nicht die Blinkanzahl zu erhöhen, habe es aber hin bekommen. :dance:

Ich nehme dennoch gerne jede weitere Erklärung der einzelnen Logikbausteine entgegen. Will das verstehen und später selber in der Lage sein, was zu bauen. ;)

Re: Status vor Logik nach Ablauf wieder herstellen

Verfasst: Mo Jun 28, 2021 12:38 pm
von Hammer
Hallo Bancoras,
Bancoras hat geschrieben: Fr Jun 25, 2021 2:53 pm Ich verstehe nur Bahnhof... Bzw. verstehe ich schon was du mir sagen willst, aber 'mit einem Latch speichern' und 'muss mit einem RS gespeichert werden' sagt mir gar nichts. :confusion-scratchheadyellow: Vielleicht magst du mir Latch und RS kurz erklären?
Ein Latch setzt ein Wert auf eine andere Variable.
Wenn die Klingel von false auf true wechselt gibst du den Eingang I_Status_Licht an den Merker M_Status_Licht weiter
app.php/kb/viewarticle?a=115#Latch

Code: Alles auswählen

["Latch","$I_Status_Licht","$M_Status_Licht","$I_Klingel",1]
Nach der Signalisierung schreibst du den Merker wieder auf den Ausgang

Code: Alles auswählen

["Latch","$M_Status_Licht","$O_Licht","$I_Klingel",2]
Wenn dein Klingel Meldung schneller auf false fällt als deine Signalisierung brauch, bis diese beendet ist.
Dann verwende das RS-Flipflop

Code: Alles auswählen

https://forum.timberwolf.io/viewtopic.php?f=31&t=1609&p=16887&hilit=custom#p16889
Dies lässt sich mit der I_Klingel setzten und mit Beendigung der Signalisierung zurücksetzen.

Hoffe ich konnte es nun etwas verständlicher erklären.

Grüße
Stefan

Re: Status vor Logik nach Ablauf wieder herstellen

Verfasst: Mo Jun 28, 2021 11:06 pm
von Bancoras
Ich glaube ich komme so langsam dahinter...

Vielen Dank an alle die eure Hilfe und Geduld. :)

Re: Status vor Logik nach Ablauf wieder herstellen

Verfasst: Di Jun 29, 2021 8:32 am
von StefanW
Fein,

könntest Du Dir bitte Gedanken zu einem besseren Thread-Titel machen, weil ich fürchte, das "Status vor Logik nach Ablauf wieder herstellen" versteht man nicht.

Bitte Deinen Vorschlag posten, ich ändere das dann ab.

lg

Stefan

Re: Status vor Logik nach Ablauf wieder herstellen

Verfasst: Fr Jul 09, 2021 1:04 pm
von Bancoras
@StefanW
Ich habe jetzt lange lange überlegt, aber mir fällt kein besserer Titel ein, sonst hätte ich den auch bei Erstellung des Threads genommen...

Wenn du einen passenderen hast, bin ich offen für Vorschläge.