PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lösung für HS-Logik Problem gesucht



glenmorangie
11.04.05, 21:48
Hallo HS Experten

Ich habe mir ein HS-internes Objekt geschaffen, welches über eine Logik (Anhang) auf die Werte 0 (Jalo oben), 1 (Jalo unten) und 2 (Jalo auf Beschattung) gesetzt wird. Dieses Objekt steuert den entsprechenden Zustand des Icons. Das funktioniert soweit.

Nun will ich noch den umgekehrten Weg gehen, und durch Klicken dieses Icons durch die oben genannten 3 Zustände zappen, um die Jalousie so zu steuern. Nun geht das ja z.B. durch den Befehl "Liste+" nur bis zum Maximalstand. Wie kriege ich möglichst simpel eine Logik hin (oder gibts einen einfacheren Weg?), welche mir nach der 2 wieder eine 0 beschert (0>1>2>0......)?

Ich bedanke mich schon mal für die zündende Idee :)

Matthias Schmidt
11.04.05, 21:57
Du machst es statt mit Liste mit "Schritt +". Dann noch einen Vergleicher mit deinem internen KO am Eingang, der bei Wert = 3 den Wert auf 0 setzt.

glenmorangie
11.04.05, 22:14
Hallo Matthias
Danke für die superschnelle Antwort! Es funktioniert. Jetzt gucke ich, ob ich ausgehend vom "gezappten" Statuswert die Jalousie-Zustände hingebogen kriege, oder ob das eine "Rückkopplung" gibt...

glenmorangie
16.04.05, 18:15
Die Vorahnung sollte wahr werden. Wenn ich mit dem "geklickten" Status eine Fallprüfung mache und mit Befehlen Jalo hoch / runter (0/1) oder auf Beschattung (2) fahre, gibts eine Endlosschlaufe mit der Logik, welche mir zur Symbolsteuerung den Statuswert ausgibt.

Also baue ich eine Sperre ein, welche nur beim Klicken aufs Symbol aufgehoben wird. Nach dem Setzen (oder gleichzeitig oder vorher?) des Fahrbefehls wird das "Klick-Objekt" wieder auf 0 gesetzt.

Ergebnis: ich kann mich nach wie vor durch 0/1/2 klicken, aber nur 0 und 2 wird ausgeführt. Bei Status "1" bleibt auch das KO "Klick" auf 1 und der Fahrbefehl wird offenbar von der Fallprüfung nicht aufgerufen. Die Befehle habe ich mehrmals kontrolliert; es muss sich um einen systematischen Fehler handeln. Kann mir einer, der nicht "betriebsblind" ist, weiterhelfen?

glenmorangie
20.04.05, 10:49
Hallo HS-Spezialisten? Ist das, was ich da programmieren möchte, mit HS-Logik überhaupt realisierbar, oder bin ich auf dem falschen Weg?

Würde mich freuen, wenn mir jemand auf die Sprünge helfen würde. Mit einer simplen SPS würde ich das hinkriegen - der HS ist mir da etwas fremd :(

Matthias Schmidt
20.04.05, 11:11
Realisierbar ist es auf jeden Fall, behaupte ich einmal :)

Ich habe allerdings die Anforderung noch nicht 100 %ig verstanden. Insbesondere der Auszug aus dem Logikeditor irritiert mich ein wenig ;) : Eine "Gleich-Baustein", bei dem nur ein Eingang belegt ist zum Beispiel.

Definiere doch bitte noch einmal exakt deine Anforderung und besonders auch die Art und Weise, wie du die Jalos ansteuerst (Zeit oder Positionsobjekt).

Wäre doch gelacht, wenn das nicht hinzubekommen wäre!

glenmorangie
20.04.05, 11:54
Hallo Matthias

Das eigentlich Problem ist wohl der Purist:D. In der Visu habe ich ein dynamisches Symbol, welches 3 Zustände anzeigen soll und durch Klicken auch durch diese 3 Zustände schalten soll.

Ich verwende ABB-Jalousie-Aktoren, fahre über GA 2/1/2 (und Zentraladressen) hoch und runter und über GA 2/1/11 (und Zentraladressen) auf Position (Beschattung 45°). Die Schaltbefehle kommen ab Zimmertaster, UP-588 und Helligkeitssensor.

Die diesem Post angehängte Logik macht aus dem letzten eingetroffenen relevanten Telegramm den Status 0 (oben), 1 (unten), 2 (Beschattung). Durch Anklicken des Symbols erhöhe ich den Wert um 1, mit dem Vergleicher (=3) stelle ich zurück auf 0. Das funktioniert; der Status entspricht der Realität und mit Klicken kann ich den Status verändern.

Jetzt soll aber nach einer Statusänderung, welche durch Klicken verursacht wurde, der entsprechende Fahrbefehl ausgelöst werden. Dies wäre mit Vergleicher oder Fallprüfung auch zu machen.

Das beisst sich allerdings, denn wenn auf Grund des Zustandes Status=2 ein Telegramm "1" auf 2/1/2 (beschatten) ausgegeben wird, berechnet die obige Logik wieder neu den Status und das wiederum löst erneut ein Telegramm aus, also Endlosschleife.

PS: die Gleich-Bausteine sind schon doppelt belegt, der zweite Eingang hat jeweils einen Fixwert;)

Matthias Schmidt
20.04.05, 14:55
Verstanden! Und die "1" im vergleicher habe ich nicht gesehen, mit der neuen Version (gelb) ist es besser. Normalerweise würde es genügen, bei Binärwerten, also =1, mit einem Binärauslöser zu arbeiten, das ist übersichtlicher. Aber deine Lösung geht natürlich auch.

Dein Problem ist, dass Du mit dem Status den Aktor setzt und der Aktor wieder den Status, richtig?

Im ersten Nachdenken fällt mir folgendes ein: Trennung der Logik in IST- und SOLL-Zustand, Fahren nur dann, wenn SOLL <> IST.

Ich denke weiter darüber nach....

glenmorangie
20.04.05, 15:06
Dein Problem ist, dass Du mit dem Status den Aktor setzt und der Aktor wieder den Status, richtig?
genau so ist es.

Ich denke weiter darüber nach...
ich auch, danke!

glenmorangie
21.04.05, 17:32
Das Entkoppeln von Soll und Ist hats gebracht! Zusätzlich zum KO "Status" habe ich noch ein KO "Soll" eingesetzt, welchen ich durch Klicken aufs Symbol eins hoch schalte. Über eine Fallprüfung werte ich Zustand 0..2 aus und bei 3 setze ich zurück auf 0. Eine Abfrage, ob zwischen Soll und Ist eine Differenz besteht, brauchts nicht. Der Bediener sieht in der Visu immer den wirklichen Ist-Zustand, weil der auf alle relevanten Telegramme "hört".

Im schlimmsten Fall steht "Soll" auf 1, "Ist" auf 2, der User klickt und die Jalousie fährt erneut die Position Beschattung an. Das ist zwar ein Schönheitsfehler, aber nicht wirklich schlimm. Wenn mich der Ehrgeiz packt (und der Rest erledigt ist), versuche ich auch das noch zu flicken.

@ Matthias: Danke für die Denkanstösse. Durch selber basteln lernt man eh am meisten:)