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

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 33

Thema: Mit Integerwert DB Bit setzen fortlaufend

  1. #1
    Registriert seit
    30.03.2011
    Beiträge
    30
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo. Ibn habe eine integer Variable und möchte mit dieser fortlaufend ein Bit in einem DB setzen. Bei dem Wert 1 soll zum Beispiel db120.dbx20.0, beim Wert 2 db120.dbx1 und so weiter gesetzt werden. Bis 2000 eventuell. Stehe leider auf dem schlauch. Es gibt doch bestimmt einen sfc dafür oder? Danke schon mal.
    Zitieren Zitieren Mit Integerwert DB Bit setzen fortlaufend  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo,
    dafür gibt es m.W. keine SFC - wozu auch.
    Das kannst du ganz einfach über indirekte Adressierung machen.
    Z.B. so :
    Code:
    L #mein_Index
    LAR1
    
    AUF DB120
    SET
    = DBX[AR1,p#0.0]
    ... ist jetzt allerdings ungestest und demnach "quick'n'dirty" - Damit solltest du aber in der Step7-Hilfe weiterkommen ...

    Gruß
    Larry

  3. #3
    Registriert seit
    30.03.2011
    Beiträge
    30
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ok. Super. Habe mit Pointern noch kaum was gemacht...was ist mein Index? Die integer variable? Und wird die fortlaufend gemacht bis der endwert der Variable erreich wird oder muss da noch eine Schleife gebastelt werden.

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Nö ... das passt schon so.
    Trägst du dort 0 ein, so adressierst du das Bit 0.0 des DB , bei 8 das Bit 1.0 und bei 1000 das 1000ste Bit des DB.
    Du mußt nur bitte beachten, dass der DB dann auch so groß sein muss, wie du indexieren willst. Du mußt ihn also handisch so groß anlegen ... vielleicht als Array [0..2000] of Bool ...

    Gruß
    Larry

  5. #5
    Registriert seit
    30.03.2011
    Beiträge
    30
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Mein Index ist dann die integer Variable?

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Ja ... die von mir #meinIndex genannte Variable ist deine Integer-Variable ...!!!

  7. #7
    Registriert seit
    30.03.2011
    Beiträge
    30
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ok. Verstanden. Muss dies ja so erledigen weil in wincc die bitmeldungen ja nur so funktionieren und man leider nicht den Wert einer Variablen auslesen kann um dann eine Meldung abzusetzen die in den eventbuffer eingetragen wird. Oder sehe ich das falsch? Danke für die prompte Hilfe.

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Ich kann dir gerade nicht wirklich folgen ...
    Auf diese Weise setze ich normalerweise keine Bit-Meldungen ...

  9. #9
    Registriert seit
    30.03.2011
    Beiträge
    30
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das Problem ist dass ich aufgrund des Wertes in dieser Variable eine bestimmte Fehlermeldung ins Archiv bringen muss. Geht das denn auch anders in wincc?

  10. #10
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo,
    dafür gibt es m.W. keine SFC - wozu auch.
    Das kannst du ganz einfach über indirekte Adressierung machen.
    Z.B. so :
    Code:
    L #mein_Index
    LAR1
    
    AUF DB120
    SET
    = DBX[AR1,p#0.0]
    ... ist jetzt allerdings ungestest und demnach "quick'n'dirty" - Damit solltest du aber in der Step7-Hilfe weiterkommen ...

    Gruß
    Larry
    Aber wehn "mein_Index" andert bleib das bit hoch.

Ähnliche Themen

  1. mit Schalter bit in byte setzen
    Von Züttu im Forum HMI
    Antworten: 0
    Letzter Beitrag: 04.08.2010, 13:39
  2. S7-Graph: Ausgangsvariable mit Integerwert belegen
    Von spsfreak12345 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 28.12.2009, 14:43
  3. Bit in der SPS setzen mit VB.net 2008 und libnodave
    Von poppycock im Forum Hochsprachen - OPC
    Antworten: 12
    Letzter Beitrag: 17.06.2009, 15:59
  4. Bit in einer 8Bit Variable mit VBS setzen
    Von Anonymous im Forum HMI
    Antworten: 4
    Letzter Beitrag: 14.12.2005, 11:45
  5. Mit F-Tasten Bit Setzen oder Rücksetzen
    Von Anonymous im Forum HMI
    Antworten: 0
    Letzter Beitrag: 28.04.2005, 11:32

Lesezeichen

Berechtigungen

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