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

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 49

Thema: Word Bit auslesen

  1. #11
    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
    ist ein bitmuster
    wäre das gleiche wie w#16#0001

    l 2#11 wäre w#16#0002
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

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

    Limette (16.03.2012)

  3. #12
    Limette ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.10.2010
    Beiträge
    239
    Danke
    107
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von roadrunner Beitrag anzeigen
    So in etwa:

    Code:
    IN: m_dword Typ dword
    IN: bitnr Typ word
    RETURN: Ret_val Typ bool
    
    Code:
          L     #bitnr
          DEC   1
          L     #m_dword
          SRD   
          L     2#1
          UD    
          L     2#1
          ==I   
          =     #RET_VAL
    gruß
    roadrunner
    so richtig funktioniert es nicht -> die trefferquote ist leider nicht 100%.
    das erste bit, also bitnr = 1 klappt auf jeden fall nicht.

    um eine flexible maske zu bekommen, müsste man die bitnr immer quatrieren oder nicht? also 2^0 -> 2^1 -> 2^2 usw.... ? in scl müsste sowas ja gehen..

  4. #13
    Registriert seit
    02.12.2008
    Beiträge
    58
    Danke
    35
    Erhielt 4 Danke für 3 Beiträge

    Standard

    Zitat Zitat von Limette Beitrag anzeigen
    so richtig funktioniert es nicht -> die trefferquote ist leider nicht 100%.
    das erste bit, also bitnr = 1 klappt auf jeden fall nicht.

    um eine flexible maske zu bekommen, müsste man die bitnr immer quatrieren oder nicht? also 2^0 -> 2^1 -> 2^2 usw.... ? in scl müsste sowas ja gehen..
    Poste mal deinen Baustein oder ev. einen Screenshot.

    Ich habe den Code vorhin kurz getestet, da hat auch die Auswertung der 1. Bits in dem DWORD funktioniert.

    gruß
    roadrunner

  5. #14
    Registriert seit
    24.05.2006
    Beiträge
    234
    Danke
    14
    Erhielt 77 Danke für 57 Beiträge

    Standard

    @volker: Sorry, aber da ist dir ein kleiner Fehler unterlaufen: l 2#11 wäre NICHT w#16#0002, sondern w#16#0003

    Zur Bitnummer: Seid ihr euch einig über die Definition dessen, was die Bitnummer bedeuten soll? Ist die Nummer 1 das Bit 0 oder das Bit 1? roadrunners code definiert "1" als das niederwertigste Bit.

  6. #15
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Zitat Zitat von hovonlo Beitrag anzeigen
    ...
    Zur Bitnummer: Seid ihr euch einig über die Definition dessen, was die Bitnummer bedeuten soll? Ist die Nummer 1 das Bit 0 oder das Bit 1? roadrunners code definiert "1" als das niederwertigste Bit.
    Glaub nicht:
    Zitat Zitat von Limette Beitrag anzeigen
    Zitat Zitat von hucki Beitrag anzeigen
    ...
    Und zur Sicherheit - Bit 5 ist dann das 6. Bit, ja?
    jup.
    ...
    Zitat Zitat von roadrunner Beitrag anzeigen
    ...
    Code:
    ...
    Code:
          L     #bitnr
          DEC   1
    ...
    ...

  7. #16
    Registriert seit
    02.12.2008
    Beiträge
    58
    Danke
    35
    Erhielt 4 Danke für 3 Beiträge

    Standard

    Zitat Zitat von hucki Beitrag anzeigen
    Glaub nicht:
    Ja stimmt

    Das niederwertigste Bit habe ich als BitNr 1 abgefragt.
    Da hab ich wohl nicht ganz aufgepasst.

  8. #17
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Zitat Zitat von roadrunner Beitrag anzeigen
    ...
    Da hab ich wohl nicht ganz aufgepasst.
    Oder Limette kann Deinen Code nicht ganz deuten.

  9. #18
    Registriert seit
    20.04.2006
    Beiträge
    87
    Danke
    120
    Erhielt 27 Danke für 17 Beiträge

    Standard

    //_________________________________________________
    // *** zum testen
    L MD 404
    TAD // Reihenfolge der Byte drehen (evtl. musst du die Reihenfolgen nicht drehen, ja nachdem wie sie bereits drinstehen)
    RRD 16 // Worte Tauschen
    T #DWordDatei // DWORD-Variable im Lokaldatenbeieich laden
    //_________________________________________________

    //_________________________________________________
    // *** Abfrage
    LAR1 P##DWordDatei // Adressoffset laden
    L BitNummer // Die Bitnummer wählen (bei DWORD 0..31) (bei WORD 0..15)
    +AR1 // Die Bits zum Adressregister addieren
    U L [AR1,P#0.0] // auf die Bitnummer zugreifen (hier lokaldaten)
    = #OK
    //_________________________________________________

    Falls du noch mehr mit dem Adressregister machst das sichern (vorher) und wiederherstellen (nach dem zugriff) nicht vergessen.
    Geändert von Joe (16.03.2012 um 17:54 Uhr) Grund: Formatierung
    Jedes Problem hält ein Geschenk für dich in seinen Händen (Richard Bach)

  10. Folgende 3 Benutzer sagen Danke zu Joe für den nützlichen Beitrag:

    hucki (18.03.2012),Limette (16.03.2012),roadrunner (16.03.2012)

  11. #19
    Registriert seit
    02.12.2008
    Beiträge
    58
    Danke
    35
    Erhielt 4 Danke für 3 Beiträge

    Standard

    Zitat Zitat von Joe Beitrag anzeigen
    //_________________________________________________
    // *** zum testen
    L MD 404
    TAD // Reihenfolge der Byte drehen (evtl. musst du die Reihenfolgen nicht drehen, ja nachdem wie sie bereits drinstehen)
    RRD 16 // Worte Tauschen
    T #DWordDatei // DWORD-Variable im Lokaldatenbeieich laden
    //_________________________________________________

    //_________________________________________________
    // *** Abfrage
    LAR1 P##DWordDatei // Adressoffset laden
    L BitNummer // Die Bitnummer wählen (bei DWORD 0..31) (bei WORD 0..15)
    +AR1 // Die Bits zum Adressregister addieren
    U L [AR1,P#0.0] // auf die Bitnummer zugreifen (hier lokaldaten)
    = #OK
    //_________________________________________________

    Falls du noch mehr mit dem Adressregister machst das sichern (vorher) und wiederherstellen (nach dem zugriff) nicht vergessen.
    Diese Lösung ist auch ein sehr guter Ansatz.

    Die Frage ist nur welches Bit Limette als welches abfragen möchte.

    DWORD.JPG
    Geändert von roadrunner (16.03.2012 um 18:01 Uhr)

  12. #20
    Limette ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.10.2010
    Beiträge
    239
    Danke
    107
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von roadrunner Beitrag anzeigen
    Poste mal deinen Baustein oder ev. einen Screenshot.

    Ich habe den Code vorhin kurz getestet, da hat auch die Auswertung der 1. Bits in dem DWORD funktioniert.

    gruß
    roadrunner
    naja, es ist eigentlich eins zu eins dein code.

Ähnliche Themen

  1. Codesys 2.3 : Bit TO word
    Von Kieler im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 26.02.2012, 21:02
  2. Bit in FB von IDB Word adressieren
    Von Garog im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 10.01.2012, 12:54
  3. Einzelnes Bit aus Word
    Von sps-welt im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 28.04.2009, 09:44
  4. Bit im Word, InstanzDB...
    Von AndreK im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 09.03.2009, 11:36
  5. Bit im Word abfragen
    Von johnij im Forum HMI
    Antworten: 15
    Letzter Beitrag: 09.06.2008, 13:33

Lesezeichen

Berechtigungen

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