Zähler AWL

seb992000

Level-1
Beiträge
41
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo habe eine Frage...

Hat jemand vielleicht ein Beispiel für einen Produktionszähler...
Möchte einfach eine Lichtschranke abfragen und dann einen Zähler Hochlaufen lassen...(dieser Zähler soll aber möglichst in die Millionen hochlaufen da die Anlage 50 Takte die Minute macht)

Durch einen Reset Taster möchte ich diesen Zähler wieder auf Null setzen...

Das ganz möchte ich in AWL Programmieren....

würde mich über Hilfe freuen

mfg

seb992000
 
- Flanke der Lichtschranke auswerten
- wenn Flanke dann z.B. ein Datenwort (DINT) um 1 erhöhen
- Flanke vom Reset Eingang auswerten
- Wenn Flanke dann das Datenwort mit 0 überschreiben

Pylades
 
OB1

call FC1

FC1

UE 1.0 //Lichtschranke
FP M1.0
L L#1
L MD102
+D
T MD102


UE 2.0 //Reset
L L#0
T MD102

Würde das so funktionieren?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OB1

call FC1

FC1

UE 1.0 //Lichtschranke
FP M1.0
L L#1
L MD102
+D
T MD102


UE 2.0 //Reset
L L#0
T MD102

Würde das so funktionieren?

Nein!
So würde die SPS in jedem Zyklus um 1 erhöhen weil die Flankenauswertung nicht i.O. ist.

Schau dir die Hilfe zu FP mal an.

Pylades
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nein!
So würde die SPS in jedem Zyklus um 1 erhöhen weil die Flankenauswertung nicht i.O. ist.

Schau dir die Hilfe zu FP mal an.

Pylades

In diesem Beispiel geht es ab da nicht mehr um die FP sondern um den Befehl L und T die nicht VKE (Verknüpfungsergebniss) abhängig sind und somit übersprungen werden müssen damit nicht im jedem Zyklus hochgezählt wird.

godi
 
... so würde es gehen :
Code:
U E 1.0
UN M 1.0
SPBN nCnt
 
L MD 100
L L#1
+D
T MD 100
 
nCnt:U E1.0
= M 1.0
Gruß
LL

Verstehe ich das so richtig?
1 Zyklus der SPS wenn der Eingang E1.0 true wird:
Wenn der E 1.0 im ersten Schritt true wird, ist der Merker 1.0 false
deswegen wird um 1 Hochgezählt.Wird die Sprungmarke nach der
abarbeitung des Zählers auch noch abgearbeitet?

2 Zyklus der SPS während der E1.0 false ist:
Wärend der Eingang E1.0 false ist wird ständig die Sprungmarke aktiv
und der Merker M1.0 wird false gesetzt

3 Zyklus der SPS wenn der Eingang E1.0 wieder true wird:
Der Eingang E1.0 wird true.
Der der Merker M1.0 wurde solange der Eingang E1.0 false war false
gesetzt, deshalb wird wird jetzt der Zähler abgearbeitet und Zählt hoch
auf 2.

hmmm????

mfg
 
Code:
U E 1.0     //Eingang Reset Taster
FP M1.0
SPB rCnt   //Marke zum Reset des Zählers

U E 1.1     //Eingang Lichtschranke
FP M1.1     
SPBN end   //Marke zum zählen 

L MD 100
L L#1
+D
T MD 100
SPA end
 
rCnt: L L#0
T MD 100

end:NOP 0

Kommt die Flanke vom Reset Taster wird zur Marke rCnt gesprungen und der Zähler genullt , ansonsten wird die Flanke des zu zählenden Eingangs abgefragt. Kommt diese wird nicht zum Ende gesprungen , der Zähler aufaddiert und dann absolut zum Ende gesprungen.
 
Zuletzt bearbeitet:
Verstehe ich das so richtig?
1 Zyklus der SPS wenn der Eingang E1.0 true wird:
Wenn der E 1.0 im ersten Schritt true wird, ist der Merker 1.0 false
deswegen wird um 1 Hochgezählt.Wird die Sprungmarke nach der
abarbeitung des Zählers auch noch abgearbeitet?

Der Eingang bleibt ja für mehrere Zyklen TRUE.
Der Sprungbefehl wird beim 2. und weiteren Zyklus auch abgearbeitet, weil dann der Merker ja TRUE ist -> es wird also auch gesprungen ...

2 Zyklus der SPS während der E1.0 false ist:
Wärend der Eingang E1.0 false ist wird ständig die Sprungmarke aktiv
und der Merker M1.0 wird false gesetzt

3 Zyklus der SPS wenn der Eingang E1.0 wieder true wird:
Der Eingang E1.0 wird true.
Der der Merker M1.0 wurde solange der Eingang E1.0 false war false
gesetzt, deshalb wird wird jetzt der Zähler abgearbeitet und Zählt hoch
auf 2.

Ansonsten gut zusammengefasst ... So läuft dieses kleine Programmteil ab.

Die Reset-Geschichte kannst du nach dem gleichen Schema machen ... oder gemäß der anderen Vorschläge ...
oder :
Code:
U E 1.1
SPBN nRes
 
L L#0
T MD 100
 
nRes: NOP 0
Gruß
LL
 
Zurück
Oben