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

Ergebnis 1 bis 6 von 6

Thema: Struct mit 64 einzelnen BOOL in ARRAY[1..64] of BOOL kopieren (optimierter Zugriff)

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    kämpfe gerade mit dem optimierten Bausteinzugriff und nun stehe ich vor einem Problem.

    Habe einen Struct mit 64 einzelnen Bool Variabeln. (Einzeln deswegen, damit ich diese im DB einzeln beschriften kann)
    Diesen Struct übergebe ich an einen FC als Input.

    Nun möchte ich die 64 Bits intern in einen Array kopieren, damit ich die Variablen per Schleife ansprechen kann.

    Das ganze sollte mit optimiertem Zugriff laufen.

    Z.B. MOVE_BLK_VARIANT geht bei mir nicht, da die Datenstruktur eine andere ist.

    Habt ihr noch eine Idee, wie man das lösen kann?

    Gruß

    NSC2001

    (Ich verwende TIA 13)
    Zitieren Zitieren Struct mit 64 einzelnen BOOL in ARRAY[1..64] of BOOL kopieren (optimierter Zugriff)  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.797
    Danke
    144
    Erhielt 1.707 Danke für 1.239 Beiträge

    Standard

    Ich würde mir ganz einfach einen FC erstellen, der als Eingangsparameter die Struct, als Ausgangsparameter ein Array besitzt, und dann die 64 Bits einzeln umkopieren. Dann weißt du auch welches Bit in der Struct auf welchem Array-Index landet.
    Wenn es irgendwie geht einen Speicherbereich umzukopieren, müsstest du wissen wo eventuelle Bytedreher eingebaut werden. Dazu habe ich zumindest in den Siemens-Dokus noch nichts gefunden.

  3. #3
    nsc2001 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.01.2011
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Sowas hatte ich mir schon gedacht... hatte nur gehofft, dass es dafür vielleicht eine schöne Systemfunktion ala MOVE_BLK_VARIANT gibt.

  4. #4
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.639
    Danke
    377
    Erhielt 803 Danke für 644 Beiträge

    Standard

    Ist es überhaupt möglich mit "optimierter Zugriff" ?
    In SCL wäre es supereinfach mit AT, aber das geht sicherlich nicht mit optimierter Zugriff ?
    Und andere Verfahren mit z.B. indirekte Addressierung geht wohl auch nur ohne optimierter Zugriff.

    N.B. Ich bin kein Experte in S7-1500 Programmierung.
    Jesper M. Pedersen

  5. #5
    nsc2001 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.01.2011
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Über die FC Variante von Thomas_v2.1 klappt es. In dem FC wird dann jedes Bit einzeln übergeben. Nach Außen ist es dann einmal Struct und einmal Array.

  6. #6
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von JesperMP Beitrag anzeigen
    Ist es überhaupt möglich mit "optimierter Zugriff" ?
    In SCL wäre es supereinfach mit AT, aber das geht sicherlich nicht mit optimierter Zugriff ?
    Doch, das geht:
    Zitat Zitat von TIA-Hilfe F1
    Variablen mit AT überlagern

    ...
    Regeln
    Folgende allgemeine Regeln gelten für das Überlagern von Variablen:

    • In AWL, KOP und FUP ist das Überlagern in S7-1200 und S7-1500 möglich.
    • In SCL ist das Überlagern in allen CPU-Familien möglich.
    • ...
    • Das Überlagern von Variablen ist in folgenden Bausteinen möglich:

      • In Codebausteinen mit Standardzugriff
      • In Codebausteinen mit optimiertem Zugriff für Variablen mit der Remanenzeinstellung "Im IDB setzen"


    • ...
    Wenn man aber die Remanenz im IDB setzen muss, bedeutet dass, das auch einer vorhanden sein muss. Das dürfte auf einen FC nicht zutreffen.

    Der TE hat somit die Wahl zwischen zusätzlichem FC (bei Thomas_v2.1's Variante) oder zusätzlichem IDB (bzw. MI), in dem er statt FC auf einen FB wechselt und dann die Sicht AT verwendet.

Ähnliche Themen

  1. TIA Eingangsbyte -> Struct aus Bool
    Von Nico1977 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 16.10.2014, 01:33
  2. Antworten: 10
    Letzter Beitrag: 01.08.2014, 06:17
  3. Zugriff auf bool-Variable via C#
    Von SteffenP im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 06.12.2013, 10:55
  4. Allen Bradley Word in Bool-Array kopieren
    Von mazoellner im Forum Sonstige Steuerungen
    Antworten: 14
    Letzter Beitrag: 11.07.2011, 09:50
  5. bool Signal mit Move in DB kopieren.
    Von swisscrane im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 11.06.2008, 15:04

Lesezeichen

Berechtigungen

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