Alterar valor

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

Bloco

Texto

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]:

Observação: [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

Operação

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

Ou '='

Grava a variável, constante ou expressão especificada no bloco da origem para o bloco de destino.

[AddTo]

Bloco

[AddTo]

Texto
'$Enums.AssignmentOperator.AddTo'

Or'+='

Adiciona a variável, constante ou expressão especificada no bloco da origem para o bloco de destino.

[SubTo]

Bloco

[SubTo]

Texto
'$Enums.AssignmentOperator.SubTo'

Ou '-='

Subtrai a variável, constante ou expressão especificada no bloco de origem para o bloco de destino.

[MulTo]

Bloco

[MulTo]

Texto
'$Enums.AssignmentOperator.MulTo'

Ou'*='

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
'$Enums.AssignmentOperator.DivTo' Ou'/='
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
'$Enums.AssignmentOperator.AndTo' Ou'&='
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
'$Enums.AssignmentOperator.OrTo' Ou'|='
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]
Bloco
[XorTo]
Texto
'$Enums.AssignmentOperator.XorTo' Ou'^='
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
'$Enums.AssignmentOperator.NandTo'
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
'$Enums.AssignmentOperator.NorTo'
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.

 

Observação:

  • 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.

 

Alteração do valor da variável - INTEIRO

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.
Bloco
Texto

changeValue($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.
Bloco
Texto

changeValue($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
Texto

changeValue($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
Texto

changeValue($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
Texto

changeValue($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
Texto

changeValue($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
Texto

changeValue($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
Texto

changeValue($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
Texto

changeValue($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
Texto

changeValue($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.

Alteração do valor da variável - DATA E HORA

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
Texto

changeValue($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.

Observação: 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
Texto

changeValue($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.

Alteração do valor da variável - BOOL

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
Texto

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

BOOL1 está definido como ON quando o disparo ocorre.

Alteração do valor da variável - STRING

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
Texto

changeValue($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
Texto

changeValue($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".

Alteração do valor da propriedade de origem do objeto

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.
Bloco
Texto

changeValue($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.
Bloco
Texto

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

Lamp1 estado de bloqueio está definido como OFF quando o disparo ocorre.

Alteração do valor da propriedade de origem da variável

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.  
Bloco
Texto

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

INT1.Value está definido como 1 quando o disparo ocorre.

Alteração do valor da propriedade de origem do terminal

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
Texto

changeValue($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
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);

});

→ 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
Texto

onScheduledDay(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
Texto

changeValue($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.