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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: Merker werden überschrieben

  1. #1
    Registriert seit
    20.04.2009
    Beiträge
    44
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Daumen runter


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hy Jungs.....

    Ich habe ein kleines Problem bei einer Realisierung.

    In der Anlage ist eine S7-200 und ein TP177A vorhanden.


    Auf dem Tp sind mehrere Pulldownfenster und jedem ist ein Merkerbyte zugeordnet. Überall ist die gleiche Textliste vorhanden.

    Textliste:

    1 Schieber 1 vor
    2 Schieber 1 zurück
    3 Schieber 2 vor
    4 Schieber 2 zurück
    5 Pausezeit.
    usw.

    Ich jage nun alle Merkerbyte durch einen Fc der einen Simplen vergleich hat.

    Merkerbyte10 == 1 = M 0.0

    Merkerbyte10 == 2 = M 0.1


    Nehmen wir jetzt an im ersten Pulldownfenster ist Schieber 1 vor angewählt und im Zweiten schieber 2 vor.

    die Merkerbyte werden nun durch den Fc gejagt......


    Leider werden bei den verschiedene durchgängen die Merker wieder auf 0 gesetzt hat mir jemand eine Alternative?






    Danke im Voraus

    Gruss Freddy
    Angehängte Grafiken Angehängte Grafiken
    Zitieren Zitieren Merker werden überschrieben  

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

    Standard

    Hallo Freddy,

    sehe ich das Richtig?
    Du übergibst dem Baustein ein Merkerbyte das die Auswahl darstellt, schreibst dann das Ergebnis Deines Vergleiches direkt auf Merker?
    Und das bei jedem Bausteinaufruf.
    Das Ergebnis muss auch eine IN/OUT oder nur OUT sein und kein fester Merker.

    Es werden doch sonst bei jedem Bausteinaufruf die gleichen Merker überschrieben.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  3. #3
    Freddy ist offline Benutzer
    Themenstarter
    Registriert seit
    20.04.2009
    Beiträge
    44
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard

    heeey Paule....
    Danke für deine schnelle Antwort

    Ja du siehst das richtig....

    aber egal ob ich in/out oder out variable nehem es wird doch trotzdem überschrieben oder raff ich irgendwas nicht ganz ?.....

    Den die Bedingung ist ja z.b. in einem Merkerbyte erfüllt und dann in den restlichen Merkerbytes nicht, im gleichen Zyklus.....

  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

    Hi Freddy,

    aber Du übergibst dem Baustein doch nur die Auswahl, sprich: MB 10 ; MB 11 ; MB 12
    In dem Baustein (immer derselbe) fragst Du das Auswahlfeld auf 1 ; 2 oder 3 ab, und setzt dann immer den selben Merker 9.0 ; M 9.1 ; M 9.2

    Das heißt beim ersten Aufruf des Bausteines wird der Merker 9.1 zugewiesen weil das MB 10 eine 2 hat.
    Beim nächsten Aufruf desselben Bausteines wird der Merker 9.0 zugewiesen weil das MB 11 eine 1 hat. Nun wird der Merker 9.1 doch wieder auf False gesetzt.
    Nimm für die Zuweisung eine OUT-Variable vom Typ Byte oder einzelne Bool. Und bei der Beschaltung einmal das Merkerbyte 9 und beim nächsten mal ein anderes.

    Code:
    L #Auswahl
    L 1
    ==I
    = #Ausgang_1   // Wird über OUT_Variable mit M 9.0 verschaltet
     
    L #Auswahl
    L 2
    ==I
    = #Ausgang_2   // Wird über OUT_Variable mit M 9.1 verschaltet
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  5. #5
    Freddy ist offline Benutzer
    Themenstarter
    Registriert seit
    20.04.2009
    Beiträge
    44
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard

    danke vielmal werde es bei gelegnheit probieren....

    habe noch 2 alternativen:

    1.

    befor ich den Funktionsbaustein aufrufe setze ich alle Merker zürück.
    Im Bausten selber setze ich sie.


    FC11:

    R M0.0
    R M0.1
    R M0.2
    usw

    call fc 12
    Mw10 #eingabefeld


    call fc 12
    Mw11 #eingabefeld


    call fc 12
    Mw12 #eingabefeld



    FC 12:

    L 1
    L #eingabefeld
    ==
    S M0.0

    L 2
    L #eigabefeld
    ==
    S M0.1

    L 3
    L #eingabefeld
    ==
    S M0.2

    usw


    Jetzt muss einfach der FC1 und Fc 2 vor dem Verwenden der Merker (M0.0,M0.1,M0.2...) abgearbeitet werden.



    2. Ich vergleiche die Merkerbyte auf bits udn verknüpfe sie mit einer oder Verbindung beim Befehl bin ich mir jetzt nicht ganz sicher bei Worter ist es ja Ow und ich glaube bei byte ob bin mir aber nicht sicher


    Ob Mb10 0000 0001
    Ob MB11 0000 0001
    Ob Mb12 0000 0001

    = M 0.0

    Gruss Freddy

  6. #6
    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 Freddy Beitrag anzeigen
    befor ich den Funktionsbaustein aufrufe setze ich alle Merker zürück.
    Im Bausten selber setze ich sie.

    FC11:

    R M0.0
    R M0.1
    R M0.2
    usw

    call fc 12
    Mw10 #eingabefeld // wenn hier 1 dann wird M 0.0 gesetzt


    call fc 12
    Mw11 #eingabefeld // wenn hier 2 dann wird M 0.1 gesetzt ( Merker 0.0 bleibt immer noch gesetzt )


    call fc 12
    Mw12 #eingabefeld



    FC 12:

    L 1
    L #eingabefeld
    ==
    S M0.0

    L 2
    L #eigabefeld
    ==
    S M0.1

    L 3
    L #eingabefeld
    ==
    S M0.2

    usw

    Jetzt muss einfach der FC1 und Fc 2 vor dem Verwenden der Merker (M0.0,M0.1,M0.2...) abgearbeitet werden.


    2. Ich vergleiche die Merkerbyte auf bits udn verknüpfe sie mit einer oder Verbindung beim Befehl bin ich mir jetzt nicht ganz sicher bei Worter ist es ja Ow und ich glaube bei byte ob bin mir aber nicht sicher


    Ob Mb10 0000 0001
    Ob MB11 0000 0001
    Ob Mb12 0000 0001

    = M 0.0

    // Das ist auch keine Lösung
    Hi Freddy,
    sorry aber das geht so nicht!

    Du darfst in einem Parametrierbaustein keinen direkten Merker zuweisen.

    Code:
    call fc 12
    MB10 #eingabefeld
    M9.0 #Ausgang_1
    M9.1 #Ausgang_2
    M9.2 #Ausgang_3
     
    call fc 12
    MB11 #eingabefeld
    M10.0 #Ausgang_1
    M10.1 #Ausgang_2
    M10.2 #Ausgang_3
     
    call fc 12
    MB12 #eingabefeld
    M11.0 #Ausgang_1
    M11.1 #Ausgang_2
    M11.2 #Ausgang_3
     
    FC12
     
    L 1
    L #eingabefeld
    ==
    = #Ausgang_1
     
    L 2
    L #eigabefeld
    ==
    = #Ausgang_2
     
    L 3
    L #eingabefeld
    ==
    = #Ausgang_3
    Du kannst die Ausgänge auch auf ein Byte oder Array legen.

    Wie gesagt ich kenne keine 200er daher wird der Syntax nicht stimmen, aber mir geht es hier um die Logik.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  7. #7
    Freddy ist offline Benutzer
    Themenstarter
    Registriert seit
    20.04.2009
    Beiträge
    44
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hmmm okeee ich versteh dich aber das ist extrem mühsam .....


    Ich habe sicherlich 20 eigabefelder und texlisten von bis zu 20 Einträgen..

    also wären das rund 400 variablen die ich benötige *verwirrt*

    gibt es nicht noch etwas einfacheres?

    gruss

  8. #8
    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 Freddy Beitrag anzeigen
    hmmm okeee ich versteh dich aber das ist extrem mühsam .....


    Ich habe sicherlich 20 eigabefelder und texlisten von bis zu 20 Einträgen..

    also wären das rund 400 variablen die ich benötige *verwirrt*

    gibt es nicht noch etwas einfacheres?
    Nein, nein.
    Du musst doch nur die Zuweisung genauso parametrierbar machen wie die Abfrage.
    Das wird eher kürzer.

    Kann sich hier nicht mal einer Einklinken der das auf einer 200er proggen kann.
    Da wird man doch wohl auch auf die Bits eines OUT-Byte schreiben können.
    Von der Aufgabenstellung sollte das doch nun klar sein.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  9. #9
    Freddy ist offline Benutzer
    Themenstarter
    Registriert seit
    20.04.2009
    Beiträge
    44
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard

    call fc 12
    MB10 #eingabefeld
    M9.0 #Ausgang_1 Hier brauchst du ein merker
    M9.1 #Ausgang_2 Hier brauchst du ein merker
    M9.2 #Ausgang_3 Hier brauchst du ein merker

    call fc 12
    MB11 #eingabefeld
    M10.0 #Ausgang_1 Hier brauchst du ein merker
    M10.1 #Ausgang_2 Hier brauchst du ein merker
    M10.2 #Ausgang_3 Hier brauchst du ein merker

    call fc 12
    MB12 #eingabefeld
    M11.0 #Ausgang_1 Hier brauchst du ein merker
    M11.1 #Ausgang_2 Hier brauchst du ein merker
    M11.2 #Ausgang_3 Hier brauchst du ein merker




    dan machts du eine oder verknüpfung nehme ich an

    U M9.0
    U M10.0
    U m11.0

    = A 0.0

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du fährst mit jedem Pulldownfenster dann den gleichen Ausgang?
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 01.06.2011, 17:34
  2. CPU - DB mit 0 überschrieben
    Von mst im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 15.03.2010, 15:52
  3. Antworten: 1
    Letzter Beitrag: 16.02.2010, 17:12
  4. Antworten: 3
    Letzter Beitrag: 01.09.2006, 12:09
  5. Werte aus DB werden überschrieben
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 31.12.2005, 15:13

Stichworte

Lesezeichen

Berechtigungen

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