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

Ergebnis 1 bis 7 von 7

Thema: pointer, kleine Frage?

  1. #1
    Registriert seit
    30.06.2008
    Beiträge
    26
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hall leute,
    hab in letzter zeit ein bisschen mit pointern rumgebastelt, hat auch alles soweit funktioniert wie ich mir das vorgestellt habe. nun die frage: warum " sld 3 " wenn ich den pointer erzeuge? funktioniert doch auch so und wenn ich "sld 3" progr. habe geht die cpu in stop ???
    Zitieren Zitieren pointer, kleine Frage?  

  2. #2
    Registriert seit
    05.11.2009
    Beiträge
    42
    Danke
    1
    Erhielt 6 Danke für 5 Beiträge

    Standard

    das SLD 3 ist ganz einfach:

    normal rechnet man ja der einfach heit halber in Byte wenn man eine Adressen angibt oder einen Bereich. Und wenn man dann eine schleife programmiert oder sonst oirgendwie einen Offset berechnen will nimmt man eben bytes als grundmass.
    Bsp: Datenfeld breite 56 Byte / Datensatz Nr. 14 = 13*56 = 728 Adresse.
    wenn du das in den Ponter lädst liest er das aber als Bit-Adresse.
    Deshal musst du es vorher x8 nehmen (1byte x 8 = 8 Bit)...

    Kurz gesagt wenn du im Pointer ab Byte 728(.0) was machen willst musst du P#728.0 draus machen .. das geht entweder mit SLD3 oder x8 oder xP#1.0.
    Dezimal ist die Adresse dann 5824 = 728.0

    Und SchiebeLinksDoppelwort 3 = mal 8 ...

    Gruß Philip
    Geändert von Philip (30.11.2009 um 19:59 Uhr)

  3. #3
    rumpelix ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    30.06.2008
    Beiträge
    26
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    hallo phillip,
    danke erstmal für die antwort.

    L 4
    L P#1.0
    *D
    T #pointer
    L dbb[#pointer] // bedeutet lade inhalt vom dbx.dbb4

    oder

    L 4
    SLD 3
    T #pointer
    L dbb[#pointer] // bedeutet lade inhalt vom dbx.dbb4

    richtig ?

    aber warum ist "SLD 3" = "x8" - versteh ich nicht !

  4. #4
    Registriert seit
    05.11.2009
    Beiträge
    42
    Danke
    1
    Erhielt 6 Danke für 5 Beiträge

    Standard

    Hm wie soll ich sagen...

    also 4 ist ja Binär 2#100 wenn ich das 3 mal nach Links schiebe kommt dabei Binär gesehen das heraus 2#100 SLD 3 = 100000. und wenn ich nun wiedrum 2#100000 dazimal lese ist das 32 . Das ist einfach so. Binärrechnung.

    Bin da auch kein Experte drinnen

    Gruß Philip


    PS.: Richtiger weise würde ich mir gleich angewöhnen immer L L#4 zu benutzen (nicht L 4) wenn ich hinterher mit 32 Bit Operationen arbeite. Es gibt doch hin und wieder Probleme oder Rechenfehler in der SPS wenn man da nicht exakt bleibt.

  5. #5
    Registriert seit
    18.03.2009
    Beiträge
    29
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo rumpelix

    Bei der speicherindirekten Adressierung von Datentypen
    sind Pointer 32 bit breit (lang)
    Es besteht auch die Möglichkeit Bitaddressen zu addressieren.
    Das wären die ersten 3 stellen im Pointer
    Da du aber im DB das 4te Byte ansprechen willst musst du
    den Wert 4 zuerst um 3 Stellen nach links Schieben =x8 bevor es in
    den Pointer geladen wird, da du sonst die Bitaddresse mit 4 belegst
    und nicht wie gewollt die Byteadressen
    00000000 00000yyy yyyyyyyy yyyyyxxx <-- 3 Bitstellen

    y = Byteadresse
    x = Bitadresse
    Geändert von Airpower (30.11.2009 um 22:08 Uhr)
    Zitieren Zitieren pointer, kleine Frage?  

  6. #6
    Registriert seit
    28.02.2006
    Ort
    Ostsee 5 min zum Strand
    Beiträge
    780
    Danke
    92
    Erhielt 110 Danke für 98 Beiträge

    Standard

    Hier
    sehr gut von Volker beschrieben.
    Ganz unten das Bild zur Erläuterung

    Gruß von der Ostsee

    Nordischerjung

  7. #7
    rumpelix ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    30.06.2008
    Beiträge
    26
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    danke an alle, ich glaube das mit den pointern hab ich verstanden.
    bis zur nächsten frage .
    Zitieren Zitieren danke  

Ähnliche Themen

  1. noch mal ne kleine frage zu leerboxen
    Von Leitmayr im Forum Programmierstrategien
    Antworten: 6
    Letzter Beitrag: 29.08.2011, 18:29
  2. STEP 7 Tabellenstatus kleine Frage
    Von Draco im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 28.07.2010, 08:24
  3. SCL, String + DB. Kleine Frage
    Von noeppkes im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 13.01.2008, 17:17
  4. Antworten: 3
    Letzter Beitrag: 15.01.2007, 14:54
  5. FC106 und kleine Zähler Frage
    Von ElektronikJack im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 16.11.2006, 21:51

Lesezeichen

Berechtigungen

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