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

Ergebnis 1 bis 10 von 10

Thema: Struct (variabel) in Struct kopieren

  1. #1
    Registriert seit
    28.10.2010
    Ort
    36205 Sontra
    Beiträge
    111
    Danke
    14
    Erhielt 5 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    gibt es etwas, womit man einen Struct in einen Datenbaustein in einen anderen Struct eines anderen Datenbaustein kopieren kann.
    Habe schon versucht, in SCL dies zu machen (mit Input String, DB_Block unt INT), hat aber nicht funktioniert.

    Danke
    Zitieren Zitieren Struct (variabel) in Struct kopieren  

  2. #2
    Registriert seit
    03.04.2004
    Beiträge
    121
    Danke
    7
    Erhielt 14 Danke für 10 Beiträge

    Standard

    Hallo,

    am besten du definierst einen Datentyp (bei TIA unter 'PLC-Datentypen'), den du dann in beiden Bausteinen verwendest.
    Dann kannst du in SCL direkt per Intellisense den ganzen Block auswählen und kopieren.

    //Jörg

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

    Standard

    Hi

    einen Datentyp definieren

    in beiden DB diesen verwenden

    derDB1
    var1 : myType

    derDB2
    var3 : myType


    und dann einfach zuweisen

    "derDB2".var3 := "derDB1".var1


    Wer viel tippen will, kann auch in den beiden DB zwei völlig gleich aufgebaute Strukturen aufbauen. Dann klappt das auch. Bei jeder Änderung fällt das aber auseinander.


    'n schönen Tach auch
    HB

  4. #4
    kliebisch.m ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    28.10.2010
    Ort
    36205 Sontra
    Beiträge
    111
    Danke
    14
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Hallo und danke der Antworten.

    Leider bekomme ich das nicht zum laufen. Vielleicht hat jemand die Lösung:

  5. #5
    Registriert seit
    02.04.2013
    Beiträge
    143
    Danke
    7
    Erhielt 22 Danke für 20 Beiträge

    Standard

    Dein Bild ist sehr interessant...
    Auf dem Bild erkenne ich einen FC ? Richtig?
    Der "Temp"-Bereich bleibt immer nur solange gültig, wie gerade der FC aufgerufen wird.

    Ich nehme mal an, dass #DB_nummer und #DB_nummer_2 jeweils Instanz-DBs sind? Dann kann das auch nicht funktionieren.

    Poste bitte drei Bilder:
    1. Den Aufruf des FCs
    2. Struktur von DB 1
    3. Struktur von DB 2

  6. #6
    kliebisch.m ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    28.10.2010
    Ort
    36205 Sontra
    Beiträge
    111
    Danke
    14
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Hallo Leute, hallo shutdown_TIA12,

    der scl-Baustein vom Bild soll folgendes machen:

    Ich habe Erleuterungen:
    Nummer von DB1: (z.B. 100), Nummer nach DB: (z.B. 101).
    Hier sind jeweils in den DB's die selben Struct'e angelegt mit selben Namen, dem ich mit einem String an den Eingangsparametern gebe.

    Anhand des Stringes soll jetzt das Programm von DB 1 nach DB 2 den Struct kopieren.
    Daher sind beide #DB_nummer und Name Eingangsparameter!

    Danke der Hilfe

  7. #7
    Registriert seit
    02.04.2013
    Beiträge
    143
    Danke
    7
    Erhielt 22 Danke für 20 Beiträge

    Standard

    Hab mal schnell im OB1 ein Netzwerk mit MOVE erstellt ... und zwei DBs.
    Mein PLC-Datentyp mit den Namen "Block_DB" habe ich selbst erstellt.
    Und hier die Simulationsergebnisse:

    vorher:

    Capture1.jpg

    nachher:
    Capture2.jpg

  8. #8
    kliebisch.m ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    28.10.2010
    Ort
    36205 Sontra
    Beiträge
    111
    Danke
    14
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Hallo und danke shutdown,

    vielleicht hast du mich falsch verstanden.

    Ich wollte keinen String kopieren, sondern einen kompletten Struct von einem Datenbaustein in einen anderen.

    Gruß

  9. #9
    Registriert seit
    02.04.2013
    Beiträge
    143
    Danke
    7
    Erhielt 22 Danke für 20 Beiträge

    Standard

    Vielleicht kommt das bei dem Bild nicht 100% rüber... Aber mein "Struct" (hier: PLC-Datentyp) besteht aus zwei Strings. Ergo, bilden beide Strings meinen Struct

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo kliebisch.m
    Zitat Zitat von kliebisch.m Beitrag anzeigen
    Hallo und danke der Antworten.

    Leider bekomme ich das nicht zum laufen. Vielleicht hat jemand die Lösung:
    Das wundert mich nicht.

    Ein Input vom Typ Block_DB ist faktisch nur eine DB-Nummer. Wie soll ein Compiler wissen welchen Datentyp der DB hat, der da rein kommen wird.
    Dann der Versuch den Namen einer Struktur einer String-Variable zuzuweisen. Nett und völlig sinnlos.
    Und schließlich der Zugriff mit #DB_nummer.#Temp_1
    So kann man dem Compiler nicht beibringen welchen Datentypen dein DB hat.

    Wenn du 1200 oder 1500 verwendest, dann klappt das in etwa so:
    FUNCTION dings
    VAR_INPUT
    bin_laden : Bool;
    quelle : "myUDT";
    END_VAR
    VAR_INOUT
    ziel : "myUDT";
    END_VAR

    if #bin_laden then
    ziel := quelle;

    und irgendwo dann
    dings( bin_laden := true, quelle := "derEineDB", ziel := "derAndereDB" )
    und keine Angst, hier werden nur Referenzen an dings übergeben

    'n schönen Tach auch
    HB
    Geändert von HelleBarde (12.11.2013 um 21:17 Uhr)

Ähnliche Themen

  1. TIA Struct nach Array kopieren
    Von Christof G im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 04.07.2013, 13:37
  2. TIA V12 - STRUCT nach INT kopieren
    Von mnuesser im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 09.06.2013, 15:30
  3. Antworten: 14
    Letzter Beitrag: 14.02.2012, 15:29
  4. Antworten: 5
    Letzter Beitrag: 08.04.2011, 14:36
  5. SCL Struct in Struct
    Von Techniker_85 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 18.02.2011, 09:45

Lesezeichen

Berechtigungen

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