Tip: Usa Ctrl+P para imprimir o guardar como PDF
1. Variables
Tipos de Variables
| Rango |
Tipo |
Persistencia |
Uso |
| #1 - #33 |
Locales |
Solo durante macro |
Argumentos A-Z, cálculos temporales |
| #100 - #199 |
Comunes |
Durante encendido |
Compartidas entre programas |
| #500 - #999 |
Comunes Persistentes |
Permanente |
Contadores, configuración |
| #1000+ |
Sistema |
Según tipo |
Estado de máquina, offsets |
Asignación
#100 = 50 ; Asignar valor
#101 = #100 + 10 ; Operación
#102 = [#100 * 2] ; Con corchetes
2. Argumentos G65
Llamada: G65 P9100 A10 B20 X50 Y30 Z-15 F200
| Arg |
Var |
| A |
#1 |
| B |
#2 |
| C |
#3 |
| D |
#7 |
| E |
#8 |
| F |
#9 |
| H |
#11 |
| I |
#4 |
| J |
#5 |
| K |
#6 |
| Arg |
Var |
| M |
#13 |
| Q |
#17 |
| R |
#18 |
| S |
#19 |
| T |
#20 |
| U |
#21 |
| V |
#22 |
| W |
#23 |
| X |
#24 |
| Y |
#25 |
| Z |
#26 |
3. Operadores
Aritméticos
| + |
Suma |
| - |
Resta |
| * |
Multiplicación |
| / |
División |
| MOD |
Módulo (resto) |
Comparación
| EQ |
Igual (==) |
| NE |
No igual (!=) |
| GT |
Mayor que (>) |
| GE |
Mayor o igual (>=) |
| LT |
Menor que (<)< /td>
|
| LE |
Menor o igual (<=)< /td>
|
Lógicos
| AND |
Y lógico |
#100 EQ 1 AND #101 GT 5 |
| OR |
O lógico |
#100 EQ 1 OR #100 EQ 2 |
| XOR |
O exclusivo |
#100 XOR #101 |
4. Funciones Matemáticas
| Función |
Descripción |
Ejemplo |
| SIN[x] |
Seno (x en grados) |
#100 = SIN[45] |
| COS[x] |
Coseno (x en grados) |
#100 = COS[60] |
| TAN[x] |
Tangente |
#100 = TAN[30] |
| ASIN[x] |
Arcoseno |
#100 = ASIN[0.5] |
| ACOS[x] |
Arcocoseno |
#100 = ACOS[0.866] |
| ATAN[x]/[y] |
Arcotangente |
#100 = ATAN[1]/[1] |
| SQRT[x] |
Raíz cuadrada |
#100 = SQRT[144] |
| ABS[x] |
Valor absoluto |
#100 = ABS[-25] |
| ROUND[x] |
Redondear |
#100 = ROUND[3.7] |
| FIX[x] |
Truncar hacia cero |
#100 = FIX[3.9] = 3 |
| FUP[x] |
Redondear hacia arriba |
#100 = FUP[3.1] = 4 |
| LN[x] |
Logaritmo natural |
#100 = LN[2.718] |
| EXP[x] |
Exponencial (e^x) |
#100 = EXP[1] |
5. Control de Flujo
IF/THEN/GOTO
IF[condición] THEN #var = valor
IF[condición] GOTO N
; Ejemplo
IF[#1 LT 0] THEN #3000 = 100 (ERROR: VALOR NEGATIVO)
IF[#100 GE 10] GOTO 500
WHILE/DO/END
WHILE[condición] DO n
; código
END n
; n = 1, 2 o 3 (máximo 3 niveles anidados)
; Ejemplo
#100 = 0
WHILE[#100 LT 10] DO1
G00 X[#100 * 5]
#100 = #100 + 1
END1
Bucles Anidados
WHILE[condición1] DO1
WHILE[condición2] DO2
WHILE[condición3] DO3
; código
END3
END2
END1
6. Variables del Sistema
Posición
| Variable |
Descripción |
| #5001-#5006 |
Posición fin de bloque (X,Y,Z,A,B,C) |
| #5021-#5026 |
Posición actual máquina |
| #5041-#5046 |
Posición actual de trabajo |
| #5061-#5066 |
Posición de skip señal |
Offsets de Herramienta
| #[10000+n] |
Longitud herramienta n (H) |
| #[11000+n] |
Desgaste longitud n |
| #[12000+n] |
Radio herramienta n (D) |
| #[13000+n] |
Desgaste radio n |
Información de Control
| #3001 |
Milisegundos desde encendido |
| #3002 |
Horas desde encendido |
| #3011 |
Fecha (YYYYMMDD) |
| #3012 |
Hora (HHMMSS) |
| #4001-#4030 |
Códigos modales activos |
| #4120 |
Número de herramienta actual |
7. Ejemplos Prácticos
Patrón Circular de Agujeros
O9001 (PATRON CIRCULAR)
; A = Radio, B = Número de puntos
#100 = 0 ; Ángulo
#101 = 360 / #2 ; Incremento
WHILE[#100 LT 360] DO1
#102 = #1 * COS[#100] ; X
#103 = #1 * SIN[#100] ; Y
G00 X#102 Y#103
G81 Z-10 R2 F100
#100 = #100 + #101
END1
G80
M99
Cálculo de RPM
O9002 (CALCULAR RPM)
; D = Diámetro, E = Velocidad corte (m/min)
#100 = [#8 * 1000] / [3.1416 * #7]
S#100 M03
M99
8. Errores Comunes
| Código |
Causa |
Solución |
| PS0111 |
Variable de solo lectura |
Usar variable permitida |
| PS0112 |
División por cero |
Verificar divisor ≠ 0 |
| PS0113 |
SQRT de negativo |
Usar ABS[] si necesario |
| PS0116 |
DO/END sin par |
Verificar estructura bucle |
| PS0118 |
Más de 3 niveles DO |
Reestructurar código |
Alarma Personalizada
IF[#1 EQ #0] THEN #3000 = 100 (FALTA PARAMETRO A)
; Genera alarma 3100 con mensaje