Skip to main content

Exemple CNC 01 : Génération directe de la file d'attente de sortie

Voir le CNC01_direct.project exemple de projet dans le répertoire d'installation de CODESYS en dessous de ..\CODESYS SoftMotion\Examples.

Cet exemple montre un programme CNC avec deux axes. Quatre positions sont accostées dans le plan X/Y avec une vitesse et une accélération définies. Le programme définit deux points de commutation de chemin sur le chemin. Le programme est écrit directement dans une structure de données en utilisant le SMC_OutQueue mode compilation.

Création d'un programme CN dans l'éditeur CNC

  1. Créer un CNCdirect projet avec un SoftMotion manette.

  2. Insérez un programme CNC objet nommé Example.

    Sélectionnez le Mise en œuvreDin66025 et le Mode de compilationSMC_OutQueue.

  3. Spécifiez les blocs de mouvement suivants :

    Éditeur CNC :

    _sm_img_example_cnc1_1.png

Création d'une interface variateur et configuration automate

Définissez une structure d'entraînement avec deux entraînements linéaires comme suit :

  1. Insérer deux disques virtuels X_Drive et Y_Drive sous le Pool d'axes généraux SoftMotion.

  2. Met le Type d'axe paramètre à Finite (1).

    Éditeur de configuration :

    _sm_img_example_cnc1_7.png

Création d'un programme IEC

  1. Ajouter un nouveau programme CFC Ipo à l'application et configurer une tâche cyclique avec un intervalle de 3 ms.

  2. Activez le lecteur avec le MC_Power bloc fonctionnel.

    POU :

    _sm_img_example_cnc1_2.png
  3. Insérez le SMC_Interpolator PU. Le bloc fonction convertit un chemin défini par des objets GEOINFO en points de chemin discrets. Le bloc fonction reçoit l'adresse du programme CNC créé à l'entrée poqDataIn. Ensuite, le temps de cycle de la tâche CEI doit être écrit dans l'entrée dwIpoTime. Vous pouvez les spécifier comme valeurs constantes à l'entrée dwIpoTime ou vous pouvez utiliser la variable dwCycle de la structure du groupe d'axes depuis la configuration de l'automate. L'avantage est que le temps correct est automatiquement utilisé comme entrée d'interpolation lorsque vous modifiez le temps de cycle de la tâche.

    POU :

    _sm_img_example_cnc1_3.png
  4. Dans cet exemple, un système de portique sera contrôlé. Pour cela, insérez une instance des blocs fonction de transformation inverse et directe du SM_Trafo une bibliothèque. Le bloc fonction de transformation directe contient les variateurs comme entrées. Le bloc fonction de transformation inverse doit contenir la position définie de l'interpolateur. La transformation vers l'avant dans l'exemple est requise pour la visualisation uniquement.

    Instance de bloc fonction :

    _sm_img_example_cnc1_4.png
    _sm_img_example_cnc1_5.png
  5. Les sorties du bloc fonctionnel (les coordonnées d'axe) doivent être écrites dans les entraînements. Cela se fait avec le SMC_ControlAxisByPos bloc fonction. Étant donné que l'application ne garantit pas que les sorties de l'interpolateur sont constantes (par exemple, le chemin se termine à un autre point que celui où il a commencé), activez l'évitement d'écart (bAvoidGaps, fGapVelocity, fGapAcceleration, fGapDeceleration). Connectez ensuite le StopIpo sortie vers le bEmergency_Stop entrée de l'interpolateur et connecter la sortie de l'interpolateur iStatus aux entrées respectives des blocs fonction de commande d'axe.

    Notez l'ordre correct des blocs fonctionnels lors de la programmation avec CFC.

    CFC :

    _sm_img_example_cnc1_6.png

Création d'une interface d'exploitation et d'une interface de test

Liez deux objets de visualisation à une nouvelle visualisation : le modèle de l'interpolateur et le modèle de la transformation. Vous devez utiliser des espaces réservés pour les lier aux instances de blocs fonctionnels respectives (ici : Ipo.smci et Ipo.trafof).

Mise en service

Compilez et démarrez le programme créé. Le programme exécute le mouvement CNC dès que le Execute l'entrée de l'interpolateur a été réglée. Après l'exécution complète du programme, vous pouvez le redémarrer au moyen d'un nouveau front montant.

Notez la fonction des commutateurs de chemin qui sont également affichés dans la visualisation du bloc fonction d'interpolation.