Las entradas analógicas son utilizadas para leer valores como temperatura,  presión, intensidad, etc. Este valor se almacena  en una variable del PLC.  Por ejemplo:

TempCam1 AT %I* :INT;

El prefijo AT es utilizado para asignar la variable en una posición fija de memoria. En este caso I representa las entradas. En otros plc las variables siempre están asignadas a posiciones pero en este entorno de programación no es necesario y podemos simplemente declarar las variables con el tipo (Var:INT; ). Otros área de memoria son:

Entradas %I

Salidas %Q

Marca internas %M

El asterisco le dice al programa que esta entrada la queremos asignar mediante System manager. En el caso de Beckhoff, lo normal es que las entradas/salidas no tengan una dirección fija y se asignan mediante  system manager.

INT es integer, una variable de 16 bit con  signo.

¿Como almacenamos valores en bit?.

Supongamos que tenemos dos bit. Cada bit almacena dos estados (0 y 1) ó (True, False). Con estos dos bit podemos tener 4 combinaciones:

00 : 0

01 : 1

10 : 2

11 : 3

El resultado es que según el número de bit podemos tener 2 ^ (numero de bit)  posibilidades. 2 ^2 = 4. Por lo tanto, con dos bit podríamos almacenar un numero del 0 al 3. Para un valor con 16 bit podemos almacenar un valor comprendido entre 0 y 65535 (2^16 = 65536). Este tipo de dato se llama UINT integer sin signo. En el primer ejemplo utilizamos una variable llamada INT, integer 16 bit con signo. El primer bit se utiliza para el signo y los 15 restantes para el valor, por lo tanto 2^15 = 32768. De esta manera en una variable INT podemos almacenar valores desde -32767 hasta +32767.

El módulo de entradas analógicas del PLC, será el encargado de transformar una señal eléctrica en un valor que se almacena en la variable asignada. Normalmente utilizaremos para este tipo de entradas una variable de tipo INT.

Los tipos mas comunes de entradas analógicas son 0-10v, 4- 20 mA y sondas de temperatura, como: PT100, Pt1000 y termopares.

La principal característica de las entradas es que deben ser lineales (salvo casos especiales que no voy a tratar aquí). Es decir que esta señal aumentará proporcionalmente al valor físico medido.  El cálculo mediante el cual se transforma una entrada analógica en una magnitud física que se llama escalado.

Ejemplo de escalado con sonda de presión 0 – 10 bar y entrada analógica 4-20mA.

Presión AT %I*:INT;

La variable presión tendrá un valor entre -32767 y +32767, las entradas analógicas 4-20 mA siempre devuelven valores positivos  y el resultado es que la variable devolverá un valor entre 0 y 32767. Por lo tanto:

4 mA = 0 bar     => Presión = 0

20 mA = 10 bar => Presión = 32767

En realidad el valor de la presión lo convertiremos multiplicado por 100. De esta manera tendremos dos decimales aunque en programa lo veamos con Bar * 100.

Como podemos ver en el FB para un valor de la entrada de 32767 nos devuelve una presión de 1000 = bar*100 = 10,00 bar.

DifReal = ValorA20 – ValorA4

Factor = DifReal / NºPuntos

Presión = (Puntos * Factor) + ValorA4  + OffSet.

La Resolución de una entrada analógica.

La resolución de una entrada analógica esta determinada por el numero de bit. El módulo encargado de leer una entrada analógica nos devuelve el valor al PLC. En esta conversión, e independientemente del tipo de variable utilizada en el programa para almacenarla, la entrada es convertida a un valor digital con unos bit de resolución que están determinados por el módulo en concreto, es una de las características a la que habremos de prestar atención.

Si contamos con un modulo de 8 bits, tendremos 2^8 valores = 256. Para la lectura de una sonda de presión de 0 a 10 bar tendremos:

1000 / 256 = 3,9

Por lo tanto, por cada punto de variación en la entrada analógica, tendremos 0,04 bar de variación en la variable interna del plc. Para una entrada de 12bits (1000/4096 = 0,24 => 0,0024 bar). Es común, en una entrada analógica, que existan pequeñas variaciones. Dependiendo de la resolución estas variaciones pueden ser mas  o menos molestas, puesto que no es lo mismo estar variando 0,04 bar que 0,0024.  Yo, particularmente utilizo entradas de unos 12 bit de resolución para la mayoría de las aplicaciones.