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

Ergebnis 1 bis 9 von 9

Thema: Probleme beim schreiben eines Programmes

  1. #1
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich versuchs nochmal mit nem neuen Thema


    Hallo Leute.

    Ich hab hier mal ne AWL geschrieben bei der, wenn ich den Taster (Eingangsbit 0.0) gedrückt halte, 5 Lampen (A 1.0 -1.4) nacheinander im 1s Takt aufleuchten, bis ich den Taster wieder loslasse. Dann blinkt die Lampe die zuletzt geleuchtet hat.


    U T 11
    SPBN N016

    UN M 55.6
    = M 55.6

    N016 :NOP 0
    U T 11
    U E 0.0
    SPBN N013

    L 1
    L MB 20
    >I
    SPB N014

    L MB 20
    SLW 1
    T MB 20

    N013 :NOP 0

    L 16
    L MB 20
    <I
    SPBN N012

    N014 :L 1
    T MB 20

    N012 :NOP 0
    UN E 0.0
    U M 55.6
    SPBN N017
    L 0
    N017 :NOP 0

    T AB 1

    UN T 11
    L S5T#1S
    SE T 11


    Nun soll aber , wenn ich den Taster wieder betätige und der Kreislauf weitergeht, die Lampe die schon geblinkt hat nicht mehr in dem Kreislauf aufleuchten. Wenn dann alle Lampen schon an waren, soll es wieder von vorne anfangen. Da ich grad die S 7 lerne, wollte ich das auch mit den WORT-Verknüpfungen lösen (UW, OW und so)
    kann mir da jemand helfen?
    Ich schreib in der WinSPS-S7 V3.31 und habe keine Visualisierung nur das AG-Maske Fenster, in der ich dann halt EB 0 u. AB 1 darstelle.
    Vielen Dank schonmal im voraus
    Nach oben
    Zitieren Zitieren Gelöst: Probleme beim schreiben eines Programmes  

  2. "Hier mal die komplette Aufgabe:

    Solange der Taster (E 0.0) gedrückt ist, sollen alle 5 Lampen (A1.0 -1.4) nacheinander aufleuchten. Immer wieder von vorne, bis der Taster losgelassen wird. Dann muss dort wo zuletzt die Lampe geleuchtet hat, die Lampe blinken, bis der Taster wieder betätigt wird.
    Soweit, so gut.

    Jetzt soll die Lampe die schon geblinkt hat, beim nächsten Durchlauf nicht mehr aufleuchten. Wenn alle Lampen schon an waren (also wenn alle schon mal geblinkt haben), fängt es wieder von vorne an."


  3. #2
    Registriert seit
    14.01.2004
    Ort
    Hattorf
    Beiträge
    3.201
    Danke
    297
    Erhielt 311 Danke für 266 Beiträge

    Standard

    Hallo,
    warum nicht 1s taktgeber, einen zähler nehmen und dann ein bit schieben, und wenn 6 erreicht ist, den zähler rücksetzen?????
    nur mal so als vorschlag.
    mfg
    dietmar

  4. #3
    Anonymous Gast

    Standard

    ich glaub das würde so nicht funktionieren, weil ich dann die bits immer nur reihenweise um 1 nach links schieben würde. Die Lampe die ich aber in der mitte herausnehme, soll dann nicht mehr aufleuchten. Ausserdem sollte ich das mit den Wortverknüpfungen schaffen.....laut Aufgabenstellung, nur hab ich leider nicht den Durchblick dabei, ich kenn SPS-S7 erst seit 2 Wochen.

  5. #4
    Registriert seit
    14.01.2004
    Ort
    Hattorf
    Beiträge
    3.201
    Danke
    297
    Erhielt 311 Danke für 266 Beiträge

    Standard

    Hallo,
    verstehe dich nicht so recht, habe dein Programm simuliert: 1lampe an,1s 2.Lampe geht an, taster aus lampe 2 blinkt, taster ein lampe 3 geht an, 1s lampe4 geht an,1s lampe 5 geht an, und alles startet neu, usw....
    Jetzt verstehe ich nicht was du meinst mit der lampe darf nicht mehr leuchten, geht doch auch aus wenn du wieder startest.
    am besten sende mal die komplette aufgabenstellung.
    mfg
    dietmar

  6. #5
    Anonymous Gast

    Standard

    Hier mal die komplette Aufgabe:

    Solange der Taster (E 0.0) gedrückt ist, sollen alle 5 Lampen (A1.0 -1.4) nacheinander aufleuchten. Immer wieder von vorne, bis der Taster losgelassen wird. Dann muss dort wo zuletzt die Lampe geleuchtet hat, die Lampe blinken, bis der Taster wieder betätigt wird.
    Soweit, so gut.

    Jetzt soll die Lampe die schon geblinkt hat, beim nächsten Durchlauf nicht mehr aufleuchten. Wenn alle Lampen schon an waren (also wenn alle schon mal geblinkt haben), fängt es wieder von vorne an.

  7. #6
    Registriert seit
    02.02.2005
    Beiträge
    51
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    gebe zu, habe das Programm jetzt nicht im Detail gelesen.

    Aber wie wäre es denn, wenn Du z.B. in einem Merkerwort speicherst, welche Lampen schon geblinkt haben. Beim "Durchschieben" vergleichst Du dann mit dem Merkerwort und nur wenn das Bit noch nicht gesetzt war, ist alles ok. sonst muss nochmal geschoben und dann geprüft werden. Wenn alle Lampen als "haben schon geblinkt" markiert sind, muss im nächsten Durchlauf das Merkerwort zurückgesetzt werden. Die Prüfung kann wieder mit ner Wortverknüfung erfolgen.

    Hoffe die "Beschreibung" verwirrt nicht mehr als sie hilft.

    ulkula

  8. #7
    Anonymous Gast

    Standard

    Hallo ulkula.

    Das Problem ist, dass ich dann für jede einzelne Lampe die blinkt ein Merkerbit setzen müsste (zumindest mit meinem bis jetzt gelernten S7)
    Ich soll die Aubgabe aber möglichst kurz halten und mir fehlt dazu noch einiges an Verständniss. Wenn Du das evtl. in einer AWL veranschaulichen könntest, würd mir das vielleicht weiterhelfen.

  9. #8
    Registriert seit
    14.01.2004
    Ort
    Hattorf
    Beiträge
    3.201
    Danke
    297
    Erhielt 311 Danke für 266 Beiträge

    Standard

    Hallo,
    hier mal eine Lösung, kannst du ja was daraus ableiten.


    UN T 1 //Takt
    L S5T#500MS //Takt
    SE T 0 //Takt
    U T 0 //Takt
    SE T 1 //Takt
    U T 0
    U E 124.0
    ZV Z 1
    L Z 1 //überprüfen ob ein zyklus voll
    L 4 //überprüfen ob ein zyklus voll
    >I //überprüfen ob ein zyklus voll
    R Z 1 //überprüfen ob ein zyklus voll
    U E 124.0 //wenn abgeschaltet wird springe
    FN M 10.0 //wenn abgeschaltet wird springe
    SPB ver //wenn abgeschaltet wird springe
    UN T 0 //ohne takt dunkel springe
    SPB end //ohne takt dunkel springe
    UN E 124.0 //wenn ausgeschaltet dann blinke diese lampe
    U T 0 //wenn ausgeschaltet dann blinke diese lampe
    SPB blin //wenn ausgeschaltet dann blinke diese lampe
    L 1 //Bit schieben
    T MW 0 //Bit schieben
    L Z 1 //Bit schieben
    L MW 0 //Bit schieben
    SLW //Bit schieben
    T MW 14 //Bit schieben
    L MW 12 //negation von schon blinkenden lampen
    INVI //negation von schon blinkenden lampen
    T MW 16 //negation von schon blinkenden lampen
    L MW 14 //welches bit ist angesteuert
    L MW 16 // negierter wert von schon blinkenden lampen
    UW
    T MW 18 //diese lampe ansteuern
    L MW 18 //diese lampe ansteuern
    T AW 124 //diese lampe ansteuern
    SPA ene
    ver: L MW 18 // wenn ausgeschaltet wird

    L MW 12 //überprüfen welche lampen schon blinkend waren
    OW
    T MW 12 //neue lampe ist eingetragen
    L 31 //wenn alle lampen angesteuert
    L MW 12 //waren rücksetzen
    <=I
    SPB loes
    SPA ene
    blin: L MW 14 //wenn ausgeschaltet dann blinke diese lampe
    T AW 124 //wenn ausgeschaltet dann blinke diese lampe
    SPA ene
    loes: L 0 //wenn alle lampen angesteuert
    T MW 12 //waren rücksetzen
    SPA ene
    end: L 0 //dunkel wenn kein takt
    T AW 124 //dunkel wenn kein takt
    ene: NOP 0

  10. #9
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank,

    habs gleich mal ausprobiert und es funzt.
    Die Zählfunktion muss ich mir aber erst nochmal im Buch anschauen, soweit war ich noch nicht. Aber das ist erstmal ne funktionierende AWL die kurz ist und da kann ich mir sicher einiges herleiten.
    Also vielen Dank nochmal dafür.

    mfg

Ähnliche Themen

  1. Probleme beim Anlegen eines Panels
    Von LarsVader im Forum HMI
    Antworten: 1
    Letzter Beitrag: 22.09.2011, 15:46
  2. Antworten: 6
    Letzter Beitrag: 07.01.2011, 15:24
  3. Antworten: 4
    Letzter Beitrag: 12.11.2010, 17:20
  4. Problem beim Start eines Programmes
    Von Ralle im Forum PC- und Netzwerktechnik
    Antworten: 4
    Letzter Beitrag: 24.01.2008, 17:35
  5. Probleme beim löschen eines FB´s (Graph7)
    Von alonely01 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 13.12.2007, 14:34

Lesezeichen

Berechtigungen

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