Existem várias maneiras de fazer isso: uso de variáveis por exemplo, ou uso de sub-rotinas. Quando queremos repetir uma parte de um programa ou um programa inteiro usamos a chamada de sub-rotinas. No seu caso, é um programa repetido alterando apenas o sistema de referência. O programa principal tem que fazer isso e nada mais uma vez que o seu sub-programa contém todas as informações para ser executado.
O1000 (TEST)
G90G54
M98P2000
G90G55
M98P2000
G90G56
M98P2000
----
----
M30
O programa chamado fica sempre o mesmo, com a previdência de que não deve conter qualquer origem; ista é definida no programa principal.
Este é o método mais simples que pode ser aplicado sem alterar o programa a ser executado.
Agora estamos na presença de um factor essencial: uma sub-rotina pode ser chamada da memória do CNC, mas não de memória externa, o que significa que o programa principal deve-se escever na memória do CNC mas não para o cartão de memória, .
Mas se nós trabalhamos exclusivamente com cartão?
O uso de sub-rotina deve ser excluído deve-se encontrar outras soluções.
Vamos ver um exemplo com variáveis (atenção com o uso das variáveis porque algumas funções macro não funcionam no cartão).
O exemplo acima, dá-nos a possibilidade de reflectir: escrever um ciclo que permite a utilização de múltiplas origens de trabalho repetindo o mesmo programa.
1) para repetir o programa se usa um ciclo
2) para alterar o sistema de referência, usa-se uma variável
3) para manter sob controle um ciclo se usa um contator
O1000(TEST)
#100=3
#101=1
WHILE[#100NE0]DO1
G90G[53+#101]
-----
programa(sem origem)
-----
#100=#100-1
#101=#101+1
END1
M30
Este é apenas um exemplo ilustrativo, mas há muitas maneiras de escrever o mesmo conceito. O que acontece neste programa?
O1000 (TEST)
#100=3
Define o número de origens utilizadas, ou seja as repetições que você quer fazer.
# 101 = 1
Esta variável define a primeira origem usada (G54).
No exemplo desejamos repetir três vezes o programa usando as origens G54, G55, G56.
Neste programa o uso das origens é seqüencial (G54, G55, G56, G57, G58, G59),
mas é possível implementar maneiras diferentes e tudo depende de como você escreve o programa.
WHILE[# 100NE0] DO1
este é o começo de um ciclo repetitivo, e lê-se da seguinte forma:
continua a repetir até que #100 é diferente de 0. Sendo a variável reduzida de 1 a cada iteração, o ciclo será repetido por três vezes (#100 = 3).
G [53 + # 101]
a escritura define o sistema de referência
1) #101=1, então G[53+#101]=G54, em seguida, #101 é aumentada (#101=#101+1=2), aqui #100 torna-se 2
2) #101=2, então G[53+#101]=G55, em seguida, #101 é aumentada (#101=#101+1=3), aqui #100 torna-se 1
3) #101=3, então G[53+#101]=G56, em seguida, #101 é aumentada (#101=#101+1=4), aqui #100 se torna 0
quando #101=4 e #100=0 o loop termina, não é mais repetido e vai para a linha após END1 que lê a linha M30, que termina o programa.
-----
programa (sem origem)
-----
essas linhas representam qualquer programa: É importante não escrever qualquer origem de usinagem de outra forma todo o seu trabalho será nulo.
# 100 = # 100-1
# 101 = # 101 + 1
END1
#100 é um contator serve para repetir o número de vezes o ciclo
#101 estabelece a origem de usinagem
Quando #100=0 (depois de três vezes no exemplo), o ciclo termina
M30
final do programa.
Este é um exemplo simples, digite o código apropriado de acordo com suas necessidades.