Tengo algo que contarte más importante que lo que estás viendo en este vídeo, es muy probable que te interese. Es aquí: www.programacionmultidisciplinar.com/inicio
El mejor canal de programacion de PLC sin duda, tanto por la explicacion IMPECABLE que nos ofreces como tambien por el tiempo que inviertes en prepararlo que se nota.... GRACIAS
Muchas gracias por esas enormes palabras Issam!! La verdad es que si, intento que cada vídeo sea una obra de arte. Y mejoro con cada uno que hago 🔥🔥 Un Abrazo máquina!
Excelente sus vídeos Ing. Abel, les estoy dando caña uno por uno, y estoy aprendiendo bastante con su metodología y si me falla, vuelvo a analizarlo. Como dato interesante para este vídeo, estoy usando TIA 16, y cuando le intento cargar el Loop Infinito el mismo TIA me lo reconoce y no deja cargar el programa. Saludos desde México
Gracias por la info Jorge! Desconocía que la v16 ya tuviera la funcionalidad de detectar bucles infinitos, parece que estos de Siemens van mejorando 🤣 Siempre se aprende algo nuevo. Salu2 crack!
Buenos días Abel, me gustaría entender la diferencia entre declarar la variable i como temporal, o dentro de la DB. Como siempre, gracias por tu esfuerzo.
En los vídeos de FC y FB hablo sobre ello, aunque ahora que lo pienso, no tengo un vídeo exclusivamente hablando de esto. Pero bueno, la diferencia es que una variable estatica o static, es una variable que guarda el último valor que tuvo antes de que se terminara el ciclo de scan, y en el siguiente ciclo de scan parte de ese último valor. Las variables static solo existen en las DB. Por otro lado, las variables temporales o temp, son variables que no guardan su valor en la memoria de la cpu, por tanto, cuando finaliza el ciclo de scan, la variable temporal pierde su valor y cuando empieza un nuevo ciclo de scan, dicha variable empieza con su valor por defecto, que suele ser 0. Un saludo y gracias por el apoyo!
@@programacionmultidisciplinar y si creas una variable temporal booleana y al final del ciclo scan la dejas seteada con un set? tambien pierde su valor?
Excelente...!! Tengo una duda. Existen los hilos o multitareas en los PLC de Siemens? Me refiero a que si debo de hacer un bucle esperando una respuesta que demore, hacerlo asíncronamente (o en paralelo) al OB1 para así no perder el control del proceso principal.
Lo más parecido a los threads que tiene TIA Portal, al igual que en Step 7, es el OB35, Cyclic Interrupt. Se trata de un OB que se ejecuta de manera independiente al OB Main, y más rápido todavía. Lo que hace en realidad es parar la ejecución del main, ejecutar el ob35 y luego retoma el main, así sucesivamente. El tema es que un OB Cyclic interrupt se puede ejecutar cada 10 ms si quieres (es configurable), así que en realidad, aunque se pare el main para ejecutar dicho OB, no lo vas ni a notar. Saludos!
En buena hora ingeniero estos vídeos tutoriales de PLC SIMATIC que está impartiendo, lo hará también en forma práctica con un PLC real? Saludos desde CDMX 🇲🇽.
Ojala pudiera, pero no dispongo de un PLC físico, ni tampoco de espacio para material para el tema de fuentes de alimentación, bastidor etc. De todas formas, para saber programar un PLC no es necesario tener uno. Aunque si bien es cierto que me gustaría tenerlo para explicar temas sobre todo de hardware. Un saludo.
Gracias por su respuesta sincera, hice este comentario por qué en el campo de trabajo industrial la programación simulada a veces no es lo que uno espera en la realidad. Hasta pronto y muchas gracias 🇲🇽
@@RamonMartinez-tz3yu Tengo ejercicios con factory io (y todavía tengo muchos mas que subir) que simulan muy bien una instalación de transportes real, es lo mas parecido a tener un plc real en una instalación.
Hola ingeniero , excelente contenido ! muchas gracias por compartirlo🙌🙌. Tengo una duda , si mi ciclo scan lo determino de 1 segundo y dentro del main tenga un for y ademas programo de una forma que durante cada ciclo scan el i que cumple la función de iteración tenga diferentes valores , es decir que en el primer ciclo scan tengo un valor de i=3 y por lo tanto demore menos tiempo cuando este en el for pero en el siguiente ciclo scan el i=100 por lo tanto demorara mas en la funcion for. Entonces el tiempo de ciclo scan que yo determino no se respeta ? por que en algunos casos el for puede demorar hasta mas del tiempo del ciclo scan , por ejemplo en el while cuando entra a infinito
Buenas pelecero, El ciclo de scan no lo puedes determinar tu, lo que si puedes determinar es el ciclo de vigilancia o watchdog, que te salta un aviso si el ciclo de scan excede el configurado en el watchdog. El ciclo de scan es variable, y depende del programa que esté ejecutando el PLC; su extensión, tipo de lenguaje, recursos utilizados, bucles... Además piensa que al final un PLC es como un ordenador, nunca va a ejecutar lo mismo en el mismo tiempo, ya que el PLC tiene ejecutando en segundo plano subrutinas, invisibles para nosotros, pero que existen. Luego, un ciclo de scan de 1 segundo es una locura, eso significa que algo hay mal en el programa, directamente es imposible que tengas ese ciclo de scan. Si quieres ver el ciclo de scan, en online y diagnóstico lo puedes ver. Eso si, solo el ciclo de scan de un PLC real es auténtico. Si estás simulando con PLCSIM el ciclo de scan que te aparece, también es simulado, y de hecho, es un ciclo de scan falso, ya que se basa en los recursos de tu propio ordenador. Salu2!
@@programacionmultidisciplinar Muchas gracias por la explicación ingeniero , solo tengo un duda en cuestión de los temporizadores , como el ciclo scan trabajo con ellos , por q los temporizadores vi que se puede poner segundos y minutos .
hola Ing, tiene algún video de como configurar las entradas de conteo rápido? , es que tengo una aplicación de un contador de pastillas y tengo algunas dudas, saludos.
Y las que se declaran como constant dentro de la interfaz de bloque, aunque no venga al caso puedes poner un ejemplo de un caso en el que se declare algo ahí?:)
Una variable constant es una variable constante, es decir, es una variable la cual le asignas un valor en su valor de arranque y ese va a ser su valor siempre, y no lo puedes cambiar. De hecho, si declararas una linea de código alterando su valor, el compilador de tia portal te daría error. Yo rara vez uso constantes, y no las he visto apenas usarse, porque básicamente podrías usar una variable static o temp y en el primer segmento de la función, llamar a dicha variable y asignarle el valor deseado para el resto de ejecución del programa. Por ejemplo, si estás programando una secuencia de pasos, tipo grafcet, podrías declarar las etapas como variables const, por ejemplo si quieres q tu etapa de seguridad sea el número 100, declaras como const EtapaSeguridad = 100. Pero ya te digo, apenas se usan el tipo const. Un saludo.
Buenas Abel, al hacer uso de "EXIT" dentro de un bucle dentro de otro (bucles anidados), ¿éste hace que el programa salga sólo del primer bucle o nos sacaría de todos los bucles anidados?
Tengo algo que contarte más importante que lo que estás viendo en este vídeo, es muy probable que te interese. Es aquí: www.programacionmultidisciplinar.com/inicio
El mejor canal de programacion de PLC sin duda, tanto por la explicacion IMPECABLE que nos ofreces como tambien por el tiempo que inviertes en prepararlo que se nota.... GRACIAS
Muchas gracias por esas enormes palabras Issam!! La verdad es que si, intento que cada vídeo sea una obra de arte. Y mejoro con cada uno que hago 🔥🔥
Un Abrazo máquina!
Yo también quede desconcertado cuando vi el valor de 11 en "i" jajaja.
Excelente video.
Parece que no fui el único 😂
Excelente sus vídeos Ing. Abel, les estoy dando caña uno por uno, y estoy aprendiendo bastante con su metodología y si me falla, vuelvo a analizarlo. Como dato interesante para este vídeo, estoy usando TIA 16, y cuando le intento cargar el Loop Infinito el mismo TIA me lo reconoce y no deja cargar el programa.
Saludos desde México
Gracias por la info Jorge!
Desconocía que la v16 ya tuviera la funcionalidad de detectar bucles infinitos, parece que estos de Siemens van mejorando 🤣
Siempre se aprende algo nuevo.
Salu2 crack!
Buenos días Abel, me gustaría entender la diferencia entre declarar la variable i como
temporal, o dentro de la DB. Como siempre, gracias por tu esfuerzo.
En los vídeos de FC y FB hablo sobre ello, aunque ahora que lo pienso, no tengo un vídeo exclusivamente hablando de esto. Pero bueno, la diferencia es que una variable estatica o static, es una variable que guarda el último valor que tuvo antes de que se terminara el ciclo de scan, y en el siguiente ciclo de scan parte de ese último valor. Las variables static solo existen en las DB. Por otro lado, las variables temporales o temp, son variables que no guardan su valor en la memoria de la cpu, por tanto, cuando finaliza el ciclo de scan, la variable temporal pierde su valor y cuando empieza un nuevo ciclo de scan, dicha variable empieza con su valor por defecto, que suele ser 0.
Un saludo y gracias por el apoyo!
@@programacionmultidisciplinar y si creas una variable temporal booleana y al final del ciclo scan la dejas seteada con un set? tambien pierde su valor?
@@user-vq5tb9jn7n Si, porque el PLC no guarda en memoria el último valor que tenía antes de finalizar el ciclo de scan.
Excelente...!! Tengo una duda. Existen los hilos o multitareas en los PLC de Siemens? Me refiero a que si debo de hacer un bucle esperando una respuesta que demore, hacerlo asíncronamente (o en paralelo) al OB1 para así no perder el control del proceso principal.
Lo más parecido a los threads que tiene TIA Portal, al igual que en Step 7, es el OB35, Cyclic Interrupt. Se trata de un OB que se ejecuta de manera independiente al OB Main, y más rápido todavía. Lo que hace en realidad es parar la ejecución del main, ejecutar el ob35 y luego retoma el main, así sucesivamente.
El tema es que un OB Cyclic interrupt se puede ejecutar cada 10 ms si quieres (es configurable), así que en realidad, aunque se pare el main para ejecutar dicho OB, no lo vas ni a notar.
Saludos!
En buena hora ingeniero estos vídeos tutoriales de PLC SIMATIC que está impartiendo, lo hará también en forma práctica con un PLC real? Saludos desde CDMX 🇲🇽.
Ojala pudiera, pero no dispongo de un PLC físico, ni tampoco de espacio para material para el tema de fuentes de alimentación, bastidor etc. De todas formas, para saber programar un PLC no es necesario tener uno. Aunque si bien es cierto que me gustaría tenerlo para explicar temas sobre todo de hardware.
Un saludo.
Gracias por su respuesta sincera, hice este comentario por qué en el campo de trabajo industrial la programación simulada a veces no es lo que uno espera en la realidad. Hasta pronto y muchas gracias 🇲🇽
@@RamonMartinez-tz3yu Tengo ejercicios con factory io (y todavía tengo muchos mas que subir) que simulan muy bien una instalación de transportes real, es lo mas parecido a tener un plc real en una instalación.
Excelente . Gracias .
Hola ingeniero , excelente contenido ! muchas gracias por compartirlo🙌🙌. Tengo una duda , si mi ciclo scan lo determino de 1 segundo y dentro del main tenga un for y ademas programo de una forma que durante cada ciclo scan el i que cumple la función de iteración tenga diferentes valores , es decir que en el primer ciclo scan tengo un valor de i=3 y por lo tanto demore menos tiempo cuando este en el for pero en el siguiente ciclo scan el i=100 por lo tanto demorara mas en la funcion for. Entonces el tiempo de ciclo scan que yo determino no se respeta ? por que en algunos casos el for puede demorar hasta mas del tiempo del ciclo scan , por ejemplo en el while cuando entra a infinito
Buenas pelecero,
El ciclo de scan no lo puedes determinar tu, lo que si puedes determinar es el ciclo de vigilancia o watchdog, que te salta un aviso si el ciclo de scan excede el configurado en el watchdog.
El ciclo de scan es variable, y depende del programa que esté ejecutando el PLC; su extensión, tipo de lenguaje, recursos utilizados, bucles...
Además piensa que al final un PLC es como un ordenador, nunca va a ejecutar lo mismo en el mismo tiempo, ya que el PLC tiene ejecutando en segundo plano subrutinas, invisibles para nosotros, pero que existen.
Luego, un ciclo de scan de 1 segundo es una locura, eso significa que algo hay mal en el programa, directamente es imposible que tengas ese ciclo de scan. Si quieres ver el ciclo de scan, en online y diagnóstico lo puedes ver. Eso si, solo el ciclo de scan de un PLC real es auténtico. Si estás simulando con PLCSIM el ciclo de scan que te aparece, también es simulado, y de hecho, es un ciclo de scan falso, ya que se basa en los recursos de tu propio ordenador.
Salu2!
@@programacionmultidisciplinar Muchas gracias por la explicación ingeniero , solo tengo un duda en cuestión de los temporizadores , como el ciclo scan trabajo con ellos , por q los temporizadores vi que se puede poner segundos y minutos .
hola Ing, tiene algún video de como configurar las entradas de conteo rápido? , es que tengo una aplicación de un contador de pastillas y tengo algunas dudas, saludos.
No, eso no lo he explicado
@@programacionmultidisciplinar pero si habrá un vídeo de ese tema?
Y las que se declaran como constant dentro de la interfaz de bloque, aunque no venga al caso puedes poner un ejemplo de un caso en el que se declare algo ahí?:)
Una variable constant es una variable constante, es decir, es una variable la cual le asignas un valor en su valor de arranque y ese va a ser su valor siempre, y no lo puedes cambiar. De hecho, si declararas una linea de código alterando su valor, el compilador de tia portal te daría error.
Yo rara vez uso constantes, y no las he visto apenas usarse, porque básicamente podrías usar una variable static o temp y en el primer segmento de la función, llamar a dicha variable y asignarle el valor deseado para el resto de ejecución del programa.
Por ejemplo, si estás programando una secuencia de pasos, tipo grafcet, podrías declarar las etapas como variables const, por ejemplo si quieres q tu etapa de seguridad sea el número 100, declaras como const EtapaSeguridad = 100. Pero ya te digo, apenas se usan el tipo const.
Un saludo.
Buenas Abel, al hacer uso de "EXIT" dentro de un bucle dentro de otro (bucles anidados), ¿éste hace que el programa salga sólo del primer bucle o nos sacaría de todos los bucles anidados?
Solo del bucle donde se llame