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

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 34

Thema: Pointer <- Indirekter DB möglich ?

  1. #1
    Registriert seit
    07.11.2004
    Beiträge
    697
    Danke
    69
    Erhielt 64 Danke für 48 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich bin gerade auf etwas gestossen...

    Ich möchte dem Pointer P#DB591.DBX 1200.0 BYTE 12 den DB über eine Variable mitteilen - geht das ?

    Also z.B. so: P#DB[DB_Nr].DBX 1200.0 BYTE 12

    ... nur daß es halt so nicht geht

    Weiß jemand die korrekte Syntax ?
    RS (rs-plc-aa)
    ______________________________________________
    Morgen ist Heute Gestern...
    ______________________________________________
    Installierst du noch - oder Arbeitest du schon ?
    ______________________________________________
    Zitieren Zitieren Pointer <- Indirekter DB möglich ?  

  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

    ja, das geht. zwar nicht in dem format wir du das möchtetst. das wäre ja zu einfach

    das zauberwort ist any-zeiger

    http://www.sps-forum.de/showpost.php...69&postcount=5

    auf meiner hp im forum in der faq findest du einen gute beschreibung dazu.
    in der s7-hilfe wirst du aber auch fündig
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. Folgender Benutzer sagt Danke zu volker für den nützlichen Beitrag:

    character (01.06.2008)

  4. #3
    Avatar von rs-plc-aa
    rs-plc-aa ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.11.2004
    Beiträge
    697
    Danke
    69
    Erhielt 64 Danke für 48 Beiträge

    Standard

    Wenn ich das richtig verstanden habe lege ich z.B. eine TEMP_VAR des Typs ANY an und füttere sie am Anfang des Bausteins wie in dem Beispiel, und setze dann die TEMP_VAR an den IN Parameter (anstatt des direkten Pointers) ?
    RS (rs-plc-aa)
    ______________________________________________
    Morgen ist Heute Gestern...
    ______________________________________________
    Installierst du noch - oder Arbeitest du schon ?
    ______________________________________________

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

    Standard

    ja genau.

    schau dir das ruhig mal auf meiner homepage an. ich habe das dort recht ausführlich beschrieben.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  6. #5
    Avatar von rs-plc-aa
    rs-plc-aa ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.11.2004
    Beiträge
    697
    Danke
    69
    Erhielt 64 Danke für 48 Beiträge

    Standard

    Zitat Zitat von volker Beitrag anzeigen
    ja genau.

    schau dir das ruhig mal auf meiner homepage an. ich habe das dort recht ausführlich beschrieben.
    Sorry - ich find´s net...
    RS (rs-plc-aa)
    ______________________________________________
    Morgen ist Heute Gestern...
    ______________________________________________
    Installierst du noch - oder Arbeitest du schon ?
    ______________________________________________

  7. #6
    Avatar von rs-plc-aa
    rs-plc-aa ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.11.2004
    Beiträge
    697
    Danke
    69
    Erhielt 64 Danke für 48 Beiträge

    Standard

    Habs immer noch nicht gefunden - aber mal so probiert:

    Code:
          L     W#16#1002                   // konstant gleich
          T     LW     0                    // Datentyp: INT
          L     12                          // konstant gleich
          T     LW     2                    // Datentyp: INT
          L     #DI_Number                  // IN (diesen möchte ich variabel haben)
          T     LW     4                    // Datentyp: INT
          L     1200                        // passend zu obigem Beispiel-Pointer
          SLD   3                           // ???
          OD    DW#16#84000000              // ??????
          T     LD     6                    // ?
    Finde ich jetzt im VAR_TEMP -> Startadresse 0 meinen ersehnten ANY ?
    Geändert von rs-plc-aa (22.03.2007 um 16:25 Uhr) Grund: Tippfehler korrigiert...
    RS (rs-plc-aa)
    ______________________________________________
    Morgen ist Heute Gestern...
    ______________________________________________
    Installierst du noch - oder Arbeitest du schon ?
    ______________________________________________

  8. #7
    Avatar von rs-plc-aa
    rs-plc-aa ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.11.2004
    Beiträge
    697
    Danke
    69
    Erhielt 64 Danke für 48 Beiträge

    Standard

    @Volker: Habs jetzt gefunden auf deiner Homepage...
    Somit müsste mein voriger post eigentlich beantwortet sein.
    Jetzt sind mir aber Unterschiede aufgefallen:
    Code:
    -> L     B#16#10                   //10h für s7
    -> T     LB     0
    -> L     B#16#02                   //Typ BYTE
    -> T     LB1     0
       L     8                         //Anzahl (Wiederholungsfaktor)
       T     LW     2
       L     33                        //Datenbaustein
       T     LW     4
       L     14                        //Anfangsadresse
       SLD   3                         //Pointer bauen
       T     LD     6
    -> L     B#16#84                   //Speicherbereich (hier DB)
    -> T     LB     6
    Am Anfang und am Ende (mit Pfeilen markiert) ist das unterschiedlich - welche Version ist jetzt richtig (für eine S7-300) ?

    (Ja ich weiß - man soll sich nicht selber antworten )
    RS (rs-plc-aa)
    ______________________________________________
    Morgen ist Heute Gestern...
    ______________________________________________
    Installierst du noch - oder Arbeitest du schon ?
    ______________________________________________

  9. Folgender Benutzer sagt Danke zu rs-plc-aa für den nützlichen Beitrag:

    character (01.06.2008)

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

    Standard

    Zitat Zitat von rs-plc-aa Beitrag anzeigen
    @Volker: Habs jetzt gefunden auf deiner Homepage...
    na also. geht doch. Und nicht vergessen: Beiträge bewerten (hier und auch auf meiner hp)

    Code:
    -> L     B#16#10                   //10h für s7
    -> T     LB     0
    -> L     B#16#02                   //Typ BYTE
    -> T     LB1     0
    vom prinzip das gleiche wie L w#16#1002 nur dass du die bytes einzeln transferierst (linkes byte, rechtes byte des wortes)
    so kannst du aber den typ leichter angeben.
    Code:
    L     14                        //Anfangsadresse
    SLD   3                         //Pointer bauen
    T     LD     6
    -> L     B#16#84                   //Speicherbereich (hier DB)
    -> T     LB     6
    sieht ein bisschen komisch aus. hat aber durchaus seinen sinn.
    du lädst den pointer in das ld 6. weil, dort gehört er hin.
    der speicherbereich des anyzeigers liegt aber im LB 6 (bedenke: nur das byte) deshalb wird der vorige transfer teilweise durch diesen überschrieben.
    Code:
    (Ja ich weiß - man soll sich nicht selber antworten:) )
    würde ICH so nicht sagen.
    wenn du die lösung selbst gefunden hast, und die lösung hier präsentierst, müssen sich andere leute keine weiteren gedanken darüber machen und leute die evtl das gleiche prob haben finden eine lösung
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  11. Folgender Benutzer sagt Danke zu volker für den nützlichen Beitrag:

    character (14.11.2007)

  12. #9
    Avatar von rs-plc-aa
    rs-plc-aa ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.11.2004
    Beiträge
    697
    Danke
    69
    Erhielt 64 Danke für 48 Beiträge

    Standard

    deshalb wird der vorige transfer teilweise durch diesen überschrieben.
    genau das hat mich ein bissl stutzig gemacht...

    Soll aber heißen dass BEIDE Lösungen an sich korrekt sind und es im prinzip egal ist welche man nun nimmt ?
    RS (rs-plc-aa)
    ______________________________________________
    Morgen ist Heute Gestern...
    ______________________________________________
    Installierst du noch - oder Arbeitest du schon ?
    ______________________________________________

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ja, beides funktioniert
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  14. Folgender Benutzer sagt Danke zu volker für den nützlichen Beitrag:

    rs-plc-aa (23.03.2007)

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 06.11.2009, 13:03
  2. Indirekter Bausteinaufruf
    Von Supervisor im Forum Simatic
    Antworten: 26
    Letzter Beitrag: 03.12.2007, 11:47
  3. SCL - Indirekter Zugriff auf DB/AR1,2
    Von Floh im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 07.06.2006, 10:32
  4. Indirekter Datenbausteinaufruf in SCL
    Von Anonymous im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 13.09.2005, 14:47
  5. indirekter DB zugriff
    Von bassknecht im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 20.08.2005, 12:44

Lesezeichen

Berechtigungen

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