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

Ergebnis 1 bis 9 von 9

Thema: Pointerübergabe an FC

  1. #1
    Registriert seit
    12.08.2010
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Ich habe einen FC an den ich eine Struktur übergebe. Im FC wird diese Struktur wie folgt zerlegt:

    Code:
    // Pointer ins AR2 laden
          L     P##Struktur
          LAR2  
    //DB-Nummer der Struktur ermitteln
          L     W [AR2,P#4.0]               // DB Nummer
          T     #DBNr
    //Anfangsadresse der Struktur ermitteln
          L     W [AR2,P#8.0]               // Anfangsadresse im Pointerformat
          T     #AnfAdr
    //Länge der Struktur ermitteln
          L     W [AR2,P#2.0]               // Anzahl Bytes im Datenbereich
          L     2
          /I    
          T     #NumberOfElements           // Number of elements WORD
    Dies funktioniert wunderbar, wenn sich die Sruktur in einem globalen DB befindet.
    Wenn ich aber nun eine Struktur in einem FB als statische Variable deklariere und diese an den FC übergebe, funktioniert es nicht.

    Funktionierender Code im FB10:
    Code:
          CALL  "Struct_Check"
           Struktur         :="DB1".MyStruct
           Check            :=M10.0
    NICHT funktionierender Code im FB10 (Aufruf Call FB10, DB10):
    Code:
          CALL  "Struct_Check"
           Struktur         :="MyStruct" // Struktur im FB10 deklariert als statische Variable
           Check            :=M10.0
    Was kann ich machen, damit ich im FC auch die Struktur verarbeiten kann, welche als statische Variable im aufrufenden Baustein deklariert ist?
    Der Pointer müsste doch zur Laufzeit in den DB10 an die richtige Adresse verweisen.

    Gruss
    NeuSim
    Zitieren Zitieren Pointerübergabe an FC  

  2. #2
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Was bekommst Du denn für Werte für #DBNr und #AnfAdr?

    Es kann sein, dass die DBNr nicht mit übertragen wird.
    Außerdem bin ich mir nicht sicher, ob ein Zugriff auf DI im Sinne von L DIW xxx oder U DIX xx.x in FC möglich ist.
    Gruß
    Michael

  3. #3
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Im Allgemeinen sollte dem DB1 ein Name verpasst werden.
    Ohne Symbolik kanns Probleme geben.


    zum Prob.

    Lies dir das mal durch.

    http://sps-forum.de/showthread.php?t=23433

  4. #4
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Als was ist dein In-Parameter am FC definiert?

    Als ANY oder Pointer oder Struct?
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  5. #5
    NeuSim ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    12.08.2010
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Der In-Parameter ist als Any definiert.

    Die Länge der Struktur welche ich übergebe ist unterschiedlich. Darum ermittle ich im FC die Länge der Struktur für die Weiterverarbeitung.
    Kann ich im temp Bereich des FC eine Deklaration vom Datentyp Any machen und meine IN-Struktur für die Weiterverarbeitung dorthin kopieren?

    Für den DB10 wurde natürlich ein Symbol vergeben.

    Im FC erhalte ich als DB-Nr: 0, und als Anfangsadresse 1004 (dezimal).

    Gruss
    NeuSim

  6. #6
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Also Ich hab das grad im Simulator Probiert, da gehts.
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  7. #7
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Ich verweise dann halt nochmal auf die von 4-lagig erstellte Beispiele.

    http://sps-forum.de/showthread.php?t=23433

    Eigentlich ist dort alles beantwortet

  8. #8
    NeuSim ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    12.08.2010
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Jochen

    Ich machs auch im Simulator, bei mir gehts nicht!
    Kannst Du mir Dein Projekt senden, dann kann ichs bei mir ausprobieren.

    Gruss
    NeuSim

  9. #9
    NeuSim ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    12.08.2010
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Ich glaube dass nur ein kleiner Schreibfehler zu dem ganzen Problem geführt hat.
    Es sollte wirklich funktionieren.

    Sorry an alle für die Aufregung und vielen Dank für die Hilfe.

    Gruss
    NeuSim

Lesezeichen

Berechtigungen

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