Sei sulla pagina 1di 25

Siemens S7-300

(con TIA Portal)


Roberto Álvarez Sindín
Revisión 1.0
Octubre 2017
Índice
1. Introducción ............................................................................................................................................ 1
2. Configuración de los equipos .................................................................................................................. 2
3. Lenguajes y Bloques de programación.................................................................................................... 4
4. Programación básica ............................................................................................................................... 5
4.1 Temporizadores y contadores ......................................................................................................... 5
4.2 Funciones (FC) ................................................................................................................................. 6
4.3 Bloques de función (FB) ................................................................................................................... 7
4.4 Bloques de datos (DB) ..................................................................................................................... 9
5. Reloj de tiempo real (RTC) .................................................................................................................... 10
5.1 Alarmas horarias (OB10) ............................................................................................................... 11
5.2 Alarmas cíclicas (OB35) ................................................................................................................. 12
5.3 Uso del reloj RTC en programa ...................................................................................................... 13
5.4 Contador de horas de funcionamiento (RTM) .............................................................................. 16
6. Entradas y salidas analógicas integradas .............................................................................................. 17
6.1 Bornero y cableado de las E/S analógicas integradas en la CPU 313C/314C-2. ............................ 17
6.2 Representación de los principales valores de medida .................................................................. 18
6.3 Configuración de las E/S analógicas integradas ............................................................................ 19
6.4 Funciones SCALE y UNSCALE ......................................................................................................... 20
7. Alarmas de proceso (OB40)................................................................................................................... 21
Alarmas de los módulos de E/S integradas del 31xC ............................................................................ 22

Este trabajo se distribuye bajo licencia Creative Commons BY-NC-SA


http://creativecommons.org/licenses/by-nc-sa/4.0/
IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

1. Introducción

TIA Portal es el actual software de programación de los PLC de Siemens, permite programar todos los
modelos posteriores al año 2007 (se excluye la serie S7-200 y los equipos anteriores). En el caso de la serie
S7-300 hay que tener en cuenta:

• Se requiere la versión Professional de TIA Portal.


• El direccionamiento es simbólico, no absoluto como en Step 7.
• Algunas funciones han cambiado en su sintaxis, han sido agrupadas, sustituidas y otras puede que
no estén disponibles.
• Entorno de programación compacto, todas las funciones en una misma pantalla.
• Configuración gráfica del HW.
• Árbol de proyecto con todas las funciones del dispositivo.
• Todas las instrucciones agrupadas por categorías.
• Mejor acceso a las bibliotecas de funciones, están integradas junto con las instrucciones básicas
por categorías.

Compatibilidad con Step 7

Los proyectos de Step 7 pueden importarse en TIA Portal (si es un PLC anterior a 2007 puede importarse
sin incluir la configuración HW).

Desde el menú ‘Proyecto > Migrar proyecto’ primero seleccionaremos la ruta de origen del proyecto en
Step7 y la ruta de destino con la que se guardará en TIA Portal y después pulsaremos en ‘Migrar’.

Siemens S7-300 en TIA Portal 1


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

2. Configuración de los equipos

La serie S7-300 sólo está disponible en la versión PRO de TIA Portal. En un proyecto nuevo seleccionamos
el equipo y la versión desde el desplegable para añadirlo al mismo y poder configurarlo. En nuestro caso
trabajaremos con un 314C-2DP (6ES7 314-6CG03-0AB0) con la versión de FW 2.6.

Estos PLC son modulares, aunque la serie C es una gama compacta que integra E/S digitales y analógicas
junto con la CPU. En todo caso, tendremos que incluir los módulos adicionales que pudieran estar
conectados al dispositivo, (en este caso una unidad de 8 DO con referencia 322-1BF01-0AA0), podemos
bien arrastrarla o hacer doble clic con lo que se situará en el primer hueco disponible en el bastidor.

Accediendo a la vista general del dispositivo veremos las E/S y las direcciones por defecto del PLC.

Siemens S7-300 en TIA Portal 2


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

Estos valores pueden ser modificados desde las propiedades del dispositivo, aunque suele ser aconsejable
dejar los valores por defecto. Se comentan sólo los más significativos:

Entradas y salidas digitales integradas

24 ED IB124 / IB125 / IB126


I124.0 hasta I124.7
I125.0 hasta I125.7
I126.0 hasta I126.7
16 SD QB124 / QB125
Q124.0 hasta Q124.7
Q125.0 hasta Q125.7

Entradas y salidas analógicas integradas de 11 bits

5 EA IW752 / IW754 / IW756 / IW758 / IW760


Las 4 primeras son configurables en modo
corriente o tensión (depende además del
cableado), mientras que la última es de
termorresistencia a dos hilos.
2 SA QW752 / QW754
Configurables en modo tensión o corriente
(además depende del cableado)

Disponemos además de 4 canales de contaje rápido (HSC


High Speed Counter) que se pueden usar para contaje de
pulsos o medida de frecuencia.
Para cada canal se reserva una doble palabra 4 bytes ó 32
bits.

Las marcas de ciclo deben activarse específicamente y


seleccionar un byte, en este ejemplo MB255, siendo:
M255.0 0.05s ON y 0.05s OFF
M255.1 0.1s ON y 0.1s OFF
M255.2 0.2s ON y 0.2s OFF
M255.3 0.25s ON y 0.25s OFF
M255.4 0.4s ON y 0.4s OFF
M255.5 0.5s ON y 0.5s OFF
M255.6 0.8s ON y 0.8s OFF
M255.7 1.0s ON y 1.0s OFF
Finalmente, la remanencia de marcas, temporizadores y
contadores puede configurarse en la página de
configuración del dispositivo. Recordamos que
dispondremos de:
255 Temporizadores T0 a T254
255 Contadores C0 a C254
255 bytes de marcas que pueden direccionarse por bit,
byte, palabra o doble palabra.

Siemens S7-300 en TIA Portal 3


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

3. Lenguajes y Bloques de programación

El S7-300 sólo permite un OB de ejecución cíclica, el OB1. Tendremos disponibles algunos OB de sistema,
dependiendo del modelo de PLC y además, hasta 2048 bloques FC, 2048 bloques FB y 512 bloques de
datos DB.

Los lenguajes de programación admitidos son:

• KOP: Diagrama de contactos de escalera (Ladder)


• FUP: Bloques de función
• AWL: Lista de instrucciones
• SCL: Texto estructurado (variante de Pascal según IEC)
• GRAPH: Programación gráfica en Grafcet (sólo en FB y FC)

Instrucciones

Una vez dentro de un bloque de programación OB, FC o FB, las instrucciones


se encuentran clasificadas en el bloque lateral derecho:

• Instrucciones básicas: Las habituales funciones de temporización,


contaje, comparación, movimiento de datos, matemáticas…

• Instrucciones avanzadas: Fecha y hora, avisos, diagnóstico, bloques


de datos, periferia…

• Tecnología: Funciones PID, control de movimiento, posicionamiento,


medida de frecuencia…

• Comunicación: Instrucciones de comunicación a través de los


puertos integrados o mediante procesadores de comunicación.

• Paquetes opcionales: Otras funciones y módulos como lectores de


radiofrecuencia, códigos de barras, trazabilidad…

Siemens S7-300 en TIA Portal 4


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

4. Programación básica

La programación de los S7-300 está integrada en TIA Portal, siendo el programa recomendado
actualmente, ya que el programa tradicional Step 7 no se actualiza desde hace varios años.

Las diferencias fundamentales están en que mientras que en Step 7 las direcciones son absolutas, en TIA
Portal la programación es simbólica. Cada vez que utilizamos una dirección de memoria se creará de forma
automática una etiqueta (tag) asociada, que se añade a la tabla de símbolos y se utilizará como referencia
en la programación.

Por lo demás, la programación es perfectamente asimilable a la que se realiza con las anteriores versiones
de Step 7.

4.1 Temporizadores y contadores


Aunque los tradicionales temporizadores y contadores Simatic siguen
disponibles, se recomienda usar preferentemente los nuevos definidos
en la norma IEC, sólo comentaremos estos últimos en este tema.
Tendremos así 3 temporizadores y 3 contadores.

Temporizadores IEC

• TP: Temporizador de impulso


• TON : Temporizador de retardo a la conexión
• TOF: Temporizador de retardo a la desconexión

Contadores IEC

• CTU: Contador ascendente


• CTD: Contador descendente
• CTUD: Contador ascendente y descendente

Usando estas funciones tendremos que llevarán asociadas siempre un bloque de datos DB asociado, que
contiene sus parámetros y áreas de memoria. Al insertarlos en una línea de programa la DB se creará de
forma automática.

Siemens S7-300 en TIA Portal 5


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

4.2 Funciones (FC)


Las funciones son bloques de programa que no
almacenan datos y permiten estructurar mejor la
programación al agrupar partes del programa de los
que puede controlar su ejecución de forma simple.

Para ejecutarse, deben ser llamados desde un


bloque que ejecución cíclica. Con el S7-300 pueden
programarse en 4 lenguajes de programación KOP,
FUP, AWL y SCL.

Además de agrupar los programas, podemos usarlas


como plantilla parametrizable, para ello definiremos
las variables en el bloque FC.

Definimos las variables en el bloque y las llamamos al crear el segmento de programa. Vemos que al llamar
a #KM en el enclavamiento se pone en amarillo, debido a que la hemos definido como variable de salida
y la estamos leyendo. Podríamos haberla definido como variable de entrada y salida en vez de sólo de
salida.

Al insertar ahora la función, podremos asignar los valores de las variables de E/S y utilizarla varias veces
en el programa, con valores diferentes.

Siemens S7-300 en TIA Portal 6


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

4.3 Bloques de función (FB)


Los bloques de función contienen subprogramas
que se ejecutan cada vez que un bloque de función
es llamado por otro bloque lógico.

Los bloques de función son bloques lógicos que


depositan sus valores de forma permanente en
bloques de datos de instancia, de modo que siguen
disponibles tras procesar el bloque.

Los parámetros de entrada, salida y entrada/salida


se depositan de forma permanente en bloques de
datos de instancia. Gracias a ello, continúan
disponibles tras el procesamiento del bloque. Los
bloques de función se utilizan en tareas que no se
pueden realizar con funciones:

➢ Cuando son necesarios temporizadores y contadores.


➢ Cuando hay que almacenar información en el programa.
➢ Por ejemplo, una preselección del modo de operación con un pulsador.

Un bloque de función también se puede llamar varias veces en diferentes puntos de un programa. Esto
facilita la programación de tareas complejas que se repiten con frecuencia. Para ejecutarse, deben ser
llamados desde un bloque que ejecución cíclica. Con el S7-300 pueden programarse en 5 lenguajes de
programación KOP, FUP, AWL, SCL y GRAPH.

En la estructura interna además de variables de entrada/salida y


temporales, podemos definir además variables de tipo STATIC, que
admiten distintas funciones y tipos de datos, como pueden ser
temporizadores y contadores. Para referirnos a cualquier función que
lleve asociado un tipo de datos asociado a una DB, bastará con escribir
el nombre de la función, en este ejemplo ponemos un temporizador a la
desconexión TOF.

Al insertar una variable de este tipo, automáticamente se crean los datos asociados a la estructura de
datos de la variable. Una vez creados los datos y la estructura del programa asociando las variables,
tendremos después que agregar el bloque en el OB1.

Siemens S7-300 en TIA Portal 7


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

Al insertar la FB se creará la DB de instancia asociada a la misma y en caso de tener variables de E/S, como
en este ejemplo, completarlas con las direcciones.

Siemens S7-300 en TIA Portal 8


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

4.4 Bloques de datos (DB)


Los Bloques de Datos, son áreas de memoria de la CPU que se utilizan para almacenar datos. Los DB
mantienen su valor ante un corte de tensión, siempre que tengamos la pila de respaldo. En las CPUs
actuales que van con Memory Card, mantienen la memoria todos los DBs

Hay dos tipos de bloques de datos:

• Bloques de datos globales: Los bloques de datos globales, pueden ser utilizados por todos los
módulos del programa. Los FB, FC y OB pueden leer o escribir datos en los DB globales. Para grabar
o leer datos, antes hay que abrir el módulo con “OPN DB”.
• Bloques de datos de instancia: Un DB de instancia, está asociado a un Bloque de Función (FB)
especifico. Los datos almacenados en el DB de instancia solo pueden ser leídos o escritos por el
bloque asociado a él.

Un DB de instancia no necesita abrirse con ninguna instrucción, se abre se lee y se escribe en él de forma
automática. Al empezar a leer el bloque de función (FB), se carga del DB una copia de las variables locales
en el bloque de función, se ejecuta el bloque y cuando acaba, deposita el valor actual de las variables
locales en el DB de instancia.

Para guardar un dato, tenemos que poner nombre a la variable, definir el formato en el que lo queremos,
y opcionalmente definir un valor inicial.

Una vez definidas las variables a almacenar y también después de cualquier cambio en la DB, deberemos
compilar el bloque para que se establezcan las direcciones dentro del mismo, lo que aparece en la
columna OFFSET, por ejemplo, en la imagen veremos que la variable Hora_inicio está a partir del byte
18.0.

Además, los bloques de datos nos permiten establecer un valor inicial, en la columna Valor de arranque,
que será con el que se inicia el variable en el arranque del PLC. También podremos establecer si las
variables son remanentes y sin accesibles desde un HMI.

Así nos podremos referir a esa variable directamente por su dirección en la DB. Suponiendo que el número
de DB fuese DB1, la dirección sería por tanto DB1.DBD18 al tratarse de una variable tipo DInt. En TIA
Portal nos mostrará además el nombre simbólico asociado: “Datos_Reloj_RTC”.Hora_inicio.

Siemens S7-300 en TIA Portal 9


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

5. Reloj de tiempo real (RTC)

Los S7-300 incorporan un reloj de tiempo real (RTC) que almacena la


fecha y la hora del dispositivo en un tipo de dato global DT
(DATE_AND_TIME) de 8 byte. Hay que tener en cuenta que los datos se
codifican en BCD, por lo que se deben visualizar en hexadecimal.

En el PLC disponemos de una serie de instrucciones, dentro del bloque


de ‘Avanzadas’ que nos permiten trabajar con el reloj de forma más o
menos cómoda, aunque no hay funciones específicas de programador
semanal o comparaciones de tiempo.

Uno de los problemas del tipo de dato DT es que no se pueden hacer


directamente comparaciones de hora, a diferencia de los nuevos S7-
1200/1500, que sí permiten esas comparaciones.

Las fechas admisibles van:

Desde DT#1990-1-1-0:0:0.0 hasta DT#2089-12-31-23:59:59.999

Byte Contenido Ejemplo


B0 Año B#16#13
B1 Mes B#16#12
B2 Día B#16#05
B3 Hora B#16#01
B4 Minutos B#16#05
B5 Segundos B#16#05
B6 Las 2 cifras más significativas de los milisegundos B#16#25
B7 (4 MSB) Las 2 cifras menos significativas de los milisegundos B#16#0
B7 (4 LSB) Día de la semana B#16#5
1: Domingo
2: Lunes
3: Martes
4: Miércoles
5: Jueves
6: Viernes
7: Sábado

Como vemos en el ejemplo anterior, el día de la semana está incluido en los 4 últimos bits del byte 8, lo
que complica bastante su interpretación. Para poder extraerlo y operar con él podemos usar la función
T_CONV, que permite extraer la fecha, la hora o el día de la semana de la variable.

El RTC está por defecto en una variable, tanto en el OB1 como en el OB35. Si se requiere gran precisión
en el uso del reloj, es conveniente usar la variable del OB35 ya que es llamada a intervalo de tiempos
regulares, mientras que en otros casos puede haber ligeros retrasos (del orden de milisegundos),
dependiendo del tiempo de ciclo del programa.

Para aplicaciones de reloj como un programador semanal, no es necesaria mucha precisión, por lo que
llamaremos el RTC desde una función (FC) y la depositaremos en una variable de un bloque de datos DB
global, de forma que podamos acceder desde cualquier bloque del programa.

Siemens S7-300 en TIA Portal 10


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

5.1 Alarmas horarias (OB10)


Podemos insertar un bloque de alarmas horarias que se puede configurar directamente en el PLC, el OB10.
Además, en los S7-300 podemos utilizar otros 7, del OB11 al OB17, pero estos deberán configurarse
mediante programa. Agregaremos un nuevo bloque y seleccionamos el OB10.

Una vez insertado el bloque, debemos activarlo y configurarlo


desde la configuración del PLC en el apartado Alarmas /
Alarmas horarias.
Una vez activada, podemos configurar su ejecución: una vez,
cada minuto, cada hora, diaria… y la fecha a partir de la que
comenzará esta alarma.

Para este ejemplo vamos a crear una función en el OB10 que incremente una unidad un contador cada
minuto, para lo que activamos la OB10 y la configuramos para que sea llamada cada minuto. Hay que
tener en cuenta que el programa de la OB10 sólo se ejecuta un ciclo de scan cada vez que es llamada, por
lo que sólo se incrementa una unidad en cada llamada (cada minuto) y lo cargaremos en el PLC o en el
simulador.

Cada minuto el valor de MW50 se incrementa en 1 unidad y se vuelve a depositar en MW50.

Aparte del OB10, como hemos comentado, podemos utilizar otras 7


alarmas de este tipo, pero se deberán configurar por programa
mediante las instrucciones de ‘Alarmas / Alarmas horarias’, que nos
permitirán parametrizarlas desde un bloque de programa.

• SET_TINT: Parametrización del bloque de alarma


• CAN_TINT: Porra la parametrización de la alarma
• ACT_TINT: Activa la ejecución de un OB de alarma horaria
• QRY_TINT: Consulta el estado de un OB de alarma horaria

Siemens S7-300 en TIA Portal 11


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

5.2 Alarmas cíclicas (OB35)


Se ejecutan a intervalos predeterminados de tiempo y con distintas prioridades. En el S7-300 sólo
tenemos un OB de este tipo disponible, el OB35, que es llamado por defecto cada 100 ms. No dependen
de la ejecución del OB1 ya que, de hecho, el OB1 pausa su ejecución para ejecutar este OB. Esto hace que
el tiempo de ciclo del OB1 si normalmente ya es variable dependiendo del programa, la inclusión de un
OB cíclico lo hace aún más variable ya que se alargará cuando se pause para ejecutar el OB35 por ejemplo,
cosa que en general, no se hará en todos los ciclos de scan del PLC (el OB35 puede estarse ejecutando
cada 100ms y el OB1 ejecutándose de media cada 20ms haciendo que 1 de cada 5 se alargue para ejecutar
el OB35).

Se suele utilizar la OB35 para las llamadas a lecturas analógicas, regulación PID, y otros procesos que
requieran un tratamiento uniforme en el tiempo, e independiente del tiempo de ciclo del programa.

Tras insertar el bloque, podemos configurarlo en cuanto al


tiempo de llamada del bloque. En este ejemplo lo llamaremos
cada 6000 ms, esto es cada 6 segundos.
A diferencia de otros bloques, no es necesario llamarlo o
activarlo, una vez cargado en el PLC será llamado cada
intervalo de tiempo establecido.

Nuevamente, vamos a poner en el bloque un pequeño programa que incremente en una unidad el valor
de un contador. Al igual que el resto de OB de alarma, cada vez que son llamados sólo se ejecutan un
único ciclo. Como en este ejemplo el OB35 es llamado cada 6 segundos, en 1 minuto se incrementará en
10 unidades.

El OB35 es interesante porque integra una variable local del RTC que se puede utilizar para llamadas al
reloj a intervalos fijos.

Siemens S7-300 en TIA Portal 12


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

5.3 Uso del reloj RTC en programa


Vamos a crear dos elementos, una FC para el programa y una DB para depositar los datos.

FC con las funciones de control del RTC DB con los datos del RTC

En la DB crearemos una serie de variables en las que depositar los datos del reloj, de esta forma se puede
acceder desde cualquier elemento de programa. Las variables a utilizar, junto con el tipo de dato que
utilizarán, se muestran en la imagen siguiente, adicionalmente se pueden crear otras variables.

Una vez creada la DB y las variables, es aconsejable Compilar para que los datos de la DB puedan ser
ordenados y accedidos de forma correcta desde el programa.

Dentro de la FC localizaremos las instrucciones de Fecha y hora dentro del apartado ‘Avanzadas’.
Primeramente, incluimos RD_SYS_T y la depositamos en la variable ‘Reloj_RTC’ de la DB.

Siemens S7-300 en TIA Portal 13


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

Una vez tenemos los datos del reloj, que recordamos ocupan 8 byte, podemos extraer aquellos que nos
interesan para poder trabajar más cómodamente. Con la instrucción T_CONV extraemos y convertimos
diferentes datos del reloj.

Como entrada tendremos la variable con el RTC de la DB, en formato DT, mientras que en la salida
podemos seleccionar entre 3 opciones:

➢ Date: Nos da la fecha


➢ Int: Nos extrae el día de la semana (de 1 a 7)
➢ Time_Of_Day: Nos dará la hora

Utilizaremos 3 veces la instrucción y depositaremos los datos en las variables correspondientes de la DB.

Si cargamos el programa y la configuración en el PLC o el simulador, podremos ver los datos del reloj.
Accediendo a la DB y activando el botón de observación, veremos los datos. En este ejemplo nos muestra
que es la fecha 02/10/2017 y la hora 00:33:23.979. Además, como hemos extraído también el día de la
semana, vemos que ese día es un lunes (valor 2).

Con estas variables definidas es posible utilizarlas de forma directa para que se muestren en un HMI o en
un Scada.

Para utilizar el reloj en programa, disponemos de una serie de instrucciones que nos permiten operar con
las fechas. Un problema es que debemos trabajar con el dato completo en formato DT, lo que resulta
bastante farragoso al ser de 12 byte.

Siemens S7-300 en TIA Portal 14


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

Con T_COMP comparamos dos datos DT completos, esto es dos


datos de fecha y hora.

También podemos usar T_COMBINE para unir un dato en formato


DATE con otro en formato TIME_OF_DAY y obtener el resultado
en DT con el que podemos hacer la comparación.

Finalmente tendremos otras tres instrucciones T_ADD, T_SUB y T_DIFF, con el que añadir, restar o
calcular la diferencia entre dos datos DT.

Con este conjunto de operaciones podremos trabajar y comparar fechas y horas, usando el formato DT,
lo que resulta algo farragoso.

En algunos casos nos interesa poder operar de forma más sencilla, simplemente comparar dos horas de
inicio o final en un día de la semana concreto, sin necesidad de tener que trabajar con el dato completo.
Con el S7-300 no hay una comparación directa de horas, a diferencia de los S7-1200/1500. Para hacerlo
podemos hacer una comparación implícita entre la hora incluida en el DT y un valor en doble palabra en
BCD (hexadecimal).

El DT tiene 8 byte, estando la hora a partir del byte 3, con lo que lo podemos obtener el valor de la hora
con una doble palabra a partir de ese byte, incluyendo hh:mm:ss.ms. Si hemos depositado el DT en el
primer byte de la DB, tendremos la hora en el byte 3, esto es DB1.DBD3.

El programa nos lo pondrá en amarillo indicando que no hay una variable definida con ese dato, pero
funcionará de forma correcta. En la imagen podemos ver que la hora del PLC es 01:42:53.37, por lo que
la salida Q124.0 está desactivada ya que la comparación la hacemos a partir de las 01:44:00.00. Una vez
superada esa hora (en la segunda imagen son las 01:45:31.14), se activará la salida Q124.0.

Vamos a hacer un ejemplo en que se active una salida en un periodo concreto de tiempo y unos días de
la semana en particular. Supondremos que la hora de inicio y de finalización puede modificarse, desde un
HMI por ejemplo, por lo que las llevaremos a unas variables, bien del área de marcas o de la DB.

Creamos dos variables en la DB en la que poner las horas de inicio y finalización. Además, las variables
creadas así permiten poner un valor ‘por defecto’, de modo que no es preciso cargarlo y también
permitirán modificarlo, desde un HMI, por ejemplo. En este ejemplo, pondremos la hora de inicio a las
07:30:00.00 y la hora de finalización a las 22:15:00.00, para lo que escribimos el valor correspondiente en
hexadecimal (precedido de #16), sabiendo que será interpretado en BCD.

Siemens S7-300 en TIA Portal 15


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

Usando el valor de la variable ‘Diasemana’ podemos controlar qué días se activará la salida, teniendo en
cuenta que su valor irá de 1 (domingo) a 7 (sábado), en este caso queremos que la salida se active entre
semana (de lunes a viernes). En la imagen el día de la semana es miércoles (4) y son las 22:13:50.83, por
lo que la salida está activa.

5.4 Contador de horas de funcionamiento (RTM)


Los S7-314C sólo incorporan 1 contador de horas de funcionamiento (contador 0), con un dato de 32 bits.
Las variables con las que completar el bloque serían similares a la imagen, donde el NR =0 siempre en los
S7-314C.

Para el control del contador tenemos el parámetro MODE, que puede tener 7 funciones según el valor:

➢ 0: Leer (tras ello, el estado se registra en CQ y el valor actual en CV).


➢ 1: Arrancar (con el último valor registrado)
➢ 2: Parar
➢ 4: Inicializar (al valor especificado en PV)
➢ 5: Inicializar (al valor especificado en PV) y arrancar
➢ 6: Inicializar (al valor especificado en PV) y parar

En el resto de parámetros tendremos el resultado de operación, por si hubiera algún error (RET_VAL), el
estado del contador (CQ), que es un bit activo cuando lo está el contador y finalmente el valor en horas
que haya estado activado (CV). Para iniciar el contador, podemos usar el OB100, cargando los parámetros
en el inicio del PLC.

Siemens S7-300 en TIA Portal 16


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

6. Entradas y salidas analógicas integradas

Las tarjetas analógicas de S7-300 convierten:

• Para la lectura de entradas analógicas, un valor analógico procedente de un sensor o transductor


en un valor digital de 16 bits que se almacena en la periferia del S7.
• Para las salidas analógicas, un valor digital de 16 bits de la periferia de salidas en una señal
analógica mediante un conversor digital-analógico.

Existen dos parámetros que determinan una entrada o una salida analógica:

• El tipo de sonda (en el caso de entradas), o el tipo de actuador (en el caso de salidas), a conectar
(4-20 mA, 0-10 V, etc...).
• La resolución a alcanzar en la lectura o escritura. A mayor resolución, mayor exactitud de lectura
y menor error entre el valor real y el almacenado en el PLC. Por contra, también el tiempo de
conversión A/D es mayor y por lo tanto las variaciones tardan más en reflejarse en el PLC.

6.1 Bornero y cableado de las E/S analógicas integradas en la CPU 313C/314C-2.


Estos modelos integran 5 E/2S, con una resolución de 11 bits + signo y un tiempo de conversión por canal
de 1ms. Aparte de la configuración que se haga de las E/S en el programa, se deberán cablear los
terminales en función de que se trabaje en modo tensión o en modo corriente. Existe aislamiento
galvánico entre los canales y la CPU, pero NO entre las distintas E/S.

En la tabla se reproducen los valores en función de la resolución de la tarjeta. Al ser de 11 bits tendremos
que las medidas se irán incrementando en valores de 16 unidades (10 hex en hexadecimal). Esto es, los
32768 valores que admite el canal irán ‘saltando’ de 16 en 16 (total de 2048 valores posibles).

Siemens S7-300 en TIA Portal 17


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

6.2 Representación de los principales valores de medida


Como hemos comentado, las E/S analógicas utilizan un canal de 16 bits para su representación, con lo que
los valores posibles son 216 = 65536 (valor entero).

Word (INT) Byte Alto Byte Bajo


Posición bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Peso bit 215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20
Valor analógico (S) Valor digital del dato analógico (INT)

Sin embargo, como puede haber tarjetas con rangos bipolares (+/-), se utiliza el bit de mayor peso para el
signo (S), por lo que los valores efectivos serían de -32768 a +32767. En el caso de señales unipolares (sólo
valores positivos), los datos negativos son ignorados.

Además, parte de ese rango se reserva para un margen de saturación y desborde del valor de la entrada
o salida. En la práctica los valores nominales van de -27648 a + 27648.

Entradas: Rangos de medida de tensión

La más utilizada en la industria es 0-10V. El Simatic S7 300 posee el rango +/-10V. El inconveniente de este
tipo de lectura es que, al ser una tensión, las distancias sin atenuación de la señal debido a caídas de
tensión en el cable son relativamente cortas, por lo que la sonda debe estar cerca del cuadro eléctrico
donde se encuentre el módulo analógico.

Los límites de lectura son:

Entradas: Rangos de medidas de intensidad

Dentro de las medidas de intensidad se suelen utilizar principalmente dos tipos: 0-20 mA. y 4-20 mA. Las
medidas por intensidad es el más utilizado en la lectura analógica, ya que permite grandes distancias al
ser la lectura por corriente, y a la vez es fácil reconocer la rotura del hilo, ya que por debajo de 4 mA indica
el mal funcionamiento del sensor.

Siemens S7-300 en TIA Portal 18


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

6.3 Configuración de las E/S analógicas integradas


Se hace desde la configuración del equipo. Seleccionaremos el apartado AI5/AQ2 y podremos configurar
cada entrada o salida de forma independiente. Recordar que la configuración en tensión o corriente
requiere un cableado diferente en el bornero.

Por defecto las direcciones están a partir del byte 752, tanto en entradas como en salidas, con un tamaño
de palabra cada una de ellas (W). Al ser áreas de memoria de periferia, se deberán identificar bien con la
P delante de la dirección o bien con :P. Así, la primera entrada analógica será la PIW752 y la primera salida
la PQW752.

Vamos a configurar la primera entrada y salida en modo tensión de 0 a 10V, haremos que se refleje el
valor de la entrada en la salida y que cuando se superen los 7000 puntos (aproximadamente 2,53V), se
active una salida.

Siemens S7-300 en TIA Portal 19


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

6.4 Funciones SCALE y UNSCALE


Encontraremos estas instrucciones dentro del apartado ‘Conversión’.

La función SCALE sirve para escalar el valor de una entrada analógica entre
dos valores (máximo y mínimo). También podríamos escalar cualquier otro
registro que no sea una entrada analógica. El resultado será una doble
palabra en REAL.

La función UNSCALE sirve para desescalar el valor (máximo y mínimo) de un


registro sobre una salida Analógica. También podríamos desescalar cualquier
otro registro que no sea una salida analógica. El valor de entrada de la
función sería una doble palabra en REAL y su resultado será un valor en
entero que saldrá por la analógica.

En ambas funciones hay un parámetro de bit, BIPOLAR que permite indicar si los valores tienen valores
negativos (-10V/+10V, -20mA/+20mA) o sólo valores positivos, en este último caso, el valor de ese bit
tendrá que ser OFF.

En este ejemplo escalamos el valor de la entrada analógica para que represente, por ejemplo, una
temperatura entre -50 ºC y 250 ºC y lo depositamos en el MD84. Después lo desescalamos con una escala
distinta y lo llevamos a la salida analógica.

Para hacer un escalado o desescalado inverso, bastará con intercambiar los límites superior e inferior.
Esto no es posible en el resto de PLCs de Siemens de las series 1200/1500, en esos modelos en los límites
de escalado el límite superior siempre debe ser mayor que el límite inferior.

Siemens S7-300 en TIA Portal 20


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

7. Alarmas de proceso (OB40)

Es posible disparar una alarma de proceso con determinados eventos. La alarma de proceso permite
reaccionar a los eventos inmediatamente en el programa de usuario, interrumpiendo la ejecución cíclica
del OB1.

Procedimiento
1. Habilite la alarma de proceso del módulo en la pantalla de parametrización "Parámetros
básicos". (Selección de alarmas: Proceso o diagnóstico/proceso)
2. Ajuste cada uno de los eventos que desea que disparen una alarma de proceso en las
pantallas de parametrización correspondientes al módulo.
3. Instale el OB de alarma de proceso (OB 40) en su programa de usuario.

Reacción ante una alarma de proceso

Cuando se activa el bit correspondiente a una alarma de proceso, la CPU accede al OB 40 en el programa
de usuario de forma inmediata y ejecuta el programa durante un ciclo de scan.

La activación de una alarma de proceso sin que se encuentre cargado el OB correspondiente provoca que
la CPU pase a STOP.

Datos locales de los OBs de alarma de proceso

La tabla siguiente describe las variables temporales (TEMP) de un OB de alarma de proceso. Como
nombres de variables se han elegido los nombres por defecto del OB 40.

Variable Tipo de datos Descripción


0.0 OB40_EV_CLASS BYTE Clase de evento e identificadores:B#16#11: Alarma está activada
1.0 OB40_STRT_INF BYTE B#16#41: alarma a través de línea de interrupción 1·
B#16#42: alarma a través de línea de interrupción 2 (sólo en S7–400)·
B#16#43: alarma a través de línea de interrupción 3 (sólo en S7–400)·
B#16#44: alarma a través de línea de interrupción 4 (sólo en S7–400)·
B#16#45: WinAC: alarma disparada por el PC
Nota: En modo multiprocesador, las líneas de interrupción 1 a 4 están
asignadas a las CPUs 1 a 4.
2.0 OB40_PRIORITY BYTE Prioridad parametrizada; valores prefijados: de 16 (OB 40) a 23 (OB 47)
3.0 OB40_OB_NUMBR BYTE Número de OB (40 hasta 47)
4.0 OB40_RESERVED_1 BYTE Reservado
5.0 OB40_IO_FLAG BYTE Módulo de entradas: B#16#54Módulo de salidas: B#16#55
6.0 OB40_MDL_ADDR WORD Dirección básica lógica del módulo que ha activado la alarma
8.0 OB40_POINT_ADDR DWORD En los módulos digitales:
Mapa de bits con los estados de las entradas en el módulo que han
activado la alarma de proceso.
La asignación de qué bit de OB40_POINT_ADDR pertenece a qué canal del
módulo debe consultarse en la descripción del módulo correspondiente.
En los módulos analógicos:
Mapa de bits con la relación de qué canales han excedido qué límites
(Encontrará la estructura exacta en /71/ o /101/.).·
En los CPs o IMs: Estado de alarma del módulo (no es relevante para el
usuario).
12.0 OB40_DATE_TIME DATE_AND_TIME Fecha y hora a las que se solicitó el OB

Las alarmas de proceso NO pueden simularse, han de probarse con el PLC real.

Siemens S7-300 en TIA Portal 21


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

Alarmas de los módulos de E/S integradas del 31xC


Para el módulo de entradas estándar con dirección EB124 y siguientes, la dirección del módulo será, en
los 313C y 314C, la 124 en decimal, que se corresponde con la dirección B#16#7C en hexadecimal. Por
tanto, evaluaremos la variable OB40_MDL_ADDR, comparándola con el valor del módulo que ha
provocado el disparo (124 = B#16#7C para las entradas integradas).

Vamos a activar las alarmas de dos entradas para que realicen acciones diferentes. Con la E124.0 haremos
que desde el OB40 se active la salida A124.0 y con la E124.7 se active la A125.7. Hacemos la configuración
en el HW del PLC y se lo cargamos:

Siemens S7-300 en TIA Portal 22


IES Cavanilles. Roberto Álvarez Sindín Sistemas Programables Avanzados

Tendremos entonces que según el bit que provoque el disparo del OB40 el valor en binario y su traducción
en hexadecimal será diferente. Cuando dispara la E124.0 la cifra será 00000001 y cuando dispare la E125.7
sería 00008000

Byte 4 (no usado) Byte 2 (EB126) Byte 1 (EB125) Byte 0 (EB124)


7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
E124.0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
E125.7
0 0 0 0 8 0 0 0

Crearemos la OB40 y haremos un programa en la que evaluará el módulo que ha provocado el disparo y
la entrada que actúa, en función de la que dispare, activaremos una salida u otra.

Variables asociadas a la OB40

Así cuando se active una de las entradas, se llamará al OB40, se evalúa el módulo que provoca el disparo
y después la entrada concreta que lo ha provocado, activando una salida o la otra.

Esta configuración NO se puede simular, sólo puede probarse con el PLC real.

Siemens S7-300 en TIA Portal 23

Potrebbero piacerti anche