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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 25 von 25

Thema: Stückzähler mit S7-200 Cpu 214 programmieren.

  1. #21
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.732
    Danke
    314
    Erhielt 1.520 Danke für 1.282 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Gast
    Benutzt du nicht die eingebauten Eingangsfilter (0,2ms - 8,7ms im Systemdatenbaustein) oder hast du das ganze als Impulsabgriff oder
    schnellen Zähler programmiert.
    Wenn ein Endschalter durch die Betätigungsart so prellt wie dieser es anscheinend tut,
    dann kommt man mit Eingangsfiltern von lächerlichen 8,7ms mit Sicherheit nicht weit.
    Das ganze ist ganz in Ordnung um z.B. Taster bzw. Relaisprellen abzuwenden, zu mehr aber auch nicht.

    Zitat Zitat von Stromtom
    a)Der Endschalter prellt heftigst, kann aber auch leider keinen anderen einbauen(hat eine Federgabel andere verbiegen oder brechen ab)

    b)Gelegentlich zählen die Reben zweimal wegen der Blätter d.h. ich hab den Zählimpuls auf 2 sec. verlängert und umgehe somit das Problem. Weil nach 2 sec die Rebe den Endschalter sicher passiert hat und er wieder frei ist.
    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  2. #22
    Anonymous Gast

    Standard

    Bei 2sec kann sich um kein prellen mehr handeln, dass muss was anderes sein.

    Oben angegebener Code von MSB (Verfasst am: 18.09.2005, 13:54) funktioniert überhaupt nur bei Nutzung der eingebauten Filter.
    Je nach Sequenz des Eingangssignals und genutzten Filterzeit kann dass das Signal zu lange verzögern oder Fehlsignale liefern.

    Die Filterung sollte man wie bei Microcontrollern üblich über ein mehrmaliges abfragen des Eingangs per Zeitinterrupt erledigen.

    Den Eingang sollte nicht über den eingebauten Filter laufen bzw. deaktiviert sein.
    Wird ein Flanke erkannt startet man einen Zeitinterrupt für einige Durchläufe z.b. 5xmal.
    Im Interrupt fragt man den Eingang ab und dekrementier den Zähler.
    Falls der Eingang nicht mehr da ist, schaltet man den Interrupt wieder aus.
    Falls der Eingang 5xmal erkannt wurde gibt man diesen an das Hautprogramm als gültig weiter.

    Durch die Auflösung des Zeitinterrupts 1ms (0ms-255ms) kann man dieses für eine schnelle Signaerfassung/-übergabe gut anpassen und dabei Fehlauslösungen wirksam unterdrücken.

  3. #23
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.732
    Danke
    314
    Erhielt 1.520 Danke für 1.282 Beiträge

    Standard

    Vielleicht sehe ich ja jetzt was falsch,

    ich bezweifle gar nicht das die Variante mit Interrupts nicht auch funktionieren würde,
    auch wenn ich das momentan nicht so 100% nachvollziehen kann.

    Aber wodurch kann es durch meinen Code zu Fehlauswertungen kommen?

    Mir ist klar das die Zeit von 2 Sekunden im 100ms Bereich "Variabel" ist,
    ganz einfach durch die Zykluszeit der SPS.
    Allerdings spielt das in dem Fall allerdings auch keine Rolle.

    Ich mache ja in dem Code nichts anderes, als das ich nachdem der Eingang im Programm, als High und dann wieder Low erkannt wurde eine erneute Flanke des Eingangs für 2 Sekunden unterbinde.
    Und ich unterstelle jetzt mal, das das externe Zeitrelais auch nichts anderes macht.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  4. #24
    Anonymous Gast

    Standard

    Man sollte zum filtern keine fest vorgegeben Zeit nehmen, da die Kontakte mit der Zeit schlechter werden und/oder
    bei Austausch durch Ersatzteil wieder verändern.
    Daher wäre es besser wenn sich das Programm dem Eingang anpasst.

    Bei oben dargestellten Programm würde es zu einer Fehlauslösung kommen wenn z.B. ein Flackern oder Störimpuls auftritt
    oder der Eingang vor Ablauf der 2sec wieder abfällt (abhängig ob Eingang als Impulsabgriff oder Filter parametriert und mit welcher Zeit).
    In diesem Fall wäre T37 abgelaufen und Merker M0.0 deaktiviert.

    Sobald der Eingang E0.0 beim nächsten mal wieder käme, würde sofort ein gültiger Impuls über M1.0 ans Programm weiter gegeben.
    Besonders Fatal wäre das ganze wenn es sich wieder nur um einen Störimpuls handeln würde.

    Besser wäre dann wenn man das Programm nur duch folgenden Code ersetzen würde.
    LD E0.0
    TON T33, +8 // 10ms Timer anstatt 100ms, 8x10ms = ca. 80ms Verzögerung

    Bedeutet, der Eingang muss für mindestens ca.80ms durchgehend anstehen damit ein gültiges Signal erkannt wird.
    Fällt der Eingang kurzzeitig ab, fällt der Timer auf 0 wieder zurück.
    Vorteil ist dass auch beim verändern der Prellzeit dieses genauso funktioniert.
    Nur die geeignetste Filterzeit für den Eingang (0,2ms -8,7ms) sollte für die Anlage vorher ermittelt werden.

    Generell:
    Bei der Nutzung im Hauptprogramm mit Timern etc. anstatt Interrupts hat man das Problem, dass die eingene Zykluszeit
    (Eingang liegt an, Programm aber immer an anderer Stelle als beim letzten mal oder ungünstige Stelle), die Abweichung der Timer
    (10ms und 100ms werden nur am Anfang von Zyklus eingelesen -> d.h. Abweichung +- 10ms/100ms siehe S7-200 Handbuch) einer Reproduktion der Ergebnisse im Wege steht.
    Zur Reproduzierbarkeit der Ergebnisse sollte man mit Zeitinterrupts und am besten mit Eingangsinterrupts arbeiten.
    Dadurch kann man (je nach Programmierung) den Eingang nur wenige Millisekunden nach der Prellzeit prezise und dauerhaft reproduzierbar als gültig erkennen.

  5. #25
    Registriert seit
    12.06.2005
    Beiträge
    38
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Habe einen sehr gut funktionierenden Zähler gebastelt!
    Wer möchte kann sich ja mal melden !

    mfg

Ähnliche Themen

  1. Stückzähler mit Siemens LOGO!
    Von Elazul im Forum Sonstige Steuerungen
    Antworten: 14
    Letzter Beitrag: 14.01.2011, 21:40
  2. Antworten: 8
    Letzter Beitrag: 30.03.2010, 09:35
  3. S5 95U programmieren !?
    Von Tom1971 im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 16.10.2007, 19:24
  4. Stückzähler S7-224
    Von stefand im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 26.09.2007, 07:54
  5. Stückzähler 7-Segment mit Logik
    Von mr.peterbuilt im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 14.11.2003, 13:52

Lesezeichen

Berechtigungen

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