De vez en cuando recibo alguna duda respecto del concepto de lo que son las variables en TIA Portal.
La verdad es que no tiene mucho misterio si te lo cuentan, pero si se da por supuesto este concepto informático (no solamente de los PLC), puedes tener ciertas dudas que vamos a intentar solucionar hoy.
A grandes rasgos, y sin entrar en terminología exacta, una variable no es mas que un trocito de memoria donde puedes almacenar valores de tal forma que puedas leer su contenido o escribir sobre él.
Hasta ahí seguramente no haya mucha duda.
Lo mismo que un vector, para ser un vector, tiene módulo, dirección y sentido, una variable en TIA Portal (o en cualquier otro sistema) tiene una serie de características:
- Nombre o etiqueta para identificar a la variable
- Tipo, ya que, por ejemplo, no será lo mismo un valor numérico entero, que un carácter.
- Ancho de la variable, es decir, su tamaño.
- Ámbito, que será el terreno de juego donde pueda aplicarse y trabajar con la variable.
Nombre de las variables en TIA Portal
El nombre de la variable no es más que eso, una etiqueta que identifique el área de memoria que contiene cierto valor.
A la hora de nombrar las variables, puede ser que no tengas una forma estándar de nombrarlas, o puede que sí. A lo mejor tu organización (o cliente) tiene su propia forma de nombrar las variables.
De forma genérica, hay una serie de notaciones internacionales que son las más habituales que puedes ver en la programación de alto nivel.
Ahora bien, el nombre tiene que ser adecuado y significativo.
Puede parecer baladí, pero no lo es.
Por ejemplo, podrías ver una línea de código en SCL que diga: c := a * b;
Como ves, a pesar de que cada variable tiene nombre, no está para nada claro qué es cada cosa. Solo ves la operación de multiplicación. Pero podría significar infinidad de cosas.
En cambio, si vieras algo así como: Espacio := Velocidad * Tiempo;
¿A que ahora está mucho más claro?
Pues de esto, va el tema de la notación de variables que es bastante interesante.
Tipo de las variables
El tipo de la variable no es mas que cómo categorizar el dato que contiene la variable.
Al final, la memoria no son mas que ceros y unos, y en función de cómo los leamos , la misma ristra de ceros y unos significan cosas diferentes.
Esa forma de interpretar los ceros y los unos que contiene la variable, es el tipo de la variable.
Como vemos en la imagen destacada del post, hay muchos tipos de variable.
Pueden ser valores enteros, o dobles enteros, reales, caracteres...
Pueden ser simples como un número o un valor booleano, o variables complejas o estructuradas como puede ser un array.
Hay muchos tipos de variables que se pueden usar con los PLC de Siemens.
Pero ademas, en los S7-1200 y S7-1500 tienes muchos tipos de variables que en la serie 300 y 400, no existen.
Así, por ejemplo podrás tener diferentes tipos de valores enteros: enteros y dobles enteros como tenías en la serie 300 o 400, pero tendrás también enteros pequeños, con y sin signo.. o enteros largos.
Es decir, un abanico mucho más grande de lo que has podido disfrutar y sufrir en Step 7 tradicional.
No voy a entrar a enumerar cada uno de los tipos, porque no es el objetivo de la entrada, y lo vemos en el Curso Express de TIA Portal o en el Curso Completo, pero digamos que hay todos los necesarios y más.
UDT
Un caso especial son los User-defined Data Types más conocidos como UDT.
La traducción desde la lengua de Shakespeare a la de Cervantes es "Tipos de Datos definidos por el Usuario".
Exacto, con los PLC de Siemens (tanto en clásico como en TIA Portal) puedes definir nuevos tipos de datos además de los que traen de saque.
En general serán tipos complejos que bajo una estructura, contienen otros tipos más simples.
Por ejemplo, podremos definir el tipo "Variador" y dentro de este tipo contenga tipos más simples como Velocidad y Aceleración de tipo real.
Ancho de la variable
Hemos comentado que la variable es un trozo de memoria donde contener un dato. Pero, ¿cuán grande es?
Ahí es donde no es lo mismo un SINT que un INT o un DINT, ya que siendo todos tipos enteros, SINT (small int) ocupará solo un byte, INT dos bytes, y DINT (doble int) 4 bytes... y así con todos los tipos, claro.
Esto delimita el valor máximo y mínimo que puede tomar la variable, ya que un SINT, solo podrá valer entre -128 a 127 mientras que un INT podrá valer desde -32768 a 32767 al ocupar dos bytes, y por tanto, poder contener más información diferente.
Ni que decir tiene que un DINT será capaz de almacenar un valor muchísimo más grande que un INT por contener 4 bytes.
Pero ojo, porque como ves, estamos empezando a ligar lo que es el ancho (una palabra o dos bytes) con el tipo.
Quiero decir con esto, que un Real, al igual que un DINT ocupan ambos tipos de variable 4 bytes.
Pero no tiene nada que ver leer 4 bytes de memoria e interpretarlos como un DINT, que interpretarlo como un REAL ya que no se parece en nada como vemos en el Curso de TIA Portal Express o en el Curso Completo de TIA Portal.
Los ceros y los unos serán los que sean, pero para que tenga algún sentido hay que interpretarlos según un tipo de variable.
Si no se pasa por el tamiz de un tipo, 1 byte solo son 8 bits y punto. Un "10000011" no significa nada.
Y alguno dirá, sí que significa algo, eso es 131.
¿Estás seguro?
Será 131 si lo interpretas como un USINT, es decir, como un entero pequeño sin signo, que va desde 0 a 255, y por tanto sí, es 131.
Pero si lo interpretas como un SINT cuyos límites son de -128 a 127 será un valor negativo, concretamente -125.
¿Cómo te has quedado?
El mismo ancho, 1 byte, con los mismos bits a cero o a 1, puede tomar dos valores enteros completamente diferentes en función del tipo de variable que sea.
Y es muy importante el concepto de anchura, porque existen las variables de tipo byte, de tipo word y de tipo dword que tienen de ancho lógicamente, lo mismo que el nombre del tipo. El tipo byte ocupará un byte, el tipo word ocupará un word, palabra o dos bytes, y el tipo dword ocupará un dword, doble word o doble palabra o 4 bytes.
Por tanto, no es lo mismo que un INT ocupe un Word con que el tipo INT sea lo mismo que el tipo Word, porque no lo es.
Ámbito de las variables en TIA Portal
El ámbito de la variable no es mas que el contexto en el que se puede usar dicha variable.
Así, hay dos grandes grupos de variables en TIA Portal:
- Variables locales
- Variables globales
Variables locales
Las variables locales son aquellas que se declaran dentro de un bloque (OB, FC o FB) y solo son usadas dentro de ese bloque. No se puede acceder a ellas desde fuera.
El ejemplo más claro son las variables temporales que se pueden declarar dentro de los bloques citados.
Se usan dentro de un FC, OB o FB, pero no son accesibles desde fuera de dicho bloque.
Variables globales
Las variables globales son aquellas variables que puedes usarlas en cualquier parte del programa, y desde diferentes bloques si lo deseas.
Las variables globales pueden ser las entradas, salidas, marcas, variables declaradas en los DB, temporizadores S7, contadores...
Estaticidad de las variables
Las variables pueden ser estáticas o no, es decir, pueden recordar su valor entre llamadas del programa principal, o olvidar su valor una vez que se ejecute el bloque donde ha sido declarada y ejecutada.
Es decir, si yo a una variable le doy valor así:
Velocidad := Velocidad +1;
y dicha variable es global (una marca MW, por ejemplo), cada vez que se ejecute, Velocidad irá incrementándose en una unidad, porque recuerda su último valor... no se resetea. Es estática.
Las variables temporales, en cambio, no son estáticas, y por tanto, este mismo caso haría que la variable Velocidad no se fuera incrementando, y al leer el valor después de ejecutar la sentencia, siempre valdría 1.
¿Qué te ha parecido?
Imagino que todo lo que te he contado sobre las variables en TIA Portal, lo sabías, bien porque ya llevas mucho tiempo programando y esto no te pilla de nuevo o porque lo has visto en alguno de los cursos de la plataforma o en cualquier otro sitio.
Pero si estás comenzando en la programación, estos conceptos puede que no los tengas del todo claro, y espero que te haya ayudado a entender mejor qué es una variable en TIA Portal.
Ni que decir tiene, que si necesitas formarte porque estás muy pez, puedes tomar el Curso Express de TIA Portal con el que comenzar a crear tus proyectos con los PLC y pantallas de Siemens.




