Antes de poder realizar la simulación del funcionamiento del programa cargado en el PLC Sim con el simulador de entradas/salidas se han de realizar unas acciones previas, como:
o Configuración del hardware.
o Programa de comunicación PLCSim – Simulador de entradas/salidas.
o Procedimiento para la comunicación entre PLCSim – Simulador de entradas/salidas.
1.1. Configuración del hardware.
En la configuración del hardware para un S7-1200 se ha de seleccionar Ninguno en la opción de configuración Bloque de organización” y Memoria imagen de proceso, tanto de las entradas y salidas digitales:
Como en las correspondientes a las entradas y salidas analógicas:
1.2. Programa para la comunicación PLCSim – Simulador de entradas/salidas.
Introducir el siguiente programa en la Función (FC100):
Esta función es necesario que se este llamando de forma continua desde el Bloque de organización (OB1):
1.3. Procedimiento para la comunicación entre PLCSim – Simulador de entradas/salidas.
A continuación se relaciona el procedimiento a seguir para poder conseguir con éxito la comunicación entre el PLCSim y el Simulador de entradas/salidas para poder probar el funcionamiento del programa.
a) Iniciar la aplicación del simulador de TIA Portal, PLCSim.
b) Cargamos el programa de TIA Portal en el PLCSim
c) Asegurarse de pasar de STOP a RUN el modo de funcionamiento del simulador PLCSim.
d) Ejecutar el Simulador de entradas/salidas.
Para cerrar el Simulador de entradas/salidas de forma correcta se ha de pulsar el botón que contiene el siguiente icono, ya que en cualquier otro caso quedaran procesos abiertos.
Para poder conocer la funcionalidad de este simulador proponemos diferentes ejercicios que servirán para poder comprobar el funcionamiento de diferentes aspectos de la programación con PLCs, como por ejemplo:
o Funcionamiento del registro de entradas.
o Funcionamiento del registro de salidas.
o Control de un motor con pulsadores de paro, de marcha y disyuntor de protección.
o Funcionamiento de las entradas y salidas analógicas.
2.1. Funcionamiento del registro de entradas.
El autómata programable, antes de ejecutar el programa, lo que hace es leer el estado actual de todas las entradas y copiar estos estados en el llamado "Registro de entradas", de forma que cuando se está ejecutando el programa y debe comprobar el estado de una de las entradas, entonces comprueba este estado en el registro de entradas y no en la entrada física del PLC, con ello se consigue mayor rapidez en la ejecución del programa y que este valor leído se mantenga para aplicarlo al resto del programa hasta el próximo scan.
2.1.1. Enunciado del programa (FC1).
En este programa queremos que:
o Cuando accionemos el pulsador de la entrada I1.0 que se active la salida Q0.3 y que la salida Q0.4 solo funcione mientras se mantenga accionado el pulsador de la entrada I1.0.
o Al accionar el pulsador de la entrada I1.1 ha de dejar de funcionar la salida Q0.3.
El funcionamento sera el siguiente:
a) Primer scan.
En el primer segmento si accionamos el pulsador de la entrada I1.0, como en serie con este tenemos programado un contacto negado de la Q0.4 y de este el registro de salidas en este momento nos dice que está en "0", entonces el resultado final de este segmento es que la salida Q0.3 es ponga a "1" permanentemente al estar programado con una instrucción "SET", por lo tanto esto hará que el registro de salidas de la Q0.3 se ponga a "1 ".
En el segundo segmento si tenemos un “1” en la entrada I1.0, el resultado de este segmento provoca que el registro de la
salida Q0.4 se ponga a "1".
En el tercer segmento y como no tenemos activada la entrada I1.1, no realizará ninguna acción sobre la salida Q0.3 y no
tendrá ningún efecto sobre el registro de salidas correspondiente a esta salida.
Al finalizar este primer scan las salidas se refrescan con los valores que hay en el registro de salidas, por lo tanto en este caso
tendremos activadas las salidas Q0.3 y la Q0.4.
b) Segundo scan.
En el primer segmento tenemos accionado el pulsador de la entrada I1.0, como en serie con este tenemos programado un contacto negado de la Q0.4 y de esta el registro de salidas en este momento nos dice que esta a “1”, entonces al no cumplirse la condición no realizara ninguna acción sobre la salida Q0.3 y por lo tanto su valor en el registro de salidas no varia, y por lo tanto se queda a “1”.
En el segundo segmento como que tenemos accionado el pulsador de la entrada I1.0, el resultado de este segmento provoca que el registro de la salida Q0.4 se ponga a “1”.
En el tercer segmento y como que no tenemos activada la entrada I1.1, no realizara ninguna acción sobre la salida Q0.3 y no tendrá ningún efecto sobre el registro de salidas correspondiente a esta salida.
Al finalizar este primer scan las salidas se refrescan con los valores que hay en el registro de salidas, por lo tanto en este caso tendremos las salidas Q0.3 y Q0.4 activadas
2.1.2. Enunciado del programa (FC2).
Ahora haremos un intercambio en la orden del programa entre los segmentos 1 y 2, y estudiamos que pasaría:
a) Primer scan.
En el primer segmento si accionamos el pulsador de la entrada I1.0, el resultado de este segmento provoca que el registro de la salida Q0.4 se ponga a “1”.
En el segundo segmento como que tenemos accionado el pulsador de la entrada I1.0, y como en serie con este tenemos programado un contacto negado de la Q0.4 y de este, el registro de salidas en este momento nos dice que está a “1”, por efecto del funcionamiento del segmento anterior, entonces el resultado final de este segmento és que la salida Q0.3 no alterara el estado en el registre de salidas de la Q0.3, por lo tanto se mantendrá a “0”.
En el tercer segmento y como que no tenemos activada la entrada I1.1, no realizara ninguna acción sobre la salida Q0.3 y no tendrá ningún efecto sobre el registro de salidas correspondiente a esta salida.
Al finalizar este primer scan las salidas se refrescan con los valores que hay en el registre de salidas, por lo tanto en este caso tendremos únicamente la salida Q0.4 activada.
b) Segundo scan.
Podemos estudiar como el funcionamiento del programa no queda alterado.
Con esto queremos resaltar que en función de la posición de los segmentos programados, el resultado final del funcionamiento del programa puede variar, por lo tanto siempre se ha de tener en cuenta el funcionamiento secuencial del programa en cada scan.
2.2. Funcionamiento del registro de salidas.
El autómata programable, una vez ejecutado totalmente el programa en cada scan realiza la actualización del estado de las salidas según lo que haya en el registro de salidas y copia estos estados sobre las salidas físicas, de forma que cuando se está ejecutando el programa y debe comprobar el estado de una de las salidas, entonces comprueba este estado en el registro de salidas y no en la salida física del PLC, con ello se consigue mayor rapidez en la ejecución del programa y que este valor leído se mantenga para aplicarlo al resto del programa hasta el próximo scan.
Este funcionamiento provoca que si se han programado dos instrucciones de escritura, como por ejemplo dos salidas iguales, esta salida física responderá únicamente a las condiciones indicadas de la última instrucción programada.
2.2.1. Enunciado del programa (FC3).
En este programa queremos que:
o Al activar la entrada I0.0 se active la salida Q0.0.
o Al activar la entrada I0.1 se active la salida Q0.1.
o Al activar la entrada I0.2 se active la salida Q0.2.
o También queremos activar la salida Q0.1 al activar la entrada I0.3.
Si realizamos el siguiente programa:
En este caso si activamos la entrada I0.0 y la I0.1, observamos en el programa como las salidas Q0.0 y Q0.1 se encuentran activas, pero si observamos las salidas físicas vemos como la Q0.0 si que está activada mientras la Q0.1 no, esto pasa por que el refresco de las salidas se realiza al final la ejecución completo del programa y en cada scan, por lo tanto, aunque el segmento 2 pone en el registro de salidas de la Q0.1 un "1", el segmento 4 pone un "0" en el mismo bit del registro de salidas de la misma salida Q0.1, por tanto el resultado al final del scan es un "0" y que es el estado que copiará sobre las salidas físicas.
Si en lugar de activar la entrada I0.1, activamos la entrada I0.3, entonces se puede observar que la salida Q0.1 estará activada.
2.2.2. Enunciado del programa (FC4).
Para poder dar solución a este problema es necesario realizar una modificación en el programa de forma que quede como el que se muestra a continuación:
Ahora podemos comprobar que el funcionamiento es correcto:
2.3. Control del funcionamento de un motor.
Vamos a realizar el control del funcionamiento de un motor mediante pulsadores de paro y de marcha, además de un disyuntor de protección. También provocaremos un avería en el pulsador de paro.
2.3.1. Control mediante un pulsador de paro normalmente cerrado y un pulsador de marcha normalmente abierto (FC5).
Si nos fijamos en el funcionamiento del disyuntor observamos que, cuando éste no está rearmando, es decir que está disparado, la entrada correspondiente está desactivada y que cuando está rearmado, es decir que no está disparado, la entrada correspondiente está activada .
Si rearmamos el disyuntor y luego accionamos el pulsador de marcha, nos encontramos que el contactor K1M que está conectado a la salida Q0.0 hará que el motor funcione.
Si accionamos el botón de "Avería", el efecto que realizará es el de cortar el cable que va del pulsador de paro a la entrada física I1.2 y por tanto llegara un "0" en la entrada, con lo cual provoca el mismo efecto que si accionamos el pulsador de paro y con ello la salida Q0.0 deja de funcionar deteniendo el contactor K1M.
Cuando nos damos cuenta de que el motor se ha detenido y que accionando el pulsador de marcha no vuelve funcionar el contactor K1M, entonces monitorizando el programa podremos ver como la señal a la entrada I1.4 no está llegando, esto nos indica que en el circuito eléctrico del pulsador de paro tenemos alguna avería.
2.3.2. Control mediante un pulsador de paro normalmente abierto y un pulsador de marcha normalmente abierto (FC6).
Si nos encontramos alguna vez con una emergencia de que no tenemos pulsador de paro a sustituir, podemos utilizar un pulsador de marcha, pero debemos tener en cuenta que el pulsador de paro trabaja con el contacto normalmente cerrado y el de marcha trabaja con el contacto normalmente abierto, por lo tanto el programa tendrá una pequeña pero importante modificación que tendremos que tener en cuenta y que no es otro que, el contacto programado del pulsador de paro que antes era abierto, ahora al utilizar el pulsador de marcha el contacto programado deberá ser cerrado para un correcto funcionamiento del programa.
Ahora si comprobamos el funcionamiento con las modificaciones indicadas anteriormente, observamos como al accionar el pulsador de marcha "S8" conectado a la entrada I1.0, la salida Q0.0 se activará y pondrá en funcionamiento el contactor K1M y si queremos detener -el entonces pulsaremos el pulsador de marcha "S9" que actúa como paro (I1.1).
Si accionamos el botón de "Avería", el efecto que realizará es el de cortar el cable que va del pulsador de marcha a la entrada física I1.1 y por tanto le llega un "0" en la entrada, y en principio todo funciona correctamente en cuanto a la puesta en marcha del motor, pero cuando queremos desactivar la salida Q0.0 pulsando la entrada I1.1 del pulsador "S9", no provoca ninguna alteración en el programa y por tanto no se puede desactivar la salida Q0.0 y por tanto tampoco el motor.
Si accionamos el botón de "Avería", el efecto que realizará es el de cortar el cable que va del pulsador de marcha a la entrada física I1.1 y por tanto le llega un "0" en la entrada, y en principio todo funciona correctamente en cuanto a la puesta en marcha del motor, pero cuando queremos desactivar la salida Q0.0 pulsando la entrada I1.1 del pulsador "S9", no provoca ninguna alteración en el programa y por tanto no se puede desactivar la salida Q0.0 y por tanto tampoco el motor.
IMPORTANTE: Tenemos un problema grave de seguridad ya que no se puede detener el motor, por lo que no es nada recomendable utilizar este sistema para sustituir un paro y que éstos siempre deben estar controlados por contactos físicamente cerrados.
2.3.3. Control mediante un pulsador de paro normalmente cerrado y un pulsador de marcha normalmente abierto con conteo de veces que se ha disparado el disyuntor.
A continuación exponemos una aplicación directa del funcionamiento de los registro de entradas, ya que queremos contabilizar las veces que se dispara el disyuntor cuando el motor se encuentra en marcha, como que cuando se dispare tendremos un "0" en la entrada correspondiente y necesitamos un "1" para dar el impulso al contador, pondremos como condición de conteo un contacto normalmente cerrado de la salida Q0.0, que activa el contactor K1M:
a) Programación incorrecta (FC7).
En este caso se puede comprobar como no realiza el conteo, ya que al dispararse el disyuntor, lo primero que realiza es detener la salida Q0.0, entonces cuando se ejecuta el segundo segmento, el bit Q0.0 ya vale " 0 "y por lo tanto el contador no realiza el conteo.
b) Programación correcta (FC8).
Simplemente intercambiando el orden de los segmentos el conteo funcionará correctamente y registrará las veces que el disyuntor se dispara cuando el motor está en marcha.
2.4. Control del funcionamiento de les entradas y salidas analógicas.
Para poder visualizar el funcionamiento tanto de las entradas como de las salidas analógicas, presentamos un pequeño programa para visualizar los valores que poder representar.
El programa lo realiza es que en función del estado del selector S0 conectado a la entrada I0.0 se copiará el valor de la entrada analógica IW64 o IW66 en la salida analógica QW80, respectivamente:
a) Visualización del valor de la entrada analógica IW64 o de la IW66 en la salida QW80:
Si el selector S0 está en "OFF", entonces la entrada analógica IW64 se copia en la salida analógica QW80:
Si el selector S0 está en "ON", entonces la entrada analógica IW66 se copia en la salida analógica QW80:
Antes de poder realizar el programa hay que hacer una relación de las diferentes variables que intervienen en el proceso, de forma que mediante una Tabla de variables en TIA Portal queden reflejadas, y en el momento de realizar el programa poderlas identificar correctamente.
3.1. Relación de variables de entradas.
A continuación se relacionan las variables de entrada al PLC que son:
3.2. Relación de variables de salidas.
A continuación se relacionan las variables de salida al PLC que son:
El proyecto de TIA Portal se ha estructurado en diferentes bloques de programa como son:
o FC100_COMUNICACION: Este bloque de programa es el que realiza la comunicación entre el PLCs y el Simulador 3D del proceso, por eso es muy importante no modificar ninguno de los valores e instrucciones programados.
o OB1 Main: Este bloque contiene la organización de llamadas al resto de bloques que forman el programa del proceso.
o FC01_REGISTRO DE ENTRADAS_A: Programa ejemplo del funcionamiento sobre el registro de entradas del PLC.
o FC02_REGISTRO DE ENTRADAS_B: Programa ejemplo del funcionamiento sobre el registro de entradas del PLC.
o FC03_REGISTRO DE SORTIDES_A: Programa ejemplo del funcionamiento sobre el registro de salidas del PLC.
o FC04_REGISTRO DE SORTIDES_B: Programa ejemplo del funcionamiento sobre el registro de salidas del PLC.
o FC05_CONTROL MOTOR_A: Programa ejemplo del control de funcionamiento de un motor.
o FC06_CONTROL MOTOR_B: Programa ejemplo del control de funcionamiento de un motor.
o FC07_CONTROL MOTOR_C: Programa ejemplo del contaje de veces que se dispara el disyuntor cuando el motor está en marcha.
o FC08_CONTROL MOTOR_D: Programa ejemplo del contaje de veces que se dispara el disyuntor cuando el motor está en marcha.
o FC09_ENTRADAS_SALIDAS ANALÓGICAS: Programa ejemplo para la visualización de las señales analógicas tanto de entrada como de salida.
Por lo tanto, el proyecto en TIA Portal tendrá la siguiente estructura:
FC100. COMUNICACIÓN...NO ESBORRAR¡¡¡
OB1. Main
FC1. REGISTRO DE ENTRADAS "A"
FC2. REGISTRO DE ENTRADAS "B"
FC3. REGISTRO DE SALIDAS "A"
FC4. REGISTRO DE SALIDAS "B"
FC5. CONTROL MOTOR "A"
FC6. CONTROL MOTOR "B"
FC7. CONTROL MOTOR "C"
FC8. CONTROL MOTOR "D"
FC9. ENTRADAS/SALIDAS ANALÓGICAS
A continuación puede descargar el proyecto modelo que puede servir de base para realizar cualquier programa. Este proyecto ya tiene integrado:
Configuración del hardware para el PLC S7-1200.
Bloque de programa para la comunicación entre el Simulador 3D y el PLC Sim en modo simulación.
Listado de símbolos completo.
Contenidos de este espacio de Ramón L. Yuste y Vicenç Guerrero se publica bajo licencia:
Creative Commons Reconocimiento-No comercial-Sin obras derivadas 3.0 España