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

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

Thema: Impulslänge auswerten

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    hier gleich mein erster Beitrag

    Ist es möglich mit den normalen Digi IOs einer S7, die Impulslänge eines Rechtecksignals auszuwerten? Die Impulse wären recht lang, und zwar z.B. 100ms oder 500ms. Könnte man diese klar unterscheiden? Und wenn ja wie aufwendig und rechenintensiv wäre sowas?

    Ein extra Modul zur Frequenzzählung möchte ich mir sparen.

    Vielen Dank,
    Christian
    Zitieren Zitieren Impulslänge auswerten  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.797
    Danke
    398
    Erhielt 2.418 Danke für 2.014 Beiträge

    Standard

    Hallo,
    wenn du nur einfach den einen Impuls von dem anderen in der Länge unterscheiden willst, dann ist das kein Problem und läuft stinknormal mit den Standard-Timern.
    Falls du jedoch die Impulslänge ziemlich genau messen möchtest, dann wäre dabei die Mess-Toleranz deine CPU-Zykluszeit und du müßtest mit der Systemzeit oder dem OB35 als Taktgeber arbeiten.

  3. #3
    Registriert seit
    02.02.2006
    Ort
    Hessen
    Beiträge
    429
    Danke
    16
    Erhielt 28 Danke für 22 Beiträge

    Standard

    @chbr

    am einfachsten dürfte bei der geforderten Genauigkeit sein, das Taktmerkerbyte zu benutzen. Solange der Impuls ansteht, einen Zähler mit einem Taktmerker laufen lassen: Wenn der Impuls fertig hat, zeigt der Zählerstand die Impulslänge. Zähler auslesen, rücksetzen und auf den nächsten Impuls warten.
    mfG Werner
    Hoch lebe die Suchfunktion!
    Zitieren Zitieren Taktmerker benutzen  

  4. #4
    chbr ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    06.11.2007
    Beiträge
    3
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    vielen Dank für euere Antworten.

    Das ganze klingt für mich ziemlich plausibel. Ich komme eher aus dem Mikrocontroller/Embedded Bereich, von daher meine Fragen.
    Dort macht man es eigentlich genau so. Wie schnell kann denn der Timerinterrupt sein, mit dem man die Impulslänge misst?
    Bei 25ms (40Hz) würde man ja in etwa eine Impulslängen in 100ms Schritten unterscheiden können (also 100, 200, 300 ms... Länge).

    Ist die Verarbeitung einem Controller ähnlich, also einer Interrupt Service Routine?

    Grüße,

    Christian

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.797
    Danke
    398
    Erhielt 2.418 Danke für 2.014 Beiträge

    Standard

    Hallo,
    deine Anahme ist in etwa zutreffend. Der OB35 entspricht einem Timer-Interrupt. Das Aufruf-Intervall ist einstellbar (HW-Konfig der CPU). 10 ms wären dabei ohne weiteres machbar.
    In diesem OB35 kannst du dann deinen Code hinterlegen oder von dort aus Funktionen (FC's oder FB's) aufrufen.

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

    Standard

    Also ich würde die Steigende Flanke des Signals auswerten eine Variable vom Typ TIME nullen und solange das Signal vorhanden ist auf die TIME Variable den OB1_PREV_CYCLE aufaddieren.

    Ähnlich dem hier: http://www.sps-forum.de/showpost.php?p=101133 Plus Flanken Erkennung.
    If you open your Mind too much, your Brain will fall out.

  7. #7
    chbr ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    06.11.2007
    Beiträge
    3
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das hört sich doch gut an.

    Also sollte es auch nicht zu viel Ressourcen der CPU klauen?
    Das ganze soll in professionellen SPS Steuerungen laufen (und ich überprüfe nur ob meine Applikation so an eine SPS angebunden werden kann)... ein Profi sollte also bei sowas nicht den Kopf schütteln, weil es zu unnormal ist oder zu weit hergeholt?

    Christian
    Geändert von chbr (06.11.2007 um 18:40 Uhr)

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.797
    Danke
    398
    Erhielt 2.418 Danke für 2.014 Beiträge

    Standard

    Hallo Christian,
    es gibt, wie du an den einezelnen Beiträgen gesehen hast, mehrere zielführende Möglichkeiten. Je nachdem, was du im Einzelnen genau anstellen willst werden die CPU-Resourcen hierbei in Anspruch genommen. Der OB35-Aufruf wäre hierbei allerdings nicht meine erste Wahl, sondern ich mache es bei vergleichbaren Problemstellungen so ähnlich wie es Zotos schon genannt hat. Deine Ungenauigkeit liegt dabei dann halt "nur" im Bereich der Zykluszeit des Hauptsprogramms.

  9. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    chbr (06.11.2007)

  10. #9
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Hier noch einmal eine Siemens-FAQ mit verschiedenen Beispielen zum Thema Zeitmessung:

    Siemens-FAQ: Wie kann die Zeit gemessen werden?

    Gruß Kai

  11. #10
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.866
    Danke
    78
    Erhielt 806 Danke für 549 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    was für eine baugruppe hast du denn?

    es gibt baugruppen, die können beim flankenwechsel einen alarm-ob aufrufen.
    oder auch die e's der cpu's 31xC sind alarmfähig.
    Angehängte Grafiken Angehängte Grafiken
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

Ähnliche Themen

  1. Tasterbefehle auswerten
    Von EAT3 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 19.05.2011, 22:07
  2. Impulslänge in Abhängigkeit einer Vorwahl
    Von nikilouder im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 30.04.2011, 16:48
  3. DB auswerten
    Von Rauchegger im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 27.10.2010, 22:45
  4. CPU Zeit auswerten
    Von HWPascal im Forum Programmierstrategien
    Antworten: 6
    Letzter Beitrag: 05.03.2009, 23:20
  5. PID-Regler Impulslänge einstellen ?
    Von Lars Bizare im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 09.11.2006, 05:58

Lesezeichen

Berechtigungen

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