Skip to main content

Exemple CNC 02 : Décodage en ligne avec variables

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

L'exemple montre comment un programme CNC ci-dessous Utilisation de variables peut être décodé.

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

  1. Créer un CNCOnline programme avec un SoftMotion manette.

  2. Créez une liste de variables globale et déclarez deux variables.

    VAR_GLOBAL
            g_x: REAL:=100;
            g_y:REAL:=50;
    END_VAR
  3. Insérez un programme CNC objet nommé Example.

    Sélectionnez le Mise en œuvreDin66025 et le Mode compilationSMC_CNC_REF. Ce mode est requis car vous utilisez des variables dans votre programme.

  4. Spécifiez les blocs de mouvement suivants :

    Éditeur CNC :

    _sm_img_example_cnc2_1.png

Création d'une interface variateur et configuration automate

Définir une structure d'entraînement (par ex. CNCdirect).

Création d'un programme IEC

  1. Ajouter un POU (CFC) nommé Path à l'application.

    Le décodage du programme CN pour OUTQUEUE et le contrôle de vitesse ont lieu dans le Path programme.

    Appel SMC_CheckVelocities est requis.

    CFC :

    _sm_img_example_cnc2_3.png
  2. Ajouter un POU (CFC) nommé Ipo à l'application.

    Ce programme est presque identique au CNCdirect exemple de projet. Cependant, l'entrée des données de l'interpolateur ne correspond pas aux noms des programmes CNC (ADR(Example)), mais à la sortie OutQueue des blocs fonction de prétraitement de chemin (checkVel.poqDataOut).

Création d'une tâche pour le prétraitement du chemin

Parce que vous avez sélectionné le mode de compilation SMC_CNC_REF, vous devez effectuer le décodage et le prétraitement du chemin dans le programme IEC. Ce calcul prend du temps. Il n'a pas besoin d'être exécuté dans le cycle d'interpolation car un objet chemin est généré par appel de décodeur, et cet objet est généralement utilisé pour de nombreux appels d'interpolateur. Vous devez remplacer cette opération par une tâche avec une priorité faible et des appels moins fréquents.

  1. Créer un PathTask tâche.

  2. Définissez les paramètres suivants :

    • Priorité: dix

    • Intervalle: T#30ms

  3. Ajouter le Path POU à la tâche.

Figure 1. Tâche "PathTask"
Tâche "PathTask"


. Mécanisme sous-jacent :
  • Dans la tâche lente, environ un objet GEOINFO est généré par cycle dans un premier temps. Cet objet est stocké dans la structure OUTQUEUE du bloc fonction décodeur. Si la OUTQUEUE est pleine, les blocs fonction de la tâche lente s'arrêtent jusqu'à ce que la OUTQUEUE ne soit plus pleine. Cela se produit dès que la tâche rapide traite le premier objet GEOINFO et le supprime de la OUTQUEUE.

  • Ensuite, les blocs fonction de la tâche lente redeviennent actifs et remplissent la structure OUTQUEUE.

  • Dans la tâche rapide, un point de chemin de la structure OUTQUEUE, que le DataIn points d'entrée vers, est calculé et traité à chaque cycle. Comme un objet GEOINFO se compose généralement de plusieurs points de chemin, il faut quelques cycles jusqu'à ce que le premier objet GEOINFO soit traité et supprimé automatiquement par l'interpolateur.

  • Comme le traitement d'un objet GEOINFO dure plusieurs cycles par opposition à sa création, la tâche lente peut être appelée moins fréquemment que la tâche rapide.

  • Cependant, les heures des tâches doivent être sélectionnées de manière à ce qu'un nombre suffisant d'objets GEOINFO soit toujours stocké dans la dernière QUEUE DE SORTIE de la tâche lente, évitant ainsi l'apparition de toute sous-exécution de données. Cela se produit lorsqu'il n'y a plus d'objets GEOINFO disponibles pour l'interpolateur à partir de DataIn et que la fin du chemin n'a pas encore été atteinte. Dans ce cas, l'interpolateur ralentit et s'arrête jusqu'à ce que de nouveaux éléments de données soient à nouveau disponibles.

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

La visualisation correspond à la CNCdirect.project exemple de projet. Ajoutez des modèles supplémentaires aux nouveaux blocs fonctionnels (SMC_NCDecoder et SMC_CheckVelocities). Créer un affichage également pour les variables globales g_x et g_y afin que vous puissiez vérifier leur fonction ultérieurement lors de la mise en service.

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 du décodeur et de l'interpolateur a été réglée. Si vous modifiez les valeurs des variables globales, elles sont alors utilisées au redémarrage du décodeur et le chemin est adapté en conséquence. Surveiller le fonctionnement du Append l'entrée du décodeur également.