Befehl NOSEND und F20RST

Bugreports und Updatewünsche an die Firma contronics
Keine allgemeinen Fragen!

Moderator: Co-Administratoren

Tobbi35
Beiträge: 362
Registriert: 24.03.2007, 19:45

Befehl NOSEND und F20RST

Beitrag von Tobbi35 » 07.04.2008, 18:19

Hallo Leute,
also ich hab ein Problem
und so wie ich das sehe hab ich das erst seit dem letzten update das ich gestern
aufgespielt habe.
Ich steuer über einen 44er Code die Rollos,
und schalte dann die Anzeigen in der FHZ über Nosend.
Bis vorgestern ging es noch ohne Probleme.
Jetzt nach dem update, werden die Rollos angesteuert und kurz danach nochmal
dann beleiben sie wieder stehen, das ganze wiederholt sich noch mal.
Nach dem ich den Befehl Nosend entfernt habe, gingen die Rollos wieder normal.
Jetzt habe ich das Problem, das meine Anzeigen in der FHZ nicht mehr stimmen.
Hier mal ein Beispiel :

Code: Alles auswählen

Wenn Urlaubsschalter = 1 und Uhrzeit = RolloHochEtage2 dann
R2ALL fahren auf "oben"
NOSEND(R2WT)
R2WT fahren auf "oben"
NOSEND(R2WFB)
R2WFB fahren auf "oben"
NOSEND(R2WFH)
R2WFH fahren auf "oben"
NOSEND(R2K)
R2K fahren auf "oben"
NOSEND(R2S)
R2S fahren auf "oben"
endewenn

Falls die Frage aufkommt, warum ich nicht den jeweiligen Einzelcode der Rollos benutze,
dies hab ich gemacht und dabei kam es oft vor das ein Rollo seinen Code nicht empfangen hat.
Das ist mit dem einen 44er Code für alle Rollos deutlich besser geworden.

Gruß Jürgen

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Befehl NOSEND und F20RST

Beitrag von buempi » 07.04.2008, 19:41

Hallo

Vielleicht könnte Herr Krapoth an dieser Stelle mal etwas genauer ausführen, wie die Funktion NOSEND() eigentlich funktioniert. Die Studio-Hilfe gibt da wenig Aufschluss.

Nachdem es - im Gegensatz zu DEAKTIVIEREN() / AKTIVIEREN() - kein YESSEND() gibt, muss NOSEND() irgendwie eine "begrenzte Lebensdauer" haben. Gilt diese "Lebensdauer" für

- Alle Befehle, die vor- und nachher im aktuellen Makro kommen; wenn ja: Bis zum Ende des Makros oder nur bis zum nächsten WARTE()
- Den letzten Befehl im aktuellen Makro
- Den nächsten Befehl im aktuellen Makro (ev. auch erst in einem späteren Durchlauf, wenn im aktuellen nicht gesendet werden muss)
- Den nächsten Befehl, egal, woher er kommt (von irgend einem Makro, oder ev. auch durch Mausklick in der Visualisierung)
- Beeinflusst NOSEND() auch SENDEWERT()
- Wie verhält sich NOSEND() bei "Senden auch bei Zuweisung ohne Änderung"
- Wird das Flag auch gelöscht durch einen Befehl der keine physische Schaltung bewirkt; z.B.

Code: Alles auswählen

wenn Schaltsteckdose eingeschaltet dann
   Schaltsteckdose einschalten
   nosend(Schaltsteckdose)
endewenn
oder erst beim nächsten Befehl der wirklich gesendet werden müsste?

- Nachdem ein Befehl mit NOSEND() unterdrückt wurde (bzw. die "Lebensdauer" von NOSEND() abgelaufen ist), erfolgt eine Zuweisung, die keine Schaltung in der Visualisierung bewirkt: Wird das dann - auch bei ausgeschaltetem "Senden auch bei Zuweisung ohne Änderung" gesendet oder nicht?


Es gibt noch weitere theoretisch denkbare Konstellationen, sodass es fast unmöglich ist, alles selber auszutesten. Man wäre doch nie ganz sicher, was abläuft...

Für mich am transparentestens wäre folgende Lösung:

Alle noch nicht gesendeten oder bis zum nächsten WARTE() bzw. bis zum Makro-Ende dazukommenden Befehle an den entsprechenden Aktor gehen nicht raus (egal ob durch Umschaltung/SENDEWERT()/Senden auch bei Zuweisung ohne Änderung). Nachher ist der Normalzustand wiederhergestellt und Homeputer nimmt an, dass der physische Zustand des Aktors demjenigen in der Visualisierung entspricht.

Ich vermute zwar, dass es so ist. Aber widersprüchliche Äusserungen hier im Forum haben mich verunsichert.

Am saubersten wäre wohl eine Verschachtelung:

Nosend(Schaltsteckdose einschalten)


Viele Grüsse
Bümpi

Tobbi35
Beiträge: 362
Registriert: 24.03.2007, 19:45

Re: Befehl NOSEND und F20RST

Beitrag von Tobbi35 » 07.04.2008, 21:15

Hallo Bümpi,
also ich hab mal in meinem Makro ein Warte("00:01:00")
eingesetzt VOR dem Nosend, da wurden die Aktoren aber nicht mehr umgestellt.
Hmmm aber vielleicht hatte ich einen Fehler im Makro.
Aber eins weiß ich ,mit einer alten Version ging es noch, hmmm leider hab ich die jetzt nicht mehr :-(

Gruß Jürgen

contronics-RK
Beiträge: 954
Registriert: 18.07.2006, 15:58

Re: Befehl NOSEND und F20RST

Beitrag von contronics-RK » 10.04.2008, 15:21

Zur Frage er Gültigkeit von NOSEND, etwas vereinfacht beschrieben:
Alle Makros, die zu einem Zeitintervall ausgeführt werden sollen, werden in eine Ausführungsqueue gestellt, ebenso ale Makros, die aufgrund eines Hardwareempfangs ausgeführt werden müssen.
Wenn bei der Abarbeitung der Ausführungsqueue ein NOSEND für ein Objekt ausgeführt wird, wird dieses "vermerkt" (dabei ist es unerheblich, wie das Sendeflag gesetzt wurde) und in der anschliessenden Sendeprüfung für alle Objekt wird dieses nicht gesendet, das NOSEND-Flag am Ende des Prozesstakts wieder initialsisiert.
Das NOSEND gilt also nicht nur für das aktuelle Makro, sondern einen kompletten Prozesstakt lang. So kann es nicht passieren, dass es vorzeitig rückgesetzt ("überholt") wird von einer Zuweisung mit Wertänderung im gleichen Prozesstakt. SENDEWERT hingegen setzt das Sende-Flag, so dass am Ende des Prozesstakts gesendet wird, auch wenn sich der Wert des Objekts nicht verändert hat.
Mit der Anweisung WARTE wird mindestens einen Prozesstakt lang gewartet, so dass ein vorher gesetztes NOSEND keine Auswirkungen mehr hat, es gilt in der Praxis eigentlich immer nur für die letzte Anweisung, die eine Sendung iniitiert hat (sonst würde das Senden ja dauerhaft verhindert, das wäre falsch). Wenn SENDEWERT und NOSEND hintereinander ausgeführt werden, ist die zuletzt ausgeführte Anweisung massgeblich.

Ich hoffe es ist einigermassen verständlich beschrieben und hilft weiter.
Mit freundlichem Gruss
CL-control - Ralph Krapoth
http://www.cl-control.de
Bei Fragen bitte keine PMs, sondern mail an technik@cl-control.de
PMs werden nicht regelmässig kontrolliert und und können unbeantwortet bleiben.

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Befehl NOSEND und F20RST

Beitrag von buempi » 10.04.2008, 17:15

Hallo Herr Krapoth

Ja, ich glaube, ich habe es jetzt verstanden:

Es spielt also keine Rolle, ob das NOSEND() im Makro vor oder nach der Anweisung steht, die nicht gesendet werden soll. Auch wenn im gleichen Prozesstakt zufällig noch von einem anderen Makro Sende-Anweisungen an das betreffende Objekt kämen, würden diese nicht gesendet.

Schon im nächsten Prozesstakt ist aber der Normalzustand wieder hergestellt, selbst wenn das NOSEND() gar nicht zum Tragen kam, weil es nichts zu senden gab.

Ich kann mir jetzt auch vorstellen, warum es bei der Rollladensteuerung Probleme gibt (habe selber keine solche). Da werden ja wohl immer zwei oder (bei Zwischenstellungen) mehrere Sendebefehle generiert; und das NOSEND() unterdrückt dann nur den ersten?

Viele Grüsse und besten Dank für ihre Mühe
Bümpi

Tobbi35
Beiträge: 362
Registriert: 24.03.2007, 19:45

Re: Befehl NOSEND und F20RST

Beitrag von Tobbi35 » 10.04.2008, 19:35

Hallo zusammen,
da bin ich ja froh, das wenigstens du Bümpi das verstanden hast,
also deine Erklärung zu meinen Rollos würde ich so voll unterschreiben.
Ich denke auch das da wohl mehrmal was gesendet wird und mein Nosend blockt nur einmal.
Was ich aber immer noch nicht verstehe, ich habe es über Monate am laufen gehabt und erst seit
dem Update habe ich das Problem. Somit muß ja irgend was anders geworden sein.
Wenn das so nicht mehr geht , dann wäre es schön wie man es denn lösen kann.
Eine andere Möglichkeit die Anzeige gleich mit dem Zustand zu bekommen OHNE einen Befehl zu senden
gibt es demnach nicht . Was ich mich da frage bin ich der einzige der einen 44er Code benutz ?

Gruß Jürgen

tsa
Beiträge: 725
Registriert: 03.01.2008, 17:42
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Befehl NOSEND und F20RST

Beitrag von tsa » 10.04.2008, 21:29

...endlich habe ich NOSEND auch verstanden.

Die FS20RST-Objekte senden im Gegensatz zu den FS20MS wirklich zwei Befehle, egal, ob Du einen "44'er Code" oder "Einzelcode" verwendest.
Bei den FS20MS würde das aber bei Zwischenstellungen trozdem auch passieren, da dort auch zwei Befehle gesendet werden (1. ganz hoch, 2. Zwischenstellung).

Naja wie dem auch sei, wenn es wirklich vorher ging, hast Du irgend etwas geändert.
Ich glaube eigentlich nicht, dass es an der Studio-Software liegt (oder es wurde die Funktionsweise der RST-Objekte geändert: in der alten Version wurde die Zeit mitgeschickt? und in der neuen nicht?) Beim doppelten Senden von Befehlen mit Zeitangabe hält eine Rolladensteuerung nämlich nicht an, wie es beim doppelten Senden von Befehlen ohne Zeitangabe der Fall ist! Die RST kann zwar die Zeitangabe nicht verarbeiten, weswegen sie einen zweiten Befehl zum Ausschalten bekommen muss, aber wenn dem so wäre, ist das die Ursache. Herr Krapoth, könnte diese Änderung vorgenommen worden sein?
Das würde auch die Sache mit der erhöhten Zuverlässigkeit erklären. Denn das 44'er Codes besser "durchkommen" als andere, kann ich nicht recht glauben.
Wenn aber vorher der Befehl mit Zeitangabe genutzt wurde, haben Deine RST's immer zwei Startbefehle erhalten (eine vom Einzelcode und eine vom 44'er) und dass mindestens einer von beiden durchkam ist eben wahrscheinlicher...

Wenn diese Änderung allerdings nicht vorgenommen wurde, stellen sich mir folgende Fragen:
- hattest Du vorher die Einzelcodes den RST's vielleicht nicht angelernt, waren nur die 44'er Codes angelernt?
- hast Du das Anlernen vielleicht nachgeholt oder wiederholt, und erst seitdem geht es nicht mehr?
- brauchst Du die Einzelcodes überhaupt (steuerst Du die Rollläden auch einzeln an)?
- haben vielleicht vorher die Adresszuordnungen in Deinen RST-Objekten nicht gestimmt, hast Du da etwas korrigiert?

Ohne einen dieser Punkte glaube ich Dir nicht, dass es vorher ging 8)

Ein paar Ideen hätte ich, wie man das Problem über Umwege lösen könnte, aber dazu später.

Jetzt erst mal allen ein schönes Wochenende :lol:
Gruss
Thomas

NACHTRAG: (habe den anderen Thread gelesen) Liste hier im Forum doch mal alle Rollladenobjekte und ihre in der Software eingetragenen zugeordneten Adressen auf, besonders die der Tür!!!
Zuletzt geändert von tsa am 10.04.2008, 21:55, insgesamt 1-mal geändert.

Tobbi35
Beiträge: 362
Registriert: 24.03.2007, 19:45

Re: Befehl NOSEND und F20RST

Beitrag von Tobbi35 » 10.04.2008, 21:46

Hallo Thomas,
wenn ich am WE dazu komme, spiele ich noch mal die alte Version auf. Also die Software.
Dann werde ich noch mal meine Rollos laufen lassen, wenn sie dann "normal " gehen, können wir
noch mal weiter sehen,an der Steuerung von den Rollos hab ich nix geändert. Ich sags aber gerne noch mal
es hat Monatelang geklappt.Wenn ich heute das laufen lasse, dann gehen die Rollos runter, halten nach einer kurzen Zeot wieder an, und nach einer Weile das ganze noch zweimal.An den Rollos wurde auch nix geändert,
alle haben einen einzelen Code und jede hat den gleichen 44er Code.
So nun lass mich erst mal testen :-) :lol:

Gruß und danke das du dir auch Gedanken machen willst wie man das Problem lössen kann.
Achso noch was,also ich habe 11 Rollos die gesteuert werden, erst habe ich sie alle über ihren EInzelcode
gesteuert und immer wieder war eine die nicht wollte. Ich hab auch Pausen zwischen den Sendungen eingelegt
auch das hat nix gebracht.

Grüsse Jürgen
PS: Das Forum ist Klasse, ich bin froh das ich nicht der einzige Spinner bin ,der mit einer FHZ rumspielt :mrgreen:

contronics-RK
Beiträge: 954
Registriert: 18.07.2006, 15:58

Re: Befehl NOSEND und F20RST

Beitrag von contronics-RK » 11.04.2008, 08:46

@Buempi
Richtig, beim Einstellen der Rollladen auf Zwischenstellung verhindert NOSEND nur den ersten Rollladen-Befehl, das wäre in dem Fall die Justage-Fahrt nach oben

@tsa
An den Rollladenfunktionen wurde nichts verändert

Kurz noch zur Erläuterung (tsa hat es schon richtig beschrieben):
das MST-Modul bekommt in einer Meldung auch die Laufzeit mit (für Zwischenstellung beim Lauf von oben), das RST-Modul kann eine Meldung mit Laufzeit nicht verstehen, bekommt daher eine seperate Stop-Meldung. Bei einer Zwischenstellung wird zur Justage immer erst für die Gesamtlaufzeit nach oben gefahren. Bei Zwischenstellungen führt also SENDEWERT nach einer WARTE-Anweisung zu Problemen.
Wenn eine Rollladensteuerung einen zweiten Fahrtbefehl in dieselbe Richtung bekommt, stoppt diese.

Diese Mehrfachfahrten liegen wahrscheinlich an mehrfacher Makroausführung oder auch der SENDEWERT-Anweisung nach einem warten (sind da vielleicht noch warte-Reste aus der Zeit vor der Verwendung des 44-Codes?) oder wie tsa vermutet durch Senden des normalen und des 44-Codes.
Grundsätzlich ist es eigentlich übersichtlicher die Rolladen einzeln fahren zu lassen. Ggfs. mit einem kurzen WARTE und SENDEWERT-Wiederholung (geht natürlich nicht bei Zwischenstellungen). Die höchste uns bekannte Anzahl Rollladen,die so gesteuert werden sind 72 (in Worten zweiundsiebzig) in einem Bürogebäude in der Schweiz (mit WLAN-FHZs). Und es funktioniert...
Mit freundlichem Gruss
CL-control - Ralph Krapoth
http://www.cl-control.de
Bei Fragen bitte keine PMs, sondern mail an technik@cl-control.de
PMs werden nicht regelmässig kontrolliert und und können unbeantwortet bleiben.

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Befehl NOSEND und F20RST

Beitrag von buempi » 11.04.2008, 10:47

Hallo Jürgen
Tobbi35 hat geschrieben:Wenn ich heute das laufen lasse, dann gehen die Rollos runter, halten nach einer kurzen Zeot wieder an, und nach einer Weile das ganze noch zweimal.
... das ganze noch zweimal = insgesamt dreimal? Das würde bedeuten, dass die Rollos 6 Signale bekommen. Das ist mit dem obigen Makro schlichtweg unmöglich, selbst wenn NOSEND() nicht funktionieren würde.

Da hast du uns einen Teil vom Makro "unterschlagen", wo die gleichen Rollos nochmals angesprochen werden (entweder über SENDEWERT() oder über "Senden auch bei Zuweisung ohne Änderung"). Oder sie werden von einem anderen Makro auf diese Weise angesteuert?

Überprüfe das doch mal...denn das Zurückspielen der alten Homeputer-Version würde nach den von Herrn Krapoth gemachten Angaben kaum zum Erfolg führen, weil an den Rollladenfunktionen ja nichts geändert wurde.

Viele Grüsse
Bümpi

Antworten

Zurück zu „homeputer Studio / Standard: Bugs & Updatewünsche“