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

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

Thema: Fragen zu Pointern

  1. #1
    Registriert seit
    28.01.2004
    Ort
    Bodensee
    Beiträge
    260
    Danke
    18
    Erhielt 15 Danke für 13 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    in einem Programm sind folgende Befehle programmiert:

    DBX (AR1,P#101.6) und DBX (AR1,P#101.7)

    DBW (AR1,P#100.0)

    Wie kann man die oben angegebenen Befehle beschreiben bzw. Erklärung dafür?

    Danke für euere Bemühungen!!!
    Zitieren Zitieren Fragen zu Pointern  

  2. #2
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo,

    ohne unhöflich zu erscheinen... Aber die Onlinehilfe von S7 ist da sehr aussagekräftig. Ansonsten Suchfunktion im Forum.

    MfG
    André Räppel
    Zitieren Zitieren Pointer  

  3. #3
    Anonymous Gast

    Standard

    Vorher wurde mit Sicherheit das Adressregister 1 Beschrieben

    DBX(AR1.P#101.6) spricht das Bit an das 101 Byte 6 Bit aufsteigend von dem Pointer in AR1 steht,
    DBW(AR1,P#100.0) das Wort an das 100 Byte 0 Bit aufsteigend von dem Pointer in AR1 steht

    Gruß

    Ralf

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

    Standard

    Im AR1 steht eine dynamische Adresse. Zu dieser wird ein Offset in Form Byte.Bit addiert. Das ergibt eine neue Adresse mit der gearbeitet wird.

    Kein schönes Thema bei S7.

    Gruß pt

  5. #5
    INST ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    28.01.2004
    Ort
    Bodensee
    Beiträge
    260
    Danke
    18
    Erhielt 15 Danke für 13 Beiträge

    Standard

    Hallo sps-concept,

    Danke für deine Antwort, aber wenn ich in der Online Hilfe was gefunden hätte, dann würde ich hier nicht inserieren. Ich habe gehofft, das ich hier auf meine Frage ein Antwort bekomme, die mir weiterhilft bzw. eine Erklärung finde.
    Zitieren Zitieren Antwort zu sps-concept  

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

    Standard

    Ist es Dir denn jetzt klar geworden?

  7. #7
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Das hab ich nicht grundlos geschrieben.... Gefunden in der Siemens-Hilfe

    Code:
    Verwenden des Parametertyps POINTER 
    
    Ein Pointer wird verwendet, um auf einen Operanden zu zeigen. Der Vorteil dieser Adressierung ist, daß Sie den Operanden der Anweisung während der Programmbearbeitung dynamisch modifizieren können. 
    
    Pointer zur speicherindirekten Adressierung 
    
    Programmanweisungen, die mit der speicherindirekten Adressierung arbeiten, setzen sich zusammen aus einer Operation, einem Operandenkennzeichen und einem Versatz (der Versatz muß in eckigen Klammern angegeben werden). 
    
    Beispiel für einen Pointer im Doppelwortformat: 
    
    
    L  P#8.7  Lade den Wert des Pointers in AKKU 1. 
     
    T  MD2  Transferiere den Pointer nach MD2. 
     
    U  E [MD2]  Frage den Signalzustand an Eingang E 8.7 ab, 
     =  A [MD2]  und weise den Signalzustand Ausgang A 8.7 zu. 
     
    Pointer zur bereichsinternen und bereichsübergreifenden Adressierung 
    
    Die Programmanweisungen, die mit diesen Adressierungen arbeiten, setzen sich zusammen aus einer Operation und den folgenden Teilen: Operandenkennzeichen, Adreßregister-Kennung, Versatz. 
    
    Das Adreßregister (AR1/2) und der Versatz müssen zusammen in eckigen Klammern angegeben werden. 
    
    Beispiel zur bereichsinternen Adressierung 
    
    Der Pointer enthält keine Angabe zu einem Speicherbereich: 
    
    
    L  P#8.7  Lade den Wert des Pointers in AKKU 1. 
     LAR1  Lade den Pointer von AKKU 1 in AR1. 
     
    U  E [AR1, P#0.0]  Frage den Signalzustand an Eingang E 8.7 ab und 
     =  A [AR1, P#1.1]  weise den Signalzustand dem Ausgang zu A 10.0 zu 
     
    
    
    Der Versatz 0.0 hat keinen Einfluß. Ausgang 10.0 errechnet sich aus 8.7 (AR1) plus den Versatz 1.1. Das Ergebnis ist 10.0 und nicht 9.8, siehe Pointer-Format. 
    
    Beispiel zur bereichsübergreifenden Adressierung 
    
    Bei der bereichsübergreifenden Adressierung ist im Pointer der Speicherbereich angegeben (im Beispiel E bzw. A). 
    
    
    L  P# E8.7  Lade den Wert des Pointers und Bereichskennung in AKKU 1. 
    LAR1  Lade Speicherbereich E und die Adresse 8.7 in AR1. 
     
    L  P# A8.7  Lade den Wert des Pointers und Bereichskennung in AKKU 1. 
    LAR2  Lade Speicherbereich A und die Adresse 8.7 in AR2. 
     
    U  [AR1, P#0.0]  Frage den Signalzustand an Eingang E 8.7 ab und 
    =  [AR2, P#1.1]  weise den Signalzustand Ausgang A 10.0 zu. 
     
    
    
    Der Versatz 0.0 hat keinen Einfluß. Ausgang 10.0 errechnet sich aus 8.7 (AR2) plus 1.1 (Versatz). Das Ergebnis ist 10.0 und nicht 9.8, siehe Pointer-Format.
    MfG
    André Räppel
    Zitieren Zitieren Onlinehilfe  

  8. #8
    INST ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    28.01.2004
    Ort
    Bodensee
    Beiträge
    260
    Danke
    18
    Erhielt 15 Danke für 13 Beiträge

    Standard

    Hallo nochmal,

    die von dir aufgeführte Erklärung des Pointers habe ich auch gefunden, aber hat mir leider nicht weiter geholfen, da ich bei Pointerprogrammierung Anfänger bin. Deshalb habe ich speziell die Befehle hier reingeschreiben, die ich benötige, um ein vorhandenes Programm zu verstehen. Aber trotzdem Danke. Kennt ihr vielleicht eine gute Seite, wo Pointer vom Anfang an bis ...... gut erklärt sind??
    Zitieren Zitieren S7 Hilfe  

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

    Standard

    Ich habe noch nichts besseres gefunden und habe mich auch mit Kopfschmerzen in die Geschichte eingearbeitet. Es gibt noch ein Software Referenzhandbuch von Siemens das ich als CD habe und wahrscheinlich jeder andere auch. Das hatte ich mir noch zur Hilfe genommen.

    Aber denk einfach nicht zu kompliziert.

    Bei Deienm Bsp. wird bei dem vorher aufgeschlagenen DB ein Bit angesprochen.

    Im AR1 steht zum Beispiel 10.0
    Hinzuaddiert wird der Zeiger mit dem Wert 101.6
    Ergibt: 111.6

    Also, DBX111.6 wird manipuliert.

    Gruß pt

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren


    Schau Dir mal Kapiltel 4.4 an.

    Son ähnlicher Link ist gerade in einem anderen Topic aufgetaucht.

Ähnliche Themen

  1. Indirekte Adressierung mit 2 Pointern
    Von TorstenX im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 01.03.2011, 12:39
  2. Indirekte Adressierung FB mit Pointern
    Von kliebisch.m im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 28.10.2010, 12:06
  3. Antworten: 1
    Letzter Beitrag: 30.05.2010, 10:58
  4. Frage(n) zu Pointern
    Von pinolino im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 08.07.2009, 07:29
  5. Arbeiten mit zwei Pointern im FB
    Von ottokar24 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 28.01.2009, 10:13

Lesezeichen

Berechtigungen

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