Show/Hide Toolbars

Presse universelle MecaMotion par 

Navigation: Dialogue PROFINET

FB pilotage presse PROFINET

Scroll Précédent Accueil Suivant Plus

FB pilotage presse PROFINET

Pour faciliter le pilotage de la presse depuis un automate, nous avons développé un bloc fonctionnel (FB_MecaMotion_presse).

Celui-ci reprend l'ensemble des entrées et sorties PROFINET nécessaires pour piloter la presse.

Liste des entrées et sorties du bloc

Nom de la variable

Déclaration

Type de donnée

Description

Hardware_identifier_press_inputs

INPUT

HW_IO

Numéro identifiant la zone d'adresse des entrées PROFINET

Hardware_identifier_press_outputs

INPUT

HW_IO

Numéro identifiant la zone d'adresse des sorties PROFINET

Ack_error

INPUT

BOOL

Acquittement des erreurs (Récupération du front montant)

Operating_mode

INPUT

BYTE

Mode de marche à activer (Manuel = 1, Automatique = 2)

Manual_positioning_relative_mode

INPUT

BOOL

Mode de positionnement manuel (Absolu = 0, Relatif = 1)

Manual_position

INPUT

REAL

Consigne de position pour le positionnement manuel [mm]

Manual_speed

INPUT

REAL

Consigne de vitesse pour le positionnement manuel [mm/s]

Manual_acceleration_deceleration

INPUT

REAL

Consigne d'accélération/décélération pour le positionnement manuel [mm/s²]

Start_manual_positioning

INPUT

BOOL

Démarrer le positionnement manuel (Cette entrée doit être maintenue à "1" jusqu'à ce que la sortie "Manual_position_reached" soit active)

Jog_downwards

INPUT

BOOL

Marche à vue, la presse descend tant que l'entrée est active (Mode Manuel)

Jog_upwards

INPUT

BOOL

Marche à vue, la presse monte tant que l'entrée est active

(Mode Manuel)

Go_to_initial_position

INPUT

BOOL

Aller à la position initiale renseignée dans les paramètres de la presse depuis MécaMotion

Go_to_release_position

INPUT

BOOL

Aller à la position de dégagement renseignée dans les paramètres de la presse depuis MécaMotion

Stop_movement

INPUT

BOOL

Arrêter le mouvement de l'axe (Mode manuel ou automatique) et mettre en pause l'exécution du programme pièce (Récupération du front montant)

Continue_movement

INPUT

BOOL

Reprendre le mouvement de l'axe (Mode manuel ou automatique) et continuer l'exécution du programme pièce (Récupération du front montant)

Reset_force_sensor

INPUT

BOOL

Reset du détecteur de force, l'entrée doit être à "1" pour que le reset s'effectue (Récupération du front montant) (Mode Manuel)

Force_sensor_range

INPUT

BYTE

Choix de l'échelle du détecteur de force (1 = petite échelle, 2 = grande échelle) Le détecteur de force passe en mode "reset" automatiquement à chaque changement d'échelle (Mode Manuel)

Program_number

INPUT

BYTE

Numéro de programme à activer (de 1 à 253) (L'activation du programme se fait dès que la valeur de l'entrée est modifiée)

Envelope_number

INPUT

BYTE

Numéro d'enveloppe à activer (de 1 à 253) (Le décodage de l'enveloppe se fait dès que la valeur de l'entrée est modifiée)

Envelope_monitoring

INPUT

BOOL

Activer ou désactiver le contrôle de l'enveloppe

(L'entrée doit être à "1" pour que le contrôle soit actif)

Start_program

INPUT

BOOL

Démarrer l'exécution du programme. (Cette entrée est à maintenir à "1" jusqu'a ce que la sortie "Program_finished" ou "Error" soit active)

Enable_breakpoints

INPUT

BOOL

Activer les points d'arrêt (L'entrée doit rester active pour effectuer les arrêts)

Continue_after_breakpoint

INPUT

BOOL

Continuer après point d'arrêt (Récupération du front montant)

Manual_force_limit

INPUT

BYTE

Force limite en mode manuel, en % du paramètre 14/15 "Surcharge avec range N"

DB_setpoints_results

INPUT

DB_ANY

Bloc de données contenant les variables utilisateurs qui permettent d'envoyer les consignes et recevoir les résultats

Error

OUTPUT

BOOL

Au moins une erreur est présente si cette sortie est à "1"

Message

OUTPUT

BOOL

Au moins un avertissement est présent si cette sortie est à "1"

Axis_enabled

OUTPUT

BOOL

Lorsque cette sortie est à "1" la presse est prête à travailler

Press_cpu_started

OUTPUT

BOOL

A la mise sous tension de la presse, il faut attendre que cette sortie passe à "1" avant d'envoyer une commande.

Actual_operating_mode

OUTPUT

BYTE

Mode de marche actif (Manuel = 1, Automatique = 2)

Manual_positioning_relative_mode_active

OUTPUT

BOOL

Mode de positionnement manuel actif (Absolu = 0, Relatif = 1)

Manual_position_reached

OUTPUT

BOOL

Cette sortie s'active lorsque la position manuel est atteinte

Initial_position_reached

OUTPUT

BOOL

Cette sortie s'active lorsque l'axe a atteint sa position initiale

Release_position_reached

OUTPUT

BOOL

Cette sortie s'active lorsque l'axe a atteint la position de dégagement

Force_sensor_actual_range

OUTPUT

BYTE

Echelle de force active (1 = petite échelle, 2 = grande échelle)

Actual_program_number

OUTPUT

BYTE

Numéro de programme actif (de 1 à 253)

Program_running

OUTPUT

BOOL

Cette sortie s'active lorsque le programme est en cours d'exécution

Program_finished

OUTPUT

BOOL

Cette sortie s'active lorsque l'exécution du programme est terminée

Actual_envelope_number

OUTPUT

BYTE

Numéro d'enveloppe active (de 1 à 253)

Stopwatch_1_running

OUTPUT

BOOL

Chronomètre 1 en cours d'exécution lorsque la sortie est à "1"

Stopwatch_2_running

OUTPUT

BOOL

Chronomètre 2 en cours d'exécution lorsque la sortie est à "1"

Stopwatch_3_running

OUTPUT

BOOL

Chronomètre 3 en cours d'exécution lorsque la sortie est à "1"

Stopwatch_4_running

OUTPUT

BOOL

Chronomètre 4 en cours d'exécution lorsque la sortie est à "1"

Stopwatch_5_running

OUTPUT

BOOL

Chronomètre 5 en cours d'exécution lorsque la sortie est à "1"

Crash_occured

OUTPUT

BOOL

Un crash est arrivé

Crash_release_mode

OUTPUT

BOOL

1 = Remontée automatique  après crash, 0 = Reste en bas

Force_overload_in_manual

OUTPUT

BOOL

Force limite atteinte en mode manuel

Start_next_program_enabled

OUTPUT

BOOL

0 = Le démarrage du programme est interdit ( MecaMotion n'a pas encore récupéré les résultats - voir paramètre 45

Program_on_breakpoint

OUTPUT

BOOL

Programme arrêté sur un point d'arrêt quand la sortie est à "1"

Actual_position

OUTPUT

REAL

Position actuelle de l'axe en [mm]

Actual_speed

OUTPUT

REAL

Consigne de vitesse actuelle de l'axe en [mm/s]

Actual_measuring_sensor_value

OUTPUT

REAL

Valeur du palpeur actuelle en [mm]

Actual_force

OUTPUT

REAL

Valeur de force actuelle [N]

Errors_messages

OUTPUT

Struct of 120 Bool

Erreurs et avertissements

Tableau 1: Désignation des entrées/sorties du bloc

Automate Siemens

Sur les entrées "Hardware_identifier_presse_inputs" (Identifiant de la plage d'entrées Profinet de la presse) et "Hardware_identifier_presse_outputs" (Identifiant de la plage de sorties Profinet de la presse), vous devez donner au format décimal, l'adresse matériel des zones d'entrées et de sorties Profinet.

Lorsque vous utilisez un automate de marque Siemens, vous devez utiliser un bloc de données pour écrire/lire les variables utilisateurs. Ce bloc doit avoir la structure suivante et doit être transféré à l'entrée "DB_setpoints_results".

Structure du DB de consignes et résultats:

Type d'utilisation

Adresse de début

Dimension et format

Description

Consigne

0.0

50 DWORD

 Variables d'entrée utilisateur de type DINT ou REAL

Consigne

200.0

32 BOOL

Variables d'entrée utilisateur de type BOOL

Consigne

204.0

5 DWORD

Réserve

Résultat

224.0

50 DWORD

Variables de sortie utilisateur de type DINT ou REAL

Résultat

424.0

32 BOOL

Variables de sortie utilisateur de type BOOL

Résultat

428.0

5 DWORD

Réserve

Tableau 2: Structure du bloc de données consignes/résultats sous Siemens

Automate Beckhoff

Dans le FB "MecaMotion Presse" pour les automates Beckhoff la déclaration des plages d'entrées et sorties Profinet se font par l'intermédiaire de 2 tableaux de Bytes de longueur 254.

Lorsque vous utilisez un automate de marque Beckhoff, l'écriture/lecture des variables utilisateurs se font par l'intermédiaire de tableaux.

Type d'utilisation

Dimension et format du tableau

Description

Consigne

50 DWORD

Variables d'entrée utilisateur de type DINT ou REAL

Consigne

32 BOOL

Variables d'entrée utilisateur de type BOOL

Résultat

50 DWORD

Variables de sortie utilisateur de type DINT ou REAL

Résultat

32 BOOL

Variables de sortie utilisateur de type BOOL

Tableau 3: Tableaux consignes/résultats sous Beckhoff

Erreurs du FB

En plus des erreurs Profinet de la presse listées dans le chapitre "Liste des erreurs PROFINET", les erreurs ci-dessous peuvent apparaître, ces erreurs font partie de la structure de Booléens de la sortie "Errors_messages". Si vous utilisez un automate Siemens, la structure doit comporter 120 Booléens.

N° Erreur

Type

Description erreur

Format

80

Erreur

Presse pas démarrée (la presse est en cours de démarrage)

BIT

81

Erreur

Mode manuel pas actif (impossible d'utiliser les commandes manuelles)

BIT

82

Erreur

Numéro de programme ou numéro d'enveloppe pas actif au moment du démarrage programme (consigne différente du retour)

BIT

83

Erreur

Sélection du mode impossible

BIT

Tableau 4: Erreurs internes du bloc fonctionnel

Acquittement des erreurs

Pour acquitter les erreurs vous devez mettre à "1" l'entrée "Ack_error". (détection du front montant)

Changement de mode de fonctionnement

Il y a 2 modes de fonctionnement possibles, manuel = 1 ou automatique = 2.

Pour activer un de ces modes, vous devez écrire dans le byte d'entrée "Operating_mode" (Mode de fonctionnement) une des valeurs listés ci-dessus. Vous pouvez ensuite vérifier que le mode a bien été activé, à l'aide du byte de sortie "Actual_operating_mode" (mode de fonctionnement actif).

Positionnement manuel

Pour effectuer un positionnement manuel, vous devez renseigner les paramètres d'entrées suivant:

Manual_positioning_relative_mode (Mode de positionnement manuel,absolu=0, relatif=1)

Manual_position (consigne de position [mm])

Manual_speed (vitesse de déplacement [mm/s])

Manual_acceleration_deceleration (accélération et décélération du mouvement [mm/s2])

Une fois ces paramètres renseignés, vous pouvez démarrer le positionnement à l'aide de l'entrée "Start_manual_positioning" (démarrer positionnement manuel), cette entrée doit être maintenue à "1" jusqu'a ce que la sortie "Manual_position_reached" (positionnnement manuel terminé) passe elle aussi à "1". Ensuite, lorsque vous remettez à "0" le "start", la sortie "Manual_position_reached" passera également à "0". Vous pouvez alors effectuer un nouveau positionnement.

Marche à vue

Les entrées "Jog_downwards" (jog descendre) et "Jog_upwards" (jog monter) permettent d'effectuer des déplacements à vue, lorsque l'une des commandes est à "1" l'axe se déplace et s'arrête lorsque la commande passe à "0".

Attention, vous devez renseigner une vitesse dans le paramètre d'entrée "Manual_speed" pour que le déplacement s'effectue.

Position initiale et position de dégagement

Aller à la position initiale (mode manuel ou automatique):  L'entrée "Go_to_initial_position" (aller à la position initiale) permet de déplacer l'axe jusqu'à la position initiale renseignée dans les paramètres depuis MecaMotion. Cette entrée doit être maintenue à "1" jusqu'à ce que la sortie "Initial_position_reached" (position initiale atteinte) passe à "1", cela signifie que le positionnement est terminé, vous pouvez ensuite repasser l'entrée à "0" et la sortie passera elle aussi à "0".

Aller à la position de dégagement (mode manuel ou automatique): L'entrée "Go_to_release_position" (aller à la position de dégagement) permet de déplacer l'axe jusqu'à la position de dégagement renseignée dans les paramètres depuis MecaMotion. Cette entrée doit être laissée à "1" jusqu'à ce que la sortie "Release_position_reached" (position de dégagement atteinte) passe à "1", cela signifie que le positionnement est terminé, vous pouvez ensuite repasser l'entrée à "0" et la sortie passera elle aussi à "0".

Arrêt mouvement

En mode manuel ou automatique, lorsqu'un front montant est détecté sur l'entrée "Stop_movement" (arrêter mouvement axe), l'axe s'arrête et l'exécution du programme est mise en pause.

Reprise mouvement

La reprise du mouvement de l'axe et de l'exécution du programme s'effectue lorsqu'un front montant est détecté sur l'entrée "Continue_movement" (reprendre mouvement axe). (Mode manuel ou automatique)

Gestion du capteur de force

Pour effectuer le reset du détecteur de force, vous devez mettre à "1" l'entrée "Reset_force_sensor" (reset détecteur force). Le reset est effectué durant 200[ms] après la détection d'un front montant sur l'entée.

Pour changer l'échelle du détecteur de force, vous devez renseignez dans le byte d'entrée "Force_sensor_range" (échelle détecteur force) le numéro de l'échelle que vous souhaitez activer. Lorsque vous modifiez l'échelle du détecteur de force, un reset de celui-ci est effectué durant 500[ms].

Changement de programme

Pour activer un programme, il suffit de renseigner le numéro de celui-ci dans le byte d'entrée "Program_number" (numéro de programme). Vous pouvez ensuite vérifier si le programme a bien été activé à l'aide de la sortie "Actual_program_number" (numéro de programme actif).

Démarrage du programme actif

Pour démarrer le programme actif, il faut que les sorties "Program_running" (programme en cours) et "Error" (erreur présente) soient à "0". Ensuite, vous devez activer l'entrée "Start_program" (démarrer programme) et la maintenir active jusqu'a ce que la sortie "Program_finished" (programme terminé) soit à "1". Lorsque le programme est terminé, vous pouvez désactiver l'entrée "Start_program" et la sortie "Program_finished" passera à 0". vous pouvez ensuite relancer le programme.

Changement d'enveloppe

Pour choisir et activer une enveloppe, vous devez renseigner son numéro dans le byte d'entrée "Envelope_number" (numero enveloppe). Vous pouvez vérifier que l'enveloppe choisi a été prise en compte à l'aide du byte de sortie "Actual_envelope_number" (numéro enveloppe active).

Vous pouvez à tout moment activer ou désactiver le contrôle de l'enveloppe à l'aide de l'entrée "Envelope_monitoring" (surveillance d'enveloppe). Cette entrée doit être à "1" pour que le contrôle soit actif.

Points d'arrêt

Si vous utilisez l'instruction point d'arrêt dans votre programme, vous avez le choix d'effectuer ou non les arrêts durant l'exécution du programme.

Pour activer les points d'arrêt vous devez mettre à "1" l'entrée "Enable_breakpoints" (activer point d'arrêt). Lorsque l'exécution du programme est arrêtée sur un point d'arrêt, la sortie "Program_on_breakpoint" (programme sur point arrêt) passe à "1". Vous pouvez poursuivre l'exécution du programme en activant l'entrée "Continue_after_breakpoint" (continuer après point arrêt) (détection du front montant).

Chronomètres

Si vous utilisez l'instruction chronomètre, vous pouvez visualiser à tout moment les chronomètres en cours d'exécution à l'aide des sorties "Stopwatch_..._running" (chronomètre .... en cours).

Données technologiques de la presse

Vous pouvez visualiser à tout moment la position et la vitesse de déplacement de l'axe, la valeur du palpeur et la valeur de la force à l'aide des sorties suivantes :

"Actual_position" (position axe actuelle) [mm] Format REAL

"Actual_speed" (vitesse axe actuelle) [mm/s] Format REAL

"Actual_measuring_sensor_value" (valeur palpeur actuelle) [mm] (option) Format REAL

"Actual_force" (valeur de force actuelle) [N] Format REAL

Exemple d'utilisation du FB pilotage presse :

Nous souhaitons réaliser l'insertion d'un rivet.

Insertion rivet 2

Figure 1: Insertion d'un rivet

Pour ce faire, nous utilisons deux programmes réalisés dans MecaMotion (Logiciel de programmation et paramétrage de la presse).

Le premier programme permet de mesurer la hauteur de référence qui sera utilisée pour déterminer la position finale d'insertion.

Dans celui-ci (figure 2), la mesure de la hauteur de référence est faite à l'aide de la fonction "mesure position" qui est utilisable lorsque la presse est équipée d'un interrupteur de précision. La position mesurée vous permettra de déterminer la position d'insertion du rivet.

La fonction mesure position doit toujours se trouver avant un positionnement, c'est durant celui-ci que la mesure est effectuée. Dans ce positionnement, vous devez donner comme consigne, une position non atteignable (plus bas que la référence), l'axe sera arrêté à la commutation de l'interrupteur de précision par la fonction "mesure position".

Avant d'exécuter ce programme, vous devez envoyer à la presse par PROFINET, les consignes "préposition de référence" et "position non atteignable". Quand le cycle est terminé, la presse retourne par PROFINET, la force maximale mesurée durant la détection et la position de référence.

Programme Mesure_référence

Figure 2: Programme MecaMotion - Mesure référence

Le deuxième programme permet d'effectuer l'insertion du rivet, cette insertion est réalisée en position. La position réelle d'insertion est calculée comme suit : "position réelle d'insertion" = "position de référence" + "course de l'interrupteur de précision" - "hauteur d'insertion"

Avant de lancer le programme, vous devez donner les consignes suivantes par PROFINET :

Préposition (Position jusqu'à laquelle la presse descend en vitesse rapide)

Course interrupteur (Course de l'interrupteur de précision)

Hauteur insertion (Hauteur d'insertion souhaitée par rapport à la référence)

Vitesse insertion (Vitesse de descente lors de l'insertion)

Lorsque l'insertion est terminée, la force maximale mesurée pendant le cycle est retournée par PROFINET.

Programme Insertion rivet

Figure 3: Programme MecaMotion - Insertion rivet

Après avoir réalisé les deux programmes, vous devez associer dans l'automate et MecaMotion les variables PROFINET utilisées pour donner les consignes et recevoir les résultats.

Dans la figure 4 ci-dessous, vous devez déclarer l'ensemble des consignes qui devront être envoyées par l'automate.

Il est indispensable de renseigner l'adresse de départ des variables d'entrées/sorties Profinet (elles doivent être les mêmes que celles configurées dans l'automate).

Assignation entrées profinet

Figure 4: Association des variables de consignes aux variables PROFINET depuis Mecamotion

Dans la figure 5 ci-dessous, vous associez l'ensemble des variables résultats qui seront retournés à l'automate.

Assignation sorties profinet

Figure 5: Association des variables de résultats aux variables PROFINET depuis MecaMotion

Lorsque les programmes sont réalisés et les variables d'entrées/sorties sont déclarées dans MecaMotion, vous devez, dans la plateforme de programmation automate, appeler le FB et assigner l'ensemble de ses entrées/sorties. Celles-ci sont toutes détaillées dans le commentaire du bloc.

Ensuite, vous devez réaliser la programmation ci-dessous:

Envoyer les consignes et lire les résultats aux adresses PROFINET configurées dans MecaMotion.

Activer le mode automatique : Pour activer le mode automatique, vous devez vérifier que la sortie "Presse_démarrée" est active puis vous devez mettre dans l'entrée "Mode" la valeur 2 pour activer le mode automatique. Vous pouvez vérifier que le mode a bien été activé à l'aide de la sortie "Mode_actif".

Sélectionner le numéro de programme et le démarrer.

Avant de démarrer un programme, vous devez vérifier que les sorties "Axe_débloqué" et "Presse_démarrée" soient à "1" et que les sorties  "Erreur_présente", "Programme_en_cours" soient à "0". Si une erreur est présente, vous pouvez l'acquitter à l'aide de l'entrée "Quittance_erreur".
Vous devez ensuite renseigner le numéro du programme que vous souhaitez activer dans "Numero_programme".
Vous pouvez enfin activer l'entrée "Start_programme" pour démarrer l'exécution de celui-ci. Cette entrée est à maintenir à "1" jusqu'a ce que la sortie "Programme_terminé" ou "Erreur_présente" soit active.

Une fois que vous avez réalisé toutes les étapes ci-dessus, vous n'avez plus qu'à exécuter le programme "mesure_référence" puis le programme "insertion_rivet".