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

Ergebnis 1 bis 9 von 9

Thema: PLC-Datentyp rücksetzen d.h. alle Bits auf 0 setzen

  1. #1
    Registriert seit
    20.09.2015
    Beiträge
    13
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    kennt jemand eine Möglichkeit, ein Datenwort in einem DB, das über einen PLC-Datentyp programmiert ist auf 0 zu setzen bzw. alle Bits zurückzusetzen,
    ohne jedoch für sämtliche Bits ein Rücksetze Bit zu programmieren.
    Es soll keine absolute Adressierung angewendet werden. Nur symbolische Programmierung.

    Also nicht: L 0
    T DBx.DBWx ( nicht absolut, nur symbolisch )

    Danke und Gruß
    Zitieren Zitieren PLC-Datentyp rücksetzen d.h. alle Bits auf 0 setzen  

  2. #2
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.334
    Danke
    448
    Erhielt 688 Danke für 513 Beiträge

    Standard

    Du hast uns noch nicht verraten welche Steuerung, 300/400 oder 1200/1500?
    Bei der ersteren wäre es z.B. SFC21-FILL.

    Bei der 1200/1500 geht zum Beispiel recht einfach wenn man eine leere Struktur des selben Typs hat und dann diese einfach per MOVE auf die zu löschende
    kopiert.
    Geändert von RONIN (25.09.2015 um 16:39 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  3. #3
    Bitschieber ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.09.2015
    Beiträge
    13
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo und Danke für die rasche Antwort.
    Habe eine CPU 1511.
    Das mit dem leeren Datentyp habe ich auch schon gemacht.
    Ist halt leidig, dass man hier für jeden Datentyp einen 2.ten, leeren anlegen muss.
    ( Wegen der Übersicht).
    Trotzdem besten Dank

  4. #4
    Registriert seit
    20.09.2015
    Beiträge
    6
    Danke
    0
    Erhielt 4 Danke für 3 Beiträge

    Standard

    Du könntest evtl einen Slice-Zugriff nutzen.
    Hier hast du die Möglichkeit auf einzelne Bits, Byte,... einer symbolischen Variable zuzugreifen.

    Bsp.:
    L 0
    T "DB_Name".StrukturName.VarName.%W0 // alle Bits von Wort 0 zurücksetzen

    geht auch mit:
    .%X0 // Bit
    .%B0 // Byte
    .%W0 // Word
    .%D0 // DWord

  5. Folgender Benutzer sagt Danke zu quickTRANSLATE für den nützlichen Beitrag:

    Bitschieber (27.09.2015)

  6. #5
    Bitschieber ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.09.2015
    Beiträge
    13
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    das hört sich gut an. Werde es heute mal ausprobieren.
    Vielen Dank schon mal vorab. Melde mich wieder.

  7. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Per Slice-Zugriff kann man nur auf Teile einer Variablen zugreifen, nicht jedoch Variablen-übergreifend.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  8. #7
    Bitschieber ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.09.2015
    Beiträge
    13
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    bekomme es mit der Slice-Funktion auch nicht hin. Alles rot. TIA kann/kennt das nicht.
    Also zur Erklärung:
    Habe einen PLC-Datentyp mit 16 Bool. Den will ich auf einen Rutsch zu -0- setzen.

    Absolute Adressierung:
    L 0
    T DB51.DBW150
    Kein Problem. Ist zwar gelb hinterlegt, aber's geht.

    Aber symbolisch, ???

    Gruss Uli

  9. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Da es in dem neuen "optimierten" TIA nicht mehr sicher ist, daß Struktur-Member auch tatsächlich hintereinander im Speicher liegen, ist es auch nicht möglich, den von der Struktur belegten Speicher als Byte/Word/Doppelword... symbolisch anzusprechen.

    Zum Nullsetzen aller Struktur-Member kann man nur
    • jeden Struktur-Member einzeln symbolisch ansprechen, sprich: man muß jedes einzelne Bit einzeln auf 0 setzen (bei Bool-Array geht das auch in einer Schleife)
    • oder man kopiert auf die Struktur eine andere Struktur, wo alle Member (Bits) bereits auf 0 sind
    • oder man zwingt die Struktur auf einen Speicherplatz, wo garantiert ist, daß die einzelnen Struktur-Member hintereinander liegen, und spricht den Speicherplatz dann Byte/Word/Doppelword-weise strukturiert an --> mittels AT, was aber nur sehr eingeschränkt geht und ein anschließendes Kopieren auf die Zielstruktur erfordert


    Die einfachste und effizienteste Methode ist tatsächlich das Kopieren einer zweiten vorbereiteten Struktur mit alles 0 auf die Zielstruktur.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    Bitschieber (28.09.2015)

  11. #9
    Bitschieber ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.09.2015
    Beiträge
    13
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nochmals Danke für Eure Antworten.
    Es wird wohl beim Überschreiben mit einer leeren Struktur bleiben.
    Gruss Uli

Ähnliche Themen

  1. Step 5 Ausgänge setzen/rücksetzen
    Von hoffi im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 07.01.2014, 12:22
  2. Bits bei Betriebsartumschaltung auf 0 setzen
    Von Servernexus im Forum HMI
    Antworten: 5
    Letzter Beitrag: 20.01.2012, 09:01
  3. Antworten: 2
    Letzter Beitrag: 15.02.2011, 19:38
  4. Mehrere Bits gleichzeitig setzen bzw. rücksetzen
    Von funkey im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 18.01.2011, 16:13
  5. Ausgang setzen und rücksetzen
    Von Andreas k im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 26.07.2010, 16:39

Stichworte

Lesezeichen

Berechtigungen

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