Step 7 Zählerkarte FM350-1 (Gesamtwert einlesen)

Fabrizion

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

ich bin gerade dabei eine Lückenregelung zu programmieren!
Es fahren Zuschnitte mit einer max. Geschwindigkeit von 600 m/min (Maschinengeschwindigkeit ist einstellbar) in ungleichen Abständen durch einer Maschine (Abhängig von, Reibung, Schlupf, statische Aufladung.....) ! Nun möchte ich den Voreinleger auf einen einstellbaren Lückensollwert regeln!

Hardware-Aufbau : CPU315DP (6ES7 315-2FJ14-0AB0 , eine FM350 (6ES7 350-1AH03-0AE0) , ein Lichtschranke der die Lücke erkennt und ein Drehgeber mit 500 imp. pro Umdrehung zur Abstandsmessung.

Habe das Programm soweit fertig, nur eines macht mir noch Kopf zerbrechen!

Die Ist-Lücke wird über die Zählerkarte FM350 eingelesen, wenn der Lichtschranke durchsieht gebe ich das Hardare Tor frei und die FM350 zählt die Impulse des Drehgebers so lange bis der Lichtschranke wieder belegt ist! Die gezählten Impulse werden in einen Rinpuffer abgelegt, dieser Ringpuffer hat 50 Datenwörter im Format Real und der kleinste Wert in diesem Array wird benutzt als Istwert für die Lücke!Die ermittelte Impulszahl wird dann in mm umgerechnet und mit dem vorgegeben Lückensollwert verglichen.

Mein Problem besteht darin, dass ich nicht die einzelnen gezählten Impulse benötige sondern den letzten Zählwert der jeweils gemessenen Lücke! So, dass der Ringpuffer fortlaufend mit den Istwerten der 50 zuletzten gemessenen Lücken befüllt wird.

Hat einer von euch eine Idee, ich hoffe ich konnte mich einigermaßen verständlich ausdrücken!

Im Voraus ein großes Dankeschön!

SG

Fabrizion
 
Hallo,
wenn ich dich richtig verstanden habe dann kümmert sich die Zählerkarte erstmal weitestgehend um sich selbst.
Das Einzige was du nun tun müßtest wäre die steigende Flanke deiner Lichtschranke abzufragen und daraufhin den Zählwert der Zählkarte (ggf. schon umgerechnet) in deinen Ringpuffer eintragen.
Wo ist hier nun ganz genau dein Problem ?

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Larry,

erstmals danke für deine Antwort

Ja die Zählerkarte läuft selbsständig, ich möchte nur das ich den letzten gezählten Wert (Abstand von Zuschnitt zu Zuschnitt) bekomme und diesen Wert möchte ich in einen Ringpuffer eintragen!

Führt diese Flankenauswertung nicht zu Verfälschungen des Lückenistwert`s, da ich ja die Flanke nicht in der Zählerkarte programmieren kann sondern in der CPU und dadurch bin ich Zykluszeit abhängig! Meine Zykluszeit ist jetzt schon auf 10ms!

Ich habe das Handbuch von der FM350-1 durchgelesen, man kann ja in dieser Karte nichts programmieren, ausser den Vergleichswert, Ladewert, Zählerwert, Softwaretor..... schreiben!

Danke im Voraus


Gruß

Fabrizion
 
Beim der schnelle Zählbaugruppe kannst du Zählerstande 'Latchen' das geht
mit Flanken am DI Start. Dieses Latchen ist SPS Zyklus unabhängig, der Zählerstand
wird von der Baugruppe im DB mit Latch_Load zwischengespeichert. Da das Latchen
einen prozessalarm auslöst besteht auch die Möglichkeit diesen latchwert unverzüglich
auszulesen.

Steht alles genauer im Handbuch https://a248.e.akamai.net/cache.aut...0_fm350_1_operating_instructions_de_de-DE.pdf
 
Zuletzt bearbeitet:
Helmut hat es ja schön beschrieben ... ich bin aber davon ausgegangen, dass du das sowie so schon so, wie von ihm beschrieben, ausgeführt hast ... wegen :

Die Ist-Lücke wird über die Zählerkarte FM350 eingelesen, wenn der Lichtschranke durchsieht gebe ich das Hardare Tor frei und die FM350 zählt die Impulse des Drehgebers so lange bis der Lichtschranke wieder belegt ist!

Gruß
Larry
 
Hallo die Herren,

soweit läuft alles ! Nur ein kleines Problem habe ich noch nicht gelöst!

Ich habe jetzt das Problem, dass ich den Zuschnittanfang inklusive Lücke messe, möchte aber nur die Lücke messen! Hat einer von euch eine Idee wie ich das noch lösen könnte?
Ein Beispiel: Der Zuschnitt ist ca. 250mm breit, dazwischen ist eine Lücke von ca. 60 mm, danach kommt der nächste Zuschnitt........usw.! Das ganze bei ca. 600m/min! Dachte mir mit der negativen Flanke am DI-Set hätte ich es gelöst, leider war das kein Erfolg!

Danke im Voraus

Gruß

Fabrizion
 
Guten Morgen,

habe nochmals nachgedacht :) ! Es sollte ja schon so funktionieren!

Ich habe das Lichtschrankensignal auf DI-Start und DI-Set angeschlossen!

Der Lichtschranke liefert bei Zuschnitt anwesend ein 0 Signal, dass heisst ja sobald ein Zuschnitt anwesend ist wird das Hardwaretor nicht freigegeben und dadurch werden die Impulse nicht gezählt!

Wenn dann die Lücke kommt (Lichtschranke sieht durch) ist ein 1 Signal auf DI-Start und DI-Set, es sollten dann die Impulse vom Drehgeber gezählt werden oder?

Habe an der Zählerkarte die Betriebsart " Latchen/Retrigger" eingestellt (mit "Negativer Flanke")!

Nach dieser Lücke (nächster Zuschnitt-Anfang/ Lichtschranke wechselt von 1 wieder auf 0) sollte ja der aktuelle Zählwert übertragen werden und der Ladewert geladen werden ( Habe als Ladewert 0) !

Danke im Voraus

Schönen Tag
Fabrizion
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Soweit ich mich erinnere, wird mit dem Ladewert unmittelbar der aktuelle Zählwert überschrieben. Wie willst Du den Zählwert vorher sichern? Ich würde eher mit der positiven Flanke 'latchen'.

Guss
HPE
 
Hallo HPE,

laut Handbuch sollte es funktionieren:

Mit dem Kommando Latch/Retrigger können Sie mit Flanken am Digitaleingang DI-Start
Zählerstände speichern (latchen). Nach jedem Speichern wird der Zähler auf den Ladewert
gesetzt und zählt vom Ladewert aus weiter (retrigger).

Gruß

Fabrizion
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie wär's mit folgendem Vorschlag:
- Eingang DI_Set nicht beschalten
- Lichtschranke nur an Eingang DI_Start
- Betriebsart Latch/Retrigger mit beiden Flanken konfigurieren
- im DB LOAD_VAL = 0 und mit FC-Parameter L_PREPAR übertragen
- pos. Flanke am DI_Start startet Messung der Lücke, neg. Flanke startet Messung des Werkstücks
- Zustand des DI_Start über DB-Bit STS_STA auswerten:
Ist STS_STA = 0 läuft gerade die Messung Werkstück, d.h. in LATCH_LOAD steht der Wert für die letzte Lücke
Ist STS_STA = 1 läuft gerade die Messung der Lücke, d.h. in LATCH_LOAD steht der Wert für das letzte Werkstück

Gruss
HPE
 
Hallo HPE,

danke für deinen Vorschlag!


Ich habe in meiner CPU schon relativ eine hohe Zykluszeit, darum möchte ich so wenig wie möglich in der CPU Programmieren!
Da diese Zuschnitte relativ schnell durch die Maschine fahren ( max. 600m/min), würde ich wahrscheinlich Impulse verlieren oder?

Bitte korrigiere mich, wenn das nicht stimmt!

Danke nochmals!

Gruß

Fabrizion
 
Wieso? Läuft doch alles auf der Zählerkarte. Den Ladewert überträgst Du einmal. Dann nur noch STS_STA auswerten und den LATCH_LOAD sichern. Das musst ja jetzt auch schon. Was ist also dazu gekommen, was Deine Zykluszeit verlängert?

Gruss
HPE
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja du hast recht! Ich weiss auch nicht warum ich auf den Eingang DI-Set komme! Dieser Eingang wird ja bei dieser Betriebsart gar nicht benötigt!
Ich werde das gleich mal heute ausprobieren, werde dir danach eine Rückmeldung geben!

Danke nochmals, du hast mir sehr weitergeholfen!


Gruss
Fabrizion
 
Hallo HPE,

habe heute deinen Vorschlag ausprobiert, jedoch kam ich nicht an das gewünschte Ziel! Ich hatte danach versucht, dass ganze in den OB40 zu kopieren, dass klappte auch nicht !

Die Hardware Einstellungen habe ich nach deiner Anleitung geändert!

ich habe folgendes programmiert:

L " LATCH_LOAD "
U STS_STA
SPB M001:
T " LATCH_LOAD LÜCKE"
SPA ENDE
M001: T "LATCH_LOAD ZUSCHNITT"
ENDE: NOP 0


Hast du es so gemeint?

Danke im Voraus

Gruß

Fabrizion
 
Prinzipiell hatte ich das so gemeint. Ich verstehe aber nicht, wo genau Dein Problem jetzt liegt. Funktioniert die Zählung nicht? Liefert die FM keine oder keine vernünftigen Werte oder hast Du Probleme mit dem Abspeichern der Werte? Es wäre auch mal interessant zu wissen, wie hoch die aktuelle Zykluszeit der CPU ist.

Gruss
HPE
 
Hallo,
was mich hier schon mal als erstes stört ist, dass du das Laden quasi "durchgehend" machst.
Ich würde mir für jeden Teil eine Flanke bilden und nur mit der Flanke umspeichern.

Ansonsten würde mich mal der komplette Code der Aktion (und nicht nur dieser halbe Auszug) interessieren ...

Gruß
Larry
 
Hallo Larry,

ja sorry du hast recht! Im Anhang der Baustein, der Ausdruck ist ein wenig verschoben! Habe die Zählerkarte zur Zeit wieder auf Latchen/Retrigger mit negativer Flanke eingestellt, da ich es nicht geschafft habe. Nun messe ich wieder Werkstück und Lücke!
Im Netzwerk 4 rechne ich die Breite des Werkstückes einfach ab (265mm). Ist zwar nicht der gewünschte Erfolg, aber aus Notlösung funktioniert es!

Lichtschranke liefert bei Lücke ein 1 Signal!

Hier noch der neue Code, den ich dann am Montag ausprobieren möchte (So wie du ihn jetzt vorgeschlagen hast):

Un STS_STA
FP M 51.2
SPB M001:
SPA M002
M001: L " LATCH_LOAD "
T " LATCH_LOAD LÜCKE"
M002: NOP0


U STS_STA
Fp M 51.3
SPB M003:
SPA M004
M003: L " LATCH_LOAD "
T " "LATCH_LOAD ZUSCHNITT"
M004: NOP0


Sollte dieser Code funktionieren, möchte ich ihn in den OB40 ausführen.
Muß ich dann bei latchen einen Prozessalarm ausführen?

L "Moduladresse"
L 500 // meine PEW/PAW Adresse der Zählerkarte
==I
SPBN M004
Un STS_STA
FP M 51.2
SPB M001:
SPA M002
M001: L " LATCH_LOAD "
T " LATCH_LOAD LÜCKE"
M002: NOP0


U STS_STA
Fp M 51.3
SPB M003:
SPA M004
M003: L " LATCH_LOAD "
T " "LATCH_LOAD ZUSCHNITT"
M004: NOP0

Ich danke euch im Voraus und wünsche euch ein schönes Wochenende

Fabrizion
 

Anhänge

  • FC500.pdf
    21,7 KB · Aufrufe: 4
Zuletzt bearbeitet:
Zurück
Oben