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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 29

Thema: DI's entprellen

  1. #1
    Registriert seit
    21.09.2004
    Beiträge
    92
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich suche nach einer Möglichkeit Eingänge für ca. 20-50 ms zu entprellen, am besten ohne Timer.

    Da es sich um ca. 40 Eingänge handelt möchte ich ungern 40 Timer verwenden, wenn ich die überhaupt noch frei habe.

    CPU ist eine 315....

    Vielen Dank für jeden Tip!

    Gruß
    Küffel
    Zitieren Zitieren DI's entprellen  

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

    Standard

    Bau es in einen FB und verwende TONs.
    If you open your Mind too much, your Brain will fall out.

  3. #3
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Hier habe ich es mal mit IEC Timer gemacht für ein Byte. (Wie Zotos Vorschlag)
    Code:
    FUNCTION_BLOCK FB 1
    TITLE =Entprellung von Eingängen
    VERSION : 0.1
    
    VAR
      Entprellung_DI_0_0 : SFB 5; 
      Entprellung_DI_0_1 : SFB 5; 
      Entprellung_DI_0_2 : SFB 5; 
      Entprellung_DI_0_3 : SFB 5; 
      Entprellung_DI_0_4 : SFB 5; 
      Entprellung_DI_0_5 : SFB 5; 
      Entprellung_DI_0_6 : SFB 5; 
      Entprellung_DI_0_7 : SFB 5; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =Entprellung Eingang 0.0
          CALL #Entprellung_DI_0_0 (
               IN                       := E      0.0,
               PT                       := T#50MS,
               Q                        := E      0.0);//Wenn du den Baustein an erster stelle im OB1 aufrufst dann kannst du den Eingang gleich direkt wieder überschreiben ausser du benötigst den nicht Entprellten Eingang dann solltest du ein DB Bit oder Merker verwenden!
    
    NETWORK
    TITLE =Entprellung Eingang 0.1
          CALL #Entprellung_DI_0_1 (
               IN                       := E      0.1,
               PT                       := T#50MS,
               Q                        := E      0.1);
    
    NETWORK
    TITLE =Entprellung Eingang 0.2
          CALL #Entprellung_DI_0_2 (
               IN                       := E      0.2,
               PT                       := T#50MS,
               Q                        := E      0.2);
    
    NETWORK
    TITLE =Entprellung Eingang 0.3
          CALL #Entprellung_DI_0_3 (
               IN                       := E      0.3,
               PT                       := T#50MS,
               Q                        := E      0.3);
    
    NETWORK
    TITLE =Entprellung Eingang 0.4
          CALL #Entprellung_DI_0_4 (
               IN                       := E      0.4,
               PT                       := T#50MS,
               Q                        := E      0.4);
    
    NETWORK
    TITLE =Entprellung Eingang 0.5
          CALL #Entprellung_DI_0_5 (
               IN                       := E      0.5,
               PT                       := T#50MS,
               Q                        := E      0.5);
    
    NETWORK
    TITLE =Entprellung Eingang 0.6
          CALL #Entprellung_DI_0_6 (
               IN                       := E      0.6,
               PT                       := T#50MS,
               Q                        := E      0.6);
    
    NETWORK
    TITLE =Entprellung Eingang 0.7
          CALL #Entprellung_DI_0_7 (
               IN                       := E      0.7,
               PT                       := T#50MS,
               Q                        := E      0.7);
    
    END_FUNCTION_BLOCK
    Wenn deine ganzen Eingänge Byteweiße vorhanden sind kannst du das ja so umprogrammieren das du das ganze Eingangsbyte den FB übergibst und das Entprellte Byte zurückgibst. Dann brauchst du das ganze nicht so oft programmieren.

    godi

  4. #4
    Registriert seit
    12.05.2007
    Beiträge
    416
    Danke
    14
    Erhielt 45 Danke für 40 Beiträge

    Standard

    Bei der ET200s kannst du so etwas in der HW-Config machen!!!

  5. #5
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Zitat Zitat von xhasx Beitrag anzeigen
    Bei der ET200s kannst du so etwas in der HW-Config machen!!!
    Ja das kannst du auch bei CPU'n mit integrierten Eingängen machen aber er hat nur geschrieben das er eine 315... hat und somit bin ich davon ausgegangen das er von normalen Eingangskarten spricht.
    Naja den Rest von der Hardware nach den Punkten kann man sich dazudenken...

    godi

  6. #6
    Registriert seit
    21.09.2004
    Beiträge
    92
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ok, sorry das ich nicht mehr geschrieben habe worum es genau geht. Aber die Vermutung von godi war richtig. Es handelt sich größtenteils um normale Digitale Eingabebaugruppen.

    Vielen Dank für die Antworten. Werde es mit TONs probieren, auch wenn ich erst mal genau nachlesen muss worum es sich genau handelt .

    Gruß
    Küffel

  7. #7
    Registriert seit
    21.09.2004
    Beiträge
    92
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von godi Beitrag anzeigen
    Hier habe ich es mal mit IEC Timer gemacht für ein Byte. (Wie Zotos Vorschlag)
    Code:
    FUNCTION_BLOCK FB 1
    TITLE =Entprellung von Eingängen
    VERSION : 0.1
    
    VAR
      Entprellung_DI_0_0 : SFB 5; 
      Entprellung_DI_0_1 : SFB 5; 
      Entprellung_DI_0_2 : SFB 5; 
      Entprellung_DI_0_3 : SFB 5; 
      Entprellung_DI_0_4 : SFB 5; 
      Entprellung_DI_0_5 : SFB 5; 
      Entprellung_DI_0_6 : SFB 5; 
      Entprellung_DI_0_7 : SFB 5; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =Entprellung Eingang 0.0
          CALL #Entprellung_DI_0_0 (
               IN                       := E      0.0,
               PT                       := T#50MS,
               Q                        := E      0.0);//Wenn du den Baustein an erster stelle im OB1 aufrufst dann kannst du den Eingang gleich direkt wieder überschreiben ausser du benötigst den nicht Entprellten Eingang dann solltest du ein DB Bit oder Merker verwenden!
    
    
    END_FUNCTION_BLOCK
    Wenn deine ganzen Eingänge Byteweiße vorhanden sind kannst du das ja so umprogrammieren das du das ganze Eingangsbyte den FB übergibst und das Entprellte Byte zurückgibst. Dann brauchst du das ganze nicht so oft programmieren.

    godi
    Hallo godi,

    leider habe ich noch nichts viel (eigentlich nicht mit SCL) gemacht. Aber ich denke ich werde mich einlesen, dein Beispiel sieht schön strukturiert aus. Ich habe es auch mal versucht in eine SCL Quelle einzufügen. Leider ohne Erfolg. Erstmal gehe ich davon aus, du meintest SFB4 nicht 5, richtig?

    Die Variablen Deklaration verstehe ich noch nicht so richtig: du legst eine Variable "Entprellung_DI_0_0" an, die vom TYP SFB4 ist, richtig?

    Diese werden dann in den Lokaldaten von FB1 gespeichert, richtig? Damit braucht man dann nicht mehr für jeden SFB4 aufruf einen eigenen Instanzdatenbaustein, oder?

    Meine SCL Version meckert schon über den Titelbezeichner vom Netzwerk. Verison 5.3.1, mit welcher version hast du programmiert?


    Was ich danach nicht verstehe ist der CALL. Du rufst eine Funktion, wo ich dachte es sei eine Variable, hmmm, hier gebe ich erst mal auf und warte auf weitere Tipps...

    Danke schon mal vorab!

    Gruß
    Küffel

  8. #8
    Registriert seit
    04.11.2006
    Beiträge
    101
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Anfängerfrage - was versteht man unter "entprellen" ?

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

    Standard

    Zitat Zitat von Küffel Beitrag anzeigen
    Hallo godi,

    leider habe ich noch nichts viel (eigentlich nicht mit SCL) gemacht.
    ...
    Du kannst ja nicht mal AWL von SCL unterseiden ;o(

    Das von godi ist eine AWL Quelle!
    If you open your Mind too much, your Brain will fall out.

  10. Folgender Benutzer sagt Danke zu zotos für den nützlichen Beitrag:

    Küffel (15.08.2007)

  11. #10
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von the bang 2 Beitrag anzeigen
    Anfängerfrage - was versteht man unter "entprellen" ?
    Wenn du einen Taster drückst, dan schließt der Kontakt nicht sofort dauerhaft....

    ....sondern er hüpft (prellt - vgl. Prellbock oder Prellball) manchmal kurzzeitig minimal auf und ab.
    Wenn du an den Taster einen Zählereingang schalten würdest, dann würde also der Zählerstand
    nach einem Tastendruck nicht "1" sondern evtl. "3" oder "4" betragen.


    Deshalb entpellen - MINDESEINSCHALTZEIT erst dann AKTION

    Gruß
    Geändert von IBFS (15.08.2007 um 21:20 Uhr)

  12. Folgender Benutzer sagt Danke zu IBFS für den nützlichen Beitrag:

    the bang 2 (15.08.2007)

Lesezeichen

Berechtigungen

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