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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Lauflicht für 32 LED´s erstellen - brauche Hilfe

  1. #11
    Registriert seit
    25.06.2008
    Ort
    Blomberg/Lippe
    Beiträge
    1.293
    Danke
    51
    Erhielt 130 Danke für 124 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Also ich würde die Ausgänge als DWORD nehmen, dann einen Zähler, der zählt dann aber nur bis 32. Und dann mit dem Zählwert das entsprechende Bit setzen mit Hilfe einer Maske.
    Gruß
    Mobi


    „Das Einfache kompliziert zu machen ist alltäglich. Das Komplizierte einfach zu machen –
    das ist Kreativität“ (Charles Mingus).

  2. #12
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Zitat Zitat von LeTobi Beitrag anzeigen
    Code:
    fb_lauflicht_Timer1(IN:=gbi_Schalter_Lauflicht AND NOT lfb_lauflicht_aus_Timer4.Q , PT:=t#700ms , Q=> , ET=> );
    lfb_lauflicht_Timer2(IN:=lfb_lauflicht_aus_Timer1.Q , PT:=t#700ms , Q=> , ET=> );
    lfb_lauflicht_Timer3(IN:=lfb_lauflicht_aus_Timer2.Q , PT:=t#700ms , Q=> , ET=> );
    lfb_lauflicht_Timer4(IN:=lfb_lauflicht_aus_Timer3.Q , PT:=t#700ms , Q=> , ET=> );
    
    lfb_lauflicht_aus_Timer1(IN:=lfb_lauflicht_Timer1.Q , PT:=t#700ms , Q=> , ET=> );
    lfb_lauflicht_aus_Timer2(IN:=lfb_lauflicht_Timer2.Q , PT:=t#700ms , Q=> , ET=> );
    lfb_lauflicht_aus_Timer3(IN:=lfb_lauflicht_Timer3.Q , PT:=t#700ms , Q=> , ET=> );
    lfb_lauflicht_aus_Timer4(IN:=lfb_lauflicht_Timer4.Q , PT:=t#700ms , Q=> , ET=> );
    
    
    gbo_Lampe1 := lfb_Lauflicht_Timer1.q (* AND NOT lfb_Lauflicht_aus_Timer1.q*);
    gbo_Lampe2 := lfb_Lauflicht_Timer2.q (*AND NOT lfb_Lauflicht_aus_Timer2.q*);
    gbo_Lampe3 := lfb_Lauflicht_Timer3.q (*AND NOT lfb_Lauflicht_aus_Timer3.q*);
    gbo_Lampe4 := lfb_Lauflicht_Timer4.q (*AND NOT lfb_Lauflicht_aus_Timer4.q*);
    könntest du mir das nochmal genauer erklären wie das du vorher gemeint hast?
    Klar ... ich weiß jetzt nur nicht, was du genau meinst ...
    Warum hast du in deinem Code das von mir rot markierte auskommentiert ? Aus meiner Sicht müßte das die Lampen richtig agieren lassen.
    Was passiert denn jetzt genau bei dir ?

    @Mobi:
    Das mit dem DWord hatten wir schon (in einem anderen Thread).
    Das hat der TE zunächst nicht verstanden. Deshalb wollte ich jetzt erstmal seinen eigenen Ansatz zum Laufen bringen - und dann, wie ich schon geschrieben habe, zu einer Resourcen-schonenden Variante wechseln.

    Gruß
    Larry

  3. #13
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Meine Erfahrung: die meisten SPS-Programme programmieren sich quasi "von selbst", wenn man eine klare Aufgabenstellung formuliert - dann muß die Aufgabenstellung einfach nur noch in Programmcode übersetzt werden. Das ist dann vielleicht nicht die Ressourcen-optimalste tricky-Variante, doch man kommt schnell zu einem allgemein verständlichen Programmm.

    Weil LeTobi gerade einen extrem umständlichen Ansatz verfolgt, möchte ich einen anderen einfacheren Lösungsweg vorschlagen.

    Aufgabe "Lauflicht"
    Man hat eine Lampenkette mit 32 Lampen.
    Es soll immer nur 1 Lampe leuchten, zuerst die Erste, dann die Zweite, dann die Dritte... nach der letzten Lampe soll das Ganze wieder von vorne wiederholt werden. Das sind 32 verschiedene Zustände.
    Von einem Zustand zum nächsten soll im gleichbleibenden Takt (z.B. alle 700ms) weitergeschaltet werden.

    Was brauchen wir nun?
    • einen Taktgenerator, der alle 700ms einen Weiterschalt-Impuls liefert
      --> z.B. ein TON, welcher sich bei Ablauf selbst rücksetzt
      TON_Takt(IN:=NOT bIncPulse, PT:=T#700ms, Q=>bIncPulse)
    • eine Variable, wo drin steht, in welchem der 32 Zustände sich die Lampenkette befindet.
      Bei jedem Weiterschalt-Impuls wird der Zustand in der Variable zum nächsten Zustand weitergeschaltet: 1 - 2 - 3 - 4 - ... 31 - 32 - 1 - 2 - ...
      --> dafür bietet sich ein Zähler an (einfach den Wert der Variable um 1 erhöhen oder fertigen Zählerbaustein benutzen)
      Ist der Zustand (Zählerstand) in der Variable größer als der höchste benötigte Zustand (> 32), dann soll die Variable auf den ersten Zustand gesetzt werden (für Fehlerprüfung und automatisch wiederholen)
      IF bIncPulse THEN iCount := iCount + 1
      IF iCount > 32 OR iCount < 1 THEN iCount := 1
    • für jede Lampe eine Anweisung, in welchem Zustand (Zählerstand) die Lampe leuchten soll
      --> Lampe(x) leuchtet bei Zustand = x
      (dazu nicht mit IF..THEN arbeiten, sondern mit einer Zuweisung!)
      Lampe1 := iCount = 1
      Lampe2 := iCount = 2
      ...
      Lampe32 := iCount = 32


    Ggf. Verbessern oder Anpassen:
    - statt der Zustände 1..32 mit 0..31 arbeiten, das vereinfacht das Programm (vor allem falls mit einem Zählerbaustein CTU gearbeitet wird). Auch kann man dann MOD statt IF für die automatische Überlauf-Weiterschaltung benutzen.
    - braucht man mehr oder weniger Lampen, so ist nur eine Anpassung bei der Überlaufprüfungung nötig.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    LeTobi (02.12.2013)

  5. #14
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    990
    Danke
    115
    Erhielt 125 Danke für 100 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Meine Erfahrung: die meisten SPS-Programme programmieren sich quasi "von selbst", wenn man eine klare Aufgabenstellung formuliert - dann muß die Aufgabenstellung einfach nur noch in Programmcode übersetzt werden. Das ist dann vielleicht nicht die Ressourcen-optimalste tricky-Variante, doch man kommt schnell zu einem allgemein verständlichen Programmm.

    Weil LeTobi gerade einen extrem umständlichen Ansatz verfolgt, möchte ich einen anderen einfacheren Lösungsweg vorschlagen.

    Harald
    Das ist aber nicht nett
    Larry wollte den TE doch zu einer funktionierenden Lösung nach seinem eigenen Ansatz verhelfen
    Und du präsentierst eine (Fast) fertige Lösung.

  6. #15
    Registriert seit
    15.04.2013
    Ort
    78713 Schramberg
    Beiträge
    9
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    OHO Danke allerseits, den Beitrag von PN/DP ( Harald - trotzdem danke sehr ich werde drauf zurück kommen) werde ich erstmal überlesen^^ werde mich heute abend nochmal an den Ansatz von Larry setzen.

    ( PS.: sry habe auf der Arbeit nen anderen Acc daher nicht LeTobi. Die brauchen meine privaten Passwörter un Nutzernamen net wissen^^)

    Grüße
    Geändert von ToLe@CS (02.12.2013 um 08:17 Uhr)

  7. #16
    LeTobi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.11.2013
    Ort
    78713 Schramberg
    Beiträge
    8
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    so OK, ich musste PN/DP´s (Harald´s) Lösung nun doch mal ausprobieren da sie so einfach aussah^^
    Und Ja es funktioniert. Sauber ! Danke PN/DP !

    Dennoch möchte ich mich nochmal Larry´s Lösungsweg widmen.
    @ Larry: ich hatte das was du rot markiert hattest ausgeklammert. da sonst ünerhaupt nichts geleuchtet hat.
    Ich glaube ich habe die Timer und die aus_Timer nicht richtig verknüpft, sprich IN und Q zugewiesen. Das habe ich noch nicht verstanden.

    Achso.. und danke für die Mühe die sich hier bisher jeder für mich macht.
    Ich bin blutiger Anfänger im thema SPS...hatte nur in der Schule wärend der Ausbildung etwas S7 und jetzt bin ich da ich es beruflich gut gebrauchen kann dabei mich in die Beckhoff ST-Programmierung einzuarbeiten. Hatte auch schon einen 1-Wöchigen Grundkurs bei der Firma Beckhoff und versuche jetzt halt mich selber und auf Arbeit wenn Zeit, weiter zu bilden, sodass ich auf der Arbeit irgendwann meinen Chef unterstützen kann und auch mehr Projekte alleine machen kann.
    So das war ein kleiner Einblick in meine Hintergünde^^

Ähnliche Themen

  1. 18-Kanal LED Lauflicht ohne IC
    Von E-Michl im Forum Elektronik
    Antworten: 8
    Letzter Beitrag: 02.01.2013, 15:41
  2. Brauche Hilfe für Antriebssteuerung eines 3-Achs-Systems
    Von MS7315 im Forum Antriebstechnik
    Antworten: 0
    Letzter Beitrag: 22.09.2012, 13:17
  3. Hilfe Schaltung für LED ... Dringend
    Von Rollroll im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 25.07.2011, 17:17
  4. Brauche Hilfe! Programmiersprachen für Basissoftware einer sps
    Von fun4you1974 im Forum Sonstige Steuerungen
    Antworten: 10
    Letzter Beitrag: 14.07.2006, 10:55
  5. Brauche Hilfe für Moeller CPU W EBE223.2
    Von Stromtom im Forum Sonstige Steuerungen
    Antworten: 5
    Letzter Beitrag: 26.02.2006, 17:59

Stichworte

Lesezeichen

Berechtigungen

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