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

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

Thema: Newbie Fragen zur S7-Programmierung

  1. #1
    Registriert seit
    23.06.2011
    Beiträge
    19
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich programmiere gerade kleine Beispiele für die Uni in S7 und stehe gerade bei einer Aufgabe an.

    Meine Frage wäre, da ich die Antwort weder in der Online-Hilfe noch in der Beschreibung von der S7 finden konnte:
    - werden Merker (zb M0.0) am Anfang von jedem Zyklus in den Init-Zustand zurückversetzt?

    Ich möchte folgendes machen: wenn M0.0 nicht gesetzt, dann M0.0 auf 1 setzen und EB0 auf MB1 rüberkopieren. Danach schalte ich eine Lampe, wenn M0.0 1 ist.
    Wir haben auf der Uni einen Simulator für die Ausführung der Aufgaben, und wenn ich dieses Programmstück ausführe, blinkt die Lampe sehr schnell -> für mich ein Zeichen, dass M0.0 immer wieder auf 1 gesetzt wird.
    Ist das ein Bug in dem Simulator oder ist das mit den Merkern wirklich so wie in meiner Frage?

    Vielen Dank im Voraus + viele Grüße
    BBKing
    Zitieren Zitieren Newbie Fragen zur S7-Programmierung  

  2. #2
    Registriert seit
    16.05.2007
    Ort
    im Stahlwerk...
    Beiträge
    1.178
    Danke
    120
    Erhielt 429 Danke für 236 Beiträge

    Standard

    Ein Merker bekommt in jedem Zyklus den Zustand des Verknüpfungsergebnisses (VKE), das direkt vor der Zuweisung des Merkers anliegt. Das kann auch bedeuten, daß der Merker jeden Zyklus seinen Zustand ändert - je nach dem Code der vor der Zuweisung steht.

    Zeig doch mal, was Du programmiert hast.
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

  3. #3
    Registriert seit
    30.04.2009
    Ort
    Nord-Hessen
    Beiträge
    150
    Danke
    13
    Erhielt 14 Danke für 10 Beiträge

    Standard

    Hallo,
    vielleicht schaust du auch mal nach, ob in der Hardwareconfig das MB0 als Taktmerkerbyte eingestellt ist. Betrachte mal das komplette MB0 im Status.

  4. #4
    bbking ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.06.2011
    Beiträge
    19
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,

    danke für die Antwort. Anbei die Projektdatei+AWL für den SPSSim, hoffentlich ausreichend kommentiert.
    Gibt's eine empfehlenswerte S7-Doku, die auf solche "Tricks" eingeht?

    Danke
    Angehängte Dateien Angehängte Dateien

  5. #5
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Zitat Zitat von bbking Beitrag anzeigen
    ...
    - werden Merker (zb M0.0) am Anfang von jedem Zyklus in den Init-Zustand zurückversetzt?
    ...
    Nein, sie bleiben im letzten zugewiesenem Zustand des vorhergehenden Zyklus.

    Ich hab' das jetzt nur kurz überflogen, aber das Problem in Deinem Programm wird der Takt im ersten Netzwerk sein, den Du vermutlich so nicht bauen wolltest.
    Mit:
    Code:
    LDN M0.0
    = M0.0
    ...
    änderst Du in jedem Zyklus den Zustand von M0.0.
    Ich schätze mal, Du wolltest den Merker eigentlich setzen, oder?

  6. #6
    bbking ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.06.2011
    Beiträge
    19
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von hucki Beitrag anzeigen
    Mit:
    Code:
    LDN M0.0
    = M0.0
    ...
    änderst Du in jedem Zyklus den Zustand von M0.0.
    Ich schätze mal, Du wolltest den Merker eigentlich setzen, oder?
    Mit AWL kenn ich mich noch nicht so recht aus, mache es in KOP. Die Idee in Netzwerk1 war, wenn M0.0 nicht gesetzt, soll M0.0 gesetzt werden und EB0 auf MB1 kopiert werden. Theoretisch sollte M0.0 nur nach Ablauf von T37 und nur wenn M0.1 == 0 ist, zurückgesetzt werden -> das sollte aber nicht in jedem Zyklus vorkommen.

  7. #7
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Zitat Zitat von bbking Beitrag anzeigen
    Mit AWL kenn ich mich noch nicht so recht aus, mache es in KOP.
    ...
    Ich nehm auch lieber KOP, aber AWL läßt sich leichter posten

    Wenn Du in Dein erstes Netzwerk schaust, dann wird M0.0 dort nicht gesetzt (S) sonder mit gleich ( ) zugewiesen. Damit nimmt M0.0 immer den entgegengesetzten Zustand von sich an, da es ja gleich dem NICHT-Zustand von M0.0 sein soll.

  8. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    bbking (29.07.2011)

  9. #8
    bbking ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.06.2011
    Beiträge
    19
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von hucki Beitrag anzeigen
    Ich nehm auch lieber KOP, aber AWL läßt sich leichter posten

    Wenn Du in Dein erstes Netzwerk schaust, dann wird M0.0 dort nicht gesetzt (S) sonder mit gleich ( ) zugewiesen. Damit nimmt M0.0 immer den entgegengesetzten Zustand von sich an, da es ja gleich dem NICHT-Zustand von M0.0 sein soll.
    Mist, das habe ich überlesen. Habe nur bei (|) beachtet, dass die Werte direkt gesetzt werden.

    Vielen Dank!

  10. #9
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Ich würde das Setzen von M0.0 auch nicht an der Stelle einfügen, wo jetzt das = ist, sondern im KOP-Pfad direkt hinter dem MOVB.
    Dadurch wird M0.0 nur gesetzt, wenn der MOV-Befehl auch erfolgreich ausgeführt wurde.
    In AWL sieht das dann so aus:
    Code:
    LDN    M0.0
    MOVB   IB0, MB2
    AENO
    S      M0.0, 1
    PS: In Microwin unter Ansicht auf AWL umschalten, obigen AWL-Code im Netzwerk 1 so eintragen/kopieren und Ansicht wieder zurückschalten.

  11. #10
    bbking ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.06.2011
    Beiträge
    19
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von hucki Beitrag anzeigen
    Ich würde das Setzen von M0.0 auch nicht an der Stelle einfügen, wo jetzt das = ist, sondern im KOP-Pfad direkt hinter dem MOVB.
    Dadurch wird M0.0 nur gesetzt, wenn der MOV-Befehl auch erfolgreich ausgeführt wurde.
    In AWL sieht das dann so aus:
    Code:
    LDN    M0.0
    MOVB   IB0, MB2
    AENO
    S      M0.0, 1
    PS: In Microwin unter Ansicht auf AWL umschalten, obigen AWL-Code im Netzwerk 1 so eintragen/kopieren und Ansicht wieder zurückschalten.
    LOL, ja, nachträgliche Änderungen in KOP sind ein Krampf. Auf die Umschaltung bin ich schon draufgekommen, v.a. wenn ich Netzwerke provisorisch auskommentieren will, ist das hilfreich....

Ähnliche Themen

  1. Fragen Programmierung
    Von sps-welt im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 29.09.2010, 15:46
  2. Newbie und angefangen mit Backhoff... Fragen ??
    Von DeeWay im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 09.06.2009, 15:09
  3. Newbie Fragen bezüglich Logo-Steuerung für Rolladen
    Von baur_andi im Forum Sonstige Steuerungen
    Antworten: 5
    Letzter Beitrag: 28.08.2008, 21:33
  4. bin newbie. brauch hilfe bei sps programmierung von festo sps
    Von aat81 im Forum Sonstige Steuerungen
    Antworten: 4
    Letzter Beitrag: 25.04.2008, 12:31
  5. Fragen zur SPS Programmierung
    Von Maciek im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 08.11.2006, 20:35

Lesezeichen

Berechtigungen

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