# Variables en el script

### Utilizar de variables en los scripts

Puede utilizar variables para realizar la operación que desee.

Nota:

- OR/AND/XOR/NOT siempre devuelven un valor entero sin signo de 32 bits.
- Cuando el valor de entrada es negativo, las expresiones de desplazamiento de bits devuelven un valor entero de 32 bits.
- Cuando el valor de entrada es positivo, las expresiones de desplazamiento de bits devuelven un valor entero sin signo de 32 bits.

### Utilizar variables externas en el script

Cuando se utilizan variables externas en un script, el valor de la dirección del dispositivo asignado al dispositivo externo puede cambiar durante el procesamiento del script.

El uso de una dirección de dispositivo en una operación de asignación puede provocar un retraso en la escritura, ya que la unidad de visualización debe leer los datos de la dirección del dispositivo conectado.

Nota: al cambiar el valor de una variable externa varias veces dentro de un script con un solo disparador, el valor de la variable externa no se actualizará inmediatamente.

Para usar el valor actualizado de la variable externa en el script disparado, guarde el valor en una variable interna y úselo dentro del script. O bien, actualice el valor de la variable externa con un disparador diferente antes de usarlo.

(Ejemplo)

Agregue las siguientes variables.

[Nombre] | [Tipo de datos] | [Origen] | [Dirección de dispositivo] | [Número de bytes/palabras]
Var1 | [INT] | 'Equipo serie Modbus de Schneider' | 400020 | -
Var2 | [INT] | 400021 | -
Var3 | [INT] | 400022 | -

Dibuje los siguientes objetos en la pantalla.

#### Propiedades del objeto del interruptor (Nombre: Switch1)

No hay una configuración especial.

#### Script

Leyenda | Bloque
1 | [Disparadores] ➞ [Pulsación] ➞ [Pulsación]
2 | [Operaciones] ➞ [Cambio de valor] ➞ [Cambio de valor]
3 | [Valores] ➞ [Objeto de pantalla]
4 | [Lógica] ➞ [Math]
5 | [Valores] ➞ [Variable]
6 | [Valores] ➞ [Constante]

Cuando se pulsa Switch1, el valor de Var1+1 se asigna a Var2. Sin embargo, el valor de Var2 no se ha asignado a Var3 debido a que la comunicación con el dispositivo requiere mucho tiempo.

En estos casos, se puede programar un script de forma que el resultado de Var1 se almacene primero en la variable interna Var4 antes de ejecutarse, como se muestra en el siguiente ejemplo.

Agregue las siguientes variables.

[Nombre] | [Tipo de datos] | [Origen] | [Dirección de dispositivo] | [Número de bytes/palabras]
Var1 | [INT] | 'Equipo serie Modbus de Schneider' | 400020 | -
Var2 | [INT] | 400021 | -
Var3 | [INT] | 400022 | -
Var4 | [INT] | [Internal] | - | -

#### Script