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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 27

Thema: Byte im DB in Bits auflösen

  1. #11
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.174
    Danke
    922
    Erhielt 3.288 Danke für 2.657 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich würde in TEMP eine Struktur oder Array aus 8 (oder 16) Bools anlegen und das EB auf die Adresse dieser Datenstruktur kopieren. Etwa so

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  2. #12
    Registriert seit
    05.02.2008
    Beiträge
    472
    Danke
    23
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Komm noch nicht ganz mit, bei mir ist alles rot.

  3. #13
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.174
    Danke
    922
    Erhielt 3.288 Danke für 2.657 Beiträge

    Standard

    Schließ' einen Monochrom-Monitor an.

    Oder zeig' uns mal Dein "alles rot".

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #14
    Registriert seit
    05.02.2008
    Beiträge
    472
    Danke
    23
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Auch eine Idee.

    Das Ganze ist für einen Wöhner Motus, angesprochen über SWD.

    Eingangsbyte.png

  5. #15
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.174
    Danke
    922
    Erhielt 3.288 Danke für 2.657 Beiträge

    Standard

    Der Code ist eine AWL-Quelle. In TIA mußt Du die Deklarationen bis zum "BEGIN" im Kopfbereich des Bausteins mit der Maus zusammenklicken, die Deklarationen gehören nicht in die Netzwerke.
    Alternativ gibt es vermutlich in TIA eine Möglichkeit um AWL-Quellen zu importieren. Check mal die TIA-Hilfe.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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

    Steve38 (03.02.2016)

  7. #16
    Registriert seit
    05.02.2008
    Beiträge
    472
    Danke
    23
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habe es mal so probiert

    Anhang 31534

    Würde diese glaube ich auch gerne lieber als Static sehen, dann kann ich im DB mir dies ohne Problem ansehen
    Geändert von Steve38 (03.02.2016 um 14:12 Uhr)

  8. #17
    Registriert seit
    05.02.2008
    Beiträge
    472
    Danke
    23
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Habe es jetzt hiermit auch mal probiert, ohne Erfolg:

    Code:
          CALL  DPWR_DAT
             LADDR   :=#EingangsByte_Antrieb
             RECORD  :=#Eingang
             RET_VAL :=#Schreiben_OK
          NOP 0

  9. #18
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.174
    Danke
    922
    Erhielt 3.288 Danke für 2.657 Beiträge

    Standard

    DPWR_DAT hat mit Bit-Zerlegung oder Kopieren im Speicher nichts zu tun. Wie bist Du drauf gekommen, daß man den Baustein irgendwie benutzen könnte?

    Deinen Anhang im Beitrag #16 kann ich nicht öffnen.
    Das Bit-Zerlegungs-Struct in Static legen wäre komplizierter, weil bei der indirekten Adressierung noch der Multiinstanz-Offset berücksichtigt werden müßte. In TEMP ist die nur temporär benötigte Struktur am besten aufgehoben.

    Hast Du die Struktur #tempWord in TEMP angelegt so wie die Deklaration in dem "roten" Bild zu sehen ist? Dann sollte Dein Programmcode zum zugreifen und beobachten der Bits so aussehen:
    Code:
    //Eingangbyte in Bit-Struktur in TEMP kopieren
          LAR1  P##tempWord                 //Adresse der Bit-Struktur in TEMP
          L     #EingangsByte_Antrieb       //Eingangsbyte
          T     LW [AR1,P#0.0]              //in die Bit-Struktur kopieren
    
    //die einzelnen Bits der Kopie des EingangsByte beobachten und z.B. nach Static umkopieren
          U     #tempWord.Bit0
          =     #MyBit
    
          U     #tempWord.Bit1
          =     #MyBit
    
          U     #tempWord.Bit2
          =     #MyBit
    
          U     #tempWord.Bit3
          =     #MyBit
    
          U     #tempWord.Bit4
          =     #MyBit
    
          U     #tempWord.Bit5
          =     #MyBit
    
          U     #tempWord.Bit6
          =     #MyBit
    
          U     #tempWord.Bit7
          =     #MyBit
    #MyBit kann jeweils irgendeine Bool-Variable sein, z.B. auch ein Bool in Static.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. #19
    Registriert seit
    05.02.2008
    Beiträge
    472
    Danke
    23
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Mogren, ich habe es jetzt mit einem Platzhalter gemacht:

    Motous.png

    funktioniert.
    Kann es aber auch gerne noch in Temp umstelle, wenn du sagt das es somit deutlicher ist.

  11. #20
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Steve38 Beitrag anzeigen
    Mogren, ich habe es jetzt mit einem Platzhalter gemacht:

    Motous.png

    funktioniert.
    Kann es aber auch gerne noch in Temp umstelle, wenn du sagt das es somit deutlicher ist.
    Wenn Sie dieser FB wie MultiInstanz braucht is dieser code nicht richtig.
    Sie muste die inhalt von AR2 bei AR1 addieren.
    Oder Sie must die Struct Eingangs_Word in Temp bereich declarieren wie Harold schreib.
    Wenn die Struct in Stat bereich steht must die code mit TAR2 und +AR1 gebraucht wurde wenn der FB multiInstanz verwendet wurde. Sie konte die test machen um diese FB 2 x hinter einander in ein andere FB als MultiInstanz auf zu ruffen. Wenn die Haup FB keine iN,OUT un INOUT var und ach nog keine Stat Var habe Solt die erste Aufruf nog auf die richtige werte aufgreifen aber bei die 2e aufruf geht es nicht gut.
    Code:
    LAR1  P##Eingang_Word
    TAR2
    +AR1
    L #Eingansbyte_Antrieb
    T W[AR!,P#0.0]

Ähnliche Themen

  1. Bits in Byte setzen
    Von bass im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 14.07.2011, 14:42
  2. Bits aus Byte-Array holen
    Von MW im Forum Hochsprachen - OPC
    Antworten: 7
    Letzter Beitrag: 11.07.2007, 20:29
  3. Wincc flex "ein Byte bitweise auflösen"
    Von Volkmer im Forum HMI
    Antworten: 0
    Letzter Beitrag: 15.02.2007, 16:00
  4. Bits aus Byte
    Von Reto im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 30.01.2007, 23:53
  5. Bits in temporäres Byte mappen und gesetzte Bits zählen
    Von yetibrain im Forum PC- und Netzwerktechnik
    Antworten: 3
    Letzter Beitrag: 19.02.2005, 16:31

Lesezeichen

Berechtigungen

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