Affichage des articles dont le libellé est CN. Afficher tous les articles
Affichage des articles dont le libellé est CN. Afficher tous les articles

mardi 23 février 2016

Compensation des parcours en 3 axes sur CN

Quelques exemple de code pour la compensation 3D sur différentes CN du marché




Heidenhain : iTNC530, TNC640 (LN + NX, NY,NZ)


Heidenhain : Millplus (G141 +IJK)


Siemens : CUTD3FS (Option)  + A5B5C5 (A4B4C4) mais avec beaucoup de restrictions surtout d’un point de vue FAO.


Fidia : G43/G44 + DX, DY, DZ


Fanuc : option G43.8 (Option)  disponible sur les Cns 30iA/31iA5/30iB/31iB5


Röders : CORR_3D + NX, NY,NZ


Okuma : OSP–P200  (Option)  G43/G44 + IJK



jeudi 24 octobre 2013

Code Siemens840D avancée utilisation d'une MACRO personnalisée



Voici un petit exemple de code pour CN Siemens sur l'utilisation des variables et de macros.  Le code de cet article permet d’illustrer la relecture et la modification de variables concernant les longueurs de l’outil. Le code permet aussi d’illustrer l’appel de MACRO avec passage de paramètre et la déclaration de variable. Rajouter le code suivant dans un fichier Test.mpf
T=”Boule10” D1
M6
G00 G90 G17 G94
G54
CORRECTEUR(-0.02) ;MACRO PERSO
M30
...
Dans un fichier CORRECTEUR.SPF stocké dans le repertoire des sous-programmes de la cn rajoutez le code suivant :

PROC CORRECTEUR(REAL PARAM1)
DEF REAL PARAM2
PARAM2=$P_TOOLNO ; Recuperation numero d’outil actif
$TC_DP3[PARAM2,1]=$TC_DP3[PARAM2,1]+PARAM1

IF $TC_DP3[PARAM2,1]<=0 GOTOF ALARM1
GOTOF END

ALARM1:MSG("LONGUEUR OUTIL NULLE")
STOPRE
M00
GOTOB ALARM1

END:
M17

On utilise dans l'exemple ci-dessus la variable  :
$ TC_DP3[PARAM2,1]=Variables liées à la longueur de l’outil actif pour le correcteur 1.
Si la longueur de l’outil est inférieure à zéro le sous-programme affiche un message lié à l’erreur.

Code Siemens utilisation des variables d'origine

Voici un petit exemple de code pour CN Siemens sur l'utilisation des variables.  Le code de cet article permet d’illustrer la relecture et la modification de variables concernant les origines. Rajouter le code suivant dans un fichier Test.mpf
G54
MSG("Origine :"<<$P_UIFRNUM) ; 1=G54 ,2=G55 etc
M00
;COPIE DEC G54 DANS G55
$P_UIFR[2,Z,TR]=$P_UIFR[1,Z,TR]
$P_UIFR[2,C,TR]=$P_UIFR[1,C,TR]
;MISE A ZERO G55 X Y
$P_UIFR[2,X,TR]=0
$P_UIFR[2,Y,TR]=0
M02
On utilise dans l'exemple ci-dessus les variables  :
$P_UIFR[2,Z,TR] =Variables liées à l'origine G55 (2=G55)
$P_UIFRNUM = Origine active avec comme retour  1=G54 ,2=G55 etc
Le programme affiche via la fonction MSG l’origine active, la deuxième partie du code copie des valeurs de l’origine G54 dans l’origine G55. Enfin les dernières lignes mettent la valeur des décalages de X et Y pour G55 à Zéro.

Code Siemens 840D


Voici un petit exemple de code pour CN Siemens sur l'utilisation des variables.  Le code de cet article permet d’illustrer la relecture et la modification de variables concernant les outils. Rajouter le code suivant dans un fichier Test.mpf


MSG("Nom Outil :"<<$TC_TP2[1])
M00
MSG("Longueur outil :"<<$TC_DP3[1,1])  ; Longueur outil
M00
$TC_DP3[1,1]=66 ; Modification de la longueur
MSG("Longueur outil :"<<$TC_DP3[1,1]) ; Relecture de la longueur outil
M00
MSG("Rayon outil :"<<$TC_DP6[1,1]) ; Rayon outil
M00
M02


Sur l'exemple ci dessus les variables  :


$TC_TP2[1] = Nom de l'outil N°1
$TC_DP3[1,1]= Longueur de l'outil 1 pour le correcteur D1
$TC_DP6[1,1]= Rayon de l'outil 1 pour le correcteur D1


Le programme affiche via la fonction MSG des informations récupérées dans l'IHM du pupitre. 




mercredi 11 avril 2012

MACRO-CLIENT Fanuc

Pour mes besoins j'ai du me plonger dans les macros clients sur FANUC. J'ai eu un peu de mal à trouver les infos surtout que la doc constructeur était très Light sur certains sujets.

Voici donc une petite listes de codes utiles testés sur Fanuc 31i

Message Opérateur

#3000=30(ERREUR APPEL FONCTION UVW) Affiche une erreur CN et arrête la machine : 30= Numéro de l'erreur (ERREUR APPEL FONCTION UVW=0) = Texte de l'erreur

#3006=1(ERREUR APPEL FONCTION UVW) Par rapport à la solution avec variable 3000 permet de ne pas créer une erreur CN mais juste un message (ici pas de numéro de message d'erreur juste 0 ou 1 )

Temps d'éxécution d'un programme

J'utilise la variable 3001 Cette variable fonctionne comme une horloge comptant par incrément d'une milliseconde. On peut la remettre à Zéro dans un programme. Sinon, elle repasse à Zéro après 2147483648 millisecondes ce qui laisse de la marge :)

En début de programme
#3001=0 (INIT HORLOGE) En fin de programme je récupère le temps et je divise par 1000 pour les secondes
#501=#3001/1000 (HORLOGE FIN)

Ecrire dans un fichier des résultats
Pour Ecride ce temps dans un fichier
POPEN
DPRNT[TEMPS:#501[90]S]
PCLOS


POPEN pour ouvrir le fichier
PCLOS pour le fermer
et DPRNT pour écrire. Le fichier céé le sera avec le nom PRNTXXXX.DAT XXX étant un numéro incrémenté par la CN à chque nouveau fichier

DPRNT[TEMPS:#501[90]S] Pour écrire une variable on utilise la notation #501[43] -> 43 veut dire 3 chiffre après la virgule et 4 c'est le nomrbre de chiffre avant


Palpage avec palpeur de contact

Le palpage utilise le code G31 déplacement avec saut

G31X Y Z F (Palpage)
G53
#101=#5061(X au declenchement)
#102=#5064(Y au declenchement)
#103=#5062(Z au declenchement)

Attention sur ma machine l'orde des axes et XZCY d'où 5064 pour Y (cas d'un tour fraiseur)

Les variables #5061 à #5068 sont les données de position du signal de saut ( au moment ou le palpeur arrête la machine)


Vérouillage des fichiers macro
Pour le vérouillage des programmes (MACRO) sur Fanuc, il est possible d'interdire la modification des programmes 8000 à 9000 avec les paramètres CN :

Paramètres #3202
#3202-0 [NE8]:
Verrouille ou autorise l'édition des programmes 8000 à 8999.
0: Édition verrouillée 1: Édition autorisée
#3202-4 [NE9]:
Verrouille ou autorise l'édition des programmes 9000 à 9999.
0: Édition verrouillée 1: Édition autorisée

A complèter