Andy Geschrieben 2. Januar 2019 Geschrieben 2. Januar 2019 (bearbeitet) Hallo, beim Ereignis 'Variable wird gesetzt' wird die Bedingung wahr, wenn man im Wert nichts eingibt und die Variable tatsächlich auf einen leeren Eintrag gesetzt wurde. Das ist gut! Aber leider fehlt die Gegenfunktion. Es ist nicht möglich zu prüfen, ob die Variable auf irgendeine Zeichenkette außer (nichts) gesetzt wurde. Behelfen kann man sich, wenn man bei jedem Setzen einer solchen Textvariablen eine Parallelvariable auf einen Zahlenwert setzt und diesen dann befragt. Da geht > und < ja, und in der Regel ist >-1 meistens ausreichend. Eine schöne Lösung ist das nicht. Vielleicht wäre es möglich auf >(nichts weiter) zu prüfen. Wobei dann natürlich das Zeichen > als Text verloren gehen würde. Besser vielleicht ein Negationshäkchen, wie in der Bedingung vielleicht? Das würde auch für ungleich Zahlenwert Sinn machen. Es wäre im ersten Moment vielleicht etwas irreführend, weil man denken könnte, es würde sich auf 'Ereignis tritt nicht ein' beziehen, also anstelle des Texts 'Negieren' vielleicht 'Vergleich negieren' schreiben. Gruß Andy p.s. gebraucht wird das, um einen Variablenwert in eine Beschriftung rüber zu bringen, wobei ich das nicht dort haben möchte, wo die Variable gesetzt wird. Das hat wieder was mit Objektvariablen zu tun. Bearbeitet 2. Januar 2019 von Andy p.s.
Neo Geschrieben 2. Januar 2019 Geschrieben 2. Januar 2019 Hallo Andy, das Problem wird in V5 durch die globalen Ereignisse gelöst. Dort kannst du auf eine Änderung reagieren, ohne dich auf einen Wert beschränken zu müssen. Viele Grüße, Neo
Andy Geschrieben 2. Januar 2019 Autor Geschrieben 2. Januar 2019 (bearbeitet) Hallo Neo, das ist schonmal prima. Jetzt aber nochmal ein ähnliches Thema. In 'normalen' Maschinensteuerungen haben wir viele einfache logische Netzwerke, die jeden Zyklus durchgerechnet werden. Wir sind uns einig, dass es keinen Sinn macht, sie wieder und wieder durchzurechnen, wenn sich sowieso nichts an den Variablen geändert hat. Jetzt haben wir da aber ein komplexes Netz mit sagen wir mal 5 Variablen. In der (bisherigen) EV würde ich das gleiche Netz jetzt als 5 Ereignisse programmieren, mit dem Ereigniskopf "Variable A wird gesetzt', dann mit B, C, D und E. Da muß er jetzt aber auch 5-mal checken, ob das Ereignis passiert ist. Viel dürfte er jetzt nicht gewonnen haben. In meinen letzten komplexen Steuerungen habe ich deshalb den (skriptfähigen) Variablen etwas Besonderes mit auf den Weg gegeben. Sie haben ein Flag gezogen, wenn ihr Wert geändert wurde. Also, nicht nur gesetzt, sondern außerdem unterschiedlich zum letzten Inhalt. Das Flag wurde bereits mit dem Skript irgendwo 'angemeldet' (also eine Art Gruppenereignis, Link zur Laufzeit vorhanden) und daraufhin wurde dann auch das o.g. Netz durchgerechnet. Kann Dir das weiter helfen? Gruß Andy p.s.: Warte, die Antwort kannst Du Dir sparen. Ich glaube, ich habe die Funktion Ereignis de/aktivieren gewaltig unterschätzt. Bearbeitet 2. Januar 2019 von Andy p.s.
BahnLand Geschrieben 2. Januar 2019 Geschrieben 2. Januar 2019 (bearbeitet) Hallo Andy, vor 14 Stunden schrieb Andy: beim Ereignis 'Variable wird gesetzt' wird die Bedingung wahr, wenn man im Wert nichts eingibt und die Variable tatsächlich auf einen leeren Eintrag gesetzt wurde. Das ist gut! Aber leider fehlt die Gegenfunktion. Die Gegenfunketion gibt es bereits. Hierzu gehst Du wie folgt vor: Definiere das Ereignis Variable wird gesetzt Name = xyz, Wert = $xyz wenn xyz Deine zu checkende Variable ist. Dann wird das Ereignis immer ausgelöst, wenn diese Variable gesetzt wird - unabhängig von ihrem Wert. Prüfe nun die Bedingung Variable besitzt den Wert Name = xyz, Wert = ohne eine Wertangabe für den Wert (auch kein Leerzeichen! - es wird dann mit <nichts> verglichen). Wenn Du dann noch das Häkchen für das Negieren setzt,hast Du genau die Gegenfunktion, die Du angespriochen hast. Viele Grüße BahnLand Bearbeitet 3. Januar 2019 von BahnLand
Andy Geschrieben 3. Januar 2019 Autor Geschrieben 3. Januar 2019 Hallo @BahnLand, Du faszinierst mich immer wieder. Dagegen bleibe ich immer wieder kleben. Das p.s., das ich oben geschrieben habe, war aufgrund einer Eingebung, die dann doch wieder nicht so göttlich war. Wenn ich da doch wieder hängen bleibe mußt Du mal mit einer PN von mir rechnen. Wahrscheinlich hast Du da auch wieder was in der Trickkiste. Aber ich denke, über den Dreh hier wird sich der Frank auch freuen. Gruß Andy
fzonk Geschrieben 3. Januar 2019 Geschrieben 3. Januar 2019 Hallo Andy und Bahnland, das Thema mit dem „negierten Nichts“ hatten wir auch schon mal an andere Stelle. Diese Funktion ist auch schon auf einer veröffentlichten Anlage (Kleine Anlage mit vollautomatischer Steuerung) von mir zum Einsatz gekommen. Gruß Frank
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen.
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden