Types de données standards
Les types de données utilisables dans Codesys V3.5 sont les suivants. Attention aux tailles mémoires utilisées pour certains type de données
BOOL
Le type de données "BOOL" sera utilisé pour toute information booléenne.
ENTIERS et assimilés :
Les types entiers utilisent plusieurs bits pour stocker les informations. Il comprennent, par exemple, les types BYTE, WORD, DINT...
REAL / LREAL
Ce sont des types de données permettant de stocker des information de type IEEE754 (format virgule flottante) en simple et double précision
STRING / WSTRING
Le type de données STRING est utilisé pour stocker un caractère ASCII (taille 1 BYTE). La taille mémoire occupée par un STRING est de n*caractères*8 + 8 bits.
Le type de données WSTRING est utilisé pour stocker un caractère UNICODE (taille 1WORD mini). La taille mémoire occupée par un WSTRING est de n*code_caractère*16 + 16 bits
TIME / DATE
Ces types de données permettent de stocker des informations de temps ( TIME, DATE...).
Le type de données LTIME permet d'avoir une résolution de l'heure en nanosecondes
Types de données étendus de la norme IEC61131-3
BIT
Le type de donnée BIT est utilisé pour une valeur booléenne 0 /1. Il ne peut être utilisé que dans les blocs fonctionnels ou les structures de données mais n'occupe, contrairement à un BOOL, qu'un bit en mémoire.
Tableaux
Les tableaux de données permettent de stocker un nombre défini de variables du même type de données. le symbole d'un tableau est ARRAY.
DUT
Un DUT est une structure de données crée par l'utilisateur. Cette structure devient un nouveau type de données qui peut comprendre tous les autres types de données utilisables (BOOL, TIME, ARRAY, DUT...)
Résumé des principaux types de données
Type de donnée | Valeurs mini | Valeur maxi | Occupation mémoire |
BOOL | FALSE(0) | TRUE(1) | 8 bit |
BYTE | 0 | 255 | 8 bit |
WORD | 0 | 65535 | 16 bit |
DWORD | 0 | 4294967295 | 32 bit |
LWORD | 0 | 264-1 | 64 bit |
SINT | -128 | 127 | 8 bit |
USINT | 0 | 255 | 8 bit |
INT | -32768 | 32767 | 16 bit |
UINT | 0 | 65535 | 16 bit |
DINT | -2147483648 | 2147483647 | 32 bit |
UDINT | 0 | 4294967295 | 32 bit |
LINT | -263 | 263-1 | 64 bit |
ULINT | 0 | 264-1 | 64 bit |
REAL | -3.402823e+38 | 3.402823e+38 | 32 bit |
LREAL | -1.7976931348623158e+308 | 1.7976931348623158e+308 | 64 bit |
STRING | 512 | ||
WSTRING | |||
TIME | 0 | 4294967295 (ms) | 32 bit |
TIME_OF_DAY (TOD) | 0 (00:00:00:000) | 4294967295 (23:59:59:999) | 32 bit |
DATE | 0 (1970-01-01) | 4294967295 (2106-02-07) | 32 bit |
DATE_AND_TIME (DT) | 0 (1970-01-01, 00:00:00) | 4294967295 (2106-02-07,06:28:15) | 32 bit |
LTIME | 0 | 213503d23h34m33s709ms551us615ns | 64 bit |
BIT | FALSE(0) | TRUE(1) | 1 bit |
Exemples de déclaration de variables
VAR
i : INT;
xstart : BOOL;
dtLocalTime : DT;
axIN : ARRAY[1..100]of BOOL;
wTest : WORD;
END_VAR
Astuces pour le nommage des variables
Par convention, on essaye d'utiliser une adaptation de la "Notation Hongroise systems" afin de simplifier la lisibilité du programme. Codesys n'étant pas "Case Sensitive", c'est à dire qu'il ne fait pas de différence entre les majuscules et les minuscules dans les noms des variables, cette typographie peut être aussi utilisée.
Type de donnée | Prefixe | exemple |
BOOL | x | xStart, xInput |
BYTE | b | bCode, bType |
WORD | w | wIN, wTest |
DWORD | dw | dwIN, dwCode |
LWORD | lw | lwValeurs, lwParametre |
SINT | si | siTest, siValeur |
USINT | usi | usiDonnee1 |
INT | i | iValeur, iSeuil |
UINT | ui | uiIndex, uiStep |
DINT | di | diValeur, diDivision |
UDINT | udi | udiSeuil, udiResultat |
LINT | li | liValeur, liCalculTempsTravail |
ULINT | uli | uliMaxTravail, uliTempsMaintenance |
REAL | r | rValeurMesure, rSeuilAlarme |
LREAL | lr | lrDistanceTerreLune, lrDeplacement |
STRING | s | sData, sNomFichierParametres |
WSTRING | ws | wsNomUtilisateur |
TIME | t | tStart, tStop |
TIME_OF_DAY | tod | todDemarrage, todArretCycle |
DATE | d | tNow, tDemain |
DATE_AND_TIME | dt | dtLocalTime, dtUTC |
LTIME | lt | ltCycleProcesseur |
ARRAY | a* (* : préfixe type dans le tableau) | axIN, asDATA, awValeurAnalogiques |
Programme | plc | PLC_PRG, PLC_REGU |
Bloc fonctionnel | fb | fbSeuil, fbMoteur |
fonction | fc/ fu | fuMaE, fuAlarme |
DUT | dut / typ | dutMesure, dutMoteur |
Les exemples proposés ne sont que des exemples et les prefixes utilisés ne le sont qu'à titre indicatifs. Rien ne vous oblige à suivre cette méthode.