Zähler in S7 High Graph

anfänger07

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

wie baut mann einen Zähler in einer Schrittkette ein? habe schon ne menge beiträge gelesen aber noch nicht die passenden Antwort. Danke im voraus für eure mühe.

gruß anfänger
 
Hi,
zb. mit einem MW

mw20:=mw20+1

Ob der Doppelpunkt im Graph notwendig ist, weiss ich grad nicht.
Hab grad nix zum testen:rolleyes:
 
könntest es ne bisschen genauer beschreiben?

Ich bin zwar nicht Zefix aber ich kann es ja mal versuchen ...

Das Problem mit S7-Zählern (und auch mit "normalen" S7-Zeiten) in Higraph ist natürlich, dass jeder Schritt nur dann bearbeitet wird wenn er "dran" ist. Da aber die S7-Zähler und -Zeiten flankengesteuert arbeiten, gibt das in der Regel Probleme.

Ich gehe daher - wie anscheinend auch Zefix - so vor, dass ich mir einen eigenen Zähler mit Hilfe von mathematischen Grundfunktionen aufbaue.

Benötige ich zum Beispiel einen Fehlerzähler in einer - sagen wir mal - Variablen namens "FZAEHLER" vom Typ INT (z.B. Merker- oder Datenwort) so gibt es folgende Teilschritte ("/" soll einen Zeilenvorschub bedeuten) :

1. In der Initialisierung und zum Reset die Befehle "L 0;/T FZAEHLER;"
2. Bei Auftreten eines Fehlers : "L FZAEHLER;/L 1;/+ I;/T FZAEHLER;"
3. Zur Auswertung auf Überschreitung: "L FZAEHLER;/L FMAX;/> I;"

Alle Befehle sind ja in jedem Schritt in Higraph in AWL-Syntax möglich, so dass du alle denkbaren und machbaren Rechenvorgänge auch programmieren kannst.

Nebenbei gesagt sollte man Higraph meines Erachtens immer in symbolischer Notation programmieren und erst beim Kompilieren die Aktualparameter zuweisen lassen. Das verbessert die Lesbarkeit und Portierbarkeit enorm.

War das klar genug?

Michael aka Dumbledore
 
vielen dank für die mühe,

aber das problem ist immer noch nicht gelöst. ich kenne mich nicht mit S7 aus, weil ich bisher immer mit LOGO gearbeitet habe:) .

nun habe ich eine anlage mit einem fertigen programm, dass ich verbessern soll. dieses ist aber in HiGraph geschrieben, womit ich mich noch weniger auskenne:( .

und zwar soll die schrittkette 5 mal durchlaufen, bevor ein anderer zweig aktiv wird. der zähler soll dies erkennen und nach den 5 mal die andere aktion im zweiten zweig aktivieren.

wie kann ich das am besten/einfachsten realisieren? es eilt ein wenig, weil ich nich mehr wirklich viel zeit dafür habe. vorweg schon mal vielen dank an alle. die helfen:ROFLMAO:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
nun habe ich eine anlage mit einem fertigen programm, dass ich verbessern soll. dieses ist aber in HiGraph geschrieben, womit ich mich noch weniger auskenne:( .

Bei allem Respekt, aber wenn du eine so einfache Aufgabe nicht gelöst bekommst solltest du vielleicht überlegen ob das wirklich Sinn macht ;)

und zwar soll die schrittkette 5 mal durchlaufen, bevor ein anderer zweig aktiv wird. der zähler soll dies erkennen und nach den 5 mal die andere aktion im zweiten zweig aktivieren.

In Anlehnung an mein voriges Beispiel :

Du definierst eine Variable namens ANZAHL vom Typ INT, der du ein Merkerwort zuordnest.

Dann programmierst du

1. In der Initialisierung und zum Reset die Befehle "L 0;/T ANZAHL;"

2. Bei jedem Durchlauf so, dass es nur einmal ausgewertet wird (z.B. als Eintrittsaktion eines Schritts) : "L ANZAHL;/L 1;/+ I;/T ANZAHL;"

3. Zur Auswertung auf Unterschreitung, also als Transitionsbedingung für die Schleife: "L ANZAHL;/L 5;/< I;"

4. Zur Auswertung auf Überschreitung, also als Transitionsbedingung für den Abbruch: "L ANZAHL;/L 5;/>= I;"

Gruss Michael aka Dumbledore
 
Zurück
Oben