# Changement de valeur

L'opération Changement de valeur change la valeur et la valeur et la propriété de Variable, Objet et Cible.

##### Bloc

##### Texte

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

1 : Opération

2 : Destination

3 : When over

Définit l'opération lorsque la valeur dépasse la plage.

Paramètre dans [When over] :

- [Loop] : la partie qui dépasse la plage boucle vers la valeur minimum ou maximum. Par exemple, si la plage de valeurs est comprise entre 0 et 10, l'ajout de 7 à une valeur actuelle de 5 donnera 1. La seule exception est lorsque l'opération est [Set]. Dans ce cas, lorsque vous écrivez une valeur qui dépasse la plage de valeurs, la valeur actuelle reste inchangée.
- [Stop] : la valeur est fixée soit à la valeur minimale, soit à la valeur maximale.

Remarque : [Loop] ne prend pas en charge les variables de type de données Real, ce qui arrêtera la boucle lorsque la valeur maximum est atteinte.

4 : Source

### Opération

[Set] | ##### Bloc [Set] ##### Texte '$Enums.AssignmentOperator.Set' Ou '=' | Écrit la variable, la constante ou l'expression spécifiée dans le bloc source connecté au bloc de destination.
[AddTo] | ##### Bloc [AddTo] ##### Texte '$Enums.AssignmentOperator.AddTo' Or'+=' | Ajoute la variable, la constante ou l'expression spécifiée dans le bloc source connecté au bloc de destination.
[SubTo] | ##### Bloc [SubTo] ##### Texte '$Enums.AssignmentOperator.SubTo' Ou '-=' | Soustrait la variable, la constante ou l'expression spécifiée dans le bloc source connecté au bloc de destination.
[MulTo] | ##### Bloc [MulTo] ##### Texte '$Enums.AssignmentOperator.MulTo' Ou'*=' | Multiplie la valeur du bloc de destination par la variable, la constante ou l'expression spécifiée dans le bloc source, et copie le résultat dans le bloc de destination.
[DivTo] | ##### Bloc [DivTo] ##### Texte '$Enums.AssignmentOperator.DivTo' Ou'/=' | Divise la valeur du bloc de destination par la variable, la constante ou l'expression spécifiée dans le bloc source, et copie le résultat dans le bloc de destination.
[AndTo] | ##### Bloc [AndTo] ##### Texte '$Enums.AssignmentOperator.AndTo' Ou'&=' | Exécute l'opération AND (produit logique) entre l'entier ou la variable spécifiée dans le bloc source et le bloc de destination et copie le résultat vers le bloc de destination.
[OrTo] | ##### Bloc [OrTo] ##### Texte '$Enums.AssignmentOperator.OrTo' Ou'|=' | Exécute l'opération OR (somme logique) entre l'entier ou la variable spécifiée dans le bloc source et le bloc de destination et copie le résultat vers le bloc de destination.
[XorTo] | ##### Bloc [XorTo] ##### Texte '$Enums.AssignmentOperator.XorTo' Ou'^=' | Exécute l'opération XOR (somme logique exclusive) entre l'entier ou la variable spécifiée dans le bloc source et le bloc de destination et copie le résultat vers le bloc de destination.
[NandTo] | ##### Bloc [NandTo] ##### Texte '$Enums.AssignmentOperator.NandTo' | Exécute l'opération NAND (produit logique suivi par NOT) entre l'entier ou la variable spécifiée dans le bloc source et le bloc de destination et copie le résultat vers le bloc de destination.
[NorTo] | ##### Bloc [NorTo] ##### Texte '$Enums.AssignmentOperator.NorTo' | Exécute l'opération NOR (somme logique suivi de l'invertisseur) entre l'entier ou de la variable spécifiée dans le bloc source et le bloc de destination et copie le résultat vers le bloc de destination.

Remarque :

- Vous ne pouvez pas utiliser une valeur négative dans un bloc de mathématique ou une opération de changement de valeur avec les opérateurs de division (/) ou de modulo (%).

- Lors de l'utilisation de 16 décimales ou plus dans une opération de changement de valeur (AddTo, SubTo, DivTo, MulTo), utilisez LINT ou ULINT comme variable de destination.

L'opération [Changement de valeur] permet de définir une variable ou une propriété source comme destination.

Masquer Afficher

1. Changement de la valeur de la variable - ENTIER
2. Changement de la valeur de la variable - DATE ET HEURE
3. Changement de la valeur de la variable - BOOL
4. Changement de la valeur de la variable - STRING
5. Changement de la valeur de la propriété source de l'objet
6. Changement de la valeur de la propriété source de la variable
7. Changement de valeur de propriété source cible

## Changement de la valeur de la variable - ENTIER

Fixe la valeur du bloc source à la variable du bloc de destination.

(Exemple) : Set

Opération | Bloc de destination | Bloc source
[Set] | Définissez la variable INT1 sur le bloc de variable. | Sélectionnez [Int] et définissez 5 sur le bloc de constante.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, INT1, 5);

→ INT1 est défini sur 5 lors de l'exécution du script.

(Exemple) : AddTo

Opération | Bloc de destination | Bloc source
[AddTo] | Définissez la variable INT1 sur le bloc de variable. | Sélectionnez [Int] et définissez 7 sur le bloc de constante.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, INT1, 7);

→ Si INT1 est égal à 3 lorsque le script est exécuté, 7 du bloc source est ajouté et INT1 devient 10.

(Exemple) : SubTo

Opération | Bloc de destination | Bloc source
[SubTo] | Définissez la variable INT1 sur le bloc de variable. | Sélectionnez [Int] et définissez 3 sur le bloc de constante.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.SubTo, INT1, 3);

→ Si INT1 est 5 lorsque le script est exécuté, la valeur 3 dans le bloc source est soustraite et INT1 devient 2.

(Exemple) : DivTo

Opération | Bloc de destination | Bloc source
[DivTo] | Définissez la variable INT1 sur le bloc de variable. | Sélectionnez [Int] et définissez 2 sur le bloc de constante.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.DivTo, INT1, 2);

→ Si INT1 est 5 lorsque le script est exécuté, sa valeur est divisée par la valeur du bloc source de 2 et INT1 devient 2. Si la valeur est de type entier, la valeur décimale est tronquée.

(Exemple) : MulTo

Opération | Bloc de destination | Bloc source
[MulTo] | Définissez la variable INT1 sur le bloc de variable. | Sélectionnez [Int] et définissez 5 sur le bloc de constante.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.MulTo, INT1, 5);

→ Si INT1 est 3 lorsque le script est exécuté, sa valeur est multipliée par la valeur du bloc source de 5 et INT1 devient 15.

(Exemple) : AndTo

Opération | Bloc de destination | Bloc source
[AndTo] | Définissez la variable SINT1 sur le bloc de variable. | Définissez la variable SINT2 sur le bloc de variable.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AndTo, SINT1, SINT2);

→ Si SINT1 est 3 (binaire : 00000011) et SINT2 est 5 (binaire : 00000101), SINT1 sera 1 (binaire : 00000001) lorsque le déclenchement se produira.

L'expression logique convertit la valeur du bloc de destination et du bloc source en nombres binaires et calcule le produit logique à chaque chiffre. Remettez le résultat à la base d'origine et placez-le dans le bloc de destination.

(Exemple) : OrTo

Opération | Bloc de destination | Bloc source
[OrTo] | Définissez la variable SINT1 sur le bloc de variable. | Définissez la variable SINT2 sur le bloc de variable.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.OrTo, SINT1, SINT2);

→ Si SINT1 est 3 (binaire : 00000011) et SINT2 est 5 (binaire : 00000101), SINT1 sera 7 (binaire : 00000111) lorsque le déclenchement se produira.

L'expression logique convertit la valeur du bloc de destination et du bloc source en nombres binaires et calcule la somme logique à chaque chiffre. Remettez le résultat à la base d'origine et placez-le dans le bloc de destination.

(Exemple) : XorTo

Opération | Bloc de destination | Bloc source
[XorTo] | Définissez la variable SINT1 sur le bloc de variable. | Définissez la variable SINT2 sur le bloc de variable.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.XorTo, SINT1, SINT2);

→ Si SINT1 est 3 (binaire : 00000011) et SINT2 est 5 (binaire : 00000101), SINT1 sera 6 (binaire : 00000110) lorsque le déclenchement se produira.

L'expression logique convertit la valeur du bloc de destination et du bloc source en nombres binaires et calcule la somme logique exclusive à chaque chiffre. Remettez le résultat à la base d'origine et placez-le dans le bloc de destination.

(Exemple) : NandTo

Opération | Bloc de destination | Bloc source
[NandTo] | Définissez la variable SINT1 sur le bloc de variable. | Définissez la variable SINT2 sur le bloc de variable.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.NandTo, SINT1, SINT2);

→ Si SINT1 est 3 (binaire : 00000011) et SINT2 est 5 (binaire : 00000101), SINT1 sera -2 (binaire : 11111110) lorsque le déclenchement se produira.

L'expression logique convertit la valeur du bloc de destination et du bloc source en nombres binaires et calcule le produit logique négatif à chaque chiffre. Remettez le résultat à la base d'origine et placez-le dans le bloc de destination.

(Exemple) : NorTo

Opération | Bloc de destination | Bloc source
[NorTo] | Définissez la variable SINT1 sur le bloc de variable. | Définissez la variable SINT2 sur le bloc de variable.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.NorTo, SINT1, SINT2);

→ Si SINT1 est 3 (binaire : 00000011) et SINT2 est 5 (binaire : 00000101), SINT1 sera -8 (binaire : 11111000) lorsque le déclenchement se produira.

L'expression logique convertit la valeur du bloc de destination et du bloc source en nombres binaires et calcule une somme logique suivie d'un inverseur à chaque chiffre. Remettez le résultat à la base d'origine et placez-le dans le bloc de destination.

## Changement de la valeur de la variable - DATE ET HEURE

Définissez les valeurs Date et Heure de la variable source sur la variable de destination.

Les variables DATE, TIME_OF_DAY et DATE_AND_TIME prennent en charge les opérateurs [Set] et [AddTo].

Voici une illustration du comportement de l'opération lorsque le bloc source et le bloc de destination sont des variables DATE, TIME_OF_DAY ou DATE_AND_TIME :

Opération | Bloc source | Bloc de destination | Fonctionnement
[Set] | DATE | DATE | Définir la date.
TIME_OF_DAY | Aucune valeur n'est définie.
DATE_AND_TIME | Définir la date seulement.
TIME_OF_DAY | DATE | Aucune valeur n'est définie.
TIME_OF_DAY | Définir l'heure.
DATE_AND_TIME | Définir l'heure seulement.
DATE_AND_TIME | DATE | Définir la date seulement.
TIME_OF_DAY | Définir l'heure seulement.
DATE_AND_TIME | Définit la date et l'heure.
[AddTo] | DATE | DATE | Ajouter la date.
TIME_OF_DAY | Aucune valeur n'est définie.
DATE_AND_TIME | Ajouter la date seulement.
TIME_OF_DAY | DATE | Aucune valeur n'est définie.
TIME_OF_DAY | Ajouter l’heure
DATE_AND_TIME | Ajouter l’heure seulement.
DATE_AND_TIME | DATE | Ajouter la date seulement.
TIME_OF_DAY | Ajouter l’heure seulement.
DATE_AND_TIME | Ajouter la date et l’heure

(Exemple) : Set

Opération | Bloc de destination | Bloc source
[Set] | Définissez la variable TIME_OF_DAY1 sur le bloc de variable. | Sélectionnez [TIME_OF_DAY] et définissez 00:15:00 sur le bloc de constante.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, TIME_OF_DAY1, timeOfDay(00, 15, 00));

→ Lorsque le déclencheur se produit, l'heure dans TIME_OF_DAY1 est réglée sur 00:15:00.

Remarque : si un bloc source est réglé sur une date ou une heure [Constante], toute valeur de date ou d'heure non incluse dans la constante sera égale à zéro. Par exemple, si vous écrivez une heure constante dans la variable DATE_AND_TIME, la valeur de la date sera 0 (1970/01/01).

(Exemple) : AddTo

Opération | Bloc de destination | Bloc source
[AddTo] | Définissez la variable DATE_AND_TIME1 sur le bloc de variable. | Sélectionnez [TIME_OF_DAY] et définissez 00:15:00 sur le bloc de constante.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, DATE_AND_TIME1, timeOfDay(00, 15, 00));

→ Si DATE_AND_TIME1 est 2024/10/01 12:34:56, lorsque le déclencheur se produit, 00:15:00 dans le bloc source est ajouté et DATE_AND_TIME1 devient 2024/10/01 12:49:56.

## Changement de la valeur de la variable - BOOL

Un seul bit de données est défini sur la variable de destination.

(Exemple) : Set

Opération | Bloc de destination | Bloc source
[Set] | Définissez la variable BOOL1 sur le bloc de variable. | Sélectionnez [Int] et définissez 1 sur le bloc de constante.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, BOOL1, 1);

→ BOOL1 est défini sur ON lorsque le déclenchement se produit.

## Changement de la valeur de la variable - STRING

Une chaîne est déinie sur la variable de destination.

(Exemple) : Set

Opération | Bloc de destination | Bloc source
[Set] | Définissez la variable STRING1 sur le bloc de variable. | Sélectionnez [STRING] et définissez "DEF" sur le bloc de constante.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, STRING1, "DEF");

→ STRING1 est défini sur DEF lorsque le déclenchement se produit.

(Exemple) : AddTo

Opération | Bloc de destination | Bloc source
[AddTo] | Définissez la variable STRING1 sur le bloc de variable. | Sélectionnez [STRING] et définissez "DEF" sur le bloc de constante.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.AddTo, STRING1, "DEF");

→ Si STRING1 est "AB", lorsque le déclenchement se produit, "DEF" est ajouté au bloc source et STRING1 devient "ABDEF".

## Changement de la valeur de la propriété source de l'objet

Définir la valeur du bloc source à la propriété source du bloc de destination.

(Exemple 1)

Opération | Bloc de destination | Bloc source
[Set] | Définissez la propriété source de Rectangle1.Thickness sur le bloc d'objet. | Sélectionnez [Int] et définissez 10 sur le bloc de constante.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $GraphicObject.Rectangle1.Thickness, 10);

→ L'épaisseur de la bordure Rectangle1 change à 10 lorsque le déclenchement a lieu.

(Exemple 2)

Opération | Bloc de destination | Bloc source
[Set] | Définissez la propriété source de Lamp1.Interlock sur le bloc d'objet. | Sélectionnez [Int] et définissez 0 sur le bloc de constante.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $GraphicObject.Lamp1.Interlock, 0);

→ L'état de verrouillage Lamp1 est défini sur OFF lorsque le déclenchement se produit.

## Changement de la valeur de la propriété source de la variable

Définir la valeur du bloc source à la propriété source du bloc de destination.

(Exemple)

Opération | Bloc de destination | Bloc source
[Set] | Définissez la propriété source de la variable INT1.Value dans le bloc de variable. | Sélectionnez [Int] et définissez 1 sur le bloc de constante.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, INT1.Value, 1);

→ INT1.Value est défini sur 1 lorsque le déclenchement se produit.

## Changement de valeur de propriété source cible

Définir la valeur du bloc source à la propriété source du bloc de destination.

(Exemple 1)

Fixez une date pour l'objectif.

Opération | Bloc de destination | Bloc source
[Set] | Définissez la propriété source de la cible Target01.DateAndTime.Date sur le bloc de cible. | Sélectionnez [Date] et définissez 10/17/2017 sur le bloc de constante.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.Date, date(2017, 10, 17));

→ L'afficheur est défini sur 10/17/2017 lorsque le déclenchement a lieu.

(Exemple 2)

Définissez la date et l'heure de l'afficheur sur la même date et la même heure que celles du périphérique externe.

(Exemple 2-1)

Définissez la date et l'heure (année, mois, jour, heures, minutes, secondes) du périphérique externe sur les variables entières INT1 à INT6, respectivement.

Opération | Bloc de destination | Bloc source
[Set] | Définissez la propriété source de la cible sur le bloc de cible. Target01.DateAndTime.Year Target01.DateAndTime.Month Target01.DateAndTime.Day Target01.DateAndTime.Hour Target01.DateAndTime.Minute Target01.DateAndTime.Second | Définissez la variable INT1 sur INT6 dans le bloc de variable.
##### Bloc ##### Texte 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 date et l'heure de l'afficheur sont définies sur la date et l'heure du périphérique externe à 23h00 tous les jours.

(Exemple 2-2)

Définissez la date et l'heure du périphérique externe dans une variable DATE_AND_TIME Var1 en tant que nombre de secondes (entier de 32 bits) par rapport au 1970/01/01 00:00:00 UTC. La relation entre la valeur de Var1 et la date et l'heure est décrite ci-dessous.

TIME, DATE, TIME_OF_DAY, DATE_AND_TIME

Opération | Bloc de destination | Bloc source
[Set] | Définissez la propriété source de la cible Target01.DateAndTime.DateTime sur le bloc de cible. | Définissez la variable Var1 sur le bloc de variable.
##### Bloc ##### Texte onScheduledDay(23, 0, () => { changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.DateAndTime.DateTime, Var1.Value); });

→ La date et l'heure de l'afficheur sont définies sur la date et l'heure du périphérique externe à 23h00 tous les jours.

(Exemple 3)

Éteindre le rétroéclairage de l'afficheur.

Opération | Bloc de destination | Bloc source
[Set] | Définissez la propriété source de la cible Target01.Preferences.BacklightOff sur le bloc de cible. | Définissez la variable BOOL1 avec la valeur 1 dans le bloc de variable.
##### Bloc ##### Texte changeValue($Enums.WhenOver.Loop, $Enums.AssignmentOperator.Set, $Target.Target01.Preferences.BacklightOff, BOOL1.Value);

→ Le rétroéclairage de l'afficheur s'éteint lorsque le déclenchement a lieu.