Metodología para La Elaboración de Los Programas A Implementar en Autómatas Programables
Metodología para La Elaboración de Los Programas A Implementar en Autómatas Programables
Resumen
El objetivo de este trabajo es la presentación de una metodología para la elaboración del programa de usuario a la que hemos llamado
MEPUS (Metodología para Estructurar el Programa de Usuario mediante Saltos). Con esta metodología se eliminan las aleatoriedades
de programación, a la vez que se reduce de forma considerable el tiempo del ciclo de lectura o ciclo de scan, sobre todo en los procesos
secuenciales. No es un nuevo método de diseño de automatismos programados. Es una herramienta gráfica para la redacción del
programa de usuario, independiente del método de diseño utilizado para representar el modelo de secuencialización del proceso a
automatizar, ya sea red de Petri, Grafcet, Teoría Binodal, etc. También, y aunque sea una ventaja menor, se optimizan los recursos
internos del autómata (temporizadores, contadores, etc.), ya que esta metodología permite que se puedan volver a utilizar en un mismo
programa. Basado en los resultados obtenidos durante más de 10 años, se concluye que con esta metodología el programa de usuario se
obtiene de forma más sencilla, clara y sobre todo sistemática, lo que facilita el aprendizaje por parte del colectivo profesional y discente.
Para este trabajo se ha elegido como modelo de secuencialización del proceso a automatizar el Grafcet, por ser el más utilizado por los
programadores de PLC’s.
1. Introducción
Sea cual sea el método de diseño utilizado, obtenemos
Una vez elaboradas las condiciones de funcionamiento del ecuaciones o frases que constituyen líneas o comandos de
proceso a automatizar, el diseñador se enfrenta a la elección de la programación, que dan lugar al programa de usuario a
tecnología a utilizar. En función de dicha tecnología se obtienen implementar en el PLC (Quezada-Quezada et al., 2014; Javier de
los esquemas (tecnologías cableadas) o programas (tecnologías las Morenas et al, 2015).
programadas) que han de representar el funcionamiento deseado. No obstante ningún método de los anteriores se indica en qué
En el caso de tecnologías programadas la forma de obtenerlos es orden se deben escribir las líneas de programación. Ello puede dar
muy variada, en efecto: lugar a la aparición de las llamadas aleatoriedades o
1) La mayoría de ingenieros y diseñadores deducen el ambigüedades de programación (Silva, 1985; Zaytoon et al.,
esquema o programa de control mediante métodos 1997; Daniel Gomez et al, 2008; F. Schumacher, 2011), debido al
puramente intuitivos, basados en la experiencia funcionamiento particular de los PLCs.
adquirida a lo largo de los años (Moreno y Peulot, Su funcionamiento tan característico hace que el orden de
1996). Este procedimiento presenta dos grandes situación de las instrucciones o líneas del programa sea un factor
inconvenientes: el elevado tiempo de depuración y la crucial para garantizar el funcionamiento deseado (Pérez et al.,
utilización irracional de recursos. 1998). Por lo tanto, será necesario adaptar el modelo obtenido al
2) El resto de ingenieros, diseñadores y grupos docentes, funcionamiento de dichos dispositivos (Lhoste et al., 1997).
utilizan herramientas gráficas de diseño como redes de En efecto, aún siendo las mismas ecuaciones, basta con
Petri, teoría binodal, grafcet, programación dirigida a modificar su orden de ubicación en el seno del programa para que
objetos, etc. (IEC 60848, IEC 61131-3, IEC 61499 entre éste no funcione de forma satisfactoria. Las deficiencias
otros), la teoría de sistemas dinámicos de eventos detectadas son entre otras, la activación múltiple de etapas,
discretos (Cassandras and Lafortune, 2006; Hrúz and deslizamientos, bloqueos parciales, etc. (Silva, 1985; Zaytoon et
Zhou, 2007; Daniel Gómez et al., 2011). al., 1997; Frank Schumacher, 2011).
Por su amplia utilización, sobre todo en Europa, en este trabajo
* Autor en correspondencia.
Correos electrónicos: [email protected] (Rafael Montoya); como herramienta de diseño se utiliza el grafcet. Este método
[email protected] (José M. Díez); [email protected] (Pedro A. Blasco) apareció en 1977 y posteriormente fue establecido como norma
IEC 60848 (International Electrotechnical Commission) en 1988.
© 2015 CEA. Publicado por Elsevier España, S.L.U. Este es un artículo Open Access bajo la licencia CC BY-NC-ND (http://creativecommons.org/licenses/by-nc-nd/4.0/)
http://dx.doi.org/10.1016/j.riai.2016.03.006
J.M. Diez et al. / Revista Iberoamericana de Automática e Informática industrial 13 (2016) 322–329 323
El contenido relativo a una porción “PN” vendrá dado por, y A cada situación ligada a una porción asociada le precede un
en el orden que se expresan, los siguientes coceptos: único salto de tipo absoluto (SA).
1) Receptividad de la transición correspondiente. Este salto podrá realizarse hacia la porción de lectura
2) Activación de la etapa o etapas posteriores. permanente, tal como muestra la Figura 7, o bien hacia cualquier
3) Desactivación de la etapa “N”. otra situación que lo requiera.
4) Eventos internos asociados a la etapa “N”, por ejemplo,
incrementar y decrementar valores, sumar y restar valores, 3. Desarrollo del método.
comparación de valores, creación de variables
temporizadas, de contaje, flancos, etc. - Gráfico de Estructuración del Programa.
5) Además, de forma opcional, ya que puede incluirse en la
porción de lectura permanente, la activación y La base principal de MEPUS es la representación del Gráfico
desactivación de salidas y variables internas, ya se de Estructuración del Programa de usuario (GEP). El GEP
materialicen con instrucciones de memoria (Set y Reset) o representa gráficamente el contenido del programa de un sistema
de forma combinacional (igualdades). de control basado en grafcet, en este caso.
La Figura 8 muestra la representación general del GEP, donde
se aprecia los símbolos utilizados y finalidad de cada uno de ellos.
b) Si no se verifica “C0”, el programa prosigue a la situación La Figura 9 ilustra un grafcet de secuencia única constituido
“1” donde se procesa el contenido definido por “C1”. por tres etapas. La acción A está activa cuando lo esté la “etapa 1”
2) En la situación “1” el procedimiento es análogo al establecido y la acción B está activa cuando lo esté la “etapa 2” siempre que
para la situación “0”. esté presente la señal “h”. La condición de inicialización “I” es
necesaria para poner operativo el grafcet cuando se ejecuta por
- Elaboración del programa de usuario primera vez.
A partir del G.E.P. obtenido se elabora el programa de usuario, - Expresiones lógicas.
donde se establecen de forma ordenada el contenido asociado a
cada una de las situaciones del G.E.P., según el lenguaje de Las expresiones lógicas relativas al contenido de las condiciones,
programación elegido. El orden de las partes del programa se porciones asociadas y porción de lectura permanente se muestran
realizará tal y como se indica en la Tabla 1. en la Tabla 2. El orden de ubicación de cada una de ellas se
Tabla 1: Estructura general del programa.
realizará según el G.E.P. de la Figura 10.
Tabla 2: Expresiones lógicas (S = Set; R = Reset).
Condición “C0”
Salto condicionado “S C0” hacia “P0” C0: Si está %M0 Î SALTA A (P0)
... C1: Si está %M1 Î SALTA A (P1)
Condición “CN” C2: Si está %M2 Î SALTA A (P2)
Salto condicionado “S CN” hacia “PN” Inicialización: Si no está %M0 Î S(%M0)
Inicialización SALTA A (PLP)
Salto absoluto “SA” hacia la PLP P0: Si está “a” Î S(%M1), R(%M0)
Porción “P0” SALTA A (PLP)
Salto absoluto “SA” hacia la PLP P1: Si está “b” Î S(%M2), R(%M1)
... SALTA A (PLP)
Porción “PN” P2: Si está “c” Î S(%M0), R(%M2)
Porción de lectura permanente “PLP” SALTA A (PLP)
PLP: Si está %M1 = %QA; si está %M2·”h” = %QB
Se observa que no es necesario incorporar en el programa los - Programa de usuario.
saltos condicionados y absolutos que ligan dos situaciones
consecutivas. En nuestra estructura corresponde a todos los saltos Tabla 3: Programa de usuario del ejemplo 1.
condicionados a la no verificación de cualquier condición y al
último salto absoluto desde “PN” hacia “PLP”. Nº tipo instrucciones
0 C0: LD “%M0”
4. Ejemplo de aplicación 1 (Secuencia única). SC P0: JMPC P0
1 C1: LD “%M1”
SC P1: JMPC P1
2 C2: LD “%M2”
SC P2: JMPC P2
3 LDN “%M0”
Inicialización:
S “%M0”
SA: JMP PLP
4 P0: P0: LD “a”
S “%M1”
R “%M0”
Figura 9: Grafcet de tres etapas y secuencia única. SA: JMP PLP
5 P1: P1: LD “b”
S “%M2”
R “%M1”
SA: JMP PLP
6 P2: P2: LD “c”
S “%M0”
R “%M2”
7 PLP: PLP: LD “%M2”
ST “%QA”
LD “%M3”
AND “h”
ST “%QB”
Cuando el proceso se encuentra en la etapa “0”, 15 líneas y 6. Ejemplo de aplicación 3 (Secuencias simultáneas).
cuando se encuentra en el resto de etapas, de la “1” a la “5”, 12
líneas.
De ello es fácil deducir que cuanto más largo sea el proceso de
secuencia única, o más secuencias alternativas tenga el programa
a implementar, mayor será la reducción del tiempo de ciclo de
scan del PLC.
- Programa de usuario.
Nº tipo instrucciones
0 CONDICIÓN, C0: LD “%M0”
SALTO CONDICIONADO, SC C0: JMPC P0
1 CONDICIÓN, C1: LD “%M1”
Figura 13: Grafcet con secuencias paralelas y diez etapas.
SALTO CONDICIONADO, SC C1: JMPC P1
2 CONDICIÓN, C2: LD “%M2” La Figura 13 ilustra un grafcet de secuencias paralelas
SALTO CONDICIONADO, SC C2: JMPC P2 constituido por diez etapas. En él se puede observar que existen
3 CONDICIÓN, C3: LD “%M3” tres secuencias simultáneas que se activan desde la etapa “0” y
JMPC P3
con la transición “a”. Para salir de dichas secuencias el proceso se
SALTO CONDICIONADO, SC C3:
debe encontrar en las etapas 2, 5 y 8 y verificarse la transición
4 CONDICIÓN, C4: LD “%M4”
“g”.
SALTO CONDICIONADO, SC C4: JMPC P4
5 CONDICIÓN, C5: LD “%M5” - Gráfico de Estructuración del Programa.
SALTO CONDICIONADO, SC C5: JMPC P5
6 LDN “%M0”
Inicialización:
S “%M0”
SALTO ABSOLUTO, SA: JMP PLP
7 PORCIÓN, P0: P0: LD “a”
S “%M1”
R “%M0”
LD “d”
S “%M3”
R “%M0”
SALTO ABSOLUTO, SA: JMP PLP
8 PORCIÓN, P1: P1: LD “b”
S “%M2”
R “%M1”
SALTO ABSOLUTO, SA: JMP PLP
9 PORCIÓN, P2: P2: LD “c”
S “%M5”
R “%M2”
SALTO ABSOLUTO, SA: JMP PLP
10 PORCIÓN, P3: P3: LD “e”
S “%M4”
R “%M3”
SALTO ABSOLUTO, SA: JMP PLP
11 PORCIÓN, P4: P4: LD “f”
S “%M5”
R “%M4”
SALTO ABSOLUTO, SA: JMP PLP
12 PORCIÓN, P5: P5: LD “g”
S “%M0”
R “%M2”
R “%M4”
13 PORCIÓN, PLP: PLP: LD %M1”
Figura 14: G.E.P. del grafcet de la Figura 13.
ST “%QA”
LD “%M3” A partir del Grafcet de la Figura 13 se representa el G.E.P.
ST “%QB” Hay que tener presente que las tres secuencias simultáneas se
LD “%M5” deben leer en cada ciclo de lectura del PLC. Así pues, el G.E.P.
ST “%QC” resultante se muestra en la figura 14.
328 J.M. Diez et al. / Revista Iberoamericana de Automática e Informática industrial 13 (2016) 322–329
Tabla 8: Programa de usuario del ejemplo 3. recoge la suya y las anteriores, es decir hay una condición
tipo instrucciones C(2,5,8). Lo mismo ocurre con sus porciones.
Nº
Otra variable a tener en cuenta es que desde las etapas de las
0 CONDICIÓN, C0: LD “%M0” líneas simultáneas no se salta a la PLP, sino a las primeras etapas
SALTO CONDICIONADO, SC C0: JMPC P0 de las líneas simultáneas situadas a su derecha. Sólo desde las
1 CONDICIÓN, C1: LD “%M1” etapas de la línea simultánea situada más a la derecha se salta a la
SALTO CONDICIONADO, SC C1: JMPC P1 PLP.
3 CONDICIÓN, C3: LD “%M3” En este ejemplo desde las etapas 1 y 2 se salta a la etapa 3; de
SALTO CONDICIONADO, SC C3: JMPC P3 las etapas 3, 4 y 5 a la etapa 6; y por último desde las etapas 6, 7,
4 CONDICIÓN, C4: LD “%M4” 8 y 9 se salta a la PLP.
SALTO CONDICIONADO, SC C4: JMPC P4 En la tabla 8 se observa la secuencia del programa de usuario.
6 CONDICIÓN, C6: LD “%M6” Tabla 7: Expresiones lógicas.
SALTO CONDICIONADO, SC C6: JMPC P6
C0: Si está %M0 Î SALTA A (P0)
7 CONDICIÓN, C7: LD “%M7”
C1: Si está %M1 Î SALTA A (P1)
SALTO CONDICIONADO, SC C7: JMPC P7
C3: Si está %M3 Î SALTA A (P3)
8 CONDICIÓN, C(2,5,8): LD “%M2” C4: Si está %M4 Î SALTA A (P4)
AND “%M5” C6: Si está %M6 Î SALTA A (P6)
AND “%M8” C7: Si está %M7 Î SALTA A (P7)
SALTO CONDICIONADO, SC C(2,5,8): Si está %M2, %M5 y %M8 Î SALTA A
JMPC P(2,5,8)
C(2,5,8):
9
(P(2,5,8))
CONDICIÓN, C9: LD “%M9”
C9: Si está %M9 Î SALTA A (P9)
SALTO CONDICIONADO, SC C9: JMPC P9
Inicialización: Si no está %M0 Î S(%M0)
10 LDN “%M0”
Inicialización:
S “%M0” P0: Si está “a” Î S(%M1), S(%M3), S(%M6), R(%M0)
SALTO ABSOLUTO, SA: JMP PPR SALTA A (PLP)
11 PORCIÓN, P0: LD “a” P1: Si está “b” Î S(%M2), R(%M1)
S “%M1”; S “%M3” SALTA A (C3)
S “%M6”; R “%M0” P3: Si está “c” Î S(%M4), R(%M3)
SALTO ABSOLUTO, SA: JMP PPR SALTA A (C6)
12 PORCIÓN, P1: LD “b” P4: Si está “d” Î S(%M5), R(%M4)
S “%M2”; R “%M1”
SALTA A (C6)
SALTO ABSOLUTO, SA: JMP C3
P6: Si está “e” Î S(%M7), R(%M6)
13 PORCIÓN, P3: LD “c”
S “%M4”; R “%M3” SALTA A (PLP)
SALTO ABSOLUTO, SA: JMP C6 P7: Si está “f” Î S(%M8), R(%M7)
14 PORCIÓN, P4: LD “d” SALTA A (PLP)
S “%M5”; R “%M4” P(2,5,8): Si está “g” Î S(%M9), R(%M2), R(%M5),
SALTO ABSOLUTO, SA: JMP C6 R(%M8)
15 PORCIÓN, P6: LD “e”
S “%M7”; R “%M6”
PLP: Si está %M1 = %QA; Si está %M3 = %QB;
SALTO ABSOLUTO, SA: JMP PLP Si está %M4 = %QC; Si está %M6 = %QD;
16 PORCIÓN, P7: LD “f” Si está %M7 = %QE; Si está %M9 = %QF;
S “%M8”; R “%M7”
SALTO ABSOLUTO, SA: JMP PLP 7. Conclusiones.
17 PORCIÓN, P(2,5,8): LD “g”
S “%M9”; R “%M2”
R “%M5”; R “%M8” En este trabajo se han analizado las causas de las
SALTO ABSOLUTO, SA: JMP PLP aleatoriedades de programación, concluyendo que son debidas a
18 P9: LD “h” la forma de procesar los programas de usuario introducidos en los
S “%M0”; R “%M9” PLCs (Pérez, 1988; Silva, 1985; Daniel Gomez et al, 2008, Frank
19 PLP: LD “%M1”; ST “%QA” Schumacher, 2011).
LD “%M3”; ST “%QB” Para eliminar estos problemas, se ha desarrollado una nueva
LD “%M4”; ST “%QC”
LD “%M6”; ST “%QD”
metodología, que permite elaborar de forma estructurada el
LD “%M7”; ST “%QE” programa de usuario.
LD “%M9”; ST “%QF” En comparación con los métodos planteados por los autores
que se han comentados en párrafos anteriores, el método
Se observa que se sigue la misma metodología. Se redactan desarrollado en este trabajo, además de resolver la problemática
primero las condiciones y a continuación la inicialización, de las aleatoriedades de programación, presenta las siguientes
porciones y por último la PLP. ventajas:
Como característica particular, y debido a la singularidad de a) Disminuye, todavía más, el tiempo de ciclo de lectura, ya
este tipo de procesos, las etapas finales de las líneas simultáneas que el contenido de programa que se procesa es menor que
no poseen condiciones particulares, sino que se reúnen en una en los casos anteriores.
sola en la última etapa de la línea situada más a la derecha. En b) Reduce los recursos utilizados, ya que no se añaden ni
este caso las etapas 2 y 5, no poseen condiciones, y la etapa 8 etapas fantasmas, ni se definen nuevas variables para
J.M. Diez et al. / Revista Iberoamericana de Automática e Informática industrial 13 (2016) 322–329 329