Step 7 Axis positioner

EN:

AUTHOR:

Andrea Piovesan
Email: andrea.piovesan at (google mail domain aka = gmail.com)
Web: https://automationcorner.wordpress.com

LICENSE:

GNU Lesser General Public License
Version 3, 29 June 2007

REQUIREMENTS:

Hardware: Any CPU Siemens S7 300, 312, 313, 314, 315, 400, …
IDE: Siemens Simatic STEP 7 Ver. 5.3 or higer
Language: AWL

OPERATION:

This FB works with adjustable time base. Call the function block in the normal scan cycle of the program (making sure that the cycle is faster than the time base) and set the bit “TimebaseOneShoot” with a pulse generator (one pulse
every timebase period) Alternatively you can call this function block into OB35 scheduling such as 100ms task and set the bit “TimebaseOneShoot” with TRUE constant.

Note: Calling this function block into OB35 simplifies the program, but affect the speed of response and the precision.

The positioning is done in three phases:
1. Acceleration (freeride)
2. Deccelerezione (braking)
3. Approach (landing)

The first phase the algorithm accelerates the axis with the maximum possible acceleration indicated by the parameter “aMaxAcceleration”; once reached the maximum speed (parameter “vMaxSpeed”) keeps it until it deceleration.

The deceleration occurs according to the uniformly decelerated motion law until the approach speed specified in the parameter “VLandingSpeed”.

The approach begins when the axis enters the space approach tothe overcoming of the end point.

ERROR CHECK

At the end of the run-up shaft retainer (“vCurrentSpeed” = 0) the algorithm verifies that the Tolerance parameter defined in “XTolleranceSpace” is respected otherwise activates the bit error message “Error” and IN However, the signaling bits of arrival “Landed”

ERROR COMPENSATION

At the end of the approching phase (“vCurrentSpeed” = 0) if the parameter “AutoErrorCompensation” is TRUE, it checks the overshoot positioning. The difference from the point of arrival is stored in the parameter “xForwardErrorComp” if the axis is moved forward and “XBackwardErrorComp” if the axis is moved back to help stop advance on the approach to fit within the limits of possible tolerance.

IT:

AUTHOR:

Andrea Piovesan
Email: andrea.piovesan@gmail.com
Web: https://automationcorner.wordpress.com

LICENSE:

GNU Lesser General Public License
Version 3, 29 June 2007

REQUIREMENTS:

Hardware: Any CPU Siemens S7 300, 312, 313, 314, 315, 400, …
IDE: Siemens Simatic STEP7 ver. 5.3 or higer
Language: AWL

FUNZIONAMENTO:

Questo FB funziona con base tempi impostabile. Chiamare il blocco funzione nel normale ciclo del programma (facendo attenzione che il ciclo sia più veloce della base tempi) ed impostare il bit “TimebaseOneShoot” che comanderà il
ricalcolo delle velocità.
In alternativa è possibile chiamare questo blocco funzione nell’OB35 con schedulazione ad esempio 100ms ed impostare con valore TRUE il bit “TimebaseOneShoot”

Nota: Chiamando il blocco funzione dell’OB35 si semplifica il programma, ma si compromette la velocità di risposta al raggiungimento delle varie soglie di posizione a discapito della precisione di posizionamento.

Il posizionamento avviene in tre fasi:

1. Accelerazione (free-ride)
2. Deccelerezione (braking)
3. Avvicinamento (landing)

La prima fase dura fintanto che l’asse è ad una distanza superiore (rispetto al punto di arrivo) della somma tra spazio di frenatura “xBrakingSpace” e lo spazio di avvicinamento “xLandingSpace”.
L’algoritmo accellera l’asse con la massima accelerazione possibile indicata dal parametro “aMaxAcceleration”
Raggiuna la velocità massima (parametro “vMaxSpeed”) la mantiene fino a che non interviene la deccelerazione.

La deccelerazione avviene secondo la legge del moto uniformemente decelerato fino al reggiungimento della velocità di avvicinamento indicata nel parametro “vLandingSpeed”.

L’avvicinamento inizia quando l’asse entra nello spazio di avvicinamento fino al superamento del punto di arrivo.

ERROR CHECK

Al termine della fase di avvicinamento ad asse fermo (“vCurrentSpeed” = 0) l’algoritmo verifica che la tollerenza definita nel parametro “xTolleranceSpace” sia rispettata altrimenti attiva il bit di segnalazione di errore “Error” e IN OGNI CASO il bit di segnalazione di arrivo “Landed”

ERROR COMPENSATION:

Al termine della fase di avvicinamento ad asse fermo (“vCurrentSpeed” = 0) se il parametro “AutoErrorCompensation” è TRUE, viene verificata la sovraelongazione di posizionamento. La differenza rispetto al punto di arrivo viene memorizzata nel parametro “xForwardErrorComp” se l’asse si muoveva in avanti e “xBackwardErrorComp” se l’asse si muoveva indietro che consentono l’arresto anticipato della fase di avvicinamento in modo da rientrare nei limiti del
possibile nella tolleranza.

About andreapiovesan

Freelance software developer View all posts by andreapiovesan

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: