martes, 15 de marzo de 2016

Comunicar dos LOGOs

Comunicaciones entre PLC con LOGO 8

El LOGO 8 puede comunicarse con otros LOGOs y dispositivos varios, para empezar voy a explicar las comunicaciones con otro u otros LOGOs. Recordar que la conexión es ethernet industrial, no es lo mismo que el ethernet de datos entre equipos (PCs) que estamos habitualmente usando cuando nos conectamos a una red que nos proveé de contenidos de internet.

Maestro/esclavo.

Un LOGO hace de maestro mientras el otro hace de esclavo y no hay posibilidad de añadir mas esclavos, en este modo solo tenemos acceso a las entradas y salidas de ambos hasta un máximo de 32 conexiones entradas y salidas incluidas tanto digitales como analógicas.

Cliente/Servidor.

Un LOGO hace de servidor y puede tener hasta ocho clientes conectados al mismo servidor, evidentemente con la ayuda de un “hub o concentrador”. En este modo podemos hacer mucho mas que unir entradas y salidas de un LOGO a otro, como es la posibilidad de conectar marcas de bit, un byte o un grupo de bytes, que pueden ir tanto en un sentido como en otro es decir de cliente a servidor como a la inversa.

Conectar un S7 a un LOGO 8
próximamente.

Conectar un HMI a un LOGO 8

próximamente

Conectar un dispositivo cualquiera a un LOGO 8

próximamente

Como crear una red Maestro/Esclavo.


Lo primero abrir el LOGOSoft y crear un nuevo proyecto de red, en vista de red > añadir dispositivo nuevo > se despliega un menú y debemos de elegir que dispositivo es el que va hacer de maestro en nuestro caso un LOGO 8.



Luego volvemos a añadir un nuevo dispositivo, que esta vez sera el esclavo.


Ahora toca la programación, cuando hemos añadido el dispositivo maestro se nos ha abierto también la ventana donde vamos a hacer la programación de toda la red maestro/esclavo en una misma hoja “Logo_1 diagrama”.



Como se puede apreciar en la anterior imagen las entrada y salida de red una vez correctamente con figuradas son las de color verde y corresponde a una entrada o salida del esclavo. Esto se configura de la siguiente manera, arrastramos una entrada o salida de red digital o analógica hasta el diagrama
, fijar con un click con el izquierdo y hacer un click con el derecho sobre la figura, se nos abre el menú contextual, elegir propiedades, se nos abre la ventana entrada de red, elegir en leer valor> dispositivo remoto y se nos cambia la ventana, en el apartado dispositivo remoto configurar como en la imagen.



La figura de la entrada digital ahora se nos pone en verde, esto quiere decir que la conexión a sido realizada correctamente. Tengo que añadir que estas entradas y salidas de red no se pueden simular en el programa LOGOSoft, el por que? lo desconozco, en cambio en el modo de red cliente/servidor si que se pueden simular. Como podéis ver este modo de red senos puede queda limitado según que aplicación deseemos darle.

Como crear una red Cliente/servidor

Como hemos hecho en el caso anterior, abrimos proyecto> proyecto de red> añadir dispositivo en la ventana de vista de redes y elegir dispositivo LOGO 8 y agregar tantos como se desee, en mi caso cuatro.




Como podemos ver en la parte inferior de la imagen en el editor de diagramas se nos abren cuatro pestañas una para cada uno de los LOGOs que hemos conectado en red, por cierto la red cliente/servidor es la que aparece de color azul claro y que en la realidad física seria una red en topologia en estrella, es decir del LOGO servidor saldría un cable ethernet al hub o concentrador y de ahí repartiría hacia los demás LOGOs. Volviendo al editor de diagramas, cada una de las pestañas que tenemos son el sitio donde escribiremos el programa de ese LOGO en concreto y posteriormente podremos crear las conexiones que deseemos entre los distintos diagramas y por lo tanto conexiones entre LOGOs que no quiere decir mas cables.
Para crear las conexiones entre los distintos diagramas procederemos siguiendo los pasos de las imágenes.





De esta manera crearemos las conexiones entre diagramas o programas entre LOGOs.

lunes, 29 de febrero de 2016

Comunicaciones del S7 1200

Comunicaciones.

Ethernet, profinet, profibus,..., ..., ...
Que tipo de red elegir? 

Si andáis un tiempo por este mundo sabréis que hay una infinidad de tipos de red,  cada una de una fabricante, algunas parecidas, otras no tienen nada que ver unas con otras, en definitiva incompatibles unas con otras.

Siemens esta apostando por PROFINET y PROFIBUS dos tipos de redes que se complementan a mi entender y que por ello no tienen la misma función.

Que es ETHERNET/PROFINET?

ETHERNET y PROFINET es lo mismo? rotundamente, NO!!!, por que lo digo de esta forma tan contundente? por que leyendo el manual de Siemens, en algunos momentos parecen lo mismo, pero no es así. Comparten lo que se llama la capa física, es decir, electrónica,conectores, cables... todo eso es compatible, utilizan ambas el protocolo de direccionamiento TCP/ IP del mismo modo. Entonces donde está la diferencia?. Pues que al protocolo TCP/IP se le añade una trama mas de datos para para crear así PROFINET. Esta trama no es por que si o un capricho del fabricante si no que en el entorno de la red tiene su utilidad.

visitar:

http://www.infoplc.net/documentacion/7-comunicaciones-industriales/1791-profinet-conceptos-basicos

Ahora me voy a permitir hacer una critica a Siemens, creo que no es mucho pedir, que los automatas de la serie S7 1200 y 1500 pudieran cambiar de protocolo, PROFINET a ETHERNET(de datos estandar) ya que solo es una cuestión de programación del sistema operativo del PLC y permitir que los dos tipos de redes sean plenamente operativos, creo yo que esto daría mas versatilidad a la serie S7  (si sigues leyendo esta entrada mas adelante sabrás el por que). Ya que tanto PROFINET como ETHERNET(de datos estandar) lo que hacen es trasferir datos de un punto de la red a otra.

QUE ES PROFIBUS?.

Aquí la experiencia practica por mi parte a sido poca pero muy agradable, como he dicho al principio ambas redes se complementan en una red industrial, por que si PROFINET sirve para enviar información (datos) de un lado a otro de la red, con PROFIBUS creamos una red de automatización de una fabrica o cadena de montaje, ya que desde un autómata principal o maestro controlamos varios esclavos. Cuando hablo de controlar, me refiero a que desde el maestro podemos activar una salida del esclavo o leer una entrada. Esto a nivel de TIAportal significa que desde un único programa controlamos varios PLC.

visitar:

 http://www.infoplc.net/documentacion/7-comunicaciones-industriales/1360-introduccion-a-profibus12

No voy a añadir mas por mi parte en estas dos redes, creo que hay gente que sabe mas que yo en estas cuestiones por eso remito a los anteriores enlaces para el que quiera profundizar.

El motivo de meterme en comunicaciones del S7 1200 es por que, creo que hoy en día las comunicaciones son fundamentales en la industria y cada vez mas, el conocerlas, trabajarlas y dominarles es asegurarse el futuro en la automatización.

Que se necesita para iniciarse en las comunicaciones del S7.

Lo primero tiempo, por que no es poca la información que vamos a manejar, tipos de redes, protocolos, tener claro que finalidad tiene cada tipo de red, instrucciones de programación y que módulos o elementos nos son necesarios para poder realizar la conexión física.

Creo que lo mejor es empezar por que elementos nos hacen falta para hacer posibles las comunicaciones. Si no hay dos interlocutores no hay comunicación, por lo tanto necesitamos otro PLC, para no complicarnos la vida, lo mejor es coger otro PLC igual que el que tenemos  o próximo a este, bien como ya sabemos ambos están preparados para para PROFINET, por lo tanto se pueden unir directamente o a través de un swith concentrador, si vamos a unir mas dispositivos, HMI, PLC´s.. a la red.



Como se puede ver es bastante sencillo la unión física de los dispositivos en PROFINET y sirven los cables de ethernet.

En PROFIBUS la cosa es distinta no tenemos el PLC preparado si no que hay que añadir un modulo al PLC y hay módulos maestros y esclavos.
Los módulos que nos harán falta son:

CM 1245-5 PROFIBUS DP-slave ref. 6GK7 242-5DX30-0XE0
https://support.industry.siemens.com/cs/document/61029535/simatic-net-s7-1200-profibus-cm-1242-5-instrucciones-de-servicio?dti=0&pnid=13613&lc=es-WW

CM1243-5 PROFIBUS DP master ref. 6GK7 243-5DX30-0XE0
https://support.industry.siemens.com/cs/document/61029013/simatic-net-s7-1200-profibus-cm-1243-5-instrucciones-de-servicio?dti=0&pnid=13613&lc=es-WW

En ambos manuales explican como se tienen que usar estos módulos y su topología.

TIAportal y PROFIBUS.
https://support.industry.siemens.com/cs/document/59193579/simatic-profibus-profibus-con-step-7-v13?dti=0&pnid=13613&lc=es-WW

También el S7 1200 pueden llevar redes ASi para lo cual necesitaremos otro módulo:

CM 1243-2 ASi Master ref. 3RK7243-2AA30-0XB0
https://support.industry.siemens.com/cs/document/57914347/maestro-as-i-cm-1243-2?dti=0&pnid=13613&lc=es-WW

y como no el RS 232, 422, 485, pero no se el por que en el portal de soporte de Siemens en internet , con el nombre del modulo CM 1241 no he encontrado nada, ni un triste manual, en cambio !!! sorpresa¡¡¡ con el nombre CP 1243-1  PCC es un modulo que nos va a permitir conectar nuestro S7 1200 a una red ethernet/internet, es decir ya tenemos conexión al mundo.

En cambio, si que encuentro distribuidores que comercializan estos módulos CM para RS 232/485 o quien busca acaba encontrando, existe un procesador de comunicacionres punto a punto y es el CP 431.

https://support.industry.siemens.com/cs/document/1117397/acoplamiento-punto-a-punto-cp-341-configuraci%C3%B3n-y-parametrizaci%C3%B3n?dti=0&lc=es-WW


Ethernet/internet.

https://cache.industry.siemens.com/dl/files/879/109382879/att_829412/v1/BA_CP-1243-1-PCC_78.pdf

Hablando de conectar nuestro PLC al mundo tenemos otros módulos como son.
CP 1242-7 GPRS  y CP1243-7   este módulo conecta nuestro PLC vía GSM.

 https://support.industry.siemens.com/cs/document/55631071/simatic-net-s7-1200-telecontrol-cp-1242-7?dti=0&lc=es-WW

https://support.industry.siemens.com/cs/document/61029644/simatic-net-s7-1200-telecontrol-cp-1242-7-instrucciones-de-servicio?dti=0&lc=es-WW

https://support.industry.siemens.com/cs/document/109476704/simatic-net-s7-1200-telecontrol-cp-1243-7-lte-instrucciones-de-servicio?dti=0&lc=es-WW

Para terminar, existen unos módulos denominados TS que sirven para conectar vía telefonía convencional nuestro PLC.

https://support.industry.siemens.com/cs/document/51311100/simatic-industrie-software-engineering-tools-ts-adapter-ie-basic?dti=0&lc=es-ES

https://support.industry.siemens.com/cs/document/85517232/ts-adapter-ie-advanced?dti=0&lc=es-ES

Bueno, como podéis ver hay muchas posibilidades de conexión de nuestro PLC, solo ahí que tener claro la que nos hace falta. Dejo un ultimo enlace para los catálogos de Siemens.

Catalogo de comunicaciones:

https://www.automation.siemens.com/sc-static/catalogs/catalog/SIMATIC_NET_IKPI_complete_Spanish_2015.pdf?HTTPS=REDIR

Catalogo general:

http://www.automation.siemens.com/salesmaterial-as/catalog/es/simatic-st70-complete-spanish-2015.pdf

jueves, 4 de febrero de 2016

Primeras impresiones con el LOGO 8

Primeras impresiones con LOGO 8

Conozco gente, profesionales como electricistas, ingenieros, informáticos, que andan metidos en este mundo de la automatización y cuando a salido el tema de los relés lógicos mucha de esa gente no quiere ni oír hablar de ellos, refiriéndose a ellos de una manera despectiva (esa mi.....); Bueno, esta claro que yo no comparto su opinión, creo que son unos dispositivos muy interesantes que nos pueden dar buenas soluciones a los problemas de automatización.

Debe de quedar claro que no tienen las mismas prestaciones que un autómata (S7 200,300,1200,1500), pero no por esto hay que dejar de contar con ellos, pienso que a cada problema una solución concreta, o dicho de otra forma a cada paciente su medicina.

Características del LOGO 8.

Todo módulo base LOGO! soporta las siguientes conexiones para crear programas,
independientemente del número de módulos conectados:
Entradas digitales I1 hasta I24
Entradas analógicas AI1 a AI8
Salidas digitales Q1 a Q20
Salidas analógicas AQ1 a AQ8
Marcas digitales M1 a M64:
M8: marca de arranque
M25: marca de retroiluminación: display integrado en el LOGO!, blanca
M26: marca de retroiluminación: LOGO! TDE, blanca
M27: marca del juego de caracteres para textos de mensajes
M28: marca de retroiluminación: display integrado en el LOGO!, ámbar
M29: marca de retroiluminación: display integrado en el LOGO!, roja
M30: marca de retroiluminación: LOGO! TDE, ámbar
M31: marca de retroiluminación: LOGO! TDE, roja
Bloques de marcas analógicas: AM1 a AM64
Bits de registro de desplazamiento: S1.1 a S4.8 (32 bits de registro de desplazamiento)
4 teclas de cursor
Salidas no conectadas: X1 a X64
El LOGO! 0BA8 soporta adicionalmente la visualización de las siguientes entradas y salidas
digitales/analógicas de red, siempre y cuando el usuario las haya preconfigurado en el
programa con LOGO!Soft Comfort V8.0 y haya descargado el programa al dispositivo 0BA8:
64 entradas digitales de red: NI1 a NI64
32 entradas analógicas de red: NAI1 a NAI32
64 salidas digitales de red: NQ1 a NQ64
16 salidas analógicas de red: NAQ1 a NAQ16

Es programable a través del teclado del propio LOGO o mas cómodo, mediante el programa LOGO Soft y con un cable de ethernet podemos conectarlo al ordenador para realizar la trasferencia del programa y datos o bien también se puede realizar dicha trasferencia mediante una memoria micro-SD.

Programación Del LOGO

Como he dicho anteriormente es mejor programar el LOGO a través de LOGOSoft, ya que con el teclado esta tarea se puede hacer muy pesada y a parte no ofrece la visión del programa que ofrece el LOGOSoft.

No voy hacer aquí un tutorial de como hay que manejar el LOGOSoft (no de momento) solo dire como me a ido la experiencia de programar.

Lo primero que tenemos que saber la gente que programamos autómatas, es que lenguaje de programación debemos de emplear, bueno pues en el caso del LOGO no hay mucho donde elegir o FUP o KOP no hay mas. Yo personalmente me apaño bien con los dos a un que tengo cierta debilidad por las puertas lógicas. Se nos permite jerarquizar el diseño a través de las UDF o bloques lógicos que emplearemos para clarificar el diseño.

Bien pues con todo esto me he puesto manos a la obra y he querido hacer el programa de control de vaciado de fosa que tengo hecho para el S7 1200 adaptarlo al LOGO, evidentemente no es igual ni tiene el HMI o pantalla, pero si que comparte sus características de control, como son, control de tres bombas, control de las boyas de nivel y una novedad control del vaciado de la fosa según el numero de bombas que estén en marcha.



El control de las tres bombas, consiste en poner tantas bombas haya en funcionamiento, según el nivel de llenado de la fosa y mantener esas bombas funcionando hasta que se vacíe la fosa. Una vez vaciada la fosa si esta se vuelve a llenar no entraría otra vez la bomba que lo hizo con anterioridad si no otra para que así las tres bombas lleven un relevo y que las horas de diferencia funcionamiento sean lo mas cortas posible.

El control de las boyas de nivel, se encarga vigilar de que si alguna boya no sigue una secuencia de activación correcta el sistema de control reacciona, primero generando una alarma y segundo tomando una decisión sobre que numero de bombas debe de poner en marcha, si se da el caso.

El control de vaciado, Una vez están caídas las boyas de nivel y solo queda la de vaciado, aremos un seguimiento de la misma con una temporización, es decir que si esta boya permanece un tiempo activa después de la caída de la boya de nivel 1 se desconectaran las bombas pasado este tiempo, como medida de protección. El tiempo de seguimiento varia según el numero de bombas que haya en funcionamiento, a mayor numero de bombas, menor tiempo.


Bueno pues con todo esto me puse a trabajar y he creado un programa para el LOGO que me habrá llevado unas 15 horas en total crearlo (un ratito hoy y otro mañana) y este a sido el resultado.


Programa de control de fosa para LOGO 8:


DEMOs de SIEMENS de LOGO soft con la que podrás simular  el funcionamiento de mi programa.

Directamente de Siemens:

viernes, 16 de octubre de 2015

Uso de R_TRIG y F_TRIG.

Capturar un momento, en programación SCL y las instrucciones
R_TRIG y F_TRIG.

A quien no le interesa capturar un momento o instante en función de la activación o desactivación de una señal de entrada, salida o variable y no estoy hablado de usar eventos (interrupciones) no!!.

Vamos hacer algo más sencillo y creo que muy útil para ciertos casos, por ejemplo, cuando se activa una entrada del PLC queremos saber a que hora se ha activado y a que hora se ha vuelto a desactivar y que estos datos, queden registrados para una posterior consulta. Si esto lo intentamos hacer sin usar estas instrucciones os digo que es prácticamente imposible, o nos sale un programa muy complicado.

Como funciona R_TRIG, cuando la entrada clok de la instrucción que sera una variable (Tag), cambia de estado de 0 a 1, en este flanco de subida se dispara la salida Q de R_TRIG y queda activa durante ese ciclo de la maquina en el que ha ocurrido el cambio de estado, en los siguientes ya no permanece activo. Esto ya se que choca con lo que dice la ayuda de TIA portal e incluso el manual, pero si miráis los ejemplos que pongo en este texto podéis juzgar por vosotros mismo y si creéis que me equivoco hacedme lo saber.

Como iba diciendo la salida Q permanece activa durante el ciclo en el que se produce el cambio de estado, circunstancia que aprovecharemos para realizar la captura de algún dato que nos interese, en este caso registrar la hora en que se activa una salida. Para ello nos ayudaremos de la instrucción WHILE DO dentro de esta sentencia colocaremos las instrucciones necesarias para leer el reloj y guardar esa lectura en una variable para su registro. Una vez terminado el ciclo del flaco la condición de WHILE cambia y ya no vuelve a leer ni registrar el dato.

El funcionamiento de F_TRIG es igual que el de R_TRIG pero para el flanco de bajada.

Un ejemplo de uso de lo que aquí digo, lo tenéis en la pagina del blog, Mis programas, control de llenado de fosa, si os descargáis el proyecto en la pagina 39 a la 42 tenéis un ejemplo de uso de R_TRIG y FTRIG.


Si el ejemplo anterior os sabe a poco aquí os dejo otro es un desplazamiento de salida activa cada cinco segundos usando la R_TRIG y SHL que es la instrucción que hace el registro de desplazamiento.

ir al enlace:
https://drive.google.com/folderview?id=0B_H6mOzK5877ejZUWmI1dmVhd1k&usp=sharing



miércoles, 30 de septiembre de 2015

Copiado de funciones, FC y FB.

Copiar funciones.

Puede ocurrir que necesitemos crear una función idéntica a otra que ya tenemos en el mismo programa, por ejemplo una función controla las horas que esta funcionando un motor y resulta que tenemos dos motores mas que controlar, como lo hacemos?. Volvemos a escribir nuevas funciones idénticas a la anterior ?. No es necesario, podemos hacer una copia de la primera función, pero, con una serie de cosas a tener en cuenta pues esto no es solamente hacer click con el ratón y elegir la opción de copiar.

  1. Situaremos el cursor sobre la función a copiar en el árbol de proyecto haremos click con el botón derecho del ratón se abre un menú elegimos la opción copiar y aparece debajo de la actual la función copiada.
  2. Ahora nos situaremos sobre la función copiada, seleccionamos, click con el botón derecho del ratón, se abre el menú y elegimos propiedades, se nos abre otro menú el la opción de General, nos aparecen varias entradas por si queremos cambiar los datos de alguna, en la entrada “Nombre” nos aparece el nombre de la función copiada guión mas un numero, este sera el nombre de la nueva función y el que si debemos de cambiar es el de la entrada que tenemos de bajo de “Tipo” que es “numero” y pondremos si es la primera copia un “dos” e iremos aumentando el numero según las copias que hagamos de la primera función.
Con los pasos anteriores tenemos copiada la función primera, si queremos mas copias de la función original tenemos que repetir estos pasos.

Pero no hemos terminado, si dentro de la función copiada hay instrucciones que usan DB (como es el caso de temporizadores, contadores, etc.). Tendremos que buscarlas en las funciones copiadas y volverlas a escribir para que se genere una DB nueva para esa instrucción, de lo contrario la función no funcionara correctamente cuando la probemos.

Con las variables o “Tag” no hay problema, pueden usar el mismo nombre que la función original.

Programa Control de una fosa de pluviales

Control de llenado de fosa de aguas.

Se me a planteado el siguiente problema de automatización. El control de una Fosa que recogerá aguas pluviales de una zona con escasa evacuación de forma natural de dichas aguas, Para ello se crea una red colectora, que llevara las aguas hasta la fosa, donde se evacuaran a otra red de alcantarillado que las conducirá hasta la depuradora para su tratamiento.

Las condiciones son las siguientes.

  • En la fosa habrán tres bombas que funcionando las tres a la vez tienen que ser capaces de evacuar todo el caudal entrante máximo.

  • Las bombas irán poniéndose en marcha según se valla llenando la fosa, para saber que nivel de llenado de fosa tenemos, disponemos en el interior de la fosa de cuatro boyas situadas a distinto nivel que nos indicaran el estado de llenado de la fosa.

  • El sistema tiene que ser tolerante a fallos en la lectura de los niveles de la fosa, es decir que si se produce una situación anómala a lo normal, el sistema tiene que poder reaccionar ante esa lectura errónea de las boyas.

  • Registro de horas de funcionamiento de cada una las bombas.

  • Registro de hora de inicio de arranque de cada bomba y ultima hora de paro.
  • Estado actual de cada bomba, Funcionando, Parada y Averiada.

  • Los tres puntos anteriores se tienen que poder observar en una única pantalla de HMI.

  • Cada vez que la fosa se vacía en el siguiente ciclo de funcionamiento, deberá entrar primero la bomba que menos horas de funcionamiento tenga. En caso de mayor necesidad evacuación la siguiente bomba que entre sera la menos horas de funcionamiento tenga de las dos que quedan por poner en funcionamiento.
  • En caso de estar una única bomba trabajando el sistema deberá de poder ir turnando las tres bombas, durante el tiempo prefijado por el usuario en el HMI.

  • Las bombas tienen que poder ser activadas de forma manual, la desactivación de las mismas también tiene que ser manual o cuando la boya de vacío quede colgando lo cual es indicativo que el nivel de agua es ya muy bajo. Si hay activación manual activa, tiene que aparecer en la pantalla principal del HMI, la indicación de MANUAL.

  • Mediante una pantalla del HMI debemos de observar, estado de las bombas nivel de fosa y estado de boyas.

  • En caso de una bomba averiada, lectura errónea de boya, esto tiene que provocar que dispare una alarma sonora y otra luminosa y que se tienen que poder desconectar, de forma temporal e individual y una vez pasado el tiempo prefijado, se volverá a conectar. Si la avería persiste las alarmas tanto sonoras como luminosas volverán a activarse.

Bien pues aquí tenéis la solución.


Descarga de proyecto:


lunes, 17 de agosto de 2015

Uso de temporizadores en programación SCL.

Uso de temporizadores en programación SCL.

He creado un pequeño programa que creo que ayudara a aprender como usar las temporizaciones en programación SCL. Este programa lo que hace es uso de las tres temporizaciones mas usuales, TON, TOF y TP, su funcionamiento es el siguiente, en la entrada I0.0 tenemos un interruptor, cuando este es cerrado la entrada de disparo IN del temporizador TP pasa a nivel alto lo cual provoca el disparo de de la temporización pasando a nivel alto la salida Q de TP y permanecerá así hasta que termine el tiempo fijado en la entrada PT.

La temporización TOF se inicia o arranca cuando cuando la salida Q de TP pasa a nivel bajo, después del tiempo fijado en la entrada PT de TOF su salida pasara a nivel bajo también. Por si no queda claro, cabe indicar que la salida Q de TOF desde el primer momento que arranca el programa la salida Q de TOF a estado a nivel alto y que una vez pasa a nivel bajo la salida Q de TP es cuando se inicia la temporización, por eso se llama retardo a la des-conexión.

La temporización TON es arrancada cuando el interruptor de la entrada I0.0 es cerrado, pasando a nivel alto la entrada IN de TON y trascurrido el tiempo fijado en PT de TON la salida Q de TON pasara a nivel alto, quedándose así hasta que se reinicia la temporización mediante una instrucción
RESET_TIMER, si no hacemos uso de esta instrucción, las temporizaciones no vuelven a arrancar a un que abramos y volvamos a cerrar el interruptor de la entrada I0.0.


No se si os habéis dado cuenta de una cosa, sobretodo cuando he explicado el funcionamiento de TON, pero existe una diferencia de funcionamiento cuando se usa la temporización TON en lenguaje de programación SCL a KOP, sobretodo si el tiempo fijado en PT es de forma directa (T#2s), en programación KOP, cuando la entrada IN cambia de estado de alto a bajo y volvemos a alto la temporización TON se ha reiniciado sola. Si el tiempo en PT es fijado de forma indirecta mediante una variable funciona igual que en SCL.


Cosas a tener en cuenta a la hora de trabajar con las temporizaciones.


Como podéis observar en la imagen de bloques del programa el estado de la entrada I0.0 es la que dispara las temporizaciones TP y TON, a un que esto se vera mejor leyendo el programa del bloque, si la entrada esta a nivel bajo, retorna del bloque sin hacer nada. Si la entrada esta a nivel alto, dispara las temporalizaciones, estando estas temporalizaciones activas volvemos a poner la entrada a nivel bajo durante un breve instante sin que llegue a superar el tiempo de PT, volvemos a poner la entrada a nivel alto no ocurrirá nada. Pero si una vez activadas las temporalizaciones dejamos en nivel bajo la entrada I0.0, por tiempo superior al de PT o indefinido las salidas Q de las temporalizaciones podríamos decir que se quedan “congeladas”, es decir si las salidas las teníamos activas a nivel alto así se quedan de forma permanente aunque halla trascurrido el tiempo de PT. Solo se actualizaran los estados de las salidas cuando la entrada I0.0 vuelva a estado alto entonces se actualizaran.
Esto es importante a tener en cuenta, por que si se nos ocurre poner una temporalización dentro de una sentencia WHILE_DO o como en el programa una IF esta tendrá que mantener la condición, hasta que la temporalización halla acabado por que de lo contrario ya sabemos que la salida Q de la temporalización se puede quedar congelada.


Si quieres puedes descargarte el programa en el siguiente enlace:

https://drive.google.com/folderview?id=0B_H6mOzK5877fkhVZHlzY1ZIQUlTMzN6MnluaGhOaWsxZExHR2tTU0dIWGI2clYxZkQxaDg&usp=sharing