Schnelle Zähler, S7-200

pinolino

Level-1
Beiträge
261
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,
ich habe folgende Frage - sicher könnt ihr mir weiterhelfen...

Jedem schnellen Zähler (z.B. HSC0) sind ja bestimmte schnelle Eingänge (z.B. E0.0) zugeordnet. Besteht hier z.B. die Möglichkeit, Impulse über eine pos. Flanke auf so einen schnellen Eingang zu geben? Und falls ja, wie geht das dann?

Vielen Dank!

pinolino
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo himbeergeist,

In einem Beispiel habe ich einen Drehgeber an Eingang E0.0 (Zähler HSC0) angeschlossen - ich denke das klappt so ganz gut, dass der Zähler die Impulse des Drehgebers zählt.

Meine Frage hatte sich jetzt aber auf den speziellen Fall bezogen, dass der Zähler durch eine pos. Flanke starten soll.

Grüße

pinolino
 
Besteht hier z.B. die Möglichkeit, Impulse über eine pos. Flanke auf so einen schnellen Eingang zu geben? Und falls ja, wie geht das dann?

Schau mal bei der S7-200 Hilfe bei "Interrupt" nach.
einzelen Eingänge(CPU-abhängig) haben über bestimmte interrupts eine flankenauswertung

Int 0 --> steigende Flanke E0.0
Int1 --> fallende Flanke E0.0
Int2 --> steigende Flanke E0.1

usw. bis:

Int7 --> fallende Flanke E0.3


gruß maxpapa
 
Danke für die Antwort maxpapa,

ich habe etwas über "Interrupts, Prioritäten und Ereignisnummern" gefunden. Falls mit Ereignis-Nr. ein Interrupt gemeint ist, so habe ich wohl das Gleiche wie du gefunden...

Ereignis-Nr.
0 Steigende Flanke, E0.0
2 Steigende Flanke, E0.1
4 Steigende Flanke, E0.2
6 Steigende Flanke, E0.3
1 Fallende Flanke, E0.0
3 Fallende Flanke, E0.1
5 Fallende Flanke, E0.2
7 Fallende Flanke, E0.3

Aber wie kann ich nun mittels eines Interrupts z.B. dem Eingang E0.0 mitteilen, dass er nur auf eine positive Flanke reagieren soll? Muss dazu ein Unterprogramm geschrieben werden?
Habe dazu leider keine Beschreibung gefunden...

pinolino
 
Zuviel Werbung?
-> Hier kostenlos registrieren
such in der s7-microwin - hilfe nach dem
ATCH - Befehl

z.B:

Einmaliger Start des Iitialisierungsprogramms "INIT"

LD SM0.1 // beim 1.Zyklus aktiv
call INIT // Aufruf UP "INIT"


Inhalt von "INIT"

LD SM0.0
ATCH UPRG1, 2 //Interrupt Flanke E0.1
//Aufruf UP "UPRG1"
ENI //Interrupt freigeben


Im Unterprogramm "UPRG1" muß dann dein Programmablauf stehen,welcher bei steigender Flanke E0.1 (Interrupt Nr.2) ausgeführt werden soll .

gruß maxpapa
 
Danke für die Antworten - besonders auch für das Beispielprogramm!

Jetzt habe ich nur noch das Problem, wenn z.B. ein Ereignis nach fünf positiven Flanken stattfinden soll - ich habe es für den schnellen Zähler HSC0 wie folgt versucht, allerdings klappt das nicht:

LD SM0.1 // beim 1.Zyklus aktiv
call INIT // Aufruf "INIT"


// Inhalt von "INIT"

LD SM0.0
MOVB 16#F8 SMB37
MOVD 0, SMD38 // CV laden
MOVD 5, SMD42 // PV laden
HDEF 0, 0
ATCH UPRG1, 12 // CV = PV
ATCH UPRG1, 0 // positive Flanken an E0.0
ENI
HSC 0

Im Interruptprogramm UPRG1 soll dann beispielsweise der Ausgang A0.0 angehen.

Im jetzigen Zustand wird die positive Flanke an E0.0 nicht immer erkannt, so dass der Ausgang A0.0 teilweise schon nach drei Schalterbetätigungen gesetzt wird.

Wie also könnte ich das Programm umstricken, damit der Ausgang erst gesetzt wird, wenn fünf positive Flanken an E0.0 anstanden?


Nochmals vielen Dank für die Hilfe!

pinolino
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
HighSpeedCounter

Hallo Kollege,
willst du nur spielen, oder arbeitest du dann mit einem richtigen Impilsgeber?
Die Counter zählen schon richtig, dein Schalter bringt Fehlimpulse durch "Prellen"..
Ein Drehimpulsgeber prellt nicht, dann ist es auch ok.

V.
 
Hi vladi,
momentan ist es eher ausprobieren - aber am Ende soll ein Programm mit Drehgeber herauskommen.

1)Aber dieses "Prellen" macht sich ja bei einem normalen Zähler der S7-200 auch nicht bemerkbar - warum dann bei den schnellen Zählern?

2) Bedeutet deine Aussage, dass mein "Programm" im Grunde korrekt ist - darf man eigentlich diese beiden von mir gewählten "ATCH-Befehle" in der von mir dargestellten Weise hintereinander einsetzen?

3) Wie könnte ich denn so einen schnellen Zähler (aud den Zählerwert) abfragen?

Danke

pinolino
 
Zuletzt bearbeitet:
Sorry, wenn ich nochmals nachfrage – aber irgendwie habe ich noch gewisse Verständnisprobleme mit den schnellen Zählern... :confused:

Es ist doch so, dass jedem schnellen Zähler mehrere schnelle Eingänge zugeordnet sind, z.B. dem Zähler HSC0 der Eingang E0.0.

1)Möchte ich nun, dass nach 360 Impulsen, die als positive Flanken an E0.0 anstehen sollen, ein Ausgang gesetzt wird, so müsste ich doch im Grunde zwei „ATCH-Befehle“ hintereinander schalten, wobei bei "EVNT" jeweils das gleiche Interruptprogramm stehen muss - also im Grunde so:

ATCH INT_0, 12 // CV = PV
ATCH INT_0, 0 // positive Flanken an E0.0

Stimmt das so?


2)Warum „prellt“ ein Schalter an einem schnellen Eingang; an einem normalen Zähler (z.B. TON) jedoch nicht?

Danke für die Hilfe!

pinolino
 
Zurück
Oben