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

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

Thema: Flankenauswertung wortweise

  1. #1
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    es sollen die pos. Flanken der einzelnen Bits eines Wortes (EW1) ausgewertet werden. Hierzu habe ich folgendes Programm geschrieben:

    L MW 10 // Hilfsmerkerwort
    INVI
    L EW 1
    UW
    T MW 20 // Flankenmerkerwort
    L EW 1
    T MW 10

    Frage:

    Wie kann ich nun über das Flankenmerkerwort MW20 jedem seiner Bits einen Merker zuweisen, in der Form, dass bei jedem Bit jeweils ein anderer Merker gesetzt und anschließend wieder rückgesetzt wird, wenn die Flanke nicht mehr ansteht?

    Es würde ja z.B. gehen:

    U M 10.0 // Bit aus MW20
    S M 50.0
    UN M 10.0
    R M 50.0

    usw.

    Das ist jedoch sehr aufwendig - gibt es eine elegantere Art und Weise?

    Vielen Dank!

    pinolino
    Zitieren Zitieren Flankenauswertung wortweise  

  2. #2
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Unterschiede zum vorigen Wert werden am Einfachsten durch XOR erkannt. Wenn nur steigende Flanken interessieren, dann dieses Ergebnis noch mit dem Aktualwert verunden.
    Code:
    L MW 20  // Alter Wert
    L EW 1   // Aktualwert
    XOW      // Änderungen ermitteln
    L EW 1   // Aktualwert
    T MW 20  // Merken nicht vergessen
    UW       // Nur steigende Flanken stehen lassen
    Jetzt muss mit den Bits natürlich noch etwas getan werden.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  3. #3
    Registriert seit
    05.06.2006
    Ort
    PLZ 97xxx
    Beiträge
    274
    Danke
    31
    Erhielt 44 Danke für 36 Beiträge

    Standard

    Ich verstehe den Sinn der Frage nicht ganz.

    Du hast geschrieben: U M 10.0 // Bit aus MW20 ....
    gemeint hast DU wohl: U M 20.0 // Bit aus MW20 ....

    aber was soll es bringen mit dem Flankenmerker einen weiteren Merker
    zu setzen bzw. zu resetten?

    dieser Merker hat doch dann sowieso den gleichen Zustand ??


    Zitat Zitat von pinolino Beitrag anzeigen
    Hallo,
    es sollen die pos. Flanken der einzelnen Bits eines Wortes (EW1) ausgewertet werden. Hierzu habe ich folgendes Programm geschrieben:

    L MW 10 // Hilfsmerkerwort
    INVI
    L EW 1
    UW
    T MW 20 // Flankenmerkerwort
    L EW 1
    T MW 10

    Frage:

    Wie kann ich nun über das Flankenmerkerwort MW20 jedem seiner Bits einen Merker zuweisen, in der Form, dass bei jedem Bit jeweils ein anderer Merker gesetzt und anschließend wieder rückgesetzt wird, wenn die Flanke nicht mehr ansteht?

    Es würde ja z.B. gehen:

    U M 10.0 // Bit aus MW20
    S M 50.0
    UN M 10.0
    R M 50.0

    usw.

    Das ist jedoch sehr aufwendig - gibt es eine elegantere Art und Weise?

    Vielen Dank!

    pinolino

  4. #4
    pinolino ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ok,
    vermutlich habe ich mich ungut ausgedrückt.

    Im Flankenmerkerwort MW20 wird ja für einen Zyklus jede pos. Flanke der einzelnen Bits aus EW1 gespeichert.

    Die Aufgabe ist nun, jede pos. Flanke eines Bits im EW1 dauerhaft zu speichern - das MW20 speichert ja nur für einen Zyklus!

    Hoffe so ist es etwas verständlicher?

    pinolino

  5. #5
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von pinolino Beitrag anzeigen
    ...
    Es würde ja z.B. gehen:

    U M 10.0 // Bit aus MW20
    S M 50.0
    UN M 10.0
    R M 50.0

    ...

    Das ist doch Unfug!
    Da könntest Du doch gleich
    Code:
    U E 10.0
    = M 50.0
    schreiben

    bzw.
    Code:
    L EW 10
    T MW 50
    If you open your Mind too much, your Brain will fall out.

  6. #6
    pinolino ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Jepp stimmt zotos,
    dieser Ansatz führt zu nichts.

    Daher ja dann auch meine Frage, wie die einzelnen pos. Flanken aus EW1 dauerhaft gespeichert werden können?

    pinolino

  7. #7
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von pinolino Beitrag anzeigen
    ...
    Daher ja dann auch meine Frage, wie die einzelnen pos. Flanken aus EW1 dauerhaft gespeichert werden können?
    ...
    Ich versteh echt nur Bahnhof.

    Entspricht das hier Deinen Vorstellungen(?):
    Code:
    L EW 20  // Flanken
    L MW 50  // Speicher
    OW
    T MW 50  // Speicher
    If you open your Mind too much, your Brain will fall out.

  8. #8
    Registriert seit
    05.06.2006
    Ort
    PLZ 97xxx
    Beiträge
    274
    Danke
    31
    Erhielt 44 Danke für 36 Beiträge

    Standard

    Zitat Zitat von pinolino Beitrag anzeigen
    Jepp stimmt zotos,
    dieser Ansatz führt zu nichts.

    Daher ja dann auch meine Frage, wie die einzelnen pos. Flanken aus EW1 dauerhaft gespeichert werden können?

    pinolino

    Also soll ein Eingang wenn er true wird in einem merker gespeichert werden?

    Dann brauchst du keine Flankenauswertung!

    bitweise:
    Code:
     
    U E 10.0
    S M 50.0
    wortweise:
    Code:
     
    L EW 10
    L MW 50
    OW
    T MW 50

  9. #9
    Registriert seit
    05.06.2006
    Ort
    PLZ 97xxx
    Beiträge
    274
    Danke
    31
    Erhielt 44 Danke für 36 Beiträge

    Standard

    da war Zotos wohl knapp schneller

  10. #10
    pinolino ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    die Aufgabe ist ein "Programm" zu schreiben, das die pos. Flanken der einzelnen Bits eines Wortes (EW1) auswertet. Weiterhin soll ein Eingang aus EW1, wenn er den Status 1 annimmt, in einem Merker dauerhaft gespeichert werden.

    Insofern könnte ich doch die Flankenauswertung

    L MW 10 // Hilfsmerkerwort
    INVI
    L EW 1
    UW
    T MW 20 // Flankenmerkerwort
    L EW 1
    T MW 10

    benutzen und über den Code

    L MW 20
    L MW 50
    OW
    T MW 50

    diejenigen Eingänge, die den Status 1 annehmen, in einem Merker speichern, oder?

    Vielen Dank!

    pinolino
    Geändert von pinolino (12.07.2009 um 18:02 Uhr)

Ähnliche Themen

  1. Sprungfunktionen und Flankenauswertung
    Von thomasgull im Forum Programmierstrategien
    Antworten: 2
    Letzter Beitrag: 09.05.2010, 15:26
  2. Flankenauswertung in Step7
    Von PN/DP im Forum FAQ
    Antworten: 1
    Letzter Beitrag: 06.09.2009, 19:12
  3. DB wortweise durchsuchen (indirekt adressiert)
    Von richi999 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 20.10.2008, 11:25
  4. Flankenauswertung in AWL
    Von NW-Trader im Forum Programmierstrategien
    Antworten: 14
    Letzter Beitrag: 06.10.2008, 13:33
  5. PNOZmulti - Flankenauswertung
    Von Onkel Dagobert im Forum Sonstige Steuerungen
    Antworten: 18
    Letzter Beitrag: 29.03.2006, 21:54

Lesezeichen

Berechtigungen

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