Muitos técnicos de CNC não entendem os programas de macro. Eles acham que com software de programação automática, não há necessidade de aprender programas de macro. Na verdade, as funções dos programas de macro são muito poderosas. Por exemplo, para escrever alguns programas em lote e repetitivos, você só precisa alterar alguns dados ao usar programas de macro. Não há necessidade de um grande número de programações repetidas, o que pode simplificar muito as operações e melhorar muito a eficiência do trabalho.
Os programas de macro podem usar variáveis para executar operações mistas de operações aritméticas, operações e funções lógicas e também fornecer instruções de loop, instruções de ramificação e instruções de chamada de sub-rotina.
De modo geral: o programa macro é adequado para a programação de uma série de peças com o mesmo gráfico, mas com tamanhos diferentes; é adequado para a programação de uma série de peças com o mesmo percurso de processo, mas com diferentes parâmetros de posição; é adequado para a programação de parábolas, elipses, hipérboles e outras curvas sem instruções de interpolação.
01
Representação e uso de variáveis
1. Representação variável
#I(I=1,2,3,…) ou #[
Exemplo: #5, #109, #501, #[#1 mais #2-12]
Em segundo lugar, o uso de variáveis
1. Especifique o número da variável ou fórmula após a palavra de endereço
Formatar:
Aqui "I" significa número variável
Exemplo: F#103, se #103=15, então é F15
Z-#110, se #110=250, é Z-250
X[#24 mais #18*COS[#1]]
2. O número da variável pode ser substituído por variável
Exemplo: #[#30], se #30=3, será #3
3. Variáveis não podem usar endereços O, N, I
Exemplo: Os seguintes métodos são permitidos
O#1;
I#2 6.00×100.0;
N#3 Z200.0;
4. A variável correspondente ao número da variável tem uma faixa de valor específica para cada endereço
Exemplo: quando #30=1100, M#30 não é permitido
5. #0 é uma variável vazia e uma variável sem um valor de variável definido também é uma variável vazia
6. Definição de valor variável:
A vírgula pode ser omitida na hora de definir o programa, por exemplo: #123=149
02
tipo de variável
Adicionar fotos ao WeChat: mvm9987 enviará um tutorial de CNC
1. Variáveis locais #1~#33
Variável utilizada localmente em um programa de macro, o resultado de sua operação não pode ser utilizado por outros programas.
Exemplo: Um programa de macro B programa de macro
...
#10=20 X#10 não significa X20
...
Ele será apagado após o desligamento e o valor da variável será preenchido quando o programa de macro for chamado
2. Variáveis públicas #100~#199, #500~#999
A variável comum em cada programa de macro do usuário tem o mesmo resultado de operação em qualquer chamada de programa.
Exemplo: Quando #10 no exemplo acima é alterado para #100, o
X#100 significa X20
#100~#149 Vazio após desligar
#500~#531 Variáveis persistentes (não perdidas após o desligamento)
3. Variáveis do sistema
Variável de finalidade fixa cujo valor depende do estado do sistema
Exemplo: #2001 é o valor de compensação do eixo X da compensação de ferramenta nº 1
O valor #5221 é o valor de deslocamento da origem da peça G54 do eixo X
Um ponto decimal deve ser inserido ao inserir, e a unidade é μm quando o ponto decimal é omitido
03
Instrução de Operação
O lado direito da expressão pode ser constantes, variáveis, funções, expressões
Na fórmula, #j e #k também podem ser constantes
O lado direito da expressão é o número da variável, a expressão
1. Definição
#I=#j
2. Operações aritméticas
#I=#j mais #k
#I=#j-#k
#I=#j*#k
#I=#j/#k
3. Operações lógicas
#I=#JOK#k
#I=#JXOK#k
#I=#JAND#k
4. Função
foto
#I=SENO[#j] seno
#I=COS[#j] cosseno
#I=TAN[#j] tangente
#I=ATAN[#j] arco tangente
#I=RAIZ QUADRADO[#j]
#I=ABS[#j] valor absoluto
#I=ARREDONDA[#j] Arredondamento
#I=FIX[#j] arredondar para cima
#I=FUP[#j] Arredondar para baixo
#I=BIN[#j] BCD→BIN (binário)
#I=BCN[#j] BIN→BCD
1) Os ângulos estão em graus
Exemplo: 90 graus e 30 minutos são 90,5 graus
2) Os dois comprimentos laterais após a função ATAN devem ser separados por "/"
Exemplo: #{{0}}ATAN[1]/[-1], #1 é 35,0
3) ARREDO é usado para o endereço no extrato, arredondado para cima de acordo com a unidade mínima de configuração de cada endereço
Exemplo: Definir #1=1.2345, #2=2.3456, a unidade de configuração é 1μm
G91 X-#1; X-1.235
X-#2 F300; X-2.346
X[#1 mais #2]; X3.580
não é devolvido e deve ser substituído por
X[ROUND[#1] mais ROUND[#2]];
4) Se o valor absoluto após o arredondamento for maior que o valor original, será arredondado para cima, caso contrário será arredondado para baixo
Exemplo: Quando #1=1.2, #2=-1.2
Se #{{0}}FUP[#1], então #3=2.0
Se #{{0}}FIX[#1], então #3=1.0
Se #{{0}}FUP[#2], então #3=-2.0
Se #{{0}}FIX[#2], então #3=-1.0
5) Ao comandar uma função, apenas as duas primeiras letras podem ser escritas
Exemplo: ROUND→RO
FIX→FI
6) Prioridade
Função → multiplicação e divisão (*, 1, AND) → adição e subtração ( mais , -, OR, XOR)
Exemplo: #1=#2 mais #3*SIN[#4];
7) Os colchetes são colchetes, até 5 vezes, e os colchetes são usados para declarações de comentários
Exemplo: #1=SIN[[[#2 mais #3]*#4 mais #5]*#6]; (3 pesos)
04
Instruções de Ramificação e Loop
1. Transferência Incondicional
Formato: GOTO n;
Desvia incondicionalmente para o bloco n
n: número do bloco (1-99999)
n também pode ser substituído por variáveis ou expressões
ir para10;
IR PARA #10;
2. Transferência condicional
SE [
Se o
Se não estiver satisfeito, execute o próximo bloco.
SE [
Se o
SE[#1EQ #2] ENTÃO #3=0;
Expressão condicional:
foto
#j e #k também podem ser substituídos por
Exemplo: SE[#1 GT 10] GOTO 100;
…
N100 G00 G91 X10;
Exemplo: Encontrar a soma de 1 a 10
O9500;
#1=0
#2=1
N1 SE [#2 GT10] IR PARA 2
#1=#1 mais #2;
#2=#2 mais 1;
IR PARA 1
N2 M30
3. Ciclo
Formato: ENQUANTO[
…
…
…
ENDm
1. Quando as condições forem atendidas, execute DOm para ENDm e, em seguida, a partir do segmento de programa de DOm
Se não for satisfeito, execute o segmento de programa após ENDm
2. Se você omitir a instrução WHILE e tiver apenas DOm...ENDm, um loop infinito será formado de DOm para ENDm
3. nidificação
4. EQ NE, vazio e "0" são diferentes
Em outros lugares, nulo é o mesmo que "0"
Exemplo: Encontrar a soma de 1 a 10
O0001;
#1=0;
#2=1;
ENQUANTO [#2LE10] DO1;
#1=#1 mais #2;
#2=#2 mais #1;
FIM1;
M30;





