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

Ergebnis 1 bis 5 von 5

Thema: Awl

  1. #1
    Registriert seit
    10.04.2014
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen, kann mir jemand diesen Code Erleutern?
    Fange erst mit Programmieren an, muss mich jetzt mit einem bestehenden Programm auseinandersetzen.
    Das hier ist einer der Zeilen die ich nicht verstehe, welche Lade Anweisung wird Transferiert?

    L "Intern".D_101
    L DB50.DBW 4
    T "Intern".D_101
    TAK
    XOW
    UW
    TAW
    T "MW 200"

    Danke im Voraus für eure kompetenten Erklärungen.
    Zitieren Zitieren Awl  

  2. #2
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Das ist n ziemlich schwurbeliger code. mal sehen ob ich das auf die Reihe kriege.
    Zuerst wird Intern.D_101 in Akku 1 geladen
    Dann nach akku 2 geschoben und DB50 in akku 1 geladen und gleich in Intern.D_101 gespeichert. (im nächsten Zyklus enthält also Intern.D* einen anderen Inhalt, nämlich den von DB50.dbw4)

    Mit TAK tauscht er die Akkus. in AKKU1 ist also wieder der alte inhalt von Intern.D_101. diesen vergleicht er bit für bit als Exclusiv Oder und schreibt das ergebnis in Akku 1 und der alte inhalt Intern.D_101 landet wieder in Akku2.
    Als nächstes wird der Alte Inhalt von Intern_D* nochmal mit dem XOW ergebnis als UW verglichen, dann die Bytes gegeneinander ausgetauscht und in MW200 gespeichert.

    Schlimm das.

    Man hätte auch programmieren können:
    Code:
    L DB50.DBW 4   // Lade in Akku 1
    L "Intern".D_101 // Lade in Akku 1 schiebe DB50 nach Akku2
    XOW // Xor wort
    UW  // Und wort
    TAW  // Tausche bytes
    T "MW 200" 
    
    
    L DB50.DBW 4 // überschreibe Intern mit DB50 für nächsten Zyklus.
    T "Intern".D_101
    IMHO versteht man so einfacher das DB50 einfach für den nächsten Zyklus in Intern.D_101 bereit gemacht wird.

    mfG René

  3. #3
    Registriert seit
    06.08.2010
    Ort
    Köln
    Beiträge
    186
    Danke
    13
    Erhielt 30 Danke für 24 Beiträge

    Standard

    Eigentlich nicht schlimm...

    Ist in AWL halt eine sehr schnelle Möglichkeit für ein Wort (16 Bit) alle positiven Flanken zu generieren.

  4. #4
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Schlimm ist eher das Gehampel mit Symbolisch, Absolut und Symbolisch absolut adressiertem Merkerwort
    Kommt mir aber bekannt vor.

    mfG René

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Code:
    L Vorher_Wert
    L Jetzt_Wert
    T Vorher_Wert
    ist eigentlich ein verbreitetes schnelles AWL-Verfahren, wenn man einen Wert mit einem vorherigen Wert vergleichen/verknüpfen will. Man hat danach beide Werte in den Akkus und auch schon den Jetzt_Wert für den nächsten Vorher_Wert gespeichert:
    AKKU1: Jetzt_Wert
    AKKU2: Vorher_Wert

    Je nachdem, wie man die Werte verknüpfen will, muß man eventuell noch die Akkus tauschen oder nicht.

    Dies liefert die steigenden Flanken (XOW manipuliert den Vorher_Wert vor dem UW):
    Code:
    TAK
    XOW
    UW
    Ohne TAK würde man die fallenden Flanken erhalten (XOW manipuliert den Jetzt_Wert vor dem UW).

    Das TAW vor dem T MW200 hat mit der Flankenerkennung nichts mehr zu tun. Wer weiß, warum der Programmierer die Bytes vertauscht im MW200 haben wollte...?


    Zitat Zitat von vollmi Beitrag anzeigen
    Kommt mir aber bekannt vor.
    Das mache ich auch so, nur daß ich in AWL statt XOW lieber INVI verwende (das kommt mir "logischer" vor):
    Code:
    L Vorher_Wert
    L Jetzt_Wert
    T Vorher_Wert
    TAK
    INVI           //Vorher Nicht 1
    UW             //Und Jetzt 1
    T Flanken_Pos
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Antworten: 16
    Letzter Beitrag: 23.05.2017, 16:03
  2. Antworten: 33
    Letzter Beitrag: 31.05.2012, 19:15
  3. Der S5-AWL Befehl ":AWL"
    Von chrisPCS im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 11.11.2010, 10:33
  4. Awl
    Von Waldi_März im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 12.11.2008, 16:23
  5. Awl
    Von nourdine im Forum Programmierstrategien
    Antworten: 8
    Letzter Beitrag: 25.09.2008, 16:39

Stichworte

Lesezeichen

Berechtigungen

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