Autor Tópico: Repetir PGM's em G54, G55, G56, etc  (Lida 3062 vezes)

Description:

0 Membros e 1 Visitante estão vendo este tópico.

Offline Felipevski

  • Novato
  • *
  • Posts: 4
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: SÃO LEOPOLDO, RS
  • Nome:: FELIPE SIMIONOVSKI
  • Profissão: PROJETISA PROGRAMADOR
Repetir PGM's em G54, G55, G56, etc
« Online: 16 de Setembro de 2014, 14:12 »
Olá pessoal, trabalho aqui na empresa com peças seriadas, no comando fanuc. Fazemos a repetição dos programas de forma manual, tiramos as origens nos G54, G55, G56, da máquina e copiamos e colamos o PGM um abaixo do outro e alteramos no inicio de cada um de G54 para G55, G56, G57, etc... O problema disso é que os pgm's ficam muito pesados para editar no PC, e há chance maior de erro.

1a Pergunta: Eu consigo através de uma linha de g-code fazer a repetição desse mesmo programa, o 1º no G54, o 2º no G55 , o 3º no G56 e assim sucessivamente?

2a Pergunta: Não usamos a memória da máquina, usamos os cartões de memória. Seria possível chamar algum programa específico. Ex.: pgm "a" roda em G54, Pgm "b" em G55, etc...

Fico no aguardo das dicas

Obrigado!!!

Offline F.Gilii

  • Administrador
  • CNCMASTER
  • *******
  • Posts: 13796
  • Sexo: Masculino
  • Consultoria, Automação e Construção de Máquinas
  • Cidade - UF: Atibaia - SP
  • Nome:: Fabio Gilii
  • Profissão: Tec. Mecanica de Precisão
Re:Repetir PGM's em G54, G55, G56, etc
« Resposta #1 Online: 16 de Setembro de 2014, 15:21 »

Offline badade

  • Novato
  • *
  • Posts: 65
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: Varese
  • Nome:: Pietro
  • Profissão: Programador cnc
Re:Repetir PGM's em G54, G55, G56, etc
« Resposta #2 Online: 16 de Setembro de 2014, 18:03 »
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.

 

/** * */