Hoje em dia, muitos técnicos de CNC não entendem de macroprogramas. Eles acham que, com o software de programação automática, não precisam 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 realizar 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]
2. 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 uma 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 possui uma faixa de valores 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 do valor da variável:
A vírgula pode ser omitida na hora de definir o programa, por exemplo: #123=149
02
tipo de variável
Adicione fotos ao WeChat: yuki7557 enviará um tutorial de programa de macro
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 propósito fixo 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ções
#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.
Adicionar WeChat: yuki7557 para enviar um tutorial de programa de macro
SE [
Se o
SE[#1EQ #2] ENTÃO #3=0;
Expressão condicional:
#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 estiver satisfeito, execute o segmento de programa seguindo 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;




