1. Introducción a la programación en Step 7

Vamos a repasar una serie de conceptos generales de programación aplicados en un entorno de Simatic S7. Lamento que la primera lección sea una pequeña chapa teórica y que no vayas a ver ni una línea de código, pero por muchas vueltas que le he dado, es que es necesario unos mínimos. Pero míralo de una forma positiva, así ya lo damos por zanjado y pronto comenzaremos a escribir líneas y líneas de código (el que no se conforma es porque no quiere).

Si estás buscando algo completo, puedes también adquirir el libro “Cómo programar Step 7 sin morir en el intento” donde no solamente puedes ver las entradas de este curso sino muchas más ya que es un libro que se va a ir actualizando con las nuevas entradas de Step 7 V5.x de forma gratuita para todos los que lo hayan adquirido.

Si estas interesado en él, puedes comprarlo yendo a este enlace donde explica todo el contenido, el precio y cómo pagarlo.

Si quieres seguir solamente con la parte gratuita, empecemos…

Los elementos de un autómata como bien sabes son dos: el hardware (el aparato en sí con sus tarjetas, cableado etc) y el software (los programas).
Dentro de los programas tendremos dos partes a su vez:

  • El SO del autómata
  • El programa de usuario que tú vas a desarrollar y que desempeñará las funciones para las cuales se ha ideado.

El SO del autómata será el que se encargue por un lado de interpretar y ejecutar el programa que has diseñado además de otras funcionalidades como pueden ser el diagnóstico de alarmas y errores, administrar la memoria, comunicación con otros elementos, exploración de las entradas y la transmisión de órdenes a las salidas entre otras muchas que sabemos que hace, pero poco nos importa ahora el saber cómo.

Programacion en Step 7

El programa de usuario es sobre lo que versa este curso. En este programa vas a poder determinar las condiciones con las que arrancará el autómata, tratará datos y señales del proceso para finalmente dar unas órdenes de actuación sobre los diferentes actuadores y elementos de la instalación.

Estructura de la memoria.

A grandes rasgos la memoria del autómata va a ser dividida en las siguientes partes:

  • Imagen de las E/S.
  • E/S de la periferia
  • Marcas
  • Valor y estado de temporizadores y contadores
  • Módulos de datos (DB)
  • Datos temporales que se pierden al final de cada ciclo.

Imagen de E/S

Las imagenes de las entradas y las salidas no son mas que las señales E o A que se usan en el programa.. pero son eso, imágenes, ya que no leemos el valor instantáneo de la entrada o forzamos instantáneamente la salida, sino que leemos en el caso de las entradas el valor de la entrada física cuando se refrescó la imagen de las entradas antes de comenzar el nuevo ciclo del OB1 (programa principal). Igualmente en el caso de las salidas, cuando el programa pone a uno o a cero una salida no lo está haciendo inmediatamente sino que está dando valor a la imagen de la salida, y esta imagen de la salida será volcada a las salidas reales antes de comenzar un nuevo ciclo del OB1.

E/S de la periferia.

A diferencia del caso anterior, se puede leer directamente el valor actual de cualquier sensor. Para ello debemos leerlos en bytes (PEB), word (PEW) o doble word (PED) ya que el acceso no puede ser directo a un bit en concreto (a diferencia de las imagenes de E/S). Igualemnte pasa con las salidas, que podemos forzar el estado de las salidas de forma inmediata accediendo a las salidas de periferia (PAB,PAW,PAD)

Marcas

Las marcas son variables indexadas y globales, por tanto no hay que declararlas, pero si es conveniente darles un nombre y tipo (entero, doble,real..).Se les puede dar valor dentro de cualquier parte del programa. Dependiendo de la CPU este área es mayor o menor.
Los valores pueden ser remanentes tras el apagado del PLC o volátiles (se pierden tras apagar el PLC).
Su acceso puede ser desde bit hasta un áncho indeterminado si se usan punteros de área (que veremos más adelante).

Temporizadores y contadores.

La programacion en Step7 tiene la peculiaridad de tener temporizadores de dos tipos: por software (IEC) y temporizadores S7 (o llamados también de S5 ya que existían ya en la versión anterior). Estos últimos son temporizadores hardware y son limitados dependiendo de la CPU (por ser hardware), no así los IEC que por ser creados por software la limitación es la propia memoria disponible, pero no hay un número determinado de ellos.
Los contadores pues son eso, elementos usados para contar o decontar cantidades.
Veremos con detenimiento en su momento las peculiaridades de cada uno de ellos.

Módulos de datos (DB).

Son áreas de memoria que a diferencia de las marcas, está definidas por el usuario. Pueden ser de longitudes dispares y con contenidos de todo tipo. Las variables contenidas en los DB son remanentes al apagado del PLC.

Variables temporales.

Son variables que se declaran dentro de los módulos  que sirven para realizar cálculos intermedios y locales que no necesitan ser usados más allá del módulo en cuestión y en el ciclo en el que son llamadas o tratadas.

Te dejo con el primer vídeo del curso…

 

Actualización (23/09/13): Como bien han apuntado en los comentarios, las variables temporales no se re-inicializan como yo he comentado en el vídeo. El valor inicial de la variable temporal es el valor último que tomo esa variable, lo cual no deja de ser tremendamente peligroso ya que si no le das valor antes de leerla el contenido de dicha variable es indeterminado, especialmente si la función es llamada varias veces a lo largo del programa y la variable va tomando valores dispares.

Módulos

Para acceder y tratar los datos almacenados en las áreas de memoria, existen diferentes tipos de módulos cuyas caracteristicas serán diferentes para cada requerimiento que sea necesario:

  • Módulos de organización (OB)
  • Funciones (FC).
  • Bloques de función (FB).
  • Bloques de memoria (DB)
  • Módulos de sistema (SFC,SFB,SDB)

Módulos de organización

Lo primero que has de saber de estos módulos es su especifidad, sólo sirven para lo que han sido diseñados y no se llamarán desde otros bloques sino que será el propio autómata quien gestiona las llamadas a estos módulos en función de sus características.

Hay varios tipos de módulos de organización:

  • OB de arranque (OB100-102): Son bloques con los que se arranca el PLC en función del tipo de arranque y depende del tipo de CPU para que tenga todos los tipos o sólamente el OB100, que es el arranque completo. Sólo se ejecuta una vez, en el arranque. Una vez terminado pasa al principal.
  • El OB1: Es un tipo es sí mismo y es el principal. Se ejecuta de forma recurrente y desde él se hace llamadas a los FC y FB del programa
  • OB cíclicos: También se pueden hacer llamadas a otros FC o ejecutar código desde estos OB. Tienen la peculiaridad frente al OB1 que se ejecutan a tiempo fijo (por ejemplo el OB35).
  • OB Horarios: Son OB que dependen de la fecha y hora. Se pueden realizar tareas desde en un momento concreto a ser cíclicos cada x tiempo (desde minutos a todos los años en un momento concreto)
  • OB de fallo (OB85, OB86, OB121 etc). Son OB predefinidos para cada tipo de fallo y son llamados cuando el fallo es detectado. Dentro de cada OB se puede tratar el fallo y tomar las decisiones pertinentes en cada caso.

Todos los OB tienen la peculiaridad de tener reservados 20bytes de memoria local donde podrás hallar variables específicas de cada OB. Así podrás tener información de en qué momento ha sido llamado o la frecuencia de llamada en el caso del OB35 por poner un ejemplo.

Los más usados con una diferencia notable con el resto:

  • OB100: Arranque desde cero. En el daremos las condiciones y valores iniciales (si procede) en el arranque.
  • OB1: Programa principal (lógico)
  • OB35: Programa cíclico por excelencia ya que hay otros pero que no están disponibles en todas las CPU. Puedes programar tareas a tiempo fijo facilitando contajes y mediciones que sean necesarias conocer su periodicidad.

Luego están los de fallo que dependiendo de la aplicación usarás unos u otros o ninguno. Pero con estos 3 tienes el 80% de las necesidades de los OB cubiertos.

 

Funciones (FC)

Las funciones son bloques que pueden ser llamados desde OB, FC o FB y se usan fundamentalmente para:

  • Estructurar el código de tal forma que no esté todo metido en el OB1 sino que se hace de forma arbórea e inteligible dividiendo el programa por zonas, máquinas, submáquinas…
  •  Usarlos como funciones que traten unos valores de entrada y den como resultado unos valores de salida. Lógicamente la idea de esto es por un lado dar claridad y por otro lado permite la reutilización de la función.

Tienen la peculiaridad de poder definir de forma interna variables temporales con las que jugar dentro del bloque pero que no tienen remanencia y el valor de estas variables se pierde de ciclo de ejecución a ciclo de ejecución, es decir, al inicio de la ejecución del FC valdrá cero, y aunque al final de la ejecución del FC la variable valga 100, en el siguiente ciclo de scan, la variable volverá a valer cero por esta falta de remanencia.

Por ejemplo, podemos crear un FC1 y un FC2. En el FC1 desarrollar un programa que sume a +b y nos de c. En el FC2, hacer varias llamadas al FC1 para que nos haga varias sumas.

El bloque FC1 denominado “sumar” lo reutilizamos y contendrá variables de entrada y salida mientras que el FC2 simplemente lo usaremos llamándolo desde el OB1 y lo denominaremos “todas_las_sumas” haciendo una única llamada desde el OB1 a este bloque.
No tiene ninguna importancia la falta de remanencia de las posibles variables intermedias ya que lo que realiza es un cálculo matemático en cada ciclo.

 Bloques de función (FB)

Los bloques de función son parecidos a los anteriores con la particularidad que tienen variables internas llamadas estáticas que dan remanencia de ciclo a ciclo.
Para lograr esta remanencia tendrán asociado un bloque de memoria (DB) llamados para estos casos de instancia.
Los FB pueden ser llamados desde los OB, FC o FB además de poder ser usados dentro de las estáticas de otros FB (multiinstancias).
En definitiva son los módulos que usaremos para una programación orientada a objetos de otros lenguajes ya que podremos realizar un módulo que nos gestione por ejemplo un transportador y podremos crear tantos transportadores como queramos pudiendo desentendernos de cómo funcionan internamente una vez sepamos depurado el código del FB.

Módulos de datos(DB)

Los módulos de datos pueden ser der de tipo global o de instancia. Los de instancia los hemos visto que son necesarios para la ejecución de los FB y toman la estructura de la declaración de las variables del propio FB.
Los DB globales son módulos declarados por el usuario y pueden contener variables de todo tipo definiendo estructuras complejas.

En ambos casos el acceso a la información es global ya que incluso se puede acceder a la información de un DB de instancia desde otro bloque.

 

Módulos de sistema.

Al igual que en los casos anteriores existen una serie de FC y FB que están integrados en el propio sistema operativo del PLC. Pueden ser llamados y consultados para obtener o tratar información. Al igual que pasa con los FB, los SFB necesitan de su correspondiente SDB.
Por ejemplo con el SFC0 podrás consultar la hora del reloj del PLC.

 

 CICLO DEL PROGRAMA

Como ya he ido adelantando existen unos módulos que son los encargados de ejecutar los programas de usuario. En el siguiente esquema puedes ver de forma gráfica cómo es la ejecución cíclico del programa (ya visto anteriormente aquí)

Procesamiento cíclico
Procesamiento cíclico

Como puedes imaginar, ejecutar todas las instrucciones conllevará un tiempo denominado tiempo de ciclo:
El tiempo de ciclo es el tiempo medido en ms que se necesita para ejecutar completamente todas las instrucciones y llamadas realizadade desde el OB1, la ejecución de otros OB llamados (si fuera el caso) y actividades del SO (actualizar las imágenes de E/S por ejemplo).
El tiempo no es constante ya que no todos los ciclos tienen la misma carga de trabajo bien porque no siembre se hacen las llamadas de OB cíclicos o porque no se hacen llamadas a todos los bloques en función de las circunstancias y valores de las diferentes variables.

Este tiempo está vigilado por un watchdog (típicamente fijado en 150ms fijado en la configuración del hardware) y si se supera, el PLC se irá a estado de STOP.

¿Cómo se puede superar este tiempo?

Pueden ser por varias causas, pero una típica es programar mal un bloque haciéndolo sin salida (un lazo infinito) con lo que irremediablemente se va a STOP aunque hay otras como pueden ser un programa eXcesivamente largo.

También se puede ir el PLC a STOP debido a los tiempos de ejecución por llamadas a OB cíclicos en tiempos muy cortos con cargas de trabajo muy altas. Por ejemplo, programando el OB35 a 2ms y si su carga de trabajo es muy alta, puede que con la siguiente llamada aún no haya terminado las operaciones del ciclo anterior, y el PLC se coja la baja.

Bromas a parte, veamos más en concreto en qué orden ejecuta las diferentes tareas durante este tiempo de scan.

En primer lugar cuando arranca el PLC ejecuta los OB de arranque. El más habitual es el OB100.

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

como programar step 7 y no morir en el intento

Cómo programar Step 7 y no morir en el intento ya a la venta

¿Qué es este Ebook? Como ya he comentado en esta entrada anterior, Cómo programar Step …

75 Comentarios

  1. Gracias por el curso.

    Quiero animarte a seguir y darte las gracias por compartir con los demas unos conocimientos que tanto cuesta adquirir. Creo que somos conscientes del esfuerzo y la dedicacion de tiempo que lleva escribir un curso de este tipo, y todo ello de forma gratuita.
    Cualquier curso que he querido hacer es caro y normalmente se celebra fuera de mi ciudad, y aun asi se podria considerar una buena inversion por la demanda profesional que hay de gente con conocimientos de S7.

    Esto no es exactamente una opinion sobre el curso, pero si unas palabras de animo y de reconocimiento de tu esfuerzo.

    Por supuesto que al menos a mi, si que me esta sirviendo de algo, y me gusta.

    Un saludo.

  2. Hola super interesante el comienzo, siempre se aprenden cosas nuevas…
    … hoy tras la incorporación al trabajo eh conocido que para mi es algo nuevo pero he visto que lleva algún tiempo ya en el mundo (y yo sin saberlo) y quiero compartirlo y quizás ya lo conozcas me gustaría que me des tu opinión ya que posiblemente compre uno para probar ya que parece goloso… http://helmholz.com/prod,80_81_82.html

  3. Presente!!!!!

    gracias y me sumo a los comentarios anteriores

  4. Me parece genial el arranque del curso.
    Todo muy detallado.

    GENIAL

    • Hola pues yo tambien me sumo a los comentarios anteriores. yo habia leido el curso el miercoles.

      tengo algunas pequeñas dudas, pero antes de ponerlas en el blog, volvere a leer y ver los videos y asi hacer preguntas claras y concretas.

      !!! Iñigo !!!! verdaderamente felicitaciones por este trabajo EXELENTE

      el curso esta super interesante y eso q es el principio

      un saludo

      Andres

  5. Hola a todos,

    Gracias por los ánimos. De verdad os digo que es super gratificante que os guste.
    Sé que es de forma amateur y que seguramente haya inexactitudes, pero se trata de coger una base que espero sepa explicaros.

    Sólo os pido un poco de tiempo para entrar en materia con más chicha.

    Saludos!!

    • hola Iñigo ,me ha gustado la primera clase o lección ,me queda claro lo de ob1 ,ob100 y demás ” por que no lo entendía” tengo ganas de que publiques la segunda parte gracias.

  6. Hola a todos.

    He encontrado un manual de programacion en S7 en una de las paginas de la universidad Miguel Hernandez.

    Parece un compendio de las cosas basicas que hay que saber, a mi me parece un manual estupendo para un principiante como yo. Voy a poner el enlace al manual, y a la pagina de la asignatura en la que aparece.

    No es mi intencion hacer algo “no permitido” poniendo este enlace, por lo que si no se puede hacer, lo retiraria, pero como digo es algo que aparece como publico en la citada pagina. Mi intencion es aportar un granito de arena en lo que pueda, nada mas.

    http://isa.umh.es/asignaturas/ci/Step%207%20Avanzado.PDF

    Mas info en la pagina de la asignatura

    http://isa.umh.es/asignaturas/ci/

    Espero que os sirva.

    • Hola,
      Sí tenéis cualquier documento que no tenga derechos de autor o que sean de libre distribución y copia no hay ningún problema en publicitarios.

      Todo lo que rodea a Siemens S7 esta inventado ya y hay bibliografíaen muchos sitios pero casi ttoda con copyright.

      Como digo en el apartado “acerca de” no es mi intención sustituir a los libros de Siemens ni a otros manuales.

      Si os parece voy a crear un apartado en el blog donde ir colgando toda la información que este disponible y que sea de libre distribución y bibliografía que pueda ser interesante comprar si a alguno le interesa.

      Un saludo

  7. Genial, un comienzo estupendo para los que no tenemos mucha idea, me has aclarado muchas cosas que tenia dudas.

    Enhorabuena, y gracias por la ayuda.
    Estoy deseando ver la proxima leccion.

  8. Hola.
    Este curso me sera muy util, ya que anteriormente he programado plc de siemens pero era en Step5.
    Espero poderlo seguir y animandote.
    Gracias.

  9. Me a parecido muy bien el curso de programacion ya que esta todo muy bien explicado, esperando con ansias la proxima clase sigue asi

  10. Excelente curso, esperamos ansiosos el siguiente contenido, y ojala tengas información así como en Siemens pero para Allen B

    Saludos

  11. El curso esta super bien explicado y la idea de complementar cada definicion teorica con un video es genial, sobre todo por q hay pequeños detalles q se pueden escapar leyendo….

    Iñigo tengo una pequeña duda.

    mejor dicho no comprendi totalmente los DB. la idea esta clara los tipos tambien, la explicacion q das super y la comparacion con las marcas igual.

    lo q no logro entender es la forma en q hay q crearlos y como podremos llamarlos desde diferentes bloques si los datos q pondremos dentro, seran unicos para cada uno de los DBs.

    -cundo dices todo typo de extructuras (como cuales????)
    -q es un ARRAY???? (bueno si lo vamos a ulizar )
    -cadenas (si seran utilizadas)
    comprendo q las llamas variables complejas

    bueno no es q quiera molestar simplemente es q es mejor q sea claro desde el principio. Ahora q si mas adelante veremos estos terminos detalladamente puen dejalo q seguro lo entendere en ese momento.

    lo q pasa es q he visto en uno de tus videos en otro capitulo q utilizas una de estas extructuras para hacer movimientos en winCC (es por eso q quicera tenerlo claro).

    tengo depronto una sujerencia para hacer,,,,
    cuando pones abreviaciones. Si puedes poner el significado entre parentesis como ya lo as hecho algunas veces seria super asi al leer los textos sera mas facil.

    por ejemplo puciste (PEB) deduje: periferia entrada bays. !!!QUE NO ES UNA CRITICA!!!
    que el curso esta super bien extructurado, pero como pediste opiniones.

    haaaa se me olvidava puciste, q si nos intereza comprar materiales pichar en el lian del blog, pequeño problema: q cuando se pincha desde el blog me envia a una pagina que dice error de carga la pagina no se puede encontrar. POR Q ESE PAR DE CAFES TE LOS PAGARIA CON GUSTO y estoy seguro q no soy el unico.

    un saludo

    Andres

  12. Leo hasta los comentarios y me alegra ver que mucha gente esta valorando lo que estas haciendo,sigo en la cola de los que vamos detras aprendiendo,una vez mas gracias….

  13. Andres,

    No te preocupes por las definiciones ni los temas de DB, array… ya llegará a su debido tiempo. Puedes ir mirando otros post en la zona de teoría ya que se habla de todas estas cosas.

    En cuanto a lo de PEB.. .es que se llama así. Cuando haces una llamada, verás que se usa por ejemplo PEB0 o PEW0… pero como digo, tiempo al tiempo.

    Sobre enlazar a la tienda online, os lo agradecería un montón. He añadido el link en el menú como tienda Online. La gente de Masvoltaje os tratarán genial, os lo puedo garantizar ya que estamos creando una gran relación.

    Pronto tendréis los primeros frutos de esta nueva paso en nuestra relación que os traerá a vosotros como lectores del blog alguna que otra ventaja a la hora de comprar.

    Os adelanto que el capítulo de esta semana va a ser un poco rollo también porque prácticamente va a ser vídeos y un poco tediosos. La semana que viene ya empezaremos con cosas más interesantes y productivas.

    Un saludo en general para todos y gracias por el seguimiento.

  14. Buenas! la verdades que està estupendo el curso, he empezado hoy asi que voy con un poco de retraso, pero intentare ponerme al dia

  15. Enhorabuena y muchas gracias!

    Muy recomendable. Espero que se peuda profundizar mucho en el tema.

    Saludos.
    Domingo

  16. Enhorabuena y gracias por el curso

  17. excelente, muy bueno , muy entendible

  18. Buenos días
    Esta genial tienes un seguidor
    Esta claro los vídeos están bien, más vale una imagen que mil palabras
    Un saludo

  19. Un excelente profesor al que no le faltan alumnos.

    Gracias por toda la información y por el esfuerzo!

  20. excelente blog, compartir tus conocimientos

  21. francisco fernando

    ya he subido al foro los simuladores!!!!!!!!!!!!!!!

  22. gracias por los videos y la información.

  23. Hola Iñigo, me parece genial la iniciativa y el tiempo que le dedicas a difundir tus conocimientos. Es de agradecer.

    Por otro lado comentarte que hay un pequeño error en el tema de las variables temporales. En contra de lo que se dice por ahi (incluido Siemens), las variavles temporales no se borran cuando salimos del modulo ni se inicializan cuando entramos de nuevo. Todos los modulos comparten un mismo area de memoria para las variables temporales, por lo que si usamos variables en varios modulos los datos de uno “machacan” los del anterior, de ahi que se diga que se pierden… pero si nadie escribe sobre ese area de memoria, esos datos seguiran ahi cuando nuestro programa vualva al modulo.
    Esto es importante ya que si en un modulo “leemos” una temporal sin haberla escrito antes podemos tener un valor cualquiera (dependiendo de que modulo la escribiera antes) y por tanto no tendriamos el control del programa.

    Espero haberme explicado con claridad.

    Saludos y gracias por la dedicacion.

    • Hola JuanF,
      Muchas gracias por comentar.
      En relación a las temporales, la verdad es que como siempre le doy valor antes de leerla no lo había cuestionado. Pero tienes razón ya que lo he comprobado.

      Voy a corregir la entrada porque realmente está mal lo que yo he dicho.

      Muchas gracias por el aporte y aclaración.

  24. Por aquí un ciber-alumno incondicional de Iñigo.

    Seguimos aprendiendo.

    Gracias por tu tiempo.

  25. Excelente, me sumo a todos los comentarios ya citados por todos. No queda mas que agradecerte por compartir tu conocimiento y seguir de cerca el blog para continuar aprendiendo.

  26. Jorge adrián Gómez

    Sinceramente.. No había visto que esta detallado el comienzo del curso..y sobre todo gratis.. sinceramente gracias.. voy a seguir a pleno este curso y espero poder contactarme con ud.. para cualquier duda ..el único inconveniente es que no puedo ver los vídeos…
    saludos desde Argentina. Buenos Aires

    • Gracias Jorge, cualquier duda, en el post concreto o en el foro para intentar resolverla
      Para ver los videos supongo que si están en el trabajo estará prohibido y desde casa con google chrome no deberías tener problemas.

      Saludos

  27. Muchas gracias por este curso, Yo también me sumo a todos los comentarios anteriores, es muy de agradecer tu esfuerzo, y el hecho de que compartas tus conocimientos. Gracias por el curso. Es ameno y facil de seguir.

  28. Muchas gracias, soy un alumno que viene de intercambio y el curso hasta ahora me esta ayudando bastante

  29. Yo seré breve, simplemente genial!

    Mil gracias por compartir tu tiempo y conocimientos.

  30. Me parece muy bueno, gracias por compartir tus conocimientos.

  31. Hola Iñigo

    Ante todo muchísimas gracias por este curso.
    Lo encuentro muy interesante e instructivo, y me parece algo muy noble por tu parte compartir con nosotros tus conocimientos.

    Gracias.

  32. Hola Iñigo!
    Soy ingeniero electrico y empecé el viernes un master en control de procesos industriales. Empezaron con el tema de programacion en AWL….imaginate…chino para mi….
    Con tus cursos lo tengo todo super claro!
    me has ayudado un monton.
    un abrazo,
    Bea

  33. Muchas gracias Iñigo, aunque por el momento no he leído mucho, me está pareciendo muy interesante, ameno y claro. Los vídeos fenomenal. . . Ánimo !!

  34. Me parece perfecto tanto la estructura como el contenido, así como también el tiempo de ejecución de dicho contenido y de los vídeos.
    Mucho ánimo con el curso porque me parece muy valiente por tú parte, y que mucho te tiene que gustar enseñar, para que dediques tanto tiempo en preparar un curso como éste.
    Y te estoy muy, pero que muy agradecido por ello, aunque no puedo dedicarle tanto tiempo como quisiera, pero poco a poco voy a ir viendo los distintos bloques del curso.

    Un saludo y muchas gracias nuevamente.

  35. Me parece muy interesante, creo que lo voy a seguir, me apetece mucho aprender a programar estos plc. Un saludo,

  36. Muchas gracias por todo el esfuerzo profesional y humano que pones en tus charlas para ayudarnos, Iñigo Gútiez.

    Saludos.

  37. Acabo de empezar mi vida con siemens, hasta ahora he utilizado otros PLCs, y esta introduccion es clara, voy a seguir con las siguientes lecciones

  38. Muy bueno, se agradece la molestia de crear este curso de manera altruista…un millon de gracias!!!

  39. Muy agradecido Sr Iñigo. Necesito nociones básicas ya que sólo he trabajado con R. Automation y esto me viene muy bien.

    Saludos

  40. Muchas gracias por este gran curso Iñigo,

    En un principio pensaba que no me iba a hacer mucha gracia lo de los videos intercalados, pero la verdad es que es una gozada echar una lectura rápida y luego ver un video en el que lo explicas.

    Un saludo,

  41. muchas gracias Iñigo por esta informacion y en hora buena —menudo curro– gracias otra vez y animo para seguir con esta labor tan altruista

  42. Esta Genial¡¡¡ Enhorabuena por el trabajo, y gracias por compartirlo.
    Explicaciones claras, concisas y estructuradas. Ojala me lo hubiesen explicado así en la universidad en su día. Yo lo vi hace tiempo y estoy refrescando por que me apasionaba, y el trabajo no me dejo meterme en estas faenas.
    Lo dicho, muchas gracias.
    Voy a seguir leyendo.
    Un saludo.

  43. todo bien…excepto por el sonido muy bajo……nada más…

  44. Ricardo Alegria Cifuentes

    Buen día.

    Quería darte las gracias por la oportunidad que nos das de aprender a programar en step 7. la verdad es mi primera vez frente a esta herramienta pues anteriormente me encontraba dedicado de lleno Rockwell. Bueno saludos y espero seguir encontrado buena información sobre Siemens.

  45. MUCHAS GRACIAS por este gran curso ,estoy realizando un curso on-line y tus videos me sirven de gran ayuda , muchísimas gracias.

  46. Estupendo artículo Iñigo.

    El inicio es normal que sea un poco más pesado, pero es teoría que hay que saber. Me parece que está bien explicado y se ve ganas e ilusión puestas en el curso.

    Yo programé S7 en la carrera y ahora estoy buscando trabajo relacionado con la automatización, por lo que el curso me va a venir muy bien para refrescar los conocimientos. ¡Y a ver si consigo ese preciado trabajo pronto!

    Un saludo y mis felicitaciones.

    P.D: parece que ya ha acabado el curso y te coges unas vacaciones. Pues disfruta y nos vemos a la vuelta.

  47. Enhorabuena por el curso. Ameno y muy didáctico.

  48. Me gusto bastante soy novato en esta materia pero por lo bien explicado que esta, motiva a seguir leyendo y escuchando de ante mano gracias por este aporte

  49. Magnífica iniciativa, me han gustado mucho los tutoriales eso si me gustarían más si fueran realizados para el TIA Portal 12 y en lenguaje KOP, de cualquier manera aprendo muchísimo y extrapolo los conocimientos a mis propósitos. saludos!

  50. Hola, me pareció muy buena la explicación, solo que en mi caso no pude ver los vídeos, ¿Hay algo que pueda hacer, como alguna configuración? o ¿Puedo verlos desde otra página? Para que me quede mas claro todo lo leído.

    Gracias de antemano!

    Saludos desde México

    • Deberías poder verlo usando un navegador cualquiera que soporte HTML5.
      Prueba sino a entrar en el canal de youtube y buscar programacionsiemens.

      Saludos

  51. Alberto Yubaile Perez

    El audio, inaudible

  52. Saludos,lo felicito por su intención de transmitir conocimientos…aunque me quedo con mi rockwell …siemens complica muchoo…jajaja

  53. Bastante interesante tu blog, creo que me animare a comprar tu curso.
    Oye una pregunta, por ejemplo cuando quieres programar un plc de siemens un s300… y quieres que todo corra en una pc… no en pantallas de siemens, si no en un monitor de computador normal, que software ocupas para programar todo eso? leei un articulo y solo me confundió mas..
    lei que era el step 7, el wincc flexible y un runtimes de 512 tags… pero luego leei que el wincc flexible era solo para pantallas de siemens, en serio es muy confuso… a ver si me podrias sacar de dudas.

    Saludos y felicidades por tu sitio.

    • Con el WinCC flexible (o protool en su día) y el runtime puedes conectarte desde un PC a los PLC. Aunque lo suyo para conectarse desde un PLC es usar WinCC ya que WinCC Flexible te sirve para pequeños SCADA

      Digamos que aunque puedes hacerlo con WinCC flexible, este está orientado a las pantallas de Siemens mientras que WinCC está pensado para los PC y es más potente que WinCC flexible. Además WinCC no es válido para las pantallas.

      No sé si con esto respondo a tu pregunta.

      Saludos

      • Hola Iñigo.
        Muchísimas gracias por compartir lo que sabes con los que estamos empezando en estas cosas. De verdad, no es fácil encontrar gente que lo haga.
        Mira, a ver si me puedes solucionar una cuestión. Tengo el TIA portal V12 para programar un PLC (CPU 314C-2 PN/DP) y necesitaría hacer un SCADA para PC. El problema es que no tengo el WinCC runtime, pero tengo el WinCC flexible 2008. ¿Hay forma de hacer el programa en TIA portal y el SCADA en WinCC flexible y poder simularlos en el mismo ordenador de forma que el SCADA siga o actúe con el programa del TIA portal?
        Insisto, muchas gracias.
        Un saludo.

        • Entiendo que no debería haber problemas, pero lo mejor es que hagas un sencillo ejemplo por ejemplo un boton en wincc flexible y ver que en el simulador eres capaz de cambiar el valor de una marca.

          • Si, eso sería lo mejor pero, ¿cómo conecto ambos programas? No se si me explico. En TIA Portal como configuro la red para conectar con el SCADA del WinCC flexible. ¿Y en la otra parte? ¿Cómo configuro la conexión en el WinCC Flexible para conectar con el simulador con el programa del TIA Portal?
            Gracias

          • He hecho un ejemplo con un 315 2DP. He creado una red MPI (le ha asignado la dirección 2). En el lado del PLC nada más. En el lado del Wincc flexible he hecho una conexión por MPI con la dirección 2 y listo. Eso sí, al simular, TIA portal me lanza el PLCSIM 5.4, no es propio de TIA portal. Pero chutar, chuta.
            Con el simulador de TIA y WinCC 2008 no he logrado que pirule ni a través de profinet ni de profibus.

            Saludos

  54. Excelente curso, me parece bastante bueno toda la información impartida la cual desconocía y que por mi carrera es totalmente imprescindible para ejecutar mis labores en la organización donde laboro. Muchas gracias, muy bueno que aun existan personas como tu les guste compartir sus conocimientos sin ningún egoísmo.

    Saludos desde Venezuela.

  55. Hola muy buenas, estaba buscado información sobre Simatic porque lo estoy estudiando en el instituto y tropecé con tu web he leido la primera parte la verdad y es una pasada increible no me puedo creer lo bien que lo explicas poco a poco y paso a paso te animo de corazón y muchas gracias.