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
← Volver a Recursos