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

Ergebnis 1 bis 7 von 7

Thema: Selbst gebaute FC; Adresse aus DB übergeben

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,
    ich versuche gerade einer FC eine DB-Adresse zu übergeben und diese dann weiter zu verarbeiten.
    Egal in welchem Datenformat ich die IN-Variable deklariere(pointer, bool, word)...es kommt nur mißt raus.
    Hat jemand von euch nen richtigen Ansatz?

    Code:
          
    
    OB1
    CALL  FC     1
           zeit:=DB1.DBW10
    
    FC1 
     L     P##zeit
            LAR1  
     L     DBW [AR1,P#0.0]             // von
     T     DBW [AR1,P#2.0]             // nach
     L     DBW [AR1,P#4.0]             // von
     T     DBW [AR1,P#6.0]             // nach
    ganz locker!
    Zitieren Zitieren Selbst gebaute FC; Adresse aus DB übergeben  

  2. #2
    Registriert seit
    03.09.2009
    Beiträge
    129
    Danke
    15
    Erhielt 19 Danke für 19 Beiträge

    Standard

    Mit dem Befehl L##zeit lädst du die Adresse 10.0 ohne Bezug auf einen Speicherbereich (hier DB). Versuch mal vor deinen Kopieraktionen den DB aufzurufen (AUF DB1), dann sollte es klappen!

  3. #3
    Avatar von Matze83
    Matze83 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.07.2009
    Beiträge
    6
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das hatte ich bereits erfolgreich versucht.
    Das Problem ist, dass ich mit dieser Funktion auf mehrere DB´s zugreifen möchte :/
    ganz locker!

  4. #4
    Registriert seit
    03.09.2009
    Beiträge
    129
    Danke
    15
    Erhielt 19 Danke für 19 Beiträge

    Standard

    Eine Möglichkeit wäre den datentyp Pointer zu verwenden. Dieser hat 6Byte (2 Byte: Datenbausteinnummer; 4 Byte: Adresse). Du musst nur die Datenbausteinnummer aus dem Pointer holen und mit AUF[#myDBNumber) den richtigen Baustein öffnen.

  5. Folgender Benutzer sagt Danke zu Beckx-net für den nützlichen Beitrag:

    Matze83 (29.10.2012)

  6. #5
    Avatar von Matze83
    Matze83 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.07.2009
    Beiträge
    6
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habs jetzt so gelöst:
    Code:
          AUF   #DBNR
          L     P##zeit
          LAR1  
          L     DBW [AR1,P#0.0]             // von
          T     DBW [AR1,P#2.0]             // nach
          L     DBW [AR1,P#4.0]             // von
          T     DBW [AR1,P#6.0]             // nach
    Die DB-Nummer als Block_DB deklariert und siehe da es funzt!
    Besten Dank für deine Hilfe!!!
    ganz locker!

  7. #6
    Registriert seit
    03.09.2009
    Beiträge
    129
    Danke
    15
    Erhielt 19 Danke für 19 Beiträge

    Standard

    Oder mit nur einem Übergabeparameter als Pointer:
    Code:
      
    VAR_INPUT
      myPointer : POINTER ;    
    END_VAR
    VAR_TEMP
      myDatablock : WORD ;    
      myAddress : DWORD ;    
    END_VAR
    BEGIN
    NETWORK
    TITLE =
    
          L     P##myPointer; 
          LAR1  ; 
    
          L     W [AR1,P#0.0]; 
          T     #myDatablock; 
    
          L     D [AR1,P#2.0]; 
          T     #myAddress; 
    
          AUF   DB [#myDatablock]; 
          L     DBW [#myAddress]; 
          T     MW    30; 
    END_FUNCTION

  8. #7
    Avatar von Matze83
    Matze83 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    20.07.2009
    Beiträge
    6
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ok so funzt es auch... Astrein!

Ähnliche Themen

  1. Adresse übergeben? - Pointer?
    Von GSOhm im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 17.10.2012, 15:46
  2. Adresse an Pointer übergeben
    Von schuld im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 17.11.2010, 12:42
  3. ANY Paramater aus staischem Bereich übergeben
    Von steinche im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 07.12.2009, 14:51
  4. An Libnodave eigenen Socket aus .NET übergeben?
    Von Manni01 im Forum Hochsprachen - OPC
    Antworten: 15
    Letzter Beitrag: 18.06.2009, 14:19
  5. PEW Adresse aus DB
    Von skyracer im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 09.05.2007, 18:53

Lesezeichen

Berechtigungen

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