PROGRAMACIÓN AVANZADA CON M221 Y COMUNICACIONES
Introducción a la programación estructurada
Programación estructurada
Un poco de historia
La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora recurriendo únicamente a subrutinas y tres estructuras básicas: secuencia, selección (if y switch) e iteración (bucles for y while); asimismo, se considera innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a código espagueti, mucho más difícil de seguir y de mantener, y fuente de numerosos errores de programación.
Surgió en la década de 1960, particularmente del trabajo de Böhm y Jacopini, y un famoso escrito de 1968: «La sentencia goto, considerada perjudicial», de Edsger Dijkstra. Sus postulados se verían reforzados, a nivel teórico, por el teorema del programa estructurado y, a nivel práctico, por la aparición de lenguajes como ALGOL, dotado de estructuras de control consistentes y bien formadas.
A finales de los años 1970 surgió una nueva forma de programar que no solamente permitía desarrollar programas fiables y eficientes, sino que además estos estaban escritos de manera que se facilitaba su comprensión en fases de mejora posteriores.
El teorema del programa estructurado, propuesto por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:
- Secuencia.
- Instrucción condicional.
- Iteración (bucle de instrucciones) con condición inicial.
Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control, estas pueden ser construidas mediante las tres básicas citadas.
Aplicando estos conceptos de informática a controladores PLC podemos tener una estructura como se muestra a continuación:
- Secuencia: Mediante la organización de Unidades de Programación POUs.
- Instrucción condicional: Mediante el uso de bloques condicionales o contactos lógicos
- Iteración (bucle de instrucciones) con condición inicial: La iteración principal la cumple la «Tarea maestra» ejecutando todas las POUs de forma cíclica (Configuración predeterminada)
Pero el reto más importante es lograr que cada una de las unidades de ejecución contengan verdaderamente «OBJETOS» estructurados. Es Decir que cada uno de los objetos que en la programación del Machine Expert Basic se denominan «Bloques de funciones definido por el usuario», tengan sus propias estructuras con las mismas características que tiene los POUs de la tarea maestra.
En las siguientes lecciones vamos a ver como usar los bloques y funciones definidas por el usuario para aplicar los conceptos de programación estructurada.