TIA CPU S7-1500: Baustein - Wandler Zeit [ms] zum Impuls/Schließer.

thomasdeldiaz

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

Das war langer her, als ich den letzten Post in diesem Forum erstellt habe.

Ich bin jedenfalls wieder zurück mit einem Problem, womit ich mich seit zwei Wochen auseinandersetze.

Es handelt sich nämlich um folgendes, und zwar:

Es gibt ein Setup von zwei Maschinen die miteinander über zwei Potenzialfreikontakte kommunizieren.

Maschine #1: eine Waage (Weight Checker), die die Gewichte der Produkte auswertet und an die Maschine #2 herausgibt. Es werden zwei verschiedene Signale abgeleitet, je nach dem wie das Gewicht korrigieren sein soll, also PLUS oder MINUS. Im Grunde genommen es sind zwei Potentialfreikontakte auf der Platine, die das Signal als Zeitfenster herausgeben. Heißt es im Klartext, nach dem Muster: 1 [g] = 100 [ms], also wenn das Gewicht um 3 [g] korrigiert sein soll wird der Schließer sich im Zustand „Closed“ über 300 [ms] befinden (je nach Anforderung nach OBEN oder NACH unten). Diese Gleichung vom Zeitfenster „1 [g] = 100 [ms]“ lässt sich anders definieren und kann z.B. auf 150 [ms] gesetzt werden. Die Maschine hat eine eingebaute Platine mit eigenem SPS Software, die sich nicht bearbeiten lässt.

Maschine #2: ein Teigteiler, der die Signale aus der Maschine #1 auswertet und dementsprechend das Gewicht beim Teilen korrigiert. Sie verfügt über eine SPS von Siemens: CPU S7-1500. In dem SPS Programmablauf soll ein Signalwandler implementiert werden, der das Zeitfenster, das von der Maschine #1 kommt in Impulse umwandelt. Nach demselben Muster wie in der Maschine #1: 1 [g] = 100 [ms]. Also wenn ein Signal ankommt, das 300 [ms] dauert, soll der Wandler 3 Impulse als Schließer auslösen. Schließer #1 – PLUS (das Gewicht soll erhöht werden). Schließer #2 – MINUS (das Gewicht soll minimiert werden).

Der Programmiere von der Maschine #2 behauptet, dass so ein Wandler sich nicht installieren und definieren lässt.

Hätte jemand eine Idee, wie man mit der Herausforderung umgehen kann? Irgendwelche Tips & Tricks?

Vielen Dank im Voraus,

Thomas
 
Moin thomasdeldiaz,

spannend finde ich die Frage, wie exakt die Signaldauer ausgewertet werden kann bzw. welche Toleranzen es gibt.

Ich würde wahrscheinlich die Signaldauer messen und dann prüfen, in welchen "Wertfenster" ich mich befinde.

100ms => 50-149
200ms => 150-249
usw.

Also daran die Vorgabe ermitteln. Die Bereiche lassen sich ja, je nach Rastereingabe (100ms oder 150ms ...) ggf. sogar dynamisch anpassen.

Dann wird der Wert durch den Vorgabewert geteilt (200ms / Vorgabe(100ms) = 2).

So würde ich ins Rennen gehen.

Und der Programmierer von Maschine #2 hat Unrecht.


VG


MFreiberger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo MFreiberger,

Der Hersteller der Maschine #1 gewährleistet, dass die Schließung vom Relais genau 100 [ms] dauert (und danach je nach dem Raster).

Also am Ende der Geschichte, ist es doch in der SPS der Maschine #2 programmmäßig umsetzbar.

Gibt es dazu fertige Bausteine im TIA Portal, also so ein Signalwandler, oder muss ein programmiert werden?

VG,

Thomas
 
Der Hersteller der Maschine #1 gewährleistet, dass die Schließung vom Relais genau 100 [ms] dauert (und danach je nach dem Raster).
Da bin ich doch eher etwas skeptisch. Allein die mechanisch bedingten Schließ- und Öffnungszeiten des Relais benötigen wenige Millisekunden. Signallaufzeiten noch nicht mit eingerechnet. Zudem Muss ja auch die Auswertung des potentialfreien Kontaktes durch Maschine #2 erfolgen. Auch das wird nicht ohne Signallaufzeiten usw. von statten gehen können.
Ich vermute, dass die Auswertung der Schließung (wenn sie tatsächlich GENAU 100 [ms] betragen sollte) bei +/-10ms liegen könnte.
Dazu sei npoch ergänzend angemerkt, dass Schütze/Relais verschleißen. Dadurch erhöhen sich die Schließ- und Öffnungszeiten.

Also am Ende der Geschichte, ist es doch in der SPS der Maschine #2 programmmäßig umsetzbar.
Sicher. Prinzipiell ist das umsetzbar. Kommt aber auch auf die Synapsen des Programmiererkopfes an.

Gibt es dazu fertige Bausteine im TIA Portal, also so ein Signalwandler, oder muss ein programmiert werden?
So ein Signalwandler wird wohl selber programmiert werden müssen. Allerdings wäre es (wenn es stimmt, dass das 100 [ms] -Zeitraster zuverlässig und genau ist) ja nur eine Division.


VG

MFreiberger
 
Hallo Thomas,

interessant wäre es zu wissen wie lange die Impuls und Pausendauer sein sollen.

Wenn Impulsdauer + Pausendauer <= 100 ms könnte das Programm in Maschine 2 sehr einfach werden:

- Sobald Signal von Waage erkannt wird Impuls ausgeben
- nach 100 ms und Signal von Waage noch = 1 dann neuen Impuls ausgeben
- solange wiederholen bis Signal von Waage = 0

evtl. das ganze Spiel erst nach 40-50ms beginnen, dann würden kleine Zeitdifferenzen keine Rolle spielen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich wurde MFreibergers und Peter Wahlens Vorschläge kombinieren.
Also von die Waagesignal direkt die Impulse steuern, nur nicht auf genau 100 ms die erste Impuls ausgeben, aber schon nach 50 ms, und die nächste nach 150 ms usw.
 
Hallo zusammen,

Ehrlich zu sagen ich konnte mir auch nicht 100% vorstellen, dass das Signal genau 100 [ms] dauern kann. Also nicht bei einem standardmäßigen Relais (wie bereits MFreiberger erwähnt hat), es sei denn dass auf der Platine was spezielles eingebaut wurde. Ich muss bei dem Hersteller noch fragen.

Zum Thema der Pausen, die Waage gibt das Signal (Zustand 1) au, z.B. 300 [ms] für die 3 [g] PLUS bei dem Untergewicht, und danach kommt eine Pause von mehreren Sekunden bevor eine neue Charge ausgewertet wird und ein neues Signal ausgelöst wird (ca. 20 Produkte müssen über die Messdosen der Wage durchlaufen bei der Geschwindigkeit von v=0,5 [m/s], Abstände liegen bei ca. 200 [mm]).

Ich denke in der Maschine #2 die Impulsdauer + Pausendauer <= 100 ms wäre völlig OK.
Impulsdauer 60 [ms] + Pausendauer 30 [ms] <= 100 ms

MfG,

Thomas
 
Die Signale der Waage per Hardwareinterrupt erfassen und bei kommendem Signal Zeiterfassung starten und gehendem Signal auswerten.
Die Zykluszeit der SPS ist hier das Problem, das mit der Auswertung der Interrupts umgangen wird.

Dann einfach Auswerten wie lang das Signal da war und die Impulse generieren.
 
Ich fühle es ist ein bisschen übertrieben wenn man ein S7-1500 einsetzt, nur für die Umwandlung von 2 signale von Impulsdauer ins Impulsreihenfolge.
Ein S7-1200 oder vielleicht sogar ein Logo wäre genug.
(ich weis nicht welche Timer Funktionen ein Logo hat).

Warte mal. Die Teigteiler ist die Maschine der die Impulse bekommt. Da ist kein SPS "dazwischen".
Was soll diese Umwandlung von Impulsdauer ins Impulsreihenfolge auswirken ?
Da muss in SPS Programm interne Variabeln (REAL oder INT o.Ä) sein der die Gewicht von Teig repräsentiert.
Anstatt in Impulsreihenfolge zu wandeln, den internen Variabel inkrementieren und dekrementieren.
 
Zuletzt bearbeitet:
Hallo JesperMP,

Das stimmt zwischen der Maschine #1 und #2 hängt keine SPS. Das Impuls in [ms] kommt von der M#1 an die M#2. Maschine #2, der Teigteiler ist mit S7-1500 ausgestattet, weil es hängen dran mehrere Sensoren, sowie FUs, etc. "Teigteiler" klingt einfach, aber das ist ganz komplexe Konstruktion und Steuerung.

Die Umwandlung des Signals von der M#1 soll auf andere Seite die Impulse ausgeben, die die Korrektur des Gewichtes bewirken soll. Das Gewicht wird durch die Drehzahl eines Drehmessers bestimmt. Ein Impuls bedeutet für den FU des Antriebsmotors vom Messer, entweder der Drehzahl nach oben oder nach unten, je nach Gewichtänderung.

VG,

Thomas
 
Ein so unmittelbares Feedback wird nach meiner Vorstellung je nach Länge der Totstrecke (zwischen Wasge und Dosierer) zu mehr oder minder starken Schwingungen führen.
FÜr besser halte ich da die integrale Rückführung. 3 aufeinander folgende "zu schwer" Reduzieren leicht das Gewicht und umgekehrt.
 
Hallo zusammen,

Die Geschwindigkeit des Messers, heißt die Drehzahl, wird vom HMI gesteuert: 10 - 100 Einheiten. Der Signalwandler sagt der SPS wie viel sie von dem Wert abziehen bzw. zugeben soll. Also bei 3 [g] Gewichtabweichung (Untergewicht - zu wenig) --> ausgelöstes Signal von 300 [ms] --> umgewandelt auf 3 Impulse --> am Ende werden die 3 Einheiten zugegeben. In der SPS gibt es eine Option den Faktor zu ändern, also wie viel Einheiten soll ein Impuls betragen.

Also die Impulse haben keinen unmittelbaren Zugang zum FU.

So funktioniert das ganze.

VG,

Thomas
 
Zurück
Oben