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

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

Thema: Bitzugriff AWL

  1. #1
    Registriert seit
    25.10.2010
    Beiträge
    239
    Danke
    107
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi zusammen,

    Bei dem Code unten "kopiere" ich das Bit DB100.DBX0.0 auf das BOOL "Bitzuweisung", korrekt?
    Meine Frage, wie würde es genau in die andere Richtung gehen? Also Bitzuweisung in den DB kopieren. Danke im Voraus.

    Code:
          AUF   DB [100]
    
          L     0              //Byte_Nummer
          SLD   3
          L     0              //Bit_Nummer
          +D    
          LAR1  
          =     Bitzuweisung
    Zitieren Zitieren Bitzugriff AWL  

  2. #2
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.345
    Danke
    451
    Erhielt 691 Danke für 516 Beiträge

    Standard

    Nope! "Bitanweisung" enthält jetzt was auch immer im VKE gestanden ist.

    Dir fehlt die Zeile:
    U DBX [ AR1 , P#0.0 ]
    = Bitanweisung

    Genauere Infos zu Pointern wie immer im FAQ: Pointer Zeiger FIFO LIFO und für Any-Pointer: Any-Zeiger für Datentypen.
    Geändert von RONIN (06.02.2014 um 20:07 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

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

    Limette (06.02.2014)

  4. #3
    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

    Also tutti kompletti:
    Code:
          AUF   DB [100]
    
          L     0              //Byte_Nummer
          SLD   3
          L     0              //Bit_Nummer
          +D    
          LAR1  
          U DBX [ AR1 , P#0.0 ]
          =     Bitzuweisung
    Unter andersherum?

    L Bitzuweisung
    ....

  5. #4
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.345
    Danke
    451
    Erhielt 691 Danke für 516 Beiträge

    Standard

    Zitat Zitat von Limette Beitrag anzeigen
    L Bitzuweisung
    ....
    Das lassen wir mal so stehen...

    .. und ja.
    U Bitzuweisung
    = DBX [ AR1 , P#0.0 ]
    Geändert von RONIN (06.02.2014 um 20:39 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  6. Folgender Benutzer sagt Danke zu RONIN für den nützlichen Beitrag:

    Limette (06.02.2014)

  7. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard

    Zitat Zitat von Limette Beitrag anzeigen
    Unter andersherum?
    Code:
          L     0              //Byte_Nummer
          SLD   3
          L     0              //Bit_Nummer
          +D    
          LAR1  
    
          U     Bit
          AUF   DB 100
          = DBX [ AR1 , P#0.0 ]
    Das "AUF DB" macht man normalerweise erst unmittelbar vor dem Zugriff auf das DBX.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  8. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    Limette (06.02.2014)

  9. #6
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.345
    Danke
    451
    Erhielt 691 Danke für 516 Beiträge

    Standard

    Ja, Harald hat natürlich recht.
    Wie viele Leute hab ich schon über solchen Codepassagen verzweifeln sehen...
    (mich eingeschlossen...)

    Code:
    AUF   DB [100]
    L     0              //Byte_Nummer
    SLD   3
    L     0              //Bit_Nummer
    +D    
    LAR1  
    U     DB101.DBX324.7     //Bitzuweisung
    =     DBX [ AR1 , P#0.0 ]
    Du darfst jetzt gerne überlegen wieso.
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  10. #7
    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 RONIN Beitrag anzeigen
    Du darfst jetzt gerne überlegen wieso.
    Du darfst es mir auch gerne erklären. ...Bei deinem Code "liest" man quasi den DB100 aus und bei Haralds "schreibt" man quasi in den DB100 hinein. Hoffe ich habe das richtig verstanden.

  11. #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

    nein.

    bis hierhin ist der db100 auf
    U DB101.DBX324.7 //Bitzuweisung
    ab hier ist der db 101 auf

    = DBX [ AR1 , P#0.0 ]
    also wird das bit des db101.dbx... beschrieben
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

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

    Limette (07.02.2014)

  13. #9
    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

    dir sei gedankt Volker.

    Andere Frage:
    Ich würde gerne die Adresse die an einem Eingangs ANY anliegt in eine Temp ANY kopieren um mit der am Eingangs ANY anliegende Adresse einen SFC14 als "Record" zu bestücken. Aber es klappt nicht, es kommt Fehler 837F. Wenn ich an "Record" DB100.dbb0 direkt auflege, ist der Fehler weg.


    Code:
    L     P##EingangsANY // DB100.dbb0 aufgelegt
          LAR1  
          L     LD [AR1,P#0.0]
          T     #_Puffer1
          L     LD [AR1,P#4.0]
          T     #_Puffer2
          L     LW [AR1,P#8.0]
          T     #_Puffer3
    
          L     P##_TempAny
          LAR1  
          L     #_Puffer1
          T     LD [AR1,P#0.0]
          L     #_Puffer2
          T     LD [AR1,P#4.0]
          L     #_Puffer3
          T     LW [AR1,P#8.0]
    
          CALL  "DPRD_DAT"
           LADDR  :=2
           RET_VAL:=#_ret_val
           RECORD :=#_TempAny
          NOP   0

  14. #10
    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
    habs hinbekommen, so gehts wohl.

    Code:
          L     P##EingangsANY         // IA_DATA ist IN- Variable vom Typ ANY
          LAR1                                 // AR1 zeigt nun auf die Anfangsadr. der Eingangsvariable
          L     P##_TempANY           // --> source = temporäre Variable vom Typ ANY
          T     #_Puffer1                   // Puffer1 (DWORD) ist ein Zeiger auf source
    
    // copy in-parameter ANY to tmp ANY
    
          L     D [AR1,P#0.0]
          T     LD [#_Puffer1]              // Byte 0 bis Byte 3 des ANY kopieren
          L     #_Puffer1
          +     32
          T     #_Puffer1                   // zeiger auf temp. ANY um 4 Byte weiterstellen
          L     D [AR1,P#4.0]
          T     LD [#_Puffer1]              // Byte 4 bis Byte 7 des ANY kopieren      
          L     #_Puffer1
          +     32
          T     #_Puffer1                   // zeiger auf temporären ANY um 4 Byte weiterstellen
          L     W [AR1,P#8.0]
          T     LW [#_Puffer1]              // Byte 8 bis Byte 10 des ANY kopieren

Ähnliche Themen

  1. Dynamischer Bitzugriff in Datenbaustein
    Von ffutsi im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 11.11.2011, 16:35
  2. Speicher indirekter Bitzugriff?
    Von rerdma3s im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 17.03.2010, 09:18
  3. indezierter Bitzugriff
    Von tinosps im Forum CODESYS und IEC61131
    Antworten: 11
    Letzter Beitrag: 04.07.2008, 15:12
  4. LibNoDave Bitzugriff...
    Von Jochen Kühner im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 28.03.2008, 09:29
  5. Bitzugriff in WinCC VBS
    Von Anfängerproggi im Forum HMI
    Antworten: 9
    Letzter Beitrag: 30.07.2007, 10:51

Lesezeichen

Berechtigungen

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