La operación de Cambio de valor cambia el valor y la propiedad de Variable, Objeto y Destino.
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]:
[Loop] no admite variables de tipo Real, que hacen que el bucle se detenga cuando se alcanza el valor máximo.
4: Origen
[Set] | [Set] '$Enums.AssignmentOperator.Set' O '=' |
Escribe la variable, constante o expresión especificada en el bloque de origen al bloque de destino. |
[AddTo] |
[AddTo] '$Enums.AssignmentOperator.AddTo'O '+=' |
Agrega la variable, constante o expresión especificada en el bloque de origen al bloque de destino. |
[SubTo] |
[SubTo] '$Enums.AssignmentOperator.SubTo'O '-=' |
Resta la variable, constante o expresión especificada en el bloque de origen del bloque de destino. |
[MulTo] |
[MulTo] '$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] |
[DivTo] '$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] |
[AndTo] '$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] |
[OrTo] '$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] | [XorTo] '$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] |
[NandTo] '$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] |
[NorTo] '$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. |
No se puede utilizar un valor negativo en un bloque matemático y una operación de cambio de valor con los operadores matemáticos dividir (/) o módulo (%).
Cuando utiliza 16 dígitos decimales o más en una operación de Cambio de valor (AddTo, SubTo, DivTo, MulTo), utilice LINT o ULINT como la variable de destino.
La operación [Cambio de valor] permite establecer una variable o propiedad de origen como destino.
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. |
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. |
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. |
![]() 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. |
![]() 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. |
![]() 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. |
![]() 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. |
![]() 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. |
![]() 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. |
![]() 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. |
![]() 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.
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. |
![]() 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. |
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. |
![]() 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.
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. |
![]() changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, BOOL1, 1); |
→ BOOL1 se establece en ON cuando se activa el disparador.
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. |
![]() 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. |
![]() 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".
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. |
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. |
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.
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. |
changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, INT1.Value, 1); |
→ INT1.Value se establece en 1 cuando se produce el disparo.
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. |
![]() 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. |
![]() 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. |
![]() 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. |
![]() 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.