―Seuls les types de données REAL, LREAL, BYTE, WORD, DWORD, LWORD, SINT, INT,
DINT, LINT, USINT, UINT, UDINT, ULINT, TIME, LTIME, S5TIME, LDT, DTL, TOD, LTOD,
DATE, STRING, WSTRING, WCHAR et CHAR peuvent être convertis implicitement.
―La longueur de bits du type de données source ne doit pas dépasser la longueur de bits du
type de données cible. Il n'est par exemple pas possible de spécifier un opérande du type de
données DWORD à un paramètre qui exige le type de données WORD.
―Pour les paramètres d'entrée/sortie (InOut), la longueur de bits d'un opérande spécifié à un
paramètre doit correspondre à la longueur de bits programmée du paramètre respectif.
Remarque
Conversion implicite sans contrôle CEI
L'éditeur de programmation repère les opérandes convertis implicitement à l'aide d'un
rectangle gris. Un rectangle gris foncé signale qu'une conversion implicite sans perte
de précision est possible, p. ex. lorsque le type de données INT est converti en type
DINT. Un rectangle gris clair signale qu'une conversion implicite est possible, mais
que des erreurs peuvent apparaître pendant l'exécution. Si vous convertissez p. ex.
le type de données LINT en type DINT et qu'un débordement se produit, la sortie de
validation ENO est mise à "0".
Vous trouverez également des informations supplémentaires concernant le réglage du contrôle
CEI et la conversion implicite sous "Voir aussi".
Conversion explicite
Si les opérandes ne sont pas compatibles et qu'une conversion implicite n'est donc pas
possible, vous pouvez procéder à une conversion explicite. Vous pouvez à cet effet soit utiliser
les instructions de conversion de la Task Card "Instructions", soit insérer manuellement la
conversion dans le programme. Pour plus d'informations sur la syntaxe des fonctions de
conversion explicite, référez-vous à la section "Voir aussi".
Un dépassement éventuel est affiché au niveau de la sortie de validation ENO. Un
dépassement se produit lorsque p. ex. la valeur du type de données source dépasse celle du
type de données cible.
Pour plus d'informations sur la conversion explicite, référez-vous à "Voir aussi".
La figure suivante montre un exemple de conversion explicite de type de données :
Le bloc fonctionnel "Block" attend une variable de type "INT" au paramètre d'entrée "IN_INT".
La valeur de la variable "IN_DINT" doit donc d'abord être convertie de DINT en INT. Si la valeur
de la variable "IN_DINT" se trouve dans la plage de valeurs admissible du type de données
INT, une conversion a lieu. Dans le cas contraire, un dépassement est signalé. Cependant,
STEP 7 Professional V13 SP1
Présentation de la conversion de type de données
This document constitutes a free excerpt compiled by the user himself/herself from the documentation provided by Siemens for this product. Siemens disclaims
all liability for the completeness of this document. It shall only be used for the user's own internal purposes. It shall not be passed on to third parties. The complete
documentation can be found at:
/dokumentation/default.aspx?DocVersionId=74495465995&Language=fr-FR&TopicId=58427923211 16/04/2017