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

Ergebnis 1 bis 7 von 7

Thema: Verschieben von Struck mit SCL

  1. #1
    Registriert seit
    17.10.2013
    Beiträge
    48
    Danke
    10
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,
    Ich hab grade das Problem das ich gerne Daten von einen Struct in einen Anderen schreiben mächte. Zum Auf des Struckts er wird in einem DB gespeichert und sieht wie folgt aus:
    DB1
    Struct1
    Struct2
    Struct2.1
    Bit1
    Bit2
    Bit3
    Bit4
    Struct2.2
    Struct2.3
    Struct2.4


    Ich hoffe mal das man das erkennt. Struct 2.1 bia Struct 2.4 sind gleich aufgebaut. Ich will jetzt mit möglichst wenig Aufwand die Daten im Struct 2 Verschieben. Idee wäre wie bei einem Move einfach Struct 2.1 in Struct 2.2 Schieben wie kann ich das mit SCL machen?

    Ich habe es schon mit einer Zuweisung versucht:

    DB1.Struct2.Struct2.1 := DB1.Struct2.Struct2.2;

    Aber ohne erfolg...
    Zitieren Zitieren Verschieben von Struck mit SCL  

  2. #2
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.622
    Danke
    377
    Erhielt 799 Danke für 642 Beiträge

    Standard

    Die Namen in der Deklaration können nicht ein punkt einhalten. Ich glaube nicht das dein STRUCT "Struct2.1" heissen kann.
    Das Punkt ist ein Trenner zwischen STRUCTs.

    Hier ein Bespiel das definitiv geht:

    "MyDB".Produkt_1.Rezept_1 := "MyDB".Produkt_1.Rezept_2 ;

    Wobei Rezept_1 und Rezept_2 sind STRUCTs mit den gleichen Aufbau.

    Wenn man mit STRUCTs Daten hin und her schaufelt, dann lohnt es sich die STRUCT mittels UDTs zu definieren. Das erleichtert das Arbeit und meidet Fehler.
    Jesper M. Pedersen

  3. Folgender Benutzer sagt Danke zu JesperMP für den nützlichen Beitrag:

    BlueDogi (02.04.2014)

  4. #3
    Registriert seit
    17.10.2013
    Beiträge
    48
    Danke
    10
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Das mit der Zuweisung Funkt jetzt bei mir... Die Struct namen die ich oben Benutzt habe waren nur Bspiele. Richtig sieht es z.B. so aus:

    "DATA".Lager_1.Pos_1

    Ich hab gedacht mit Zuweisungen geht das nicht weil der bei mir eben immer einen Fehler angezeigt hat "Ungültige Zuweisung". Aber Jetzt gehts auch...

    Danke für die Hilfe.

  5. #4
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard

    Zitat Zitat von JesperMP Beitrag anzeigen
    Die Namen in der Deklaration können nicht ein punkt einhalten. Ich glaube nicht das dein STRUCT "Struct2.1" heissen kann.
    Das Punkt ist ein Trenner zwischen STRUCTs.

    Hier ein Bespiel das definitiv geht:

    "MyDB".Produkt_1.Rezept_1 := "MyDB".Produkt_1.Rezept_2 ;

    Wobei Rezept_1 und Rezept_2 sind STRUCTs mit den gleichen Aufbau.

    Wenn man mit STRUCTs Daten hin und her schaufelt, dann lohnt es sich die STRUCT mittels UDTs zu definieren. Das erleichtert das Arbeit und meidet Fehler.
    Hi,

    doch, leider doch. Die Namen dürfen Punkte enthalten. Wenn eine Name ein Rechen oder Satzzeichen enthält, dann muss dieser Name in doppelten Anführungszeichen eingeschlossen werden.

    DB1.Struct2."Struct2.1" := DB1.Struct2."Struct2.2";

    siehe auch Adressierung-Symbolisch oder Absolut oder wie???


    'n schön' Tach auch
    HB

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

    Standard

    Tatsächlich? Wie kann man in dem TIA eine DB-Variable anlegen, welche einen Punkt im Name enthält? In Step7 Classic geht sowas nicht.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #6
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.622
    Danke
    377
    Erhielt 799 Danke für 642 Beiträge

    Standard

    Wenn das gehen wurde, wäre es ein Quelle von Fehler und Verwirrung.
    Ich hoffe nicht das TIA damit verschlimmbessert wurde.
    Jesper M. Pedersen

  8. #7
    Registriert seit
    24.02.2014
    Ort
    Augsburg
    Beiträge
    12
    Danke
    0
    Erhielt 4 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Kannst du die Structuren evtl. als UDT (PLC-Datentyp) definieren?
    Dann kannst du es einfach mit ":=" zuweisen.

Ähnliche Themen

  1. Step 7 Texte verschieben von DB1 --> DB2
    Von Benni89 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 14.02.2014, 00:28
  2. Antworten: 8
    Letzter Beitrag: 04.12.2012, 17:29
  3. 2 Ecken von einem Viereck verschieben
    Von mendelfranz im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 08.12.2011, 14:00
  4. SCL: Daten Speichern/Verschieben
    Von zloyduh im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 08.08.2011, 09:38
  5. Stack verschieben im DB mittels SCL
    Von FAAT2011 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 20.06.2011, 22:27

Stichworte

Lesezeichen

Berechtigungen

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