A operação Alterar valor altera o valor e a propriedade da Variável, Objeto e Terminal.

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, TARGET, EXPRESSION);
3 1 2 4
1: Operação
2: Destino
3: When over
Defina a operação quando o valor exceder a faixa.
Configuração em [When over]:
[Loop] não suporta variáveis de tipo de dados Reais, o que faz com que o loop pare quando o valor máximo é alcançado.
4: Fonte
| [Set] |
BlocoTextoOu '=' |
Grava a variável, constante ou expressão especificada no bloco da origem para o bloco de destino. |
|
[AddTo] |
Bloco[AddTo] TextoOr'+=' |
Adiciona a variável, constante ou expressão especificada no bloco da origem para o bloco de destino. |
|
[SubTo] |
Bloco[SubTo] TextoOu '-=' |
Subtrai a variável, constante ou expressão especificada no bloco de origem para o bloco de destino. |
|
[MulTo] |
Bloco[MulTo] TextoOu'*=' |
Multiplica o valor do bloco de destino pela variável, constante ou expressão especificada no bloco de origem e copia o resultado para o bloco de destino. |
|
[DivTo] |
Bloco[DivTo] Texto |
Divide o valor do bloco de destino pela variável, constante ou expressão especificada no bloco de origem e copia o resultado para o bloco de destino. |
|
[AndTo] |
Bloco[AndTo] Texto |
Executa a operação AND (produto lógico) entre o integer ou a variável especificado no bloco de origem e o bloco de destino e copia o resultado para o bloco de destino. |
|
[OrTo] |
Bloco[OrTo] Texto |
Executa a operação OR (soma lógica) entre o integer ou a variável especificado no bloco de origem e o bloco de destino e copia o resultado para o bloco de destino. |
| [XorTo] |
BlocoTexto |
Executa a operação XOR (soma lógica exclusiva) entre o integer ou a variável especificado no bloco de origem e o bloco de destino e copia o resultado para o bloco de destino. |
|
[NandTo] |
Bloco[NandTo] Texto |
Executa a operação NAND (produto lógico seguido de NOT) entre o integer ou variável especificado no bloco de origem e o bloco de destino, em seguida, copia o resultado para o bloco de destino. |
|
[NorTo] |
Bloco[NorTo] Texto |
Executa a operação NOR (soma lógica seguida por Inversor) entre o integer ou a variável especificado no bloco de origem e o bloco de destino e copia o resultado para o bloco de destino. |
Não é possível utilizar um valor negativo em uma operação bloco de Math e Alterar valor com operadores matemáticos dividir (/) ou modular (%).
Quando você utiliza 16 ou mais dígitos decimais em uma operação Alterar valor (AddTo, SubTo, DivTo, MulTo) então use LINT ou ULINT como a variável do destino.
A operação [Alterar valor] permite definir uma variável ou propriedade de origem como destino.
Definir o valor do bloco de origem para a variável no bloco de destino.
(Exemplo): Set
| Operação | Bloco de destino | Bloco de origem |
| [Set] | Defina a variável INT1 para o bloco da variável. | Selecione [Int] e defina 5 para o bloco Constante. |
BlocoTextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, INT1, 5); |
||
→ INT1 está definido como 5 quando o script é executado.
(Exemplo): AddTo
| Operação | Bloco de destino | Bloco de origem |
| [AddTo] | Defina a variável INT1 para o bloco da variável. | Selecione [Int] e defina 7 para o bloco Constante. |
BlocoTextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, INT1, 7); |
||
→ Se INT1 for 3 quando o script for executado, 7 do bloco de origem será adicionado e INT1 se tornará 10.
(Exemplo): SubTo
| Operação | Bloco de destino | Bloco de origem |
| [SubTo] | Defina a variável INT1 para o bloco da variável. | Selecione [Int] e defina 3 para o bloco Constante. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.SubTo, INT1, 3); |
||
→ Se INT1 for 5 quando o script for executado, o valor 3 no bloco de origem será subtraído e INT1 se tornará 2.
(Exemplo): DivTo
| Operação | Bloco de destino | Bloco de origem |
| [DivTo] | Defina a variável INT1 para o bloco da variável. | Selecione [Int] e defina 2 para o bloco Constante. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.DivTo, INT1, 2); |
||
→ Se INT1 for 5 quando o script for executado, seu valor será dividido pelo valor do bloco de origem de 2 e INT1 se tornará 2. Se o valor for do tipo integer, o valor do ponto decimal será truncado.
(Exemplo): MulTo
| Operação | Bloco de destino | Bloco de origem |
| [MulTo] | Defina a variável INT1 para o bloco da variável. | Selecione [Int] e defina 5 para o bloco Constante. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.MulTo, INT1, 5); |
||
→ Se INT1 for 3 quando o script for executado, seu valor será multiplicado pelo valor do bloco de origem de 5 e INT1 se tornará 15.
(Exemplo): AndTo
| Operação | Bloco de destino | Bloco de origem |
| [AndTo] | Defina a variável SINT1 para o bloco da variável. | Defina a variável SINT2 para o bloco da variável. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AndTo, SINT1, SINT2); |
||
→ Se SINT1 for 3 (binário: 00000011) e SINT2 for 5 (binário: 00000101), SINT1 será 1 (binário: 00000001) quando o disparo ocorre.
A expressão lógica converte o valor do bloco de destino e o bloco de origem em números binários e calcula o produto lógico em cada dígito. Defina o resultado de volta à raiz original e defina-o para o bloco de destino.
(Exemplo): OrTo
| Operação | Bloco de destino | Bloco de origem |
| [OrTo] | Defina a variável SINT1 para o bloco da variável. | Defina a variável SINT2 para o bloco da variável. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.OrTo, SINT1, SINT2); |
||
→ Se SINT1 for 3 (binário: 00000011) e SINT2 for 5 (binário: 00000101), SINT1 será 7 (binário: 00000111) quando o disparo ocorre.
A expressão lógica converte o valor do bloco de destino e o bloco de origem em números binários e calcula a soma lógica em cada dígito. Defina o resultado de volta à raiz original e defina-o para o bloco de destino.
(Exemplo): XorTo
| Operação | Bloco de destino | Bloco de origem |
| [XorTo] | Defina a variável SINT1 para o bloco da variável. | Defina a variável SINT2 para o bloco da variável. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.XorTo, SINT1, SINT2); |
||
→ Se SINT1 for 3 (binário: 00000011) e SINT2 for 5 (binário: 00000101), SINT1 será 6 (binário: 00000110) quando o disparo ocorre.
A expressão lógica converte o valor do bloco de destino e o bloco de origem em números binários e calcula uma soma lógica exclusiva em cada dígito. Defina o resultado de volta à raiz original e defina-o para o bloco de destino.
(Exemplo): NandTo
| Operação | Bloco de destino | Bloco de origem |
| [NandTo] | Defina a variável SINT1 para o bloco da variável. | Defina a variável SINT2 para o bloco da variável. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.NandTo, SINT1, SINT2); |
||
→ Se SINT1 for 3 (binário: 00000011) e SINT2 for 5 (binário: 00000101), SINT1 será -2 (binário: 11111110) quando o disparo ocorre.
A expressão lógica converte o valor do bloco de destino e o bloco de origem em números binários e calcula o produto lógico negativo em cada dígito. Defina o resultado de volta à raiz original e defina-o para o bloco de destino.
(Exemplo): NorTo
| Operação | Bloco de destino | Bloco de origem |
| [NorTo] | Defina a variável SINT1 para o bloco da variável. | Defina a variável SINT2 para o bloco da variável. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.NorTo, SINT1, SINT2); |
||
→ Se SINT1 for 3 (binário: 00000011) e SINT2 for 5 (binário: 00000101), SINT1 será -8 (binário: 11111000) quando o disparo ocorre.
A expressão lógica converte o valor do bloco de destino e o bloco de origem em números binários e calcula uma soma lógica seguida por Inversor em cada dígito. Defina o resultado de volta à raiz original e defina-o para o bloco de destino.
Defina o valor de data e hora da variável de origem para a variável de destino.
As variáveis DATE, TIME_OF_DAY e DATE_AND_TIME suportam o operador [Set] e [AddTo].
O seguinte ilustra o comportamento da operação quando o Bloco de origem e o Bloco de destino são variáveis DATE, TIME_OF_DAY ou DATE_AND_TIME :
| Operação | Bloco de origem | Bloco de destino | Comportamento |
| [Set] | DATE | DATE | Definir data. |
| TIME_OF_DAY | Nenhum valor é definido. | ||
| DATE_AND_TIME | Defina apenas a data. | ||
| TIME_OF_DAY | DATE | Nenhum valor é definido. | |
| TIME_OF_DAY | Definir hora. | ||
| DATE_AND_TIME | Defina apenas a hora. | ||
| DATE_AND_TIME | DATE | Defina apenas a data. | |
| TIME_OF_DAY | Defina apenas a hora. | ||
| DATE_AND_TIME | Definir data e hora. | ||
| [AddTo] | DATE | DATE | Adicionar data. |
| TIME_OF_DAY | Nenhum valor é definido. | ||
| DATE_AND_TIME | Adicionar somente data. | ||
| TIME_OF_DAY | DATE | Nenhum valor é definido. | |
| TIME_OF_DAY | Adicionar hora. | ||
| DATE_AND_TIME | Adicionar somente hora. | ||
| DATE_AND_TIME | DATE | Adicionar somente data. | |
| TIME_OF_DAY | Adicionar somente hora. | ||
| DATE_AND_TIME | Adicionar data e hora. |
(Exemplo): Set
| Operação | Bloco de destino | Bloco de origem |
| [Set] | Defina a variável TIME_OF_DAY1 para o bloco da variável. | Selecione [TIME_OF_DAY] e defina 00:15:00 para o bloco Constante. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, TIME_OF_DAY1, timeOfDay(00, 15, 00)); |
||
→ Quando o disparo ocorre, a hora em TIME_OF_DAY1 é definida como 00:15:00.
Se um bloco de origem for definido com uma data ou hora [constante], qualquer valor de data ou hora não incluído na constante será zero. Por exemplo, se você gravar uma hora constante na variável DATE_AND_TIME, o valor da data será 0 (1970/01/01).
(Exemplo): AddTo
| Operação | Bloco de destino | Bloco de origem |
| [AddTo] | Defina a variável DATE_AND_TIME1 para o bloco da variável. | Selecione [TIME_OF_DAY] e defina 00:15:00 para o bloco Constante. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, DATE_AND_TIME1, timeOfDay(00, 15, 00)); |
||
→ Se DATE_AND_TIME1 for 2024/10/01 12:34:56, quando o disparo ocorre, 00:15:00 no bloco de origem será adicionado e DATE_AND_TIME1 se tornará 2024/10/01 12:49:56.
Um único bit de dados é definido para a variável de destino.
(Exemplo): Set
| Operação | Bloco de destino | Bloco de origem |
| [Set] | Defina a variável BOOL1 para o bloco da variável. | Selecione [Int] e defina 1 para o bloco Constante. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, BOOL1, 1); |
||
→ BOOL1 está definido como ON quando o disparo ocorre.
Uma string é definida para a variável de destino.
(Exemplo): Set
| Operação | Bloco de destino | Bloco de origem |
| [Set] | Defina a variável STRING1 para o bloco da variável. | Selecione [STRING] e defina "DEF" para o bloco Constante. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, STRING1, "DEF"); |
||
→ STRING1 está definido como DEF quando o disparo ocorre.
(Exemplo): AddTo
| Operação | Bloco de destino | Bloco de origem |
| [AddTo] | Defina a variável STRING1 para o bloco da variável. | Selecione [STRING] e defina "DEF" para o bloco Constante. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, STRING1, "DEF"); |
||
→ Se STRING1 for "AB", quando o disparo ocorre, "DEF" será adicionado ao bloco de origem e STRING1 se tornará "ABDEF".
Definir o valor do bloco de origem para a propriedade de origem no bloco de destino.
(Exemplo 1)
| Operação | Bloco de destino | Bloco de origem |
| [Set] | Definir a propriedade de origem do objeto Rectangle1.Thickness para o bloco do objeto. | Selecione [Int] e defina 10 para o bloco Constante. |
BlocoTextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $GraphicObject.Rectangle1.Thickness, 10); |
||
→ A espessura da borda do Rectangle1 altera para 10 quando o disparo ocorre.
(Exemplo 2)
| Operação | Bloco de destino | Bloco de origem |
| [Set] | Definir a propriedade de origem do objeto Lamp1.Interlock para o bloco do objeto. | Selecione [Int] e defina 0 para o bloco Constante. |
BlocoTextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $GraphicObject.Lamp1.Interlock, 0); |
||
→ Lamp1 estado de bloqueio está definido como OFF quando o disparo ocorre.
Definir o valor do bloco de origem para a propriedade de origem no bloco de destino.
(Exemplo)
| Operação |
Bloco de destino |
Bloco de origem |
| [Set] | Definir a propriedade de origem da variável INT1.Value para o bloco da variável. | Selecione [Int] e defina 1 para o bloco Constante. |
BlocoTextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, INT1.Value, 1); |
||
→ INT1.Value está definido como 1 quando o disparo ocorre.
Definir o valor do bloco de origem para a propriedade de origem no bloco de destino.
(Exemplo 1)
Definir uma data para o terminal.
| Operação | Bloco de destino | Bloco de origem |
| [Set] | Definir a propriedade de origem do terminal Target01.DateAndTime.Data para o bloco do terminal. | Selecione [Date] e defina 10/17/2017 para o bloco Constante. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Date, date(2017, 10, 17)); |
||
→ Unidade de display está definido como 17/10/2017 quando o disparo ocorre.
(Exemplo 2)
Definir a data e a hora da unidade de display para a mesma data e hora do dispositivo externo.
(Exemplo 2- 1)
Definir a data e a hora (ano, mês, dia, horas, minutos, segundos) do dispositivo externo para as variáveis inteiras INT1 a INT6, respectivamente.
| Operação | Bloco de destino | Bloco de origem |
| [Set] |
Definir a propriedade de origem do terminal para o bloco do terminal. Target01.DateAndTime.Year Target01.DateAndTime.Month Target01.DateAndTime.Day Target01.DateAndTime.Hour Target01.DateAndTime.Minute Target01.DateAndTime.Second |
Definir a variável INT1 para INT6 para o bloco da variável. |
Bloco![]() TextoonScheduledDay(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); }); |
||
→ A data e a hora na unidade de display são definidas para a data e a hora do dispositivo externo às 23:00 todos os dias.
(Exemplo 2- 2)
Definir a data e a hora do dispositivo externo em uma variável Var1 DATE_AND_TIME como o número de segundos (inteiro de 32 bits) a partir de 1970/01/01 00:00:00 UTC. Para a relação entre o valor de Var1 e a data e a hora, consulte o seguinte.
HORA, DATA, HORA_DO_DIA, DATA_E_HORA
| Operação | Bloco de destino | Bloco de origem |
| [Set] | Definir a propriedade de origem do terminal Target01.DateAndTime.DateTime para o bloco do terminal. | Defina a variável Var1 para o bloco da variável. |
Bloco![]() TextoonScheduledDay(23, 0, () => { changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.DateTime, Var1.Value); }); |
||
→ A data e a hora na unidade de display são definidas para a data e a hora do dispositivo externo às 23:00 todos os dias.
(Exemplo 3)
Desligue a luz de fundo da unidade de display.
| Operação | Bloco de destino | Bloco de origem |
| [Set] | Definir a propriedade de origem do terminal Target01.Preferences.BacklightOff para o bloco do terminal. | Definir a variável BOOL1 com valor 1 para o bloco da variável. |
Bloco![]() TextochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.Preferences.BacklightOff, BOOL1.Value); |
||
→ A luz de fundo da unidade de display desliga quando o disparo ocorre.