<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0123-921X</journal-id>
<journal-title><![CDATA[Tecnura]]></journal-title>
<abbrev-journal-title><![CDATA[Tecnura]]></abbrev-journal-title>
<issn>0123-921X</issn>
<publisher>
<publisher-name><![CDATA[Universidad Distrital Francisco José de Caldas]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0123-921X2011000200010</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Detección anticipada de flancos sólidos en presencia de rebotes para programación bajo el estándar IEC 61131-3]]></article-title>
<article-title xml:lang="en"><![CDATA[Solid-flank anticipated detection in the presence of bounce according to the programming standard IEC 61131-3]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Holguín Londoño]]></surname>
<given-names><![CDATA[Germán Andrés]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Holguín Londoño]]></surname>
<given-names><![CDATA[Mauricio]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Escobar Mejía]]></surname>
<given-names><![CDATA[Andrés]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Tecnológica de Pereira  ]]></institution>
<addr-line><![CDATA[Pereira ]]></addr-line>
<country>Colombia</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad Tecnológica de Pereira  ]]></institution>
<addr-line><![CDATA[Pereira ]]></addr-line>
<country>Colombia</country>
</aff>
<aff id="A03">
<institution><![CDATA[,Universidad Tecnológica de Pereira  ]]></institution>
<addr-line><![CDATA[Pereira ]]></addr-line>
<country>Colombia</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>07</month>
<year>2011</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>07</month>
<year>2011</year>
</pub-date>
<volume>15</volume>
<numero>29</numero>
<fpage>98</fpage>
<lpage>107</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S0123-921X2011000200010&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S0123-921X2011000200010&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S0123-921X2011000200010&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[La implementación de sistemas antirebote, como medio de filtrado para transiciones no deseadas, en señales digitales de entrada a sistemas de automatización se realiza normalmente mediante algoritmos que hacen parte íntegra del cuerpo lógico de control. Independiente del tipo de sensor empleado, mecánico, magnético, capacitivo, etc., el rebote siempre está presente y en mayor nivel, de acuerdo con el tipo de aplicación. Si se desea tener control de acceso sobre un recinto al cual se ingresa por una puerta, el sensor está sometido a una gran variedad de situaciones que se puedan presentar, entre ellas, aperturas y cierres de puerta con rebotes, aparición de rebotes por vibraciones en la puerta, estando abierta o cerrada, que no implican un cambio de estado y aperturas o cierres sin presencia de rebotes. Como solución en la eliminación de rebotes se acostumbra incluir contadores y retardos de tiempo como medios de filtrado, sin embargo, estos medios son un obstáculo para la detección de transiciones que ocurren sin la presencia de rebotes. Se muestra en este artículo una solución íntegra al filtrado de rebotes que tiene presente una detección rápida, cuando los cambios de estado se realizan mediante transiciones limpias o sólidas y sin perjuicio del filtrado.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[Slipper system implementation as a means of filtering unwanted transitions in digital input signals to automation systems is usually accomplished by algorithms that make it an integral part of the body control logic. Regardless of the type of sensor used, mechanical, magnetic, capacitive, etc.., The bounce is always present and at higher levels according to the type of application. If you want to control access on a site which you enter through a door, the sensor is subjected to a variety of situations to keep in mind, including opening and closing of door rebounds, rebounds per occurrence of vibrations in the being open or closed door that do not involve a change of state and openings or closings without the presence of rebounds. As the solution gets used debouncing include counters and time delays as a means of filtering, but these media are an obstacle to the detection of transitions that occur without the presence of rebounds. In this article, a comprehensive solution to filtering bounces to have present rapid detection when changes are made by state or solid clean transitions and subject to filtering.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[bloque funcional]]></kwd>
<kwd lng="es"><![CDATA[diagrama escalera]]></kwd>
<kwd lng="es"><![CDATA[estándar IEC 61131-3]]></kwd>
<kwd lng="es"><![CDATA[filtrado anti-rebote]]></kwd>
<kwd lng="en"><![CDATA[functional block]]></kwd>
<kwd lng="en"><![CDATA[ladder diagram]]></kwd>
<kwd lng="en"><![CDATA[standard IEC 61131-3]]></kwd>
<kwd lng="en"><![CDATA[anti-bounce filter]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  <font face="verdana" size="2">      <p align="center"><font size="4"><b>Detecci&oacute;n anticipada de flancos s&oacute;lidos en presencia de rebotes para programaci&oacute;n bajo el est&aacute;ndar IEC 61131-3</b></font></p>     <p align="center"><font size="3"><b>Solid-flank anticipated detection in the presence of bounce according to the programming standard IEC 61131-3</b></font></p>     <p align="center"><b>Germ&aacute;n Andr&eacute;s Holgu&iacute;n Londo&ntilde;o<sup>1</sup>, Mauricio Holgu&iacute;n Londo&ntilde;o<sup>2</sup>, Andr&eacute;s Escobar Mej&iacute;a<sup>3</sup></b></p>      <p><sup>1</sup> Ingeniero electricista, mag&iacute;ster en Ingenier&iacute;a El&eacute;ctrica, estudiante de Doctorado en Ingenier&iacute;a. Docente Asociado de la Universidad Tecnol&oacute;gica de Pereira. Pereira, Colombia. <a href="mailto:german.holguin@utp.edu.co">german.holguin@utp.edu.co</a>    <br> <sup>2</sup> Ingeniero electricista, mag&iacute;ster en Ingenier&iacute;a El&eacute;ctrica. Docente Asistente de la Universidad Tecnol&oacute;gica de Pereira. Pereira, Colombia. <a href="mailto:mau.hol@utp.edu.co">mau.hol@utp.edu.co</a>    <br> <sup>3</sup> Ingeniero electricista, mag&iacute;ster en Ingenier&iacute;a El&eacute;ctrica, estudiante de Doctorado en Ingenier&iacute;a. Docente Asistente de la Universidad Tecnol&oacute;gica de Pereira. Pereira, Colombia. <a href="mailto:andreses1@utp.edu.co">andreses1@utp.edu.co</a></p>      <p>Fecha de recepci&oacute;n: 5 de marzo 5 2011 Fecha de aceptaci&oacute;n: 30 de mayo de 2011</p>  <hr>      <p><font size="3"><b>Resumen</b></font></p>      <p>La implementaci&oacute;n de sistemas antirebote, como medio de filtrado para transiciones no deseadas, en se&ntilde;ales digitales de entrada a sistemas de automatizaci&oacute;n se realiza normalmente mediante algoritmos que hacen parte &iacute;ntegra del cuerpo l&oacute;gico de control. Independiente del tipo de sensor empleado, mec&aacute;nico, magn&eacute;tico, capacitivo, etc., el rebote siempre est&aacute; presente y en mayor nivel, de acuerdo con el tipo de aplicaci&oacute;n. Si se desea tener control de acceso sobre un recinto al cual se ingresa por una puerta, el sensor est&aacute; sometido a una gran variedad de situaciones que se puedan presentar, entre ellas, aperturas y cierres de puerta con rebotes, aparici&oacute;n de rebotes por vibraciones en la puerta, estando abierta o cerrada, que no implican un cambio de estado y aperturas o cierres sin presencia de rebotes.</p>     ]]></body>
<body><![CDATA[<p>Como soluci&oacute;n en la eliminaci&oacute;n de rebotes se acostumbra incluir contadores y retardos de tiempo como medios de filtrado, sin embargo, estos medios son un obst&aacute;culo para la detecci&oacute;n de transiciones que ocurren sin la presencia de rebotes. Se muestra en este art&iacute;culo una soluci&oacute;n &iacute;ntegra al filtrado de rebotes que tiene presente una detecci&oacute;n r&aacute;pida, cuando los cambios de estado se realizan mediante transiciones limpias o s&oacute;lidas y sin perjuicio del filtrado.</p>     <p><b><i>Palabras clave: </i></B>bloque funcional, diagrama escalera, est&aacute;ndar IEC 61131-3, filtrado anti-rebote.</p>  <hr>      <p><font size="3"><b>Abstract</b></font></p>      <p>Slipper system implementation as a means of filtering unwanted transitions in digital input signals to automation systems is usually accomplished by algorithms that make it an integral part of the body control logic. Regardless of the type of sensor used, mechanical, magnetic, capacitive, etc.., The bounce is always present and at higher levels according to the type of application. If you want to control access on a site which you enter through a door, the sensor is subjected to a variety of situations to keep in mind, including opening and closing of door rebounds, rebounds per occurrence of vibrations in the being open or closed door that do not involve a change of state and openings or closings without the presence of rebounds.</p>     <p>As the solution gets used debouncing include counters and time delays as a means of filtering, but these media are an obstacle to the detection of transitions that occur without the presence of rebounds. In this article, a comprehensive solution to filtering bounces to have present rapid detection when changes are made by state or solid clean transitions and subject to filtering.</p>     <p><b><i>Key words:</i></B> functional block, ladder diagram, standard IEC 61131-3, anti-bounce filter.</p>  <hr>      <p><font size="3"><b>1. Introducci&oacute;n</b></font></p>      <p>El filtrado de se&ntilde;ales con presencia de rebotes es un procedimiento normal en el dise&ntilde;o y validaci&oacute;n de sistemas digitales. Frecuentemente se aborda este objetivo con el empleo de biestables, que mediante una se&ntilde;al de sincronismo de frecuencia adecuada (normalmente baja), hacen sensible un sistema a los cambios en una se&ntilde;al de entrada, &uacute;nicamente a ciertos intervalos de tiempo. Los intervalos son suficientes para considerar que la se&ntilde;al alcanza un estado estable durante este periodo de tiempo.</p>      <p>En la automatizaci&oacute;n industrial, las se&ntilde;ales de entrada pueden ser de diversa naturaleza, las cuales pueden ir desde el rango AC al DC, desde voltajes bajos hasta incluso cerca de los 400V, y en el caso de las se&ntilde;ales AC en amplios rangos de frecuencia. Las entradas digitales de los PLC no son normalmente filtradas por rebotes, ya que se deben ajustar al tipo de aplicaci&oacute;n particular. El filtrado por rebotes en los PLC se realiza normalmente por temporizadores que realizan una acci&oacute;n similar a la de los biestables en los sistemas digitales. Sin embargo, en ciertas aplicaciones, donde el tiempo de respuesta a cierta acci&oacute;n es fundamental, se hace necesario responder lo antes posible ante un cambio de estado en las se&ntilde;ales de entrada, pero conservando la posibilidad de filtrar rebotes.</p>      <p>En salas de alta seguridad con sistemas de control y seguimiento a los accesos, se presenta una situaci&oacute;n como la descrita previamente, donde mediante el uso de sensores en las puertas de acceso se hace seguimiento, y aunque estos sensores pueden estar sometidos a rebotes, igualmente es frecuente tener aperturas o cierres con transiciones limpias o s&oacute;lidas (transiciones donde no se presentan rebotes) que con el objetivo de tener un seguimiento lo m&aacute;s cercano en tiempo a los eventos reales se hace necesario detectarlos r&aacute;pidamente, incluso si el tiempo de filtrado de la se&ntilde;al no ha concluido. Adem&aacute;s, en este tipo de aplicaci&oacute;n tambi&eacute;n es frecuente la presencia de rebotes por vibraciones externas, donde aunque el sensor detecta una variaci&oacute;n la puerta vibra y conserva finalmente el estado actual; lo anterior se presenta, por ejemplo, cuando por el tr&aacute;nsito de veh&iacute;culos pesados una puerta vibra pero su estado se conserva, o cuando un objeto de cualquier naturaleza impacta moment&aacute;neamente con la puerta y la hace vibrar pero no afecta su estado.</p>      ]]></body>
<body><![CDATA[<p>Con el objetivo de construir un sistema general de filtrado que aborda todos los retos descritos, el presente art&iacute;culo describe una soluci&oacute;n a ser implementada como parte de un sistema de control y seguimiento de accesos y donde el lenguaje de programaci&oacute;n empleado es Ladder de acuerdo con el est&aacute;ndar IEC 61131-1. Las t&eacute;cnicas comunes empleadas para la detecci&oacute;n de rebotes normalmente van en contra de la posibilidad de detectar transiciones limpias de una se&ntilde;al, la metodolog&iacute;a que se describe permite realizar la detecci&oacute;n de transiciones con rebotes, as&iacute; como una detecci&oacute;n anticipada cuando las transiciones ocurren de forma s&oacute;lida; adem&aacute;s, se tiene presente la posibilidad de encontrar vibraciones de origen externo que, aunque tienen apariencia de rebote, no implican cambios en la transici&oacute;n de la se&ntilde;al de entrada.</p>       <p><font size="3"><b>2. Estado del arte</b></font></p>      <p>El estudio del filtrado de se&ntilde;ales con rebote se ajusta a las particularidades de las aplicaciones donde ellas se presentan. En la bibliograf&iacute;a se encuentran soluciones concretas a problemas de diversa naturaleza, por ejemplo, soluciones al rebote presentado en el control o medici&oacute;n de se&ntilde;ales an&aacute;logas como es el caso de &#91;1&#93;, &#91;2&#93;. Otras soluciones tratan el cl&aacute;sico problema de los rebotes en la lectura de se&ntilde;ales discretas como en &#91;3&#93; y, finalmente, se encuentran soluciones complejas donde mediante el uso de se&ntilde;ales an&aacute;logas se modela el comportamiento de se&ntilde;ales digitales, con el fin de proveer seguridad en ambientes con eventos que pueden crear altos niveles de interferencia en la lectura de se&ntilde;ales, como se describe en &#91;4&#93;.</p>      <p><b>2.1 Se&ntilde;ales de mando</b></p>      <p>Un sistema f&iacute;sico se puede interpretar como una caja negra que entrega como salida una se&ntilde;al determinada en respuesta a un conjunto de se&ntilde;ales de est&iacute;mulo. En el dise&ntilde;o por se&ntilde;ales de mando se define la estructura interna funcional del sistema con el fin de obtener como respuesta un conjunto de salida que cumpla las restricciones de dise&ntilde;o impuestas. La ventaja del dise&ntilde;o con base en esta t&eacute;cnica consiste en poder interpretar las salidas como un conjunto de nuevas se&ntilde;ales de mando hacia otros sistemas subsecuentes, o lo que es igual, el proceso de dise&ntilde;o de un sistema mayor consiste en seguir la evoluci&oacute;n l&oacute;gica de las se&ntilde;ales, a trav&eacute;s de todo un conjunto de subsistema.</p>      <p>El resultado del dise&ntilde;o por se&ntilde;ales de mando entrega un circuito en forma de diagrama l&oacute;gico, el cual para su implementaci&oacute;n en un PLC es bajo el est&aacute;ndar de programaci&oacute;n IEC 61131-3 &#91;5&#93;. Los diagramas l&oacute;gicos se encuentran presentes en varias plataformas de programaci&oacute;n, siendo algunas de las m&aacute;s comunes en ingenier&iacute;a Simulink&trade; y LabVIEW&trade;. Esta metodolog&iacute;a normalmente se asocia con una descripci&oacute;n secuencial temporal de los eventos que con su ayuda se realiza el dise&ntilde;o de cada m&oacute;dulo o sistema, sin embargo, igualmente es posible realizar la descripci&oacute;n formal de las se&ntilde;ales mediante ecuaciones comportamentales &#91;6&#93;.</p>      <p><b>2.2 Dise&ntilde;o por diagramas ladder</b></p>      <p>Un diagrama ladder es un esquema circuital de los elementos que constituyen la l&oacute;gica de control en un automatismo industrial &#91;7&#93;. Su concepci&oacute;n se orienta hacia una estructura que permite la descripci&oacute;n de un sistema f&iacute;sico implementado con rel&eacute;s cableados y que se origina en el trabajo desarrollado en &#91;8&#93; y donde el autor formaliza las matem&aacute;ticas del pensamiento l&oacute;gico. El anterior trabajo sirvi&oacute; de base para demostrar la implementaci&oacute;n f&iacute;sica de los postulados de Boole, usando rel&eacute;s, lo cual Claude Elwood Shannon realiz&oacute; en 1940 para su tesis denominada <i>A symbolicanalysis of relay and switchingcircuits</i> &#91;9&#93;.</p>      <p>En un diagrama ladder se dibujan l&iacute;neas verticales (como parales de una escalera) indicativas de la fuente de alimentaci&oacute;n para cada uno de los elementos del circuito y l&iacute;neas horizontales (como pelda&ntilde;os de una escalera), donde se ubican los elementos que implementan la l&oacute;gica del circuito. La disposici&oacute;n general en forma de escalera da nombre a este tipo de diagrama. En cada rengl&oacute;n, de izquierda a derecha, se ubican los contactos de rel&eacute;s que implementan la l&oacute;gica, que a su vez activan una bobina de un rel&eacute; que se ubica en el extremo derecho de cada rengl&oacute;n. La <a href="#fig1">Fig. 1</a> muestra un diagrama ladder b&aacute;sico que cumple con la funci&oacute;n l&oacute;gica XNOR.</p>     <p align="center"><a name="fig1"></a><img src="img/revistas/tecn/v15n29/v15n29a10fig1.jpg"></p>      ]]></body>
<body><![CDATA[<p><b>2.3 Dise&ntilde;o por bloques funcionales</b></p>      <p>Los bloques de funciones son diagramas donde el flujo de la informaci&oacute;n se dirige entre bloques mediante el uso de l&iacute;neas de conexi&oacute;n que determinan la l&oacute;gica de la secuencia en la ejecuci&oacute;n, de tal manera que un bloque no se ejecuta hasta que todas sus entradas est&aacute;n disponibles y no entrega resultados hasta que todas sus salidas est&eacute;n disponibles. Una vez las salidas de un bloque est&aacute;n disponibles, los datos viajan por las l&iacute;neas de conexi&oacute;n hasta propagarse a cada una de las entradas subsecuentes. Seg&uacute;n la norma IEC-61131-3, los bloques se dividen en dos tipos, a saber: funciones y bloques de funciones.</p>      <p>Las funciones se distinguen por responder con el mismo valor primario de salida ante el mismo conjunto de variables de entrada, las funciones de suma, resta, etc., son ejemplos de este tipo. Los bloques de funciones responden de acuerdo con el valor de las variables de entrada, las variables internas e incluso el conjunto de variables de salida. Por lo anterior, el valor de una salida en un bloque de funciones puede variar ante el mismo conjunto de variables de entrada. La <a href="#fig2">Fig. 2</a> muestra un dise&ntilde;o por bloque de funciones para la funci&oacute;n l&oacute;gica XNOR.</p>     <p align="center"><a name="fig2"></a><img src="img/revistas/tecn/v15n29/v15n29a10fig2.jpg"></p>      <p><b>2.4 Traducci&oacute;n a ladder desde bloques funcionales</b></p>      <p>Dependiendo de la plataforma donde se desee implementar un sistema, puede ser necesario traducir un sistema dise&ntilde;ado bajo un esquema de bloques funcionales a un esquema bajo diagrama ladder. El dise&ntilde;o con base en bloques funcionales presenta ventajas significativas como la mantenibilidad, legibilidad y escalabilidad de los sistemas con respecto a los sistemas dise&ntilde;ados en ladder &#91;5&#93;. Sin embargo, el dise&ntilde;o ladder sigue siendo uno de los m&aacute;s soportados por los diferentes proveedores de sistemas de automatizaci&oacute;n industrial, toda vez que asemeja los cl&aacute;sicos sistemas cableados e implica una capa de software cercana al lenguaje por listado de instrucciones.</p>      <p>Un bloque funcional permite la ejecuci&oacute;n de una tarea espec&iacute;fica definida sobre un conjunto de se&ntilde;ales de mando de entrada y que entrega como salida una se&ntilde;al representativa de la tarea. Cada tarea puede ser vista como un peque&ntilde;o circuito ladder y donde todas las tareas se desarrollan en una secuencia l&oacute;gica definida por el flujo de informaci&oacute;n sobre el diagrama de bloques funcionales. Como ejemplo b&aacute;sico, en la <a href="#fig3">Fig. 3</a> se muestra la traducci&oacute;n de un diagrama que realiza la funci&oacute;n de temporizaci&oacute;n a la energizaci&oacute;n y a la desenergizaci&oacute;n con el fanco de bajada de la se&ntilde;al de mando. Para la implementaci&oacute;n del diagrama ladder se emplea la herramienta <i>Click Programming Software </i>V1.21 disponible libremente en &#91;10&#93;.</p>     <p align="center"><a name="fig3"></a><img src="img/revistas/tecn/v15n29/v15n29a10fig3.jpg"></p>      <p>La implementaci&oacute;n de varios bloques funcionales en lenguaje ladder se puede consultar en varias referencias, entre otras &#91;6&#93;, &#91;7&#93;, &#91;11&#93;, &#91;12&#93;. Existe un conjunto b&aacute;sico de bloques o funciones, con base en los cuales se puede describir el comportamiento de otras funciones de mayor complejidad, denominadas derivadas; entre las funciones b&aacute;sicas principales est&aacute;n: detectores de fancos, memoria biestable, temporizador a la energizaci&oacute;n, temporizador a la desenergizaci&oacute;n, contador ascendente/descendente, comparadores aritm&eacute;ticos, OR l&oacute;gica, AND l&oacute;gica, NOT l&oacute;gica, aritm&eacute;tica b&aacute;sica y funci&oacute;n de reloj.</p>      <p><font size="3"><b>3. Condiciones  generales</b></font></p>      ]]></body>
<body><![CDATA[<p>El problema que se plantea en el presente art&iacute;culo hace referencia al control de acceso a un recinto restringido mediante el seguimiento de aperturas y cierres realizados sobre la puerta de ingreso. Los cambios de estado de la puerta de acceso se registran mediante el uso de un sensor que presenta rebote. Este rebote se muestra ya sea por acci&oacute;n mec&aacute;nica del mismo sensor o por vibraciones propias de la puerta de acceso. Las vibraciones propias del sensor se han estimado en aproximadamente 30Hz y las atribuibles a factores externos en cerca de 50Hz.</p>      <p>El objetivo es realizar un estricto seguimiento de los cambios de estado de la puerta a saber: transici&oacute;n de cerrada a abierta y transici&oacute;n de abierta a cerrada. Como parte del objetivo es importante realizar el registro de cambios de estado lo m&aacute;s cerca posible del instante real del evento, dado que este algoritmo de vigilancia es susceptible de ser instalado en m&aacute;s de un acceso al recinto y se desean registros en orden de ocurrencia.</p>      <p>En la se&ntilde;al proveniente del sensor se pueden identificar las siguientes regiones, ver <a href="#fig4">Fig. 4</a>:</p>  <ul>    <li> Estados estables de la puerta en posici&oacute;n abierta o cerrada</li>     <li>Rebotes en estados estables de la puerta. Normalmente se presentan por vibraciones de origen externo y no implican un cambio de estado de la puerta.</li>     <li>Rebotes en un cambio de estado de abierta a cerrada o de cerrada a abierta.</li>     <li>Cambios de estado sin rebotes, normalmente denominados cambios s&oacute;lidos.</li>    </ul>     <p align="center"><a name="fig4"></a><img src="img/revistas/tecn/v15n29/v15n29a10fig4.jpg"></p>       <p><font size="3"><b>4. Metodolog&iacute;a</b></font></p>      ]]></body>
<body><![CDATA[<p>El dise&ntilde;o se realiza mediante una concepci&oacute;n modular que facilite a futuro una alta mantenibilidad de la aplicaci&oacute;n, dado que &eacute;sta es susceptible de modificaciones y escalabilidad. Los diferentes tipos de filtrado por rebotes que act&uacute;an sobre la se&ntilde;al del sensor se realizan de forma independiente para luego determinar la relaci&oacute;n l&oacute;gica de precedencia y operaci&oacute;n entre ellos.</p>      <p>Inicialmente, se presenta el dise&ntilde;o del sistema de filtrado por rebotes durante los cambios de estados de la se&ntilde;al de entrada; la <a href="#fig4">Fig. 4</a> corresponde a las zonas denominadas "transiciones con rebotes". Un filtrado com&uacute;n para este tipo de zonas se realiza mediante la detecci&oacute;n de un fanco en la se&ntilde;al de entrada, ya sea un fanco de subida (transici&oacute;n de nivel bajo a alto) o fanco de bajada (transici&oacute;n de nivel alto a bajo), y posterior temporizaci&oacute;n con el fin de inhabilitar la detecci&oacute;n de nuevos fancos durante el periodo que duran los rebotes. La <a href="#fig5">Fig. 5</a> muestra el diagrama de bloques funcionales asociado, el cual se dise&ntilde;&oacute; con ayuda de la herramienta <i>ZelioSoft </i>2 ver 4.4, disponible libremente en &#91;13&#93;.</p>     <p align="center"><a name="fig5"></a><img src="img/revistas/tecn/v15n29/v15n29a10fig5.jpg"></p>      <p>Seguidamente, se presenta el dise&ntilde;o del m&oacute;dulo relacionado con el filtrado de rebotes en zonas de estados estables de la puerta, es decir, el filtrado por vibraciones de origen externo y que no implican un cambio de estado de la puerta. Este filtro se dise&ntilde;a permitiendo la detecci&oacute;n real de un cambio de estado independiente de las vibraciones, es decir, la puerta de acceso cambia realmente de estado cuando su estado inicial y estado final difieren luego de una temporizaci&oacute;n relacionada con la posible duraci&oacute;n de vibraciones provenientes de eventos externos. Un cambio efectivo de apertura a cierre de la puerta se presenta luego de la duraci&oacute;n del periodo de vibraciones externas con temporizadores por vibraciones internas activos, y si no se inicia una temporizaci&oacute;n por cambio de cierre a apertura. Si al inicio y final de la temporizaci&oacute;n por vibraciones externas la puerta sigue en estado de apertura, se concluye que las vibraciones son externas y la puerta no se ha cerrado efectivamente. En un sistema global donde se haga el filtrado por vibraciones internas y externas, al sistema de la <a href="#fig5">Fig. 5</a> de filtrado por vibraciones internas se debe adicionar l&oacute;gicamente con el sistema de filtrado por vibraciones externas como se muestra en la <a href="#fig6">Fig. 6</a>.</p>     <p align="center"><a name="fig6"></a><img src="img/revistas/tecn/v15n29/v15n29a10fig6.jpg"></p>      <p>El &uacute;ltimo reto, previo a una integraci&oacute;n completa del sistema de filtrado por rebotes, es la detecci&oacute;n anticipada de cambios s&oacute;lidos de estados, es decir, detecci&oacute;n anticipada de transiciones, apertura cierre o cierre apertura que suceden sin rebotes. En este caso descrito, una transici&oacute;n debe ser detectada lo antes posible con el fin de hacer su registro lo m&aacute;s cercano al tiempo real del suceso cuando se compite con varias puertas de acceso. La implementaci&oacute;n para dar soluci&oacute;n a este reto consiste en realizar un proceso de conteo de fancos por un tiempo base, durante el cual se considera debe ocurrir como m&iacute;nimo la presencia de un rebote; si durante este tiempo la cuenta indica m&aacute;s de un fanco se debe esperar y entregar la decisi&oacute;n de su contabilizaci&oacute;n a los procesos de rebotes internos y externos, pero si la cuenta indica la presencia de s&oacute;lo un fanco se puede considerar su contabilizaci&oacute;n anticipada, ya que durante este tiempo base no hay rebotes. La <a href="#fig7">Fig. 7</a> muestra el dise&ntilde;o del sistema descrito mediante bloques de funciones.</p>     <p align="center"><a name="fig7"></a><img src="img/revistas/tecn/v15n29/v15n29a10fig7.jpg"></p>      <p><font size="3"><b>5. Resultados</b></font></p>      <p>La <a href="img/revistas/tecn/v15n29/v15n29a10fig8.jpg" target="_blank">Fig. 8</a> es una imagen del algoritmo que implementa todo el proceso de filtrado sobre la se&ntilde;al proveniente, desde un sensor detector de apertura y/o cierre de puerta en un recinto sobre el que se desea realizar control de acceso. La implementaci&oacute;n se realiz&oacute; utilizando el software <i>Click Programming Software </i>V1.21 y se despleg&oacute; en un PLC Click Koyo C0-00DR-D. En la <a href="img/revistas/tecn/v15n29/v15n29a10fig8.jpg" target="_blank">Fig. 8</a>, la configuraci&oacute;n de los tiempos de los temporizadores es la apropiada con fines de simulaci&oacute;n, m&aacute;s no con fines de implementaci&oacute;n.</p>      <p>El despliegue responde de forma satisfactoria con los retos propuestos, aunque fue necesario realizar varios ajustes en la configuraci&oacute;n de los temporizadores de acuerdo con los diferentes tipos de vibraciones, o rebotes, presentes.</p>      ]]></body>
<body><![CDATA[<p>Los valores de los temporizadores se ajustan de forma local para cada sensor y puerta donde se desea poner el sistema de control de acceso. Sin embargo, valores t&iacute;picos son los siguientes:</p> <ul>    <li>    <p> Los tiempos relacionados con el filtrado por transiciones con rebotes representan la mayor de las temporizaciones. Estos valores, para los despliegues realizados, se encuentran en el rango de los 700 a los 1000 ms.</p></li>     <li>    <p> Los tiempos relacionados con el filtrado por vibraciones en zonas estables representan tiempos de menor duraci&oacute;n en relaci&oacute;n con transiciones con rebote. Estos valores se encuentran en el rango de los 200 a los 500 ms.</p></li>     <li>    <p> Los tiempos para detecci&oacute;n anticipada, o ante transiciones s&oacute;lidas, est&aacute;n en el rango de los 50 a los 150 ms.</p></li>    </ul>       <P><font size="3"><B>6. Conclusiones</B></font></P>      <p>En el despliegue de aplicaciones donde se emplean sensores susceptibles de presencia de rebotes, siempre es indispensable la introducci&oacute;n de sistemas de filtrado. El filtrado tradicional se restringe a eliminar posibles rebotes en las zonas de transici&oacute;n de la se&ntilde;al de entrada, sin embargo, como se presenta en este documento, existen situaciones adicionales a tener presentes de acuerdo con la naturaleza de la aplicaci&oacute;n a implementar.</p>      ]]></body>
<body><![CDATA[<p>Para el caso particular del presente sistema de control de acceso a un recinto, se han tenido presentes situaciones relacionadas con la presencia de rebotes cuando la se&ntilde;al de entrada no realiza transici&oacute;n alguna y lo cual se relaciona con vibraciones de origen externo al sensor.</p>      <p>Dada la necesidad futura de realizar un registro exhaustivo y en tiempo preciso de los eventos de apertura y cierre de varias puertas sobre el mismo recinto, se hace necesaria la introducci&oacute;n de un sistema de detecci&oacute;n anticipada para situaciones en que las transiciones ocurren sin rebotes. Este sistema presenta la ventaja de entregar una se&ntilde;al de confirmaci&oacute;n de cambio de estado sin necesidad de esperar por el fin del algoritmo de filtrado por rebotes.</p>       <p><font size="3"><b>7. Trabajo futuro</b></font></p>      <p>Los autores actualmente trabajan sobre la integraci&oacute;n operacional de cinco sistemas de detecci&oacute;n de cambios de estado. El requerimiento actual se centra sobre la necesidad manifiesta de registrar todos los eventos de forma correcta, en un tiempo lo m&aacute;s cercano posible al instante exacto de ocurrencia y en la secuencia misma que suceden. Con esta informaci&oacute;n se desea realizar un enlace de comunicaci&oacute;n que muestre sobre un ambiente virtualizado bajo PC la operaci&oacute;n de todos los accesos al recinto y se complemente con archivos hist&oacute;ricos de seguimiento.</p>  <hr>      <p><font size="3"><b>Referencias</b></font></p>      <!-- ref --><p>&#91;1&#93; 	S. Zhanyou, Y. Guoqing and A. Guochen, "Test technology and debouncing circuit design of digitally controlled potentiometer," <i>Electronic Measurement and Instruments, ICEMI, 8th International Conference</i>. Xi'an, Aug. 2007.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000078&pid=S0123-921X201100020001000001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;2&#93; 	D. Lloyd and N. Svensson, "A technique for the measurement of cadence using walkway vibrations," <i>Journal of Biomechanics</i>, vol. 29, no. 12, pp. 1643-1647, Dec.1996.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000079&pid=S0123-921X201100020001000002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;3&#93; 	M. Nanda, J. Jayanthi and S. Rao, "Novel Validation Algorithms for Safety Critical Embedded Software," <i>3rd IET International Conference on System Safety</i>, Birmingham, Oct. 2008.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000080&pid=S0123-921X201100020001000003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;4&#93; 	B. Kasztenny, V. Muthukrishnan and T. Sidhu, "Enhanced Numerical Breaker Failure Protection," <i>IEEE Transactions on Power Delivery</i>, vol. 23, no. 4, pp 1838-1845, Oct. 2008.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000081&pid=S0123-921X201100020001000004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;5&#93; 	J. Karl-Heinz, M. Tiegelkamp<i>, IEC 61131-3: Programming Industrial Automation Systems. Concepts and Programming Languages, Requirements for Programming Systems, Decision-Making Aids</i>. Germany: Springer, 1995.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000082&pid=S0123-921X201100020001000005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;6&#93; 	C. Delhaye, <i>La concepci&oacute;n l&oacute;gica de automatismos industriales: Rel&eacute;s electromec&aacute;nicos - Rel&eacute;s electr&oacute;nicos</i>. &Uacute;nica Edici&oacute;n. Espa&ntilde;a: Marcombo, 1971.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000083&pid=S0123-921X201100020001000006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;7&#93; 	M. Holgu&iacute;n, A. Orozco y C. Guarnizo, <i>Automatismos industriales</i>. Colombia: Impreso en talleres de la Universidad Tecnol&oacute;gica de Pereira, 2008.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000084&pid=S0123-921X201100020001000007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;8&#93; 	G. Boole, <i>The Mathematical Analysis of Logic. Being an Essay Towards a Calculus of Deductive</i>. Cambridge: Macmillan, Barclay, &amp; Macmillan, 1847.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000085&pid=S0123-921X201100020001000008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;9&#93; 	C. Shannon, <i>A symbolic analysis of relay and switching circuits</i>. Thesis (M.S.) Massachusetts Institute of Technology, Dept. of Electrical Engineering, Massachusetts, 1940.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000086&pid=S0123-921X201100020001000009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;10&#93; 	<i>Click Programming Software </i>&#91;En l&iacute;nea&#93;. Disponible en: <a href="http://www.aboutplcs.com/click/free_software/free_click_software.html" target="_blank">http://www.aboutplcs.com/click/free_software/free_click_software.html</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000087&pid=S0123-921X201100020001000010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;11&#93;  	E. Parr. <i>Programmable Controllers. An engineer's guide</i>. Third edition, London: Newnes, 2003.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000088&pid=S0123-921X201100020001000011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;12&#93; 	W. Bolton, <i>Programmable Logic Controllers</i>, Fourth Edition. Newnes, 2006.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000089&pid=S0123-921X201100020001000012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>&#91;13&#93; 	<i>Zelio Soft ver 4.4 </i>&#91;En l&iacute;nea&#93;. Disponible en: <a href="http://www.schneiderelectric.es/sites/spain/es/productos-servicios/automatizacion-control/oferta-de-productos/presentacion-de-rango.page?p_function_id=18&amp;p_family_id=233&amp;p_range_id= 531#" target="_blank">http://www.schneiderelectric.es/sites/spain/es/productos-servicios/automatizacion-control/oferta-de-productos/presentacion-de-rango.page?p_function_id=18&amp;p_family_id=233&amp;p_range_id= 531#</a>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000090&pid=S0123-921X201100020001000013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Zhanyou]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Guoqing]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
<name>
<surname><![CDATA[Guochen]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Test technology and debouncing circuit design of digitally controlled potentiometer]]></source>
<year></year>
<conf-name><![CDATA[ Electronic Measurement and Instruments, ICEMI, 8th International Conference. Xi'an]]></conf-name>
<conf-date>Aug. 2007</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Lloyd]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[Svensson]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A technique for the measurement of cadence using walkway vibrations]]></article-title>
<source><![CDATA[Journal of Biomechanics]]></source>
<year>Dec.</year>
<month>19</month>
<day>96</day>
<volume>29</volume>
<numero>12</numero>
<issue>12</issue>
<page-range>1643-1647</page-range></nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Nanda]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Jayanthi]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Rao]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<source><![CDATA[Novel Validation Algorithms for Safety Critical Embedded Software]]></source>
<year></year>
<conf-name><![CDATA[3 IET International Conference on System Safety]]></conf-name>
<conf-date>Oct. 2008</conf-date>
<conf-loc>Birmingham </conf-loc>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kasztenny]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Muthukrishnan]]></surname>
<given-names><![CDATA[V]]></given-names>
</name>
<name>
<surname><![CDATA[Sidhu]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Enhanced Numerical Breaker Failure Protection]]></article-title>
<source><![CDATA[IEEE Transactions on Power Delivery]]></source>
<year>Oct.</year>
<month> 2</month>
<day>00</day>
<volume>23</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>1838-1845</page-range></nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Karl-Heinz]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Tiegelkamp]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[IEC 61131-3: Programming Industrial Automation Systems. Concepts and Programming Languages, Requirements for Programming Systems, Decision-Making Aids]]></source>
<year>1995</year>
<publisher-loc><![CDATA[Germany ]]></publisher-loc>
<publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Delhaye]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<source><![CDATA[La concepción lógica de automatismos industriales: Relés electromecánicos - Relés electrónicos]]></source>
<year>1971</year>
<edition>Única</edition>
<publisher-loc><![CDATA[España ]]></publisher-loc>
<publisher-name><![CDATA[Marcombo]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Holguín]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Orozco]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Guarnizo]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<source><![CDATA[Automatismos industriales]]></source>
<year>2008</year>
<publisher-name><![CDATA[Impreso en talleres de la Universidad Tecnológica de Pereira]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Boole]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<source><![CDATA[The Mathematical Analysis of Logic. Being an Essay Towards a Calculus of Deductive]]></source>
<year>1847</year>
<publisher-loc><![CDATA[CambridgeMacmillan ]]></publisher-loc>
<publisher-name><![CDATA[Barclay, & Macmillan]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Shannon]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<source><![CDATA[A symbolic analysis of relay and switching circuits]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="">
<source><![CDATA[Click Programming Software]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Parr]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<source><![CDATA[Programmable Controllers. An engineer's guide]]></source>
<year>2003</year>
<edition>Third</edition>
<publisher-loc><![CDATA[London ]]></publisher-loc>
<publisher-name><![CDATA[Newnes]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bolton]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
</person-group>
<source><![CDATA[Programmable Logic Controllers]]></source>
<year>2006</year>
<edition>Fourth</edition>
<publisher-name><![CDATA[Newnes]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="">
<source><![CDATA[Zelio Soft]]></source>
<year></year>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
