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

Ergebnis 1 bis 9 von 9

Thema: DB und Pointer

  1. #1
    Registriert seit
    02.08.2007
    Ort
    BW im Ostalbkreis
    Beiträge
    249
    Danke
    32
    Erhielt 27 Danke für 25 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe ein kleine Anfängerfrage. Bzw. ich hab mich durch mehrere Threads gelesen und werd aber nicht wirklich schlauer.

    Ich habe folgenden Quelltext und möchte diesen in einen FB packen.
    Von aussen möchte ich gerne den DB und die Adresse für den Zeiger vorgeben.

    Code:
          AUF   DB    12                    // DB mit Sende/Empfangsbereich
          L     14                          // Größe des Empfangspuffers
          L     #Channel                    // Empfangskanal
          LAR1  P#DBX 4.0                   // Zeiger auf Empfangsbereich
          U     #RTrigger
          UC    SFB  226                    // RECEIVE
          T     MW   202                    // Anzahl Daten die empfangen wurden
          UN    #RTrigger                   // Trigger auf 1 setzen, damit Daten empfangen werden
          S     #RTrigger
          L     14                          // 14 Empfangsbytes werden erwartet
          <>I   
          SPB   SEND
    Machbar ist so etwas mittels ANY-Datentyp wenn ich das richtig verstanden habe. Nur die Frage wie geht das??? Hat jemand für mich ein einfaches Beispiel???

    Vielen Dank für eure Hilfe

    Gruß

    Philipp
    Zitieren Zitieren DB und Pointer  

  2. #2
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    guckst du hier
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. #3
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard

    Schau mal bei Member "volker" in der Suche und auch bei Ihm auf der HP. Da gibt es einige ANY-Bsp., hoffe das er die Seiten nicht geändert hat.

    Gruß, pt
    Gegen Schwachsinn, Schwachköpfe und armselige Trittbrettfahrer kann man nicht argumentieren.

    Gott sieht alles, auch Signaturen in Geheimschrift,,... aber er petzt nicht.

  4. #4
    PhilippL ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.08.2007
    Ort
    BW im Ostalbkreis
    Beiträge
    249
    Danke
    32
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Hallo,

    ich sag soweit mal danke! Wenn ichs verstanden hab gibts keine Fragen mehr... ich denk jedoch da werden noch einige kommen...

    Gruß Philipp

  5. #5
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Geht evtl. auch ohne Any, wenn du

    Code:
    AUF DB 12
    durch

    Code:
    L DBNR
    T DBNR_Temp
    AUF DB [DBNR_Temp]
    ersetzt und DBNR als Int-Parameter übergibst. DBNR_Temp ist eine Word.

    Das hängt davon ab, ob immer der Adresse im DB immer dieselbe sein kann. Wenn auch diese variiert, ist Any tatsächlich sinnvoller.

    PS: Wo hast du den Code her und was für eine SPS (SFB226???) ist das eigentlich?
    Der UC-Aufruf sieht wie ein umgewandelter CALL aus.
    Geändert von Ralle (10.09.2007 um 15:23 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  6. #6
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zitat Zitat von PhilippL Beitrag anzeigen
    Ich habe folgenden Quelltext und möchte diesen in einen FB packen.
    Von aussen möchte ich gerne den DB und die Adresse für den Zeiger vorgeben.

    Machbar ist so etwas mittels ANY-Datentyp wenn ich das richtig verstanden habe.
    Hallo Philipp,

    eigentlich braucht man hier keinen ANY-Zeiger, man kann auch mit einem POINTER arbeiten.

    Hier mal ein kurzes Programmbeispiel:

    Code:
    // OB1 : Hauptprogramm
     
    // POINTER (P#DBX0.0)
     
          CALL  FB   100 , DB100
           DB_NUMMER :=DB200
           DB_POINTER:=P#DBX 0.0
          NOP   0
     
     
    // DB-POINTER (P#DB200.DBX4.0)
     
          CALL  FB   120 , DB120
           DB_POINTER:=DB200.DBW4
          NOP   0
    Code:
    // FB100 : POINTER
     
    // DB-POINTER
    //
    // BYTE 0  Datenbausteinnummer
    // BYTE 1  Datenbausteinnummer
    //
    // BYTE 2  Bereichszeiger
    // BYTE 3  Bereichszeiger
    // BYTE 4  Bereichszeiger
    // BYTE 5  Bereichszeiger
     
     
    // POINTER
     
          AUF   #DB_NUMMER                  // DB öffnen 
     
          L     P##DB_POINTER               // POINTER
          LAR1  
     
          L     D [AR1,P#2.0]               // POINTER Bereichszeiger
          LAR1  
     
     
    // Daten (WORD) kopieren
     
          L     W [AR1,P#0.0]
          T     W [AR1,P#2.0]
    Code:
    // FB120 : DB-POINTER
     
    // DB-POINTER
    //
    // BYTE 0  Datenbausteinnummer
    // BYTE 1  Datenbausteinnummer
    //
    // BYTE 2  Bereichszeiger
    // BYTE 3  Bereichszeiger
    // BYTE 4  Bereichszeiger
    // BYTE 5  Bereichszeiger
     
     
    // DB-POINTER
     
          L     P##DB_POINTER               // POINTER
          LAR1
     
          L     W [AR1,P#0.0]               // POINTER DB-Nummer
          T     #DB_NUMMER
     
          AUF   DB [#DB_NUMMER]             // DB öffnen
     
          L     D [AR1,P#2.0]               // POINTER Bereichszeiger
          LAR1  
     
     
    // Daten (WORD) kopieren
     
          L     W [AR1,P#0.0]
          T     W [AR1,P#2.0]
    Gruß Kai
    Angehängte Dateien Angehängte Dateien

  7. #7
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Und hier noch der DB200 für das obige Programmbeispiel.

    Gruß Kai
    Angehängte Dateien Angehängte Dateien

  8. #8
    PhilippL ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.08.2007
    Ort
    BW im Ostalbkreis
    Beiträge
    249
    Danke
    32
    Erhielt 27 Danke für 25 Beiträge

    Daumen hoch

    Zitat Zitat von Ralle Beitrag anzeigen
    PS: Wo hast du den Code her und was für eine SPS (SFB226???) ist das eigentlich?
    Der UC-Aufruf sieht wie ein umgewandelter CALL aus.
    Der Code ist ein Stück meiner eigenen Gedankenwelt entsprungen... der System Function Block Aufruf kommt von einem Berthel PanelCon20, welches mit S7 programmiert wird. Man verwendet dort zum lesen und schreiben der RS232 Schnittstelle die SFB's 226 und 227

    Gruß Philipp

    BTW: Eure Hilfe war mal wieder sehr gut ich bin mit meinem Problem ein gutes Stück weiter! Danke an alle!!!

  9. #9
    PhilippL ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.08.2007
    Ort
    BW im Ostalbkreis
    Beiträge
    249
    Danke
    32
    Erhielt 27 Danke für 25 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    jetzt bleibt doch mal locker ich hab mir die Unterlagen von Volker angesehen und mein Problem selbst gelöst (find ich persönlich besser als fertige Lösungen, da ist der Lerneffekt größer). Allerdings muß ich sagen, dass Lösungsvorschläge wie der von Kai auch mal nicht ganz ohne sind um neue oder andere Ideen zubekommen und jetzt laßt den armen Kai in Ruhe er gibt sich wie viele andere hier im Forum Mühe anderen (mir ) bei ihren Problemen zu helfen.

    Gruß Philipp

Ähnliche Themen

  1. Pointer?!
    Von tuneit im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 23.09.2008, 09:43
  2. Pointer und Co
    Von mkd im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 31.07.2008, 14:30
  3. SCL: Pointer
    Von dinner4one im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 06.07.2008, 18:07
  4. Pointer in SCL ?
    Von AndreK im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 27.04.2008, 21:24
  5. VKE und Pointer im FC...
    Von halorenzen im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 23.07.2004, 13:16

Lesezeichen

Berechtigungen

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