En esta entrada repasare los tipos de datos en Codesys y el equivalente en vb.net.
Resumen de tipos de datos estándar.
| Tipo de dato | Codesys | vb.net | Limites | Uso memoria |
| BOOL | BOOL | Boolean | TRUE ò FALSE | 1 bit |
| BYTE | BYTE | Byte | 0 a 255 | 8 Bit |
| WORD | WORD | UShort | 0 a 65535 | 16 Bit |
| DWORD | UInteger | 0 a 4294967295 | 32 Bit | |
| Simple integer | SINT | Sbyte | -128 a 127 | 8 Bit |
| Unsigned Simple Integer | USINT | Byte | 0 a 255 | 8 Bit |
| Integer | INT | Short | -32768 a 32767 | 16 Bit |
| Unsigned integer | UINT | UShort | 0 a 65535 | 16 Bit |
| Double integer | DINT | Integer | -2147483648 a 2147483647 | 32 Bit |
| UDINT | UInteger | 0 a 4294967295 | 32 Bit | |
| REAL | Single* | -3.402823 E38 a 3.402823 E38 | 32 Bit | |
| LREAL | Double* | -1.79769313486231E308 a 1.79769313486232E308 | 64 Bit | |
| Cadena de caracteres | STRING | String* | Nota 1 | |
| TIME | Date* | T#0ms a T#71582m47s295ms | 32 Bit | |
| TIME_OF_DAY | Date* | TOD#00:00 a TOD#1193:02:47.295 | 32 Bit | |
| Fecha | DATE | Date* | D#1970-01-01 D#2106-02-06 | 32 Bit |
| Fecha y hora | DATE_AND_TIME | Date* | DT#1970-01-01-00:00 a DT#2106-02-06-06:28:15 | 32 Bit |
*Estos tipos no tienen una equivalencia exacta.
NOTA 1: El tamaño por defecto es 80, para otro numero de caracteres se debe especificar en la declaración (str:STRING(35):=’Esto es una declaración String’;). Uso de memoria [BYTE] = Tamaño + 1 Byte para carácter nulo de terminación.
Todos son bit.
Entiendo que en un principio esto puede ser un poco confuso. Para mi la clave está en pensar que todo son bit y lo único que cambia es la forma de interpretar estos bit. Para muestra un botón. En la siguiente figura puedes ver tres tipos diferentes de variables (INT, UINT, TIME) direccionadas a la misma área de memoria y como se visualizan en función del tipo. También he declarado 16 variables del tipo BOOL y los he asignados a cada bit de VarINT.

No todos son bit.
TwinCat, cuando corre en PC guarda los datos boolean en Byte. Si no utilizamos las variables direccionadas (AT %MX) no nos importara pero hay que tenerlo en cuenta cuando se direccionan.
Variables STRING.
Las variables string almacenan en BYTE el código ascii equivalente al carácter en cuestión. En la siguiente imagen puedes ver dos variables, la variable VarVer es un ARRAY (Matriz o vector) de 11 elementos (0 a 10) de tipo BYTE. La variable VarStr es una variable string(10), ambas están direccionadas en el mismo área de memoria, por lo tanto lo que escribimos en una, lo podemos ver en la otra. Como puedes comprobar en la tabla del código ascii, cada BYTE almacena el código ascii equivalente. También podréis ver que el ultimo BYTE se reserva para el caracter NUL(0).

Código ASCII.

Los 32 primeros códigos pertenecen al grupo de los no imprimibles y son utilizados para enviar códigos como retorno de carro, fin de mensaje en protocolos de comunicación, etc.
Tipos de datos de tiempo.
Creo que merecen un post exclusivo que le dedicaré en breve.













