(17.10.2013 17:49 )I3erry schrieb: Hallo,
ich möchte mehrere Bedienelemente welche wild über das Frontpanel verteilt sind gleichzeitig aktivieren bzw. deaktivieren. Dafür erstelle ich im Blockdiagramm von jedem Element eine Referenz und bündle diese dann zu einem Cluster. Geht das auch einfacher? Gibt es eine Möglichkeit im FP verschiedene Elemente die nebeneinander liegen zu einer Art Cluster zusammenzufassen, ohne dass man den "Clusterrahmen" sieht?
Die Clusterfläche und den Clusterrahmen unsichtbar (transparent) zu machen geht. Man kann auch solche Cluster übereinanderschieben, so dass auf einer gemeinsamen FP-Fläche im wilden Durcheinander manche Elemente zu Cluster 1 und manche zu Cluster 2 gehören (Pfeiltasten zum Verschieben verwenden, nicht die Maus. Für den Cluster die Klassische Ansicht verwenden, das Unsichbarmachen in der modernen Ansicht geht auch, ist aber tricksy. Um Schatten zu vermeiden, die Cluster gruppieren).
Die Sache hat aber einen Haken: Auch eine tansparente Fläche verhindert die Bedienung der darunter liegenden Elemente. Es geht also nicht, dass beide Cluster Bedienelemente sind.
Was geht: Ein Cluster Bedienung (obere Schicht), 1 Cluster Anzeige (darunter). Oder 1 Cluster Bedienung, und auf diesem Cluster weitere Bedienelemente als Einzelelemente. (Die müssen mit den Pfeiltasten der Tastatur in den Cluster geschoben werden,damit sie nicht in den Cluster einverleibt werden. Dann alles gruppieren)
Sie mal wie weit Du damit kommst, ich habe auch schon Beispiele hier gepostet.
Zitat:Wenn in einer Statemachine auf die Wert-Änderung verschiedener Button reagiert werden soll, was passiert dann, wenn 2 Fälle Zeitgleich eintreten? Werden diese nacheinander abgearbeitet, wird einer vernachlässigt bzw. muss dann quasi zwingend ein dritter Fall definiert werden für die gleichzeitige Änderung?
Die Ereignisse kommen in eine Queue (Größe mach meinem Wissen quasi unbegrenzt) und werden hintereinander abgearbeitet. Damit das quasi gleichzeitig geschieht, ist wichtig, dass das Timing der Schleife,in der sich die Ereignisstruktur befindet, mit dem Timout der Ereignisstruktur gemanagt wird.
Also z.B bei Schleifendurchlaufzeit 100ms:
100ms an den Timout anschließen und nicht:
Timeout=0 und dann in die Schleife 100ms Wait einfügen. (das funktioniert zwar auch, aber man hätte dann 100ms Pause zwischen der Behandlung der beiden Ereignisse)