Cambio de valor

La operación de Cambio de valor cambia el valor y la propiedad de Variable, Objeto y Destino.

Bloque

Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, TARGET, EXPRESSION);
                             3                               1     2         4

1: Operación

2: Destino

3: When over

Defina la operación cuando el valor excede el rango.

Ajuste en [When over]:

Nota: [Loop] no admite variables de tipo Real, que hacen que el bucle se detenga cuando se alcanza el valor máximo.

4: Origen

Operación

[Set]
Bloque
[Set]
Texto
'$Enums.AssignmentOperator.Set'

O '='

Escribe la variable, constante o expresión especificada en el bloque de origen al bloque de destino.

[AddTo]

Bloque

[AddTo]

Texto
'$Enums.AssignmentOperator.AddTo'

O '+='

Agrega la variable, constante o expresión especificada en el bloque de origen al bloque de destino.

[SubTo]

Bloque

[SubTo]

Texto
'$Enums.AssignmentOperator.SubTo'

O '-='

Resta la variable, constante o expresión especificada en el bloque de origen del bloque de destino.

[MulTo]

Bloque

[MulTo]

Texto
'$Enums.AssignmentOperator.MulTo'

O '*='

Multiplica el valor del bloque de destino por la variable, constante o expresión especificada en el bloque de origen y copia el resultado en el bloque de destino.

[DivTo]

Bloque

[DivTo]

Texto
'$Enums.AssignmentOperator.DivTo'
O '/='
Divide el valor del bloque de destino por la variable, constante o expresión especificada en el bloque de origen y copia el resultado en el bloque de destino.

[AndTo]

Bloque

[AndTo]

Texto
'$Enums.AssignmentOperator.AndTo'
O '&='
Ejecuta la operación AND (producto lógico) entre el entero o variable especificado en el bloque de origen y el bloque de destino, y copia el resultado en el bloque de destino.

[OrTo]

Bloque

[OrTo]

Texto
'$Enums.AssignmentOperator.OrTo'
O '|='
Ejecuta la operación OR (suma lógica) entre el entero o variable especificado en el bloque de origen y el bloque de destino, y copia el resultado en el bloque de destino.
[XorTo]
Bloque
[XorTo]
Texto
'$Enums.AssignmentOperator.XorTo'
O '^='
Ejecuta la operación XOR (suma lógica exclusiva) entre el entero o variable especificado en el bloque de origen y el bloque de destino, y copia el resultado en el bloque de destino.

[NandTo]

Bloque

[NandTo]

Texto
'$Enums.AssignmentOperator.NandTo'
Ejecuta la operación NAND (producto lógico seguido de NOT) entre el entero o la variable especificada en el bloque de origen y el bloque de destino, y copia el resultado en el bloque de destino.

[NorTo]

Bloque

[NorTo]

Texto
'$Enums.AssignmentOperator.NorTo'
Ejecuta la operación NOR (suma lógica seguida de un inversor) entre el entero o variable especificado en el bloque de origen y el bloque de destino, y copia el resultado en el bloque de destino.
 

Nota:

 

La operación [Cambio de valor] permite establecer una variable o propiedad de origen como destino.

 

Cambio de Valor de Variable - ENTERO

Establezca el valor del bloque de origen en la variable del bloque de destino.

(Ejemplo): Set

Operación Bloque de destino Bloque de origen
[Set] Establezca la variable INT1 en el bloque de variables. Seleccione [Int] y defina 5 en el bloque Constante.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, INT1, 5);

→ INT1 se establece en 5 cuando se ejecuta el script.

(Ejemplo): AddTo

Operación Bloque de destino Bloque de origen
[AddTo] Establezca la variable INT1 en el bloque de variables. Seleccione [Int] y defina 7 en el bloque Constante.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, INT1, 7);

→ Si INT1 es 3 cuando se ejecuta el script, se suma 7 del bloque de origen y INT1 se convierte en 10.

(Ejemplo): SubTo

Operación Bloque de destino Bloque de origen
[SubTo] Establezca la variable INT1 en el bloque de variables. Seleccione [Int] y defina 3 en el bloque Constante.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.SubTo, INT1, 3);

→ Si INT1 es 5 cuando se ejecuta el script, se resta el valor 3 del bloque de origen y INT1 se convierte en 2.

(Ejemplo): DivTo

Operación Bloque de destino Bloque de origen
[DivTo] Establezca la variable INT1 en el bloque de variables. Seleccione [Int] y defina 2 en el bloque Constante.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.DivTo, INT1, 2);

→ Si INT1 es 5 cuando se ejecuta el script, su valor se divide por el valor 2 del bloque de origen y INT1 se convierte en 2. Si el valor es de tipo entero, se trunca el valor decimal.

(Ejemplo): MulTo

Operación Bloque de destino Bloque de origen
[MulTo] Establezca la variable INT1 en el bloque de variables. Seleccione [Int] y defina 5 en el bloque Constante.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.MulTo, INT1, 5);

→ Si INT1 es 3 cuando se ejecuta el script, su valor se multiplica por el valor 5 del bloque de origen y INT1 se convierte en 15.

(Ejemplo): AndTo

Operación Bloque de destino Bloque de origen
[AndTo] Establezca la variable SINT1 en el bloque de variables. Establezca la variable SINT2 en el bloque de variables.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AndTo, SINT1, SINT2);

→ Si SINT1 es 3 (binario: 00000011) y SINT2 es 5 (binario: 00000101), SINT1 será 1 (binario: 00000001) cuando se produzca el disparo.

La expresión lógica convierte el valor del bloque de destino y del bloque de origen en números binarios y calcula el producto lógico en cada dígito. Establezca el resultado de nuevo en la base original y lo asigna al bloque de destino.

(Ejemplo): OrTo

Operación Bloque de destino Bloque de origen
[OrTo] Establezca la variable SINT1 en el bloque de variables. Establezca la variable SINT2 en el bloque de variables.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.OrTo, SINT1, SINT2);

→ Si SINT1 es 3 (binario: 00000011) y SINT2 es 5 (binario: 00000101), SINT1 será 7 (binario: 00000111) cuando se produzca el disparo.

La expresión lógica convierte el valor del bloque de destino y el bloque de origen en números binarios y calcula la suma lógica en cada dígito. Establezca el resultado de nuevo en la base original y lo asigna al bloque de destino.

(Ejemplo): XorTo

Operación Bloque de destino Bloque de origen
[XorTo] Establezca la variable SINT1 en el bloque de variables. Establezca la variable SINT2 en el bloque de variables.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.XorTo, SINT1, SINT2);

→ Si SINT1 es 3 (binario: 00000011) y SINT2 es 5 (binario: 00000101), SINT1 será 6 (binario: 00000110) cuando se produzca el disparo.

La expresión lógica convierte el valor del bloque de destino y del bloque de origen en números binarios y calcula la suma lógica en cada dígito. Establezca el resultado de nuevo en la base original y lo asigna al bloque de destino.

(Ejemplo): NandTo

Operación Bloque de destino Bloque de origen
[NandTo] Establezca la variable SINT1 en el bloque de variables. Establezca la variable SINT2 en el bloque de variables.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.NandTo, SINT1, SINT2);

→ Si SINT1 es 3 (binario: 00000011) y SINT2 es 5 (binario: 00000101), SINT1 será -2 (binario: 11111110) cuando se produzca el disparo.

La expresión lógica convierte el valor del bloque de destino y del bloque de origen en números binarios y calcula una suma lógica exclusiva en cada dígito. Establezca el resultado de nuevo en la base original y lo asigna al bloque de destino.

(Ejemplo): NorTo

Operación Bloque de destino Bloque de origen
[NorTo] Establezca la variable SINT1 en el bloque de variables. Establezca la variable SINT2 en el bloque de variables.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.NorTo, SINT1, SINT2);

→ Si SINT1 es 3 (binario: 00000011) y SINT2 es 5 (binario: 00000101), SINT1 será -8 (binario: 11111000) cuando se produzca el disparo.

La expresión lógica convierte el valor del bloque de destino y el bloque de origen en números binarios y calcula una suma lógica seguida de un inversor en cada dígito. Establezca el resultado de nuevo en la base original y lo asigna al bloque de destino.

Cambio de valor de la variable - FECHA Y HORA

Establezca el valor de fecha y hora de la variable de origen a la variable de destino.

Las variables DATE, TIME_OF_DAY, y DATE_AND_TIME admiten los operadores [Set] y [AddTo].

A continuación se ilustra el comportamiento de la operación cuando el Bloque de origen y el Bloque de destino son variables de DATE, TIME_OF_DAY, o DATE_AND_TIME:

Operación Bloque de origen Bloque de destino Comportamiento
[Set] DATE DATE Defina la fecha.
TIME_OF_DAY No se ha definido ningún valor.
DATE_AND_TIME Defina solamente la fecha.
TIME_OF_DAY DATE No se ha definido ningún valor.
TIME_OF_DAY Defina la hora.
DATE_AND_TIME Defina solamente la hora.
DATE_AND_TIME DATE Defina solamente la fecha.
TIME_OF_DAY Defina solamente la hora.
DATE_AND_TIME Defina la fecha y la hora.
[AddTo] DATE DATE Agregar fecha.
TIME_OF_DAY No se ha definido ningún valor.
DATE_AND_TIME Agregar solo la fecha.
TIME_OF_DAY DATE No se ha definido ningún valor.
TIME_OF_DAY Agregar hora.
DATE_AND_TIME Agregar solo la hora
DATE_AND_TIME DATE Agregar solo la fecha.
TIME_OF_DAY Agregar solo la hora
DATE_AND_TIME Agregar fecha y hora.

(Ejemplo): Set

Operación Bloque de destino Bloque de origen
[Set] Establezca la variable TIME_OF_DAY1 en el bloque de variables. Seleccione [TIME_OF_DAY] y defina 00:15:00 en el bloque Constante.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, TIME_OF_DAY1, timeOfDay(00, 15, 00));

Cuando se produce el disparo, la hora en TIME_OF_DAY1 se establece en 00:15:00.

Nota: Si un bloque de origen se establece en una fecha o una hora [constante], cualquier valor de fecha u hora no incluido en la constante será cero. Por ejemplo, si escribe una hora constante en la variable DATE_AND_TIME , el valor de la fecha será 0(1970/01/01).

(Ejemplo): AddTo

Operación Bloque de destino Bloque de origen
[AddTo] Establezca la variable DATE_AND_TIME1 en el bloque de variables. Seleccione [TIME_OF_DAY] y defina 00:15:00 en el bloque Constante.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, DATE_AND_TIME1, timeOfDay(00, 15, 00));

→ Si DATE_AND_TIME1 es 2024/10/01 12:34:56, cuando se produce el disparo, se suma 00:15:00 en el bloque de origen y DATE_AND_TIME1 se convierte en 2024/10/01 12:49:56.

Cambio de valor de la variable - BOOL

Un solo bit de datos se establece en la variable de destino.

(Ejemplo): Set

Operación Bloque de destino Bloque de origen
[Set] Establezca la variable BOOL1 en el bloque de variables. Seleccione [Int] y defina 1 en el bloque Constante.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, BOOL1, 1);

→ BOOL1 se establece en ON cuando se activa el disparador.

Cambio de valor de la variable - STRING

Se establece una cadena en la variable de destino.

(Ejemplo): Set

Operación Bloque de destino Bloque de origen
[Set] Establezca la variable STRING1 en el bloque de variables. Seleccione [STRING] y defina "DEF" el bloque Constante.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, STRING1, "DEF");

→ STRING1 se establece en DEF cuando se activa el disparador.

(Ejemplo): AddTo

Operación Bloque de destino Bloque de origen
[AddTo] Establezca la variable STRING1 en el bloque de variables. Seleccione [STRING] y defina "DEF" el bloque Constante.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, STRING1, "DEF");

→ Si STRING1 es "AB", cuando se produce el disparo, se agrega"DEF" al bloque de origen y STRING1 se convierte en "ABDEF".

Cambio de valor de la propiedad de origen del objeto

Establezca el valor del bloque de origen en la propiedad de origen del bloque de destino.

(Ejemplo 1)

Operación Bloque de destino Bloque de origen
[Set] Establezca la propiedad de origen del objetoRectangle1.Thickness en el bloque de objeto. Seleccione [Int] y defina 10 en el bloque Constante.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $GraphicObject.Rectangle1.Thickness, 10);

→ El espesor del borde del Rectangle1 cambia a 10 cuando se produce el disparo.

(Ejemplo 2)

Operación Bloque de destino Bloque de origen
[Set] Establezca la propiedad de origen del objeto Lamp1.Interlock en el bloque de objeto. Seleccione [Int] y defina 0 en el bloque Constante.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $GraphicObject.Lamp1.Interlock, 0);

→ El estado de enclavamiento de Lamp1 se establece en OFF cuando se produce el disparo.

Cambio de valor de la propiedad de origen de la variable

Establezca el valor del bloque de origen en la propiedad de origen del bloque de destino.

(Ejemplo)

Operación

Bloque de destino

Bloque de origen
[Set] Establezca la propiedad de origen de la variable INT1.Value en el bloque de variable. Seleccione [Int] y defina 1 en el bloque Constante.
 
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, INT1.Value, 1);

→ INT1.Value se establece en 1 cuando se produce el disparo.

Cambio de valor de la propiedad de origen del destino

Establezca el valor del bloque de origen en la propiedad de origen del bloque de destino.

(Ejemplo 1)

Fije una fecha para el destino.

Operación Bloque de destino Bloque de origen
[Set] Establezca la propiedad de origen de destino Target01.DateAndTime.Date en el bloque de destino. Seleccione [Date] y defina 10/17/2017 en el bloque Constante.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Date, date(2017, 10, 17));

→ La unidad de visualización se establece en 17/10/2017 cuando se activa el disparador.

(Ejemplo 2)

Establezca la fecha y la hora de la unidad de visualización a la misma fecha y hora que el dispositivo externo.

(Ejemplo 2- 1)

Establezca la fecha y hora (año, mes, día, horas, minutos, segundos) del dispositivo externo en las variables enteras INT1 a INT6, respectivamente.

Operación Bloque de destino Bloque de origen
[Set]

Establezca la propiedad de origen del destino en el bloque de destino.

Target01.DateAndTime.Year

Target01.DateAndTime.Month

Target01.DateAndTime.Day

Target01.DateAndTime.Hour

Target01.DateAndTime.Minute

Target01.DateAndTime.Second

Establezca la variable INT1 a INT6 en el bloque de variables.
Bloque
Texto

onScheduledDay(23, 0, () => {

    changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Year, INT1.Value);

    changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Month, INT2.Value);

    changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Day, INT3.Value);

    changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Hour, INT4.Value);

    changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Minute, INT5.Value);

    changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Second, INT6.Value);

});

→ La fecha y hora de la unidad de visualización se establecen a la fecha y hora del dispositivo externo a las 23:00 todos los días.

(Ejemplo 2- 2)

Establezca la fecha y hora del dispositivo externo en una variable DATE_AND_TIME Var1 como el número de segundos (entero de 32 bits) desde 1970/01/01 00:00:00 UTC. Para conocer la relación entre el valor de Var1 y la fecha y hora, consulte lo siguiente.

TIME, DATE, TIME_OF_DAY, DATE_AND_TIME

Operación Bloque de destino Bloque de origen
[Set] Establezca la propiedad de origen del objetivo Target01.DateAndTime.DateTime en el bloque de destino. Establezca la variable Var1 en el bloque de variables.
Bloque
Texto

onScheduledDay(23, 0, () => {

    changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.DateTime, Var1.Value);

});

→ La fecha y hora de la unidad de visualización se establecen a la fecha y hora del dispositivo externo a las 23:00 todos los días.

(Ejemplo 3)

Apague la retroiluminación de la unidad de visualización.

Operación Bloque de destino Bloque de origen
[Set] Establezca la propiedad de origen del objetivo Target01.Preferences.BacklightOff en el bloque de destino. Establezca la variable BOOL1 con valor 1 en el bloque de Variable.
Bloque
Texto

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.Preferences.BacklightOff, BOOL1.Value);

→ La retroiluminación de la unidad de visualización se apaga cuando se activa el disparador.