Software">
Nothing Special   »   [go: up one dir, main page]

Manual FPWin Pro

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 28

Guía de FPWin Pro Estándar Internacional IEC 61131-3

Guía de FPWin Pro


El Estándar Internacional IEC
61131-3.

Departamento de Automática y Sistemas


Universidad de Sevilla.

Página 1 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

Índice

1. Gestión de proyectos .............................................................................................................. 4


1.1 Crear, guardar, cargar un proyecto..................................................................................... 4
1.2 Elementos que componen un proyecto .............................................................................. 5
1.2.1 Descripción de las ramas del navegador de proyecto ................................................ 5
1.2.2 Programas, variables, tareas, etc. Estándar IEC 61131-3 .......................................... 6
1.3 Configuración del autómata ................................................................................................ 8
2. Gestión de variables ............................................................................................................... 8
2.1 Variables locales y globales ................................................................................................ 9
2.2 Direccionamiento de las E/S ............................................................................................... 9
2.2.1 Nomenclatura usada (ejemplo) ................................................................................... 9
2.3 Direccionamiento de contadores y temporizadores.......................................................... 10
2.4 Contadores rápidos ........................................................................................................... 10
2.5 Creación de una instancia de una FB ............................................................................... 11
3. Depuración, conexión con el autómata, carga y ejecución un proyecto ........................ 12
3.1 Modos de operación ......................................................................................................... 13
3.2 Parámetros de conexión ................................................................................................... 13
3.3 Descripción de la animación ............................................................................................. 14
4. Diagrama de contactos ......................................................................................................... 15
4.1 Crear un nuevo programa ................................................................................................. 15
4.2 Barra de herramientas, menú y elementos básicos de programación ............................. 15
4.2.1 Ejemplos ............................................................................................................ 16
4.3 Cómo crear una instancia de una FB e introducirla en el programa ................................ 16
4.4 Definición de parámetros y llamada a la función. ............................................................. 16
4.5 Ejemplo de programación en LD. ..................................................................................... 17
5. Lenguaje de programación IL .............................................................................................. 17
5.1 Como crear un nuevo programa ....................................................................................... 17
5.2 Barra de herramientas y menú ......................................................................................... 18
5.3 Cómo crear una instancia de una FB e introducirla en el programa ................................ 18
5.4 Definición de parámetros y llamada a la función .............................................................. 19
5.5 Ejemplo ............................................................................................................................. 19
6. Lenguaje de programación ST ............................................................................................. 20
6.1 Como crear un nuevo programa ....................................................................................... 20
6.2 Barra de herramientas y menú ......................................................................................... 20
6.3 Ejemplos con elementos sencillos .................................................................................... 20
6.4 Cómo crear una instancia de una FB e introducirla en el programa ................................ 21
6.5 Definición de parámetros y llamada a la función .............................................................. 21
6.6 Ejemplo ............................................................................................................................. 22
7. Lenguaje de programación FBD .......................................................................................... 22
7.1 Como crear un nuevo programa ....................................................................................... 22
7.2 Barra de herramientas y menú ......................................................................................... 23
7.3 Elementos básicos de programación ................................................................................ 23
7.3.1 Elementos básicos..................................................................................................... 23
7.4 Cómo crear una instancia de una FB e introducirla en el programa ................................ 23
7.5 Definición de parámetros y llamada a la función .............................................................. 24
7.6 Ejemplo ............................................................................................................................. 24
8. Lenguaje de programación SFC .......................................................................................... 24
8.1 Como crear un nuevo programa ....................................................................................... 24
8.2 Barra de herramientas y menú ......................................................................................... 25
8.3 Elementos básicos de programación ................................................................................ 25
8.3.1 Elementos básicos..................................................................................................... 25
8.3.2 Ejemplo de elementos sencillos ................................................................................ 26

Página 2 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

8.4 Crear una instancia de una FB e introducirla en el programa .......................................... 27


8.5 Definición de parámetros y llamada a la función .............................................................. 27
9. Creación de FB propias ........................................................................................................ 27
9.1 Cómo crear paso a paso una FB para después crear diferentes instancias en el
programa. ................................................................................................................................ 27
9.2 Definición de entradas, salidas, variables internas, etc... ................................................. 27
9.3 Ejemplo sencillo con FBD de dos motores marcha paro. ................................................. 28

Página 3 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

1. Gestión de proyectos
La programación del autómata FP-X está compuesta por tareas,
variables, funciones, programas, etc. Un proyecto es el conjunto de todas las
partes constituyentes necesarias para la programación del PLC. A continuación
se muestran los elementos que componen un proyecto, así como la forma de
trabajar con ellos.

1.1 Crear, guardar, cargar un proyecto

Para crear un nuevo proyecto el usuario debe dirigirse a:

Inicio»Todos los Programas»Panasonic Mew Control»FPWin Pro 5»FPWinPro5

La primera ventana que aparece


cuando se arranca el entorno de
programación ofrece diferentes opciones:
Crear nuevo proyecto, abrir uno existente o
recuperar un proyecto. En esta pantalla se
tiene la opción de crear o cargar un proyecto.

Para tomar un primer contacto con el


programa se comienza por crear un nuevo
proyecto. El hecho de crear un proyecto
implica crear un programa. El siguiente paso
es definir el nombre del proyecto, nombre del
programa, y configurar el PLC, apareciendo una lista con los diferentes tipos de Figura 1

PLC1 disponibles. Cuando de elije un lenguaje de programación es para el


programa que se ha creado, si se desea se pueden crear más programas
desde la pantalla principal, en cualquier lenguaje de programación.

Izquierda figura 2. Creación de un nuevo


programa. Arriba figura 3. Selección del tipo
de PLC.

1
El autómata con el que se va a trabajar es el FP-X C30

Página 4 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

Se finaliza pulsando “Crear Proyecto”. Para guardar el proyecto


simplemente es necesario ir al menú “Proyecto->Guardar” (Ctr+S) o en la barra
de herramientas en el icono correspondiente, como cualquier programa en
entorno Windows.

1.2 Elementos que componen un proyecto

En el navegador (árbol que se encuentra a la izquierda de la pantalla


principal) se encuentran dichos elementos.

1.2.1 Descripción de las ramas del


navegador de proyecto

El navegador está compuesto registros de


sistema, librerías, tareas, DUTs, variables globales
y POUs. En la rama correspondiente a registros de
sistema se puede configurar algunos registros del
autómata. Solo pueden ser configuradas las
opciones que aparecen en negrita, en caso de
aparecer sombreadas son opciones no
modificables.

En la rama “Librerías” están todas las


funciones disponibles para la programación. El
usuario puede crear su propia librería o instalar una
creada por otra persona.

Las tareas se pueden dividir en tres tipos:


interrupciones (Iterrupt 0 a Interrupt 13), pediódicas
(Timer Interrupt) y las cíclicas (Programs). Las
interrupciones se pueden programar para que
ocurran cuando sea cierta una condición, por
ejemplo que se activa un sensor; la periódica se
ejecuta cada cierto intervalo
de tiempo definido. Para
asociar un programa a
alguna tarea basta con hacer
doble clic sobre la tarea y
seleccionar el programa
correspondiente. En esta
guía solo se trabajará con la
Figura 4. Árbol de programación
tarea “Programs”, se debe
tener en cuenta que todos los programas creados deben
estar incluidos en esta tarea. Una forma sencilla de
comprobarlo es que se compila el programa, en caso
contrario el programa aparecerá señalado con un
asterisco.
Figura 5. Tarea “Programas”

Página 5 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

El siguiente punto son las DUTs (Data Unit Type). Las DUT son
estructuras compuestas por otros tipos de datos; pueden estar definidas en
librerías. El usuario puede definir sus propias DUT´s.

Las dos últimas ramas del árbol pueden


considerarse las más importantes. En la rama “Variables
Globales” se definirán los nombres de las entradas, salidas
y todas aquellas variables que deban ser accesibles desde
diferentes programas del proyecto. En esta rama se definen
los eventos que disparan las interrupciones. En la rama
correspondiente a las POU´s (Program Organisation Unit)
aparecen los programas, funciones y bloques funcionales
que se han creado. En la barra de herramientas aparece un
botón para la crear una nueva unidad de programación (el
icono ). Al crear una nueva POU se debe elegir el Figura 6. Creación POU
lenguaje con el que se quiere programar y la tarea a la cual se asigna; esto
permite en un mismo proyecto utilizar diferentes programas desarrollados en
diferentes lenguajes, o crear funciones a la medida del usuario y programarlas
en el lenguaje más conveniente en cada situación. Las unidades de
programación utilizan variables locales con identificadores propios limitadas a
la POU, esto implica que se pueden reutilizar el mismo identificador en
diferentes POU´s sin interferencia entre unidades.

1.2.2 Programas, variables, tareas, etc. Estándar IEC 61131-3

El estándar puede dividirse en dos partes: Elementos comunes y


lenguajes de programación.

1.2.2.1 Elementos comunes

Tipificación de datos: Los tipos de datos son


definidos dentro de los elementos comunes. La tipificación IEC 61131-3
de datos previene errores en etapas tempranas. Tipos de
datos comunes son: binarios (booleanos), enteros, reales, Elementos
octetos (byte), Palabras (doble octeto), así como también comunes
fechas, cadenas tipo Hora_del_Día. Basado en estos tipos
de datos se pueden construir y definir tipos de datos Lenguajes de
personalizados, conocidos como tipos de datos derivados. programación

Configuraciones, recursos y tareas: En el nivel más Figura 7

alto, el software total requerido para solucionar un problema particular de


control puede ser definido como una configuración. Una configuración es
específica a un tipo particular de sistema de control, incluyendo el ajuste del
hardware, por ejemplo recursos de procesamiento, direcciones de memoria
para los canales de I/O y demás capacidades del sistema. Dentro de la

Página 6 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

configuración se pueden definir uno o más recursos2, se puede ver un recurso


como una facilidad que es capaz de ejecutar programas IEC. Así mismo dentro
de los Recursos se pueden definir una o mas Tareas, las tareas controlan la
ejecución de un conjunto de programas y/o bloques funcionales. Estos últimos
pueden ser ejecutados periódicamente o en la ocurrencia de un evento
disparador especifico, tal como un cambio en una variable. Los programas son
construidos mediante el uso de un número de diferentes elementos de software
escrito en cualquiera de los lenguajes definidos por IEC.

Unidades para la organización del programa (POU): Dentro de IEC


1131-3, los programas, bloques funcionales y funciones son llamados unidades
organizativas del programa, o POU’s.

Variables: Las direcciones de hardware (por ejemplo, entradas y salidas)


son asignadas explícitamente a las variables en las configuraciones, recursos o
programas. El alcance de las variables son normalmente limitadas a la unidad
de organización del programa en la cual ellas son declaradas. Esto significa
que sus nombres pueden ser reutilizados en otras partes sin ningún conflicto,
eliminando así otra fuente de errores. Si la variable requiere un alcance global,
debe ser explícitamente declarado con la directiva VAR_GLOBAL. FPWinPro
utiliza esta distinción según se establece en el estándar IEC 61131-3.

Funciones. IEC ha definido funciones normalizadas y funciones definidas


por el usuario. Las funciones normalizadas son tales como ADD (suma), ABS
(valor absoluto), SQRT (raíz cuadrada), SIN (seno) y COS (coseno). Funciones
definidas por el usuario, una vez definidas, pueden ser usadas repetidamente.

Bloques funcionales (FB). Estos son el equivalente a los circuitos


integrados (IC) o a los módulos de control discreto analógicos, representando
funciones de control especializado. Ellos contienen tanto datos como
algoritmos, de manera tal que mantienen la pista del pasado (la cual es una de
las diferencias con las funciones escritas). Estos FB’s tienen un interfaz bien
definido e internos escondidos, así como un IC o un modulo de control discreto
tipo caja negra. De esta forma ellos dan una clara separación entre diferentes
niveles de programadores o personal de mantenimiento. Los bloques
funcionales pueden ser escritos en cualquiera de los lenguajes IEC, y la
mayoría de los casos hasta en lenguajes de alto nivel como el "C". De esta
manera pueden ser definidos por el usuario.

Programas. Con los bloques constructivos anteriormente mencionados,


se puede decir que un programa es una red de funciones y bloques
funcionales. Un programa puede ser escrito en cualquiera de los lenguajes de
programación definidos.

Gráficos Funcionales Secuenciales (SFC): El SFC describe gráficamente


el comportamiento secuencial de un programa de control. Es derivado de las
Redes de Petri y la norma Grafcet IEC 848, con los cambios necesarios para
convertir la representación de una norma para documentación a un conjunto de

2
FPWinPro solo implementa la utilización de un recurso a la vez.

Página 7 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

elementos de control ejecutables. El SFC estructura la organización interna de


un programa, y ayuda a descomponer un problema de control en partes más
manejables, manteniendo una visión del todo.

1.2.2.2 Lenguajes de programación

Dentro de la norma son definidos cuatro lenguajes de programación.


Una vez que han sido aprendidos, se pueden usar en una gran variedad de
sistemas basados en esta norma. Los lenguajes consisten de dos versiones
textuales y dos gráficas:

Lista de Instrucciones (IL) Texto Estructurado (ST)


Textuales

LD A
ANDN B C:= A AND NOT B
ST C
Diagrama de Bloques
Diagrama de Contactos (LD)
Funcionales (FBD)
Gráficos

Tabla 1. Lenguajes de programación

Resumiendo, la norma IEC 1131-3 provee de cuatro formas distintas de


programación para PLC´s, que sin embargo mantienen una conexión entre
ellas: Lista de Instrucciones (IL), Texto Estructurado (ST), Diagrama de
Bloques Funcionales (DBF) y Diagrama de Contactos (LD). Existe otra forma
de programación: Gráficos Funcionales Secuenciales (SFC) que por si solo no
es un lenguaje de programación pues necesita alguno de los anteriores.

1.3 Configuración del autómata

Cuando se crea un nuevo programa y se configura el tipo de PLC se


carga la configuración por defecto que será con la que se trabajará. Sin
embargo cabe la posibilidad de configurar algunas opciones en la rama de
registros de sistema.

2. Gestión de variables
Una posibilidad que ofrecen los PLC es la
creación de diferentes tipos de variables según
se establece en el estándar, además de utilizar
las variables internas que ya existen y a las que
se les pueden asignar un nuevo nombre. Estas
variables pueden ser datos comunes como
binarios (booleanos), enteros, reales, octetos

Figura 8. Selección tipo de variable

Página 8 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

(byte), Palabras (doble octeto), así como también fechas, cadenas o DUT (Data
Unit Type).

Al crear una variable se debe asignar un identificador. En caso de que la


variable que se desea crear exista en el PLC, será necesario asignarle la
dirección que tiene asignada (las variables de entradas/salidas se identifican
con X/Y y la entrada/salida correspondiente; del 1 al 16 en el PLC FP-32X;
importante: en mayúsculas). En caso de que la variable sea propia del
autómata, como por ejemplo una entrada, el tipo estará definido, en caso
contrario habrá que definirlo3. Por último se puede asignar un valor inicial y un
comentario.

Cuando se desee introducir una variable en el proceso de programación


se puede pulsar el botón de la barra de herramientas ( ) o pulsar F2.
Aparecerá un menú con las variables existentes, tanto locales como globales.

Una consideración importante es que cuando en un programa se desea


trabajar con variables de distinto tipo es importante hacer la conversión de las
mismas al tipo de la variable donde se vaya a almacenar la variable.

2.1 Variables locales y globales

Como en otros lenguajes de programación las variables pueden ser de


dos tipos: locales y globales. La forma de definirla es análoga pero las locales
solo pueden ser referenciadas dentro de la POU donde se encuentren definidas
y las globales podrán ser llamadas desde cualquier programa. Para poder
utilizar una variable global en una POU primero es necesario crear una
instancia a la variable global en la ventana de variables locales y definir la clase
de la variable como VAR_EXTERNAL, de este modo la variable es accesible
desde la POU.

2.2 Direccionamiento de las E/S

Como ya se ha dicho las entradas y salidas pueden ser renombradas


para una mayor comodidad en su uso, o también pueden ser llamadas
directamente por su dirección FP4 o por la IEC. En estos últimos casos es muy
importante la nomenclatura que se utilice, para no causar errores en el código.
Se recomienda el uso de identificadores para facilitar la programación al
usuario y evitar confusiones.

2.2.1 Nomenclatura usada (ejemplo)

Para utilizar
cualquier registro del
PLC es necesario
utilizar la dirección FP Figura 9.

3
Si no se define FPWinPro no identifica la variable y por lo tanto considera que no existe.
4
Propia del autómata. Existe una correlación entre direcciones FP e IEC. La nomenclatura del
direccionamiento FP es más sencillo que el IEC y se recomienda su utilización en la programación

Página 9 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

en mayúscula, seguido del número que la identifique, como ya se ha dicho. Así


para el caso de entradas se utiliza “X” para identificarlas y para las salidas “Y”.
En el ejemplo anterior se muestra como se identifica la segunda 5 entrada del
autómata con el nombre “ejemplo”.

2.3 Direccionamiento de contadores y temporizadores

Tantos contadores como temporizadores están compuestos por dos


partes, la primera es el FB que realiza la tarea y la segunda la variable donde
se almacena el resultado.

Los contadores (counter) pueden ser de varios tipos: crecientes


(incrementales, up, etc.), decrecientes (decrementales, down, etc.), crecientes-
decrecientes (up-down, etc.). Existen contadores de librerías del estándar IEC
como: CTU, CTD, CTUD, etc., y de librerías de FPWin como: CT, CT_FB,
F118, etc.

Los temporizadores son regresivos, es decir, van decreciendo de un


valor predeterminado hasta llegar a ceró. Como resultado tiene un valor lógico
que se pone a uno cuando llega a cero el temporizador. Existen funciones de
librerías como TM_1ms_FB, TM_100ms_FB, etc.

Las variables de los contadores y de los temporizadores se almacenan


en un espacio de memoria reservado, es un registro que tiene una dirección FP
propia: C1008 al C1023 para contadores y del T0 al T1007 para
temporizadores. Como se observa, entre temporizadores y contadores se
tienen 1024 puntos y son unos correlativos a los otros.

La figura 10 es un ejemplo donde se definen una entrada, una salida, un


temporizador y un contador. Primero se parte nombrando la variable, al
asignarle la dirección FP los demás campos automáticamente se rellenan. Es
importante utilizar mayúsculas al definir la dirección FP.

Figura 10. Instancias a una entrada, a una salida, a un temporizador y a un contador

2.4 Contadores rápidos

Otra opción que ofrecen los PLC´s es la implementación de contadores


rápidos o contadores de alta velocidad. La función que un contador de alta
velocidad realiza es el contaje de entradas externas tales como las de sensores
y encoders. El contador de alta velocidad es cíclico, es decir, cuando el valor
de contaje excede el valor máximo del rango, el contador comienza de nuevo
desde el valor mínimo. Del mismo modo, si el rango se excede por el límite
inferior, el contaje continuará por el límite superior.

5
La primera entrada es X0 y la primera salida es Y0

Página 10 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

Se configura en el navegador, rama de registros de sistema y haciendo


doble clic en contador de alta velocidad. Los contadores se definen por canales
que utilizan las entradas al PLC para la lectura de pulsos.

Figura 11. Contadores de alta velocidad

2.5 Creación de una instancia de una FB

Antes de utilizar cualquier bloque de funciones (FB) que este definido en


alguna librería o creado por el usuario, este bloque debe tener una instancia en
el programa, es decir, crear una variable del tipo FB deseado. Para ello se
debe crear una variable y en el tipo buscar el bloque deseado.

Figura 12. Instancia a un FB

Después se puede introducir el bloque en cuestión y acceder a él con el


identificador correspondiente. Este proceso se puede realizar cuantas veces se
quiera. Se pueden crear varias instancias de una misma clase de FB

Derecha figura 13. Selección de un FB


Abajo figura 14. Asignación de identificador a un FB

Página 11 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

La definición de la variable correspondiente a un FB es igual en todos los


tipos de lenguajes con el que se trabaje, sin embargo la llamada al FB es
diferente dependiendo del lenguaje que se utilice. En los apartados
correspondientes a cada lenguaje se verá como realizar una instancia a un
bloque funcional.

3. Depuración, conexión con el autómata, carga y


ejecución un proyecto
Cuando se tiene creado el proyecto, con todos sus
programas, tareas, variables, etc.; solo queda depurarlo ( ),
compilarlo ( ) y pasar modo Online ( ).

Para depurar el código de programación FPWinPro


dispone de una herramienta ( ) que permite depurar el módulo
en el que se está trabajando. Si se marca el programa en el árbol
del navegador se puede depurar el programa completo con la
misma herramienta. Una vez creado el programa se debe
compilar ( ) para poder pasarlo al autómata. Si se realiza un
cambio en algún módulo aparecerá marcado mediante un Figura 15.
asterisco en el navegador, en este caso se puede compilar solo el módulo que
ha sufrido cambios mediante la compilación incremental ( ). Cuando se
compila en alguno de las
formas existentes, o bien se
depura el programa
aparecerá, la misma ventana
donde se informa de los
posibles errores o
advertencias. En caso de
que existan, la ventana
conduce al usuario hasta el
error y se remarca para la
identificación del mismo. Figura 16. Revisar compilar un proyecto

Figura 17. Advertencia y errores en una POU

Página 12 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

En el modo online aparecerá una nueva barra de herramientas. Este


modo permite ver el funcionamiento del programa y monitorizar las diferentes
variables, descargar el programa de autómata o importar el programa existente
en el autómata. En caso de ser necesario se puede modificar algunas partes
del código interrumpiendo temporalmente el programa. Además se puede
conmutar el modo de funcionamiento del PLC entre “Prog” y
“Run”.

Figura 18. Barra de herramientas en modo Online

Figura 19. Establecimiento de conexión.

3.1 Modos de operación


Figura 20. Frontal PLC

El cambio de modo de operación se puede realizar tanto desde el


software FPWinPro como desde el autómata. En el modo
“Run” se están ejecutando los programas que se hayan
cargado en el PLC, mientras que en el modo “Prog” el
autómata está a la espera y se pueden realizar ciertas
acciones sobre él.

En el modo “Prog” se pueden realizar algunos


cambios sobre la programación mediante el “modo de
programación Online” ( ). Una vez realizados los cambios
se debe revisar si existe un fallo ( ), y para regresar a la Figura 21. Edición en modo Online
ejecución se debe volver a pulsar el mismo icono ( ),
en ese momento de vuelve a compilar y descargar los
cambios al PLC.

3.2 Parámetros de conexión

Cuando se pasa a modo Online el propio


programa FPWinPro intenta establecer la conexión
con el autómata. En caso de que se encuentre mal
configurada la comunicación se realiza un escaneo de
los puertos disponibles a diferentes velocidades hasta
que se establece la conexión.

Figura 22. Conexión al PLC


Figura 23. Parámetros de comunicación

Página 13 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

Existe la posibilidad se cambiar ciertos parámetros de la conexión. En


menú:

Online >> Parámetros de Comunicación…

Se despliega una ventana donde aparecen los parámetros configurables.


Cuando se conecta el PLC mediante el puerto USB, el parámetro puerto
adicional debe ser modificable, en caso contrario no está bien configurado el
software y no se puede realizar la comunicación por el puerto USB.

3.3 Descripción de la animación

Cuándo el PLC está funcionando y se está conectado a él


mediante el modo Online, en la pantalla principal de los programas
se puede monitorizar el estado del autómata, es decir, el valor de
algunas de las variables. Figura 24. LD online

Dependiendo del lenguaje de programación utilizado en la pantalla


se verá de una forma u otra. Para diagrama de contactos, lista de
instrucciones, texto estructurado y diagrama de bloques funcionales las
variables mostrarán a su lado el valor que tienen en cada momento. Si la
variable es booleana se enmarcará en un cuadro en verde en caso de ser
cierta y en un cuadro vacío en caso de no serlo.

Cuando se programa en Grafcet en modo online se representa de


forma algo diferente. Cuando hay un estado activo dicho estado aparece
en color verde y cuando hay una condición que se verifica la transición
correspondiente aparece en verde.

Figura 25. SFC online

Figura 26. ST online

Si no se observa el estado de las variables se debe pulsar el botón


derecho sobre la pantalla y escoger la opción monitorizar variables.

Página 14 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

Figura 27. Monitorizar valores Figura 28. Forzar valores

Se pueden forzar las variables del autómata en modo online haciendo


doble clic sobre la variable deseada, siempre y cuando la variable no sea una
entrada o una salida del PLC.

4. Diagrama de contactos
Es el lenguaje de programación más extendido entre los PLC. Debido a
que los PLC en un inicio se trataban de contactos mediante la electrónica
analógica, con la llegada de la electrónica digital se ha mantenido este tipo de
lenguaje.

4.1 Crear un nuevo programa

Para crear un programa en LD solo es necesario introducir los


elementos, asignarles las variables correspondientes y unirlos entre sí
mediante líneas a modo de cable. Cada red debe tener una raíz, es decir, estar
unida a la línea que existe a la izquierda de la pantalla principal.

4.2 Barra de herramientas, menú y elementos básicos de


programación

Cuando se trabaja con diagrama de contactos en la barra de


herramientas aparecerán los botones que permiten programar en LD. Los
elementos más característicos son los contactos ( ) y las bobinas. Tanto
contactos como bobinas pueden ser configurados. En estado negado el
contacto está activo cuando la entrada tiene un cero lógico; en flanco se subida
el contacto se activa cuando en el flanco de subida del reloj del PLC; en flanco
se bajada el contacto se activa cuando en el flanco de bajada del reloj del PLC.

Figura 29. Barra de herramientas de LD

Aparte de estos elementos se pueden


introducir otros bloques como pueden ser funciones,
acciones lógicas, bloques funcionales, etc. A todos
los bloques se les pueden configurar sus entradas y
salidas haciendo doble clic sobre el elemento que Figura 30. Configuración de un contacto
se desea configurar. Todos los elementos deben estar conectados mediante

Página 15 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

líneas ( ) a modo de cables a la raíz de la red. Cada red solo puede tener una
raíz.

4.2.1 Ejemplos

Cuando se introduce un contacto


es necesario asignarle una variable,
ésta puede estar definida previamente,
debe estar creada en el espacio de
variables de la POU, o una dirección
FP, por ejemplo una entrada X0, un
contador C1008, un temporizador T0,
etc. Del mismo modo se trabaja con las
bobinas.
Figura 31.
Aunque LD típicamente utiliza variables booleanas, también
puede trabajar con otros tipos, por ejemplo enteros. Para introducir
cualquier tipo de variable se puede utilizar el icono de la barra de
herramientas ( ), y una vez introducida la llamada a la variable
asignarla el nombre de la variable; sin en lugar de utilizar una variable
se quiere utilizar una constante se puede introducir el literal
correspondiente. Figura 32. Variable, contacto y literal

4.3 Cómo crear una instancia de una FB e introducirla en


el programa

Para realizar una instancia a un bloque funcional primero es necesario


definirla en la ventana de variables locales y asignar el tipo correspondiente.
Creada la instancia se puede introducir un bloque ( ) y nombrarlo.

Figura 33. Instancia a FB

4.4 Definición de parámetros y llamada a la función.

Para introducir un FB en el código del programa existe


un icono en la barra de herramientas ( ), se busca y
selecciona el bloque correspondiente. Después de introducirlo
Figura 34. FB en LD

Página 16 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

solo queda nombrarlo con el identificador correspondiente y asignar a las


entradas/salidas las variables correspondientes o unir las entradas/salidas a
contactos. Para asignar las variables se selecciona la entrada/salida
correspondiente y se pulsa F2 o el icono de la barra de herramientas ( ).

4.5 Ejemplo de programación en LD.

Algunas funciones tienen la posibilidad de


insertarlas con la función “EN/ENO”
(Enable/EnableOut) en caso de que se quieran
activar o desactivar mediante la entrada EN y
teniendo como salida ENO, que informa del estado
del bloque. En el ejemplo se introduce dos bloques,
“mayor o igual que” (GE, “Greater Equal”) y “menor o
igual que” (LE, “Less Equal”), para comparar el valor
de una variable “fun” con dos constantes, habilitadas Figura 35. Unión de elementos
con la “EN/ENO” para poder activar o desactivar los bloques mediante una
variable “activo” que tiene valor uno cuando se activa y cero cuando no. Las
salidas de los bloques activan unas bobinas que representan dos alarmas.

Tras introducir las entradas, salidas, variables, bloques, etc., solo queda
unir los diferentes elementos ( 6). Es importante señalar que se utilizan dos
redes y que cada una solo puede tener una raíz, es decir, solo un cable
conectado.

5. Lenguaje de programación IL
El lenguaje de lista de instrucciones es muy
parecido a ensamblador. Se trata de un lenguaje de bajo
nivel compuesto por operadores (LD, ST, AND, etc.) y
operandos. En contraposición con LD, que se adapta muy
bien a la representación de esquemas eléctricos, sin
embargo, el lenguaje IL es un lenguaje literal, formado por
conjuntos de instrucciones que se ejecutan
secuencialmente.

Ambos lenguajes son equivalentes, y cualquier cosa


que se pueda implementar en uno de ellos, se puede
realizar también en el otro. La elección es, pues, una
cuestión del programador, aunque a veces alguno de ellos
es más adecuado para una determinada tarea. Figura 36. Léxico en IL

5.1 Como crear un nuevo programa

La estructura del programa es una secuencia que se irán ejecutando


secuencialmente. Los programas tienen una sintaxis clara: operadores
seguidos de operandos.

6
Haciendo doble clic sobre el grid se puede cambiar a modo dibujo

Página 17 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

Figura 37. Semántica y operadores en IL

5.2 Barra de herramientas y menú

Debido a que es un lenguaje literal la barra de herramientas tiene


principalmente dos botones: variables ( ) y funciones ( ).

5.3 Cómo crear una instancia de una FB e introducirla en


el programa

Para realizar una instancia a un bloque funcional primero es necesario


definirla en la ventana de variables locales y asignar el tipo correspondiente. La
llamada al bloque funcional se realiza mediante el operador “Cal”, seguida del
nombre del bloque y pasando los parámetros entre paréntesis, tal y como se ve
en la figura.

Figura 38. Instancia a FB

Página 18 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

5.4 Definición de parámetros y llamada a la función

Independientemente de tratarse de una entrada o salida al bloque la


sintaxis7 para pasar los parámetros es primero la entrada o salida del bloque,
seguido por ”:=” y después la variable correspondiente. A diferencia con el texto
estructurado, IL solo tiene una forma de pasar parámetros a la función.

Figura 39. Parámetros de un FB en IL

5.5 Ejemplo

El ejemplo consiste en una simple aplicación que mediante la entrada X1


activará un temporizador bloque funcional llamado “tempo”. Cuando llegue a
cero incrementará un FB contador. Mientras se mantenga activa X1 el proceso
seguirá produciéndose. El sistema se podrá resetear mediante la entrada X2.

Figura 40. Ejemplo de programa en IL

7
El programador debe tener conocimiento de cuales son variables de entrada y cuales de salida.

Página 19 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

6. Lenguaje de programación ST
Dentro de los lenguajes textuales que pueden utilizarse para la
programación de PLC´s el texto estructurado es el lenguaje de alto nivel. Ha
surgido debido a la necesidad que asimilar la programación del los PLC´s a la
de computadoras. Es un lenguaje muy potente que permite acciones que los
otros no son capaces de realizar.

6.1 Como crear un nuevo programa

A diferencia de los lenguajes de alto nivel como C, C++ o Java, no es


necesario definir las librerías que se van a utilizar, se puede empezar a
programar directamente. Siempre que se utiliza un FB es necesario definirlo en
la ventana de variables locales.

Cada línea de código debe terminar en punto y coma, excepto la sintaxis


de los bucles8. Los comentarios deben ir entre paréntesis y asteriscos: “(* *)”

6.2 Barra de herramientas y menú

Debido a que es un lenguaje textual la barra de herramientas tiene solo


tres botones: variables ( ), funciones ( ) y búsqueda de palabras ( ).

6.3 Ejemplos con elementos sencillos

Palabra clave Descripción Ejemplo Explicación


El valor de la derecha es asignado
Asignación a:=69;b:=b-9;c:=SIN(x);
en la izquierda
Los argumentos de las funciones
Y:=SIN(x);
deben ir entre paréntesis. Los
Llamada a funciones Y:=LIMIT(MN:=0,IN:=X, MX:=100);
parámetros pueden ser asignados
en la llamada a la función.
:= TON1( IN:= Start1,
PT:=T#300ms ,
Q=> End1 , Ton1.IN:=Start1; Se utiliza la asignación para pasar
EV=> EV_1 ); Ton1.PT:=T#300ms; los parámetros a los FB y en las
Llamada a FB Ton1();
IF Ton1.Q THEN
salidas de los mismos. Existen
Ton1(IN:=Start1, .... diferentes formas de realizar la
PT:=T#300ms); END_IF; asignación.
End1:=Ton1.Q;
Ev1:=Ton1.EV;

IF a>=0 AND a<=10 THEN


b:=0;
ELSIF a>=100 THEN
IF La comparación depende del
Condicional b:=1;
ELSE resultado lógico.
b:=2;
END_IF;
CASE a OF
0: b:=0;
1,2: b:=1;
CASE Selección múltiple 3,4,10...20: b:=2;
100..110: b:=3;
ELSE b:=4;
END_CASE;

8
Ver tabla 2.

Página 20 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

Palabra clave Descripción Ejemplo Explicación


FOR i:=0 TO 100 DO
SUM:=SUM + a[i]
END_FOR;
FOR Bucle “for”
FOR i:=0 TO 100 BY 10 DO
SUM:=SUM + a[i]
END_FOR;
i:=0;
WHILE i<=100 AND a[i]<100 DO
WHILE Bucle “while” i:=i+10;
END_WHILE;
i:=0;
REPEAT
REPEAT Bucle “repeat” i:=i+10;
UNTIL i>100 OR a[i]>=100
END_REPEAT;
EXIT Instrucción salida EXIT; Salida del bucle
El programa regresa a la POU de
RETURN Salto RETURN;
llamada.
Tabla 2. Ejemplo básicos en ST

6.4 Cómo crear una instancia de una FB e introducirla en


el programa

Para realizar una instancia a


un bloque funcional primero es
necesario definirla en la ventana de
variables locales y asignar el tipo
correspondiente. Una vez creada la
instancia ya se puede realizar la
llamada al bloque. La llamada se
realiza con el identificador asignado.

6.5 Definición de Figura 41. Instancia a un FB

parámetros y llamada a la función

Para pasar los parámetros al bloque se puede hacer de varias formas:

 Asignando con el operador “:=”, el valor de la izquierda se almacena en


el de la derecha. Los parámetros van entre paréntesis.
 Asignando con el operador “=>”, el valor de la derecha se almacena en
el de la izquierda. Los parámetros van entre paréntesis.
 Asignando uno a uno los parámetros de bloque. Al final de cada línea es
necesario poner punto y coma.

ejemplo_FB(start:=START_FB, ejemplo_FB(start:=START_FB,
SV:=Set_Value, SV:=Set_Value,
T=>ejemplo_FB.T, ejemplo_FB.T:=T,
EV=>ejemplo_FB.EV); ejemplo_FB.EV:=EV);
ejemplo_FB.start:=START_FB;
ejemplo_FB.SV:=Set_Value;
Fin:=ejemplo_FB.T;
Elapse_Value:=ejemplo_FB.EV;
Tabla 3. Parámetros de un FB en ST

Página 21 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

6.6 Ejemplo

En el ejemplo se va a generar una senoide. El programa incorporará un


temporizador de 36 segundos para simular que cada segundo cambia 10º, se
activará con la entrada X1. Muy importante es la conversión de tipos de datos y
por eso en este ejemplo de realiza en varias ocasiones. El temporizador tiene
como salida “tempo.ev” que se trata de una variable tipo entero, pero para
poder pasar de grados a radianes es necesario multiplicar por π, que es un
número real, y por lo tanto es necesario realizar la conversión; en caso de
multiplicar por una constante, ésta debe ser del mismo tipo que el resto de
términos de la ecuación (si se quiere multiplicar por 10, para trabajar de 10º en
10º, es necesario utilizar 10.0, pues ésta es la representación del diez en tipo
real). El resultado de la función seno es real, debido a que la variable “fun” es
de tipo entero es necesario volver a realizar la conversión de tipos9.

if X1 and not X2 then

tempo(start:= X1 and not tempo.t ,


SV:= 36);

rad:=10.0*INT_TO_REAL(36-tempo.ev);(*Se pasa de entero a real*)


rad :=2.0*pi*rad/360.0; (*se pasa de grados a radianes*)
fun:=7+real_to_int(7.0*sin(rad)); (*Se pasa de real a entero*)

end_if;

7. Lenguaje de programación FBD


Al igual que diagrama de contactos, el diagrama de bloques es un
lenguaje gráfico. En este sentido, se podría decir que es un lenguaje gráfico de
alto nivel. La ventaja de este tipo de lenguaje es que se asimila a la estructura
que siguen muchos SCADA y por lo tanto el programa se modela como el
proceso o planta que se está modelando.

Los programas son bloques cableados entre sí de forma análoga a un


circuito, además poseen una interfaz E/S bien definida y tiene el código interno
oculto. Los diferentes bloques pueden tratarse de los que ya existen en las
librerías o propios creados por el usuario (POU).

7.1 Como crear un nuevo programa

La creación de un programa en FB consiste en introducir los bloques, las


variables y unirlos. Al igual que en LD, la diferencia radica en que no deben
unirse a la raíz de la red.

9
Para ver más tipos de conversiones ver ayuda, F1

Página 22 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

7.2 Barra de herramientas y menú

Figura 42. Barra de herramientas en FB

Al igual que para IL y ST la barra de herramientas tiene los botones:


variables ( ) y funciones ( ). Además existe la posibilidad de realizar saltos
( ) y retornos ( ) para evitar dibujar demasiadas conexiones.

7.3 Elementos básicos de programación

Para crear un diagrama de bloques funcionales los elementos básicos


son las variables ( ) y los bloques ( ). Se introducen y unen del mismo modo
que en LD.

7.3.1 Elementos básicos

Existen diferentes tipos de bloques en FB,


y, a diferencia que en diagrama de contacto, se
suele trabajar con variables y se debe tener
especial cuidado al interconectar bloques para
que los tipos coincidan, o en caso contrario
hacer la conversión de tipos mediante los
bloques existentes para tal fin.

Figura 43. Bloques en FB

7.4 Cómo crear una instancia de una FB e introducirla en


el programa

Para realizar una instancia a un bloque funcional primero es necesario


definirla en la ventana de variables locales y asignar el tipo correspondiente.

Figura 44. Instancia a FB

Página 23 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

7.5 Definición de parámetros y llamada a la función

Para introducir un FB en el código del programa


existe un icono en la barra de herramientas ( ), se busca y
selecciona el bloque correspondiente. Después de introducirlo
solo queda nombrarlo con un identificador y asignar a las
entradas/salidas las variables correspondientes, muy similar a
como se trabaja con LD.
Figura 45. Bloque en FB

7.6 Ejemplo

En este ejemplo se van a


programar varios temporizadores
conectados en cascada. El primer paso
es crear las instancias de los bloques Figura 46. Instancias de varios FB
temporizadores, en este caso de diferente duración cada uno. Una vez creadas
las instancias se introducen los bloques en el FBD y se conectan.

Figura 47. Ejemplo de FBD


Inicio

8. Lenguaje de programación SFC


Transición 1
Este lenguaje de programación no es un lenguaje
como tal y debe ser complementado por cualquiera de los Etapa 1 Acción/es 1
otros lenguajes, aunque se tratará como uno más. SFC es un
lenguaje gráfico muy parecido a una Red de Petri (RdP). Está Transición 2
compuesto por etapas, acción/es asociada/s a cada etapa y
transiciones. El Grafcet es un diagrama funcional que Etapa 2 Acción/es 2
describe los procesos a automatizar, teniendo en cuenta las
acciones a realizar, y los procesos intermedios que provocan
estas acciones. Figura 48. Grafcet

8.1 Como crear un nuevo programa

Para crear un programa solo es necesario utilizar la barra de


herramientas para ir dibujando el SFC. Se van introduciendo las etapas,
transiciones, bifurcaciones, etc., necesarias.

Al crear un nuevo proyecto con un Grafcet como programa


aparecerá la etapa inicial y una transición por defecto. La línea vertical
tras una transición indica que tras dicha transición se vuelve al inicio
del SFC.
Figura 49. Grafcet inicial

Página 24 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

8.2 Barra de herramientas y menú

Al igual que en otros lenguajes de programación la barra de


herramientas es más rica que los textuales, pero ahora la diferencia radica en
que no se tienen los botones de variables ( ) y bloques ( ).

Figura 50. Barra de herramientas en Grafcet

8.3 Elementos básicos de programación

La forma de ir construyendo el Grafcet es colocando el cursor sobre el


punto donde se quiere insertar una etapa, transición, bifurcación a derecha e
izquierda, convergencias, etiquetas, saltos10, etc.; toda etiqueta debe llevar
asociada un salto con el mismo nombre. Una vez utilizado el icono en concreto
aparecerá el elemento elegido.

Figura 51. Bloques en SFC

8.3.1 Elementos básicos.

Los elementos básicos son etapas,


11 12
transiciones y acciones . Cuando se ha creado un
SFC se deben nombrar las etapas y las transiciones.
Las etapas pueden no tener o tener asociada una o
varias acciones. Para crear una acción basta con
pulsar con el botón derecho sobre “Acciones” en el
navegador y crear una nueva. Las acciones pueden
ser creadas en cualquiera de los cuatro lenguajes
10
Los saltos solo se pueden poner tras una transición.
11
La transmisión separa las etapas e impone la condición para pasar de una etapa a otra.
12
Una acción es similar a una POU que sólo se ejecuta cuando la etapa, a la que está asociada la acción,
está activa.
Figura 52. Creación de una acción de un SFC

Página 25 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

disponibles. Para asociar una acción a una etapa basta hacer doble clic sobre
la etapa, aparecerá la ventana de asociación y con F2 aparecerán las acciones
disponibles.

Figura 53. Asociación de una acción.

Cuando una etapa tiene asociada una acción aparecerá el recuadro


coloreado, en caso contrario aparecerá en blanco. Toda transición debe tener
asociada una condición lógica. Para crear la condición se debe hacer doble clic
sobre la transición13 o acercar ( ) y se podrá crear la transición en cualquiera
de los lenguajes existentes.

8.3.2 Ejemplo de elementos sencillos

Como las acciones se pueden considerar programas que se ejecutan


solo cuando la etapa que lo tiene asociado esta activa, no se pondrá ningún
ejemplo de acción. Como ya se ha dicho, toda transición debe tener asociada
una condición lógica. Para crear la condición se debe hacer doble clic sobre la
transición.

El resultado de la condición lógica


se asignará a una variable creada con el
mismo nombre de la transición.

Figura 54. Creación de una transición y su condición lógica.

13
Se modifica del mismo modo.

Página 26 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

8.4 Crear una instancia de una FB e introducirla en el


programa

Para poder utilizar un FB en cualquiera de los elementos que componen


un SFC es necesario definirlo en las variables locales; una vez definido puede
ser accesible desde cualquier acción o transición del Grafcet.

8.5 Definición de parámetros y llamada a la función

La definición y la llamada al bloque funcional se realiza desde las


acciones o transmisiones y debido a que éstas solo pueden ser programadas
en LD, IL, ST o FB la forma de la llamada dependerá del lenguaje.

9. Creación de FB propias
Aparte de los bloques funcionales de las librerías implementadas en
FPWinPro, el usuario puede crear sus propios FB a su medida. Estos FB
pueden estar programados en cualquier lenguaje y el resultado es una caja
negra en la cual no se ve lo que ocurre en su interior.

9.1 Cómo crear paso a paso una FB para después crear


diferentes instancias en el programa.

Para crear un FB en necesario definir una POU como


bloque funcional. Se debe elegir el lenguaje de
programación y el nombre del bloque.

9.2 Definición de entradas, salidas,


variables internas, etc...

Para programar el bloque es preciso definir las


entradas y las salidas del bloque, variables internas, etc.;
todas estas variables aparecen en la ventana de variables
Figura 55. Creación de un FB
locales y son configuradas en la propiedad clase.

Figura 56. Variables de entrada y salida de un FB

Página 27 de 28
Guía de FPWin Pro Estándar Internacional IEC 61131-3

9.3 Ejemplo sencillo con FBD de dos motores marcha


paro.

Como ejemplo se va a programar la forma de poner en


marcha o paro un motor a través del PLC. Como se tienen
más de un motor se crea un FB que servirá para todos. En
primer lugar se crea una POU como un bloque de función, se
puede elegir cualquier lenguaje. Una vez creado se definen
las variables.

Figura 58. Variables de E/S de un FB


Figura 57. Creación de un FB
Se programa el contenido del bloque, en las imágenes siguiente se ha
programado la misma acción en diferentes lenguajes y de diferentes formas.

Figura 55. Creación de un FB

Por ultimo se crea el programa en


cualquiera de los diferentes lenguajes,
primero se realiza una instancia como a Figura 56. Creación instancias a un FB
cualquier FB y luego se realiza la llamada como ya se ha visto para los FB.

mod1(Marcha:=X0,
Paro:=not X0,
Salida=>Y0);

mod2(Marcha:=X1,
Paro:=not X1,
Salida=>Y1);

Como se aprecia existen muchas soluciones al mismo problema, el


programador es el que tiene la última palabra.

Página 28 de 28

También podría gustarte