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

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

Thema: Zugriff auf DWORD in FB

  1. #1
    Registriert seit
    05.05.2008
    Beiträge
    132
    Danke
    17
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    Habe in einem FB unter den EIngangsvariablen IN mehrere Boolsche Parameter definiert: Die Adressen die vergeben sind:
    52.0
    52.1
    52.2
    ..
    52.7

    Möchte nun in einem Netzwerk in dem FB selber auf das ganze Wort zugreifen?

    ???
    L DBW52
    ???

    Ist das korrekt?
    Zitieren Zitieren Zugriff auf DWORD in FB  

  2. #2
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    nein!

    wenn du so unsauber zugreifen willst, dann DIW [edit] DIB wenn es nur das byte ist -> siehe dazu auch sps-killa [/edit]

    aber schöner wäre hier ein ARRAY[0..7] of BOOL oder ein struct

    gibts ne FAQ zu
    Geändert von vierlagig (01.05.2009 um 23:22 Uhr)
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #3
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    669
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard

    hallo,

    du musst in deinem beispiel ein Byte laden.

    Code:
    l dib 52
    meiner Meinung nach sauberer, da du nun bei Bausteinänderungen nix mehr ändern musst:

    Code:
    lar1 ar2
    //l p#xxx.x //Erstes Bit deines Bytes - Dank berechtigter Kritik geändert in
    l p##IN0 //Erstes Bit deines Bytes (IN - Parameterbezeichnung)
    +ar1
    l dib [ar1, p#[0.0]
    Micha
    Geändert von SPSKILLER (02.05.2009 um 11:29 Uhr)
    "arbeite klug, nicht hart" - deutsches Sprichwort

  4. #4
    Registriert seit
    30.06.2007
    Ort
    Minden (Westf.)
    Beiträge
    178
    Danke
    42
    Erhielt 21 Danke für 21 Beiträge

    Standard

    Das mit DIW und so find ich auch sehr unschön.

    Ich habe es früher schon einmal so gelöst:

    L P##IN0
    LAR1
    L B [AR1,P#0.0]
    T TempByte
    Zitieren Zitieren oder so...  

  5. #5
    Registriert seit
    15.09.2008
    Beiträge
    165
    Danke
    10
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hallo SPS-Killer

    könntest Du bitte das zweite (bessere) Beispiel etwas erleutern?
    Wieso muß ich bei Bausteinänderungen da nichts mehr änder?
    Wenn ich weitere IN Var erstelle verschiebt sich doch die Adresse unter Umständen, oder?

    Gruß
    Thomas
    Step7 5.5
    TIA 11 / 13
    WinCC flexible 2008
    WinCC 7.0 / 7.3

  6. Folgender Benutzer sagt Danke zu PBO-WE für den nützlichen Beitrag:

    SPSKILLER (02.05.2009)

  7. #6
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.697 Danke für 1.949 Beiträge

    Standard

    L P##IN0
    LAR1

    lädt die Adresse des ersten IN-Bits in das AR1, danach wird das Byte über diese Adresse geladen.

    L B [AR1,P#0.0]

    Wenn sich IN0 verschiebt, ändert sich die Adresse. Da die ja erst zur "Laufzeit" geladen wird, wird also die richtige Adresse geladen und somit auch das richtige Byte.
    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

  8. #7
    Registriert seit
    15.09.2008
    Beiträge
    165
    Danke
    10
    Erhielt 6 Danke für 6 Beiträge

    Standard

    IN 1 Sollwert REAL ADD 0.0
    IN 2 Istwert REAL ADD 4.0

    Wenn ich nun mit diesem Pointer auf 4.0 zeige bleibt die Adresse auch richtig, wenn ich einen weiteren IN zwischen IN 1 und IN 2 einfüge und sich damit IN2 auf 8.0 verschieben würde???

    Sorry, aber ich versteh das irgendwie noch nicht. Hab noch nie mit AR gearbeitet.

    Gruß
    Thomas
    Step7 5.5
    TIA 11 / 13
    WinCC flexible 2008
    WinCC 7.0 / 7.3

  9. #8
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    669
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard

    Zitat Zitat von PBO-WE Beitrag anzeigen
    IN 1 Sollwert REAL ADD 0.0
    IN 2 Istwert REAL ADD 4.0

    Wenn ich nun mit diesem Pointer auf 4.0 zeige bleibt die Adresse auch richtig, wenn ich einen weiteren IN zwischen IN 1 und IN 2 einfüge und sich damit IN2 auf 8.0 verschieben würde???

    Sorry, aber ich versteh das irgendwie noch nicht. Hab noch nie mit AR gearbeitet.

    Gruß
    Thomas
    Genau so ist das.
    Allerdings muss ich gestehen, dass aus meinem Beispiel (P#xxx.x)
    nicht klar hervorgeht, dass ich symbolisch adressieren möchte!

    d.h. du schreibst nicht

    Code:
    l p#4.0
     
    sondern
     
    l p##in2 //IN- Parametername
    "arbeite klug, nicht hart" - deutsches Sprichwort

  10. #9
    Registriert seit
    15.09.2008
    Beiträge
    165
    Danke
    10
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Jetzt scheint mir ein kleines Licht auf zu gehen...

    Also ich lade die Adress des "Symbols" in das AR und adressiere dann von diesem Bezugspunk aus?

    Also wenn ich das zweite Bit meiner IN2 haben möchte

    L P##Istwert
    L AR1
    L [AR1,P#0.1]

    richtig?
    Step7 5.5
    TIA 11 / 13
    WinCC flexible 2008
    WinCC 7.0 / 7.3

  11. #10
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von PBO-WE Beitrag anzeigen
    richtig?
    fast ... bit-zugriff mit L wird nicht funktionieren
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

Ähnliche Themen

  1. SCL Bit in Dword
    Von enter im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.08.2010, 00:08
  2. Dword vergleichen
    Von mitchih im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 27.08.2009, 21:58
  3. DWORD AND-Verknüpfung
    Von Gerri im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 23.02.2009, 17:41
  4. dword
    Von 1schilcher im Forum Programmierstrategien
    Antworten: 21
    Letzter Beitrag: 14.02.2007, 10:34

Lesezeichen

Berechtigungen

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