L'operazione Cambio valore cambia il valore e le proprietà di Variabile, Oggetto e Target.

changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, TARGET, EXPRESSION);
3 1 2 4
1: Operazione
2: Destinazione
3: When over
Impostare l'operazione quando il valore supera l'intervallo.
Impostazione in [When over]:
[Loop] non supporta le variabili di tipo dati Reale che provocano l’arresto dell’anello quando si raggiunge il valore massimo.
4: Sorgente
| [Set] |
BloccoTestoO '=' |
Scrive le variabili, le costanti o le espressioni specificate nel blocco sorgente sul blocco destinazione. |
|
[AddTo] |
Blocco[AddTo] TestoOr'+=' |
Aggiunge le variabili, le costanti o le espressioni specificate nel blocco sorgente sul blocco destinazione. |
|
[SubTo] |
Blocco[SubTo] TestoO '-=' |
Sottrae le variabili, le costanti o le espressioni specificate nel blocco sorgente sul blocco destinazione. |
|
[MulTo] |
Blocco[MulTo] TestoO'*=' |
Moltiplica il valore del blocco di destinazione per la variabile, la costante o l'espressione specificata nel blocco sorgente e copia il risultato nel blocco di destinazione. |
|
[DivTo] |
Blocco[DivTo] Testo |
Divide il valore del blocco di destinazione per la variabile, la costante o l'espressione specificata nel blocco sorgente e copia il risultato nel blocco di destinazione. |
|
[AndTo] |
Blocco[AndTo] Testo |
Esegue l'operazione AND (prodotto logico) tra il numero intero o la variabile specificata nel blocco sorgente e nel blocco destinazione e copia il risultato sul blocco destinazione. |
|
[OrTo] |
Blocco[OrTo] Testo |
Esegue l'operazione OR (somma logico) tra il numero intero o la variabile specificata nel blocco sorgente e nel blocco destinazione e copia il risultato sul blocco destinazione. |
| [XorTo] |
BloccoTesto |
Esegue l'operazione XOR (somma logica esclusiva) tra il numero intero o la variabile specificata nel blocco sorgente e nel blocco destinazione e copia il risultato sul blocco destinazione. |
|
[NandTo] |
Blocco[NandTo] Testo |
Esegue l'operazione NAND (prodotto logico seguito da NOT) tra il numero intero o la variabile specificata nel blocco sorgente e nel blocco destinazione e copia il risultato sul blocco destinazione. |
|
[NorTo] |
Blocco[NorTo] Testo |
Esegue l'operazione NOR (somma logica seguita da invertitore) tra il numero intero o la variabile specificata nel blocco sorgente e nel blocco destinazione e copia il risultato sul blocco destinazione. |
In un blocco Math non si possono utilizzare valori negativi e le operazioni di modifica valore con gli operatori matematici divisione (/) o modulo (%).
Se nell’operazione di modifica valore (AddTo, SubTo, DivTo, MulTo) si usano 16 o più cifre decimali, usare LINT o ULINT come variabile destinazione.
L'operazione [Cambio valore] consente di impostare come destinazione una variabile o una proprietà sorgente.
Impostare il valore del blocco sorgente sulla variabile del blocco di destinazione.
(Esempio): Set
| Operazione | Blocco destinazione | Blocco sorgente |
| [Set] | Impostare la variabile INT1 sul blocco variabili. | Selezionare [Int] e impostare 5 nel blocco Costanti. |
BloccoTestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, INT1, 5); |
||
→ INT1 è impostato su 5 quando viene eseguito lo script.
(Esempio): AddTo
| Operazione | Blocco destinazione | Blocco sorgente |
| [AddTo] | Impostare la variabile INT1 sul blocco variabili. | Selezionare [Int] e impostare 7 nel blocco Costanti. |
BloccoTestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, INT1, 7); |
||
→ Se INT1 è 3 quando viene eseguito lo script, si aggiunge il 7 del blocco sorgente e INT1 diventa 10.
(Esempio): SubTo
| Operazione | Blocco destinazione | Blocco sorgente |
| [SubTo] | Impostare la variabile INT1 sul blocco variabili. | Selezionare [Int] e impostare 3 nel blocco Costanti. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.SubTo, INT1, 3); |
||
→ Se INT1 è 5 quando viene eseguito lo script, il valore 3 nel blocco sorgente viene sottratto e INT1 diventa 2.
(Esempio): DivTo
| Operazione | Blocco destinazione | Blocco sorgente |
| [DivTo] | Impostare la variabile INT1 sul blocco variabili. | Selezionare [Int] e impostare 2 nel blocco Costanti. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.DivTo, INT1, 2); |
||
→ Se INT1 è 5 quando viene eseguito lo script, il suo valore viene diviso per il valore di 2 del blocco sorgente e INT1 diventa 2. Se il valore è di tipo intero, il valore decimale viene troncato.
(Esempio): MulTo
| Operazione | Blocco destinazione | Blocco sorgente |
| [MulTo] | Impostare la variabile INT1 sul blocco variabili. | Selezionare [Int] e impostare 5 nel blocco Costanti. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.MulTo, INT1, 5); |
||
→ Se INT1 è 3 quando viene eseguito lo script, il suo valore viene moltiplicato per il valore del blocco sorgente di 5 e INT1 diventa 15.
(Esempio): AndTo
| Operazione | Blocco destinazione | Blocco sorgente |
| [AndTo] | Impostare la variabile SINT1 sul blocco variabili. | Impostare la variabile SINT2 sul blocco variabili. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AndTo, SINT1, SINT2); |
||
→ Se SINT1 è 3 (binario: 00000011) e SINT2 è 5 (binario: 00000101), SINT1 sarà 1 (binario: 00000001) quando si verifica l'attivazione.
L'espressione logica converte il valore del blocco di destinazione e del blocco sorgente in numeri binari e calcola il prodotto logico per ogni cifra. Riportare il risultato al radicale iniziale e impostarlo sul blocco di destinazione.
(Esempio): OrTo
| Operazione | Blocco destinazione | Blocco sorgente |
| [OrTo] | Impostare la variabile SINT1 sul blocco variabili. | Impostare la variabile SINT2 sul blocco variabili. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.OrTo, SINT1, SINT2); |
||
→ Se SINT1 è 3 (binario: 00000011) e SINT2 è 5 (binario: 00000101), SINT1 sarà 7 (binario: 00000111) quando si verifica l'attivazione.
L'espressione logica converte il valore del blocco di destinazione e del blocco sorgente in numeri binari e calcola la somma logica per ogni cifra. Riportare il risultato al radicale iniziale e impostarlo sul blocco di destinazione.
(Esempio): XorTo
| Operazione | Blocco destinazione | Blocco sorgente |
| [XorTo] | Impostare la variabile SINT1 sul blocco variabili. | Impostare la variabile SINT2 sul blocco variabili. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.XorTo, SINT1, SINT2); |
||
→ Se SINT1 è 3 (binario: 00000011) e SINT2 è 5 (binario: 00000101), SINT1 sarà 6 (binario: 00000110) quando si verifica l'attivazione.
L'espressione logica converte il valore del blocco di destinazione e del blocco sorgente in numeri binari e calcola la somma logica esclusiva per ogni cifra. Riportare il risultato al radicale iniziale e impostarlo sul blocco di destinazione.
(Esempio): NandTo
| Operazione | Blocco destinazione | Blocco sorgente |
| [NandTo] | Impostare la variabile SINT1 sul blocco variabili. | Impostare la variabile SINT2 sul blocco variabili. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.NandTo, SINT1, SINT2); |
||
→ Se SINT1 è 3 (binario: 00000011) e SINT2 è 5 (binario: 00000101), SINT1 sarà -2 (binario: 11111110) quando si verifica l'attivazione.
L'espressione logica converte il valore del blocco di destinazione e del blocco sorgente in numeri binari e calcola il prodotto logico negativo per ogni cifra. Riportare il risultato al radicale iniziale e impostarlo sul blocco di destinazione.
(Esempio): NorTo
| Operazione | Blocco destinazione | Blocco sorgente |
| [NorTo] | Impostare la variabile SINT1 sul blocco variabili. | Impostare la variabile SINT2 sul blocco variabili. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.NorTo, SINT1, SINT2); |
||
→ Se SINT1 è 3 (binario: 00000011) e SINT2 è 5 (binario: 00000101), SINT1 sarà -8 (binario: 11111000) quando si verifica l'attivazione.
L'espressione logica converte il valore del blocco di destinazione e del blocco sorgente in numeri binari e calcola la somma logica seguita da un invertitore per ogni cifra. Riportare il risultato al radicale iniziale e impostarlo sul blocco di destinazione.
Impostare il valore di giorno e ora dalla variabile sorgente nella variabile di destinazione.
Le variabili DATE, TIME_OF_DAY e DATE_AND_TIME supportano gli operatori [Set] e [AddTo].
Di seguito viene illustrato il comportamento dell’operazione quando il Blocco sorgente e il Blocco destinazione sono le variabili DATE, TIME_OF_DAY, o DATE_AND_TIME:
| Operazione | Blocco sorgente | Blocco destinazione | Comportamento |
| [Set] | DATE | DATE | Impostazione giorno. |
| TIME_OF_DAY | Nessun valore impostato. | ||
| DATE_AND_TIME | Impostare solo il giorno. | ||
| TIME_OF_DAY | DATE | Nessun valore impostato. | |
| TIME_OF_DAY | Impostare l’ora. | ||
| DATE_AND_TIME | Impostare solo l’ora. | ||
| DATE_AND_TIME | DATE | Impostare solo il giorno. | |
| TIME_OF_DAY | Impostare solo l’ora. | ||
| DATE_AND_TIME | Impostare giorno e ora. | ||
| [AddTo] | DATE | DATE | Aggiungere il giorno. |
| TIME_OF_DAY | Nessun valore impostato. | ||
| DATE_AND_TIME | Aggiungere solo il giorno. | ||
| TIME_OF_DAY | DATE | Nessun valore impostato. | |
| TIME_OF_DAY | Aggiungere l'ora. | ||
| DATE_AND_TIME | Aggiungere solo l'ora. | ||
| DATE_AND_TIME | DATE | Aggiungere solo il giorno. | |
| TIME_OF_DAY | Aggiungere solo l'ora. | ||
| DATE_AND_TIME | Aggiungere data e ora. |
(Esempio): Set
| Operazione | Blocco destinazione | Blocco sorgente |
| [Set] | Impostare la variabile TIME_OF_DAY1 sul blocco variabili. | Selezionare [TIME_OF_DAY] e impostare 00:15:00 nel blocco Costanti. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, TIME_OF_DAY1, timeOfDay(00, 15, 00)); |
||
→ Quando si verifica l'attivazione, l'ora in TIME_OF_DAY1 è impostata su 00:15:00.
se il blocco sorgente è impostato su un giorno o un'ora [costante], qualsiasi valore di giorno o di ora non incluso nella costante sarà pari a zero. Ad esempio, se nella variabile DATE_AND_TIME si scrive un'ora costante, il valore del giorno sarà 0 (1970/01/01).
(Esempio): AddTo
| Operazione | Blocco destinazione | Blocco sorgente |
| [AddTo] | Impostare la variabile DATE_AND_TIME1 sul blocco variabili. | Selezionare [TIME_OF_DAY] e impostare 00:15:00 nel blocco Costanti. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, DATE_AND_TIME1, timeOfDay(00, 15, 00)); |
||
→ Se DATE_AND_TIME1 è 2024/10/01 12:34:56, quando scatta il trigger nel blocco sorgente vengono aggiunti 00:15:00 e DATE_AND_TIME1 diventa 2024/10/01 12:49:56.
Nella variabile di destinazione viene impostato un solo bit di dati.
(Esempio): Set
| Operazione | Blocco destinazione | Blocco sorgente |
| [Set] | Impostare la variabile BOOL1 sul blocco variabili. | Selezionare [Int] e impostare 1 nel blocco Costanti. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, BOOL1, 1); |
||
→ BOOL1 è impostata su ON quando si attiva il trigger.
Nella variabile di destinazione viene impostata una stringa.
(Esempio): Set
| Operazione | Blocco destinazione | Blocco sorgente |
| [Set] | Impostare la variabile STRING1 sul blocco variabili. | Selezionare [STRING] e impostare "DEF" nel blocco Costanti. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, STRING1, "DEF"); |
||
→ STRING1 è impostata su DEF quando si attiva il trigger.
(Esempio): AddTo
| Operazione | Blocco destinazione | Blocco sorgente |
| [AddTo] | Impostare la variabile STRING1 sul blocco variabili. | Selezionare [STRING] e impostare "DEF" nel blocco Costanti. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, STRING1, "DEF"); |
||
→ Se STRING1 è "AB", quando scatta il trigger, al blocco sorgente viene aggiunto "DEF" e STRING1 diventa "ABDEF".
Impostare il valore nel blocco sorgente sulla proprietà della sorgente nel blocco di destinazione.
(Esempio 1)
| Operazione | Blocco destinazione | Blocco sorgente |
| [Set] | Impostare la proprietà della sorgente oggetto Rectangle1.Thickness sul blocco Oggetto. | Selezionare [Int] e impostare 10 nel blocco Costanti. |
BloccoTestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $GraphicObject.Rectangle1.Thickness, 10); |
||
→ Lo spessore bordo del Rectangle1 diventa 10 quando scatta il trigger.
(Esempio 2)
| Operazione | Blocco destinazione | Blocco sorgente |
| [Set] | Impostare la proprietà della sorgente oggetto Lamp1.Interlock sul blocco Oggetto. | Selezionare [Int] e impostare 0 nel blocco Costanti. |
BloccoTestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $GraphicObject.Lamp1.Interlock, 0); |
||
→ Lo stato di interblocco Lamp1 è impostato su OFF quando si attiva il trigger.
Impostare il valore nel blocco sorgente sulla proprietà della sorgente nel blocco di destinazione.
(Esempio)
| Operazione |
Blocco destinazione |
Blocco sorgente |
| [Set] | Impostare la proprietà della sorgente variabile INT1.Value sul blocco Variabile. | Selezionare [Int] e impostare 1 nel blocco Costanti. |
BloccoTestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, INT1.Value, 1); |
||
→ INT1.Value è impostata su 1 quando si attiva il trigger.
Impostare il valore nel blocco sorgente sulla proprietà della sorgente nel blocco di destinazione.
(Esempio 1)
Stabilire la data per il target.
| Operazione | Blocco destinazione | Blocco sorgente |
| [Set] | Impostare la proprietà sorgente Target01.DateAndTime.Date al blocco Target. | Selezionare [Date] e impostare 17/10/2017 nel blocco Costanti. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Date, date(2017, 10, 17)); |
||
→ Quando scatta il trigger, il visualizzatore è impostato su 17/10/2017.
(Esempio 2)
Impostare giorno e ora del visualizzatore sullo stesso giorno e ora del dispositivo esterno.
(Esempio 2- 1)
Impostare giorno e ora (anno, mese, giorno, ore, minuti, secondi) del dispositivo esterno rispettivamente sulle variabili intere da INT1 a INT6.
| Operazione | Blocco destinazione | Blocco sorgente |
| [Set] |
Impostare la proprietà sorgente target sul blocco Target. Target01.DateAndTime.Year Target01.DateAndTime.Month Target01.DateAndTime.Day Target01.DateAndTime.Hour Target01.DateAndTime.Minute Target01.DateAndTime.Second |
Impostare la variabile da INT1 a INT6 sul blocco Variabile. |
Blocco![]() TestoonScheduledDay(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); }); |
||
→ Giorno e ora del visualizzatore sono impostati su giorno e ora del dispositivo esterno alle 23:00 di ogni giorno.
(Esempio 2- 2)
Impostare giorno e ora del dispositivo esterno sulla variabile DATE_AND_TIME Var1 come numero di secondi (intero a 32 bit), a partire da 1970/01/01 00:00:00 UTC. Per la relazione tra il valore di Var1 e giorno e ora, fare riferimento a quanto segue.
TIME, DATE, TIME_OF_DAY, DATE_AND_TIME
| Operazione | Blocco destinazione | Blocco sorgente |
| [Set] | Impostare la proprietà sorgente target Target01.DateAndTime.DateTime sul blocco Target. | Impostare la variabile Var1 sul blocco variabili. |
Blocco![]() TestoonScheduledDay(23, 0, () => { changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.DateTime, Var1.Value); }); |
||
→ Giorno e ora del visualizzatore sono impostati su giorno e ora del dispositivo esterno alle 23:00 di ogni giorno.
(Esempio 3)
Spegnere la retroilluminazione del visualizzatore.
| Operazione | Blocco destinazione | Blocco sorgente |
| [Set] | Impostare la proprietà sorgente target Target01.Preferences.BacklightOff sul blocco Target. | Impostare la variabile BOOL1 con il valore 1 sul blocco Variabile. |
Blocco![]() TestochangeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.Preferences.BacklightOff, BOOL1.Value); |
||
→ Quando scatta il trigger, la retroilluminazione del visualizzatore si spegne.