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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Datenbaustein ansprechen?

  1. #11
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von PN/DP Beitrag anzeigen
    Idee: das Struct per IN_OUT an Deinen Baustein übergeben und da per "AT" als Array of Word ansprechen. Ich hoffe, daß das geht - welche SPS programmierst Du?

    Harald
    Ist eine S7-1200er Steuerung!
    LG
    spirit

  2. #12
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von RONIN Beitrag anzeigen
    Wo ist nun das Array dass du beschrieben hattest?

    Einen Struct_of_Bit kannst du symbolisch eigentlich nur über Umwege nullen.
    Der einfachste Weg: Eine leere Kopie der Strukutr ablegen und mit einem einzelnen Move umkopieren.
    Alle anderen Wege (z.B. an FB übergeben und dort mit AT) die ich kenne sind eher umständlich.

    Hast du auch Kommentare bei deinen Meldungen?
    Wenn deinem Variablen "Meldung_1000 bis Meldung_x" heißen und keinen eigenen Kommentar brauchen, dann würde sich ein ARRAY[1000..x]_of_Bool auch anbieten.
    Dann ginge die Schleife oder der FILL-Befehl.

    Sonst einfach tippen, wenn du in FUP programmierst kannst du ja trotzdem ein AWL-Netzwerk einfügen. Dann wäre dass auch nicht so viel Arbeit.
    AWL klappt ja nicht, weil S7-1200!

    Ja, habe auch Kommentare hinter den einzelnen Meldungen.

    Das Array, das ich beschrieben hatte, steht unter den HMI-Variablen:


    Unbenannt.JPG
    LG
    spirit

  3. #13
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.017
    Danke
    511
    Erhielt 2.648 Danke für 1.910 Beiträge

    Standard

    Nimm enfach das erste Structelement mit der Maus und ziehe es in deinen SCL-Baustein.
    Dort dann die Zahl in den ecckigen Klammern durch dieZählvariable (bei mit I) ersetzen.

    Du kannst auch die die ganze Struktur nochmals als INOUT definieren und dann übergeben. (Besser wäre hier aber einen Datentyp anzulegen und diesen im DB und in der Schnittstelle des FC/FB zu nutzen.)
    Dann ziehst du das 1. Element au der INOUT-Deklaration in den Code.
    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

  4. #14
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Nimm enfach das erste Structelement mit der Maus und ziehe es in deinen SCL-Baustein.
    Dort dann die Zahl in den ecckigen Klammern durch dieZählvariable (bei mit I) ersetzen.
    Aber da bekomme ich ja eben einen Fehler (rot unterstrichen) - oder habe ich dich falsch verstanden?


    Unbenannt.JPG


    Blödes TIA ...
    LG
    spirit

  5. #15
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.214
    Danke
    430
    Erhielt 650 Danke für 490 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Nimm enfach das erste Structelement mit der Maus und ziehe es in deinen SCL-Baustein.
    Dort dann die Zahl in den ecckigen Klammern durch dieZählvariable (bei mit I) ersetzen
    @Ralle: Jetzt dämmert mir was Spirit uns sagen will...

    In der SPS hat Spirit einen Struct_of_Bool
    Zitat Zitat von spirit Beitrag anzeigen
    nur mein DB hat als Datentyp ein "Struct":
    Anhang 33884
    Zitat Zitat von spirit Beitrag anzeigen
    ... doch Harald - sieht dann wie folgt aus:
    Anhang 33885
    Das Ganze bis Nr_1127!
    Auf der HMI hat Spirit dann das ARRAY von dem gesprochen wurde.
    Zitat Zitat von spirit Beitrag anzeigen
    Das Array, das ich beschrieben hatte, steht unter den HMI-Variablen:
    Unbenannt.JPG
    Da wir also kein Array auf der SPS haben, können wir die Array-Befehle vergessen.

    @Spirit: Eine bessere Beschreibung am Anfang hättte nicht geschadet!
    Wenn man deinen Eingangspost liest muss man eigentlich davon ausgehen dass das Array auf der SPS ist.

    Ich nehme nun auch an dass du die Daten schon von der SPS aus und nicht vom HMI löschen willst.
    Welche Möglichkeiten fallen mir nun ein um einen Struct_Of_Bool zu löschen
    • Gleichen leeren Struct drüberkopieren
    • An FB übergeben mittels AT (sofern die 1200 AT kann)
    • kleine SCL-FC in dem man es einfach runtertippt


    Das Erste ist wohl das einfachste.
    Geändert von RONIN (06.09.2016 um 13:00 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  6. #16
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von RONIN Beitrag anzeigen
    @Ralle: Jetzt dämmert mir was Spirit uns sagen will...

    In der SPS hat Spirit einen Struct_of_Bool



    Auf der HMI hat Spirit dann das ARRAY von dem gesprochen wurde.

    Da wir also kein Array auf der SPS haben, können wir die Array-Befehle vergessen.

    @Spirit: Eine bessere Beschreibung am Anfang hättte nicht geschadet!
    Wenn man deinen Eingangspost liest muss man eigentlich davon ausgehen dass das Array auf der SPS ist.

    Ich nehme nun auch an dass du die Daten schon von der SPS aus und nicht vom HMI löschen willst.
    Welche Möglichkeiten fallen mir nun ein um einen Struct_Of_Bool zu löschen
    • Gleichen leeren Struct drüberkopieren
    • An FB übergeben mittels AT (sofern die 1200 AT kann)
    • kleine SCL-FC in dem man es einfach runtertippt


    Das Erste ist wohl das einfachste.
    Ok, du hast recht RONIN - habe mich wirklich unklar (frauenuntypisch ) ausgedrückt!

    Und ja, ich möchte die Daten von der SPS aus löchen.

    --> Also könnte ich nun schließlich im gleichen DB nochmals so ein Struct_of_Bool anlegen und dieses dann per Move-Befehl auf das eigentliche Struct in selbigem DB kopieren, richtig?
    LG
    spirit

  7. #17
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.214
    Danke
    430
    Erhielt 650 Danke für 490 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    --> Also könnte ich nun schließlich im gleichen DB nochmals so ein Struct_of_Bool anlegen und dieses dann per Move-Befehl auf das eigentliche Struct in selbigem DB kopieren, richtig?
    Ja, einfach die bestehende Struktur per STRG+C /V (der Aufbau der beiden muss gleich sein) kopieren und dann mit MOVE die ganze Struktur umkopieren.
    Du kannst die Kopie der Struktur zum Umkopieren auch sonst wo, z.B. im Stat/Temp des Basteins in dem du das Umkopieren durchführst, anlegen.
    Geändert von RONIN (06.09.2016 um 13:20 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

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

    spirit (06.09.2016)

  9. #18
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.485
    Danke
    408
    Erhielt 868 Danke für 702 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich erstelle mir von solchen Strukturen, die ich öfters leeren muss, auch ein nichtremanentes (leeres bzw. Grundstellungs-) Abbild.
    Entweder in einem Globalen DB oder im Static-Bereich eines IDB. (Meine mich zu erinnern, mal gelesen zu haben, das die S7-1200 auch den Temp-Bereich initialisiert. Das wäre dann zum Speichersparen am Idealsten, aber da verlass' ich mich lieber nicht drauf.)
    Dann kann ich durch einfache Zuweisung die Struktur löschen bzw. die originale wieder herstellen:
    Code:
    Struct := Empty.Struct;
    Die Struktur dann am besten als PLC-Datentyp (udt) angelegt, dann braucht man bei Erweiterungen der Struktur nur diesen Datentyp erweitern und muss sich nicht mehr um Löschschleifen u.ä. kümmern, da die immer mit angepaßt werden.

    Struct leeren 1.jpg

    Struct leeren 2.jpg

    Insbesondere bei solch zusammengewürfelten Strukturen, wie im Screenshot, ist das Löschen für mich so am Einfachsten.

    Nachteilig ist dafür, dass jemand in diesen Feldern Werte verändern könnte und damit ungewollte Zustände herbei führt.
    Das kann man aber m.M.n. durch Veränderung des Programmcodes auch.

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 09.06.2015, 16:03
  2. Step 7 Datenbaustein ansprechen?
    Von spirit im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 30.09.2013, 20:01
  3. TIA Datenbaustein wortweise ansprechen
    Von Dumpfbacke im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 02.05.2013, 15:44
  4. Antworten: 4
    Letzter Beitrag: 23.08.2006, 15:02
  5. Datenbaustein arry ansprechen
    Von totalfuchs im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 22.09.2005, 11:53

Lesezeichen

Berechtigungen

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