Stückzähler mit S7-200 Cpu 214 programmieren.

Stromtom

Level-1
Beiträge
38
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,alle zusammen
Ich habe für einen Freund eine Steuerung für eine Erntemaschine für Hopfen gebaut. Dieser will jetzt noch einen Stückzähler intigriert haben(Reben pro Minute) der über ein vorhandenes Op17 ausgegeben wird. Dieser sollte die Stückzahl der letzten Minute anzeigen. Hab bereits ein Programm geschrieben funzt aber nicht so wie ich mir das vorgestellt habe. Bekomme nur falsche Zahlen angezeigt. Hier der besagte Teil des
Programms:

E1.0 = Endschalter der Zählimpuls erzeugt (Schlieser)
M0.0 = Freigabe des Zählers (Zähler soll immer Funktionieren auch bei
Stillstand der Maschine).

LD E1.0
EU
U T101
LD T106
ZV Z3, +1

LD E1.0
EU
UN T101
LD T104
ZV Z4, +1

LD M0.0
ON M0.0
UN T102
TON T101 + 600

LD T101
TON T102 + 600

LD M0.0
ON M0.0
UN T101
MOVW Z3 MW14

LD M0.0
ON M0.0
U T101
MOVW Z4 MW14

LD T101
TON T103 +599

LD T103
UN T104
TON T 104 +1

LDN T101
TON T105, +599

LD T105
UN T106
TON T106 +1


Hab noch nie etwas in diese richtung Gebraucht und weis nicht mehr weiter. Wer weis Rat und Lösung. Kann ich meinen Gedankengang gleich in die Tonne Werfen?! :(

Gruß Thomas
 
Hallo!

Du willst wissen wie viel in einer Minute gererntet wird. Dann zähl einfach die Impulse und setz den Zähler nach einer Minute zurück! Vielleich hilft dir das.
 
Hallo, alle beisammen,
Also das der Kontakt an E1.0 prellt schließe ich aus das haben wir bereits mit einem externen Zeitrelais unterbunden. Ich bekomme schlicht und einfach nur falsche Ergebnisse. Bewege mich normalerweise bei einer Stückzahl von ca. 12 pro Minute . Hab aber laut Zähler immer über 20.
Das Problem liegt darin dass ich die Stückzahl der :!: letzten :!: Minute anzeigen will d.h. ich arbeite im prinzip mit zwei Zählern abwechselnd .
Einer zählt eine Minute lang der andere wird wärendessen angezeigt.
Nach der besagten Minute wird zwischen den Zählern umgeschaltet das ergebniss des einen wird angezeigt, der andere gelöscht und wieder neu zählen lassen. Dann ist wieder wechsel . So sollte es eigentlich funktionieren. Tuts aber irgendwie nicht. :cry:

Gruß Thomas
 
Hallo!

Im MicroWin gibt es bei Testen-->Programmstatus starten, da kannst du sehen wie die Zähler zählen und welche Ein u. Ausgänge 0 und 1 sind.
Wenn die Steuerung in Betrieb ist, kannst du dich mit dem Kabel draufhängen und das mal anschauen vielleichtet findest du da was. Oder der Endschalter hat was!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Andi,
werd deinen Tipp :idea: morgen Abend mal ausprobieren,hatte die letzten Tage wenig Zeit zum Testen. Ich meld mich dann wieder. Wobei ich meine der Endschalter ist nicht schuld.
Wobei :?: :!: Aktenzeichen XY ungelöst

mfg

Thomas


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

:twisted: Brennt der Schaltschrank früh am Morgen macht er uns heut`
bestimmt noch sorgen. :twisted:
 
Hallo!
Also,hab gestern Abend festgetellt dass es sich nicht um den Endschalter sondern um einen grundlegenden Fehler im Programm handelt.
Kann woll doch meinen Gedankengang in die Tonne treten.
Hat zufälliger weise jemand einen Lösungsvorschlag der Funktioniert? :oops: Oder eine gute idee?
Will den Stückwert der letzten !! Minute nicht den aktuellen anzeigen.

mfg Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nur mal auf die Schnelle zusammengetippt, müßte so funtionieren.
Die TEMP Variablen sollten natürlich noch gegen feste Speicherbereiche VW...
ersetzt werden.

Mfg
Manuel
 

Anhänge

  • minutenz_hler.jpg
    minutenz_hler.jpg
    98 KB · Aufrufe: 133
Hallo , einen schönen Sonntagvormittag alle zusammen,

:oops: Verstehe momentan nur noch Bahnhof, der Zähler macht was er
gerade will. Bin jetzt mit meinem Latein am ende. :cry:
Hab mein Programm schon mehrmals geändert. Ich möchte jetzt die
Stuckzahl(VW15) pro Minuten(VW14) anzeigen.

Also auf dem OP soll erscheinen : XXX Stück in XXX Minuten

LD A2.4
EU
O M6.1
MOVW +0, VW14
MOVW +0, VW15


LD A2.4
U E1.0
EU
INCW VW14


LD SM0.4
MOVW VW14, VW15
MOVW +0, VW14


Der Eingang 1.0 ist der Zählimpuls der von einem impulsvormendem Zeitrelais ausgegeben wird (Entprellung vom Endschalter der den Messwert aufnimmt.) Funktioniert auch d.h. 1 Impuls = 1 Stück.

Habe einen zweiten Zähler mit dem selben Schema
Programmiert (aber anderer Zählimpuls) funzt aber auch nicht. Bekomme nur völlig irrsinnige Werte ,z.B.750 Stück in 1000 min obwohl das Gerät erst 1 Minute läuft bei einer Stückzahl von ca 14 .

Wer kann mir weiterhelfen und oder hat für mich ein funktionsfähiges
Beispiel oder eine gute Idee?

Vielen Dank ,und euch allen einen schönen Sonntag

Mfg Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Hab wie gesagt einen zweiten Zähler nach dem selben schema programmiert ,aber mit einem anderen Eingang (3.6)und anderen Variablen weil ich einen zweiten Wert auch noch zählen wollte. Da kommt aber auch der selbe Mist raus.
 
Hallo!

Probiers mal ohne den Zeitrelais, du hast ja eine positive Flankenauswertung, oder prellt der Endschalter so stark?
 
Hallo Andi

Also ohne externes Zeitrelais funktionierts nicht. Aus folgenden Gründen:

a)Der Endschalter prellt heftigst, kann aber auch leider keinen anderen einbauen(hat eine Federgabel andere verbiegen oder brechen ab)

b)Gelegentlich zählen die Reben zweimal wegen der Blätter d.h. ich hab den Zählimpuls auf 2 sec. verlängert und umgehe somit das Problem. Weil nach 2 sec die Rebe den Endschalter sicher passiert hat und er wieder frei ist.

Es muß! sich meiner Meinung nach um einen Programmfehler handeln.
Bin leider auch kein Profiprogrammierer ,meine Kenntnisse haben für meine Anwendungen bisher immer gereicht.
Jetzt halt leider nicht mehr. :cry: :cry:

gruß Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

In einen früheren beitrag von mir hab ich das geschrieben, hast du das probiert:Im MicroWin gibt es bei Testen-->Programmstatus starten, da kannst du sehen wie die Zähler zählen und welche Ein u. Ausgänge 0 und 1 sind.
Wenn die Steuerung in Betrieb ist, kannst du dich mit dem Kabel draufhängen und das mal anschauen vielleichtet findest du da was.

Hast du da die Zählerstände am PC mit denen am OP verglichen?
 
Punkt 1:
In meinem Programmbeispiel war ein kleiner Fehler,
bei LD SM0.4 muß noch ein EU danach.

Punkt 2:
Dein Programm kann mit den von dir vergebenen VW's nicht funktioniern,
da VW14 und VW15 sich überlappen. Siemens arbeitet grundsätzlich BYTE orientiert.
Heißt: VW14 besteht aus VB14 und VB15, VW15 besteht aus VB15 und VB16
Probiers mal mit VW14 und VW16, ich denke dann wirst du sofort eine positive Änderung haben.

Punkt 3:
Zum Zeitrelais, du könntest den Endschalter auch Softwaremäßig entprellen.

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Manuel,

Danke für deinen Tipp werde es versuchen. Da erklärt sich einiges.
Melde mich wieder.

PS: Vielen dank an alle für ihre Hilfsbereitschaft

Mfg Thomas
 
@MRT

Code:
NETWORK 1
LD     E0.0                         //Zu Entprellender Eingang
UN     M0.0                         //Merker Entprellzeit
EU
=      M1.0                         //Entprellter Impuls von E0.0

NETWORK 2
LD     E0.0
ED
S      M0.0, 1                      //Bei fallender Flanke von E0.0 E0.0 für 2 Sekunden sperren

NETWORK 3
LD     M0.0
TON    T37, +20                     //E0.0 für 2 Sekunden sperren

NETWORK 4
LD     T37
R      M0.0, 1                      //Mit Rücksetzen von M0.0 wird E0.0 wieder freigegeben
 
Benutzt du nicht die eingebauten Eingangsfilter (0,2ms - 8,7ms im Systemdatenbaustein) oder hast du das ganze als Impulsabgriff oder
schnellen Zähler programmiert.
 
Zurück
Oben