Step 7 Flankenauswertung in SCL

spirit

Level-1
Beiträge
961
Reaktionspunkte
23
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebes Forum,

ich möchte in SCL gerne eine Flankenauswertung einer Lichtschranke machen; d.h., nur wenn es zu einem Flankenwechsel der LS kommt soll in den Schritt 3 gesprungen werden - ansonsten in den Schritt 7.

Mein Ansatz:

Code:
IF #Pulse AND NOT #Flanke THEN
  #Schritt := 3;
ELSE
  #Schritt := 7;
END_IF;
#Flanke := #Pulse;


Würde das so sicher klappen; oder gibt es eine elegantere Möglichkeit?
 
Es gibt auch einen Flankenbaustein, den kannst du nutzen, ist dann eine Zeile, je nach Schreibweise, macht aber im Endeffekt das Selbe, wie dein Code. :)
 
Es gibt auch einen Flankenbaustein, den kannst du nutzen, ist dann eine Zeile, je nach Schreibweise, macht aber im Endeffekt das Selbe, wie dein Code. :)

Danke Ralle,

wo finde ich denn diesen Flankenbaustein für SCL - dachte bisher eigentlich, dass es so etwas Vorgefertigtes in SCL nicht gibt! :confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du öffnest den SCL-Baustein, dann rechts im Fenster den Reiter Anweisungen, dort unter "Bitverknüpfung" "R_Trig" oder "F-Trig" mit der Maus anklicken und in dein SCL-Fenster ziehen.
Nach dem Loslassen fragt dann TIA, ob du eine Einzelinstanz oder einen Multiinstanz anlegen willst. Bei Multiinstanz wird der Baustein in den STAT-Bereich deines FB (geht nat. nur bei einem FB!) eingetragen, bei Einzellizenz wird automatisch ein IDB angelegt.
 
Du öffnest den SCL-Baustein, dann rechts im Fenster den Reiter Anweisungen, dort unter "Bitverknüpfung" "R_Trig" oder "F-Trig" mit der Maus anklicken und in dein SCL-Fenster ziehen.
Nach dem Loslassen fragt dann TIA, ob du eine Einzelinstanz oder einen Multiinstanz anlegen willst. Bei Multiinstanz wird der Baustein in den STAT-Bereich deines FB (geht nat. nur bei einem FB!) eingetragen, bei Einzellizenz wird automatisch ein IDB angelegt.

Danke Ralle,

allerdings habe ich keine "Bitverknüpfung" zur Auswahl ...

Könnte das daran liegen, dass ich eine 315er habe?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Würde das so sicher klappen; oder gibt es eine elegantere Möglichkeit?
Ja, es wird funktionieren, und ich persönlich finde es eleganter als ein Baustein aufzurufen, nur um eine Flanke zu erkennen.

Einzigste Kritikpunkt ist deine Benennung von der Variabel #Flanke.
Deine #Flanke ist kein Flanke sondern ein Speicher von den Zustand von #Pulse.

So tu ich immer:
Rising_edge := Input AND NOT input_mem ;
Falling_edge := NOT Input AND input_mem ;
input_mem := input ;

IF Rising_edge THEN ... tu etwas

Und das ist unabhängig von den Befehlsumfang von der CPU :)
 
Zurück
Oben