Skip to main content

Cambiar los valores de las variables

Código G: G36, G37

Función: Los comandos cambian el valor de una variable. G36 escribe el valor especificado en una variable. G37 incrementa la variable por el valor especificado. O$var$ define la variable que se edita. D define el valor que está escrito para G36 o agregado para G37. El comando se usa, por ejemplo, para un contador de bucle requerido para saltos condicionales.

Sintaxis

G36 O D
G37 O D

Palabra de código G para G36

Descripción

O

Variable que está escrita. O no está definido, entonces se usa una variable de decodificación interna. El valor predeterminado de esta variable interna -1.

La variable interna se puede utilizar en Salto comando.

D

Nuevo valor de variable

Palabra de código G para G37

O

Variable que se incrementa. Si O no está definida, se utiliza una variable decodificadora interna.

D

Incremento

ejemplo 45. Ejemplo

Programación del contador (si la ruta se procesa en línea)

  1. los g_i La variable global se establece en 5.

N1000 G36 O$g_i$ D5

Las líneas 1010 y 1020 se recorren cinco veces.

N1000 G36 O$g_i$ D5
N1010 G1 X100 F100 E100 E-100
N1020 G1 X0
N1030 G37 O$g_i$ D-1
N1040 G20 L1010 K$g_i$


Sugerencia

El mecanismo funciona solo si la ruta se procesa en línea, porque solo entonces se pueden usar variables. Este mecanismo no funciona en el editor CNC.

Programación del contador para el modo fuera de línea

Para trabajar con el editor fuera de línea, no especifique ninguna variable mediante O. Luego, una variable decodificadora implícita de tipo INT se utiliza. Sin embargo, solo está disponible una variable. No puede programar saltos o bucles anidados.

Usando variables de cadena

Puede usar una variable de cadena en la palabra O en código G. Además, se puede asignar e insertar un valor de cadena a esta variable mediante el comando G36 y G37.

ejemplo 46. Ejemplo
N10 G36 O$strTest$ D'Name'

los strTest la variable obtiene el valor de Nombre.

N20 G37 O$strTest$ D'=Test'

El valor =Test se agrega a la variable strTest.



Sugerencia

Si se utilizan variables de cadena en el programa CNC, y si el programa CNC (en el programa IEC) se lee mediante el SMC_ReadNCFile bloque de funciones, entonces los búferes para las cadenas deben reservarse en el programa IEC. De lo contrario, el error SMV_RNCF_NO_STRINGBUFFER ocurre. los SMC_StringBuffer El bloque de funciones está disponible para este propósito.

Cada cadena del programa CNC requiere su propio espacio en la instancia del bloque de función de SMC_StringBuffer, incluso si la misma cadena aparece varias veces.

La siguiente declaración puede almacenar en búfer 32 cadenas, por ejemplo:

sb: SMC_StringBuffer(uiBufferSize := 32);

La instancia del bloque de funciones sb se pasa como un puntero al pStringBuffer entrada de la SMC_ReadNCFile ejemplo.