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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: IN OUT Variable UDT

  1. #1
    Registriert seit
    04.07.2007
    Beiträge
    82
    Danke
    20
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Ich habe einen FB (FB22) und darin habe ich als IN-OUT Variable einen Datentyp vom Typ UDT3 und UDT2 definiert. Das funktioniert soweit...
    Dann im FB5 rufe ich den FB22 auf und möchte bei dem IN-OUT Anschluss nocheimal eine IN-OUT Variable angeben, die wieder vom Typ UDT3 ist bzw. UDT2. Und das funktioniert nicht in Step7!

    Als Fehler steht da: Unzulässige Parameterversorgung für Daten

    Wie muss man das machen?

    mfg
    Geändert von slma (25.07.2007 um 08:03 Uhr)
    Zitieren Zitieren IN OUT Variable UDT  

  2. #2
    slma ist offline Benutzer
    Themenstarter
    Registriert seit
    04.07.2007
    Beiträge
    82
    Danke
    20
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Kann ich eine IN-OUT variable einfach durchgehen lassen?

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo,
    nach meinen bisheriugen Erfahrungen nicht ...
    Du must die Übergabe-Variable erst zwischenpuffern (TEMP-Bereich).

  4. #4
    Registriert seit
    20.03.2007
    Beiträge
    15
    Danke
    3
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Variable IN_OUT vom Datentyp UDT können nicht initialisiert werden, da in diesem Fall im Instanz-Datenbaustein nur eine Adresse liegt.

  5. #5
    slma ist offline Benutzer
    Themenstarter
    Registriert seit
    04.07.2007
    Beiträge
    82
    Danke
    20
    Erhielt 2 Danke für 2 Beiträge

    Standard

    OK werde es mit dem Temp Bereich versuchen...

    Meinst du da: Am Bausteinbeginn speichere ich meine IN variable auf eine TEMP und am Bausteinende die TEMP wieder auf eine OUT oder???

    mfg

  6. #6
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Achtung mit den UDT's bei IN-OUT-Variablen. Der Aufruf ist ziemlich speicherintensiv. (warum auch immer )
    "Das Leben ist viel zu kurz, um schlecht zu essen !"
    (Johann Lafer zur SWR3 Grillparty)
    Zitieren Zitieren Hinweis  

  7. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Zitat Zitat von slma Beitrag anzeigen
    OK werde es mit dem Temp Bereich versuchen...

    Meinst du da: Am Bausteinbeginn speichere ich meine IN variable auf eine TEMP und am Bausteinende die TEMP wieder auf eine OUT oder???
    Das hatte ich gemeint ... und die TEMP-Var kannst du dann auch dem nächsten FB übergeben ...

    Achtung mit den UDT's bei IN-OUT-Variablen. Der Aufruf ist ziemlich speicherintensiv. (warum auch immer )
    Das ist in SCL so, weil indirekt eine Art Block-Move durchgeführt wird,
    ... musst du aber in AWL per Hand auch machen ...

  8. #8
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von kiestumpe Beitrag anzeigen
    Achtung mit den UDT's bei IN-OUT-Variablen. Der Aufruf ist ziemlich speicherintensiv. (warum auch immer )
    Eine UDT als In/Out-Parameter hat immer 6 Byte. Das ist genau die Länge eines Pointers.
    Leider kann man im FB mit den UDTs nicht genauso arbeiten, wie schon geschrieben muss man die am Anfang des Bausteins in den Temp-Bereich und am Ende wieder zurückkopieren.

    Ich bin mittlerweile von den UDTs wieder abgegangen. Es wäre schön gewesen, wenn Siemens die UDTs wie in einer Hochsprache als typedef (in C) umgesetzt hätte.

  9. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo Thomas,
    das ist in SCL so. Da kannst du programmieren :
    Var1_UDT1 := Var2_UDT1 ;
    Der Code-Umsetzr kümmert sich dann selber darum, den ganzen UDT von der einen in die andere Variable zu schaufeln.

  10. #10
    slma ist offline Benutzer
    Themenstarter
    Registriert seit
    04.07.2007
    Beiträge
    82
    Danke
    20
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    habe das jetzt so gemacht mit TEMP Variable als Zwischenspeicher aber irgendwie funktioniert das gar nicht.
    In meine Array Eintäge werden keine Werte mehr geschrieben...

    was könnte da falsch sein?

    mfg

Ähnliche Themen

  1. S7 Variable in Java Variable umwandeln
    Von maxi81 im Forum HMI
    Antworten: 0
    Letzter Beitrag: 26.11.2010, 17:55
  2. INT Variable
    Von snowkopp im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 21.09.2009, 22:59
  3. # vor Variable !?
    Von the im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 24.06.2009, 10:34
  4. Antworten: 7
    Letzter Beitrag: 05.03.2008, 07:38
  5. OP7 Variable
    Von godi im Forum HMI
    Antworten: 5
    Letzter Beitrag: 25.04.2006, 22:09

Lesezeichen

Berechtigungen

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