Código CNC:
hacer que se ignore una línea

Código que excluirá una línea del programa. 4 de junio de 2004
Pregunta
¿Hay algún carácter que pueda colocarse al principio de una línea de código que haga que esa línea se ignore/salte?

Actualmente tengo cuatro programas para enrutar esencialmente la misma pieza. Necesito versiones diferentes porque, dependiendo de los métodos de carpintería y fabricación, a veces se añaden u omiten ciertos caminos. Si tuviera una manera de hacer que la máquina ignorara ciertas líneas, sólo necesitaría un programa para producir estos cuatro productos ligeramente diferentes. Respuestas del foro
(Foro CNC) Del colaborador C:

Sí, debería haber un carácter que haga que se ignore una línea. Por ejemplo, Biesse utiliza el punto y coma; personaje. Consulte su manual de programación; creo que esto será diferente para cada código de máquina.


Del colaborador S:



Del colaborador B:

¿Qué máquina tienes? Eso podría ayudar a reducirlo.


Del colaborador T:

Hay dos maneras de hacer esto.

No todos los controles CNC admiten la omisión de bloques. En los controles compatibles con Fanuc, este carácter se puede colocar en cualquier lugar dentro de una línea de código para obtener resultados específicos.

2) Otro método consiste en modificar la línea para que el control CNC la trate como un comentario legible por un hombre en lugar de una línea de código a ejecutar.



Del colaborador D:

¿Qué hay de malo en tener los cuatro programas diferentes? ¿Se ha quedado sin espacio en disco? Hay menos posibilidades de error al tener cuatro programas diferentes con cuatro nombres diferentes que al modificar el mismo programa una y otra vez. ¿Por qué arriesgarse a un posible error de programa porque alguien tenía sueño al volante?

Al eliminar una o dos líneas, es posible que también tenga que agregar una o dos líneas dependiendo de lo que esté haciendo el enrutador en ese momento, como movimientos rápidos, movimientos de altura Z, etc. El uso de programas de computadora para generar el código g por usted era ayudar a acelerar las cosas y ayudar a eliminar errores. Me parece que estás dando un paso atrás.


Del colaborador M:

Como otros señalaron, depende de los controles que tengas. Cada control tiene vocabulario que utiliza para ejecutarse. Sugiero consultar el manual del usuario o publicar aquí qué control tiene. Además, me gustaría que considerara un enfoque un poco diferente si (y es un gran si) su control comprende la instrucción GOTO.

Primero, para cada operación o ruta de la máquina, cree una etiqueta con . Instrucción (punto) delante de cada operación/ruta, por ejemplo .TOEKICK .HOLE .DADO, etc.

Al final de esas operaciones ponga GOTO END y al final del programa cree la etiqueta .END

Ahora, al comienzo del programa use la instrucción GOTO y en el siguiente campo escriba el nombre de la operación que desea realizar. Ejemplo:
IR A PIE DEL PIE.

La ejecución del programa se verá así:
la computadora lee la primera línea y salta a la etiqueta que especificó con la instrucción GOTO, la máquina ejecuta el código hasta GOTO END y salta a la etiqueta .END, final del programa. Si necesita dos o tres operaciones, simplemente escriba el nombre/etiqueta de esa operación en el campo GOTO en lugar de .END. Ejemplo:

IR AL PIE DEL PIE
GXX...
GXX...
IR A DATOS

Su control puede tener un vocabulario diferente, pero la lógica es la misma y veo dónde podría usar esto si, por ejemplo, tiene programas largos y lleva mucho tiempo eliminar todas las líneas de código que no necesita y copiar. todos los programas, etc.


Del colaborador J:

Estoy totalmente de acuerdo con el último post. La programación paramétrica puede ser una herramienta muy poderosa. Es especialmente bueno si su controlador no almacena muchos programas y/o tiene un operador capacitado.

Descubra si su controlador acepta comandos como la declaración GOTO y el siempre importante IF THEN. Luego configuré el mismo programa con 2 a 5 líneas al principio que se ven así:

VARA=1 (toe kick 1=yes 0=no)
VARB=0 (agujeros para pasadores 1=sí 0=no)
VARC=1 (dorso atrás 1=sí 0=no)

Una vez que su código esté escrito para todas sus rutas/operaciones de corte, puede hacer que la máquina omita lo que no desea agregando IF THEN algo como:

SI VARA=0 IR A Línea X

*ruta de corte de patada*

Línea X

(si el operador cambia VARA a 1, recibirás una patada en el dedo del pie)

Esa es una explicación básica, pero espero que entiendas la idea. Nuevamente, esto depende de si su controlador admitirá ese estilo de programación (creo que la mayoría lo admite).

Ahora su operador puede editar sólo unos pocos valores al inicio y el cuerpo del programa permanece inalterado, lo que minimiza el riesgo de errores mencionados anteriormente.

Esta también es una herramienta extremadamente poderosa una vez que la aprendes para cosas como círculos, formas simples y operaciones de mecanizado.

Disponemos de una minúscula memoria en nuestro controlador (FANUC), pero guardamos en todo momento programas como:

CUALQUIER CÍRCULO
CUALQUIER PUERTA
CUALQUIER RECORTE CUADRADO
CUALQUIER GROMMET
etc.

A los chicos en el banco les encanta porque pueden pedirle al operador que corte rápidamente una forma o haga un recorte en 30 segundos con algunos números. No tienen que molestar al programador (yo) y esperar hasta que tenga tiempo. Herramienta muy poderosa. Realmente puedes hacer algunas partes bastante sofisticadas de esta manera si tienes paciencia para escribir el código. A veces es un poco difícil depurar al principio, pero una vez que funcionan, es muy satisfactorio. Obviamente, los programas más sofisticados no solo usan 0 y 1 para sí o no, sino que en realidad pueden ser valores para largo y ancho, etc. También puede hacer que el programa realice una determinada serie de operaciones ingresando solo 1 variable igual, por ejemplo, del 1 al 4 (personalmente nunca me gustó ese método, pero funciona).


Del colaborador J:

%
O6008 (CUALQUIER ESTANTE)
#120=100 (DIST DE LA PARADA DERECHA)
#121=130 (PARADA DELANTERA A LA PRIMERA FILA)
#122=400 (PARADA DELANTERA A LA SEGUNDA FILA)
#123=15 (NÚMERO DE AGUJEROS)
G17 G90 G21 G40 G80
#133=#123-1
M68
G08 P1
M06
'(OP 1 HERRAMIENTA TALADROS 6100000 T6 100000)
'(DIÁMETRO DE LA HERRAMIENTA 7, DIÁMETROS DEL ORIFICIO 7)
G91 G28 Z0
M21


M23
#130=0
#120=[#120-160]

N1 (PERFORACIÓN EN LÍNEA - FILA SUPERIOR DE TALADROS)
(UTILIZANDO EL EJERCICIO 1)
G52 X-[#130*32]

M88 T1
G90 G0 G55 X-[#120+111] Y-[1489-#121] Z75.
G98 G81 Z5. 30€. F2000.
X-[#120+111] Y-[1489-#122]
G80T0
SI [#130EQ#133] IR A 5
#130=[#130+1]
IR A 1
N5G17G91G28M95
G52 X0Y0Z0
M92
G08 P0
M07
M69
G91 G28 Z0
G28 X0Y0
M30
%

(Vale la pena señalar que en este controlador FANUC, cualquier elemento en () es solo una nota del operador y se ignora, al igual que las líneas que comienzan con el símbolo '.)


Del colaborador O:

Nuestro controlador Fanuc es compatible con / y lo uso con frecuencia. Recuerde que esto generalmente funciona junto con el interruptor BDT de su controlador. Si el interruptor está activado, se saltará la línea. Si el interruptor está apagado, la línea funcionará.

Se vuelve divertido cuando te das cuenta de que puedes convertir diez programas en un programa de una o mil líneas en un programa de 40 líneas. Estamos limitados a ocho caracteres en los nombres de nuestros programas. Creo que he llegado a lo matemático con un número limitado de programas (y de imaginación).


Del colaborador O:

Punto de aclaración sobre Fanuc. La línea solo se omitirá si el código de omisión del bloque está al principio de la línea. Se puede utilizar un código de omisión de bloque en cualquier lugar dentro de un bloque para una ejecución discreta del código.

Del colaborador E:

Usamos GOTO con bastante frecuencia. Por poner un ejemplo sencillo, podemos tener un programa que incluya perforar agujeros al principio del programa para atornillar la pieza directamente a las mesas LDF. (Hacemos muchas cosas únicas). Luego habrá un movimiento de la mesa y una pausa M0 para que el operador pueda llegar fácilmente a la pieza para atornillarla. Luego algo de mecanizado en la pieza. Podemos detener el programa después de parte del mecanizado para verificar si necesitamos hacer algún ajuste. Cuando reiniciamos el programa desde el principio, no queremos hacer los agujeros porque la pieza ya está atornillada. Colocamos un GOTO (número de línea) justo antes de la operación de perforación, donde (número de línea) es la línea justo después de la perforación. Aquí hay parte de un programa de muestra.

O2081
N5 (PROGRAMA#:
2081)
N10 (PROGRAMADO POR:
)
N15 (CREADO EL 25/02/04 A LAS 14:
02:
46)
N20 (HUSILLO DE ENRUTADORA #3 12.7 DN 38 LARGO)
N25 M98 P8000 (INICIO)
N30 G52 Z19.0
N35 M98 P8201 (MESA Y)
N40 G90
IR A N125
N45#500=12
N50#501=2048
N55 M98 P8104 (TALADRO)
N60 G0 G90 X-713.0 Y-1114.0
N65 Z25.0
N70 G1 X-713.0 Y-1114.0 Z-19.5 F5000.0
N75 G0 X-713.0 Y-1114.0 Z25.0
N80 G0 X-713.0 Y-1464.0 Z25.0
N85 G1 X-713.0 Y-1464.0 Z-19.5 F5000.0
N90 G0 X-713.0 Y-1464.0 Z25.0
M75
M27
G0 X-2500 Y-250
M0 (PAUSA)
N125 (CONTORNO:
20040225.14014753)
N130 T13
N135 M98 P8101 (ENRUTADOR#3)
N140 S16000
N145 G0 X-586.57 Y-1323.96 Z25.0
N150 G1 X-586.57 Y-1323.96 Z6.0 F4500.0
Etc.
Etc.

Podrías poner el GOTO en cualquier lugar. Y podrías usar más de uno en un programa.

Estoy de acuerdo sobre el poder de usar variables. Creé un programa de embutir de bisagras para puertas de paso que tiene variables para el tamaño de la puerta, el tamaño de la bisagra, incluido el grosor de las hojas, y también variables para la ubicación de las bisagras en función de la distancia desde la parte superior e inferior de la puerta. y el número de bisagras. Un programa, muchas combinaciones. El operador sólo necesita ingresar las variables.


Del colaborador M:

Si realmente quieres volverte loco, puedes crear macros paramétricas o ciclos fijos. Depende del controlador que uses. Básicamente, de esta manera tienes solo una instrucción, una línea de código que realiza rutas/operaciones complejas de la máquina. Funciona de manera similar a la función Auto Cad Lisp.

Te daré un ejemplo. En la universidad teníamos Weeke PTP con una agradable operación de perforación que hace referencia a la posición media de la fila de agujeros. Si tuviera 7 hoyos, el número 4 sería la posición que necesita ingresar. Esto es útil si desea tener una fila de orificios para estantes ajustables centrados entre dos ranuras o simplemente centrados en el panel para que haya la misma distancia desde el orificio inferior hasta el borde y la misma para el lado opuesto.

No tengo esa opción para las máquinas Morbidelli, al menos no pude encontrar ninguna. Entonces he creado algo como esto:


;Creado por Mirko M.











;
L PRIMERO =pI
L SEGUNDO =pJ
L LX = SEGUNDO-PRIMERO
LHX =pH
L POLA =LX/2
L XRAZ = px
LB =((HX-1)*XRAZ)/2
L BOR =((LX/2)-B)+PRIMERO
;
BO X=BOR Y=pY Z=pZ D=pD N=pN R=HX x=px y=py G=pG V=pV L=pL

La última línea de código es la ejecución real del código. Cuando ejecuto esta macro, todo lo que tengo que hacer es ingresar las posiciones de mis puntos de referencia superior e inferior y cuántos agujeros quiero entre ellos.

Ejemplo:



C

La fila de 7 agujeros estará centrada entre I=100 y J=700.
Pocas matemáticas al principio ahorran muchas matemáticas en el futuro.

PD:
Si algunos de ustedes, usuarios de Xilog, quieren usar esto, pueden hacerlo. Es posible que tengas que modificar tu archivo CYC.msg después de compilar esta macro porque agregué un par de líneas de código en el mío.


Del colaborador J:



Del colaborador T:

Colaborador J, debe comunicarse con AlphaCAM para obtener el VBA para los materiales de capacitación de AlphaCAM. Son una gran cantidad de información. También puede utilizar el archivo de ayuda de la API AlphaCAM. AlphaCAM ya no admite las macros paramétricas heredadas, por lo que si va por ese camino ahora, sería prudente que lo reconsidere. Algunas cosas serán simplemente imposibles de hacer con el antiguo lenguaje de macros paramétrico de AlphaCAM. Solo se deja en el producto para uso heredado limitado.


Del colaborador I:

Colaborador M, uso Xilog para mi AUTH.504 R7. Aprecio tu publicación, muy útil.