Skip to main content

Utilisation de la recherche de bloc

Une recherche de bloc permet de poursuivre l'interpolation après une interruption. La position d'arrêt est parcourue en premier et la trajectoire est parcourue sans changement à partir de cette position. Pour cela, le programme qui effectue l'interpolation et le programme qui effectue le prétraitement du chemin doivent être étendus.

Exemple 51. Exemple

Une tête de fraisage interrompue arrête la course. Après avoir été réparé, le chemin peut être poursuivi avec la recherche de bloc.



Prolongez l'application en

  • Instance de bloc fonction dans la tâche d'interpolation qui enregistre la position de prétraitement

  • Instance de bloc fonction dans la tâche de chemin qui raccourcit un élément de chemin

Pour plus d'informations, voir : SMC_BlockSearchSavePos, SMC_BlockSearchPos et SMC_BlockSearch

Enregistrement de la position de prétraitement

Vous pouvez utiliser le SMC_BlockSearchSavePos bloc fonction de sauvegarde de la position courante sur commande. A ce moment, l'instance du bloc fonction doit s'exécuter dans la tâche de l'interpolateur. Le programme d'interpolation dans l'exemple est nommé "CNC".

  1. Déclarer une instance du SMC_BlockSearchSavePos bloc fonction dans le programme que l'interpolation exécute.

    bssp: SMC_BlockSearchSavePos;

  2. Connectez le ipo entrée de la SMC_BlockSearchSavePos instance à l'instance d'interpolateur.

  3. Connectez le bExecute entrée dans une variable de contrôle qui est définie dans l'application lorsque le programme CNC est annulé (par exemple si le bAbort l'entrée de l'instance SMC_Interpolator a été définie). La position mémorisée au ePos la sortie est utilisée comme suit pour la recherche de bloc au moyen de SMC_BlockSearc. Après interruption, bExecute doit être réinitialisé avec un front montant.

Exemple 52. Exemple

Partie du programme qui effectue l'interpolation avec l'instance du SMC_BlockSearchSavePos bloc fonctionnel dans CFC.

_sm_img_interpolation_with_block_search.png


Utiliser la recherche de bloc

Un exemple de SMC_BlockSearch le bloc de fonction doit être appelé dans la même tâche que le prétraitement du chemin restant, généralement juste avant le SMC_CheckVelocities bloc fonctionnel. Si un front montant existe à bExecute, une recherche de bloc est effectuée. Après le démarrage, la position enregistrée est parcourue et la trajectoire est parcourue sans modification à partir de cette position.

  1. Déclarer une instance du SMC_BlockSearch bloc fonctionnel dans le programme que le prétraitement de chemin exécute.

    bs: SMC_BlockSearch;

  2. Mettre en œuvre le déclenchement de la bExecute entrée de la SMC_BlockSearch exemple.

  3. La position enregistrée précédemment avec le SMC_BlockSearchSavePos bloc de fonction doit être transmis en tant que epos entrée de la SMC_BlockSearch bloc fonctionnel.

Exemple 53. Exemple : recherche de blocs dans le prétraitement du chemin
PROGRAM CNC_PreparePath
...
VAR
        bs: SMC_BlockSearch;
END_VAR
...
bs(
                ePos:=CNC.bssp.ePos ,
                bExecute:=rncf.bExecuteDecoder ,
                bAbort:= ,
                bAppend:= ,
                poqDataIn:=ncd.poqDataOut ,
                bStartFromSavedPos:=CNC.bssp.bPositionStored ,
                nSizeOutQueue:=SIZEOF(agiBufBlockSearch) ,
                pbyBufferOutQueue:=ADR(agiBufBlockSearch) ,
                bDone=> ,
                bBusy=> ,
                bError=> ,
                wErrorID=> ,
                poqDataOut=> );

Les bStartFromSavedPos l'entrée peut également être activée avec une variable de contrôle. La variable de contrôle peut être activée après une annulation afin de continuer à nouveau à la dernière position enregistrée.