Esta semana he tenido que realizar unas pequeñas modificaciones en una máquina que me ha hecho reflexionar sobre lo importante que es aprender AWL si quieres automatizar con PLC de Siemens.
Es verdad que AWL no es precisamente el lenguaje más amigable del mundo, ni el más fácil de entender en un principio.
Recuerda que Siemens es una empresa alemana.
Gente seria, con lenguajes de programación más serios aún.
El que te diga que está chupado… bueno, creo que distorsiona un poco la realidad.
Es un lenguaje cuya curva de aprendizaje no es sencilla, al menos si quieres sacarle verdaderamente partido.
Si tienes dudas si deberías aprender o no, te invito a que recapacites sobre este listado de ventajas y necesidades que se te pueden presentar.
Contenido
- 1 Muchas máquinas que hay que mantener, están escritas en AWL.
- 2 Hay funcionalidades que solo están disponibles en AWL
- 3 AWL es mucho más compacto
- 4 AWL está disponible en los PLC más viejos, y en los nuevos S7-1500
- 5 AWL te ayuda a comprender mejor la programación de los PLC de Siemens
- 6 Y tú ¿sabes programar en AWL?
Muchas máquinas que hay que mantener, están escritas en AWL.
Vale. Seguramente no estará todo programado en AWL.
De hecho, si está todo programado en AWL, desde ya te digo, que no está correctamente programado porque AWL no es para programarlo todo.
Que se pueda programar todo en AWL, no quiere decir que DEBAS programar todo en AWL (o en cualquier otro lenguaje, que para eso tienes varios).
Programar lógica binaria o de contactos en AWL con más de dos paréntesis debería estar penado con una muerte dolorosa a pellizcos.
Esto no quita para que haya lógica binaria en AWL de forma justificada, y desde luego, muchas partes del programa estarán mucho mejor programadas en AWL que en otros lenguajes.
Por tanto si hay partes de una máquina programadas en AWL y no sabes cómo funciona.. complicado.
Al menos deberías saberlo leer ¿no crees?
Hay funcionalidades que solo están disponibles en AWL
Las series 300 y 400 tienen tres lenguajes básicos de saque: diagrama de contactos (KOP), de bloques (FUP), y AWL.
El más extendido con diferencia es el diagrama de contactos o KOP porque es el que más se parece a los esquemas eléctricos y existen en todos los fabricantes (al menos que yo conozca).
El tema es que los lenguajes gráficos FUP y KOP no abarcan todas las cosas que un PLC puede hacer.
Los exponentes más claros son los punteros, cuyo manejo es exclusivo en AWL, y en muchas ocasiones, el uso de punteros es imprescindible para la programación debido a la complejidad de lo que estés haciendo.
Por tanto, no podrás hacer muchas cosas con FUP y KOP, pero sí en AWL.
AWL es mucho más compacto
Los lenguajes gráficos (FUP y KOP), o de más alto nivel como puede ser SCL, no son tan eficientes como AWL a la hora de procesar el programa.
Esto hace que un código bien depurado en AWL, ahorre mucho tiempo de procesado en el PLC.
En general esto no es muy importante si lo que estás programando solo se ejecuta unas pocas veces por ciclo de scan del PLC.
La cosa cambia bastante si tienes que manejas 1000 lazos de control en cada ciclo de scan del PLC.
Por poner un ejemplo, un compañero y yo dedicamos una tarde entera a depurar unas 15 líneas de código, que finalmente quedaron en unas 10 (hablo de memoria porque fue hace unos cuantos años). La razón, es que estas líneas de código, es parte del programa de un horno de curvar parabrisas que tiene alrededor de 1100 lazos de control manejado por un PLC de la serie 400.
Logramos bajar bastantes milisegundos en el proceso.
Pero hacerlo así de compacto, solo eran posible realizándolo en AWL
AWL está disponible en los PLC más viejos, y en los nuevos S7-1500
En Step 7 clásico solo abarca la serie S7-300 y S7-400. Ambos puedes programarlos en AWL.
De hecho FUP y KOP en Step 7 cásico, por detrás, tienen AWL y de ahí que siempre sea traducible a este lenguaje (que no al revés normalmente)
Pero es que en TIA Portal seguirás pudiendo usar AWL no solamente con la serie 300 y 400, sino que también lo tienes disponible en la serie S7-1500.
En definitiva, si exceptuamos la serie S7-1200, que no se puede programar en AWL, el resto de las gama de PLC de Siemens en TIA Portal, sí se puede.
AWL te ayuda a comprender mejor la programación de los PLC de Siemens
Esta es la razón que me ha hecho escribir esta entrada.
Porque AWL es mucho menos intuitivo, eso está claro.
Pero de esa debilidad, sacas finalmente una fortaleza.
Cuando dominas AWL, el resto es coser y cantar.
Y es que has aprendido:
- cómo el PLC ejecuta las instrucciones
- sabes trabajar muy bien desde los bits a las dobles palabras
- dominas cómo funciona la memoria del PLC
… sabes en definitiva como piensa el maldito cacharro.
Puede parecer una chorrada, pero créeme que no lo es.
Aprendes a ser más analítico, a pensar cómo va a ejecutar el PLC tu código.
Simplemente… aprendes a programar más cosas, y mejor.
Y tú ¿sabes programar en AWL?
Si te apetece, puedes dejar en los comentarios cómo llevas lo de programar en AWL.
¿Lo dominas?
Si no es así, puede que sea interesante para ti el Curso de AWL.
Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí
Puedes seguirme en cualquiera de las siguientes redes sociales.
40 Comentarios
Se lo basico de AWL y cada vez que lo veo se me corrompen las tripas.
Saludos
jaja. Bueno, se va haciendo poco a poco camino
No sólo eso, además cualquier parte que este en scl, al descargarlo sin tener ese paquete te lo traduce a una cosa parecida a awl, y para trabajar con punteros en los hmi, cosa que les gusta mucho a fabricantes de maquinarias Alemanas intentar que se dependa de ellos en servicio, es totalmente imprescindible, en Siemens al menos.
Buah, es que si es SCL y lo tienes solamente en AWL, es morir. Es la mejor protección contra el Know-how
Tengo mucho años programando plc de diversas marca Siemens a sido uno e programado en AWL cosas sencillas me parece un lenguaje nada amigable cuando hay rutinas en AWL hay que analizarla mucha para entender que hace y dar con la falla, si el programa no tiene los comentarios que el programardor que lo hizo, olvidalo nunca vas a entender nada menos resolver una falla
Cuando doy soluciones a la hora de elegir un plc trato que no sea Siemens pero si el cliente lo requiere no tengo problema
Totalmente de acuerdo Iñigo,
AWL es básico conocerlo para entender bien el autómata.
Entenderlo bien es cuestión de años, años y mucha práctica y sobre todo paciencia. Pero alguna vez en la vida te encontrarás con algún proyecto en el que hay trozos, sino todo el programa en AWL (Ya me ha ocurrido más de una vez).
Y aunque empiezo a tener soltura otra vez con AWL, hay partes de programas que necesitan de un par de horas para analizar y comprender bien, sobre todo si tienes que hacer alguna modificación después.
Saludos!
Eso siempre. Hay que empollarse los programas para hacer modificaciones incluso cuando lo has programado tú jeje.
Con los S7-300 u S7-400 de Siemens tenía bastante sentido aprender AWL, ya que no todo se podía hacer en KOP o FUP. Con los nuevos PLC, como los S7-1200 (que ya no tiene AWL) y S7-1500 es mejor centrarse en SCL. A mi, al menos, no se me ocurriría comenzar un nuevo proyecto para los S7-1500 en AW, teniendo otras opciones más intuitivas y prácticas.
Cierto! Pero no solamente de los PLC nuevos vive el hombre. Hay tal cantidad de serie 300 y 400, que tienes dispositivos en Step 7 clásicos para dos décadas más en la industria, si no más.
Porque las ingenierías y automatistas no solamente hacen proyectos nuevos en relucientes S7-1200 o S7-1500, sino modificaciones de líneas del año 199X o 200X y ahí o sabes AWL, o estás muerto (en Siemens, me refiero). Ya no te digo que sepas Step 5, que yo ya sinceramente no me acuerdo. Pero una ingeniería tiene que tener gente que sepa programar en AWL.
En cuanto a SCL, totalmente de acuerdo. Una buena combinación hoy en día de escalera+SCL y tienes los nuevos proyectos con los S7-1200 y 1500 resueltos.
Yo utilizo el AWL para programar con señales analógicas, punteros, etc. pues genera menos código, pero para secuencias lógicas uso o KOP o FUP indistintamente.
Lo malo te lo encuentras cuando tienes que realizar una migración de un programa en AWL a FUP o KOP para una CPU S7 1200. Es un verdadero trabajo de chinos. A mi me ha tocado realizar varios proyectos de migración de CPU S7 200 a S7 1200, estando el programa original del 200 en AWL, se consigue con paciencia pero es laborioso.
Y tanto! Menudo curro tiene que ser traducir algunos programas… y má si no los has programado tú.
Estaría bien actualizar el libro de step 7 básico que ya tiene su añitos por una nueva edición
Tiene sus años, pero Step 7 clásico es lo que es, no ha cambiado nada. Pero sí es verdad que cuando pueda, le daré una vuelta.
El lenguaje de programaciin AWL es muy flexible y compacto donde puedes programar de manera mas rapida y practica que con KOP o FUP, si bien al principio cuesta un poco(para quienes estan acostumbrador a programar en escalera) despues le agarras el hilo y en verdad ya prefieres progamar en adelante solo en AWL, saludos mi estimado iñigo, exelente blog, exelente cursos(a mi parecer, step 7 basico necesita profundizar en la programacion Awl) un abrazo desde Perú
Muchas gracias Isaac. Habrá que darle una vuelta a algún curso cuando tenga tiempo.
Saludos
De AWL, nada de nada. Pero en eso estamos, aprendiendo.
Poco a poco Miguel.
Buenos días. Muy interesante post, yo no tengo la mínima idea de programación en AWL pero el post me abrió los ojos a empezar a hacerlo, o por lo menos entenderlo. Gracias! Y espero aprenderlo con tus cursos
Creo que al menos, con todo lo que hay ahí fuera, al menos saberlo leer.
Me gusta tu forma de explicar y plantear las cosas.
? Tienes idea de cual lenguaje de programación va a predominar en el futuro?
En cuanto a los lenguajes industriales, claro.
Gracias !
Joer que pregunta. No lo se. Pero cada vez entiendo que más fáciles de programar, y más potentes. Cual? Ni idea.
AWL tiene sus ventajas y sus inconvenientes. Considero que se ha de usar cuando es necesario, por limitacion del KOP o porqué el proceso lo necesite x su ciclo de scan, pero nunca usarlo siempre porque si. En automocion (cliente final) muchas veces el mejor programador no es el que sabe mas (incluyendo awl) sino el que programa para el que viene detrás, que normalmente sabe mucho menos. Por lo que usarlo adecuadamente es lo mas eficiente profesionalmete hablando. Un problema que veo desde hace mucho años en compañeros del sector. Hacerlo todo super complejo es pan para hoy y … Un saludo programmers…
Exacto Ernesto, cada cosa, para lo que es.
Totalmente de acuerdo contigo. Pero siempre esperamos a conseguirnos la bendiga máquina con un programa en AWL para retomar la lectura e interpretación en ese lenguaje.
A mi me recuerda el ensamblador para microcontroladores microchip.
«… sabes en definitiva como piensa el maldito cacharro.»
Yo creo que es positivo, desde luego, aunque con el tiempo se quede en desuso. Que le va a costar desaparecer, desde luego.
Mi primer curso de siemens fue en AWL. En mi empresa el 70 % de los programas estan en AWL. Salvando las nuevas maquinas que vienen en KOP, con AWL hay que saber manejarse un poco para poder hacer modificaciones.
Es verdad que a la gente le da palo/miedo cuando abro el proyecto y aparece el codigo en AWL, pero todo es ponerse. Y si, es mucho mas potente, puedes trabajar muy bien a nivel de bit.
Se le termina cogiendo cariño jejeje.
Un saludo Iñigo y compañeros
Iñigo nunca le encontre la vuelta al AWL y eso que lei de todo.
Rockwell no se compara con nada…
Buenos días:
Yo lo siento mucho. Sé de AWL, al menos para defenderme y poder leer programas en dicho lenguaje (de hecho, empecé programando Siemens con un curso de AWL) y realizar pequeñas modificaciones. Pero cada vez que me encuentro una máquina programada en AWL (y qué casualidad, con comentarios en alemán), se me revuelven las tripas y es peor que un dolor de muelas.
Muchas veces hemos optado por cargarnos el programa y reprogramarlo todo de cero. Seguro que hemos invertido mucho menos tiempo que intentando depurar o modificar el programa en dicho lenguaje con la consiguiente reducción en costes debido al número de horas empleado.
Lo siento mucho, pero es que hay veces que desde Alemania lo programan todo en AWL por tocar los huevos. He visto aplicaciones que no tenía ningún sentido tenerlo todo programado en AWL. Puede haber casos puntuales explicados en el artículo, que sí, vale, puede tener sentido el AWL. Pero para ciertas rutinas muy concretas. Pero ¿todo? No me lo creo.
Me ha tocado trabajar varias veces en awl, logro entenderlo, hasta hago una especie de diagrama de flujo para ver que hace… Y si.. hace esto, suma a esto, corre a la derecha, que guarda en el AR1 y… Ya… Se lo que hace el programa, pero para mí lo complicado es descifrar el algoritmo o que se estaba imaginando el programador original, nunca me he topado un awl comentado.
Yo empecé mi carrera en automatismos programando S95 y S100, ambos en AWL
Eran otros tiempos, mediados de 1995
Sí, la cosa ha cambiado bastante desde entonces. Aún quedan algunos S5 por ahí pululando, aunque son los pocos.
Muy buena esta publicación pues es cierto que cuando te pasas de los () como dices se torna bastante enredado. Se tiende a veces a sólo querer programar en un solo lenguaje y cuando chocamos con algún programa realizado con otro lenguaje pues a volverse loco. Es muy útil este consejo que das de que por lo menos saberlo leer no está de más. Iñigo como siempre gracias por todo y felicitaciones por tu empeño y dedicación para con nosotros. Ah y sobre los punteros es un tema importante que me gustaría profundizar pero con el TIA.
Si no me equivoco, en otras marcas al «AWL» lo denominan «IL» o «lista de instrucciones». Yo por curiosidad lo he intentado ver en Schneider y este lenguaje ha hecho que le coja más cariño al «AWL». «AWL» en compración con «IL» es una maravilla.
Hola Inigo, Pero como sabes cuando tienes que usar AWL?
Depende un poco de la aplicación, y el PLC. Si es un 300 por ejemplo, y necesitas hacer punteros por ejemplo, o SCL o AWL. Si quieres hacer cuentas, es muy rápido también… depende un poco de la aplicación. Te lo da el sentido común a la hora de hacer el programa.
Hola,
Para mi awl es el mejor lenguaje de siemens y claro con esto evitas que cualquiera le mueva a tu codigo, claro que depende de la aplicación.
Saludos!
AWL está bien para ciertas cosas, no para todas. Hacer lógica binaria con AWL no es lo adecuado, y hay empresas que lo tienen directamente prohibido pudiéndolo hacer directamente en ladder. Cada lenguaje, para lo que es.
En nuestra empresa (Witron), trabajamos solo con AWL. Hemos hecho proyectos para muchas empresas, de hecho los almacenes de Mercadona son nuestros.
Está todo escrito en AWL.
Cuando se tiene un almacén tan grande y con tantas opciones creo que la manera correcta es programar en AWL ya que te da infinidad de posibilidades que KOP y FUP no te dan.
Sí es cierto que es menos intuitivo y que es más complicado de programar, pero una vez que lo conoces es fácil.
Que haya cosas que en FUP y KOP no se puedan hacer no justifica de ninguna manera que todo deba ser programado en AWL. Eso no es una razón técnica que tenga sentido.
Yo también conozco AWL, y ni de cerca es tan intuitivo a la hora de depurar un problema en una avería frente a KOP.
Una cosa es que solo puedas hacer punteros en AWL, o sea mucho más cómodo hacer cálculos matemáticos, y otra muy distinta que una lógica booleana debas hacerla también en AWL. Porque como sea un poco compleja, que no sé si es tu caso, es un sindios cuando verlo gráficamente en la pantalla lo entiende cualquiera que sepa un poco de esto.
Además, programando en KOP, si lo quieres ver en AWL, siempre puedes. Al revés no.
En alguna empresa de automoción no te permitirían usar solo AWL, si se puede hacer en KOP. Y estoy de acuerdo con ellos porque no tiene sentido alguno bajo mi punto de vista hacerlo así.
Bajo mi responsabilidad, desde luego, y en mi empresa, no sería admitido trabajar así.