<?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>0121-1129</journal-id>
<journal-title><![CDATA[Revista Facultad de Ingeniería]]></journal-title>
<abbrev-journal-title><![CDATA[Rev. Fac. ing.]]></abbrev-journal-title>
<issn>0121-1129</issn>
<publisher>
<publisher-name><![CDATA[Universidad Pedagógica y Tecnológica de Colombia]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0121-11292015000200010</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Programación de Controladores Lógicos (PLC) mediante Ladder y Lenguaje de Control Estructurado (SCL) en MATLAB]]></article-title>
<article-title xml:lang="en"><![CDATA[Programming logic controllers (PLC) using ladder and structured control language (SCL) in MATLAB]]></article-title>
<article-title xml:lang="pt"><![CDATA[Programação de Controladores Lógicos (PLC) mediante Ladder e Linguagem de Controle Estruturado (SCL) em MATLAB]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Páez-Logreira]]></surname>
<given-names><![CDATA[Heyder David]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Zamora-Musa]]></surname>
<given-names><![CDATA[Ronald]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Bohórquez-Pérez]]></surname>
<given-names><![CDATA[José]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad de la Costa  ]]></institution>
<addr-line><![CDATA[Barranquilla Atlántico]]></addr-line>
<country>Colombia</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad de la Costa  ]]></institution>
<addr-line><![CDATA[Barranquilla Atlántico]]></addr-line>
<country>Colombia</country>
</aff>
<aff id="A03">
<institution><![CDATA[,Universidad de la Costa  ]]></institution>
<addr-line><![CDATA[Barranquilla Atlántico]]></addr-line>
<country>Colombia</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>05</month>
<year>2015</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>05</month>
<year>2015</year>
</pub-date>
<volume>24</volume>
<numero>39</numero>
<fpage>109</fpage>
<lpage>119</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S0121-11292015000200010&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S0121-11292015000200010&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S0121-11292015000200010&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Existen diferentes lenguajes de programación de Controladores Lógicos Programables (PLC), el más común de ellos es el lenguaje de programación gráfico para autómatas programables llamado LADDER. Sin embargo, el lenguaje LADDER no es amigable en programas que requieren de cálculos de ecuaciones matemáticas, por ejemplo, el cálculo del volumen de un tanque en un control de nivel. Lenguajes alternativos como el Lenguaje de Control Estructurado (SCL) son menos estudiados dada su complejidad y poca popularidad en la pequeña y mediana industria. En este artículo se compara los resultados del lenguaje de programación LADDER y el lenguaje SCL generado mediante la herramienta Simulink® PLC Coder de MA® tomando como caso de estudio el cálculo de volumen de un tanque. Finalmente, este trabajo demuestra que la herramienta Simulink® PLC Coder presenta una alternativa de desarrollo más eficiente.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[There are different programming languages for Programmable Logic Controllers (PLC), the most common of these is the graphical programming language called LADDER. However, LADDER is not friendly in programs requiring calculations of mathematical equations, for example, to calculate the volume of a tank on level control situations. Alternative languages such as Structured Control Language (SCL) are less studied because of their complexity and unpopular in small and medium industry. In this article, the results LADDER programming language and language are compared with SCL generated by Simulink PLC Coder MATLAB tool taking as a case study the calculating the volume of a tank. Finally, this work shows that the Simulink PLC Coder tool presents an alternative to more efficient development.]]></p></abstract>
<abstract abstract-type="short" xml:lang="pt"><p><![CDATA[Existem diferentes linguagens de programação de Controladores Lógicos Programáveis (PLC), o mais comum deles é a linguagem de programação gráfica para autômatos programáveis chamada LADDER. Porém, a linguagem LADDER não é amigável em programas que requerem de cálculos de equações matemáticas, por exemplo, o cálculo do volume de um tanque em um controle de nível. Linguagens alternativas como a Linguagem de Controle Estruturado (SCL) são menos estudadas devido a sua complexidade e pouca popularidade na pequena e média indústria. Neste artigo se compara os resultados da linguagem de programação LADDER e a linguagem SCL gerado mediante a ferramenta Simulink® PLC Coder de MA®, tomando como caso de estudo o cálculo de volume de um tanque. Finalmente, este trabalho demonstra que a ferramenta Simulink® PLC Coder apresenta uma alternativa de desenvolvimento mais eficiente.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Simulink PLC Coder]]></kwd>
<kwd lng="es"><![CDATA[LADDER]]></kwd>
<kwd lng="es"><![CDATA[Bloque de función FB]]></kwd>
<kwd lng="es"><![CDATA[PLC]]></kwd>
<kwd lng="en"><![CDATA[MATLAB]]></kwd>
<kwd lng="en"><![CDATA[Simulink PLC Coder]]></kwd>
<kwd lng="en"><![CDATA[LADDER]]></kwd>
<kwd lng="en"><![CDATA[Function Block FB]]></kwd>
<kwd lng="en"><![CDATA[PLC]]></kwd>
<kwd lng="pt"><![CDATA[MATLAB]]></kwd>
<kwd lng="pt"><![CDATA[Simulink PLC Coder]]></kwd>
<kwd lng="pt"><![CDATA[LADDER]]></kwd>
<kwd lng="pt"><![CDATA[Bloco de função FB]]></kwd>
<kwd lng="pt"><![CDATA[PLC]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  <font face="Verdana" size="2">      <p align="center"><font size="4"><b>Programaci&oacute;n de Controladores L&oacute;gicos (PLC) mediante Ladder y Lenguaje de Control Estructurado (SCL) en MATLAB</b></font></p>      <p align="center"><font size="3"><b>Programming logic controllers (PLC) using ladder and structured control language (SCL) in MATLAB</b></font></p>      <p align="center"><font size="3"><b>Programa&ccedil;&atilde;o de Controladores L&oacute;gicos (PLC) mediante Ladder e Linguagem de Controle Estruturado (SCL) em MATLAB</b></font> </p>      <p align="center">Heyder David P&aacute;ez-Logreira<sup>*</sup>, Ronald Zamora-Musa<sup>**</sup>, Jos&eacute; Boh&oacute;rquez-P&eacute;rez<sup>***</sup></p>       <P><sup>*</sup> Universidad de la Costa (Barranquilla - Atl&aacute;ntico, Colombia). <a href="mailto:hpaez@cuc.edu.co">hpaez@cuc.edu.co</a>.    <br> <sup>**</sup> Universidad de la Costa (Barranquilla - Atl&aacute;ntico, Colombia). <a href="mailto:rzamora2@cuc.edu.co">rzamora2@cuc.edu.co</a>.    <br> <sup>***</sup> Universidad de la Costa (Barranquilla - Atl&aacute;ntico, Colombia). <a href="mailto:jbohorper@gmail.com">jbohorper@gmail.com</a>.</p>     <p>C&oacute;mo citar este art&iacute;culo: &#91;1&#93; H P&aacute;ez-Logreira, R. Zamora-Musa & J. Boh&oacute;rquez-P&eacute;rez, "Programaci&oacute;n de Controladores L&oacute;gicos (PLC) mediante Ladder y Lenguaje de Control Estructurado (SCL) en MATLAB", Fac. Ing., vol. 24 (39), pp. 109– 119, Mayo-Ago. 2015.</p>      <p>Fecha de Recepci&oacute;n: 03 de Diciembre de 2014  Fecha de Aceptaci&oacute;n: 04 de Abril de 2015</p>  <hr>     ]]></body>
<body><![CDATA[<p><B>Resumen </b></p>      <p>Existen diferentes lenguajes de programaci&oacute;n de Controladores L&oacute;gicos Programables (PLC), el m&aacute;s com&uacute;n de ellos es el lenguaje de programaci&oacute;n gr&aacute;fico para aut&oacute;matas programables llamado LADDER. Sin embargo, el lenguaje LADDER no es amigable en programas que requieren de c&aacute;lculos de ecuaciones matem&aacute;ticas, por ejemplo, el c&aacute;lculo del volumen de un tanque en un control de nivel. Lenguajes alternativos como el Lenguaje de Control Estructurado (SCL) son menos estudiados dada su complejidad y poca popularidad en la peque&ntilde;a y mediana industria. En este art&iacute;culo se compara los resultados del lenguaje de programaci&oacute;n LADDER y el lenguaje SCL generado mediante la herramienta Simulink&reg; PLC Coder de MA&reg; tomando como caso de estudio el c&aacute;lculo de volumen de un tanque. Finalmente, este trabajo demuestra que la herramienta Simulink&reg; PLC Coder presenta una alternativa de desarrollo m&aacute;s eficiente. </p>      <p><B>Palabras Claves</B>: MATLAB, Simulink PLC Coder, LADDER, Bloque de funci&oacute;n FB, PLC. </p> <hr>      <p><B>Abstract </b></p>      <p>There are different programming languages for Programmable Logic Controllers (PLC), the most common of these is the graphical programming language called LADDER. However, LADDER is not friendly in programs requiring calculations of mathematical equations, for example, to calculate the volume of a tank on level control situations. Alternative languages such as Structured Control Language (SCL) are less studied because of their complexity and unpopular in small and medium industry. In this article, the results LADDER programming language and language are compared with SCL generated by Simulink PLC Coder MATLAB tool taking as a case study the calculating the volume of a tank. Finally, this work shows that the Simulink PLC Coder tool presents an alternative to more efficient development.</p>      <p><B>Keywords:</B> MATLAB, Simulink PLC Coder, LADDER, Function Block FB, PLC.</p> <hr>      <p><B>Resumo </b></p>      <p>Existem diferentes linguagens de programa&ccedil;&atilde;o de Controladores L&oacute;gicos Program&aacute;veis (PLC), o mais comum deles &eacute; a linguagem de programa&ccedil;&atilde;o gr&aacute;fica para aut&ocirc;matos program&aacute;veis chamada LADDER. Por&eacute;m, a linguagem LADDER n&atilde;o &eacute; amig&aacute;vel em programas que requerem de c&aacute;lculos de equa&ccedil;&otilde;es matem&aacute;ticas, por exemplo, o c&aacute;lculo do volume de um tanque em um controle de n&iacute;vel. Linguagens alternativas como a Linguagem de Controle Estruturado (SCL) s&atilde;o menos estudadas devido a sua complexidade e pouca popularidade na pequena e m&eacute;dia ind&uacute;stria. Neste artigo se compara os resultados da linguagem de programa&ccedil;&atilde;o LADDER e a linguagem SCL gerado mediante a ferramenta Simulink&reg; PLC Coder de MA&reg;, tomando como caso de estudo o c&aacute;lculo de volume de um tanque. Finalmente, este trabalho demonstra que a ferramenta Simulink&reg; PLC Coder apresenta uma alternativa de desenvolvimento mais eficiente.</p>      <p><B>Palavras Chave</B>: MATLAB, Simulink PLC Coder, LADDER, Bloco de fun&ccedil;&atilde;o FB, PLC. </p> <hr>      <p align="center"><font size="3"><b>I. Introducci&oacute;n</b></font></p>      ]]></body>
<body><![CDATA[<p>En la actualidad existen diferentes lenguajes de programaci&oacute;n que permiten a los programadores de PLC (<I>Programmable Logic Controller</I>) &#91;2&#93; expresar y ejecutar la l&oacute;gica que resuelve una problem&aacute;tica o desarrolle un c&aacute;lculo matem&aacute;tico correspondiente a una planta o proceso industrial. Lenguajes como LADDER (Lenguaje de contactos o en escalera), AWL (del alem&aacute;n <I>Anweisungliste </I>que significa lista de instrucciones), CFC (de las siglas en ingl&eacute;s <I>Continuous Function Chart</I>) y SCL (de las siglas en ingl&eacute;s <I>Structured Control Language</I>) son imprescindibles a la hora de realizar operaciones matem&aacute;ticas que se requieran en un proceso. </p>      <p>El c&aacute;lculo matem&aacute;tico en un proceso industrial permite evaluar y medir variables indirectas del proceso. En los diferentes lenguajes de programaci&oacute;n de PLC, es posible insertar un c&aacute;lculo matem&aacute;tico. Sin embargo, esta tarea puede resultar compleja seg&uacute;n el n&uacute;mero de variables de la ecuaci&oacute;n y las capacidades del lenguaje.</p>      <p>Los bloques de funci&oacute;n, o FB por las siglas en ingl&eacute;s para <I>Function Blocks, </I>juegan un papel importante en el control y programaci&oacute;n de estos procesos industriales &#91;1&#93;, por ejemplo, en el c&aacute;lculo del volumen de l&iacute;quido en un tanque.</p>      <p>El lenguaje empleado puede variar la dificultad de inserci&oacute;n e interpretaci&oacute;n de ecuaciones matem&aacute;ticas en los Bloques del programa. Insertar una ecuaci&oacute;n matem&aacute;tica en un proceso empleando un software de c&aacute;lculo matem&aacute;tico, por ejemplo MATLAB&reg;, facilita la programaci&oacute;n de un bloque de funci&oacute;n FB para el c&aacute;lculo del volumen y nivel de un tanque.</p>      <p>La herramienta <I>Simulink&reg; PLC Coder,</I> incluida en el paquete de instalaci&oacute;n del software de c&aacute;lculo matem&aacute;tico MATLAB&reg;, permite exportar un bloque de funci&oacute;n matem&aacute;tico hecho en SIMULINK&reg; y programado en MA&reg; a un lenguaje de programaci&oacute;n con el est&aacute;ndar internacional IEC 61131 entendible por los PLC.</p>      <p>En este art&iacute;culo se propone utilizar la herramienta Simulink&reg; PLC Coder, para dise&ntilde;ar un bloque de funci&oacute;n FB que calcule el volumen y nivel de un tanque. Se realiza la comparaci&oacute;n con un bloque de funci&oacute;n FB dise&ntilde;ado en Lenguaje LADDER para el mismo escenario. La programaci&oacute;n y ejecuci&oacute;n se realiza en el software SIMATIC Manager, sobre un PLC S7-400 (CPU 416-2 DP), de la marca SIEMENS.</p>      <p>El art&iacute;culo est&aacute; organizado de la siguiente manera: en la siguiente secci&oacute;n de desarrolla una revisi&oacute;n del estado de la literatura incluyendo trabajos relacionados, a continuaci&oacute;n en la secci&oacute;n de m&eacute;todos y materiales se especifica los pasos del desarrollo e implementaci&oacute;n de los programas que permiten comparar el lenguaje Ladder y SCL. Posteriormente se presentan los resultados obtenidos y se realiza el an&aacute;lisis de los mismos, y finalmente en la &uacute;ltima secci&oacute;n se presentan las conclusiones obtenida de la investigaci&oacute;n planteada.</p>      <p align="center"><font size="3"><b>II. Dise&ntilde;o de bloques de funci&oacute;n FB para programaci&oacute;n de PLC</b></font></p>      <p>Los bloques de funci&oacute;n FB son esenciales y son usados en los PLC de la marca SIEMENS. Estos tienen la ventaja de ser invocados desde el programa principal OB. Los datos de las variables de los FB se van guardando en posiciones de memoria llamadas DB, con el fin de que estos datos puedan ser usados posteriormente en el programa principal. Los FB tienen un par&aacute;metro llamado STATIC; cuando se llama a un FB, se genera una instancia DB que acompa&ntilde;a a esta llamada del FB. Dentro del DB est&aacute;n todos los par&aacute;metros est&aacute;ticos del FB, disponibles en cualquier momento para otro bloque en el programa, es decir se guardan todos los valores de las variables contenidas en STATIC autom&aacute;ticamente en el FB.</p>      <p>El uso de bloques de funci&oacute;n FB resulta conveniente en el control y programaci&oacute;n de un proceso industrial. Los Bloques de Funci&oacute;n FB permiten ser invocados simult&aacute;neamente en un mismo programa con una DB distinta para cada llamado. Garantizando que cada FB tenga su propia instancia de DB y obtener datos independientes en cada bloque insertado en el programa principal OB.</p>      ]]></body>
<body><![CDATA[<p>Los bloques de funci&oacute;n son definidos por el est&aacute;ndar internacional IEC 61499 &#91;3, 4&#93;, el cual ha sido desarrollado conjuntamente con el est&aacute;ndar IEC 61131-3 que define aspectos de los FB &#91;5&#93;. Existen Programaci&oacute;n de Controladores L&oacute;gicos (PLC) mediante Ladder y Lenguaje de Control Estructurado (SCL) en MATLAB aplicaciones comunes usando FB, como el dise&ntilde;o de sistemas distribuidos, control de nivel en tanques de un proceso, sistemas de control industrial basado en FB &#91;6&#93;, dise&ntilde;o de prototipos en diferentes niveles de control &#91;7, 8&#93;, y arquitecturas de desarrollo de soporte a ingenier&iacute;a usando FB &#91;9&#93;.</p>      <p><B><I>A. Est&aacute;ndar Internacional IEC 61131-3 </I></b></p>      <p>El est&aacute;ndar internacional IEC 61131 es una colecci&oacute;n completa de est&aacute;ndares referentes a controladores programables y sus perif&eacute;ricos asociados &#91;10&#93;. Este est&aacute;ndar internacional es utilizado en los lenguajes de programaci&oacute;n de controladores l&oacute;gicos programables (PLC).</p>      <p>El est&aacute;ndar 61131-3 define los bloques de funci&oacute;n, los cuales proveen un mejor dise&ntilde;o, flexibilidad y eficiencia en los proyectos de programaci&oacute;n de PLC &#91;10&#93;. Adicionalmente, define la modularidad de los FB logrando una estructura que genera un contexto m&aacute;s simple y tambi&eacute;n la habilidad de integrar escenarios tipo planta (como el de esta investigaci&oacute;n) y modelaje en una sola ejecuci&oacute;n y marco de desarrollo &#91;11&#93;.</p>      <p>Sin embargo, en los escenarios tipo planta se presentan algunas dificultades cuando se programa con este tipo de herramientas como la falta de relojes globales, ausencia de estados globales y dificultad para sincronizar procesos &#91;12&#93;; existen herramientas de dise&ntilde;o que pueden mejorar sustancialmente los inconvenientes descritos &#91;13&#93; como por ejemplo MATLAB&reg;.</p>				      <p align="center"><font size="3"><b>III. MATLAB&reg; y SIMULINK&reg; PLC CODER</b></font></p>      <p>MATLAB&reg; es uno de los software de c&aacute;lculo matem&aacute;tico m&aacute;s utilizado en las industrias a nivel global, teniendo en cuenta que con su uso se facilita el c&aacute;lculo de sistemas complejos y notaciones matem&aacute;ticas indispensables en un proceso industrial.</p>      <p>Simulink&reg; PLC Coder, es una herramienta incluida en el paquete de instalaci&oacute;n del software de c&aacute;lculo matem&aacute;tico MATLAB&reg; la cual permite generar c&oacute;digo de texto estructurado compatible con el est&aacute;ndar internacional IEC-61131, a partir de modelos de Simulink&reg;. Este software aporta el enfoque de dise&ntilde;o basado en modelos en el dominio y desarrollo del PLC permitiendo que los programadores puedan dedicar m&aacute;s tiempo a los algoritmos y modelos finos de ajuste a trav&eacute;s de la creaci&oacute;n de prototipos y la experimentaci&oacute;n r&aacute;pida de sistemas complejos, ahorrando tiempo en la codificaci&oacute;n de estos sistemas en el PLC &#91;14&#93;.</p>     <p>Como se mencion&oacute; anteriormente Simulink&reg; PLC Coder posee herramientas modernas que pueden generar de manera sencilla c&oacute;digo textual o generar c&oacute;digo con el est&aacute;ndar IEC 61131 compatible para la programaci&oacute;n de PLC &#91;15&#93;. Esta herramienta y m&eacute;todo de generar c&oacute;digo compatible con los PLC es de gran utilidad a la hora de enfrentarse a sistemas complejos con notaciones matem&aacute;ticas que involucren uno o m&aacute;s variables de un sistema de control industrial.</p>      <p><B><I>A. M&eacute;todo de transformaci&oacute;n del modelo</I></b></p>      ]]></body>
<body><![CDATA[<p>La sintaxis y sem&aacute;ntica de MATLAB&reg; y Simu&reg; asociados a los bloques de funci&oacute;n debe entenderse de manera formal, para lo cual se realizan algunas consideraciones entre ambas aplicaciones antes de la transformaci&oacute;n de los modelos. El comportamiento de los modelos debe ser el mismo aun frente a cambios de plataforma, como el PLC, esto garantiza la equivalencia sem&aacute;ntica y un mapeo formal entre los dos idiomas, que se establece al crear un bloque de funci&oacute;n asociado a una funci&oacute;n descrita en el lenguaje de programaci&oacute;n del software de c&aacute;lculo matem&aacute;tico MATLAB&reg; &#91;10&#93;.</p>      <p>Simulink&reg; y los bloques de funci&oacute;n son objetos que utilizan una notaci&oacute;n matem&aacute;tica para modelar un sistema de control autom&aacute;tico. El m&eacute;todo de transformaci&oacute;n del modelo garantiza la equivalencia entre ambos despu&eacute;s de relacionar una notaci&oacute;n matem&aacute;tica hacia un objeto o bloque de funci&oacute;n insertado en Simulink&reg;.</p>      <p>Para reducir el conflicto natural de ejecuci&oacute;n o transformaci&oacute;n entre dos modelos, una de las mejores opciones es la implementaci&oacute;n de bloques de funci&oacute;n modelados con escenarios tipo planta a trav&eacute;s de Simulink&reg; &#91;16, 17&#93;.</p>      <p>En la <a href="#f1">Fig. 1</a> &#91;10&#93;, se muestra un m&eacute;todo de transformaci&oacute;n de equivalencia sem&aacute;ntica del modelo FB generado con un modelo original Simulink&reg;; el bloque de funci&oacute;n se conforma de N+1 subsistemas internos en &eacute;l.</p>     <p align="center"><a name="f1"></a><img src="img/revistas/rfing/v24n39/v24n39a10f1.jpg"></p>      <p><B><I>B. Lenguaje de control estructurado SCL </I></b></p>      <p>SCL es un lenguaje de programaci&oacute;n de alto nivel disponible en SIMATIC y definido por la norma IEC 1331-3, este se programa en PASCAL y crea una fuente con la extensi&oacute;n .scl, la cual al ser compilada puede ser utilizada para la creaci&oacute;n del programa principal (OB) y los bloques de funci&oacute;n (FB) o bloques de funci&oacute;n sin variables est&aacute;ticas (FC) &#91;17&#93;.</p>      <p>El lenguaje SCL es un lenguaje de programaci&oacute;n de alto nivel que permite: el uso de expresiones matem&aacute;ticas complejas, f&oacute;rmulas, tipos de datos definidos por el usuario, manejo de tablas, arreglos, matrices, programaci&oacute;n de bucles y flujos condicionados, y tambi&eacute;n es apropiado para gestionar gran cantidad de datos.</p>      <p>Los bloques de funci&oacute;n FB tienen un DB de instancia (Bloque de Datos) asociado &uacute;nicamente al bloque FB. Por otro lado, los bloques de funci&oacute;n FC est&aacute;n asociados al DB General, es decir, los datos empleados y generados por un bloque FC son almacenados en el DB General, y est&aacute;n disponibles para todo bloque del programa.</p>     <p>Este escenario motiva a realizar una evaluaci&oacute;n de los resultados de programaci&oacute;n en alto nivel empleando lenguaje SCL y el uso del tradicional lenguaje Ladder en la programaci&oacute;n de un PLC.</p>      ]]></body>
<body><![CDATA[<p align="center"><font size="3"><b>IV. M&eacute;todos y materiales </b></font></p>      <p><B></b>Se presenta un problema convencional en los procesos industriales para comparar los resultados obtenidos en las herramientas SCL Siemens y PLC Coder de MATLAB&reg;.</p>      <p>El sistema consta de un tanque de almacenamiento y el problema corresponde a la medici&oacute;n indirecta del volumen de agua contenido en el tanque a partir de la medici&oacute;n de nivel.</p>     <p align="center"><a name="f2"></a><img src="img/revistas/rfing/v24n39/v24n39a10f2.jpg"></p>       <p>El tanque se divide en tres secciones seg&uacute;n la forma geom&eacute;trica de cada una de estas. Los casquetes superior e inferior del tanque poseen forma de media esfera, con un metro (1m) de radio, la secci&oacute;n central del tanque es de forma cil&iacute;ndrica con 6 metros de altura y di&aacute;metro de 2 metros.</p>      <p>El sensor de nivel tiene un rango de medida entre 0 y 15 metros y una escala de voltaje de salida de -10 Voltios a 10 Voltios. El sensor est&aacute; conectado a un PLC SIEMENS S7-400 con CPU referencia 416-2 DP.</p>      <p>El problema es analizado y modelado matem&aacute;ticamente seg&uacute;n estas especificaciones y su soluci&oacute;n es dise&ntilde;ada empleando Bloques de Funci&oacute;n (FB). En primer lugar, se generan los Bloques FB con programaci&oacute;n tradicional en Lenguaje Ladder, y segundo, mediante la herramienta Simulink&reg; PLC Coder de MA&reg;.</p>      <p><B><I>A. An&aacute;lisis y Modelamiento matem&aacute;tico del problema </I></b></p>      <p><B></b>Se debe describir la relaci&oacute;n entre la altura total del tanque, el rango de medida del sensor y el rango de la entrada anal&oacute;gica del PLC.</p>      <p>La ecuaci&oacute;n (<a href="#ec1">1</a>) define matem&aacute;ticamente la medida de nivel (altura) de agua en el tanque.</p>     ]]></body>
<body><![CDATA[<p align="center"><a name="ec1"></a><img src="img/revistas/rfing/v24n39/v24n39a10ec1.jpg"></p>      <p>Donde,</p>      <p>V<Sub>s</Sub>: Valor medido por el Sensor    <br> <Sup>V</Sup>min: Voltaje m&iacute;nimo de entrada PLC    <br> V<Sub>max </Sub>: Voltaje M&aacute;ximo de entrada PLC    <br>  h<Sub>max</Sub> : Altura m&aacute;xima del rango del Sensor    <br> <Sup>h</Sup>min: Altura m&iacute;nima del rango del Sensor</p>       <p>Los valores de V<Sub>min</Sub>, V, h y h<Sub>min </Sub>est&aacute;n especificados en los datos t&eacute;cnicos del PLC SIEMENS S7-400 y del Sensor de Nivel. El rango de valores cuantificados por la entrada anal&oacute;gica del PLC inicia en -27648.0 hasta 27648.0, y el rango del sensor va de 0 a 15 metros.</p>      <p>La ecuaci&oacute;n (<a href="#ec2">2</a>) se obtiene al reemplazar estos valores en (<a href="#ec2">1</a>): </p>     <p align="center"><a name="ec2"></a><img src="img/revistas/rfing/v24n39/v24n39a10ec2.jpg"></p>      ]]></body>
<body><![CDATA[<p>Parametrizada la medici&oacute;n de nivel o altura del agua en el tanque, es necesario realizar el c&aacute;lculo indirecto del volumen de agua contenido en &eacute;l. Para lo cual se describe matem&aacute;ticamente el volumen del tanque de acuerdo a las secciones que lo conforman: casquete inferior, secci&oacute;n central y casquete superior.</p>      <p>Empleando las ecuaciones de volumen de un cilindro (<a href="#ec3">3</a>) y una esfera (<a href="ec3">4</a>) se modela el volumen en cada secci&oacute;n con respecto a la altura.</p>      <p align="center"><a name="ec3"></a><img src="img/revistas/rfing/v24n39/v24n39a10ec3.jpg"></p>      <p>El volumen total del tanque est&aacute; definido por la suma del volumen en las tres secciones: V<Sub>1 </Sub>para el casquete inferior (<a href="#ec4">5</a>), V<Sub>2 </Sub>para la secci&oacute;n central (<a href="ec4">6</a>) y V<Sub>3 </Sub>para el casquete superior (<a href="ec4">7</a>). Cada ecuaci&oacute;n es relativa a la altura total del tanque y las secciones inferiores y los t&eacute;rminos conocidos como el radio han sido reemplazados.</p>     <p align="center"><a name="ec4"></a><img src="img/revistas/rfing/v24n39/v24n39a10ec4.jpg"></p>      <p><B><I>B. Implementaci&oacute;n y Pruebas </I></b></p>      <p>La implementaci&oacute;n de la soluci&oacute;n se divide en dos: la aplicaci&oacute;n del modelo matem&aacute;tico empleando lenguaje Ladder en el software SIMATIC Manager de Siemens y en segundo lugar, la aplicaci&oacute;n en Simulink&reg; PLC Coder de MA&reg; para la generaci&oacute;n de un bloque FB que se ejecutar&aacute; en SIMATIC Manager.</p>     <p>Como alternativa, la librer&iacute;a de herramientas de Siemens provee el bloque FC105 para escalar valores e ingreso del modelamiento matem&aacute;tico de la <a href="#ec1">ecuaci&oacute;n (<a href="#ec1">1</a>) y (<a href="#ec2">2</a>).</p>      <p>Para las pruebas, se emplea la ejecuci&oacute;n de los programas obtenidos en el software S7-PLCSIM de Siemens. S7-PLCSIM permite medir el tama&ntilde;o en l&iacute;neas de ejecuci&oacute;n de cada uno de los programas, el uso de recursos y otros datos que permiten identificar la soluci&oacute;n m&aacute;s eficiente en la generaci&oacute;n de programas de PLC.</p>      <p>La comparaci&oacute;n de los resultados se realiza empleando como indicadores el consumo de memoria de carga (datos), memoria de trabajo (programa) requerida, y la longitud de c&oacute;digo de acuerdo al est&aacute;ndar MC7 &#91;20&#93;.</p>      ]]></body>
<body><![CDATA[<p align="center"><font size="3"><b>V. Resultados y an&aacute;lisis</b></font></p>      <p><I><b> A. Bloque de Funci&oacute;n FB mediante lenguaje LADDER</b></I></p>      <p>La creaci&oacute;n de un bloque FB empleando Lenguaje LADDER es muy com&uacute;n en los programadores de controladores l&oacute;gicos programables.</p>      <p>El c&aacute;lculo de la funci&oacute;n representada por las ecuaciones (<a href="#ec1">1</a>) y (<a href="#ec2">2</a>) se implementa mediante el bloque de funci&oacute;n FC105 disponible en la librer&iacute;a de SIMATIC Manager. El bloque FC105 es ilustrado en la <a href="#f3">Figura 3</a>.</p>      <p align="center"><a name="f3"></a><img src="img/revistas/rfing/v24n39/v24n39a10f3.jpg"></p>      <p>Posteriormente se realiza la implementaci&oacute;n de las <a href="#ec4">ecuaciones (5)</a>, (<a href="#ec4">6</a>) y (<a href="#ec4">7</a>), las cuales se encargan de calcular el volumen del tanque mostrado en la <a href="#f3">Figura 3</a> se emplean bloques de operaciones matem&aacute;ticas disponibles en SIMATIC Manager, como sumadores (ADD_R), restadores (SUB_R), multiplicadores (MUL_R), y comparadores (COMP ==R, COMP &gt;=R), de n&uacute;meros reales, entre otros.</p>      <p>Los bloques de adici&oacute;n, substracci&oacute;n y multiplicaci&oacute;n tienen como objetivo realizar las operaciones de cada uno de los t&eacute;rminos de las <a href="#ec4">ecuaciones (5)</a>, (<a href="#ec4">6</a>) y (<a href="#ec4">7</a>). Los bloques comparadores se emplean para identificar en que secci&oacute;n del tanque se encuentra la lectura del sensor (casquete inferior, secci&oacute;n central o casquete superior) y qu&eacute; ecuaciones deben aplicarse y sumarse.</p>      <p>La totalidad del c&oacute;digo Ladder es almacenado en un bloque de funci&oacute;n FB llamado FB2. En total el bloque FB2 se compone de 20 Bloques FB y 11 segmentos de programaci&oacute;n en Ladder. En la <a href="#f4">Figura 4</a> se muestra el bloque de funci&oacute;n FB2 insertado en el programa principal OB1.</p>      <p align="center"><a name="f4"></a><img src="img/revistas/rfing/v24n39/v24n39a10f4.jpg"></p>      <p><B><I>B. Bloque de Funci&oacute;n FB implementado con Simulink&reg; PLC Coder </I></b></p>      ]]></body>
<body><![CDATA[<p>La implementaci&oacute;n de este bloque de funci&oacute;n FB se realiza con el software de c&aacute;lculo matem&aacute;tico MATLAB&reg; y la herramienta de simulaci&oacute;n Simulink&reg;. Simu&reg; permite emular el comportamiento del bloque antes de exportarlo con la herramienta ;&reg;reg;ink&reg; PLC Coder a un lenguaje de programaci&oacute;n entendible por el software SIMATIC de SIEMENS, para el caso, el lenguaje IEC 61131-3.</p>      <p>A continuaci&oacute;n se presenta el algoritmo que representa el c&oacute;digo implementado en MATLAB&reg;.</p>      <p align="center"><a name="alg1"></a><img src="img/revistas/rfing/v24n39/v24n39a10alg1.jpg"></p>      <p>El algoritmo implementado es asignado a un Bloque de Funci&oacute;n en Simulink®, el cual permitir&aacute; su simulaci&oacute;n y validaci&oacute;n antes de ser exportado.</p>     <p align="center"><a name="f5"></a><img src="img/revistas/rfing/v24n39/v24n39a10f5.jpg"></p>      <p>Empleando la herramienta Simulink® PLC Coder se exporta la versi&oacute;n en lenguaje IEC 61131-3 para el algoritmo y bloque de funci&oacute;n creado.</p>     <p>El c&oacute;digo generado desde Simulink® es implementado en el PLC creando un bloque de funci&oacute;n FB1 (<a href="#f6">Figura 6</a>) e importando el c&oacute;digo IEC 61131-3 obtenido.</p>     <p align="center"><a name="f6"></a><img src="img/revistas/rfing/v24n39/v24n39a10f6.jpg"></p>      <p><i><b>C. Pruebas y validaci&oacute;n</b></i></p>      <p>Para la prueba de los bloques de funci&oacute;n FB, se emple&oacute; un proyecto en SIMATIC Manager, con una funci&oacute;n principal OB que invoca a los dos bloques FB1 y FB2. Al ejecutar el programa en la herramienta de simulaci&oacute;n S7-PLCSIM se permite la visualizaci&oacute;n de los resultados de cada bloque. La <a href="#t1">tabla 1</a> agrupa los resultados obtenidos para los dos bloques.</p>     ]]></body>
<body><![CDATA[<p align="center"><a name="t1"></a><img src="img/revistas/rfing/v24n39/v24n39a10t1.jpg"></p>      <p>Se observa que en un nivel de precisi&oacute;n de 2 cifras, no existen diferencias entre los valores obtenidos por el bloque FB1 y FB2.</p>      <p><B><I>D. Comparaci&oacute;n de los resultados </I></b></p>      <p>Una vez implementado los dos c&oacute;digos (Ladder e IEC 61131-3) en SIMATIC Manager, es posible observar desde las propiedades de cada bloque de funci&oacute;n el uso de memoria de carga (datos) y memoria de trabajo (programa) requerida. Adem&aacute;s el par&aacute;metro MC7 indica la longitud del c&oacute;digo. La <a href="#t2">Tabla 2</a> presenta los resultados obtenidos comparaci&oacute;n de uso de memorias de los bloques Fb.</p>     <p align="center"><a name="t2"></a><img src="img/revistas/rfing/v24n39/v24n39a10t2.jpg"></p>      <p>El bloque FB1 realizado con MATLAB® y la herramienta Simulink® PLC Coder, genera un c&oacute;digo IEC 61131-3 que emplea menos recursos que el bloque de Funci&oacute;n FB2 implementado con Ladder.</p>      <p>La comparaci&oacute;n relativa de estos resultados arroja la siguiente informaci&oacute;n.</p>      <p>La <a href="#t3">Tabla 3</a> permite identificar que la implementaci&oacute;n de un programa en Simulink® PLC Coder y el c&oacute;digo IEC 61131-3 generado resulta un 25% m&aacute;s eficiente que la soluci&oacute;n del mismo problema mediante Lenguaje Ladder.</p>      <p align="center"><a name="t3"></a><img src="img/revistas/rfing/v24n39/v24n39a10t3.jpg"></p>       <p align="center"><font size="3"><b>VI. Conclusiones </b></font></p>      ]]></body>
<body><![CDATA[<p>En este art&iacute;culo se presenta la creaci&oacute;n de un bloque de funci&oacute;n FB que calcula el volumen y nivel de un tanque empleando dos herramientas de programaci&oacute;n, Lenguaje LADDER y Simulink&reg; PLC Coder de MATLAB&reg;. Este &uacute;ltimo, facilita la inserci&oacute;n de una notaci&oacute;n matem&aacute;tica que represente un proceso industrial.</p>      <p>El software de c&aacute;lculo matem&aacute;tico MATLAB&reg; y la herramienta Simulink&reg; PLC Coder, constituyen una soluci&oacute;n adecuada para el modelamiento y c&aacute;lculo de variables en procesos industriales controlados por Aut&oacute;matas Programables.</p>      <p>La generaci&oacute;n de c&oacute;digo IEC 61131-3 mediante Simulink&reg; PLC Coder permite la programaci&oacute;n de un Aut&oacute;mata Programable o PLC, y adem&aacute;s, reduce el tiempo de desarrollo de programaci&oacute;n, el tama&ntilde;o de memoria de carga, de memoria de trabajo y la longitud de c&oacute;digo MC7 del programa.</p>      <p>Como trabajo futuro se sugiere llevar a cabo implementaciones de problemas y modelos matem&aacute;ticos de procesos industriales m&aacute;s complejos que permitan realizar otro tipo de comparaciones con Simulink&reg; PLC Coder y as&iacute; llegar a resultados globales.</p> <hr>      <p align="center"><font size="3"><b>Referencias bibliogr&aacute;ficas </b></font></p>      <!-- ref --><p>&#91;1&#93; 	Y.-C. Wu y C.-F. Fan, &laquo;Automatic test case generation for structural testing of function block diagrams&raquo;, Inf. Softw. Technol., vol. 56 (10), pp. 1360-1376, oct. 2014.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000118&pid=S0121-1129201500020001000001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;2&#93;	A. Mader, &laquo;A Classification of PLC Models and Applications&raquo;, en Discrete Event Systems, vol. 569, R. Boel y G. Stremersch, Eds. Springer US, 2000, pp. 239-246.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000120&pid=S0121-1129201500020001000002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;3&#93; 	L. Wang, G. Adamson, M. Holm, y P. Moore, &laquo;A review of function blocks for process planning and control of manufacturing equipment&raquo;, J. Manuf. Syst., vol. 31 (3), pp. 269-279, 2012.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000122&pid=S0121-1129201500020001000003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;4&#93; 	International Electrotechnical Commission, &laquo;IEC 61499-1: Function Blocks -Part 1 Architecture&raquo;, Int. Stand. First Ed. Geneva, vol. 1, 2005.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000124&pid=S0121-1129201500020001000004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;5&#93; 	I. E. Commission, &laquo;Programmable Controllers -Part 3: Programming languages&raquo;, vol. 3, 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=000126&pid=S0121-1129201500020001000005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;6&#93; 	N. V&ouml;lker y B. J. Kr&auml;mer, &laquo;Automated verification of function block-based industrial control systems&raquo;, Sci. Comput. Program., vol. 42 (1), pp. 101-113, 2002.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000128&pid=S0121-1129201500020001000006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;7&#93; 	C. Yuan y P. Ferreira, &laquo;An integrated rapid prototyping environment for reconfigurable manufacturing systems&raquo;, en ASME 2003 International Mechanical Engineering Congress and Exposition, 2003, pp. 737-744.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000130&pid=S0121-1129201500020001000007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;8&#93; 	C. Yuan y P. Ferreira, &laquo;An integrated environment for the design and control of deadlock -free flexible manufacturing cells&raquo;, en ASME 2004 International Mechanical Engineering Congress and Exposition, 2004, pp. 471-481.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000132&pid=S0121-1129201500020001000008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;9&#93; 	K. Thramboulidis y C. Tranoris, &laquo;An architecture for the development of function block oriented engineering support systems&raquo;, en Computational Intelligence in Robotics and Automation, 2001. Proceedings 2001 IEEE International Symposium on, 2001, pp. 536-542.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000134&pid=S0121-1129201500020001000009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;10&#93; C. Yang y V. Vyatkin, &laquo;Transformation of Simulink models to IEC 61499 Function Blocks for verification of distributed control systems&raquo;, Control Eng. Pract., vol. 20 (12), pp. 1259-1269, dic. 2012.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000136&pid=S0121-1129201500020001000010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;11&#93; V. Vyatkin, IEC 61499 function blocks for embedded and distributed control systems design. ISA-Instrumentation, Systems, and Automation Society, 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=000138&pid=S0121-1129201500020001000011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;12&#93; A. D. Kshemkalyani y M. Singhal, Distributed computing: principles, algorithms, and systems. Cambridge University Press, 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=000140&pid=S0121-1129201500020001000012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;13&#93; J. Peltola, J. Christensen, S. Sierla, y K. Koskinen, &laquo;A migration path to IEC 61499 for the batch process industry&raquo;, en Industrial Informatics, 2007 5th IEEE International Conference on, 2007, vol. 2, pp. 811-816.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000142&pid=S0121-1129201500020001000013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;14&#93; Math Works, &laquo;Simulink PLC Coder&raquo;. &#91;En l&iacute;nea&#93;. Disponible en: <a href="http://www.mathworks.com/products/sl-plc-coder/" target="_blank">http://www.mathworks.com/products/sl-plc-coder/</a>. &#91;Accedido: 02-dic 2014&#93;    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000144&pid=S0121-1129201500020001000014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->. </p>     <!-- ref --><p>&#91;15&#93; M. Bonf&egrave;, C. Fantuzzi, y C. Secchi, &laquo;Design patterns for model-based automation software design and implementation&raquo;, Control Eng. Pract., vol. 21 (11), pp. 1608-1619, 2013.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000146&pid=S0121-1129201500020001000015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;16&#93; C. Yang y V. Vyatkin, &laquo;Model transformation between MATLAB simulink and Function Blocks&raquo;, en Industrial Informatics (INDIN), 2010 8th IEEE International Conference on, 2010, pp. 1130-1135.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000148&pid=S0121-1129201500020001000016&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;17&#93; C. H. Yang y V. Vyatkin, &laquo;Automated Model Transformation between MATLAB Simulink/ Stateflow and Function Blocks&raquo;, en 13th IFAC Symposium on Information and Control in Manufacturing (INCOM'09), Moscow, 2009, vol. 13, pp. 205-210.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000150&pid=S0121-1129201500020001000017&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;18&#93; Siemens, &laquo;Structured Control Language (SCL) for S7-300/S7-400 Programming&raquo;. &#91;En l&iacute;nea&#93;. Disponible en: <a href="https://cache.automation.siemens.com/dnl/Dc1NzU5OQAA_1137188_HB/SCLV4_e.pdf" target="_blank">https://cache.automation.siemens.com/dnl/Dc1NzU5OQAA_1137188_HB/SCLV4_e.pdf</a>. &#91;Accedido: 02-dic-2014&#93;    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000152&pid=S0121-1129201500020001000018&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->.</p>     <!-- ref --><p>&#91;19&#93; L. R. Pe&ntilde;alver, D. G. Arroniz, A. R. Canales, M. J. Buend&iacute;a, y J. M. Mart&iacute;nez, &laquo;Sistema de automatizaci&oacute;n y telecontrol mediante microcontroladores para la gesti&oacute;n del riego de cultivos en maceta con lis&iacute;metros de pesada.&raquo;, presentado en VII Congreso Ib&eacute;rico de Agroingenier&iacute;a y Ciencias Hort&iacute;colas, Madrid, 2013, p. 52.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000154&pid=S0121-1129201500020001000019&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;20&#93; H. Berger, Automating with SIMATIC: Controllers, Software, Programming, Data. John Wiley &amp; Sons, 2012.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000156&pid=S0121-1129201500020001000020&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>  </font>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Wu]]></surname>
<given-names><![CDATA[Y.-C.]]></given-names>
</name>
<name>
<surname><![CDATA[Fan]]></surname>
<given-names><![CDATA[C.-F.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Automatic test case generation for structural testing of function block diagrams]]></article-title>
<source><![CDATA[Inf. Softw. Technol]]></source>
<year>2014</year>
<volume>56</volume>
<numero>10</numero>
<issue>10</issue>
<page-range>1360-1376</page-range></nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mader]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A Classification of PLC Models and Applications]]></article-title>
<person-group person-group-type="editor">
<name>
<surname><![CDATA[Boel]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
<name>
<surname><![CDATA[Stremersch]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
</person-group>
<source><![CDATA[Discrete Event Systems]]></source>
<year>2000</year>
<volume>569</volume>
<page-range>239-246</page-range><publisher-name><![CDATA[Springer US]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Wang]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
<name>
<surname><![CDATA[Adamson]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
<name>
<surname><![CDATA[Holm]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Moore]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A review of function blocks for process planning and control of manufacturing equipment]]></article-title>
<source><![CDATA[J. Manuf. Syst]]></source>
<year>2012</year>
<volume>31</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>269-279</page-range></nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="journal">
<collab>International Electrotechnical Commission</collab>
<article-title xml:lang="en"><![CDATA[IEC 61499-1: Function Blocks -Part 1 Architecture]]></article-title>
<source><![CDATA[Int. Stand. First]]></source>
<year>2005</year>
<volume>1</volume>
<publisher-loc><![CDATA[Geneva ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Commission]]></surname>
<given-names><![CDATA[I. E.]]></given-names>
</name>
</person-group>
<source><![CDATA[Programmable Controllers -Part 3: Programming languages]]></source>
<year>2003</year>
<volume>3</volume>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Völker]]></surname>
<given-names><![CDATA[N.]]></given-names>
</name>
<name>
<surname><![CDATA[Krämer]]></surname>
<given-names><![CDATA[B. J.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Automated verification of function block-based industrial control systems]]></article-title>
<source><![CDATA[Sci. Comput. Program]]></source>
<year>2002</year>
<volume>42</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>101-113</page-range></nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Yuan]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Ferreira]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
</person-group>
<source><![CDATA[An integrated rapid prototyping environment for reconfigurable manufacturing systems]]></source>
<year></year>
<conf-name><![CDATA[ ASME 2003 International Mechanical Engineering Congress and Exposition]]></conf-name>
<conf-date>2003</conf-date>
<conf-loc> </conf-loc>
<page-range>737-744</page-range></nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Yuan]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Ferreira]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
</person-group>
<source><![CDATA[An integrated environment for the design and control of deadlock -free flexible manufacturing cells]]></source>
<year></year>
<conf-name><![CDATA[ ASME 2004 International Mechanical Engineering Congress and Exposition]]></conf-name>
<conf-date>2004</conf-date>
<conf-loc> </conf-loc>
<page-range>471-481</page-range></nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Thramboulidis]]></surname>
<given-names><![CDATA[K.]]></given-names>
</name>
<name>
<surname><![CDATA[Tranoris]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
</person-group>
<source><![CDATA[An architecture for the development of function block oriented engineering support systems]]></source>
<year></year>
<conf-name><![CDATA[ Computational Intelligence in Robotics and Automation, 2001. Proceedings 2001 IEEE International Symposium on]]></conf-name>
<conf-date>2001</conf-date>
<conf-loc> </conf-loc>
<page-range>536-542</page-range></nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Yang]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Vyatkin]]></surname>
<given-names><![CDATA[V.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Transformation of Simulink models to IEC 61499 Function Blocks for verification of distributed control systems]]></article-title>
<source><![CDATA[Control Eng. Pract]]></source>
<year>dic.</year>
<month> 2</month>
<day>01</day>
<volume>20</volume>
<numero>12</numero>
<issue>12</issue>
<page-range>1259-1269</page-range></nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Vyatkin]]></surname>
<given-names><![CDATA[V.]]></given-names>
</name>
</person-group>
<source><![CDATA[IEC 61499 function blocks for embedded and distributed control systems design. ISA-Instrumentation, Systems, and Automation Society]]></source>
<year>2007</year>
</nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kshemkalyani]]></surname>
<given-names><![CDATA[A. D.]]></given-names>
</name>
<name>
<surname><![CDATA[Singhal]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<source><![CDATA[Distributed computing: principles, algorithms, and systems]]></source>
<year>2008</year>
<publisher-name><![CDATA[Cambridge University Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Peltola]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Christensen]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Sierla]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Koskinen]]></surname>
<given-names><![CDATA[K.]]></given-names>
</name>
</person-group>
<source><![CDATA[A migration path to IEC 61499 for the batch process industry]]></source>
<year></year>
<volume>2</volume>
<conf-name><![CDATA[ Industrial Informatics, 2007 5th IEEE International Conference on]]></conf-name>
<conf-date>2007</conf-date>
<conf-loc> </conf-loc>
<page-range>811-816</page-range></nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Works]]></surname>
<given-names><![CDATA[Math]]></given-names>
</name>
</person-group>
<source><![CDATA[Simulink PLC Coder]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bonfè]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Fantuzzi]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Secchi]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Design patterns for model-based automation software design and implementation]]></article-title>
<source><![CDATA[Control Eng. Pract]]></source>
<year></year>
<volume>21</volume>
<numero>11</numero>
<issue>11</issue>
<page-range>1608-1619</page-range></nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Yang]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Vyatkin]]></surname>
<given-names><![CDATA[V.]]></given-names>
</name>
</person-group>
<source><![CDATA[Model transformation between MATLAB simulink and Function Blocks]]></source>
<year></year>
<conf-name><![CDATA[ Industrial Informatics (INDIN), 2010 8th IEEE International Conference on]]></conf-name>
<conf-date>2010</conf-date>
<conf-loc> </conf-loc>
<page-range>1130-1135</page-range></nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Yang]]></surname>
<given-names><![CDATA[C. H.]]></given-names>
</name>
<name>
<surname><![CDATA[Vyatkin]]></surname>
<given-names><![CDATA[V.]]></given-names>
</name>
</person-group>
<source><![CDATA[Automated Model Transformation between MATLAB Simulink/ Stateflow and Function Blocks]]></source>
<year></year>
<volume>13</volume>
<conf-name><![CDATA[13 IFAC Symposium on Information and Control in Manufacturing (INCOM’09)]]></conf-name>
<conf-date>2009</conf-date>
<conf-loc>Moscow </conf-loc>
<page-range>205-210</page-range></nlm-citation>
</ref>
<ref id="B18">
<label>18</label><nlm-citation citation-type="">
<collab>Siemens</collab>
<source><![CDATA[Structured Control Language (SCL) for S7-300/S7-400 Programming]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B19">
<label>19</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Peñalver]]></surname>
<given-names><![CDATA[L. R.]]></given-names>
</name>
<name>
<surname><![CDATA[Arroniz]]></surname>
<given-names><![CDATA[D. G.]]></given-names>
</name>
<name>
<surname><![CDATA[Canales]]></surname>
<given-names><![CDATA[A. R.]]></given-names>
</name>
<name>
<surname><![CDATA[Buendía]]></surname>
<given-names><![CDATA[M. J.]]></given-names>
</name>
<name>
<surname><![CDATA[Martínez]]></surname>
<given-names><![CDATA[J. M.]]></given-names>
</name>
</person-group>
<source><![CDATA[Sistema de automatización y telecontrol mediante microcontroladores para la gestión del riego de cultivos en maceta con lisímetros de pesada]]></source>
<year></year>
<conf-name><![CDATA[VII Congreso Ibérico de Agroingeniería y Ciencias Hortícolas]]></conf-name>
<conf-date>2013</conf-date>
<conf-loc>Madrid </conf-loc>
</nlm-citation>
</ref>
<ref id="B20">
<label>20</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Berger]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
</person-group>
<source><![CDATA[Automating with SIMATIC: Controllers, Software, Programming, Data]]></source>
<year>2012</year>
<publisher-name><![CDATA[John Wiley & Sons]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
