Step 7 Impulsausgabe, Taktmerker im vollen Zyklus

SCL

Level-2
Beiträge
10
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

kurz zu meinem Problem: Ich habe 32 Eingänge welche versch. IO Teile übermitteln. Ich muss nun alle auf einen Ausgang legen welcher Taktet für eine externe Erfassung:

z.B. Es kommen 16 Eingänge, dann muss mein Ausgang 16 mal Takten.

ich addiere mit jedem Eingang einen INT in einem DB +1. Mein Programm funktioniert auch 1A mit nur einem Problem. Ich brauche eine Impulsbreite von 400ms. Ich nutze hierfür Taktmerker. In einem ungünstigen Falls aber, kommt ein Eingang genau dann wenn der Taktmerker nur noch z.B 10ms "1" ist.

Anbei mein Code, jeman eine Idee?

VG

Code:
      L     DB200.DBW2
      L     0
      >I   
      =     M    203.0

      U     M    203.0
      U     "T400ms"  //Taktmerker CPU
      =     M    203.1


      U     M    203.1
      =     "A0.3"

Code:
      U     M    203.1
      FN    M    203.4
      =     M    203.5


      U     M    203.5
      SPBNB _00d
      L     DB200.DBW2
      L     1
      -I  
      T     DB200.DBW2
_00d: NOP   0
 
Wie Ingmar schon schrieb bieten sich hier Impulse an. Im TIA Portal wäre das der TP, bei dir vermutlich S_VIMP.

Also zwei Impulse.

Impuls 1 startet wenn Zähler >0 und Impuls 2 aus ist.

Impuls 1 Ausgang Q enspricht deinem Ausgang.

Die Negative Flanke vom Ausgang reduziert den Zähler um 1.

Impuls 2 startet bei negativer Flanke vom Ausgang und dient als Sperre für das Wiedereinschalten des Ausgangs. Beide Zeiten kannst du mit 100ms angeben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie Ingmar schon schrieb bieten sich hier Impulse an. Im TIA Portal wäre das der TP, bei dir vermutlich S_VIMP.

Also zwei Impulse.

Impuls 1 startet wenn Zähler >0 und Impuls 2 aus ist.

Impuls 1 Ausgang Q enspricht deinem Ausgang.

Die Negative Flanke vom Ausgang reduziert den Zähler um 1.

Impuls 2 startet bei negativer Flanke vom Ausgang und dient als Sperre für das Wiedereinschalten des Ausgangs. Beide Zeiten kannst du mit 100ms angeben.
Man könnte mit der pos. Flanke des Taktmerkers und Zähler>0 einen Puls starten und den ausgeben.


Ich danke euch 2, da bin ich nicht drauf gekommen. Eben implementiert, Funktion wie gewollt. Danke!
 
Zurück
Oben