Willkommen auf unserer neuen Forenplattform für das Bus-Profi Forum

Neue Felder für die persönlichen Daten
Man kann jetzt seine öffentlich einsehbare Daten genau bestimmen. Details findet ihr in in diesem Beitrag.

Durch die neue Forensoftware und die Portierung der Daten konnten die Passwörter aus dem alten Forum nicht übernommen werden, bitte lassen Sie sich ein neues Passwort über die Passwort vergessen Funktion zusenden. Sollte es zu Problemen kommen kontaktieren Sie das Bus-Profi Team per E-Mail.

BMI Programmierung


Themenersteller
tk
Fingerwundschreiber
Fingerwundschreiber
Beiträge: 122
Registriert: Mi 9. Dez 2009, 13:28
Danksagung erhalten: 1 Mal

#1 BMI Programmierung

Beitragvon tk » Mo 17. Okt 2011, 15:45

Hallo zusammen,

ich habe da ein Problem mit meinem Bewegungsmelder im Gäste-WC:
Irgenwie geht das Licht immer mal wieder aus. Allerdings nicht reproduzierbar.

Woran merke ich das?
1. Meine Frau kommt genervt vom Klo
2. Mein Tochter (3 Jahre) ruft vom Klo: "Huch, das Licht ist aus!".

Ich habe das Ganze wie Folgt programmiert:

Code: Alles auswählen

+--+-------+-------+-------------------+--------------------------+
| 1|B4 lang|       |                   |                          |
+--+-------+-------+-------------------+--------------------------+
| 2|       |D8 lang|                   |                          |
+--+-------+-------+-------------------+--------------------------+
| 3|       |       |C7 lang            |                          |
+--+-------+-------+-------------------+--------------------------+
| 4|       |       |                   |A1: EIN / Rampe: 1 Sek.   | Licht ein
+--+-------+-------+-------------------+--------------------------+
| 5|       |       |                   |Sperre Taste A1 für 2 sek.| Taster für A1 sperren
+--+-------+-------+-------------------+--------------------------+
| 6|       |       |D Tasten-Timer stop|                          |
+--+-------+-------+-------------------+--------------------------+
| 7|       |C8 lang|                   |                          |
+--+-------+-------+-------------------+--------------------------+
| 8|       |       |M205: A8 lang      |                          |--> auf Modul 205
+--+-------+-------+-------------------+--------------------------+
| 9|       |       |                   |R4 für 240 Sek.           | Zirkulationspumpe
+--+-------+-------+-------------------+--------------------------+
|10|       |       |M205: A8 in 1 s    |                          |--> auf Modul 205
+--+-------+-------+-------------------+--------------------------+
|11|       |       |                   |Sperre A8 für 30 min.     | Pumpe soll maximal alle 30 Min. laufen.
+--+-------+-------+-------------------+--------------------------+
|12|B4 los |       |                   |                          |
+--+-------+-------+-------------------+--------------------------+
|13|       |D8 los |                   |                          |
+--+-------+-------+-------------------+--------------------------+
|14|       |       |sende D8 in 45 sek.|                          |
+--+-------+-------+-------------------+--------------------------+
|15|       |       |                   |A1: AUS / Rampe: 1 Sek.   | Licht aus
+--+-------+-------+-------------------+--------------------------+


("B4 lang" ruft "D8 lang" und "C8 lang", "D8 lang" ruft "C7 lang" und "Timer Tabelle D stop", ...)

Ich habe den Verdacht, dass dies an "überholern" im Bus liegt. Hier ein Auszug aus meinem Protokoll (per LinHK gezogen).
Die Kommandos habe ich durch "X"e und Kommentare ersetzt, da ich die hier ja nicht posten darf:

Code: Alles auswählen

[20111016 15:56:28.599923]  >M000012.xxxxxxxxxxxxxx M012      # Taste D8 lang -> C7 lang ; Timer D stoppen
[20111016 15:56:28.623255]  >M000012.xxxxxxxxxxxxxx M012      # Taste C8 lang -> Ziel: M000205 (Zirkulationspumpe)
[20111016 15:56:28.660282]  :M000012xxxxx G004                # Meldung: BMI auf B4 ein
[20111016 15:56:28.763626]  >M000012.xxxxxxxxxxxxxx M012      # Taste D8 los -> D8 kurz in 45 sek
[20111016 15:56:28.801525]  >M000012.xxxxxxxxxxxxxx M012      # taste C7 lang -> Ausgang 1 EIN; Sperren A1 für 2 sek.
[20111016 15:56:28.900270]  >M000012.xxxxxxxxxxxxxxx M012     # Sende Tabelle D  Taste 1-8 in 0 sek. (--> Timer stop)
[20111016 15:56:29.100718]  >M000012.xxxxxxxxxxxxxx M012      # Taste D8 lang -> C7 lang ; Timer D stoppen
[20111016 15:56:29.201453]  >M000012.xxxxxxxxxxxxxx M012      # Taste C8 lang -> Ziel: M000205 (Zirkulationspumpe)
[20111016 15:56:29.400941]  >M000012.xxxxxxxxxx M012          # A1 100% in 004 (1 sek?!)
[20111016 15:56:29.601419]  >M000012.xxxxxxxxxxxxxxxx M012    # Sperre Taste A1 für 2 sek.
[20111016 15:56:30.001330]  >M000012.xxxxxxxxxxxxxx M012      # taste C7 lang -> Ausgang 1 EIN; Sperren A1 für 2 sek.
[20111016 15:56:30.200819]  >M000012.xxxxxxxxxxxxxxx M012     # Sende Tabelle D  Taste 1-8 in 0 sek. (--> Timer stop)
[20111016 15:56:30.401259]  >M000012.xxxxxxxxxxxxxxxx >M012          # A1 100% in 004 (1 sek?!)
[20111016 15:56:30.501012]  >M000012.xxxxxxxxxxxxxxxx M012    # Sperre Taste A1 für 2 sek.
[20111016 15:56:30.701462]  >M000012.xxxxxxxxxxxxxxx M012     # D8 in 45 sek
[20111016 15:56:31.081448]  :M000012xxxxx G004                # Meldung: BMI auf B4 ein
[20111016 15:57:15.698007]  >M000012.xxxxxxxxxx M012          # A1 000% in 004 (1 sek?!)         
[20111016 15:57:17.085367]  :M000012xxxxx G004                # Meldung: A1 auf 000%



Wenn ich das richtig interpretiere wird hier um 15:56:30.200819 das Kommando 6 (Tabelle D Timer stop) vor Kommando 14 (D8 in 45 sek) um 15:56:30.701462 überholt.
Kann das sein?

Was kann ich dagagen machen?

Danke,
Thorsten

Benutzeravatar

Uwe
(†)
Beiträge: 14250
Registriert: So 26. Mai 2002, 23:10
Hat sich bedankt: 13 Mal
Danksagung erhalten: 56 Mal

#2 RE: BMI Programmierung

Beitragvon Uwe » Mo 17. Okt 2011, 18:06

Moin Thorsten,
jedes Modul sendet pro Sekunde maximal 5 Kommandos.
Wenn du einen solchen "Schwall" auslöst, kann im ungüstigsten Fall auch mal ein Kommando untergehen.
Du wirst also das senden der Tasten etwas "entzerren" müssen - notfalls mit 'sende Taste in 1 Sek.' auf den nächsten 'Intervall' verschoben.
Du kannst aber auch Tasten in/aus einem anderen Modul senden, dann können auch von dort wieder bis zu 5 Kommandos kommen (der Bus kann ja viel mehr).

Grüße, Uwe
----------------o00o----'(_)'----o00o---------------------

Benutzeravatar

Niko
Moderator
Moderator
Beiträge: 2261
Registriert: Di 7. Aug 2007, 17:37
Danksagung erhalten: 5 Mal

#3 RE: BMI Programmierung

Beitragvon Niko » Mo 17. Okt 2011, 18:12

tk hat geschrieben:Ich habe den Verdacht, dass dies an "überholern" im Bus liegt.
Überholen geht nicht, die Datenader ist einspurig :P . Aber im Modul gab es einen Vordrängler, insofern ist Deine Vermutung schon nah dran.

[zitat]Hier ein Auszug aus meinem Protokoll (per LinHK gezogen).
Die Kommandos habe ich durch "X"e und Kommentare ersetzt, da ich die hier ja nicht posten darf:[/zitat]Ein PRO-Protokoll wäre für die Allgemeinheit (die PCK nicht fließend sprechen oder gar kein LinHK einsetzen) leichter verständlich, aber vermutlich lief die PRO dann gerade nicht. Wie eigentlich immer, wenn W ein Fehler auffällt. :lol:

[zitat]Wenn ich das richtig interpretiere wird hier um 15:56:30.200819 das Kommando 6 (Tabelle D Timer stop) vor Kommando 14 (D8 in 45 sek) um 15:56:30.701462 überholt.
Kann das sein?[/zitat]Ja, weil hier dem BMI gewissermaßen "geprellt" hat. Aus irgendwelchen Gründen hat der BMI hier sehr kurz hintereinander LANG - LOS - LANG ausgelöst. Da Du insbesondere beim LANG sehr viele Kommandos hast, dauert die Abarbeitung schon mal etwas (Faustregel: ein Modul "schafft" fünf Telegramme pro Sekunde). Wenn dann die Kommandos ungünstig gewählt sind, kommt es hier schon mal zu einem "Überholen", so dass Dein D8 LOS als letztes ausgeführt wird -- 45 Sekunden später wird es dunkel.

[zitat]Was kann ich dagagen machen?[/zitat]Die Frage wäre zunächst, ob man hier etwas zeitlich entzerren kann. Die Zirkulationspumpe kann man vielleicht auch über das Statuskommando des Ausgangs schalten. Aber in jedem Falle, sollte man das wichtigste zuerst machen. Und was ist bei einem B4 LANG das wichtigste? Dass das Licht nicht ausgeht. Also muss das Stoppen des Tasten-Timers mindestens auf der gleichen "Ebene" erfolgen, wie das "Sende-Taste-verzögert".

Ein Vorschlag für D8 LANG:
Erstbelegung: D Tasten-Timer stoppen
Zweitbelegung: Tasten C7 und C8 LANG aufrufen (geht mit einem Kommando)

Schöne Grüße
Niko, der sicher auch noch ein paar solcher "Bugs" in der Parametrierung hat (aber wenigstens bei den BMIs sind sie weg)


Themenersteller
tk
Fingerwundschreiber
Fingerwundschreiber
Beiträge: 122
Registriert: Mi 9. Dez 2009, 13:28
Danksagung erhalten: 1 Mal

#4 RE: BMI Programmierung

Beitragvon tk » Mo 17. Okt 2011, 21:40

Hallo,

Uwe hat geschrieben:jedes Modul sendet pro Sekunde maximal 5 Kommandos.


ach so, das erklärt einiges...

Niko hat geschrieben:Ein Vorschlag für D8 LANG:
Erstbelegung: D Tasten-Timer stoppen
Zweitbelegung: Tasten C7 und C8 LANG aufrufen (geht mit einem Kommando)


ja, ich habe da mal bei einem Bierchen optimiert:

Code: Alles auswählen

+--+-------+-------------------+--------------------------+
| 1|B4 lang|                   |                          |
+--+-------+-------------------+--------------------------+
| 2|       |C8 lang ; D8 lang  |                          |
+--+-------+-------------------+--------------------------+
| 3|       |                   |A1: EIN / Rampe: 1 Sek.   | Licht ein
+--+-------+-------------------+--------------------------+
| 4|       |                   |205: C8 lang              | Zirkulationspumpe
+--+-------+-------------------+--------------------------+
| 5|       |                   |Sperre Taste A1 für 2 sek.| Taster für A1 sperren
+--+-------+-------------------+--------------------------+
| 6|       |D Tasten-Timer stop|                          |
+--+-------+-------------------+--------------------------+
| 7|B4 los |                   |                          |
+--+-------+-------------------+--------------------------+
| 8|       |sende D8 in 45 sek.|                          |
+--+-------+-------------------+--------------------------+
| 9|       |                   |A1: AUS / Rampe: 1 Sek.   | Licht aus
+--+-------+-------------------+--------------------------+


Mal sehen, ob es besser wird. Ich werde bei Gelegenheit mal berichten.

Danke für die schnellen Antworten.

Gruß,
Thorsten


Themenersteller
tk
Fingerwundschreiber
Fingerwundschreiber
Beiträge: 122
Registriert: Mi 9. Dez 2009, 13:28
Danksagung erhalten: 1 Mal

#5 RE: BMI Programmierung

Beitragvon tk » Di 5. Feb 2013, 12:29

Hi,

tk hat geschrieben:Mal sehen, ob es besser wird. Ich werde bei Gelegenheit mal berichten.


die Gelegenheit ist da:
Fuktioniert alles super :thumbup:

Gruß,
Thorsten


Zurück zu „Programmierfragen“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste