De nombreux techniciens CNC ne comprennent pas les programmes macro. Ils pensent qu'avec les logiciels de programmation automatique, il n'est pas nécessaire d'apprendre les programmes macro. En fait, les fonctions des programmes de macros sont très puissantes. Par exemple, pour écrire des programmes batch et répétitifs, il suffit de modifier quelques données lors de l'utilisation de programmes macro. Il n'y a pas besoin d'un grand nombre de programmations répétées, ce qui peut grandement simplifier les opérations et améliorer considérablement l'efficacité du travail.
Les programmes de macro peuvent utiliser des variables pour effectuer des opérations mixtes d'opérations arithmétiques, d'opérations logiques et de fonctions, et également fournir des instructions de boucle, des instructions de branchement et des instructions d'appel de sous-programme.
D'une manière générale : le programme macro convient à la programmation d'une série de pièces avec le même graphisme mais avec des tailles différentes ; il convient à la programmation d'une série de pièces avec le même parcours de processus mais avec des paramètres de position différents ; il convient à la programmation de paraboles, ellipses, hyperboles et autres courbes sans instructions d'interpolation.
01
Représentation et utilisation des variables
1. Représentation variable
#I(I=1,2,3,…) ou #[
Exemple : #5, #109, #501, #[#1 plus #2-12]
Deuxièmement, l'utilisation de variables
1. Spécifiez le numéro de variable ou la formule après le mot d'adresse
Format:
Ici "I" signifie nombre variable
Exemple : F#103, si #103=15, alors c'est F15
Z-#110, si #110=250, c'est Z-250
X[#24 plus #18*COS[#1]]
2. Le numéro de variable peut être remplacé par variable
Exemple : #[#30], si #30=3, ce sera #3
3. Les variables ne peuvent pas utiliser les adresses O, N, I
Exemple : Les méthodes suivantes sont autorisées
O#1;
I#2 6.00×100.0;
N#3 Z200.0;
4. La variable correspondant au numéro de variable a une plage de valeurs spécifique pour chaque adresse
Exemple : lorsque #30=1100, M#30 n'est pas autorisé
5. #0 est une variable vide, et une variable sans valeur de variable définie est également une variable vide
6. Définition de la valeur variable :
La virgule décimale peut être omise lors de la définition du programme, par exemple : #123=149
02
type de variables
Ajouter des images à WeChat : mvm9987 enverra un didacticiel CNC
1. Variables locales #1~#33
Variable utilisée localement dans un programme macro, son résultat d'opération ne peut pas être utilisé par d'autres programmes.
Exemple : Un programme macro B programme macro
...
#10=20 X#10 ne signifie pas X20
...
Il sera effacé après la mise hors tension et la valeur de la variable sera remplie lorsque le programme de macro sera appelé
2. Variables publiques #100~#199, #500~#999
La variable commune dans chaque programme de macro utilisateur a le même résultat d'opération dans n'importe quel appel de programme.
Exemple : Lorsque #10 dans l'exemple ci-dessus est remplacé par #100, le
X#100 signifie X20
#100~#149 Vide après mise hors tension
#500~#531 Variables persistantes (non perdues après mise hors tension)
3. Variables système
Variable à usage fixe dont la valeur dépend de l'état du système
Exemple : #2001 est la valeur de compensation de l'axe X de la compensation d'outil n°1
La valeur #5221 est la valeur de décalage d'origine de la pièce sur l'axe X G54
Un point décimal doit être entré lors de la saisie, et l'unité est μm lorsque le point décimal est omis
03
Instruction d'opération
Le côté droit de l'expression peut être des constantes, des variables, des fonctions, des expressions
Dans la formule, #j et #k peuvent aussi être des constantes
Le côté droit de l'expression est le numéro de la variable, l'expression
1. Définition
#I=#j
2. Opérations arithmétiques
#I=#j plus #k
#I=#j-#k
#I=#j*#k
#I=#j/#k
3. Opérations logiques
#je=#JOK#k
#I=#JXOK#k
#je=#JAND#k
4. Fonction
image
#I=SIN[#j] sinus
#I=COS[#j] cosinus
#I=TAN[#j] tangente
#I=ATAN[#j] arc tangent
#I=SQRT[#j] racine carrée
#I=ABS[#j] valeur absolue
#I=ARRONDIR[#j] Arrondir
#I=FIX[#j] arrondir
#I=FUP[#j] Arrondir à l'inférieur
#I=BIN[#j] BCD→BIN (binaire)
#I=BCN[#j] BIN→BCD
1) Les angles sont en degrés
Exemple : 90 degrés et 30 minutes font 90,5 degrés
2) Les deux longueurs de côté après la fonction ATAN doivent être séparées par "/"
Exemple : #{{0}}ATAN[1]/[-1], #1 est 35,0
3) ROUND est utilisé pour l'adresse dans le relevé, arrondi selon l'unité de réglage minimum de chaque adresse
Exemple : Set #1=1.2345, #2=2.3456, l'unité de réglage est 1 μm
G91 X-#1; X-1.235
X-#2 F300; X-2.346
X[#1 plus #2] ; X3.580
n'est pas renvoyé et doit être remplacé par
X[ROND[#1] plus ROND[#2]] ;
4) Si la valeur absolue après arrondi est supérieure à la valeur d'origine, elle sera arrondie, sinon elle sera arrondie à l'inférieur
Exemple : Lorsque #1=1.2, #2=-1.2
Si #{{0}}FUP[#1], alors #3=2.0
Si #{{0}}FIX[#1], alors #3=1.0
Si #{{0}}FUP[#2], alors #3=-2.0
Si #{{0}}FIX[#2], alors #3=-1.0
5) Lors de la commande d'une fonction, seules les deux premières lettres peuvent être écrites
Exemple : ARRONDI→RO
FIX→FI
6) Priorité
Fonction → multiplication et division (*, 1, AND) → addition et soustraction ( plus , -, OR, XOR)
Exemple : #1=#2 plus #3*SIN[#4] ;
7) Les crochets sont des crochets, jusqu'à 5 fois, et les crochets sont utilisés pour les commentaires
Exemple : #1=SIN[[[#2 plus #3]*#4 plus #5]*#6] ; (3 poids)
04
Instructions de branche et de boucle
1. Transfert inconditionnel
Format : ALLER À n ;
Branchement inconditionnel au bloc n
n : numéro de bloc (1-99999)
n peut également être remplacé par des variables ou des expressions
goto10 ;
ALLER À #10 ;
2. Transfert conditionnel
SI [
Si la
Si non satisfait, exécutez le bloc suivant.
SI [
Si la
SI[#1EQ #2] ALORS #3=0 ;
Expression conditionnelle :
image
#j et #k peuvent aussi être remplacés par
Exemple : SI[#1 GT 10] ALLER À 100 ;
…
N100 G00 G91 X10;
Exemple : Trouver la somme de 1 à 10
O9500;
#1=0
#2=1
N1 SI [#2 GT10] ALLER À 2
#1=#1 plus #2 ;
#2=#2 plus 1 ;
ALLER À 1
N2 M30
3. Faire du vélo
Format : TANTQUE[
…
…
…
FINm
1. Lorsque les conditions sont remplies, exécutez DOm jusqu'à ENDm, puis à partir du segment de programme de DOm
S'il n'est pas satisfait, exécutez le segment de programme après ENDm
2. Si vous omettez l'instruction WHILE et que vous n'avez que DOm...ENDm, une boucle infinie sera formée de DOm à ENDm
3. imbrication
4. EQ NE, vide et "0" sont différents
Ailleurs, null est identique à "0"
Exemple : Trouver la somme de 1 à 10
O0001;
#1=0;
#2=1;
TANT QUE [#2LE10] DO1 ;
#1=#1 plus #2 ;
#2=#2 plus #1 ;
FIN1 ;
M30;





