Types de données

Il existe deux types de variables.

 

Remarque :

 

Variables de base

Voici une liste des types de variables de base.

Type de données

Description

BOOL Cette variable stocke 0 ou 1.
SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, BYTE Ces variables stockent des valeurs intégrales. Le traitement est plus rapide comparativement aux variables de type de point flottant.

WORD, DWORD, LWORD

Ces variables stockent des valeurs de type mot.

STRING, WSTRING

Ces variables stockent des chaînes de texte.

REAL, LREAL

Ces variables stockent des valeurs de point flottant. Les variables REAL peuvent stocker des valeurs plus élevées (comme les calculs et les constantes) que les variables de type entier.

TIME, DATE, TIME_OF_DAY, DATE_AND_TIME

Ces variables stockent des valeurs d'heure et de date.

SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, BYTE

Type de données

Signé

Longueur des données

Plage de données

SINT

Complément à 2

8 bits

-128...127

USINT

-

8 bits

0...255

INT

Complément à 2

16 bits

-32768...32767

UINT

-

16 bits

0...65535

DINT

Complément à 2

32 bits

-2147483648...2147483647

UDINT

-

32 bits

0...4294967295

LINT

Complément à 2

64 bits

-9223372036854775808...9223372036854775807

ULINT

-

64 bits

0...18446744073709551615

BYTE

-

8 bits

0...255

WORD, DWORD, LWORD

Type de données Longueur des données Plage de données

WORD

16 bits

0...65535

DWORD

32 bits

0...4294967295

LWORD

64 bits

0...18446744073709551615

STRING, WSTRING

Type de données Description

STRING

Stocke jusqu'à 512 octets de texte.

Lorsqu'on utilise une variable externe, l'encodage des chaînes est défini par la propriété [Encodage de chaîne] de la variable.

Les valeurs d'encodage de chaîne disponibles sont : UTF8, UTF16, ShiftJIS, CodePage850, GB2312, BIG5, KSC5601, CodePage1251, CodePage874 et CodePage1252.

Remarque :

  • Vous pouvez également configurer l'encodage de chaîne dans les propriétés de l'équipement. Le réglage de la propriété variable a la priorité sur la propriété de l'équipement. Dans la propriété [Encodage de chaîne] de la variable, sélectionnez [Type de paramètre d'équipement] pour appliquer le paramètre d'encodage de chaîne de l'équipement.
  • La propriété [Encodage de chaîne] s'affiche uniquement lorsque le pilote prend en charge l'encodage de chaîne.

WSTRING

Stocke jusqu'à 512 mots de texte double octet.

Vous pouvez utiliser le type de données WSTRING uniquement avec les variables externes.

L'encodage de chaîne est fixé à UTF16. Vous ne pouvez pas modifier le paramètre [Encodage de chaîne] dans les propriétés de la variable, et l'encodage dans les propriétés de l'équipement est ignoré.

Remarque :

  • Vous pouvez définir le nombre d'octets ou de mots que la variable peut stocker dans la propriété [Nombre d'octets ou de mots].

  • Reconnaît la fin de la chaîne de texte par NULL (0x00) ou [Nombre d'octets].

  • Pour une variable ou un pilote sélectionné, si vous utilisez un texte dont le code de caractère ne peut pas être converti par un [Encodage de chaîne], la fin de la chaîne est reconnue par le code de caractère.

  • La relation de l'ordre haut/bas pour les données de mot dépend du [Mode chaîne] dans le pilote sélectionné.

REAL, LREAL

Type de données Longueur des données Plage de données
REAL

32 bits

+/-3,402823E38 ... +/-1,1754944E-38

LREAL

64 bits

+/-4,19E-307 ... +/-1,67E308

Remarque :

  • La précision des variables REAL est limitée à sept chiffres. Si la précision données est requise (comme les opérations de comparaison), utilisez une variable de type entier.
    Exemples
    Exemple 1 : Pour la valeur 1.2345678, la valeur résultant est approximative car le huitième chiffre est supprimée (après 1.234567).
    Exemple 2 : La valeur 0.1 stockée dans une variable REAL pourrait produire 0.1000000014901161.

  • Si vous utilisez des variables REAL externes, vérifiez que le paramètre Ordre de mot double dans Configuration de l'équipement correspond au paramètre de l'équipement. Si les paramètres ne correspondent pas, les valeurs des variables REAL externes ne s'afficheront pas correctement.

  • Utilisez le point (.) pour le point décimal de la valeur de la variable. La virgule (,) n'est pas prise en charge pour les points décimaux.
    Même si la virgule (,) est utilisée pour le point décimal de la valeur de la variable dans le logiciel d'édition d'écran ou l'afficheur, des résultats inattendus, comme cette erreur, sont affichés, la virgule est ignorée, etc.

TIME, DATE, TIME_OF_DAY, DATE_AND_TIME

Type de données Description Plage de données

TIME

Stocke le temps écoulé en jours et en heures. - 24 d 20 h 31 m 23 s 648 ms ... 24 d 20 h 31 m 23 s 647 ms

Remarque : Lorsqu'une valeur négative est définie pour les propriétés [Valeur initiale] et [Plage de saisies] dans une variable TIME, le signe négatif s'affiche pour chaque unité de temps. (Exemple : -24d -20:-31:-23.-648)

DATE Stocke la date.

Lors de l'utilisation d'un équipement Série SP5000 Open Box (modèle Windows 10 IoT Enterprise), Série IPC ou PC/AT.

1970/01/01 ... 2106/02/07

Modèles autres que ceux indiqués ci-dessus

1970/01/01 ... 2038/01/19

TIME_OF_DAY Stocke l'heure. 00:00:00 ... 23:59:59

DATE_AND_TIME

Combine DATE et TIME_OF_DAY.

Lors de l'utilisation d'un équipement Série SP5000 Open Box (modèle Windows 10 IoT Enterprise), Série IPC ou PC/AT.
1970/01/01 00:00:00 UTC ... 2106/02/07 06:28:15 UTC

Modèles autres que ceux indiqués ci-dessus
1970/01/01 00:00:00 UTC ... 2038/01/19 03:14:07 UTC

Remarque :

  • Lors de l'utilisation de ces variables, faites correspondre les types de données sur l'équipement externe et la valeur des données stockées.
    Si vous avez saisi une valeur qui n'est pas comprise dans la valeur de l'adresse d'équipement externe, la valeur saisie s'affiche à l'écran mais n'est pas définie dans l'adresse d'équipement externe.

  • Lorsque vous associez des variables avec différents types de données, parfois la valeur de la variable source est remplacée par une valeur commune.

    Par exemple, convertissement une variable Real en une variable Integer : Définissez 123.4 sur une variable REAL, puis écrivez la valeur vers une variable INT est le résultat est 123. La valeur de la variable REAL est également mise à jour à 123.

  • Lorsqu'une valeur entière est introduite dans la variable DATE_AND_TIME à partir d'un périphérique externe, la valeur enregistrée est décalée en fonction du fuseau horaire de l'afficheur. Par conséquent, pour l'entrée d'une valeur entière, la date et l'heure affichées par un afficheur de date et d'heure diffèrent en fonction du fuseau horaire.

SP5000 Series Open Box (modèle Windows 10 IoT Enterprise), IPC Series ou PC/AT

Valeur entière entrée depuis un périphérique externe UTC+0 (Plage : 1970/01/01 00:00:00 ... 2106/02/07 06:28:15) UTC+9 (Plage : 1970/01/01 09:00:00 ... 2106/02/07 15:28:15)
0 1970/01/01 00:00:00 2106/02/07 06:28:16
1 1970/01/01 00:00:01 2106/02/07 06:28:17
: : :
32399 1970/01/01 08:59:59 2106/02/07 15:28:15
32400 1970/01/01 09:00:00 1970/01/01 09:00:00
: : :
4294967295 2106/02/07 06:28:15 2106/02/07 06:28:15


Modèles autres que ceux indiqués ci-dessus

Valeur entière entrée depuis un périphérique externe UTC+0 (Plage : 1970/01/01 00:00:00 ... 2038/01/19 03:14:07) UTC+9 (Plage : 1970/01/01 09:00:00 ... 2038/01/19 12:14:07)
0 1970/01/01 00:00:00 2038/01/19 03:14:08
1 1970/01/01 00:00:01 2038/01/19 03:14:09
: : :
32399 1970/01/01 08:59:59 2038/01/19 12:14:07
32400 1970/01/01 09:00:00 1970/01/01 09:00:00
: : :
2147483647 2038/01/19 03:14:07 2038/01/19 03:14:07

Variables de type de données d'utilisateur

Voici les types de variables de type de données d'utilisateur :

 

Remarque : Les contenants de tableau et les contenants de structure sont également considérés comme des variables.

 

Variables de tableau

Un tableau est un ensemble de variables ayant le même type de données. Dans un tableau, chaque variable est appelée élément.

Pour comprendre le fonctionnement d'une variable de type tableau, imaginez que la variable est une boîte. Dans le diagramme ci-dessous, la variable Numéro est une boîte simple contenant une valeur.

Imaginez qu'un tableau est une série de boîtes portant chacune un numéro. Dans le schéma suivant, la variable de tableau Numéro contient 5 éléments (0 à 4). Les valeurs de variable sont stockées dans chacune des 5 boîtes.

Pour spécifier chaque variable d'un tableau, indiquez le nom de la variable suivi du numéro de l'élément entre crochets [ ].

(Exemple) Tableau à 5 éléments

Le nombre d'éléments commence généralement par 0, mais peut également commencer par une valeur positive ou négative.

(Exemple) Tableau commençant par le numéro d'élément -1 avec 5 éléments

 

 

Un tableau multidimensionnel est un tableau qui contient d'autres tableaux. Par exemple, un tableau contenant deux tableaux DINT est un tableau à deux dimensions.

 

Nombre d'éléments dans chaque dimension et paramètres de dimension

Dans la fenêtre [Explorateur de projets], sous [Variables] → [Tous les types de données utilisateur] → [Tableaux], dans la colonne [Dimension], définissez la dimension du tableau et le nombre d'éléments.

Pour connaître les étapes de la conception d'un réseau, reportez-vous à ce qui suit.

Étapes à concevoir (variables, tableau, structure)

Pour un tableau à une dimension, ne spécifiez que les éléments du tableau.

(Exemple) Pour un tableau à une dimension avec un nombre d'éléments = 3, saisissez '3'.

 

 

Pour un tableau multidimensionnel, dans le champ [Dimension], indiquez le nombre d'éléments dans chaque dimension, séparés par une virgule (,).

(Exemple) Pour un tableau à deux dimensions dont la première dimension comporte 3 éléments (numéro de départ = 0) et la deuxième dimension comporte 4 éléments (numéro de départ = 0), saisissez '3,4'.

 

 

Cette définition de tableau est utilisée pour créer la variable de tableau Var1, illustrée ci-dessous.

 

 

Remarque : Pour fixer le numéro de départ d'un élément à une valeur différente de 0, au lieu du nombre d'éléments, saisissez le numéro de départ et le dernier numéro d'élément séparés par deux points (..) et le champ [Nombre d'éléments] calcule le nombre total d'éléments.

 

(Exemple) Pour créer un tableau à deux dimensions dont la première dimension comporte 3 éléments à partir de l'élément 0 et la deuxième dimension comporte 4 éléments à partir de l'élément 3, saisissez '3,3..6'.

 

Après la saisie, '3..6' est converti en 4 éléments, et la dimension du tableau commence à partir de l'élément numéro 3.

 

 

Ce tableau crée la variable Var1, illustrée ci-dessous.

 

 

Adressage indirect d'un tableau

L'adressage indirect est la façon la plus rapide d'accéder à une valeur de variable dans la plage de valeurs consécutives d'un tableau, ainsi que de mettre à jour la valeur en quelques millisecondes, et il permet de réduire la consommation de mémoire.

Pour l'adressage indirect des tableaux, spécifiez le numéro de l'élément du tableau par le biais d'une valeur de variable ou de la valeur de propriété d'un objet pour spécifier l'élément d'un tableau de manière dynamique.

Remarque :

Lorsque vous spécifiez un numéro d'élément de tableau indirectement avec la valeur de la propriété d'un objet, saisissez '$GraphicalObject' avant le nom de l'objet.
Selon la fonction d'assistance à la saisie, après avoir tapé '$' dans le champ de saisie ou de propriété source, vous pouvez sélectionner '$GraphicalObject' dans la liste des options pour saisir facilement la chaîne de caractères.

 

L'adressage indirect d'un tableau prend en charge :

 

Variables de structure

Une structure est une variable qui contient plusieurs autres variables. Chaque variable d'une structure est appelée élément. Un élément peut être de n'importe quel type de données.

Vous pouvez créer une structure imbriquée en ajoutant une autre structure ou un tableau en tant qu'élément.

Imaginez qu'une structure est une série de boîtes portant chacune un élément.

Dans le schéma suivant, la variable de structure DATA contient 3 éléments. Les valeurs de variable sont stockées dans chacune des 3 boîtes.

Fonctionnement lorsque la valeur d'entrée est en dehors de la plage des entrées

Lorsque la valeur à stocker dans la variable n'est pas comprise dans la plage (valeur minimum/maximum), la valeur est traitée comme suit :

 

Remarque :

  • Pour plus d'informations sur les opérations Changement de valeur, consultez Changement de valeur.

 

Lorsque la valeur est dépassée sur l'équipement externe

Type de données Description

STRING, WSTRING

Stocke les caractères qui peuvent s'ajuster.
Autre que ceux ci-dessus

La valeur de la partie qui dépasse la plage d'entrées est comptée à nouveau à partir du bas de la plage d'entrées et stockée.

Exemple) : Variable 8 bits non signée (plage de valeurs : 0...255)

Exemple 1 : Si vous tentez de stocker 256, 0 est stocké dans la variable. (Puisque la limite supérieure est dépassée par 1, la valeur de la limite inférieure de 0 est stockée.)

Exemple 2 : Si vous tentez de stocker 257, 1 est stocké dans la variable. (Puisque la limite supérieure est dépassée par 2, la deuxième valeur à partir de la limite inférieure de 1 est stockée.)

 

Lorsque la valeur est dépassée avec une opération Changement de valeur [Loop]

La valeur de la partie qui dépasse la plage d'entrées est comptée à nouveau à partir du bas de la plage d'entrées et stockée.

(Exemple) : Variable 8 bits non signée (plage de valeurs : 0...255)

Exemple 1 : Si vous tentez de stocker 256, 0 est stocké dans la variable. (Puisque la limite supérieure est dépassée par 1, la valeur de la limite inférieure de 0 est stockée.)

Exemple 2 : Si vous tentez de stocker 257, 1 est stocké dans la variable. (Puisque la limite supérieure est dépassée par 2, la deuxième valeur à partir de la limite inférieure de 1 est stockée.)

Lorsque la valeur est dépassée avec une opération Changement de valeur [Stop]

Type de données Description

STRING, WSTRING

Stocke les caractères qui peuvent s'ajuster.
Autre que ceux ci-dessus

Les valeurs suivantes sont arrondies à la valeur supérieure ou inférieure :

  • BOOL
    1/0
  • SINT
    127/-128
  • USINT, BYTE
    255/0
  • INT
    32767/-32768
  • UINT, WORD
    65535/0
  • DINT
    2147483647/-2147483648
  • UDINT, DWORD
    4294967295/0
  • LINT
    9223372036854775807/-9223372036854775808
  • ULINT, LWORD
    18446744073709551615/0
  • REAL, LREAL
    Diffère selon le paramètre de propriété.
  • TIME
    2147483647/-2147483648
  • DATE/TIME_OF_DAY, DATE_AND_TIME
    4294967295/0

 

Lorsque la valeur est dépassée avec une opération Changement de valeur [Set], une valeur spécifiée indirectement ou une opération Convertisseur d'expression

La valeur n'est pas stockée.

Lorsque la valeur est dépassée avec une recette

Type de données Description

BOOL, REAL, LREAL

La valeur n'est pas stockée.

LINT, ULINT, LWORD

Les valeurs suivantes sont arrondies à la valeur supérieure ou inférieure :

  • LINT
    9223372036854775807/-9223372036854775808
  • ULINT, LWORD
    18446744073709551615/0

STRING, WSTRING

Stocke les caractères qui peuvent s'ajuster.
Autre que ceux ci-dessus

La valeur de la partie qui dépasse la plage d'entrées est comptée à nouveau à partir du bas de la plage d'entrées et stockée.

(Exemple) : Variable 8 bits non signée (plage de valeurs : 0...255)

Exemple 1 : Si vous tentez de stocker 256, 0 est stocké dans la variable. (Puisque la limite supérieure est dépassée par 1, la valeur de la limite inférieure de 0 est stockée.)

Exemple 2 : Si vous tentez de stocker 257, 1 est stocké dans la variable. (Puisque la limite supérieure est dépassée par 2, la deuxième valeur à partir de la limite inférieure de 1 est stockée.)