Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Schleifen durchlauf - Denkfehler?

  1. #1
    Registriert seit
    06.11.2010
    Ort
    Bremen
    Beiträge
    116
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    hänge gerade fest und brauche hilfe.

    Wenn der AKKU gefüllt ist sollen diese Werte in die Dali-Controller geschreiben werden und die Lampen entsprechen angesteuert werden.

    (* Aufbau der ARRAY[0..2]: LampenAdresse, DimmWert, FadeTime *)
    (* Schreibdurchlauf wenn AKKU[0] <> 0 *)

    IF AKKU[0] <> 0 (* AKKU gefüllt dann schreiben *)
    THEN
    Button := FALSE; (* FbDALI Triggern LOW*)
    Profil_BASIS(
    bAddress:= AKKU[0],
    xGroup:= FALSE,
    bDimmLevel:= AKKU[1],
    bFadeTime:= AKKU[2],
    xButton:= Button,
    bModule_750_641:= 1,
    bFeedback=> );
    Button := TRUE; (* FbDALI Triggern das die Werte in die Lampe geschrieben werden HIGH *)
    END_IF;


    (* AKKU wieder auf Null setzten *)

    FOR Zaehler := 0 TO 2 DO
    AKKU[Zaehler]:=0;
    END_FOR;

    (* Warten auf neue Werte im AKKU *)


    Wo ist der Denkfehler?
    Es tut nichts
    Gruss Michael
    -------
    "Um ein tadelloses Mitglied einer Schafherde sein zu können, muß man vor allem ein Schaf sein." Albert Einstein

    http://dailyfratze.de/mac
    Zitieren Zitieren Schleifen durchlauf - Denkfehler?  

  2. #2
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Also wie ich dich verstanden habe muss xButton in deinem FB Profil_Basis auf True gesetzt werden damit die gesetzten Parameter auch an deine Lampen übertragen werden ?!?

    In dem Code-Schnipsel den du gepostet hast passiert das nämlich nie.

    Du setzt Button erst auf False, übergibst diesen Wert an xButton im Aufruf der Instanz und setzt dann Button auf True. Aber du übergibst diesen True dann nicht an xButton......

    Braucht der FB eine Positive Flanke in xButton um die Werte an den Controller zu übertragen? Was genau "Tut sich nicht"? ......

  3. #3
    Registriert seit
    06.11.2010
    Ort
    Bremen
    Beiträge
    116
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo,

    Button := TRUE; kann ich auch an den Anfang setzten. Es tut trotzdem nichts. Die Lampe bleibt unbeeindruckt.
    Frage ist doch ob ich es so in einer IF-THEN einbauen kann?

    Aufgabe ist das ich eine hohe folge von Lampen ( 63 Stück) anstuern muss.
    Diese können nicht in Gruppen zusammen gefasst werden.
    Es kommt fast non Stop zu eine änderung der Helligkeit. Also möchste ich einen Block zum ansteuern benutzten und diesen immer weider mit neuen Daten versorgen. Wenn es zu einer RGB änderung kommt dann kann das 30 Lampen gleichzeitig betreffen.
    Denke um eine zusätzliche RGB Version mit 3 Bausteinen nach ...
    Also AKKU_RED ... AKKU_GREEN ... AKKU_BLUE, wo die Infos zusammen kommen und auch so geschrieben werden.
    Gruss Michael
    -------
    "Um ein tadelloses Mitglied einer Schafherde sein zu können, muß man vor allem ein Schaf sein." Albert Einstein

    http://dailyfratze.de/mac

  4. #4
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von Michael68 Beitrag anzeigen
    Button := TRUE; kann ich auch an den Anfang setzten. Es tut trotzdem nichts. Die Lampe bleibt unbeeindruckt.
    Frage ist doch ob ich es so in einer IF-THEN einbauen kann?
    Nein, siehe MasterOhh.

    Vielleicht geht folgendes:
    In erster Schleife (Akku gefüllt) > Button := True
    In zweiter Schleife (Akku leeren) > Button := False
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  5. #5
    Registriert seit
    11.12.2009
    Beiträge
    2.113
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Wenn du sagst das diese Gruppiert werden, warum nutzt du dann nicht die Dali-Gruppen? Denn genau dafür sind die da!

    Du gruppierst die Lampen, setzt den Eingang Group auf TRUE, und steuerst damit dann die ganze Gruppe an, ohne Schleife, ohne Heckmeck...

    Grüße

    Marcel

  6. #6
    Registriert seit
    06.11.2010
    Ort
    Bremen
    Beiträge
    116
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo,

    ich kann keine Gruppen setzten da die Lampen zu Komplex angesteuert werden und ich mehr als 16 Gruppe hätte.
    Aber auch wenn ich eine gruppe Bilde ist das Problem das gleiche ..
    Gruss Michael
    -------
    "Um ein tadelloses Mitglied einer Schafherde sein zu können, muß man vor allem ein Schaf sein." Albert Einstein

    http://dailyfratze.de/mac

  7. #7
    Registriert seit
    11.12.2009
    Beiträge
    2.113
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Was zum Henker tust du, wenn du bei 64 Lampen > 16 Gruppen bekommst?

    Außerdem wurde schon erkannt, dass dein Ansatz mit dem Button nicht klappen kann.
    Du solltest es anders machen:

    Der Dali-baustein sollte dauerhaft, ohne If-Bedingung (nicht Schleife!) aufgerufen werden, denn er braucht mehrere Zyklen bis er mit dem Dali-Bus kommuniziert hat.
    Wenn etwas im Akku ist, soll der xButton true werden, (er darf nicht anstehen bleiben, weil du dann anfängst zu dimmen, und nicht den Wert anzufahren, dafür braucht es nur einen kurzen Impuls)

    Ich hoffe damit kommst du etwas weiter!

    Grüße

    Marcel

  8. #8
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.476
    Danke
    1.138
    Erhielt 1.238 Danke für 971 Beiträge

    Standard

    Zitat Zitat von Michael68 Beitrag anzeigen

    Aufgabe ist das ich eine hohe folge von Lampen ( 63 Stück) anstuern muss.
    Es kommt fast non Stop zu eine änderung der Helligkeit. Also möchste ich einen Block zum ansteuern benutzten und diesen immer weider mit neuen Daten versorgen. Wenn es zu einer RGB änderung kommt dann kann das 30 Lampen gleichzeitig betreffen.
    Du weisst aber schon, dass Dali verdammt langsam ist?
    30 Lampen ohne Grupen gleichzeitig auf andere RGB-Werte zu setzen wird - meiner Meinung nach - kaum klappen.


    Gruß
    Dieter

  9. #9
    Registriert seit
    06.11.2010
    Ort
    Bremen
    Beiträge
    116
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Frohe Ostern,

    habe das schon unter CFC laufen und bisher kein Problem, bekomme alle DALI unter 2s Geregelt.
    Da ich aber immer nur ein paar Controller in der hellingkeit nachstellen muss ist es Zeitlich kein Problem.


    Aktueller Stand, ist zum Testen - Soll alle Lampen ausschalten bei DimmFactor := 0; und alle einschalten DimmFactor := 100;
    Es wird ständig geschrieben auf den Bus geschrieben.

    Adresse := Adresse + 1;

    IF Adresse = 64
    THEN Adresse := 1;
    END_IF;

    DimmFactor := 0;

    Profil_BASIS(
    bAddress:= Adresse,
    xGroup:= FALSE,
    bDimmLevel:= DimmFactor,
    bFadeTime:= 1,
    xButton:= FALSE,
    bModule_750_641:= 1,
    bFeedback=> );


    Profil_BASIS(
    bAddress:= Adresse,
    xGroup:= FALSE,
    bDimmLevel:= DimmFactor,
    bFadeTime:= 1,
    xButton:= TRUE,
    bModule_750_641:= 1,
    bFeedback=> );


    Das führt sporadisch dazu das ich die Lampen AN oder AUS bekomme - aber das hat wenig System - bekomme es nicht reproduziert.
    Schreibe ich zu schnell?
    Habe auch schon ein TON eingebaut und gewartet, ändert aber nichts.

    Warum mag mich Dali unter ST nicht? :=)

    Nochmal: Unter CFC habe ich kein Problem mit den 63 DALI Controllern. Will es in ST umbauen da die Ansteuerung zu komplex geworden ist und ich mich in Bausteinen verliehre.

    ----- NACHTRAG -----

    Habe noch weiter drauf rum gedacht. Haben ja noch ein FeedBack und siehe da:

    IF Profil_BASIS.bFeedback = 16#00
    THEN
    Adresse := Adresse + 1;

    also nur wenn "Kein Fehler" dnnn geht er zur nächsten Adresse. Es kommt nach >20 Adressen ein
    "03 (Hex) Jobliste im Controller ist voll"
    zurück.

    Das bekomme ich erst mit einem Reset weider weck ... Mummmpf!

    HILFE .... DANKE
    Geändert von Michael68 (09.04.2012 um 03:31 Uhr)
    Gruss Michael
    -------
    "Um ein tadelloses Mitglied einer Schafherde sein zu können, muß man vor allem ein Schaf sein." Albert Einstein

    http://dailyfratze.de/mac

  10. #10
    Registriert seit
    06.11.2010
    Ort
    Bremen
    Beiträge
    116
    Danke
    12
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Habe gerade festgestellt das ich _27_ Adressen schreiben kann ohne das ich eine "03 (Hex) Jobliste im Controller ist voll" bekomme.
    Bei 28 ist das so - wenn eine 03 zurück kommt, bekomme ich denn Dali Controller nicht mehr ohne einen Reset auszuführen zum laufen.

    WARUM?


    IF Profil_BASIS.bFeedback = 16#00
    THEN

    IF Adresse < 27 THEN
    Adresse := Adresse + 1;

    Profil_BASIS(
    bAddress:= Adresse,
    xGroup:= FALSE,
    bDimmLevel:= DimmFactor,
    bFadeTime:= 1,
    xButton:= FALSE,
    bModule_750_641:= 1,
    bFeedback=> );

    Profil_BASIS(
    bAddress:= Adresse,
    xGroup:= FALSE,
    bDimmLevel:= DimmFactor,
    bFadeTime:= 1,
    xButton:= TRUE,
    bModule_750_641:= 1,
    bFeedback=> );

    END_IF;
    END_IF;
    Gruss Michael
    -------
    "Um ein tadelloses Mitglied einer Schafherde sein zu können, muß man vor allem ein Schaf sein." Albert Einstein

    http://dailyfratze.de/mac

Ähnliche Themen

  1. N schleifen im Steuerstromkreis
    Von Praktikus im Forum Schaltschrankbau
    Antworten: 33
    Letzter Beitrag: 26.01.2017, 08:14
  2. Denkfehler oder Fehler in dre Simulation
    Von alb im Forum Programmierstrategien
    Antworten: 4
    Letzter Beitrag: 16.08.2011, 22:09
  3. Wo liegt mein Denkfehler?
    Von rs-plc-aa im Forum Programmierstrategien
    Antworten: 6
    Letzter Beitrag: 13.11.2009, 11:25
  4. Denkfehler bei Übungsbeispiel
    Von MRT im Forum Simatic
    Antworten: 33
    Letzter Beitrag: 05.11.2009, 21:19
  5. Typumwandlung oder Denkfehler
    Von detoto im Forum HMI
    Antworten: 1
    Letzter Beitrag: 08.09.2009, 15:11

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •