Hallo allerseits,

ich arbeite momentan an einem Projekt mit einem Berger Lahr Kompaktmotor. Der Motor treibt eine Linearachse von Festo an. Auf der Achse befindet sich eine Packung die gefüllt werden soll... Also Ablauf sieht etwa so aus: Teil wird eingeschoben - Achse bewegt sich eine Höhe entsprechend der Teilhöhe nach unten - nächstes Teil wird eingeschoben - Loop bis Packung voll ist - Packung wird mit einer Schwenkeinheit auf ein Band gekippt.

So nun zu meinem Problem... Ich habe bisher nie etwas mit einem Berger Lahr Schrittmotor (IFS Kompak) gemacht. Die Ansteuerung erfolgt über mitgelieferte Bausteine (also nicht über FM353). Den Motor habe ich inzwischen zum laufen bekommen allerdings lediglich im Manuellen Betrieb über das Touchpanel.

Nun zu meinem Problem ... Der Automatikbetrieb...

Zuerst wird der Motor referenziert, dies funktioniert soweit einwandfrei. Anschliessend fährt der Motor auf die Grundstellung. Über einen Vergleicher setze ich M138.0 sobald die Grundstellung erreicht ist.

sieht folgendermassen aus:

U(
L MD 130
L MD 134
== R
)
S M 138.0
U(
L MD 130
L MD 134
== R
)
NOT
R M138.0
Nop 0

So also der M 138.0 wird gesetzt sobald die Grundstellung erreicht ist.

Nun habe ich mir gedacht wenn ich die aktuelle Position auslese, von dieser die zu verfahrende Strecke abziehe (in diesem fall etwa L#7000), dann die errechnete Position in Zielposition schreibe und den Motor mit positionieren starte das er auf die neue Position fahren müsste... tut er allerdings nicht... Der Code sieht etwa so aus:

U M138.0
U "DB".Antrieb.referenziert
S "DB".Start_positionierung
L 100
T "DB".Geschwindigkeit
L "DB".Aktuelle_Position
L L#7000
-D
T "DB".Zielposition
L L#500
T "DB".Beschleunigungsverzoegerung

CALL "IFX_Positioning"
.. .. ..


Im moment weiss ich ehrlich gesagt nicht so wirklich woran es liegt... vielleicht kann mir hier ja jemand weiterhelfen, wäre nett^^

Gruss Stefan