Step 7… AWL, FUP o KOP ¿Cuál elijo?

Antes de responder a la pregunta de que lenguaje escoger en Step 7, repasemos un poco de qué lenguajes disponemos.

  • FUP
  • KOP
  • AWL

Cada uno tiene sus ventajas e inconvenientes.

¿Qué lenguaje uso para programar en Step 7?

grafico lenguajes awl fup kop Step7

 

FUP

Es un lenguaje de Step7 gráfico que utiliza los cuadros del álgebra booleana para representar la lógica. Asimismo, permite representar funciones complejas (p.ej. funciones matemáticas) mediante cuadros lógicos.

Tiene la ventaja de ver agrupados por bloques las diferentes lógicas y tener bloques complejos.

Cuando hay mucha lógica booleana en serie suele ser más compacto y más fácil de ver el segmento completo.

KOP

Es un esquema de contatos, escalera o ladder.

Es un lenguaje de Step 7 gráfico y  probablemente el más extendido en todos los lenguajes de programación y por tanto el más similar a otros.

Probablemente es el más fácil de entender por personal proveniente de la industria eléctrica y técnicos eléctricos.

En definitiva, es la representación que habría que cablear si se quisiera hacer el mismo programa que realizas con el PLC.

AWL

Es un lenguaje de programación textual orientado a la máquina.

En un programa creado en AWL, las instrucciones equivalen en gran medida a los pasos con los que la CPU ejecuta el programa.

Para facilitar la programación, AWL se ha ampliado con estructuras de lenguajes de alto nivel (tales como accesos estructurados a datos y parámetros de bloques).

Es el más completo y el más complejo visualmente de seguir.

Para instucciones sencillas es muy útil pero cuando se quiere hacer una lógica un poco compleja el trabajo de seguimiento y de depuración es complicado y fácilmente susceptible de cometer errores.

En su haber, si lo que necesitas no lo puedes programar en AWL, es que no se puede programar con ninguno de los 3.

Por otra parte ambos lenguajes gráficos son traducibles a AWL, pero no al revés y no necesariamente entre ellos.

Si bien normalmente KOP y FUP son traducibles entre sí, no siempre es así.

Dependerá de la construcción del segmento en cuestión para que se pueda.

Como se aprecia en el gráfico, todo lo que se programe en KOP y FUP puede ser programado en AWL.
Pero no sólamente no todo no será traducido entre el lenguaje gráfico y AWL, sino que además habrá procedimientos que sólo podamos realizarlos en AWL y en ningún caso en FUP o en KOP.
Por ejemplo, el uso de punteros será exclusivo del lenguaje AWL.
Es decir, AWL será el lenguaje universal dentro del Step 7 y el equivalente de programación en un PC sería como un lenguaje ensamblador (salvando las distancias, claro está).

Respondiendo a la pregunta.. ¿cuál es el mejor? Pues ya siento que hayas leido hastá aquí porque no tengo una respuesta a ello. Depende.

A título personal te diré que en mis inicios y por provenir del ámbito académico y de programación para PC, me gustaba más los diagramas de bloques (FUP).

Hoy he de decir que sin duda me parece más práctico el lenguaje KOP ya que me permite visualizar más segmentos del código como norma general.

El lenguaje AWL es totalmente necesario como ya veremos en su momento para multitud de tareas que sólo así se pueden hacer o porque, aunque parezca mentira, es más fácil de usar.

Por tanto, puedes usar indistintamente cualquiera de ellos, si bien lo normal y lógico es usar uno de los lenguajes gráficos acompañado por AWL cuando no quede más remedio.

¿Qué lenguaje es el que sueles usar tú en Step 7 y por qué?

Recordarte que si estás interesado en formarte en Step 7, puede que te interese adquirir el libro “Cómo programar en Step 7 y no morir en el intento” donde puedes encontrar no sólamente el curso completo gratuito, sino muchas más entradas del blog que como sabes se irán actualizando para los que lo adquieran de forma gratuita.

Si estás interesado, puedes echarle un vistazo a este enlace donde se explica qué es lo que contiene el libro, el precio y los métodos de pago.

Fuentes:

Acerca de Iñigo Gútiez

Ingeniero industrial por la Escuela de Ingenieros Superiores de Bilbao. Trabajo como ingeniero de proyectos y automatización en Guardian Industries

Te puede interesar

Desplazamiento y giro de bits en Step7

Desplazamiento y giro de bits en Step7

Aunque ya vimos algo sobre el desplazamiento de bits cuando jugamos con el display de …

33 Comentarios

  1. Para complementar los tres lenguajes estándar del Step7 explicados por Iñigo en el post, creo que merece la pena mencionar el paquete de software opcional S7-SCL (Structured Control Language) como otro lenguaje más de programación disponible para la familia S7. Es un lenguaje de alto nivel, muy parecido al PASCAL con estructuras tipo IF…THEN…ELESE, DO..WHILE, etc. orientado a un manejo ágil y eficaz de ciertos tipos de datos y con el que los informáticos se sienten ‘como en casa’ a la hora de programar. Al igual que en AWL, para visualizar un proceso ‘on-line’ y poder diagnosticar un posible fallo requiere de unas habilidades sobrehumanas por parte del programador.. :)

    Saludos cordiales.

  2. Hola Pedro,

    Gracias por comentar. Efectivamente queda el SCL. Sinceramente lo he usado muy muy poco… con lo que me gustaba a mi el Pascal!!!
    También haremos algún ejemplo algún día, cómo no.

    Un saludo,

    • buenas tardes quiero descargarme un sof para el s7 200 siemens sera que alguien me puede mandar un link a mi direccion que es s…com gracias saludos

      • Hola Sandro,

        Lamentablemente el software es de pago y no puedo permitir este tipo de solicitudes. He anulado tu email y ya de paso aprovechando tu email recuerdo que no se pueden postear este tipo de solicitudes.

        Un saludo

  3. Respondo a tu pregunta ¿Qué lenguaje es el que sueles usar tú en Step 7 y por qué?

    Yo utilizo los siguientes lenguajes por este orden:

    KOP
    S7-GRAH
    AWL
    SCL (Estoy en ello)

    FUP (solamente para el LOGO!)

    Enhorabuena por tu blog.

  4. Graph? Uff no puedo con él… no me gusta nada.

    Puedo hacer, a día de hoy, todo lo que necesito con KOP, incluyendo por supuesto un diagrama de etapas.. con Set /Reset bien puestito arreglado.
    ¿Qué ventajas le ves al uso del Graph?

    • Es una pena que no utilices el GRAPH es maravilloso hacer con él. Los programas secuenciales se hacen en un plis plas y tiene un potencia enorme que a simple vista no se aprecia, pero una vez que vas conociendo los entresijos de la aplicación, te vas dando cuenta de su gran poder. La gestión de paradas, rearmes, modos de funcionamiento (manual, automático, semiautomático) es coser y cantar.
      He hecho muchos programas en KOP (y lo seguiré haciendo para los S7-200 y S7-1200), pero es una pena que no se pueda hacer la programación de dichos autómatas con una herramienta similar al S7-GRAPH.
      En fin, es evidente que me encanta ¿no?.
      Lo mismo me animo y creo un ejemplo en el que se muestre la potencia de dicha y lo cuelgo en la web.

  5. Supongo que será cuestión de las experiencias de cada uno.
    Yo cuando he tenido que enfrentarme con Graph es en el mantenimiento de las instalaciones y el seguimiento de las averías es para mi gusto más confuso y difícil de seguir con respecto a KOP.

    Claro que también hay programas hechos en KOP que para seguir una avería con perdón “te cagas” porque sólo lo entiende el que lo programó y ya me gustaría verle a él unos meses después siguiendo su propio programa en una avería.

    Pero bueno, son gajes del oficio supongo.

    • Llevo ya más de 10 años programando habitualmente con Siemens y el 99% de las aplicaciones que he visto estaban en KOP, dejando para otros lenguajes funciones específicas.

      La máquina que más me costó entender estaba hecha principalmente en KOP por un programador que era un “virtuoso” de los punteros, moviendo bloques de memoria a diestro y siniestro. Compadezco al técnico que hoy en día tenga que hacer el mantenimiento de esa máquina.

      Un saludo.

  6. Los punteros están muy bien para ciertas cosas pero no hay que usarlos bajo mi punto de vista como deporte.
    En mi caso yo he programado instalaciones completas y mantenido otras.
    Hay algunos que da gusto ver el programa y lo fácil que puede ser seguirlo desde alguien que no lo ha visto nunca y otros que sudas.
    Por ejemplo hoy he estado pegándose con un programa al 90% en AWL conectado con un robot fanuc programado en karel.
    Casi pido la cuenta.
    Usar AWL para lógica booleana más allá de hacer un and es como para matar al que lo use habiendo kop o fup… Habia trozos de código de vete a saber cuantos paréntesis. Una locura.

    En fin. A ver si puedo subir hoy la nueva entrada aunque para los veteranos no aporte casi nada… Hoy va de configuración de hardware. Sencillo para no agobiar a los que empiezan jeje.
    Un saludo.

  7. Sin duda alguna el KOP para operaciones booleanas. El AWL para operaciones matemáticas mas complejas y punteros. El SCL es una auténtica joya, y merece la pena conocerlo.

  8. Estoy contigo Carlos,

    El KOP para todo lo booleano y el AWL para el resto… y muy poquito por no decir nada FUP. Cosa curiosa teniendo en cuenta que es con el que empecé y al que estaba acostumbrado.

    El SCL no le he sacado partido. Puede también por falta de necesidad en mis proyectos.
    ¿Para qué sueles usarlo?

    Un saludo y gracias por comentar

    • La verdad que no programo demasiado en Siemens. Habitualmente trabajo con Omron que tiene 2 lenguajes, ladder y texto estructurado. El texto estructurado le da una potencia increíble al PLC y es muy similar al SCL. He hecho modificaciones en programas de otros con SCL y me ha gustado este lenguaje. Creo que para programas complejos con muchos cálculos matemáticos, puede ser mas claro que el AWL. Quizá es porque el primer lenguaje que aprendí en mi vida fue el BASIC y le veo cierto parecido.
      Por otra lado el FUP lo he utilizado en el LOGO! y no termino de pillarle el gustillo. Eso que en la escuela estudié electrónica basada en puertas lógicas y se parece mucho a al FUP.

  9. El Basic… ¡cómo me gustaba! Claro que era un crio de 7º de EGB cuando empecé con clases extra escolares jeje.

  10. Bajo mi modesta opinion, como estudiante de programación industrial. AWL una vez que tienes pensado el programa sale solo. Yo utilizo mucho los saltos SPL, SPB,SPA y en FCs me encanta. Supongo que para gustos los colores.

  11. Porcierto, enhorabuena por tus publicaciones. Lo sigo mucho debido la intensidad de clases que tengo y no tengo tiempo para preprarme todas. Sin embargo tus tutoriales son increibles para solucionar pequeñas dudas que se hacen muy pesadas sino se logra coger el concepto.

  12. Hola Jorge,
    AWL es ideal cuando quieres hacer operaciones no booleanas.
    Cuando son sólamente boolenas a mi juicio es mucho mejor tanto FUP como KOP ya que en una lógica complicada AWL puede ser un auténtico dolor.

  13. Leopoldo Conde

    AWL, sin ninguna duda al menos es la opcion mas “rapida” para trabajar, por lo menos en mi caso.
    Cuando me debo de enfrentar a otros tipos de programacion, coo KOP, sufroooooo….jejejeje
    Por cierto, en el 1200, seguimos con la carencia de no poder desarrollar en AWL, una pena.

  14. Hola Leopoldo,

    Gracias por el comentario.

    Lo que son las cosas, a mi lo que me parece una tortura es el AWL a pelo para todo… en cuanto quieres hacer una lógica booleana un poco compleja se me antoja una pesadilla.
    Pero para gustos, los colores.

    Eso sí, cuando es tema de aritmética, no hay color de hacerlo en AWL a hacerlo en FUP/KOP, que entonces las tornas se vuelven.

    Un saludo

  15. hola una pregunta muy sencilla pero que me trae de cabeza, tengo el CD para instalarme el Step7 Profesional 2006 SR5, y no hay manera de instalarlo , mi sistema operativo es el Windows7, por narices me tengo que cambiar el sistema operativo e instalarme el XP? tambien me he descargado de la pagina de siemens su programa pero no logro abrirlo

    Un saludo y gracias

    • Hay versiones de Step 7 que funcionan en Windows 7 32y64bits. Me temo que debes hacerte con alguna de ellas. Que yo sepa la última versión del Step 7 es la 5.5 SP3. Funciona sin problemas en W7 64bits.
      Otra opción es crear una unidad virtual de Windows XP e instalar en ella tu Step7.

  16. Lo que son las cosas!!!! Yo empeze en kop y hoy estoy aprendiendo awl y scl. Son lenjuajes potentes con lo k ustedes hacen mencion. Llegue a awl a traves de un plc s5. E increiblemente me sorprende ese plc por la potencia que tiene haciendo mencion y tomando en cuenta sus años. Siempre pienso k esta en el baul de los recuerdos y aparece

  17. La verdad creo que va a depender mucho de que se quiera hacer en el PLC, cada lenguaje tiene su fuerza en comparacion a los demas a la hora de usarlo. Ademas de decir que cada quien con el tiempo se familiariza mas con algun lenguaje en especial.

  18. muy buen aporte gracias

  19. José Luis Llames

    Estoy absolutamente de acuerdo con lo que explicaste. Me reafirma más en la utilización que hago de los lenguajes que son KOP+AWL. Un saludo.

  20. Yo lo cierto que en la carrera me enseñaron AWL para todo haciendo redes de petri, pero desde que uso KOP para algebra booleana es mas sencillo buscar las averías.
    El KOP tiene un factor visual que por ejemplo el AWL no tiene.

    EL AWL lo uso para contadores (que uso alguna marca en un DB) algún tipo de temporizador especial, transferencia de Bytes etc.

    GRAPH es muy potente porque simplifica mucho las vigilancias y es facil de seguir. Problema ocupa mucha memoria en el autómata y si no tienes una familia de gama alta,es imposible usarlo.

    SCL es muy potente y solo lo uso para punteros, matrices y calculos complejos, sobre todo cuando hay que calcular formulas fisicas complejas.

    Conclusion:
    – Siempre KOP salvo para 4 cosillas que uso AWL.
    – SCL para cosas complejas (al menos en mi empresa apenas de usa)

    • Totalmente de acuerdo con Roberto (…y con Íñigo).

      Yo cuando programo, procuro pensar en el cliente y no en mí como programador (me he pegado con programas en AWL o SCL que son una tortura a la hora de realizar un mantenimiento o un diagnóstico…)

      Por eso, y pensando siempre en el usuario final:

      – KOP
      – SCL para cosas complejas

  21. Bien ahi Angel todo el mundo hablo que le gusta que no le gusta o que le parece mas sencillo como si ellos se van a quedar con la programacion el objetivo es el usuario final que cualquier programador no tenga dificultades en interpretar yo programo en KOP+FUP que resulta ser mas universales

    • Estoy con Ángel, el KOP es mucho más intuitivo y gráfico, lo cual le facilita bastante al cliente o al que viene detrás.
      Más de alguna vez me ha tocado resolver una avería por teléfono, y lo que estaba programado en KOP, guiando a alguien con conocimientos básicos he podido, otra máquina que estaba en AWL fue imposible.
      Por sencillez y por ser más gráfico, más intuitivo y más universal me quedo con KOP, salvo que no quede más remedio, o el programa tenga operaciones tan complejas que para entenderlo lo de menos sea el lenguaje y me facilite hacerlo en AWL