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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 35

Thema: Sprungmarken in AWL ?

  1. #11
    Registriert seit
    08.11.2006
    Ort
    Uckermark
    Beiträge
    903
    Danke
    201
    Erhielt 254 Danke für 208 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Also ich geh mal davon aus dass Du 16 Rolläden hast, die Du Steuern willst.
    Also schreibst Du Dir erstmal einen FB für einen Rolladen. Dort deklarierst Du dir alles was von Deinen Eingängen kommt (also Taster) als IN-Variablen, dass was die Ausgänge ansteuert als OUT-Variablen und das was Du als Merker brauchst als STAT- Variablen, auf Merker verzichtest Du mal tunlichst. (Wenn Du für alle 16 Rolläden 64 Merker brauchtest wären das also 4 STAT-Var´s).
    Deine Logik programmierst Du nun mit den IN, OUT und STAT-Var´s.

    Später rufst Du den fertigen Baustein dann einfach so oft auf, so viel Rolläden du eben hast. (Jedes Mal allerdings mit einem anderen Instanz-DB).

    Edit: Alles klar, Ralle war schneller!!! (setzen 6 )
    Geändert von OHGN (20.09.2007 um 16:29 Uhr)
    Neue Ideen begeistern jene am meisten, die auch mit den alten nichts anzufangen wussten.
    Karl Heinrich Waggerl (1897-1973)

  2. #12
    Registriert seit
    02.04.2006
    Ort
    nähe Muc
    Beiträge
    2.787
    Danke
    115
    Erhielt 126 Danke für 107 Beiträge

    Standard

    Zitat Zitat von OHGN Beitrag anzeigen
    Also ich geh mal davon aus dass Du 16 Rolläden hast, die Du Steuern willst.
    Also schreibst Du Dir erstmal einen FB für einen Rolladen. Dort deklarierst Du dir alles was von Deinen Eingängen kommt (also Taster) als IN-Variablen, dass was die Ausgänge ansteuert als OUT-Variablen und das was Du als Merker brauchst als STAT- Variablen, auf Merker verzichtest Du mal tunlichst. (Wenn Du für alle 16 Rolläden 64 Merker brauchtest wären das also 4 STAT-Var´s).
    Deine Logik programmierst Du nun mit den IN, OUT und STAT-Var´s.

    Später rufst Du den fertigen Baustein dann einfach so oft auf, so viel Rolläden du eben hast. (Jedes Mal allerdings mit einem anderen Instanz-DB).

    Edit: Alles klar, Ralle war schneller!!! (setzen 6 )
    Glaub habe was flasch verstanden.
    Für was die unterschiedlichen Instanz DB`s?
    Probier es mal mit immer den gleichen aus
    Spart enorm Speicherplatz
    Geändert von maxi (20.09.2007 um 16:46 Uhr)
    ___________________________________________





    Sende eine SMS mit dem Stichwort "Feuer" an die 112 und innerhalb von 10 Minuten steht ein roter Partybus mit derbem Sound vor deiner Tür.


    AGB: Wer Rechtschreibfehler findet darf diese behalten. Bitte meine in eile gefertigten, selten anfallenden Vertipsler zu entschuldigen.

  3. #13
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.647
    Danke
    1.059
    Erhielt 2.045 Danke für 1.627 Beiträge

    Standard

    das hier könnte dem verständnis dienlich sein

  4. #14
    noeppkes ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.08.2006
    Beiträge
    150
    Danke
    47
    Erhielt 5 Danke für 2 Beiträge

    Standard

    Hallo Maxi.
    ich brauche ja dann verschiedene Instanz DB'S, da ja dort drin die Laufzeiten und der Status der einzelnen Rolläden abgespeichert ist.

    Aber ich versuche es mit einer zu machen.
    Ich lege die Bits als Array an.
    Die zu verwaltenden Zeiten auch.
    Nun hole ich mir aus den Array am Programmstart die richtigen informatioen (Anhand der übergebenen Nummer) und lege diese in Temp-Bit / Int's.

    Somit habe ich im Programmablauf selbst immer die gleichen Bezeichnungen, aber eben nur anders gefüttert.

    Ich hoffe mal daß das geht.

    Hier ein kleiner Auszug meines Vorhabens.

    Code:
     
    Taster ist Eingang Bool
    Relais ist Ausgang BOOL
     
    Bitmerker_array ist im Stat als Array angelegt:
    Bitmeker_array [1..40] as BOOL
     
          LAR1  P##Merkerbit_array
          L     #Nummer_Roll    * 5 , weiss ich aber noch nciht genau wie
          +AR1                   
          U     L [AR1,P#0.0]
          =     #Merker_1
          U     L [AR1,P#0.1]
          =     #Merker_2
          U     L [AR1,P#0.2]
          =     #Merker_3
          U     L [AR1,P#0.3]
          =     #Merker_4
          U     L [AR1,P#0.4]
          =     #Merker_5
     
     
     
     
    
    // Rolladensteuerung
    Roll: U     #Taster
          FP    #Merker_1                   //[MW34]       // Hilfsmerker
          =     #Merker_2                   // Positive Flanke des Tasters
    
          U     #Taster
          FN    #Merker_3                   // Hilfsmerker
          =     #Merker_4                   // Negative Flanke des Tasters
    ...
     
          U Merker_5
          = #Relais
    Ist das so richtig ?

    Übrigens.
    Habe das ganze jetzt eingebunden.
    DB100 wurde auch angelegt.
    Jetzt geht die CPU314 nicht mehr auf RUN, sondern bleibt auf STOP stehen, sobald ich im OB1 den FB100(siehe code oben) aufrufe ?

    Woran kann denn das schon wieder liegen ?

    noeppkes ...
    Zitieren Zitieren verschiedene Instanz's DB's  

  5. #15
    Registriert seit
    08.11.2006
    Ort
    Uckermark
    Beiträge
    903
    Danke
    201
    Erhielt 254 Danke für 208 Beiträge

    Standard

    Zitat Zitat von maxi Beitrag anzeigen
    Glaub habe was flasch verstanden.
    Für was die unterschiedlichen Instanz DB`s?
    Probier es mal mit immer den gleichen aus
    Also ehrlich Maxi, das brauch ich nicht erst zu probieren!
    Neue Ideen begeistern jene am meisten, die auch mit den alten nichts anzufangen wussten.
    Karl Heinrich Waggerl (1897-1973)

  6. #16
    Registriert seit
    02.04.2006
    Ort
    nähe Muc
    Beiträge
    2.787
    Danke
    115
    Erhielt 126 Danke für 107 Beiträge

    Standard

    Zitat Zitat von noeppkes Beitrag anzeigen
    Hallo Maxi.
    ich brauche ja dann verschiedene Instanz DB'S, da ja dort drin die Laufzeiten und der Status der einzelnen Rolläden abgespeichert ist.

    Aber ich versuche es mit einer zu machen.
    Ich lege die Bits als Array an.
    Die zu verwaltenden Zeiten auch.
    Nun hole ich mir aus den Array am Programmstart die richtigen informatioen (Anhand der übergebenen Nummer) und lege diese in Temp-Bit / Int's.

    Somit habe ich im Programmablauf selbst immer die gleichen Bezeichnungen, aber eben nur anders gefüttert.

    Ich hoffe mal daß das geht.

    Hier ein kleiner Auszug meines Vorhabens.

    Code:
     
    Taster ist Eingang Bool
    Relais ist Ausgang BOOL
     
    Bitmerker_array ist im Stat als Array angelegt:
    Bitmeker_array [1..40] as BOOL
     
          LAR1  P##Merkerbit_array
          L     #Nummer_Roll    * 5 , weiss ich aber noch nciht genau wie
          +AR1                   
          U     L [AR1,P#0.0]
          =     #Merker_1
          U     L [AR1,P#0.1]
          =     #Merker_2
          U     L [AR1,P#0.2]
          =     #Merker_3
          U     L [AR1,P#0.3]
          =     #Merker_4
          U     L [AR1,P#0.4]
          =     #Merker_5
     
     
     
     
     
    // Rolladensteuerung
    Roll: U     #Taster
          FP    #Merker_1                   //[MW34]       // Hilfsmerker
          =     #Merker_2                   // Positive Flanke des Tasters
     
          U     #Taster
          FN    #Merker_3                   // Hilfsmerker
          =     #Merker_4                   // Negative Flanke des Tasters
    ...
     
          U Merker_5
          = #Relais
    Ist das so richtig ?

    Übrigens.
    Habe das ganze jetzt eingebunden.
    DB100 wurde auch angelegt.
    Jetzt geht die CPU314 nicht mehr auf RUN, sondern bleibt auf STOP stehen, sobald ich im OB1 den FB100(siehe code oben) aufrufe ?

    Woran kann denn das schon wieder liegen ?

    noeppkes ...
    Pauschale Antwort ohen nachzusheen,
    vielleicht ist es hilfreich.

    Lösch mal deinen DB 100 in der SPS und in deinen Prog und mach dann den Call aufruf erneut.

    Grüsse
    ___________________________________________





    Sende eine SMS mit dem Stichwort "Feuer" an die 112 und innerhalb von 10 Minuten steht ein roter Partybus mit derbem Sound vor deiner Tür.


    AGB: Wer Rechtschreibfehler findet darf diese behalten. Bitte meine in eile gefertigten, selten anfallenden Vertipsler zu entschuldigen.

  7. #17
    Registriert seit
    08.11.2006
    Ort
    Uckermark
    Beiträge
    903
    Danke
    201
    Erhielt 254 Danke für 208 Beiträge

    Standard

    Zitat Zitat von noeppkes Beitrag anzeigen
    Aber ich versuche es mit einer zu machen.
    Ich lege die Bits als Array an.
    Die zu verwaltenden Zeiten auch.
    Nun hole ich mir aus den Array am Programmstart die richtigen informatioen (Anhand der übergebenen Nummer) und lege diese in Temp-Bit / Int's.
    ......
    Also Du machst´s auch gerne ein wenig komplizierter, gelle?
    Woran kann denn das schon wieder liegen ?
    Hast Du den DB100 auch in die CPU geladen?
    Neue Ideen begeistern jene am meisten, die auch mit den alten nichts anzufangen wussten.
    Karl Heinrich Waggerl (1897-1973)

  8. #18
    noeppkes ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.08.2006
    Beiträge
    150
    Danke
    47
    Erhielt 5 Danke für 2 Beiträge

    Standard

    Hallo,

    ich habe den Fehler in der Zwischenzeit selbst gefunden.

    Ich kann anscheinend keine indirekte Adressierung in einem FB mach.
    So wie ich das vorhatte funktioniert es nicht.
    Muss ich somit mit mehreren DB's arbeiten oder geht das auch mit einer.
    Ich wollte folgendes Programmieren.
    Die Merker anhand der übergebenen Nummer füttern:

    Code:
     
         LAR1  P##Merkerbit_array
         L     #Nummer_Roll    * 5, aber weiss noch nicht wie?
         +AR1  
         U     L [AR1,P#0.0]
         =     #Merker_1
         U     L [AR1,P#0.1]
         =     #Merker_2
         U     L [AR1,P#0.2]
        =     #Merker_3
        U     L [AR1,P#0.3]
        =     #Merker_4
        U     L [AR1,P#0.4]
        =     #Merker_5
    noeppkes
    Zitieren Zitieren CPU startet nicht mehr. Die Lösung  

  9. #19
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    11.871
    Danke
    500
    Erhielt 2.604 Danke für 1.877 Beiträge

    Standard

    @noeppkes

    Mach bitte nicht wörtlich, was maxi sagt, das geht nicht!

    PS: Ich meine den selben Instanz-DB für alle Rollo-FB.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  10. #20
    noeppkes ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.08.2006
    Beiträge
    150
    Danke
    47
    Erhielt 5 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo OHGN,

    wieso mache ich es gerne komplizierter.
    Ich will nur nicht so viele DB's (16 Stk. für 16 Rollädenanlegen)
    Das ist doch nicht so verkehrt.
    Was weiss ich denn, wie viele DB's ich noch für das restliche Haus brauche.
    Ich möchte einfach ein wenig "sparen"

    noeppkes ...
    Zitieren Zitieren Hallo OHGN (mehrere DB's in eine)  

Ähnliche Themen

  1. Zeiten bei Sprungmarken
    Von Deep Blue im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 03.09.2009, 15:48
  2. Sprungebefehle / Sprungmarken
    Von reneehrle im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 26.09.2008, 15:49
  3. Frage zur Sprungmarken in S5
    Von Bitte_ein_Bit im Forum Programmierstrategien
    Antworten: 2
    Letzter Beitrag: 16.10.2007, 23:03
  4. Sprungmarken unter S7/AWL
    Von mad_max im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 20.04.2007, 13:55
  5. Sprungmarken
    Von Flo im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 28.08.2006, 10:36

Lesezeichen

Berechtigungen

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