[go: up one dir, main page]

0% encontró este documento útil (0 votos)
110 vistas112 páginas

Objetivos Generales

Cargado por

juan manuel
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
110 vistas112 páginas

Objetivos Generales

Cargado por

juan manuel
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 112

UA 2: Lenguajes y programas en los autómatas programables

UA Unidad de aprendizaje
Lenguajes y programas en los autómatas programables
2

Objetivos

Objetivos generales
Conocer las herramientas necesarias para el diseño del programa de control de
automatismos.
Comprender la filosofía de programación de autómatas programables.

Objetivos específicos
Conocer un sistema lógico combinacional y secuencial.
Diseñar un esquema lógico a partir de la construcción de una tabla de verdad y la función
lógica asociada.
Aplicar la metodología GEMMA para el análisis de automatismos más complejos.
Conocer los tipos de variables y cómo hacer su asignación a direcciones de memoria.
Diferenciar los tipos de lenguajes de programación de un autómata programable.
Conocer la diferencia entre la programación lineal y la estructurada.
Entender el funcionamiento de un entorno de programación, la estructura del programa de
usuario y las distintas variables utilizadas.
Realizar una tabla de verdad y la función lógica asociada.
Realizar un GRAFCET de un proceso.
Realizar la función lógica de un diagrama lógico.
Mapa conceptual o esquema de contenidos

1 Diseño de automatismos lógicos


1.1 Introducción
1.2 Modelos y funciones de transferencia
1.3 Automatismos combinacionales y secuenciales
1.4 Diseño de automatismos combinacionales
1.5 Diseño de automatismos secuenciales
1.6 GRAFCET: resumen histórico
1.7 Diseño basado en GRAFCET
1.8 GRAFCET: elementos de base y reglas de evolución
1.9 GRAFCET: ejemplo de diseño
1.10 Macroetapas y representación en detalle
1.11 Estructuras básicas del GRAFCET
1.12 Diagramas de ujo y diagramas GRAFCET
1.13 Etapas iniciales, preposicionamiento y alarmas
1.14 Puestas en marcha y paradas: GEMMA
1.15 Método general de diseño basado en GEMMA
1.16 Paros de emergencia
1.17 Ejemplo de diseño

2 Programación del autómata


2.1 Introducción
2.2 Representación de sistemas de control
2.3 Descripciones literales
2.4 Identi cación de variables y asignación de direcciones
2.5 Lenguajes de programación
2.6 Lenguajes booleanos y lista de instrucciones
2.7 Diagramas de contactos
2.8 Plano de funciones
2.9 Lenguajes de alto nivel
3 Programación de bloques funcionales
3.1 Introducción
3.2 Bloques secuenciales básicos
3.3 Bloques funcionales de expansión
3.4 Instrucciones especiales

4 Estructuras de programación
4.1 Introducción
4.2 Programación lineal
4.3 Programación estructurada
4.4 Programación multitarea
4.5 Tareas rápidas e interrupciones
4.6 Parametrización de módulos funcionales
4.7 Programación de procesadores periféricos inteligentes

5 Programación en TIA PORTAL


5.1 Introducción a TIA PORTAL
5.2 Estructura interna de un S7-1500
5.3 Direccionamiento
5.4 Estructura de un programa y módulos de S7-1500
5.5 Operaciones combinacionales
5.6 Operaciones de memoria
5.7 Operaciones de tiempo
5.8 Operaciones con contadores
5.9 Operaciones de comparación
5.10 Operaciones aritméticas
5.11 Operaciones entre bloques
5.12 Relaciones entre bloques

Introducción
Las automatizaciones son una serie de procesos, cada uno de los cuales se dividen en varias tareas.
Estas tareas siguen una lógica que debe ser analizada para que, finalmente, se pueda desarrollar un
programa de control válido y robusto.
El análisis de los procesos y la comprensión de la lógica del automatismo ayudarán a realizar un
esquema gráfico de funcionamiento como el que brinda la herramienta GRAFCET. Además deben
incorporarse elementos que describen los modos de marcha y de parada del sistema, como pueden
ser los preposicionamientos y las alarmas previstas. La herramienta gráfica GEMMA ayuda a incluir
todas estas condiciones en un diagrama de control tipo GRAFCET.
El desarrollo del programa de control, a partir de los diagramas gráficos, es la definición en un lenguaje
de programación del programa de usuario.
Es preciso conocer el entorno de programación que ofrece el autómata a instalar y usar un lenguaje de
programación compatible con este entorno. Los lenguajes de alto nivel son de gran ayuda al usuario
por su alto grado de comprensión para cualquier usuario, sin embargo, tienen sus limitaciones.
La programación estructurada, frente a la lineal, permite desarrollar programas más complejos, ya que
estos pueden dividirse en bloques que realizan tareas específicas. Las llamadas entre estos bloques
permiten que la secuencia de instrucciones se ejecute de manera coordinada.
En Automatizaciones 4.0, S. L., se desarrolla el programa de control que se cargará en los autómatas
programables que instalan a sus clientes. Para llegar a este programa, inician una fase de diseño de la
automatización a través de herramientas que traducen el automatismo a un lenguaje gráfico.
Posteriormente, se desarrolla el programa de control en un lenguaje compatible con el entorno de
programación de los autómatas instalados.
UA 2: Lenguajes y programas en los autómatas programables

1. Diseño de automatismos lógicos





Automatizaciones 4.0, S. L., ha recibido un nuevo encargo para automatizar un proceso de un
cliente. En primer lugar, deberá comprender cuál es la lógica del proceso a automatizar, por lo
que el equipo comercial ha comenzado con la primera toma de datos. Estos datos serán los
referentes a los sensores que se van a instalar, su tipología, los pulsadores, las paradas de
emergencia, así como todos los actuadores necesarios. Todos estos elementos serán
representados por variables y la lógica del automatismo se reproducirá mediante un programa
de control.

1.1 Introducción
Los sistemas automatizados han evolucionado desde sistemas con multitud de componentes físicos
que establecían la lógica mediante la conmutación de relés a sistemas digitales donde los elementos
forman parte de un programa de control.
De esta manera, se ha simplificado el circuito físico, pero al mismo tiempo, se ha aumentado la
complejidad de la lógica de control y, por tanto, estos sistemas requerirán de una planificación del
diseño, tanto a nivel de elementos de control como de organización en planta.
En el diseño de un automatismo lógico, intervienen los siguientes elementos de control:

 Subsistema lógico (estado 0 o 1)


Representado por variable lógica o binaria

 Subsistema digital (varios estados nitos posibles)


Representado por variable numérica (grupo de bits)

Existen también los subsistemas analógicos, es decir, subsistemas donde los estados posibles son
infinitos. Imagina, por ejemplo, la lectura de un sensor de temperatura. Esta lectura puede ser tan
precisa como se quiera, reservando muchas posiciones de memoria para los decimales. Sin embargo, si
se define una resolución determinada, podemos convertir un sistema de numeración infinita en uno
finito. Por tanto, los subsistemas analógicos, al definir su precisión o resolución, son tratados como
subsistemas digitales. Por ello, todos los subsistemas serán lógicos o digitales.

En la siguiente tabla tienes reflejado estos subsistemas:


SISTEMAS PARTES TIPOS MODELO VARIABLES ÚTILES DE
AUTOMÁTICOS DISEÑO

SISTEMA DE COMPONENTES TODO O NADA 2 ESTADOS LÓGICOS FUNC. LÓGICAS


CONTROL O BLOQUES TIPO BIT GRAFCET
+ 1o0
ACONTECIMIENTOS
+ ANALÓGICOS Nº FINITO DE NUMÉRICAS FUNC. LÓGICAS
PLANTA NUMÉRICOS ESTADOS TIPO GRAFCET
REGISTRO OP.
(BINARIO, BCD, ARITMÉTICAS
ASCII) TEXTOS
F.
TRANSFERENCIA
TRANSF.
LAPLACE
TRANSF. Z

Características de un subsistema lógico y numérico

Los sistemas lógicos se diseñan mediante métodos basados en el álgebra de Boole, es decir, requieren
de conocimientos en números binarios, operaciones con bits y registros.



 Nota

Los sistemas todo o nada, también llamados sistemas analógicos, son representados por
variables tipo bit que pueden tomar los valores 0 o 1.
Los sistemas digitales pueden tomar valores finitos y son representados por variables
numéricas. Los números son representados mediante una variable formada por un conjunto de
bits. Una agrupación de bits forma un byte. Si se necesita más espacio para la variable, existen
también agrupaciones de bytes.

1.2 Modelos y funciones de transferencia





El equipo de diseño de Automatizaciones 4.0, S. L., ha empezado por dividir el sistema que se va
a automatizar en diferentes subsistemas. En cada subsistema identificará cuáles son las entradas
y salidas físicas y sus variables asociadas. Posteriormente establecerá la lógica entre estas
variables, es decir, definirá la función de transferencia.

En esta sección vamos a centrarnos en el diseño de sistemas lógicos.


El diseño de sistemas se basa en la construcción de modelos que representan el comportamiento del
proceso que se va a reproducir.
Estos modelos pueden ser de distintos tipos:

1 Esquema de relés
2 Basado en puertas lógicas

3 Con lista de instrucciones o diagrama de contactos

4 De tipo matemático, mediante función lógica

Representan la lógica que se aplica a una serie de entradas para obtener unas salidas determinadas.


 Ejemplo

En la figura que se muestra a continuación, se representan los distintos modelos de


representación de los sistemas lógicos:

Modelos de sistemas lógicos

Puedes distinguir las siguientes entradas y salidas:

Entradas: A, B y C.
Salidas: S.

La lógica que se establece es la siguiente:

Mientras que la variable A y B sean ciertas (estado = 1) o la C o la D sean falsas, a la vez que
la E sea cierta, entonces la salida S será cierta.

Una variable representará los valores de una magnitud determinada. Por ejemplo, una variable lógica A
podrá representar el valor de la tensión en una bobina de un relé. Si se le aplica una tensión a la bobina
de 24 V, la variable A valdrá 1 y, en ausencia de tensión, dicha variable valdrá 0. Observa dos ejemplos
en la siguiente tabla:
Asignaciones de variables lógicas a
determinadas magnitudes

Para la construcción del modelo debes seguir los siguientes pasos:

1  2  3 

4
1
Dividir el sistema en subsistemas

2
Identificar en cada subsistema las magnitudes de entradas y salidas

3
Asignar a cada magnitud de entrada y salida sus correspondientes variables. Estas variables
podrán ser lógicas o numéricas

4
Hallar en cada subsistema la función que relaciona las entradas con las salidas (función de
transferencia)



 Definición

Función de transferencia
Es aquella expresión matemática que relaciona las variables de entrada en un subsistema con
las variables de salida. Puede ser de tipo lógico, algebraico o numérico.

Así pues, un sistema automatizado se modelará cuando se determinen:

Subsistemas

Entradas

Salidas

Función de transferencia

Definición de un modelo para un sistema


automatizado




 Actividad de aprendizaje 1

A continuación, realizarás una actividad en la que se te pedirá que identifiques los siguientes
elementos: función de transferencia, entradas y salidas.

Vas a instalar un sistema automatizado que consiste en el control del aforo de vehículos en un
garaje. Para ello, instalas un sensor a la entrada que se activará cada vez que pase un vehículo y
así vaya realizando un conteo acumulado hasta que se llegue al número de vehículos máximo
de aforo. Una vez que suceda este evento, se encenderá un indicador luminoso. Identifica
entrada, salida y función de transferencia, al elegir entre las opciones.

a. La entrada es el indicador luminoso, la salida es el sensor de conteo y la función de


 transferencia es: si conteo del sensor = aforo, entonces indicador luminoso = encendido.

b. La entrada es el sensor de conteo, la salida es el indicador luminoso y la función de


 transferencia es: si conteo del sensor = aforo, entonces indicador luminoso = encendido.

c. La entrada es el sensor de conteo, la salida es el indicador luminoso y la función de


 transferencia es: si conteo del sensor < aforo, entonces indicador luminoso = encendido.

d. La entrada es el sensor de conteo, la salida es el indicador luminoso y la función de


 transferencia es: si conteo del sensor = aforo, entonces indicador luminoso = apagado.



 Actividad de aprendizaje 2

A continuación, realizarás una actividad en la que se te pedirá que asocies una variable de tipo
digital a las entradas y salidas de un sistema automatizado.

Estás diseñando una automatización que consiste en lo siguiente: una electroválvula permite el
llenado de un neumático mediante un sistema de aire comprimido. Existe un sensor de presión
que, mientras no llegue a la presión máxima, activa la electroválvula para que se pueda
continuar con el llenado. ¿Qué variables utilizarás para representar la electroválvula y el sensor
de presión?

a. La electroválvula será la variable Q, que valdrá 0 si no está excitada la bobina y 1 si está


 con corriente eléctrica.

b. El sensor de presión será la variable I, que valdrá 0 cuando la presión del neumático es
 menor que la máxima y 1 cuando sea igual o mayor que la máxima.

c. La electroválvula será la variable Q, que valdrá 1 si no está excitada la bobina y 0 si está


 con corriente eléctrica.
 d. Las opciones a y b son correctas.

1.3 Automatismos combinacionales y secuenciales





Para Automatizaciones 4.0, S. L., los subsistemas se reducen finalmente a decidir si van a ser
representados mediante un sistema combinacional o secuencial. Si las salidas en cada
subsistema dependen solo del estado de las variables de entrada en cada momento, entonces
diseñará un subsistema combinacional. Si, además, depende del estado de las variables de
entrada en el momento anterior, entonces diseñará un subsistema secuencial.

Un sistema o bloque lógico puede ser de dos tipos:

 1 Sistema combinacional

1
Es aquel cuyas salidas dependen únicamente del estado de las entradas,
independientemente del estado inicial de partida. Es decir, la función de transferencia
que obtiene la variable de salida va a ser una combinación de las variables de entrada a
través de los operadores lógicos (OR, AND, NOT).

 2 Sistema secuencial

2
Es aquel cuyas salidas dependen no solo del estado de las entradas, sino además del
estado inicial del sistema. De esta manera, la salida en estos sistemas va a depender de
la combinación de las entradas y del estado anterior en que quedaron las entradas. Estos
estados anteriores se almacenan en unas variables denominadas “variables de estado”.


 Ejemplo

Sea un sistema lógico cuya tabla de verdad es la siguiente:

ENTRADAS SALIDA
PASO N. º
A B C

0 0 0 0

1 1 0 1

2 0 0 1

3 0 1 0

4 0 0 0
Tabla de verdad que representa un comportamiento de un proceso.

Puedes observar que las mismas combinaciones de las entradas de las variables A y B provocan
valores distintos de la variable de salida S, en concreto, en el paso N.º 2: A = 0, B = 0; S = 1,
mientras que en el paso N.º 4: A = 0, B = 0; S = 0.
Es decir, el estado de S depende no solo de los estados de las entradas. Depende también de
qué valores anteriores de A y B se parte. Así pues, el estado anterior al paso N.º 2 es: A = 1, B = 0,
mientras que el estado anterior del paso N.º 4 es: A = 0, B = 1.

En los sistemas combinacionales las funciones de transferencia que dan como resultado las salidas
relacionan las variables de entrada a través de los operadores lógicos AND, OR y NOT.
En los sistemas secuenciales, las funciones de transferencia relacionan, además, las variables de
estado o de memoria que contienen los estados anteriores.
Estas variables de estado se suelen denominar SET (almacenamiento de 1 lógico) y RESET
(almacenamiento de 0 lógico).
La célula básica de memoria que almacena estos estados de memoria se llama BIESTABLE, los cuales
están formados por puertas lógicas interconectadas.

1.4 Diseño de automatismos combinacionales





El proceso de diseño del esquema lógico del automatismo en Automatizaciones 4.0, S. L., pasará
por una serie de fases. En primer lugar se definirá la tabla de verdad que establece la lógica del
automatismo. Posteriormente se traducirá esta tabla de verdad a funciones lógicas para que
finalmente se realice el diseño del esquema lógico.

El proceso de diseño de un automatismo combinacional consta de una serie de fases bien definidas.
Estas son las siguientes:
1 Obtención de la tabla de verdad

2 Conversión a funciones lógicas

3 Diseño de esquema lógico

Una vez que se ha diseñado el esquema lógico, se procederá a la implantación de ese esquema
funcional a través de la materialización en alguna tecnología (bien cableada o programada).



 Ejemplo

Queremos diseñar el esquema lógico de un motor trifásico “M”, accionado por un pulsador de
encendido “ENC” que activará la bobina de un contactor “KM”. Podrá detenerse en cualquier
momento mediante un pulsador de parada “PARO”.

Para comprender el circuito puedes visualizar la figura siguiente:

Esquema de circuito de arranque-parada de


un motor trifásico

Además, el motor estará protegido mediante un relé térmico “F” que abrirá sus contactos cuando
circule una sobreintensidad por el motor.
Para diseñar este automatismo combinacional realizaremos las tres fases:
1  2  3
Tabla de verdad Función lógica Esquema lógico

Tabla de verdad
Debes preguntarte: ¿cuáles son las condiciones para que la variable M esté activa (valor = 1)?
La respuesta es:

El pulsador de marcha “ENC” debe estar pulsado Y.


El pulsador de parada “PARO” no debe estar pulsado Y.
El relé térmico “F” debe estar cerrado.

Es decir: ENC, PARO y F deben VALER 1.


Por tanto, la tabla de verdad será:

ENTRADAS SALIDA

ENC PARO F M

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 0

1 1 1 1

Función lógica
La función lógica se formaría con la simultaneidad de las tres entradas, es decir, usando el
operador AND o bien el producto de las tres variables:
M = ENC.PARO.F (solo cuando ENC = PARO = F = 1 entonces M vale 1).
Esquema lógico

El operador booleano que se representa indica que las entradas “ENC2”, “PARO” y “F” tienen que ser
ciertas simultáneamente para que se active la salida “M” (motor).

 Aplicación práctica 1



Duración: 20 minutos
Objetivo:

Realizar una tabla de verdad y la función lógica asociada.

Enunciado:
María está diseñando un esquema lógico de un sistema cuyo comportamiento es el siguiente:
Una cinta transportadora es movida por un motor (M) y accionada por un pulsador de marcha
(PM). Traslada una hilera de botellas. En un punto de la cinta existe un sensor (S) que cuenta el
número de botellas. Cuando este es igual a 10, entonces se para la cinta y comienza otro
proceso.
Ayuda a María a obtener la tabla de verdad del proceso, sabiendo que:

La variable de salida M puede valer: 0 (motor parado) o 1(motor encendido).


La variable de entrada S puede valer 0 (conteo menor de 10) o 1 (conteo igual a 10).
La variable de entrada PM puede valer 0 (pulsador no pulsado) o 1 (pulsador pulsado).

Una vez obtenida, escribe la función lógica.


Las instrucciones para realizar la tarea las podrás encontrar en la página principal del curso; tu
valoración será tenida en cuenta para la evaluación final.
1.5 Diseño de automatismos secuenciales

En Automatizaciones 4.0, S. L., cuando se diseñan esquemas lógicos, se deben de nir las
condiciones que originan las salidas en función del estado de las entradas y otros eventos. Son
los automatismos secuenciales. La elaboración de un diagrama de ujo les ayuda a de nir las
condiciones que hacen pasar de una etapa a otra del proceso.

En un automatismo secuencial se suceden distintas operaciones cuyos nexos de unión son condiciones
lógicas que hacen que se siga un ujo de funcionamiento en el proceso. Puedes ver un diagrama de
ujo en el siguiente esquema:

Diagrama de ujo de un automatismo


secuencial

Desde los años setenta han aparecido distintas metodologías de representación de sistemas
secuenciales. No obstante, estas metodologías de representación eran poco prácticas y difícilmente
interpretables, lo que di cultaba el mantenimiento de las instalaciones que materializaban estos
diagramas por parte de personal no especializado.
Ante la necesidad de crear una metodología uni cada y práctica, a la vez que usable, la AFCTE
(Association Francaise pour la Cybernétique Économique et Technique) creó una comisión cuyos estudios
dieron lugar a la creación de un método denominado GRAFCET (Grá co Funcional de Control de Etapas
y Transiciones).
1.6 GRAFCET: resumen histórico



Una herramienta de diseño de automatizaciones muy utilizada en Automatizaciones 4.0, S. L., es
la representación grá ca de GRAFCET. Se trata de una representación grá ca funcional del
proceso muy intuitiva y que proporciona un método sistemático de elaboración.

El método GRAFCET nace de la idea de crear un grá co funcional, fácilmente interpretable por los
distintos profesionales, independientemente de su especialización (ingeniería de diseño, personal de
producción, de mantenimiento).
A partir de 1977 se crean una serie de metodologías de representación grá ca, entre las que destacó el
GEMMA (Guide d´Étde des Modes de Marche et Arrêt) que, desde entonces, ha servido como apoyo del
sistema GRAFCET.
En los años ochenta se produjeron normalizaciones en el ámbito de los diagramas funcionales de los
sistemas automatizados con el n de uni car criterios en la representación.




 Sabías que...

Actualmente, los autómatas programables tienen funcionalidades que permiten traducir los
GRAFCET a un lenguaje máquina entendible por el autómata. No obstante, no debe confundirse
el GRAFCET con un lenguaje de programación. Se trata de un método grá co que, aunque
utiliza el álgebra de Boole para de nir las condiciones lógicas, constituye solo una herramienta
grá ca que facilita la programación en pasos posteriores.

1.7 Diseño basado en GRAFCET





El equipo de diseño de Automatizaciones 4.0, S. L., cuando emplea la herramienta grá ca
GRAFCET divide el proceso a automatizar en operaciones o macroetapas. Cada macroetapa, a
su vez, se divide en una serie de etapas. En cada etapa habrá unas variables de entrada y de
salida asociadas, ligadas por una condición lógica (función de transferencia). El paso de una
etapa a la siguiente se producirá cuando se cumpla una condición de transición entre ellas.

El sistema de representación de GRAFCET se fundamenta en los siguientes principios:


Representación funcional.

Representación de la parte de control del sistema lógico.

Un proceso se divide en distintas operaciones. Una etapa se corresponde con una operación. Si
la operación es compleja, se denomina macroetapa.

Las macroetapas se dividen en etapas más elementales que llevarán asociadas una variable
de estado.

El gráfico indicará la secuencia de las etapas, condiciones lógicas para la transición de una
etapa a otra (condiciones de transición) y las ecuaciones lógicas de las variables de estado de
cada etapa.

El gráfico también contendrá las relaciones lógicas entre entradas y salidas de cada etapa.

De forma esquemática y a nivel general, puedes ver en el siguiente esquema cómo se estructura el
GRAFCET:

Estructura general de un GRAFCET


1.8 GRAFCET: elementos de base y reglas de evolución

En Automatizaciones 4.0, S. L., conocen bien la aplicación del GRAFCET. En primer lugar, es
necesario conocer cuáles son los elementos de base del diagrama (simbología utilizada) y sus
reglas de evolución (representación de las condiciones lógicas en el diagrama).

El GRAFCET está basado en una serie de elementos y reglas de evolución, las cuales se van a
enumerar a continuación:

Elementos de base

Reglas de evolución

1.8.1. Elementos de base


Estos elementos lo constituyen los símbolos a partir de los cuales se forma el grá co GRAFCET. Para
ilustrar estos elementos sobre un GRAFCET, se ha representado en el siguiente esquema un GRAFCET
típico donde puedes observar todos sus elementos:

Grá co GRAFCET en el que se muestran sus


elementos de base

Los elementos básicos que aparecen son los siguientes:


Las etapas
Representan los distintos estados del sistema. Su símbolo gráfico es un cuadrado con un número o
símbolo en su interior. Las etapas iniciales son aquellas que se producen al iniciarse el sistema por
primera vez. Gráficamente son representadas por un cuadrado de doble línea.

Las líneas de evolución


Representan el sentido en el que se suceden las etapas de forma sucesiva. Gráficamente se
representan mediante flechas.

Las transiciones
Representan las condiciones lógicas que deben cumplirse para que finalice una etapa y se suceda
la inmediatamente posterior. Gráficamente se representan mediante líneas cruzadas con las líneas
de evolución.

Los reenvíos
Representan la procedencia o destino de las líneas de evolución. Gráficamente tienen la forma de
flecha.

Mensajes de interpretación
Son mensajes asociados a las etapas o a las transiciones para indicar la actividad desarrollada o las
relaciones entre variables del sistema que deben cumplirse.

Debes tener en cuenta también las siguientes consideraciones:


Dos líneas de evolución cruzadas son interpretadas como no unidas entre sí.

Entre dos etapas solo existe una única condición de transición, que será una función lógica
combinacional cuyo resultado será un “1” o un “0” lógico.

1.8.2. Reglas de evolución


Mediante estas reglas se establecen unas pautas para interpretar de manera única e inequívoca el
funcionamiento del sistema que se representa. Estas reglas son las referentes a:

Las variables de estado


Cada etapa lleva asociada una variable de estado de tipo bit, es decir, puede valer “1” o “0”.

Estados de cada etapa


Una etapa podrá estar activada (estado = 1) o desactivada (estado = 0).

Arranque en frío
El arranque en frío es la inicialización de un proceso, sin existir memoria de ninguna situación
anterior. Por tanto, no existe una variable de estado que almacena ese estado anterior. Cuando se
produce un arranque en frío solo se activan las etapas iniciales, estando el resto de etapas
desactivadas.

Arranque en caliente
El arranque en caliente es la inicialización de un proceso donde se ha guardado la situación
anterior. Es decir, existe una variable de estado que almacena ese estado anterior. Por ello, al
producirse un arranque en caliente se activan las etapas iniciales o bien se mantiene el estado
anterior. El que ocurra una situación o la otra va a depender de una tarea previa de decisión.

Activación de una etapa


Una etapa no inicial se activará cuando previamente se haya activado la anterior y además se haya
cumplido la condición de transición entre las dos etapas.

Desactivación de una etapa


Una etapa no inicial se desactivará cuando se haya cumplido la condición de transición con la
siguiente etapa y se haya activado esta.

Situaciones posibles de una transición


La condición de transición puede encontrarse en distintas situaciones. Observa el siguiente gráfico
que ilustra las distintas situaciones de la transición T2/3. Las etapas que están marcadas con un
punto en su interior son etapas activas en ese instante.

Estados posibles de una transición

Estas situaciones indican que la condición de transición se encontrará en los siguientes modos:

No validada: las etapas inmediatamente anterior y siguiente no están activas.


Validada: la etapa inmediatamente anterior está activa, pero no se cumple la condición de
transición.
Franqueable: la etapa inmediatamente anterior está activa y se cumple la condición de
transición. Esta etapa es transitoria porque inmediatamente conlleva que se active la etapa
siguiente y se desactive la anterior. Es decir, se produciría el franqueado de la transición.
Franqueada: se ha activado la etapa siguiente y se ha desactivado la anterior.

Ciclicidad del GRAFCET


El gráfico GRAFCET debe ser cerrado, ya que los procesos son cíclicos y así debe reflejarse en el
gráfico.



 Actividad de aprendizaje 3

A continuación, realizarás una actividad en la que se te pedirá que identifiques las etapas de un
proceso sencillo.

Estás diseñando una automatización que consiste en un montacargas accionado por un motor
que lo subirá o bajará. Inicialmente el montacargas está en una planta intermedia y cuando se
pulsa un pulsador de marcha, va hacia la última planta. Al llegar allí, inmediatamente baja hasta
la planta baja y así sucesivamente mientras que se mantenga pulsado el pulsador de marcha.
¿Qué estados identificas en este proceso?

a) Las etapas son: ascensor en posición inicial, ascensor hacia arriba, ascensor en planta alta,
ascensor hacia abajo y ascensor en planta baja.

b) Las etapas son: ascensor hacia arriba, ascensor en planta alta, ascensor hacia abajo y
ascensor en planta baja.

c) Las etapas son: ascensor en posición inicial, ascensor en planta alta y ascensor en planta
baja.

d) Las opciones a y b son correctas.

1.9 GRAFCET: ejemplo de diseño


Como ejemplo de diseño se ilustra un proceso en la siguiente figura:

Ejemplo de diseño de un proceso secuencial

Consiste en un alimentador de piezas que, cuando está en la posición de avance, permite que un brazo
con una pinza sujete dicha pieza y a continuación la desplaza 90° hacia la derecha, soltándola en ese
punto. Una vez realizada esta operación, el brazo gira a la izquierda y el alimentador pasa a posición de
retroceso, encontrándose los elementos preparados para repetir el nuevo ciclo.
Todo el proceso se llevará a cabo mediante una serie de sensores de posición y unos actuadores
(denominados “receptividades” en la imagen) que materializarán el automatismo.

Si analizas el proceso completo, distinguirás siete etapas que se suceden secuencialmente:

0 Posicionamiento inicial.

1 Avance del alimentador de piezas.

2 Sujeción de pieza con pinza.

3 Giro de brazo 90° a la derecha.

4 Soltado de pieza.

5 Giro de brazo 90° a la izquierda.

6 Retroceso del alimentador de piezas.

Por tanto, el funcionamiento del proceso podemos representarlo gráficamente mediante el GRAFCET
funcional que aparece en el siguiente esquema:
GRAFCET funcional del proceso

En este esquema puedes observar que se han indicado las condiciones de transición entre etapas. Así,
por ejemplo, si te fijas en el paso de la etapa 3 (“Giro brazo 90° a derecha”) a la 4 (“Soltar pieza”), solo se
activará la 4 y se desactivará la 3 cuando el brazo esté en la posición derecha.

El siguiente paso es la representación del gráfico con sensores y actuadores (GRAFCET operacional).
Puedes verlo en el siguiente esquema:
GRAFCET con sensores y accionamientos

A modo representativo, observa el paso de la etapa 0 a la 1:


En la etapa 0, la acción ejecutada es: A −,B − y C −, es decir, el alimentador está en retroceso, la pinza
está abierta y el brazo giratorio está en la posición izquierda.
En la etapa 1, la acción ejecutada es el avance del alimentador.
Para proceder del paso de la etapa 0 a la 1, los sensores activos serán S1, S3 y S5, es decir, alimentador
en retroceso, pinza abierta y brazo giratorio a la izquierda. Al cumplirse la condición de transición de la
etapa 0 a la 1, se activará la etapa 1, desactivándose la etapa 0. La etapa 1 estará activa hasta que el
brazo de posicionamiento avance hasta S2.

Para finalizar con el diseño, se aborda ahora la tercera fase o fase de diseño del sistema de control. En
esta parte se representa gráficamente cuál es la lógica que sigue el proceso.
Para ello, utilizamos biestables RS. Estos biestables se representan a continuación en la siguiente figura:

Representación de biestable RS

Donde:

R: reseteo (puesta a “0”) de la salida Q.


S: set (puesta a “1”) de la salida Q.
Q: negación o complementario de la salida Q

Así pues, utilizando estos biestables, el esquema de control queda como sigue:

Sistema de control del proceso

Puedes distinguir dos partes en este gráfico de control. A la izquierda se representa la parte
secuencial, mientras que a la derecha se representa la parte combinacional.
Si te fijas primero en la parte secuencial y te centras en el biestable B1, comprobarás que la lógica es
bien sencilla.

Detalle de la lógica de control en el biestable


B1

El reseteo o desactivación de la etapa 1 (Q1) se producirá cuando se active la etapa 2, es decir, cuando
Q2 esté activo (ver A en la figura anterior).
El set o activación de Q1 se producirá cuando: Q0, S1, S3 y S5 estén activos simultáneamente, o bien Q6
y S1 estén activos simultáneamente (ver B en la imagen anterior).
En cuanto a la parte combinacional, observa, por ejemplo, la condición para que se accione A −.

Detalle de la condición lógica de


accionamiento de A −

Se aprecia como para accionar A − debe estar la etapa 6 activada o bien la etapa 0.
 Aplicación práctica 2



Duración: 30 minutos
Objetivo:

Realizar un GRAFCET de un proceso.

Enunciado:
En el montacargas de la tercera actividad de aprendizaje de la unidad, se han identificado las
siguientes etapas: E0, E1, E2, E3 y E4, donde E0 es la etapa correspondiente al estado inicial del
montacargas.
Los sensores y actuadores son:

El pulsador de marcha PMA activa el contactor KMA que sube el montacargas.


El pulsador final de carrera FCA para el montacargas en la planta de arriba.
El pulsador de marcha PMB activa el contactor KMB que baja el montacargas.
El pulsador final de carrera FCB para el montacargas en la planta de abajo.
Cada vez que el montacargas llega a su tope (planta de arriba o de abajo) se para porque se
abre el final de carrera correspondiente y entonces es necesario pulsar el pulsador de marcha
que corresponda (PMA para subir o PMB para bajar) para reanudar de nuevo la marcha.
Realiza el gráfico GRAFCET funcional del proceso, identificando etapas, acciones y condiciones
de transición.
Las instrucciones para realizar la tarea las podrás encontrar en la página principal del curso; tu
valoración será tenida en cuenta para la evaluación final.
1.10 Macroetapas y representación en detalle

Los diseñadores de Automatizaciones 4.0, S. L., se enfrentan a diario con procesos complejos
que contienen multitud de etapas. Es entonces cuando resulta útil la utilización de macroetapas
que permiten representar el proceso de manera más simple. En una segunda fase, se
desarrollan las macroetapas, es decir, se va a nivel de detalle mayor.

Los problemas de automatización complejos se representan en macroetapas. Resulta más sencillo


esquematizar el proceso en macroetapas como una primera fase de aproximación y posteriormente se
pueden desarrollar con detalle estas macroetapas.




 De nición

Macroetapa
Representación de la agrupación de una serie de etapas, cuya utilidad es la de poder
representar un proceso de manera global en una primera fase de diseño.

Las macroetapas en el GRAFCET se representan de la siguiente manera:

Representación de una macroetapa

Puedes observar que se componen de un número, una identi cación de la macroetapa y una etiqueta.

Una vez insertadas las macroetapas en el GRAFCET, deben ser de nidas en detalle. Es lo que se
conoce con el nombre de “expansión de la macroetapa”.
Expansión de una macroetapa

Cuando se introducen macroetapas en un gráfico funcional, debes tener en cuenta las siguientes reglas
en relación a:

A Estructura de la expansión de la macroetapa

B Activación de la macroetapa expandida

C Validación de la transición posterior a la macroetapa

D Macroetapas anidadas

E Subrutinas

Estructura de la expansión de la macroetapa


La expansión de una macroetapa debe contener una única etapa inicial y una única etapa final.

Activación de la macroetapa expandida


El franqueo de la transición anterior a la macroetapa activa la etapa inicial de la macroetapa
expandida.
Validación de la transición posterior a la macroetapa
La activación de la etapa de salida de la macroetapa expandida valida la transición posterior a la
macroetapa.

Macroetapas anidadas
Pueden anidarse macroetapas, es decir, dentro de una macroetapa puede haber otra y así
sucesivamente.

Subrutinas
En muchas ocasiones, las macroetapas son utilizadas como subrutinas. De este modo, una misma
expansión de una macroetapa puede ser llamada desde distintas macroetapas en el gráfico
funcional. La única restricción es que no puede ejecutarse simultáneamente una misma expansión,
llamada desde dos macroetapas en dos puntos distintos del gráfico.

Macroetapa utilizada como subrutina

1.11 Estructuras básicas del GRAFCET





En Automatizaciones 4.0, S. L., cuando se representa un GRAFCET se utilizan estructuras lineales,
de divergencia y convergencia en “O”, así como de divergencia y convergencia en “Y”. La
diferencia entre ellas la determina el número y tipo de condiciones que establecerán la
secuencia entre etapas.

Hasta ahora has visto la estructura de un GRAFCET de tipo lineal, es decir, las etapas se suceden
secuencialmente una tras otra sin existir bucles, bifurcaciones, etc. Sin embargo, en procesos
complejos es necesario representar condiciones que requieren otro tipo de estructuras.
Las tres estructuras básicas de un GRAFCET son las siguientes:
A Estructura lineal

B Estructura de divergencia y convergencia en "O"

C Estructura de divergencia y convergencia en "Y"

Estructura lineal
Se trata de una secuencia lineal de etapas, unidas por líneas de evolución y condiciones de
transición. Cumplen las siguientes propiedades:

a. Solo una etapa se encontrará activa en un momento determinado.


b. Se activa una etapa cuando se encuentra activada la anterior y se cumple la condición de
transición entre ambas.
c. La activación de una etapa implica la desactivación inmediata de la anterior.
d. Una secuencia lineal puede formar parte de otra más compleja.

Estructura de divergencia y convergencia en "O"


Se trata de una bifurcación con las siguientes propiedades:

GRAFCET en estructura de divergencia y


convergencia en 'O'

a. En la divergencia en “O” se inician varios caminos posibles, a cada uno de los cuales se podrá
iniciar si se cumple su condición de transición correspondiente (por ejemplo, en la imagen
anterior, se iniciará la etapa 20 si se cumple la condición C9-2).
b. Cada camino posible puede ser una estructura lineal u otra más compleja.
c. Finalmente, estos caminos convergen en el gráfico para poder cerrar el ciclo.
d. Cada ramal de divergencia es una posibilidad de flujo del proceso. Dependiendo de cuál sea la
condición de transición que se cumpla, el proceso se conducirá por uno u otro camino. Solo
discurrirá el proceso por uno de estos caminos.

Estructura de divergencia y convergencia en "Y"


Se trata de una bifurcación con las siguientes propiedades:

GRAFCET en estructura de divergencia y


convergencia en 'Y'

a. En la divergencia en “Y” se inician varios caminos. Todos ellos se iniciarán si se cumple una
única condición de transición (en la imagen anterior, la condición es C9).
b. Cada camino puede ser una estructura lineal u otra más compleja.
c. Finalmente, estos caminos convergen en el gráfico para poder cerrar el ciclo.
d. Todos los ramales de divergencia se iniciarán simultáneamente en el momento en que se
cumpla la condición de transición común.



 Recuerda

El cumplimiento de las condiciones de transición permite el paso hacia la etapa siguiente.


En las estructuras de divergencia y convergencia en “O” existen varias condiciones de transición
en la divergencia, una para cada camino posible.
En las estructuras de divergencia y convergencia en “Y” existe una única condición común en la
divergencia, cuyo cumplimiento activa las etapas de inicio de todos los caminos de la
divergencia de manera simultánea.
1.12 Diagramas de ujo y diagramas GRAFCET



En Automatizaciones 4.0, S. L., saben muy bien que la representación de automatismos mediante
diagramas de flujos tiene sus limitaciones. Esta herramienta es muy usada en el ámbito de la
programación informática, pero a la hora de representar automatizaciones no es capaz de
reproducir el orden lógico real en que se suceden las etapas. Por ello, la herramienta gráfica más
utilizada es GRAFCET.

Un diagrama GRAFCET no debe considerarse como un diagrama de flujo convencional. Se diferencian


entre ellos en una serie de aspectos que los hacen totalmente distintos. Estos aspectos se relacionan a
continuación:

 3 Momento de ejecución de las tareas

3
En un diagrama de flujo las tareas se ejecutan secuencialmente en un barrido del
procesador. Sin embargo, en un GRAFCET es el proceso el que determina cuándo se
ejecutan las tareas, independientemente del ritmo de procesamiento.

 4 Simultaneidad de tareas

4
Un diagrama de flujo no puede representar proceso multitarea, mientras que un
GRAFCET puede hacerlo. Es el caso que ocurre, por ejemplo, en una estructura de
divergencia y convergencia en “Y”.

 5 Ejecución de los bucles

5
La ejecución de un bucle en un diagrama de flujo significa que en ese momento solo se
pueden ejecutar las tareas que forman parte de dicho bucle. Sin embargo, en un
GRAFCET pueden existir otras tareas externas al bucle que pueden estar ejecutándose
simultáneamente.

 6 Separación combinacional/secuencial

6
Un GRAFCET debe separar las tareas combinacionales de las secuenciales, mientras que
un diagrama de flujo no hace tal distinción.

 7 Compilación a lenguaje máquina


7
Un diagrama de flujo no contiene información suficiente para poder deducir el programa
de control. Sin embargo, de la compilación del GRAFCET sí se obtiene un programa en
lenguaje máquina.

A continuación, se muestran algunos ejemplos de diagramas de flujo y de GRAFCET donde se


representan diferentes bucles y saltos de programación:
1.13 Etapas iniciales, preposicionamiento y alarmas



Una de las tareas más importantes del equipo de diseño de Automatizaciones 4.0, S. L., es la
definición del tratamiento preliminar. Es decir, cuáles son las condiciones de arranque del
proceso la primera vez que se pone en marcha (arranque en frío) y prever un arranque en
caliente. Este se producirá tras una interrupción del programa, lo que hará que el sistema vuelva
a la posición donde se produjo la interrupción (preposicionamiento).
La definición de las condiciones de alarmas será también otra tarea que incluir dentro del diseño
del automatismo.

Las etapas iniciales en el funcionamiento de un sistema son las correspondientes a arranque en frío y a
arranque en caliente.
Un arranque en frío es el inicio del proceso en la primera vez. Sin embargo, un arranque en caliente es
la iniciación del proceso tras una interrupción anómala del sistema. Un ejemplo sería el corte de tensión
eléctrica durante el funcionamiento de un proceso. En el arranque en caliente se deben conservar
valores previos a la interrupción, para que se pueda arrancar en las mismas circunstancias anteriores al
corte.
Tanto el arranque en caliente como en frío forman parte del tratamiento preliminar, donde debe
decidirse cuál de los dos tipos de arranque se va a ejecutar. Existen unas variables internas cuyo valor
determinará el tipo de arranque que debe hacerse.
La estructura de una GRAFCET dividida en bloques de ejecución es la siguiente:

Tratamiento preliminar

Tratamiento secuencial

Tratamiento combinacional
Estructura de un GRAFCET en bloques de
ejecución

El tratamiento preliminar se ejecuta solo en el primer ciclo después de un arranque. El arranque será en
frío o en caliente. El arranque en caliente recuperará datos almacenados previos a la interrupción y las
variables de sistema que determinará el preposicionamiento (estado en que debe comenzar de nuevo
el proceso tras una interrupción).
Los tratamientos secuencial y combinacional se ejecutan durante todo el proceso de manera cíclica,
una vez que se haya finalizado el tratamiento preliminar.
Otra cuestión que hay que considerar es la activación de una alarma cuando se produzca una situación
anómala durante el funcionamiento del proceso. Para incorporar esta circunstancia en el GRAFCET se
establece una condición genérica de alarma común a todas las etapas del GRAFCET que interrumpiría
el funcionamiento del proceso en ese momento.



 Actividad colaborativa 1

Es el momento de realizar la siguiente Actividad colaborativa. No obstante puedes seguir


estudiando la unidad didáctica y realizar esta actividad en otro momento que te sea más
favorable.

En esta actividad vas a continuar la aplicación práctica anterior. Deberás identificar los sensores y
actuadores en el proceso del montacargas para elaborar el gráfico GRAFCET operacional.
Comparte tu diagrama con el resto de compañeros/as y comprobad que habéis elegido las
mismas acciones y condiciones de transición entre etapas.

Para realizar las Actividades colaborativas debes acceder a la página principal del curso, allí
encontrarás la información necesaria para realizarla. Podrás identificar las Actividades
colaborativas por la numeración correspondiente.
1.14 Puestas en marcha y paradas: GEMMA
En Automatizaciones 4.0, S. L., representan los procesos mediante la metodología GEMMA. Esta
herramienta permite introducir en un GRAFCET los modos de marcha y paro posibles que van a
producirse. De esta manera, se tiene en un GRAFCET toda la información completa que permite
desarrollar el programa de control.

El método GEMMA se crea como desarrollo de una herramienta gráfica que permita diseñar los
distintos comportamientos de un proceso. Consiste en la representación de una serie de estados
tipificados del proceso (fotografías en distintos momentos del proceso) y también de la posible
evolución entre estos estados.
Por tanto, la herramienta GEMMA permitirá tener una hoja de ruta sobre cómo debe avanzar el sistema
en los distintos estados posibles.
En primer lugar, es preciso hacer las siguientes consideraciones:

Cada estado posible se representa mediante un "rectángulo de estado".

El camino posible entre un estado y otro se representa mediante "líneas orientadas".

Las "condiciones de evolución" reflejan la condición necesaria para el cambio de un estado a


otro.

Puedes ver el diagrama GEMMA en la siguiente imagen:

Grá co GEMMA que muestra todos los estados


posibles de un proceso
Los estados posibles en GEMMA se agrupan en tres grandes familias:

 8 FAMILIA F (ESTADOS DE FUNCIONAMIENTO)


8
Son todos los estados posibles que pueden producirse en el funcionamiento del
proceso. Se encuentran tipificados en GEMMA los siguientes:

1. F1 (producción normal). Comprendido por todas las etapas que intervienen en el


funcionamiento normal del proceso. Gráficamente se representa mediante
rectángulo con trazo más grueso.
2. F2 (marcha de preparación). Comprende todas las etapas preparatorias para la
producción (preparación de utillajes, precalentamiento, etc.).
3. F3 (marcha de finalización). Comprende las etapas necesarias para finalizar un
proceso porque sea necesario adaptar la producción a otras condiciones. Por
ejemplo, cambio de utillaje para empezar a producir otro producto distinto.
4. F4 (verificación de marcha en desorden). Compuesto por etapas que verifican partes
del proceso en un orden distinto del que sigue el ciclo.
5. F5 (verificación de marcha en orden). Compuesto por etapas que verifican partes del
proceso en el mismo orden que sigue el proceso.
6. F6 (marcha de test). Compuesto por etapas donde se realizan operaciones de tipo
mantenimiento.

 9 FAMILIA A (ESTADOS DE PARO)


9
Son todos los estados posibles que pueden producirse en una parada del proceso. Se
encuentran tipificados en GEMMA los siguientes:

1. A1 (paro en estado inicial). Corresponde al estado inicial de reposo. Gráficamente se


representa como un cuadrado de doble trazo.
2. A2 (demanda de paro a final de proceso). Cuando se solicita este paro, el proceso
debe continuar hasta el final del ciclo y entonces detenerse, es decir, ir hacia el
estado A2.
3. A3 (demanda de paro en un estado intermedio). Cuando se solicita este paro, el
proceso se detendrá en ese mismo punto de solicitud. Es decir, se iría a un estado A4.
4. A4 (paro en estado intermedio). Corresponde al paro en un punto intermedio del ciclo
(ni en el inicio ni en el final).
5. A5 (preparación de arranque después de un fallo). Es un estado en el que se deben
realizar las operaciones necesarias para una nueva puesta en marcha.
6. A6 (inicialización de la parte operativa). Estado en que se prepara la parte operativa
para efectuar un reinicio desde las condiciones iniciales. Es, por tanto, un transitorio
hacia el estado A1.
7. A7 (preposicionamiento de la parte operativa). Estado en que se prepara la parte
operativa para efectuar un reinicio desde unas condiciones distintas de las iniciales.
Es, por tanto, un transitorio hacia el estado A4.
 10 FAMILIA D (ESTADOS DE FALLO)

10
Son todos los estados posibles que pueden producirse en un fallo del proceso. Se
encuentran tipificados en GEMMA los siguientes:

1. D1 (paro de emergencia). Este estado conlleva un paro inmediato y acciones que


limiten el daño a personas y la producción.
2. D2 (diagnóstico o tratamiento del fallo). Comprende las acciones a ejecutar para
averiguar las causas del fallo. Este estado conducirá a A5 o hacia D3.
3. D3 (seguir en producción con fallo). Comprende este estado la continuación de la
producción, incluso persistiendo el fallo.

1.15 Método general de diseño basado en GEMMA





De esta manera, en Automatizaciones 4.0, S. L., se desarrolla GEMMA en las siguientes fases: 1)
GRAFCET funcional, 2) GRAFCET operacional, 3) Elección de modos de marcha y paro (GEMMA),
4) Definición de condiciones entre estados (GEMMA), y 5) Desarrollo de GRAFCET completo.

Mediante el diseño del proceso basado en el método GEMMA se avanza en el diagrama GRAFCET que
hasta ahora solo reflejaba los estados de funcionamiento, sin contemplar las situaciones de paro y de
fallo.
El método GEMMA viene a completar el diagrama para contemplar todos estos casos.
Se deben seguir unos pasos sistematizados para aplicar GEMMA. Estas etapas se muestran a
continuación:

1. Representar el GRAFCET funcional de base

2. Representar el GRAFCET operacional (sensores y actuadores)

3. Definir los modos de marcha y paro con la ayuda de GEMMA

4. Definir las condiciones de evolución entre estados con la ayuda de GEMMA

5. Formular el GRAFCET completo (contempla, además de la producción normal, las


situaciones de paro y fallo)
A la hora de efectuar el paso 3 deben considerarse al menos dos bucles básicos:

Bucle de funcionamiento-paro normal

Bucle de funcionamiento-fallo-paro en estado inicial

Representación de bucles de evolución en


GEMMA




 Actividad de aprendizaje 4

A continuación, realizarás una actividad en la que se te pedirá que definas un bucle GEMMA al
establecer la secuencia de estados posibles.

Has completado el diseño de una automatización, pero aún te queda por definir el
comportamiento del sistema ante un fallo inesperado. Se quiere que cuando el sistema esté en
producción y se produzca un fallo, debe seguirse produciendo con el fallo, demandarse una
parada a final de ciclo y que el paro se produzca en el estado inicial. ¿Cuál sería la secuencia de
estados GEMMA?

a) Las etapas son: F1 → D3 → A2 → A1 → F1.

b) Las etapas son: F1 → D2 → A1 → F2 → F1.

c) Las etapas son: F1 → D2 → A1 → F2 → F1.

d) Todas las opciones son incorrectas.

1.16 Paros de emergencia





Otro aspecto que deben considerar en Automatizaciones 4.0, S. L., en el diseño es la inclusión de
las paradas de emergencia en el proceso. Se trata de paradas que pueden producirse en
cualquier momento mientras que se está ejecutando el programa de control. Una parada de
emergencia implicará una interrupción de todas las etapas del proceso principal y una activación
de tareas específicas de emergencia que indicarán la forma de actuar ante este evento.

El paro de emergencia es una situación que puede producirse desde cualquier etapa del proceso.
Puede considerarse como si cualquier etapa dispusiera de una bifurcación de tipo “O” (ver siguiente
imagen) que posibilitara la salida hacia un paro de emergencia (estado D1 de GEMMA). Sin embargo,
cuando el proceso es complejo y presenta muchas etapas, es poco operativo en la práctica materializar
la parada de emergencia de esta forma.
Se recurre entonces a que una situación de parada provoque un bloqueo inmediato de todas las
acciones asociadas a cada etapa y que se entre en un GRAFCET de alarma genérico donde se decide
cómo actuar ante esta parada.
Tratamiento de un paro de emergencia en un
GRAFCET

1.17 Ejemplo de diseño


Como ejemplo de diseño de la aplicación de la metodología GEMMA vamos a representar el
funcionamiento de un proceso simple.
Consiste en un taladro industrial que puede girar a derechas o a izquierdas y lo hace secuencialmente
con unos temporizadores. El funcionamiento es como sigue:

Inicialmente el motor está parado. Al pulsar un pulsador de marcha PM, se activa un contactor
KMD que mueve el motor a derechas durante un tiempo T1 controlado por un temporizador.

Una vez que ha transcurrido el tiempo T1, se activará el contactor KMI que mueve el motor a
izquierdas que girará durante un tiempo T2 controlado por otro temporizador.
Finalizado este ciclo, si sigue el suministro eléctrico, se iniciará un segundo ciclo, y así
sucesivamente.

En cualquier momento del proceso puede pulsarse un pulsador de parada de emergencia que no
parará el proceso hasta que este llegue a final de ciclo.
Como pulsadores tenemos:

PM (normalmente abierto)
Valdrá 1 cuando se pulse y 0 cuando no esté pulsado.

PE (normalmente cerrado)
Es la parada de emergencia. Los valores de su estado se almacenarán en una variable MPP, de
manera que cuando PE se pulse, se almacenará en MPP el valor 0.

Como actuadores se encuentran:


KMD
Es el contactor que mueve el motor a derechas.

KMI
Es el contactor que mueve el motor a izquierdas.

1.17.1. Representación del GRAFCET funcional


Se representan aquí las acciones en cada etapa de manera literal y se identifican también cuáles son
las condiciones de transición para pasar de una etapa a la siguiente. Estas condiciones también se
transcriben de manera literal. Puedes ver cómo se representa este gráfico funcional a continuación:
1.17.2. Representación del GRAFCET operacional
En esta representación, en las acciones de cada etapa se indican cuáles son los actuadores que
realizan esas acciones. Y en las condiciones de transición, se indica cuáles son los sensores o entradas
de cualquier tipo que activan dichas transiciones. El GRAFCET operacional queda como sigue:

1.17.3. Definición de los modos de marcha y paro (GEMMA)


Se definen los siguientes modos de marcha y paro:
Modo de marcha
Desde la parada inicial hay que pulsar el pulsador de marcha PM.

Modo de paro
Definido por el estado A1 (parada en estado inicial).

Para pasar al estado A1, debe pasar por el estado A2, que se corresponde con la demanda de paro a
final de ciclo. Por tanto, aunque se pulse la parada de emergencia en mitad del ciclo, la parada se
produce al final de este.

Selección de los modos de marcha y paro en


GEMMA

1.17.4. De nición de condiciones de evolución entre estados


Los estados elegidos configuran un esquema como el siguiente:
Modos de marcha y paro en GEMMA con las
líneas orientadas

Las condiciones de evolución resultan como se muestra a continuación:

De F1 a A2
MPP = 0 (pulsador de parada de emergencia pulsado).

De A2 a A1
Preguntar la condición a final del ciclo y enlazar con la primera etapa; depende su activación de
que exista tensión eléctrica.

1.17.5. Representación del GRAFCET completo


En este GRAFCET se incorporan al GRAFCET operacional y las condiciones de GEMMA, resultando el
GRAFCET completo siguiente:


 Nota

Observa que los estados del pulsador de paro representan lo siguiente:

Pulsador paro sin pulsar: MPP = 1; MPP = 0.


Pulsador paro pulsado: MPP = 0; MPP = 1.
UA 2: Lenguajes y programas en los autómatas programables

2. Programación del autómata





Cuando Automatizaciones 4.0, S. L., se dispone a desarrollar el programa de control, debe definir
previamente elementos como las variables que va a utilizar y sus direccionamientos, los
contadores y los temporizadores, así como elegir el lenguaje de programación. Una vez
definidos estos elementos y el programa esté terminado, llega la hora de simularlo e identificar
posibles fallos de sintaxis detectados en la compilación. Los entornos de programación de los
autómatas actuales permiten la simulación del programa en el PC, de modo que cuando se
cargue en el PLC ya se está seguro de que el programa correrá sin problemas.

2.1 Introducción
La programación del PLC no se limita solo a la elaboración del programa en un lenguaje determinado,
sino que conlleva también una serie de tareas que permitirán que el PLC finalmente pueda ejecutar el
programa de control.
Estas tareas se relacionan a continuación:

1 Definir las entradas y salidas y asociarlas a direcciones reconocibles por el autómata


mediante una tabla de asignación.

2 Definir y nombrar los bits, contadores y temporizadores.

3 Elaborar el programa de control en el lenguaje seleccionado.

4 Cargar o transferir el programa desde el PC al PLC.

5 Compilación del programa que detecte posibles fallos de programación, a través de


una simulación.

Hoy día, el entorno de programación de los PLC permite realizar una compilación del programa en un
simulador de PLC. Por tanto, la carga puede realizarse previamente en un PLC simulado. Esto evitará
transferir al PLC un programa que presente errores y que sería ejecutado con interrupciones.



 Definición

Compilación
Acción ejecutada por el procesador que consiste en la traducción del programa en código
fuente (en un lenguaje de programación específico) a un programa en código fuente (lenguaje
entendible por el procesador basado en el código binario de ceros y unos).

2.2 Representación de sistemas de control





La representación del sistema de control es crucial para Automatizaciones 4.0, S. L. La elección
del modelo de representación GRAFCET (tipo gráfico) o una simple descripción literal va a
depender de la complejidad que presente el proceso que se va a automatizar.

El sistema de control de un automatismo contiene la lógica que debe ejecutarse en sus procesos. El
seguimiento de esta lógica reproducirá el funcionamiento correcto del sistema automatizado.
Es crucial poder representar este sistema de control de manera clara, como paso previo a la
elaboración del programa de control.
La creación de símbolos estandarizados ha ayudado de manera importante a la creación de gráficos
que describen los procesos con una mayor claridad. El uso de estos símbolos ha conducido a la
creación de distintos modelos de representación de sistemas automatizados. Estos modelos se
agrupan en los siguientes:

 1 1) MODELOS ALGEBRAICOS: funciones booleanas y aritméticas

1
Este modelo aplica operaciones aritméticas y del álgebra de Boole a variables de tipo
todo o nada.
Un ejemplo puede ser una alarma S que se activa cuando el contacto C esté cerrado y
los estados A y B estén en estados opuestos.
Si abierto es el estado “0” y cerrado el “1”, entonces la función será:
S = (A.B + A.B) C.

 2 2) MODELOS GRÁFICOS: esquema de relés, diagramas lógicos, diagramas de


ujo y GRAFCET
2
Son modelos que utilizan gráficos en lugar de funciones para representar el sistema de
control. Son de los siguientes tipos:

a. Esquema de relés: el esquema de relés es la representación gráfica de las tareas de


automatización mediante símbolos de contactos abierto-cerrado. La función
obtenida dependerá de las conexiones entre los distintos contactos de los relés que
intervienen.
b. Diagramas lógicos: la representación del sistema de control por diagramas lógicos
se basa en el empleo de símbolos que representan funciones lógicas directas del
álgebra de Boole (AND, OR, etc.) o sistemas lógicos más complejos (biestables,
registros, contadores, etc.).En el siguiente gráfico puedes observar la misma
automatización representada en el apartado 1) “Modelos algebraicos” de
comportamiento de una alarma, en diagrama lógico:

Diagrama lógico del comportamiento de una


alarma que se rige por la función S = (A.B + A.B) C.

c. Diagramas de flujo. A través de una serie de símbolos se representa una secuencia


de tareas según una temporalidad o una condicionalidad.

Diagrama de ujo que representa la lógica de un


proceso

d. GRAFCET. Estos sistemas de representación gráfica de automatizaciones se vieron


con detalle en los apartados 2.1.6 a 2.1.12.

 3 3) Descripciones literales

3
Se explica en el siguiente apartado.

Las descripciones literales las puedes encontrar en el siguiente apartado.


2.3 Descripciones literales



En Automatizaciones 4.0, S. L., no se suele emplear la descripción literal como modo de
representación del sistema de control del proceso. Solo en el caso de procesos simples donde
no sea necesario el desarrollo exhaustivo de condiciones lógicas se emplea este método.
La descripción del proceso y su control puede hacerse mediante la enumeración literal de las acciones
a desarrollar por este, expuestas secuencialmente y con indicación de las condiciones de activación en
cada caso. La ventaja de utilizar estas descripciones es que no se necesitan conocimientos previos
para de nir los procesos, siendo entendible por cualquier usuario. En contra está que esta explicación
no tendrá especi caciones en los procesos, en las variables y en las relaciones entre ellos.
Por estas razones, este tipo de representación carece de rigor, ya que, al no existir pautas que seguir en
su desarrollo, el resultado de la descripción pudiera resultar ambiguo o que diera lugar a más de una
interpretación del proceso.
2.4 Identificación de variables y asignación de direcciones



En la fase de desarrollo del programa de control, en Automatizaciones 4.0, S. L., se definen
cuáles van a ser las variables que van a intervenir en dicho programa. Posteriormente se hará
una asignación de direcciones (direccionamiento) de las variables en una tabla de asignación.
Esto permitirá a la CPU localizar estas variables cuando lo requiera según el programa de
control.

2.4.1. Identi cación de variables


Las variables van a representar magnitudes del proceso a automatizar que serán usadas por el
programa de control. Básicamente, las magnitudes que se presentan son de dos tipos:

Una magnitud digital es aquella que toma valores finitos. Dentro de estas magnitudes encontramos
dos tipos:
1 De dos
De dos estados
estados posibles
posibles (todo-nada)
(todo-nada)

2 De finitos estados posibles

De dos estados posibles (todo-nada)


Estas magnitudes valdrán “0” o “1”. Se representarán mediante una variable de tipo bit (un único
dígito que puede valer “0” o “1”). Ejemplo: un final de carrera es un pulsador normalmente abierto
que solo tendrá dos estados posibles: cuando está pulsado (valor “0”) y cuando no está pulsado
(valor “1”).

De finitos estados posibles


Estas magnitudes son de tipo numérico y pueden valer cualquier número siendo el número de
estos finito. Se representarán mediante una variable de tipo byte (conjunto de bits). Con un byte de
n bits podremos representar 2n números distintos. Un ejemplo de este tipo de magnitudes puede
ser el número de copias que hace una fotocopiadora en un día.



 Ejemplo

Una magnitud analógica es aquella que puede tomar un número infinito de valores. Por
ejemplo, la temperatura de un fluido podrá valer cualquier número real con tantos decimales
como sea, por tanto, su rango es infinito. Si definimos una resolución (por ejemplo, tomar solo
dos posiciones decimales), entonces transformamos una magnitud infinita en una variable
discreta. Esto significa que una magnitud analógica se puede representar también con una
variable digital.

Por tanto, nuestras variables se reducirán a los dos tipos siguientes:

Respecto al control de procesos, es preciso indicar qué tipo de variables existen y cuáles son sus
funciones en este control.
Un control de procesos se basa en la observación y manipulación de una variable controlada para que
sus valores sean los deseados y no sean perturbados por otras señales. Para comprender estos
conceptos, debes aprender las siguientes definiciones acerca de las variables que aparecen en un
control de procesos:
Variable controlada
Es la variable que se quiere controlar en el proceso, generalmente una variable de salida.

Perturbaciones
Son aquellas señales que afectan a nuestra variable controlada modificando su valor y, por tanto,
alejándola de los valores que deseamos.

Variable manipulada
Es una variable cuyo valor ha sido modificado por el programa de control.

Control
Es la aplicación de las variables manipuladas para corregir el efecto indeseado de una
perturbación sobre la variable controlada.

Representación de un control de procesos

2.4.2. Asignación de direcciones


Las variables deben estar asociadas a una dirección de memoria que permite al autómata localizar,
leer y escribir en dichas variables.
La asignación de direcciones a las variables se hará de dos maneras posibles:

Asociada al lugar físico de las entradas o salidas


En esta forma de asignación, la dirección que ocupa la variable se corresponde con la entrada o
salida física que le corresponde en el PLC. Por ejemplo, si una variable de entrada es un pulsador
que está conectado en la entrada 0.2, significa que todos los de esa variable se almacenarán en el
bit N.º 2 del byte N.º 0, por tanto, se le asignaría a la variable la dirección I0.2, donde:

I: indica que es variable de entrada.


0: indica byte N.º 0.
2: indica bit N.º 2.

Asociada al espacio de memoria que ocupa la variable


Todas aquellas variables de memoria que en función del espacio ocupado se denotarán con una
nomenclatura determinada. Por ejemplo, a una variable numérica que necesite un byte para
almacenarse puede asignársele la dirección MB2, donde:

M: indica posición de memoria.


B: indica el espacio de memoria necesario para almacenar la variable (1 byte).
2: indica una identificación, que no podrá repetirse para otra variable de tipo byte.
 Aplicación práctica 3



Duración: 10 minutos
Objetivo:

Realizar la función lógica de un diagrama lógico.

Enunciado:
Estás realizando un modelo lógico y necesitas obtener la función lógica a partir de él. Has
llegado al siguiente diagrama:

Escribe la expresión de la función lógica que expresa el valor de la salida S.


Las instrucciones para realizar la tarea las podrás encontrar en la página principal del curso; tu
valoración será tenida en cuenta para la evaluación final.

2.5 Lenguajes de programación





La elección del lenguaje de programación en Automatizaciones 4.0, S. L., va a depender de la
practicidad y de la posibilidad de la programación en el lenguaje elegido en el entorno de
programación del autómata. En general, podrá optar por lenguajes de tipo texto (en general,
lenguajes de abajo nivel) o de tipo gráfico (lenguajes de alto nivel, como el lenguaje de
contactos o LADDER).

Los lenguajes de programación permiten al programador o al usuario interaccionar con el PLC,


estableciendo una comunicación entre ellos.
Existen distintos tipos de lenguajes de programación:
Lenguajes de programación

De texto

Texto estructurado (ST)

Lista de instrucciones (IL)

Grá cos

Diagrama de funciones secuenciales (SFC) o GRAFCET

Lenguaje de contactos (LD)

Diagrama de bloques de funciones (FBD)

Los lenguajes de texto en el ámbito de los PLC suelen ser lenguajes de muy bajo nivel, es decir,
lenguajes poco intuitivos o entendibles por el usuario. Formados por secuencias de instrucciones en
forma de textos, son lenguajes aún complejos para el programador. Dentro de estos tipos se
encuentran los siguientes lenguajes:

Lista de instrucciones (IL)


Muy parecida al lenguaje ensamblador, actualmente se usa poco, y solo para aplicaciones
pequeñas, debido a su alto nivel de complejidad.

Texto estructurado (ST)


Semejante al lenguaje PASCAL, dispone de toda la funcionalidad necesaria para realizar
operaciones más complejas.

Los lenguajes gráficos son considerados como “lenguajes de alto nivel”. Poseen una interfaz gráfica, la
cual facilita su programación al interconectar unos elementos con otros de una manera establecida
por las reglas del propio lenguaje. Estos lenguajes tienen sus limitaciones en cuanto a la configuración
de parámetros, pues aunque hay algunos que son reconfigurables desde el mismo proceso o
mediante una interfaz de parámetros de la máquina, otros solamente son configurables desde la
misma interfaz de programación, lo que afecta al dinamismo del proceso. Dentro de estos tipos se
encuentran los siguientes lenguajes:

 4 Diagramas de bloques funcionales (FBD)

4
Utiliza bloques de funciones que generan unas salidas a partir de unas entradas y una
memoria (variable estática). La lógica interna del bloque puede ser combinacional o
secuencial (con variable estática). Además, se emplean las funciones empleadas para
las compuertas lógicas (OR, AND y NOT).
En la figura siguiente tienes un extracto de un programa en lenguaje FBD:

Funciones AND y bloque funcional CTUD en un


programa en lenguaje FBD

 5 Lenguaje de contactos (LD)

5
Es un lenguaje inspirado en el funcionamiento de los relés. El flujo del proceso va de
izquierda a derecha en cada uno de los escalones en que se divide el programa gráfico.
Las condiciones se establecen mediante unas entradas que serán representadas
mediante contactos (abiertos o cerrados) y elementos auxiliares como contadores,
temporizadores, distintas operadores, etc. Las salidas van a ser siempre en forma de
relés que activarán las salidas físicas del proceso según la lógica establecida.

 6 Diagramas de funciones secuenciales (SFC)

6
Permiten especificar procesos de automatización mediante flujos lógicos de una forma
secuencial. El programa se estructura mediante subrutinas que tienen como inputs el
resultado de otras subrutinas o bien entradas físicas del PLC. Los flujos que se producen
cambian de dirección, en función de la salida de la subrutina actual, lo que permite
activar una u otra subrutina, dada la dirección que tome el flujo. Es un tipo de lenguaje
que proviene del modelo GRAFCET.

Para que tengas una visión general, puedes observar el siguiente esquema:
Representación de los distintos lenguajes de
programación de un PLC

Vamos a describir ahora el lenguaje de texto estructurado (ST).


Se trata de un lenguaje de programación basado en texto, similar a PASCAL, BASC y C. Las tareas del
programa se presentan en una serie de instrucciones con una estructura mucho más clara que en el
leguaje de lista de instrucciones (IL). En concreto se usan las estructuras de: IF, WHILE, FOR y CASE
para formar los bucles condicionados.
En STEP 7, el lenguaje estructurado se denomina SCL. Un extracto de un programa en este lenguaje se
muestra a continuación:

Extracto de programa en lenguaje de texto


estructurado

A continuación, describimos el lenguaje de funciones secuenciales (SFC).


Se trata de un lenguaje de programación basado en gráficos e inspirado en el diagrama GRAFCET. Por
tanto, se estructura también en etapas o pasos que se suceden a través de transiciones. Cada etapa
contiene programas en cada lenguaje estándar.
Cada etapa puede estar activa o inactiva. Cuando una etapa está activa, se ejecutan las instrucciones
asociadas hasta que esta etapa pasa a ser inactiva.
Un extracto de un programa en lenguaje de funciones secuenciales se muestra en el siguiente
esquema:

Extracto de programa en lenguaje de


funciones secuenciales
2.6 Lenguajes booleanos y lista de instrucciones



En Automatizaciones 4.0, S. L., utilizan lenguajes booleanos para procesos simples en los que
los operadores lógicos pueden describir el proceso con exactitud. En procesos complejos,
optan por un lenguaje de texto de lista de instrucciones, con mayores posibilidades de
manipulación de datos y de efectuar operaciones de todo tipo.

2.6.1. Lenguajes booleanos


Los lenguajes booleanos se caracterizan por estar formados por un conjunto de instrucciones que
proceden de las funciones del álgebra de Boole. Estas funciones son las siguientes:

FUNCIÓN OR

FUNCIÓN AND

FUNCIÓN NOT

FUNCIÓN OR
Función suma lógica. Si alguna de las entradas es verdadera, entonces la salida es verdadera.

FUNCIÓN AND
Función producto lógico. Todas las entradas deben ser verdaderas simultáneamente para que la
salida sea verdadera.

FUNCIÓN NOT
Función negación. La salida es la negación de la entrada booleana.

Estas instrucciones se complementan con otras de inicio de sentencia y asignación de resultados: LOD
(leer variable inicial) y OUT (enviar resultado a salida), y de operaciones de bloques: OR LOD (coloca
bloque en paralelo) y AND LOD (coloca bloque en serie).
Además de las funciones booleanas y las instrucciones antes mencionadas, se emplean otras
instrucciones que realizan otras tareas complementarias. Estas son las instrucciones secuenciales
predefinidas:

TIM

CNT
SET

RST

TIM
Se utiliza para definir un temporizador.

CNT
Se emplea para definir un contador.

SET
Se usa para activar una variable binaria.

RST
Se utiliza para desactivar una variable binaria.

2.6.2. Lista de instrucciones


La mayor parte de los lenguajes de texto incluyen extensiones al lenguaje booleano básico descrito
anteriormente, que permiten la manipulación de datos y variables digitales y la gestión del programa,
como pueden ser las instrucciones aritméticas, las de manipulación de datos o las de gestión de
programas. Como resultado, se obtiene un lenguaje específico de identidad propia, denominado como
lista de instrucciones.


 Ejemplo

En el sistema operativo STEP 7, desarrollado por Siemens, este lenguaje se denomina STL. En la
siguiente imagen tienes un programa en este lenguaje y la estructura que presentan las
instrucciones:

2.7 Diagramas de contactos





Un lenguaje de tipo gráfico muy usado en la industria y también por Automatizaciones 4.0, S. L.,
es el lenguaje de contactos (o lenguaje LADDER). Se trata de un lenguaje muy intuitivo que
representa las variables de entrada como contactos y las variables de salida como bobinas. La
lógica seguida en cada rama presenta analogía con el comportamiento de circuitos
(comportamiento en serie y paralelo) y pueden efectuarse operaciones de todo tipo:
matemáticas, de comparación, de tiempos, de memoria, etc.

La estructura del programa se basa en ramas que van de izquierda a derecha. En cada rama se sitúan
las entradas (parte izquierda) y las salidas (parte derecha). Las entradas son variables binarias
representadas como contactos abiertos (como el de la variable I0.1) o cerrados (como el de la variable
I2.3).
Estructura de un programa en lenguaje de
contactos

Las salidas son los relés situados a la derecha que simbolizan el estado de las salidas del autómata.
El programa se ejecuta de izquierda a derecha y de arriba abajo, interpretándose la lógica
representada en las ramas. Por ejemplo:

En la primera rama, si se actúa sobre I0.1, entonces activará el relé Q0.3.

En la tercera rama, sin actuar sobre I2.3, se activaría el relé Q1.0.

La lógica de las ramas se interpreta por analogía a los operadores booleanos AND y OR. De esta
manera, dos contactos en serie simbolizan la condición AND, mientras que si están en paralelo,
simbolizan la condición lógica OR.

Lógica AND y OR en una rama


Esta rama se interpreta de la siguiente manera:
Si I0.1 se cierra Y I1.2 se cierra Y I3.4 O I1.1 se cierran, entonces se activaría el relé Q3.0. Observa que las
condiciones Y y O corresponden a los operadores lógicos AND y OR.





 Video

En el siguiente enlace puedes visualizar un vídeo donde se explican todos los conceptos
básicos que debes saber para programar en lenguaje de contactos (LADDER):

Introducción a LADDER ()



 Actividad de aprendizaje 5

A continuación, realizarás una actividad en la que se te pedirá que elijas cuál es el


funcionamiento de un diagrama de contactos LADDER.

Has encontrado un extracto de la programación de un autómata que tienes en la planta de


producción y necesitas interpretarlo para poder comprender el proceso. El extracto es el
siguiente:

Sabes que I0.0, I0.1, I0.2 e I0.3 son pulsadores y Q0.0 y Q0.2 son bobinas. ¿Cuál de las siguientes
situaciones es posible?

a) I0.0 e I0.1 pulsados, activándose la bobina Q0.0.

b) I0.0 e I0.1 sin pulsar, activándose la bobina Q0.0.

c) I0.0 e I0.2 pulsados, I0.1 e I0.3 sin pulsar, activándose las bobinas Q0.0 y Q0.2.

d) Todas las opciones son incorrectas.


2.8 Plano de funciones



En Automatizaciones 4.0, S. L., utilizan para procesos no muy complejos el lenguaje en plano de
funciones. Se trata de un lenguaje basado en los operadores que representan las condiciones
del álgebra de Boole. Son los operadores AND, OR, NOT, NOR, NAND, XOR y XNOR.

El lenguaje de programación en plano de funciones se refiere a la implementación de los


automatismos mediante el acoplamiento de puertas lógicas del álgebra de Boole.
Las puertas lógicas básicas son las siguientes:

Puerta AND

Puerta OR

Puerta NOT

Puerta AND
La salida de una puerta AND valdrá 1 cuando las entradas valgan simultáneamente 1, es decir,
cuando estén cerradas a la vez. En el siguiente gráfico puedes ver el comportamiento de una
puerta AND:

Tabla de verdad, símil eléctrico y


representación europea y americana de la
puerta AND

Se corresponde con el producto de las entradas. En el esquema, S = A.B.

Puerta OR
La salida de una puerta OR valdrá 1 cuando al menos una de las entradas valga 1.
Tabla de verdad, símil eléctrico y
representación europea y americana de la
puerta OR

Se corresponde con la suma de las entradas. En el esquema, S = A + B.

Puerta NOT
La salida de una puerta NOT será la negación o el complementario de su entrada.

Tabla de verdad y representación europea y


americana de la puerta NOT

El resto de puertas lógicas (NOR, NAND, XOR y XNOR) se obtienen como combinación de las
puertas básicas.
El lenguaje en plano de funciones utiliza, además de las puertas lógicas antes mencionadas, unas
funciones especiales que establecen condiciones de temporización, conteo, comparadores, etc., y
que ayudan a definir la lógica de la automatización.


 Ejemplo

Un ejemplo de lenguaje en plano de funciones lo encuentras en el siguiente esquema:

Representación de un programa en plano de


funciones

2.9 Lenguajes de alto nivel





El equipo de programadores de Automatizaciones 4.0, S. L., desarrollan programas tanto en
lenguajes de alto nivel como de bajo nivel. La elección de uno u otro va a depender de las
funcionalidades que debe incluir el proceso, ya que los lenguajes de bajo nivel, en general,
ofrecen más posibilidades de incluir condiciones, bucles, saltos, etc., que un lenguaje, por
ejemplo, de tipo gráfico. En contra tienen que los lenguajes de bajo nivel precisan de mayor
nivel de conocimientos de programación.

Los lenguajes de programación, ya sean en PC o en PLC, se dividen en lenguajes de bajo nivel (si están
muy cercanos al microprocesador) o de alto nivel (más cercanos a la expresión escrita habitual
utilizada por el usuario).
Para definir el lenguaje de alto nivel, empecemos por definir en primer lugar el lenguaje de bajo nivel.




 Definición

Lenguajes de bajo nivel


Es un lenguaje en código máquina o código binario encargado de la ejecución del programa
directamente en el microprocesador.
Lenguaje de alto nivel
Es lo opuesto a un lenguaje de bajo nivel en el sentido en que su estructura es más cercana al
usuario pero más lejana al código máquina. Es por tanto, más comprensible para el usuario.
Ahora bien, tanto un programa en lenguaje de alto nivel como en bajo nivel necesitan ensamblarse, es
decir, convertirse a un lenguaje que puede ejecutar el microprocesador. Posteriormente se compila a
lenguaje máquina para poder cargarse en el PLC.
Los lenguajes de programación de los PLC de tipo gráfico van a ser lenguajes de alto nivel mientras
que los de tipo texto serían de bajo nivel.

Observa la siguiente tabla donde se hace una clasificación de los lenguajes de programación en
función de si son de alto o bajo nivel:

Lenguaje Características Ejemplos* Tipo Nivel

Listas Lista de instrucciones IL Escrito Bajo


AWL
STL
IL/ST

Plano Diagrama eléctrico LADDER Visual Alto


LD
KOP

Diagrama de bloques Diagrama lógico FBD


funcionales FBS
FUD

Organigrama de Diagrama algorítmico AS


bloques secuenciales SFC
PETRI
GRAFCET

Otros Lenguajes usados en BASIC Escrito


otras áreas de la C
computación
Lenguajes de programación de alto y bajo nivel
UA 2: Lenguajes y programas en los autómatas programables

3. Programación de bloques funcionales





Cuando se desarrollan programas complejos en Automatizaciones 4.0, S. L., se incluyen,
además de funciones que ejecutan tareas específicas, bloques de funciones. Mediante un
bloque de función se ejecuta una función determinada, pero, a la vez, se hace una llamada a
otro bloque de función, conformándose una estructura anidada de programación.

3.1 Introducción
Los bloques de funciones son los elementos que componen el lenguaje FBD, existiendo también
funciones. Veamos cuáles son las diferencias entre ambos.




 Definición

Función
Se trata de una relación lógica combinacional que genera una salida al aplicar dicha relación
sobre las entradas. El valor de la salida solo depende del valor de las entradas (elemento
combinacional).
Bloque de función o bloque funcional
Representa un conjunto de operaciones lógicas aplicadas sobre las entradas y sobre una
variable estática (memoria) que genera unas salidas determinadas. Se trata, por tanto, de un
elemento secuencial.

Función AND empleada en lenguaje FBD

En el siguiente esquema tienes la estructura de un bloque funcional:

Ejemplo de bloque funcional

Las operaciones lógicas contenidas en un bloque son, en realidad, una función. Por ello, se dice que
cuando se ejecuta un bloque, este está realizando una llamada a esa función. En el siguiente esquema
tienes la estructura de un programa en lenguaje FBD donde puedes ver cómo se producen las
llamadas de unos elementos a otros:
Secuencia de llamadas en un programa en
lenguaje FBD

Así pues, un programa puede hacer llamadas a funciones o a un bloque de funciones. Cada función
puede llamar a otra función; y los bloques funcionales pueden invocar a la función contenida en dicho
bloque o hacer una llamada a otro bloque funcional.

A la hora de programar los bloques funcionales, debes tener en cuenta la estructura que ves a
continuación en el siguiente esquema:

Instanciación de bloque funcional

En este esquema puedes observar que, además de la asignación de valores iniciales de las variables
que intervienen en el bloque, se producen las llamadas a otros bloques funcionales. Este conjunto de
operaciones relativas a la asignación de valores iniciales y la llamada a otro bloque se denomina
instanciación del bloque funcional.

3.2 Bloques secuenciales básicos





En Automatizaciones 4.0, S. L., se desarrolla el programa de control que va a ser ejecutado en el
PLC. En este programa se incluirán una serie de bloques secuenciales básicos. Se trata de
bloques que ejecutan una operación específica a partir de unas variables de entrada y unos
valores almacenados (los bloques secuenciales, a diferencia de los combinacionales, disponen
de memoria), generando unas salidas que serán utilizadas por otras instrucciones y por otros
bloques y así sucesivamente.

Existen una serie de bloques funcionales básicos con determinadas funciones que son muy útiles en la
programación. Estos bloques básicos se enumeran a continuación:
Biestables: SR, RS
Mediante estos bloques se genera la siguiente lógica secuencial:

Detección de ancos: R_TRIG, F_TRIG


Mediante estos bloques se detectan flancos en la subida o en la bajada de la señal, según la
lógica siguiente:
Temporizadores: TON, TOF, TP
Estos bloques consiguen un retardo en la activación de la señal, un retardo en la desconexión y un
alargamiento de la señal de un pulso, según la lógica siguiente:
Contadores: CTU, CTD, CTUD
Estos bloques realizan un conteo ascendente (de 0 en adelante), descendente (desde un valor
prefijado hasta 0) o un conteo ascendente-descendente, según la estructura siguiente:




 Actividad de aprendizaje 6

A continuación, realizarás una actividad en la que se te pedirá que elijas cuál es el bloque
funcional básico más adecuado para un proceso simple.

Estás programando el comportamiento de un proceso en lenguaje FBD. Se trata de un brazo


neumático, accionado por una electroválvula que, tras extenderse, se queda en esa posición
durante 10 segundos y a continuación retrocede. ¿Qué bloque secuencial básico utilizarías
para esta tarea?

a) Un biestable RS que almacenara un tiempo de 10 segundos.

b) Un temporizador TON que, al transcurrir los 10 segundos, desactivara la electroválvula.

c) Un detector de flancos R-TRIG que midiera los 10 segundos.

d) Todas las opciones son incorrectas.

3.3 Bloques funcionales de expansión





La programación en bloques funcionales es muy versátil a la hora de añadir nuevos bloques de
funciones que utilizan variables de otros bloques. En Automatizaciones 4.0, S. L., utilizan el
lenguaje FBD para simplificar programas complejos. En una segunda fase se van expandiendo
los bloques, entrando así en una fase de desarrollo de mayor detalle.

El lenguaje de bloques de funciones FBD permite la expansión de los bloques utilizados en el


programa para ejecutar así nuevas funciones a partir de ellos. De esta manera, las entradas o salidas de
cada bloque pueden utilizarse para ejecutar otros bloques, expandiéndose de este modo los boques
iniciales.
Si observas el siguiente esquema, el bloque ADD toma el valor de la variable “Integer 1” y lo suma al
valor de la variable “Integer 2”, almacenando el resultado (143) en la variable “OutputRegister”:

Ejemplo de bloque de función simple

Pues bien, este bloque puede utilizarse para realizar más operaciones al expandir sus entradas y
salidas hacia otros bloques.
Ejemplo de bloque de función expandido

La variable de entrada “Integer 2” del bloque, su salida “OutputRegister” y la salida de un nuevo bloque
BOR se usan como variables de entrada de un nuevo bloque MUL, obteniéndose un resultado
almacenado en la variable “OutputRegister2”.
De esta forma, mediante la expansión del bloque ADD se han añadido nuevos bloques a partir de él.
Por tanto, las posibilidades que ofrece la programación en bloques de funciones FBD son numerosas,
permitiendo añadir tantos bloques como operaciones sean necesarias en la programación.

3.4 Instrucciones especiales





El lenguaje FBD se caracteriza por tener gran flexibilidad en el diseño de instrucciones. Por ello,
en Automatizaciones 4.0, S. L., utilizan este lenguaje para programar programas complejos. El
uso de instrucciones especiales y la posibilidad de expansión de bloques son de gran utilidad
en la programación de procesos que exigen añadir un alto nivel de condicionamientos en la
programación.

Las instrucciones de los bloques de funciones permiten realizar operaciones tanto de tipo lógico
(operaciones con bits) como operaciones matemáticas.
Las instrucciones de tipo lógico son aquellas que realizan las operaciones del álgebra de Boole,
distinguiéndose las instrucciones BAND, BOR, BXOR y BNOT. Realizan las operaciones lógicas
correspondientes a los operadores lógicos AND, OR, XOR y NOT. En el siguiente esquema puedes ver
un ejemplo:

Ejemplo de instrucción BAND en lenguaje FBD

Las instrucciones de tipo matemático realizan las operaciones matemáticas básicas MUL, DIV y ADD.
Puedes ver un ejemplo en el siguiente esquema:

Ejemplo de instrucciones matemáticas en


lenguaje FBD

A partir de estas instrucciones pueden crearse instrucciones más complejas, ya que las entradas
pueden ser múltiples en cada bloque y los bloques se pueden entrelazar, creando instrucciones
personalizadas integradas en bloques de función.
UA 2: Lenguajes y programas en los autómatas programables

4. Estructuras de programación



Es tarea del programador en Automatizaciones 4.0, S. L., decidir la estructura que va a presentar
el programa de control. En general, se dividirá el programa en tareas, cada una de las cuales
será ejecutada por un programa concreto, estando su ejecución coordinada por la CPU según el
programa de control.
Además, la programación de estas tareas presentará la estructura de programación lineal o
estructurada, en función de la complejidad de dichas tareas.

4.1 Introducción
En primer lugar, hay que definir los siguientes conceptos:




 Definición

Tarea
Conjunto de instrucciones que se ejecutan para que, a partir de ciertas variables de entrada, se
obtengan ciertas variables de salida.
Estructura de programa en monotarea
Un programa estructurado en monotarea contiene una tarea que ejecuta todas las operaciones
del programa.
Estructura de programa en multitarea
Un programa estructurado en multitarea contiene diferentes tareas, ejecutando cada una de
estas una parte del programa. Por tanto, el programa se divide en distintos subconjuntos o
tareas aisladas, que corresponderán a partes específicas del proceso programado.

Estructura de un programa multitarea

En programas estructurados como monotarea, la tarea se ejecuta en un único ciclo de operación,


mientras que en estructuras multitareas se ejecutan múltiples ciclos de operación, cada uno
correspondiente a una tarea. Además, estas tareas pueden ejecutarse cíclicamente o no.
A la hora del diseño del programa de control, habrá por tanto que definir las tareas en que va a
dividirse el programa y programar la secuencia de instrucciones que ejecutan dichas tareas. Ahora
bien, la programación de las tareas podrá realizarse según los métodos de programación siguientes:

Programación lineal

Programación estructurada

4.2 Programación lineal





Para programas no muy complejos, en Automatizaciones 4.0, S. L., siguen una estructura de
programación lineal. En esta estructura de programación, el conjunto de instrucciones que
componen el programa se encuentra en un único bloque y estas se van ejecutando
secuencialmente una detrás de otra, sin saltos.

La programación lineal se basa en organizar las instrucciones del programa según una secuencia
lineal, desde la primera hasta la última. Por tanto, el programa no efectúa saltos ni ejecuta subrutinas
que obligan a interrumpir la secuencia lineal.
Generalmente, la programación lineal se utiliza para programar tareas no muy complejas que pueden
estructurarse de manera lineal y secuencial.
Por el contrario, cuando tenemos tareas complejas, estas precisan otro tipo de estructura de
programación que se denomina estructurada.
En la programación estructurada, el programa se divide en partes o bloques de ejecución, de manera
que estos se ejecutarán solo cuando se produzca alguna condición o se active alguna señal. Para
introducir estas condiciones se utilizarán instrucciones específicas.
Estas instrucciones pueden ser de dos tipos:

Saltos (lenguajes de tipo texto)


Habilitación de bloques (lenguaje tipo FBD)

4.3 Programación estructurada





Cuando en Automatizaciones 4.0, S. L., programan tareas más complejas, deben recurrir a la
programación estructurada. De esta manera, el programa se divide en bloques; un bloque
principal con posibilidades de hacer llamadas a otros bloques donde se ejecuten operaciones
específicas. Además, los bloques que son llamados pueden, a su vez, hacer llamadas a otros
bloques.
De esta manera, la secuencia de ejecución de programa no es lineal, sino que se va ejecutando
con saltos.

En una programación estructurada la tarea a programar se divide en bloques que ejecutan subtareas y
que son llamados durante la ejecución del programa principal desde algún punto de este.
Estos bloques que realizan tareas específicas pueden agruparse si dichas tareas son del mismo tipo,
optimizándose los tiempos de procesamiento. De esta manera, pueden ejecutarse simultáneamente
bloques que ejecutan tareas del mismo tipo mediante multiprocesadores.
Un tipo de programación estructurada es la programación modular. Se trata de una programación en
la que la división de la tarea se hace en módulos independientes entre sí, cuya ejecución está
organizada desde un módulo raíz, que básicamente contiene las llamadas, condicionales o no, a los
diferentes módulos de división.
Otro tipo de programación estructurada es aquella en que el programa principal ejecuta una serie de
instrucciones, pero, a su vez, puede hacer llamadas a determinadas subrutinas que contienen
instrucciones específicas. De este modo, se ejecuta el programa, “dando saltos” desde el programa
principal hacia las distintas subrutinas y viceversa.

Resulta de gran utilidad la programación estructurada para abordar programas complejos, ya que
estos pueden dividirse en tareas más sencillas, presentando así el programa una estructura en árbol.



 Actividad de aprendizaje 7

A continuación, realizarás una actividad en la que se te pedirá que decidas la estructura de


programación más adecuada para programar el comportamiento de un proceso.
Vas a empezar con la programación de un proceso. Se trata de la activación secuencial de un
conjunto de motores en la planta de producción donde trabajas. Las tareas que realizan los
motores son las mismas, diferenciándose en que cada uno está funcionando durante un
espacio de tiempo diferente al de los demás. Te planteas si hacer una programación lineal o
estructurada. ¿Cómo plantearías este programa?

a) Mediante un programa lineal, ya que cada motor funcionará secuencialmente,


ejecutándose las tareas una detrás de otra en el orden de encendido de los motores.

b) Mediante un programa estructurado, ya que las acciones de los motores son idénticas. Se
producirán llamadas al bloque de accionamiento de motores, particularizando en cada
llamada el tiempo de duración del encendido.

c) Es indiferente programarlo lineal o estructuradamente, ya que no simplifica nada.

d) Todas las opciones son incorrectas.

4.4 Programación multitarea





La exigencia en determinados procesos de ejecutar simultáneamente varias tareas obliga a que
se establezcan condiciones de prioridad en la ejecución de estas tareas. Por ello, en
Automatizaciones 4.0, S. L., deben establecerse qué tareas son más prioritarias y qué tiempo
deben requerir. De esta manera, la CPU podrá atender a todas las tareas, ejecutándose el
proceso en el tiempo debido.

En estructuras monotarea, el programa o tarea única que se ejecuta periódicamente de forma cíclica
es un programa lineal. Si el programa principal es capaz de acceder a subprogramas o módulos, con
intercambio o no de variables, se dice que está estructurado.
La programación multitarea se utiliza cuando se quieren representar procesos más complejos. Estos se
dividirán en tareas, cada una de las cuales se programarán mediante una programación lineal o
estructurada. Cada tarea constituye una entidad de programación completa.
Los métodos de planificación utilizados son el prioritario y el de gestión de tiempo. En el método
prioritario, cada tarea tiene asignada una prioridad y es el microprocesador el que va a seleccionar el
orden de ejecución de las tareas según esta prioridad.
El método de gestión de tiempo o tiempo compartido (time sharing) consiste en asignar unidades de
tiempo a cada tarea. En este método, el microprocesador va a ejecutar las tareas según las
asignaciones de tiempo de cada una de ellas y si existiera simultaneidad entre algunas de ellas,
deberá resolver según las prioridades que se hubieran definido.
4.5 Tareas rápidas e interrupciones

En Automatizaciones 4.0, S. L., se tienen en cuenta en el diseño del programa determinados


eventos que deben producir interrupciones del ciclo de scan y así ejecutar una serie de
acciones rápidas. Una vez ejecutadas estas acciones rápidas, se reanudará el ciclo de scan por
el punto donde se produjo la interrupción.
Los eventos que hay que considerar para la activación de la interrupción son:

1. Entradas cuyo valor debe ser almacenado en un instante determinado.


2. Posición alcanzada por un encoder en un instante determinado.
3. Paradas cíclicas cada espacio de tiempo jado.

Cuando se están tratando procesos que precisan tiempos de respuesta muy exigentes, no se puede
depender del tiempo de ciclo de scan del PLC. En estos casos, es preciso trabajar con tareas de
interrupción.
En un ciclo de scan de un PLC se realiza una lectura de entradas, posteriormente se ejecuta el
programa de control y, por último, se actualizan las salidas. Si los procesos que se van a automatizar
requieren acciones muy rápidas, puede ser que el ciclo de scan sea una mala opción para ejecutar
estas acciones y que, por tanto, sea necesario ejecutar alguna orden sin esperar a que se actualicen las
salidas en el ciclo de scan.
Para esto se utilizan las tareas de interrupción.




 De nición

Tareas de interrupción
Se trata de tareas que interrumpen el ciclo de scan durante un pequeño instante de tiempo,
durante el cual se ejecuta una subrutina que una vez ejecutada hará que se reanude la
ejecución del ciclo de scan justo en el momento en que se interrumpió.

Puedes ver el proceso representado en el siguiente esquema:

Representación de una interrupción de


programa

Las tareas de interrupción pueden invocarse desde el programa principal por tres motivos:
1 Por entrada

2 Por contador de alta velocidad

3 Por tareas cíclicas

Por entrada
En los autómatas hay entradas especí cas que pueden con gurarse para que cuando sean
activadas, bien por anco ascendente o descendente, ejecute una interrupción (subrutina de
programa).
Un ejemplo es el caso de una cinta transportadora en la que van pasando piezas y justo cuando
pasan por una fotocélula (que estará cableada a la entrada de interrupción) debemos capturar su
posición (justo en ese momento). Al activarse la fotocélula se ejecuta una subrutina que memoriza
la posición. Al ser la entrada de interrupción, es posible registrar la posición en dicho momento.

Por contador de alta velocidad


La utilización de encoders para labores de posicionamiento es muy usual en labores de
automatización. Un encoder es un instrumento que se acopla en el eje de un motor y entrega
pulsos cuando el motor gira. Estos pulsos se cablean al autómata para poder controlar la posición.
Los pulsos que entrega un encoder suelen ser entradas muy rápidas, tanto que si se cablean a
entradas normales, el autómata con su ciclo de scan no sería capaz de procesarlas. Por esta razón
los autómatas disponen de entradas especiales para conectar encoders: entradas de alta
velocidad (HSC).
Al con gurar el encoder podemos asociar una rutina a la situación cuando este llegue a un contaje
determinado o rango de valores.
Por ejemplo, si damos marcha a un motor y queremos que cuando el encoder llegue a 1.000
pulsos se pare, con guramos el programa para que al llegar a 1.000 pulsos ejecute una
interrupción que realizará el paro del motor, justo cuando se cumpla el contaje, sin retardos
provocados por el ciclo de scan.

Por tareas cíclicas


Este tipo de interrupción se ejecuta de manera cíclica cada intervalo de tiempo medido por el
temporizador interno de la CPU.
Si, por ejemplo, queremos realizar un control periódico del estado de una parte de programa,
podemos ejecutar este tipo de interrupción cada cierto intervalo de tiempo.




 Actividad de aprendizaje 8

A continuación, realizarás una actividad en la que se te pedirá que decidas si sería necesario
una interrupción de programa con una tarea rápida.

Estás ahora diseñando un programa en el que debes incluir la medición de velocidad de giro
de un motor de velocidad variable. La velocidad va variando constantemente. Es importante,
en instantes determinados no cíclicos, medir esta velocidad que se almacenará en unos
registros. ¿Cómo plantearías la inclusión de estas mediciones en tu programa?

a) Mediante un programa lineal que, en determinados momentos, midiera la velocidad del


motor con un encoder y lo almacenase en una variable.

b) Mediante un programa con interrupciones cíclicas que midiera la velocidad del motor
mediante un encoder, en una tarea rápida.

c) Mediante un programa que, en el momento que se precise, se interrumpa para ejecutar la


medición de la velocidad por un encoder en una tarea rápida.

d) Todas las opciones son incorrectas.

4.6 Parametrización de módulos funcionales





Los módulos de función hacen llamadas a otros módulos o bien a una función en sí misma. En
Automatizaciones 4.0, S. L., preparan los módulos de función y las funciones para que ejecuten
las tareas necesarias. Para ello, definen unos parámetros que permitirán la transferencia de
valores de dichos parámetros a funciones que los usarán para efectuar una operación y
devolver, como consecuencia, un resultado.

La relación entre módulos o funciones se establece mediante el uso de parámetros. Cuando de un


módulo se hace una llamada a otro, es necesario que le transfiera una serie de parámetros para que, a
partir de ellos, se ejecute el módulo llamado, devolviendo el resultado al módulo que hizo la llamada.
A modo esquemático, la secuencia es la siguiente:

Esquema de la secuencia que se sigue en una


llamada a una función

Se consideran dos tipos de parámetros:


Parámetros actuales

Parámetros formales

Parámetros actuales
Son variables locales que pertenecen al módulo que realiza la llamada y cuyo valor es enviado
al módulo llamado.

Parámetros formales
Son variables locales que pertenecen al módulo llamado, que reciben el valor de los parámetros
actuales del módulo que hace la llamada.

El módulo o función tendrá un identificador o nombre y a continuación, entre paréntesis, se escriben


los parámetros.
Otro parámetro que hay que considerar es el valor retornado de la función y que será transferido al
módulo que hizo la llamada.



 Ejemplo

En el siguiente esquema se muestra la llamada desde el módulo o función “Calcula” a la


función “Suma”:

Llamada de la función “Calcula” a la función


“Suma”

El módulo “Calcula” tiene dos variables locales (a y b) que son sus parámetros actuales. Dentro de este
módulo se hace una llamada a la función “Suma” cuyos parámetros formales son x e y. Al hacer esta
llamada, los valores de a y b (10 y 20 respectivamente) son transferidos a los parámetros formales, de
manera que la función “Suma” ejecuta: 10 + 20 y este resultado lo almacena en “s”. Finalmente el valor
de “s” es devuelto al módulo que efectuó la llamada.
4.7 Programación de procesadores periféricos inteligentes



En algunas aplicaciones es necesario programar ciertos módulos especiales que ejecutarán
operaciones de manera autónoma. Por ello, en Automatizaciones 4.0, S. L., emplean módulos
inteligentes en estas situaciones, los cuales realizan funciones como: proceso de regulación,
control de ejes, gestión de datos y gestión de comunicaciones.

Para determinadas tareas que son complejas para ser realizadas por una CPU se crean unos módulos
específicos inteligentes. Estos módulos se construyen a partir de un microprocesador y aseguran que
se realicen ciertas funciones que de otro modo no serían posibles.
Entre estos módulos especiales e inteligentes, ya que realizan ciertas funciones de forma autónoma,
se encuentran los siguientes:

Unidades de proceso de regulación

Unidades de control de ejes

Unidades de gestión de datos

Unidades de comunicación
UA 2: Lenguajes y programas en los autómatas programables

5. Programación en TIA PORTAL





El entorno de programación es muy importante a la hora de insertar y transferir el programa de
control. En Automatizaciones 4.0, S. L., utilizan un entorno de programación que les permite gestionar
proyectos de automatización, configurar el hardware utilizado (CPU, módulos insertados, puertos de
comunicación), cargar el programa en el PLC, simularlo y obtener asistencia sobre los fallos de la
instalación.

Los autómatas S7-300, S7-1200 y S7-1500 son una marca registrada de Siemens. La evolución de los
diferentes autómatas de esta marca ha sido en paralelo con el incremento del uso de las tecnologías de la
información y de las redes de comunicaciones. Del mismo modo, otras marcas como Schneider, Omron o
Allen Bradley también han ido modernizándose en los últimos años, mejorando la velocidad de sus
procesadores e incrementando las capacidades de comunicación.
Del mismo modo, el entorno de programación ha evolucionado, adaptando nuevas funcionalidades y mayor
practicidad.
El STEP-7 era el entorno de programación en el ámbito industrial para los autómatas de Siemens, hasta que
con la aparición del PLC S7-1200 la marca lanzó un nuevo software denominado TIA PORTAL.
Este software constituye una ayuda para la implantación de proyectos de automatización en todas sus fases,
y pueden resumirse en las siguientes:

Crear y gestionar proyectos

Configurar el hardware y las comunicaciones

Escribir un programa

Cargar el programa en el PLC


Simular el comportamiento del programa

Diagnosticar fallos de la instalación

A la hora de programar, habrá que tener en cuenta la estructura del programa que vamos a escribir, es decir,
si vamos a realizar una programación lineal o estructurada. Y en función de esto, se definirán una serie de
bloques que se analizan en el Apartado 2.5.4.



 Nota

Los lenguajes de programación que soporta TIA PORTAL son los siguientes:

KOP (lenguaje de contactos).


FUP (lenguaje de diagrama de bloques).
AWL (lenguaje de lista de instrucciones).

Además, permite otros lenguajes:

SCL (lenguaje estructurado de Siemens).


CFC (lenguaje similar al de diagrama de bloque de funciones FBD).

5.1 Introducción a TIA PORTAL





Los requisitos que para Automatizaciones 4.0, S. L., son esenciales en un entorno de programación
son: visualización del hardware y comunicaciones configuradas, vista general del proyecto,
asignación sencilla de direccionamientos a las variables y un procedimiento sencillo en la carga del
programa al PLC.
Por supuesto, la posibilidad de agregar nuevos módulos de programa, adicionales al entorno de
programación (como, por ejemplo, simulación del PLC, simulación de pantallas HMI, etc.) será un
valor añadido que se tendrá en cuenta al tomar la decisión sobre un tipo de autómata u otro.

En el entorno de TIA PORTAL los primeros pasos que se deben ejecutar son los de configuración del PLC
que vamos a programar, identificando los posibles módulos adicionales de entrada o salida que hubiera y
crear un proyecto que estará asociado a la configuración de hardware antes citada.
Una vez creada esta configuración de hardware y el nuevo proyecto, nos aparecerá una pantalla como la
mostrada en la figura siguiente:

Vista de la pantalla principal de TIA PORTAL


Puedes identificar en la pantalla principal de TIA PORTAL las siguientes áreas:
Por una parte, a la izquierda aparece el árbol del proyecto (1) con todos los dispositivos que lo forman. En la
vista detallada (6) se indican las diferentes opciones de lo que se seleccione en la parte superior.
En la zona de hardware del proyecto (2) se puede comprobar todo el hardware del proyecto. Existen tres
opciones:

Vista topológica

Vista de redes

Vista de dispositivos

En la vista de dispositivos se debe configurar el hardware completo, mientras que la vista de redes se
emplea para configurar las redes de comunicación industrial.
En la vista topológica se aprecian todos los componentes hardware del proyecto. En esta ventana también
consta la información sobre los módulos dispuestos en el proyecto desde la vista general de dispositivos (7).
En la parte inferior aparecen las propiedades (4) de los dispositivos que se seleccionen en la ventana
superior de hardware. Aquí se deben indicar las direcciones de red o también consultar las direcciones que
tiene cada tarjeta de E/S, y otras características.
A la derecha se encuentra el catálogo de hardware (3) y, abajo (5), la información sobre el dispositivo
seleccionado en el catálogo. Aquí es muy importante poder ver la versión del dispositivo y utilizar para ello
el desplazamiento de la ventana (scroll).
Cada vez que se desee cargar en el PLC la configuración hardware o software, se debe pulsar en el icono de
Cargar en dispositivo que aparece en la barra de herramientas superior.





 Video

Puedes visualizar un vídeo donde se muestran los primeros pasos que dar en la utilización de TIA
PORTAL en este enlace:

Introducción a TIA PORTAL ()

En el siguiente esquema puedes observar la ventana que aparece cuando se va a transmitir el programa al
PLC. Los pasos que hay que seguir son:

1
Seleccionar el tipo de interfaz PG/PC.
2
Indicar la interfaz utilizada. Si está abierto el simulador, se debe utilizar la interfaz del
simulador como indica la pantalla. Si hay un PLC real, se selecciona en la interfaz el que se
vaya a utilizar: MPI, Profibus o Profinet.

3
Si hubiera varios Slot en el PLC para comunicar, habría que indicarle, en la casilla Conexión
con lnterfaz/subred, en qué Slot está conectado.

4
Iniciar búsqueda.

5
Cuando se haya encontrado el PLC se debe cargar. Puede tardar un instante desde que
termina la búsqueda hasta que se activa la casilla Cargar.

La carga sobre el PLC comenzará de inmediato y saldrá la siguiente pantalla que se muestra a continuación,
que hay que aceptar pulsando Cargar.

Si es necesario (en el caso de hacer redes de comunicación), se deberán dar direcciones a los diferentes
dispositivos del proyecto. Para ello, se debe cliquear el PLC o dispositivo que se desee direccionar y abajo,
en las propiedades, buscar la interfaz que se va a usar para cambiar su dirección. También se puede
cliquear en la interfaz de la Vista de dispositivos y, abajo, saldrán las propiedades de la interfaz en las que
cambiar la dirección.

Selección de PROFIBUS o ETHERNET como


protocolo de comunicación para el enlace
entre el PC y el PLC en TIA PORTAL

Puedes ver como el PLC seleccionado dispone de una interfaz para realizar dos tipos de comunicación:
Ethernet o Profibus. Si pinchas sobre el conector Profibus, en las propiedades aparecen las opciones de
Profibus. Lo mismo si seleccionas el conector de Ethernet.
Puedes observar también cómo en la vista general de dispositivos se tiene acceso a las direcciones de los
dispositivos de entrada y salida.
Ahora ya estás en disposición de poder trabajar con el PLC para realizar su programación.



 Actividad de aprendizaje 9

A continuación, realizarás una actividad en la que se te pedirá que indiques cuál es el orden que
debe seguirse para cargar o transferir el programa de control desde el PC al PLC.

Has terminado el desarrollo de un programa y ahora queda el último paso: introducirlo en el


entorno de programación y transferirlo al PLC. ¿Cuáles son los pasos que hay que seguir en esta
tarea?

a) Escribir programa → Crear proyecto → Configurar hardware → Simulación virtual → Carga

b) Crear proyecto → Escribir programa → Configurar hardware → Simulación virtual → Carga

c) Configurar hardware → Crear proyecto → Escribir programa → Simulación virtual → Carga

d) Crear proyecto → Escribir programa → Simulación virtual → Carga → Configurar hardware


5.2 Estructura interna de un S7-1500

La decisión sobre un autómata determinado va a estar basado principalmente en sus características


internas. Por ello, en Automatizaciones 4.0, S. L., decidirán en función de: velocidad de la CPU,
posibilidad de ampliar número de entradas y salidas (analógicas y digitales), número de contadores,
temporizadores y marcas (memorias) disponibles, así como las posibilidades de comunicación que
ofrece para, de este modo, hacer compatible las comunicaciones entre el autómata y el resto de
dispositivos instalados en la planta.

El PLC S7-1500 es el autómata más reciente creado por Siemens. Lanzado comercialmente en el año 2013,
viene a sustituir a los anteriores. Supone una revolución no solo en prestaciones, sino también en su aspecto
exterior.
Dispone de una pequeña pantalla desde la que se puede obtener información importante sin necesidad de
utilizar ningún software.
En la siguiente imagen se muestra el PLC 1516-3 PN/DP. Otra de sus mejoras es todo lo referente a las
redes de comunicación, tan relevante en la actualidad. Su formato de programación también cuenta con
mejoras evidentes tendentes a la simpli cación y la estandarización.

Vista exterior de un autómata de la serie S7-


1500

En cuanto a la arquitectura interna, sus elementos siguen la estructura de todos los demás autómatas de la
serie 7. Puedes ver esta arquitectura en el siguiente esquema:

Representación esquemática del interior del S7


1500

5.3 Direccionamiento



El equipo de programadores de Automatizaciones 4.0, S. L., realiza el proceso de asignación de
direcciones a las variables en una tabla de asignación. De esta manera, cada variable ocupa un
espacio determinado en la memoria (dependiendo del tipo de dato) y una posición determinada. Esto
permitirá que se gestione la memoria de manera eficiente y que puedan ser localizadas las variables
por la CPU, cuando esta haga uso de ellas.

La CPU del autómata dispone de áreas de memoria para que los datos puedan ser localizados y
procesados según el programa de control. Esta memoria de datos se divide en área de datos y objetos. Su
estructura es la siguiente:

Memoria de datos

Área de datos

Imagen de proceso de las entradas y salidas

Memoria de variables

Objetos

Valores actuales de contadores rápidos

Acumuladores

Entradas y salidas analógicas

Contadores

Temporizadores

Marcas

Todos estos datos están representados por variables que ocupan un tamaño de memoria determinado en
función del tamaño del dato. Por ello, se distinguen los siguientes tipos de variables:

BYTE.

PALABRA

DOBLE PALABRA

BYTE
Una variable de tipo byte que almacena un dato tiene un rango de valores entre 0 y 255. Esto es así
porque un byte lo componen 8 bits, por tanto, las posibilidades de números distintos a representar con
esos 8 bits son 28= 256. Eso supone un rango de valores entre el 0 y 255.

PALABRA
Una variable de tipo palabra que almacena un dato tiene un rango de valores entre 0 y 65.535. Esto es
así porque una palabra la componen 2 bytes, por tanto, las posibilidades las ofrecen 16 bits. Los
números distintos a representar con esos 16 bits son 216= 65.536. Eso supone un rango de valores entre
el 0 y 65.535.

DOBLE PALABRA
Una variable de tipo doble palabra que almacena un dato tiene un rango de valores entre 0 y
4.294.967.295. Esto es así porque una palabra la componen 2 palabras (4 bytes), por tanto, las
posibilidades las ofrecen 32 bits. Los números distintos a representar con esos 32 bits son 232=
4.294.967.296. Eso supone un rango de valores entre el 0 y 4.294.967.295.

A continuación, tienes estos conceptos de manera esquemática:

B (byte = 8 bit) 0-255

W (palabra = 2 bytes = 16 bit) 0-65535

D (palabra doble = 4 bytes = 32 bit) 0-4294967295

Tamaño ocupado en memoria por variables de tipo byte, palabra y doble palabra

Representación de variables tipo byte, palabra


y doble palabra



 Nota

Los datos de tipo entero se denominan de distinta manera en función del tamaño del dato. En el
entorno de TIA PORTAL se utilizan los siguientes:

Sint: dato entero con signo que ocupa un byte.


USInt: dato entero sin signo que ocupa un byte.
Int: dato entero con signo que ocupa una palabra.
UInt: dato entero sin signo que ocupa una palabra.
DInt: dato entero con signo que ocupa una doble palabra.
UDInt: dato entero sin signo que ocupa una doble palabra.

Para acceder a los datos en las áreas de memoria de la CPU, estos deben tener una dirección unívoca. Para
direccionar estos datos, se utilizan dos tipos de direccionamiento: directo e indirecto.
Antes de explicar estos conceptos, debes saber qué es un puntero y para qué se utiliza en un
direccionamiento.




 Definición

Puntero
Es una variable que contiene la dirección de memoria de otra variable. Por tanto, el puntero “apunta”
hacia una variable, no almacena el valor de esa variable.
Los tipos de direccionamiento son:

Directo
El direccionamiento directo está orientado principalmente a objetos. También se utiliza para direccionar
temporizadores, contadores, acumuladores y contadores rápidos.
En este tipo de direccionamiento en una variable se almacena el dato que queremos conservar.
Por ejemplo, la variable direccionada como I2.5 es del tipo bit. Almacenará los estados de esa variable,
que serán 0 o 1. La representación significa lo siguiente:

I: variable de entrada.
2: dirección del byte.
5: bit número 5 del byte direccionado como 2.

Por tanto, la variable direccionada como I2.5 almacena el valor de dicha variable (0 o 1).

Indirecto
Este direccionamiento está principalmente dirigido a direccionar datos del área de datos, así como los
valores actuales de temporizadores y contadores.
En este tipo de direccionamiento, al contrario que en el direccionamiento directo, almacenamos la
dirección de la variable y no el valor de la variable. Para almacenar la dirección de la variable se utiliza
un puntero.
5.4 Estructura de un programa y módulos de S7-1500

Los programas complejos suelen dividirse en tareas más sencillas. En Automatizaciones 4.0, S. L.,
utilizan la programación estructurada para desarrollar programas divididos en bloques. Desde el
bloque principal se producen llamadas a otros bloques que ejecutan tareas especí cas.

5.4.1. Estructura de un programa


Un programa puede estructurarse de manera lineal o estructurada. En un programa lineal las instrucciones
se ejecutan secuencialmente una detrás de otra desde el comienzo hasta el n.
En un programa estructurado, en distintos puntos del programa principal se pueden hacer llamadas a
distintos bloques que, al ejecutarse, hacen reanudar la ejecución el programa principal en el sitio donde se
produjo la llamada.
Por tanto, se hace preciso la división en bloques lógicos del programa. Estos bloques son los siguientes:

 1 Bloque de organización (OB)

1
Es el bloque de programación principal. Aquí se escribe el programa de control que hará
llamada a otros bloques en distintos puntos. Existen de varios tipos:

1. OB1: es el bloque donde se carga el programa principal de usuario. Se ejecuta


cíclicamente.
2. OB de error: los hay de varios tipos, pero tienen en común que contienen instrucciones
que se ejecutarán cuando se produce un error concreto.
3. OB de arranque: en este bloque se programa todo lo que se desea hacer cuando el
programa arranca. Solo se ejecuta cuando el autómata pasa de STOP a RUN.

 2 Bloque de función (FC)

2
Son bloques que son llamados para ejecutar una tarea especí ca. Se caracterizan por que
cuando se ejecuta el programa contenido en el FC, los resultados obtenidos no se
almacenan, se pierden. Esto es así, porque estos datos se almacenan de manera local y los
bloques FC no disponen de memoria. La única manera de almacenar los datos es
asignándolos a un bloque de datos global.

 3 Bloque de función con datos (FB)


3
También son bloques que son llamados para ejecutar una tarea especí ca, pero, a diferencia
de los FC, poseen memoria. Efectivamente, asociada a un bloque FB existe una zona de
memoria denominada DB de instancia, que almacena los resultados de cada ejecución del
bloque FB.

 4 Bloque de datos (DB)


4
Son zonas de memoria que contienen un conjunto de datos. Por ejemplo, los contadores y los
temporizadores utilizan DB.
Los bloques de datos pueden ser globales o locales. Los globales contienen datos que son
accesibles desde cualquier bloque lógico de programación. Los locales solo son accesibles
desde el bloque que los usa.
Pueden ser de instancia (si están asociados a un FB, siendo de carácter permanente, es decir,
se conservan los datos de una llamada a otra de ese FB) o temporal (los bloques de datos
usados por un FC, los cuales se pierden de una llamada a otra de ese FC).

5.4.2. Módulos de un S7-1500


En la siguiente imagen se muestra la configuración exterior básica del PLC S7-1500, en la cual puedes
distinguir sus partes externas y su configuración modular:

Representación esquemática del exterior del


S7 1500

Puedes identificar las siguientes partes:

1. Módulo de alimentación del sistema

2. CPU

3. Módulos de periferia

4. Perfil soporte con perfil DIN integrado

Los módulos a destacar en el autómata S7 1500 son aquellos que permiten las comunicaciones con el resto
de dispositivos, así como aquellos que amplían las entradas y salidas disponibles (analógicas y digitales) y
módulos tecnológicos de distintas aplicaciones. En la siguiente tabla, se muestran los detalles de estos
módulos:
Componente Función

Módulo de interfaz para El módulo de interfaz:


PROFINET IO
se utiliza como dispositivo en PROFINET IO.
conecta el sistema de periferia descentralizada ET 200MP con el
controlador IO.
intercambia datos con los módulos de periferia a través del bus de fondo.

Módulo de interfaz para El módulo de interfaz:


PROFIBUS DP
se utiliza como esclavo DP en PROFIBUS DP.
conecta el sistema de periferia descentralizada ET 200MP con el maestro
DP.
intercambia datos con los módulos de periferia a través del bus de fondo.

Módulo de periferia / Los módulos de periferia constituyen la interfaz entre el controlador y el


módulo de periferia de proceso. A través de los sensores y actuadores conectados, el controlador
seguridad captura el estado actual del proceso y dispara las reacciones correspondientes.
Los módulos de periferia se dividen en los siguientes tipos:

Módulos de entradas digitales (DI, F-DI).


Módulos de salidas digitales (DQ, F-DQ).
Módulos de entradas/salidas digitales (DI/DQ).
Módulos de entradas analógicas (AI).
Módulos de salidas analógicas (AQ).
Módulos de entradas/salidas analógicas (AI/AQ).
Módulos tecnológicos (TM).
Módulos de comunicaciones (CM).
Procesadores de comunicaciones (CP).

Con cada módulo de periferia se suministra un conector en U.


El volumen de suministro de los módulos de periferia de seguridad incluye
además un elemento codificador electrónico como memoria para la dirección
PROFIsafe, que también puede pedirse como repuesto Accesorios/Repuestos
(Página 262).

Módulos de un S7 1500

5.5 Operaciones combinacionales





Las operaciones combinacionales son aquellas que establecen una relación entre las entradas para
obtener de esta manera la variable de salida. En Automatizaciones 4.0, S. L., utilizan estos operadores
en la programación para establecer condiciones a través de un bit o de un conjunto de bits.

Las operaciones combinacionales son aquellas cuyo resultado solo depende del estado de las variables de
entrada. Dentro de las operaciones lógicas con bits, se distinguen las siguientes:
Haz clic para conocer cuáles son las operaciones lógicas combinacionales con bits

1 2 3

4 5 6

7 8 9

10 11

1. Bit de entrada en estado normalmente abierto


Un bit de una variable lógica de entrada en este estado estará en valor 0.

2. Bit de entrada en estado normalmente cerrado


Un bit de una variable lógica de entrada en este estado estará en valor 1.

3. Bit de entrada negado


Un bit de una variable lógica de entrada que está negado está en el estado
complementario de dicha variable.

4. Bit de salida activado


El bit de salida corresponde a una bobina en el lenguaje de contactos. Significa
entonces que la bobina está activa.

5. Bit de salida desactivado


El bit de salida corresponde a una bobina en el lenguaje de contactos. Significa
entonces que la bobina está desactivada.

6. Bit de salida desactivado, independientemente del valor de las


entradas
La bobina se encuentra desactivada y los cambios en las condiciones de las variables
de entrada no afectan a este estado.

7. Bit de salida activado, independientemente del valor de las


entradas
La bobina se encuentra activada y los cambios en las condiciones de las variables de
entrada no afectan a este estado.

8. Activación del bit de entrada solo en el momento en que se


produce el anco ascendente
El bit de entrada que representa el contacto estará activo solo en el momento en que
esa señal pase del estado 0 a 1, es decir, en el momento en que se produce el flanco
ascendente.

9. Activación del bit de entrada solo en el momento en que se


produce el anco descendente
El bit de entrada que representa el contacto estará activo solo en el momento en que
esa señal pase del estado 1 a 0, es decir, en el momento en que se produce el flanco
descendente.

10. Activación de un conjunto de bits de una variable


Una variable representada por un byte tendrá una serie de bits activos y otros
inactivos. Con esta instrucción se puede indicar cuáles de esos bits deben estar
activos.

11. Desactivación de un conjunto de bits de una variable


Una variable representada por un byte tendrá una serie de bits activos y otros
inactivos. Con esta instrucción se puede indicar cuáles de esos bits deben estar
inactivos.





 Video

Puedes ver un vídeo con los detalles de estas operaciones lógicas en el siguiente enlace:

Programación del PLC S7 CON TIA PORTAL ()

5.6 Operaciones de memoria





Las operaciones de memoria son muy útiles cuando se quieren utilizar variables intermedias en el
cálculo de una operación. Son las denominadas “marcas de memoria” y se representan por la letra
“M”. En Automatizaciones 4.0, S. L., se utilizan las marcas de memoria en cada programa de control
desarrollado y se les asigna un direccionamiento y un tipo de dato, que podrá ser de tipo bit, byte,
palabra o doble palabra.

Las operaciones de memoria son aquellas que se realizan sobre variables que no se corresponden con
entradas o salidas físicas del autómata, sino con variables que almacenan valores intermedios.
Son variables internas y su papel es fundamental para realizar determinadas operaciones.
Representación de una operación con
memoria en lenguaje de contactos

La variable M.0 es una variable de tipo memoria. La lógica establecida es la siguiente:

(I.1 + M.1). I.0 = M.0

Significa que si se dan las condiciones que establece esa función lógica, entonces se almacenará un 1 en la
variable M.0.
Posteriormente en el programa puedes utilizar esta variable M.0 como condición de entrada para que se
activen otras salidas.

5.7 Operaciones de tiempo





En cualquier proceso intervienen los tiempos como variable fundamental. Por ello, surgen
operadores que gestionan los tiempos que intervienen en los procesos. En Automatizaciones 4.0, S.
L., utilizan operadores de temporización de los tipos TON, TOF y TP.

Las operaciones de tiempo son aquellas que permiten que el tiempo sea la variable fundamental para que
se activen o desactiven ciertas variables de salida. El elemento que permite jugar con el tiempo es el
temporizador. Existen tres tipos de temporizadores:

1 Temporizador a la conexión (TON)

2 Temporizador a la desconexión (TOF)

3 Temporizador de pulso (TP)

Temporizador a la conexión (TON)


Se trata de un temporizador que activa la salida cuando ha transcurrido un tiempo desde que se activó
la entrada.
Se distinguen las siguientes entradas:

IN: corresponde a la variable que activará la salida Q del temporizador.


PT: corresponde al tiempo prefijado de temporización.

Y se diferencian las siguientes salidas:

Q: salida del contador que se pretende temporizar.


ET: contador parcial ascendente del tiempo transcurrido.

En la siguiente imagen puedes observar el comportamiento de la salida Q respecto a la señal de


entrada:

Representación del comportamiento del


temporizador TON

Temporizador a la desconexión (TOF)


Se trata de un temporizador que activa la salida cuando se activa la entrada y se prolonga un tiempo
posterior (PT) a la desactivación de dicha entrada.
Se distinguen las siguientes entradas:

IN: corresponde a la variable que activará la salida Q del temporizador.


PT: corresponde al tiempo prefijado de temporización.

Y existen las siguientes salidas:

Q: salida del contador que se pretende temporizar.


ET: contador parcial ascendente del tiempo transcurrido.

En la siguiente imagen puedes ver el comportamiento de la salida Q respecto a la señal de entrada:

Representación del comportamiento del


temporizador TOF
Temporizador de pulso (TP)
Se trata de un temporizador que activa la salida cuando se produce el flanco ascendente de la entrada
y se mantiene durante un tiempo PT.
Se distinguen las siguientes entradas:

IN: corresponde a la variable que activará la salida Q del temporizador.


PT: corresponde al tiempo prefijado de temporización.

Y se diferencian las siguientes salidas:

Q: salida del contador que se pretende temporizar.


ET: contador parcial ascendente del tiempo transcurrido.

En la siguiente imagen puedes ver el comportamiento de la salida Q respecto a la señal de entrada:




 Ejemplo

Aplicación de un temporizador TP:


Un detector de proximidad activa una salida tipo bit, denominada I.0, cuando el objeto se encuentra
a una distancia menor de 30 cm.
Cuando se produce esta activación se enciende una luz (variable Q.0) que se apagará a los 20
segundos de haberse activado.
El sistema se resuelve mediante un temporizador de pulso TP. En la siguiente imagen se muestran
distintas activaciones de I.0 y las consecuencias sobre los estados de la variable Q.0.

Representación de una operación con


memoria en lenguaje de contactos

5.8 Operaciones con contadores





No solo deben tenerse en cuenta los tiempos, sino también el conteo de determinadas piezas,
eventos, etc., que van a establecer una condición de transición entre etapas en los procesos. En
Automatizaciones 4.0, S. L., utilizan operadores de conteo, como son el CTU y el CTD.

Las operaciones que realizan los contadores son tales que permiten el conteo de ciertos eventos que se
suceden repetidamente. Esta operación de conteo puede ser ascendente (cuenta desde el valor 0) o
descendente (cuenta desde el valor de conteo prefijado hasta el valor 0). Por ello, se distinguen dos
contadores básicos:
Contador ascendente (CTU)
Se trata de un contador que activa la salida cuando se ha realizado un conteo de entrada igual a un
valor límite PV.
Se distinguen las siguientes entradas:

CU: corresponde a la variable que debe ser contada en sus sucesivas activaciones.
R: entrada que, al ser activada, pondrá a cero el contador.
PV: valor límite de conteo.

Y existen las siguientes salidas:

Q: salida del contador que se activará una vez que el conteo alcance el valor límite.
CV: cantidad acumulada de conteo en cada instante.

Entradas y salidas en un contador CTU

Contador descendente (CTD)


Se trata de un contador que activa la salida cuando se ha realizado un conteo de entrada igual a un
valor límite PV.
Se distinguen las siguientes entradas:

CD: corresponde a la variable que debe ser contada en sus sucesivas activaciones.
L: entrada que, al ser activada, pondrá al valor de inicio (PV) el contador.
PV: valor límite de conteo.

Y se dan las siguientes salidas:

Q: salida del contador que se activará una vez que el conteo alcance el valor límite.
CV: cantidad acumulada de conteo en cada instante.

Entradas y salidas en un contador CTD

Observa que en este contador, a diferencia del contador ascendente, el valor inicial de conteo es el
correspondiente al valor límite y la cuenta parte desde este valor hasta cero en cuenta descendente.



 Ejemplo

Aplicación del contador ascendente CTU


Un PLC controla el número de piezas que se transportan por una cinta transportadora, accionada por
un motor. El motor de la cinta estará activado por un contactor, cuyos estados (encendido o apagado)
se almacenarán en una variable Q.0.
El detector de proximidad activará una salida I.1 (entrada del contador).
Cuando el contador cuente 100 piezas (100 activaciones de I.1), la cinta se parará.
El sistema se resuelve mediante un contador ascendente CTU. En la siguiente imagen se muestra la
programación:

Programación en lenguaje de contactos de un


contador de piezas




 Actividad colaborativa 2

Es el momento de realizar la siguiente Actividad colaborativa. No obstante puedes seguir


estudiando la unidad didáctica y realizar esta actividad en otro momento que te sea más
favorable.

En esta actividad vas a realizar un pequeño programa que ejecutará unas tareas de un proceso. El
lenguaje utilizado será el lenguaje de contactos. Se utilizará un contador ascendente CTU y un
temporizador de pulso TP.
Se trata de una cinta transportadora accionada por un motor M que traslada piezas iguales. La cinta
se acciona con un pulsador P1 y se para con un pulsador P2. Existe un sensor S que detecta la
proximidad de cada pieza en ese punto y va enviando esa información a un contador. Cuando se
cuentan 20 piezas, se activa un motor M1 durante 10 segundos y comienza otro proceso.
Con la ayuda de otros compañeros/as, diseña el programa que ejecuta estas acciones.

Para realizar las Actividades colaborativas debes acceder a la página principal del curso, allí
encontrarás la información necesaria para realizarla. Podrás identificar las Actividades
colaborativas por la numeración correspondiente.

5.9 Operaciones de comparación





Las operaciones de comparación establecen relaciones entre variables mediante operaciones
sencillas de comparación del tipo igual, menor o mayor. En Automatizaciones 4.0, S. L., se utilizan
estos operadores para materializar condiciones de transición entre etapas de un proceso.

Las instrucciones de comparación son aquellas que se utilizan para comparar valores de dos datos del
mismo tipo. Si el resultado de la operación de comparación es verdadero, se genera una salida de valor 1.
Se distinguen varios tipos de instrucciones de comparación, en función de la operación que se realiza y el
tipo de datos al que se le efectúa dicha operación.

Relación de operadores de comparación


5.10 Operaciones aritméticas

Las operaciones aritméticas son operaciones matemáticas entre variables de entrada que arrojan un
resultado, almacenado en una variable de salida. En Automatizaciones 4.0, S. L., se usan estos
operadores en todas las operaciones matemáticas que requiere el desarrollo del programa de
usuario.

Las operaciones aritméticas son efectuadas por una serie de operadores matemáticos básicos como suma,
resta, multiplicación y división.

Operadores matemáticos básicos ADD, SUB,


MUL y DIV

Además de las instrucciones matemáticas básicas, en el entorno TIA PORTAL se encuentran otros
operadores de tipo matemático más avanzados, para que se puedan así programar operaciones más
complejas. Entre estos operadores se hallan los siguientes:
CALCULATE: calcular

MOD: obtiene el resto de la división

NEG: obtiene el complemento a dos

INC: incrementar

DEC: decrementar

ABS: valor absoluto

MIN: cálculo del mínimo

MAX: cálculo del máximo

LIMIT: ajusta el valor límite

SQR: calcula el cuadrado

SQRT: calcula la raíz cuadrada

LN: calcula el logaritmo natural

5.11 Operaciones entre bloques





Los bloques de programación en que se estructura el programa de control realizan llamadas entre
ellos para ejecutar el programa de control. En Automatizaciones 4.0, S. L., se estructura el programa,
dividiéndolo en bloques y definiendo las respectivas llamadas, así como estableciendo cuál va a ser
el almacenamiento de los datos operacionales.

Los bloques de programación pueden llamarse entre ellos. En esta relación existen tres elementos:
El bloque que hace la llamada

El bloque que es llamado o invocado

Almacenamiento de datos localmente

Supongamos que el bloque “A” hace una llamada al bloque “B” para realizar una operación específica. En el
bloque “B” se ejecutarán una serie de instrucciones que arrojarán un resultado “X”. Este resultado “X” se
almacenará en una zona de memoria propia del bloque “B” si este dispone de memoria. Cuando se haga
una segunda llamada al bloque “B”, este conservará el resultado que se obtuvo en la primera llamada.
Sin embargo, si el bloque llamado no dispusiera de memoria, el resultado de la ejecución del bloque “B” no
se almacenaría de manera permanente, de forma que en una segunda llamada el bloque “B” no tiene
almacenado ningún dato.



 Recuerda

Los bloques FB conservan los resultados de sus operaciones, puesto que poseen DB de instancia
que son datos locales permanentes.
Los bloques FC no conservan los resultados de sus operaciones, puesto que no poseen ninguna
zona de memoria.
Cuando se utilizan contadores y temporizadores, como estos utilizan DB, es preciso programar en
bloques FB que garanticen el almacenamiento en los DB en las sucesivas llamadas.

5.12 Relaciones entre bloques





El equipo de programadores de Automatizaciones 4.0, S. L., conoce las características de cada
bloque de programación. Por tanto, utilizará el bloque OB como principal, hará llamadas a bloques
FB y FC y tendrá en cuenta cuándo los bloques de datos pueden ser globales o locales.
Los bloques de programación se relacionan entre ellos a través de las distintas llamadas, ejecutándose de
esta manera el programa de control completo.
Cada bloque puede invocar a determinados tipos de bloques. Esta relación se muestra en el siguiente
gráfico:

Representación de las invocaciones posibles


por cada bloque lógico de programa

Observa que el inicio de las llamadas a otros bloques lo realiza el bloque principal OB. En la imagen puedes
observar cómo el bloque OB puede llamar a bloques FB o FC. Un bloque FB puede llamar a bloques FC,
pero un bloque FC no puede llamar a un FB.
UA 2: Lenguajes y programas en los autómatas programables

Resumen
El análisis de los automatismos conduce a la división de estos sistemas en subsistemas. Los
subsistemas manejan variables discretas, es decir, variables que pueden ser binarias o numéricas. La
relación entre las variables de entrada y de salida en cada subsistema se expresan mediante una
relación lógica.
En la realidad, los procesos son complejos, pero pueden reducirse al nivel de operaciones más
simples, cuyas relaciones entre entradas y salidas puedan definirse con detalle.
El primer paso en el diseño del automatismo es el desarrollo de un esquema lógico que servirá para
desarrollar el programa de control en una fase posterior. Las metodologías empleadas son los
diagramas gráficos GRAFCET, así como la herramienta gráfica GEMMA. Mediante estas técnicas puede
representarse el comportamiento de automatismos complejos. Estos se dividirán en operaciones y
cada una de ellas, en etapas. La secuencia entre etapas será del tipo combinacional o secuencial,
existiendo las condiciones de transición que ligarán unas etapas con otras.
Una vez desarrollado el gráfico de control, es preciso iniciar la segunda fase de desarrollo: la
elaboración del programa. En esta fase deben definirse las variables de entrada y de salida, así como
asignarles una serie de direcciones que harán que la CPU pueda localizarlas en la memoria y operar
con ellas.
El programa de control debe escribirse en el entorno de programación del PLC, donde también debe
configurarse el hardware y asignar un proyecto determinado a esa programación. Finalmente, el
programa debe compilarse y cargarse en el autómata para, posteriormente, ser ejecutado.
Los lenguajes de programación utilizados se dividen en dos grandes grupos: los de tipo gráfico y los
de tipo texto. Aquellos de tipo gráfico suelen ser lenguajes de alto nivel, más entendibles por el
usuario, aunque con algunas limitaciones. Estos lenguajes gráficos utilizan operadores que ayudan en
la definición de las instrucciones del programa, tales como operadores lógicos, operadores de
combinación, contadores, temporizadores, etc.
La programación del tipo estructurado ayuda a desarrollar programas complejos que, de esta manera,
pueden dividirse en bloques más sencillos que pueden invocarse desde otros bloques de
programación. Un bloque de programación principal puede ser interrumpido por una parada de
emergencia, un fallo en el sistema o simplemente porque en un momento determinado de la
ejecución del programa se hace una llamada a otro bloque que ejecutará una subrutina o tarea
específica.
Se definen, asimismo, los bloques de datos que son accesibles por determinados bloques de
programación o de forma global, constituyéndose como elementos de memoria que conservan los
resultados de las operaciones que se producen en cada bloque, cuando han sido llamados.

También podría gustarte