[NEUHEIT] Modul: SendExplizit

Hier stellen Foristen und Kunden Ihre EIGENEN Logikbausteine vor. Diese Logikbausteine stehen jedem im Rahmen der vom Autor eingeräumten / genannten Lizenz zur Verfügung.

Ersteller
S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 546
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 73 Mal
Danksagung erhalten: 495 Mal

Modul: SendExplizit

#1

Beitrag von S. Kolbinger »

Es gibt ein neues Modul für die Logic-Engine: "SendExplicit" oder "gesteuertes Senden"

Mit diesem Modul lässt sich ein (Ausgangs-)Level explizit festlegen, ob es gesendet werden soll.

Die Syntax für das Modul sieht folgendermassen aus:
["SendExplicit","$SendCond","$Out_val",Option]

"SendExplicit" : Modulkennung
"$SendCond": Referenz auf einen boolschen Level der das Sendeverhalten (je nach Option) steuert
"$Out_val": Referenz auf einen Ausgangs-Level dessen Sendeverhalten gesteuert werden soll.
Option:
  • 0:Sende bei True ,
  • 1: Sende bei positiver Flanke,
  • 2: Sende bei negativer Flanke,
  • 3: sende bei positiver und negativer Flanke

Ist die Sendebedingung erfüllt wird beim (Ausgangs-)Level ein Flag gesetzt, das auf die Sendeoption: X reagiert.
Die Sendeoption X lässt sich nur in Custom-Logiken setzen und nicht wie bei den bisherigen Sende-Optionen (A,C oder T) über die GUI.

Hier ein Beispiel (sende nur Werte zwischen 4 und 17):

Code: Alles auswählen

{
  "Level": [
    ["$In_val", "float", 0],
    ["$Out_val","float",0],
    ["$Send","bool" ,false],
    ["$Min", "float", 4],
    ["$Max","float",17]
  ],
  "Module": [
    ["Limiter","$In_val","$Out_val","$Send",["$Min","$Max"]],
    ["SendExplicit","$Send","$Out_val",0]
  ],
  "Input": [
    ["Eingang","Eingangswert","$In_val","a"]
  ],
  "Output": [
    ["Ausgang","Ausgangswert","$Out_val","x"]
  ]
}
Screenshot from 2020-06-29 13-01-07.png
PS: Sorry für die späte Benachrichtigung über das neue Modul in V1.6.0. Bin in den letzten 4 Wochen privat umgezogen :-o
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Robert_Mini am Do Jul 02, 2020 11:11 pm, insgesamt 2-mal geändert.
Gruß,
Stefan K.


Robert_Mini
Reactions:
Beiträge: 2369
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 591 Mal
Danksagung erhalten: 1069 Mal

#2

Beitrag von Robert_Mini »

Hallo Stefan!

So geht das nicht :oops: , du verschweigst uns die coolsten Dinge 4 Wochen lang? :crying-yellow:

Scherz beiseite, damit kann man alles machen, was mir noch gefehlt hat! :clap: :clap: :clap:
- Explicit Senden obwohl kein Änderung
- Sendefilter zb nur true Senden

Ich vermute mal, dass Kombinationen mit “on change” =“CX” oder Timer =“TX” nicht vorgesehen sind, oder?
Kann man aber mit einem 2. Ausgang auf das gleiche Objekt simulieren.

Danke für das coole Feature
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / Wiregate-Fan


danik
Reactions:
Beiträge: 239
Registriert: Mo Sep 10, 2018 8:40 pm
Hat sich bedankt: 112 Mal
Danksagung erhalten: 171 Mal

#3

Beitrag von danik »

Vielen dank, eine wichtige Funktion die noch gefehlt hat.

Gruss
Dani
TW 950Q #321, VPN offen, Reboot nach Rücksprache


paralan
Reactions:
Beiträge: 120
Registriert: Mi Sep 05, 2018 11:49 pm
Hat sich bedankt: 129 Mal
Danksagung erhalten: 72 Mal

#4

Beitrag von paralan »

Super Stefan K.,

das ist eine wichtige Erweiterung der Module.
Danke! :clap: :dance:
Gruß Alan

TWS 2600 ID:190; VPN offen; Reboot nach Absprache, da Beschattung über Logikeditor aktiv!


Robert_Mini
Reactions:
Beiträge: 2369
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 591 Mal
Danksagung erhalten: 1069 Mal

#5

Beitrag von Robert_Mini »

Kleiner Nachtrag: Warum eigentlich das "x" an der Oberfläche?

Ich hätte es fast noch smarter empfunden, wenn das Modul "Sendexplicit" einfach ein Senden erzwingt, unabhängig von der Einstellung an der Oberfläche.
D.h. wie heute kann man mit c,t,ct,a 95% abdecken, für den Rest ein Sendexplicit zusätzlich dazu.

Hintergrund:
Ich denke da auch an einen "Send-Trigger" Eingang, der alle Ausgänge sendet. d.h. Logik wie heute im Einsatz mit "C" "CT" und "A", einfach im Code eine Erweiterung um SendExplicit je Ausgang mit Trigger, fertig.

C, CT im Code nachzubilden ist auch nicht ganz trivial, bleibt so dann nur der Weg über doppelte Ausgänge...

lg
Robert
Zuletzt geändert von Robert_Mini am Mo Jun 29, 2020 10:44 pm, insgesamt 2-mal geändert.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / Wiregate-Fan


Ersteller
S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 546
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 73 Mal
Danksagung erhalten: 495 Mal

#6

Beitrag von S. Kolbinger »

Hallo Robert,
Robert_Mini hat geschrieben:
Mo Jun 29, 2020 10:38 pm
Ich hätte es fast noch smarter empfunden, wenn das Modul "Sendexplicit" einfach ein Senden erzwingt, unabhängig von der Einstellung an der Oberfläche.
D.h. wie heute kann man mit c,t,ct,a 95% abdecken, für den Rest ein Sendexplicit zusätzlich dazu.
Dein Vorschlag ist durchaus interessant und eine Überlegung wert.
Offen gesagt, hatte ich die Kombination von "Sendexplicit" mit anderen Sendetriggern (A,C,T) gar nicht auf dem Schirm.
Technisch liese es sich sogar einfach umsetzen, allerdings sollte diese Einstellung am Logik-Editor irgendwie sichtbar sein, um Überraschungen und Frust beim Anwender (und damit auch bei unserem Support) vorzubeugen.
Eine Änderung am Logik-Editor wäre in jedem Fall notwendig, schon dann, wenn man nur "Sendexplicit" verwenden möchte, ohne die anderen Trigger.

Aktuell finde ich es übersichtlicher keine Kombinationen mit "Sendexplicit" zuzulassen (Keep it simple).
Das können wir aber bei Bedarf in den nächsten Version einbauen.
Gruß,
Stefan K.

Benutzeravatar

Eraser
Reactions:
Beiträge: 340
Registriert: So Aug 12, 2018 1:51 pm
Wohnort: Amstetten, Österreich
Hat sich bedankt: 124 Mal
Danksagung erhalten: 154 Mal

#7

Beitrag von Eraser »

Bin auch dafür, dass man die normalen Trigger A,C,T bestehen lässt und das SendExplicit zusätzlich dazu auf den Ausgang geschalten werden kann.

Man könnte dies durch AX, CX und TX am Ausgang anzeigen.

Dann wäre in der Logik-Übersicht sofort ersichtlich, welcher Ausgang zusätzlich ein SendExplicit noch dabei hat.

Das reine X für nur SendExplicit kann ja bestehen bleiben, sodass man dann folgende Varianten hätte:
A, AX, C, CX, T, TX, X
Zuletzt geändert von Eraser am Do Jul 02, 2020 7:37 am, insgesamt 2-mal geändert.
mfg
Wolfgang

Timberwolf 2500 #151 / VPN offen / Reboot nach Rücksprache
+ PBM #938


Robosoc
Reactions:
Beiträge: 721
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 267 Mal
Danksagung erhalten: 295 Mal

#8

Beitrag von Robosoc »

Auch ich schließe mich dem allen an.

1. Vielen Dank für das Modul Stefan!
2. Vielen Dank für Beitrag #5 Robert, sehe ich genauso!
3. Vielen Dank für den Beitrag #7 Wolfgang, ist meiner Meinung nach der perfekte Vorschlag.

Kurz:
SendExpolizit wirkt sich nur aus, wenn ein X in der Sendeoption verwendet wird und es gibt bei Custom-Logiken dann folgende Möglichkeiten
A, AX, C, CX, T, TX, X
Zuletzt geändert von Robosoc am Do Jul 02, 2020 8:49 am, insgesamt 2-mal geändert.
VG, Sven - TWS 950Q ID:335, VPN offen, Reboot OK


Robert_Mini
Reactions:
Beiträge: 2369
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 591 Mal
Danksagung erhalten: 1069 Mal

#9

Beitrag von Robert_Mini »

Hallo zusammen!

Danke für die Diskussion. Meine Gedanken dazu:
- Ich finde den Ansatz super, dass man die Sendeoptionen vollständig an der Oberfläche sieht.
- Die Wahrheit ist, dass man meist entweder A, C, CT oder X braucht
- Wenn doch, dann ist das interne ermitteln von C und vor allem T sehr schwierig und aufwändig!

Für die wenigen Fälle, wo ich X brauche, ist die Lösung wirklich Klasse! Denn damit geht nun wirklich alles, was mir in den Sinn kommt.

Einziger Fall, den ich im Kopf habe, der damit nicht abdeckbar ist:
"Send Trigger" - Trigger Eingang, der zusätzlich zu den existierenden Settings alle Eingänge sendet. Ich bin jemand, der das Senden auf das notwendige reduziert. In manchen Custom Logiken ist es dann echt schwierig, ein Send zu provozieren. Das liegt vor allem daran, dass on change gegenüber dem Init-Wert der Variable ausgewertet wird (?oder?).
Auch nach einem Reboot, wäre ein "Send all Outputs" als Triggereingang hilfreich.

Daher habe ich diese Diskussion um Send Explicit angestoßen.

Der beste Weg wäre aus meiner Sicht, die Implementierung von "Send Explicit" so beizubehalten und zusätzlich mittelfristig einen Triggereingang zu generieren, der ein "Send all Outputs" auslöst. Vorteil dabei ist, dass solche Lösung auch für die Standardlogiken nutzbar wäre!


lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / Wiregate-Fan

Benutzeravatar

Eraser
Reactions:
Beiträge: 340
Registriert: So Aug 12, 2018 1:51 pm
Wohnort: Amstetten, Österreich
Hat sich bedankt: 124 Mal
Danksagung erhalten: 154 Mal

#10

Beitrag von Eraser »

Robert_Mini hat geschrieben:
Do Jul 02, 2020 10:29 am
Der beste Weg wäre aus meiner Sicht, die Implementierung von "Send Explicit" so beizubehalten und zusätzlich mittelfristig einen Triggereingang zu generieren, der ein "Send all Outputs" auslöst.[/b]
Das wäre für mich genauso OK.

Ich z.B. habe zum Großteil nur den Anwendungsfall, dass alle Ausgänge auf C stehen.
Ab und zu wäre es dann hilfreich, dass ich ein Senden aller Ausgänge auch ohne Änderung des Ausgangs anstoßen könnte.
mfg
Wolfgang

Timberwolf 2500 #151 / VPN offen / Reboot nach Rücksprache
+ PBM #938

Antworten

Zurück zu „Zusätzliche Logikbausteine“