Molts tècnics de CNC no entenen els programes macro. Pensen que amb el programari de programació automàtica, no cal aprendre programes macro. De fet, les funcions dels programes macro són molt potents. Per exemple, per escriure alguns programes per lots i repetitius, només cal que canvieu algunes dades quan utilitzeu programes macro. No hi ha necessitat d'un gran nombre de programacions repetides, que poden simplificar molt les operacions i millorar molt l'eficiència del treball.
Els programes macro poden utilitzar variables per realitzar operacions mixtes d'operacions aritmètiques, operacions lògiques i funcions, i també proporcionen instruccions de bucle, instruccions de branca i sentències de trucada de subrutina.
En termes generals: el programa macro és adequat per a la programació d'una sèrie de peces amb els mateixos gràfics però amb diferents mides; és apte per a la programació d'una sèrie de peces amb el mateix recorregut del procés però amb diferents paràmetres de posició; és adequat per a la programació de paràboles, el·lipses, hipèrboles i altres corbes sense instruccions d'interpolació.
01
Representació i ús de variables
1. Representació variable
#I(I=1,2,3,...) o #[
Exemple: #5, #109, #501, #[#1 més #2–12]
En segon lloc, l'ús de variables
1. Especifiqueu el número de variable o la fórmula després de la paraula d'adreça
Format:
Aquí "I" significa nombre variable
Exemple: F#103, si #103=15, és F15
Z-#110, si #110=250, és Z-250
X[#24 més #18*COS[#1]]
2. El nombre de variable es pot substituir per variable
Exemple: #[#30], si #30=3, serà #3
3. Les variables no poden utilitzar les adreces O, N, I
Exemple: Es permeten els mètodes següents
O#1;
I#2 6.00×100.0;
N#3 Z200.0;
4. La variable corresponent al número de variable té un rang de valors específic per a cada adreça
Exemple: quan #30=1100, M#30 no està permès
5. #0 és una variable buida, i una variable sense un valor de variable definit també és una variable buida
6. Definició de valor variable:
El punt decimal es pot ometre quan es defineix el programa, per exemple: #123=149
02
tipus de variable
Afegiu imatges a WeChat: mvm9987 enviarà un tutorial CNC
1. Variables locals #1~#33
Una variable que s'utilitza localment en un programa de macro, el seu resultat d'operació no pot ser utilitzat per altres programes.
Exemple: un programa macro B programa macro
...
#10=20 X#10 no vol dir X20
...
S'esborrarà després d'apagar-se i el valor de la variable s'omplirà quan es cridi al programa macro
2. Variables públiques #100~#199, #500~#999
La variable comuna de cada programa macro d'usuari té el mateix resultat d'operació en qualsevol trucada de programa.
Exemple: quan el número 10 de l'exemple anterior es canvia per el número 100, el
X#100 significa X20
#100~#149 Buida després d'apagar-se
#500~#531 Variables persistents (no es perden després d'apagar-se)
3. Variables del sistema
Variable de propòsit fix el valor de la qual depèn de l'estat del sistema
Exemple: #2001 és el valor de compensació de l'eix X de la compensació de l'eina número 1
El valor #5221 és el valor de compensació de l'origen de la peça G54 de l'eix X
S'ha d'introduir un punt decimal en entrar i la unitat és μm quan s'omet el punt decimal
03
Instrucció de funcionament
El costat dret de l'expressió pot ser constants, variables, funcions, expressions
A la fórmula, #j i #k també poden ser constants
El costat dret de l'expressió és el nombre variable, l'expressió
1. Definició
#I=#j
2. Operacions aritmètiques
#I=#j més #k
#I=#j-#k
#I=#j*#k
#I=#j/#k
3. Operacions lògiques
#jo=#JOK#k
#I=#JXOK#k
#I=#JAND#k
4. Funció
imatge
#I=SIN[#j] sine
#I=COS[#j] cosinus
#I=TAN[#j] tangent
#I=ATAN[#j] arc tangent
#I=SQRT[#j] arrel quadrada
#I=ABS[#j] valor absolut
#I=ROUND[#j] Arrodoniment
#I=FIX[#j] arrodoneix cap amunt
#I=FUP[#j] Arrodoneix cap avall
#I=BIN[#j] BCD→BIN (binari)
#I=BCN[#j] BIN→BCD
1) Els angles estan en graus
Exemple: 90 graus i 30 minuts són 90,5 graus
2) Les dues longituds laterals després de la funció ATAN s'han de separar per "/"
Exemple: #{{0}}ATAN[1]/[-1], #1 és 35,0
3) ROUND s'utilitza per a l'adreça de l'enunciat, arrodonit per augment segons la unitat de configuració mínima de cada adreça
Exemple: establiu #1=1.2345, #2=2.3456, la unitat de configuració és 1μm
G91 X-#1; X-1.235
X-#2 F300; X-2.346
X[#1 més #2]; X3.580
no es retorna i s'ha de substituir per
X[ROUND[#1] més ROUND[#2]];
4) Si el valor absolut després de l'arrodoniment és més gran que el valor original, s'arrodonirà cap amunt, en cas contrari s'arrodonirà cap avall
Exemple: quan #1=1.2, #2=-1.2
Si #{{0}}FUP[#1], aleshores #3=2.0
Si #{{0}}FIX[#1], aleshores #3=1.0
Si #{{0}}FUP[#2], aleshores #3=-2.0
Si #{{0}}FIX[#2], aleshores #3=-1.0
5) Quan es comanda una funció, només es poden escriure les dues primeres lletres
Exemple: ROUND→RO
FIX → FI
6) Prioritat
Funció → multiplicació i divisió (*, 1, AND) → suma i resta ( més , -, OR, XOR)
Exemple: #1=#2 més #3*SIN[#4];
7) Els claudàtors són claudàtors, fins a 5 vegades, i els claudàtors s'utilitzen per a comentaris
Exemple: #1=SIN[[[#2 més #3]*#4 més #5]*#6]; (3 pesos)
04
Instruccions de branca i bucle
1. Transferència incondicional
Format: GOTO n;
Branca incondicionalment al bloc n
n: número de bloc (1-99999)
n també es pot substituir per variables o expressions
anar a 10;
GOTO #10;
2. Transferència condicional
SI [
Si el
Si no està satisfet, executeu el següent bloc.
SI [
Si el
SI[#1EQ #2] LLAVORS #3=0;
Expressió condicional:
imatge
#j i #k també es poden substituir per
Exemple: IF[#1 GT 10] GOTO 100;
…
N100 G00 G91 X10;
Exemple: Trobeu la suma d'1 a 10
O9500;
#1=0
#2=1
N1 SI [#2 GT10] GOTO 2
#1=#1 més #2;
#2=#2 més 1;
ANAR 1
N2 M30
3. Cicle
Format: MENTRE[
…
…
…
ENDm
1. Quan es compleixin les condicions, executeu DOm a ENDm i després des del segment de programa de DOm
Si no està satisfet, executeu el segment del programa després de ENDm
2. Si ometeu la instrucció WHILE i només teniu DOm...ENDm, es formarà un bucle infinit de DOm a ENDm
3. nidificació
4. EQ NE, buit i "0" són diferents
En altres llocs, null és el mateix que "0"
Exemple: Trobeu la suma d'1 a 10
O0001;
#1=0;
#2=1;
MENTRE [#2LE10] DO1;
#1=#1 més #2;
#2=#2 més #1;
END1;
M30;





