Step 7 Rückwärtszähler Probleme

Kehrer

Level-2
Beiträge
439
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe eine Werkstückzähler, d.h. sobald SOLL erreicht ist schaltet die Maschine ab und man muss den Zähler reseten.

Nun habe ich am ZW über die HMI den Wert (MW20) einzugeben, zb.. 100
Der Zähler zählt immer um 1 runter sobald M120.5 aktiv wird.
Wenn ich aber resete dann wird der Zählerstand 0 und nicht wie in der Vorbelegung MW20 (100)
Wie bekomme ich den Zählerstand nach Reset an R wieder auf die Eingabe von MW20 (100) und nicht auf 0?
Unbenannt.PNG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ist mir auch grade so gekommen.
Aber er zählt mir gleich beim Einschalten 1 runter d.h. er steht dann auf 99

dann würde mir doch 1 Teil fehlen oder?
1658390332690.png


was bringt dann der R-Eingang überhaupt?
 
Zuletzt bearbeitet:
R-Eingang (rücksetzen) ist bei einem Rückwärtszähler nicht unbedingt logisch, aber könnte man trotzdem brauchen, wenn man z.B. vorzeitig beenden möchte, also zum Beispiel bei Schichtende die halbe Palette noch rausfahren will.
Ich verwende meistens lieber Vorwärtszähler und vergleiche den Zählwert mit meinem Sollwert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich hab noch nie einen Zähler verwendet. Einfacher ist es eine int Zahl hochzuzählen.
Den meisten Programmiereren die ich kenne haben sich selbst einen Baustein geschrieben. Weil der siemens eigene einige Probleme hat
 
kann es sein dass es mit dem MW20 und DBD28 die Steuerung zum Absturz bringt, sobald ich den Setzeingang betätige?
Theoretisch stimmt es doch so.
Alles Zahlen über 10 läßt meine SPS auf SF-Störung gehen.
 

Anhänge

  • baugruppenzustand.PNG
    baugruppenzustand.PNG
    102,6 KB · Aufrufe: 30
  • db40.PNG
    db40.PNG
    104,5 KB · Aufrufe: 28
  • hmi variablen.PNG
    hmi variablen.PNG
    21,4 KB · Aufrufe: 29
  • Zähler500.PNG
    Zähler500.PNG
    76,1 KB · Aufrufe: 31
  • Zähler100.PNG
    Zähler100.PNG
    75 KB · Aufrufe: 29
Zuviel Werbung?
-> Hier kostenlos registrieren
Schau in den Diagnosepuffer der CPU, da steht warum die CPU in SF und STOP geht.

Ursache ist wahrscheinlich: Die Zähler erwarten den Wert an ZW im BCD-Format (C#0 ... C#999 = 16#0000 ... 16#0999). 16#01F4 ist unzulässig! Der Vorgabewert muß von dezimal nach BCD gewandelt werden.

Harald
 
Schau in den Diagnosepuffer der CPU, da steht warum die CPU in SF und STOP geht.

Ursache ist wahrscheinlich: Die Zähler erwarten den Wert an ZW im BCD-Format (C#0 ... C#999 = 16#0000 ... 16#0999). 16#01F4 ist unzulässig! Der Vorgabewert muß von dezimal nach BCD gewandelt werden.

Harald
1658401604348.png
1658401963107.png


dann geht ein MW gar nicht oder mus hier ein DINT stehen? Und auch nur bis 999?
Was ist wenn ich 5000 eingeben will?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Was ist wenn ich 5000 eingeben will?
Das geht mit diesen Zählern natürlich nicht.

Daher:
Also ich hab noch nie einen Zähler verwendet. Einfacher ist es eine int Zahl hochzuzählen.
Den meisten Programmiereren die ich kenne haben sich selbst einen Baustein geschrieben. Weil der siemens eigene einige Probleme hat
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist der Zählausgang richtig beschalten?
Also "DBD28", sollte das nicht "DB40.DBD28" sein?
So uralt-S5-Style nur teilqualifiziert DBx... angeben sollte man heutzutage nicht mehr programmieren, sondern immer vollqualifiziert mit der DB-Angabe: DB40.DBx...
Viel schlimmer ist, daß man da ein DWORD verschalten kann, wo es doch ein WORD sein müsste. Das kommt daher, daß Siemens bei irgendeiner Step7-Version die FUP/KOP-Typprüfung zwangs-abgeschaltet hat und seitdem solche Programmierfehler ohne Meldung/Warnung möglich sind. Ob nun DBD28 oder DB40.DBD28 - beides ist genaugenommen falsch, funktioniert aber.

Hinweis: bei den Zählern erhält man am Ausgang DEZ den aktuellen Zählerstand BCD-codiert, und am Ausgang DUAL als Dezimalwert.

Beim Betriebsstundenzähler ist es auch so
Anhang anzeigen 62434
Das ist ein selbst-implementierter Zähler auf Basis ADD/SUB, damit kann man bis 2.147.483.647 zählen. Ist allerdings genauso unsauber/S5-Style implementiert.

Harald
 
Zuletzt bearbeitet:
bin aber vorher nicht mal mehr auf die Steuerung dann gekommen. Erst nach Aus- und wieder einschalten. Dann ist aber der Diagnosepuffer leer.
Tatsächlich??? Der Diagnosepuffer der CPU wird nie gelöscht (*). Wenn der Diagnosepuffer leer ist, dann müsste Deine CPU 313-5BF03 kaputt sein.
(*) höchstens bei Einspielen der Firmware/Firmware-Update

Harald
 
Zurück
Oben