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
ABEL MUCHAS GRACIAS, MUY BUENA EXPLICACIÓN 😜. YO QUE VENGO DE CERO RESPECTO A PLCs QUE HACE UN MES NO TENIA NI IDEA Y GRACIAS A ESTE CURSO Y SIGUIENDO CLASE A CLASE VOY ENTIENDO TODO PERO AÚN ASÍ ESTO TIENE TELA🤪. PERO BUENO AÚN ASÍ CON MUCHAS GANAS DE VER LA SIGUIENTE CLASE 💪🏼💪🏼💪🏼 SALUDOS.
@programacionmultidisciplinar3 жыл бұрын
Poco a poco y con trabajo seguro que llegarás a tener un buen nivel programando PLC🚀🚀 Saludos Luís!
@pablopino41988 ай бұрын
Me ha encantado tu solución para ahorrar memoria.
@brunomafra78826 ай бұрын
Entiendo tus razones i hasta cierto punto lo veo lógico. Me pongo en situación i para activar un bool, luego usas una comparación con el número que quieres. Pero un RESET también es de utilidad. Supongamos que tienes 5 contadores en una línea de producción i al final de cada turno quieres ponerlos todos a 0. Puedes compartir una única variable para todos. Con SUB i ADD como lo haces? Gracias por el curso. Es de mucha utilidad.
@vicentech1718 Жыл бұрын
Hola, estoy siguiendo tu curso y quiero felicitarte por darnos esta oportunidad de forma gratuita 👏. Respecto de la memoria de carga y trabajo... La memoria de carga del bloque despues de ser cargado se combierte en memoria de trabajo? porque en un video anterior comentaste que en STEP7 te deja ir cargando los bloques que quieres y asi evitar que la CPU pase a STOP. Donde miras la memoria libre que le queda al plc ?, se puede saber cuanta memoria de carga necesita el programa entero antes de cargarlo?, sin tener que ir viendo bloque a bloque. Muchas gracias, de antemano
@programacionmultidisciplinar Жыл бұрын
Buenas Vicentech, Lo que cargas de programa se va a la memoria de carga, y digamos que el plc, lo que hace es que, lo que ejecuta es lo que tiene en la memoria de trabajo. Por decirlo de algun modo, el plc justo antes de ejecutar el programa, pasa lo de la memoria de carga a la memoria de trabajo, pero son memorias diferentes. La memoria libre se mira en el diagnostico online, tengo un vídeo donde lo explico. Y no, no puedes saber la memoria que va a ocupar lo que vas a cargar, ya que el PLC esto lo evalúa cuando vas a realizar la carga. Lo que si te dice el PLC justo antes de cargar, es si vas a exceder la memoria de carga o no (si la excedes, la cpu pasará a stop en caso de que le des a "cargar") Salu2 pelecero
@abelnohpalbriones5631 Жыл бұрын
Realice la simulación usando comparadores y realmente funciona igual, simplemente cómo estás trabajando con Flancos es necesario usar el reset pero queda genial.
@gerardocanizarestovar92183 жыл бұрын
Buenas noches Abel, realice el contador con ADD Y SUB pero al momento de simular no me funciona, no se si tenga que ver por el tipo de variables, en uno de los ejercicios que hiciste el contador lo hiciste con FC entonces no se tengo esa duda a ver si me aclaras mil gracias.
@estebanpadilla8630 Жыл бұрын
Buenas noches, Abel ¿Existen otras funciones que también reemplacen a los bloques de temporización TON, TOFF y TONR? Para de esta forma ahorrar memoria de trabajo y no crear un db instancia individual por cada timer que agreguemos. Saludos. Excelente explicación muy clara y precisa.
@sergiof8113 Жыл бұрын
Gracias Abel
@guillemartinez45562 жыл бұрын
Hola Abel, antes de nada quería agradecerte que hayas subido este curso tan completo. Me podrías decir cómo se accede a la ventana de sistema de información. Un Saludo!
@programacionmultidisciplinar2 жыл бұрын
La ayuda de Siemens? F1
@AlexSilva-hc9iu Жыл бұрын
Hola Abel como estas? Mira que si uso ADD necesitaría un comparador para poder activar una memoria de salida, además de eso también faltaría una instrucción para resetear el ADD. Lo mismo pasa con un SUB. Al final debes ocupar 3 líneas o segmentos
@brayanmendozahernandez6981 Жыл бұрын
Una pregunta, como le haces para sacar la información de los contadores?
@yeinarsalazar9462 жыл бұрын
Gracias por el video, no habia tenido en cuenta lo de la memoria del plc, pero quisiera saber como hago cuando quiero resetear este valor del contador con esta tecnica desde la hmi. Gracias!
@programacionmultidisciplinar2 жыл бұрын
Buenas Yeinar, Te refieres a resetear el valor del conteo cuando usamos ADD y SUB como contadores? Lo suyo sería (si lo quieres hacer desde HMI), que el botón del HMI, al pulsar, lo que hagas en el PLC es contacto abierto de la variable del botón, te active un MOVE y le pongas un 0 a la variable del contador! Salu2 pelecero!
@David-ng2tl3 жыл бұрын
¡Hola! Primero de todo, agradecerte la labor que haces difundiendo conocimiento con la programación de autómatas Siemens Respecto al vídeo, he intentado realizar el ejemplo del sumador y restador. En mi caso he usado un contacto asociado a una entrada y al simularlo, cuando activo dicha entrada el detector de flanco me detecta durante el tiempo que estoy a "1" ese valor y se va incrementando el valor. A nivel de electrónica. Con un Arduino eso se puede resolver poniendo un tiempo de espera antes de evaluar el estado del pulsador, pero aquí no sé como hacerlo. ¿Hay alguna cosa que estoy haciendo mal? Muchas gracias.
@programacionmultidisciplinar3 жыл бұрын
Buenas David, Primero que todo, gracias por el apoyo! Con respecto a tu pregunta, si. Lo que ocurre, es que si realizas un ADD o SUB con un contacto, el PLC a cada ciclo de scan, es decir cada vez que ejecuta el programa, detecta esa variable del contacto a 1 y por tanto realiza esa suma o esa resta. Para solucionarlo, tienes que asignarle a ese contacto un flanco ascendente, para que solo sume o reste la primera vez que el contacto se pone a 1. En el canal tengo un vídeo donde explico los flancos. Un saludo!
@gerardocanizarestovar92183 жыл бұрын
Buenas noches ya solucione, era problema de variables, la pregunta seria bueno ya cuanta pero para complementar el ejercicio toca meter un comparador para verificar la variable que guarda el conteo y compararlo con algún valor X y luego hacer que nos active una salida por ejemplo?
@programacionmultidisciplinar3 жыл бұрын
Sí, así es. Guardas el conteo en una variable y cuando alcance el valor deseado entonces que active una salida, Buen trabajo!
@diegorguez26602 жыл бұрын
Hola, tengo una pregunta, si realizo el contador con add pero al llegar a cierto numero en mi cuenta determinado por mi, ¿Cómo podría conseguir ese 1 lógico que sí me dan los bloques de contadores en su salida? Muchas gracias por los videos aprendo mucho!!
@programacionmultidisciplinar2 жыл бұрын
Buenas Diego, Para eso debes crearte una variable bool, de tal manera que después del ADD, añades un comparador de "si el valor es mayor o igual que", se active una bobina con esa variable. Una buena manera es crearse un contador caso en una FC, así la reutilizas siempre que quieres. Salu2 pelecero!!
Hola dices de no usar un contador pero tengo una pregunta si usas una funcion suma o resta para hacer esa funcion despues tienes que poner un bloque condicional IF para que te active o desactive la bobina cuando cuente hasta el numero que tu quieres. Muchas gracias por tus clases estan espectaculares.
@programacionmultidisciplinar Жыл бұрын
Buenas Felipe, La forma más sencilla es condicionar esa suma o resta a un tope máximo, por ejemplo, a cada activación de flanco súmate en 1 unidad siempre y cuando seas menor a 8. ¿Y cuando reseteo y como? Pues bien, cuando tu quieras resetear el contador, es tan facil como, con un MOVE si usas KOP, pasarle un 0 a la variable de conteo. Esto si se hace en una FC, es más sencillo, ya que solo tendrías que llamar a dicha función por el programa. Esto es gustos colores, puedes usar los contadores de tia portal sin problema, pero a mi personalmente no me gustan, me generan muchas DB de Instancias (ocupan memoria de más por la cara) y solo permiten incrementos de 1 en 1. Salu2 pelecero!
@hersonguzman86622 жыл бұрын
Estimado Abel en la alternativa que tu dices a los contadores con funciones matemáticas, me imagino que también se necesita usar operaciones de comparación para habilitar algo. otra observación como haríamos el reset de los datos del contaje con el método de funciones matemáticas
@programacionmultidisciplinar2 жыл бұрын
con un move, haces un move del valor 0 a la variable de contaje cuando ocurra un evento, así lo reseteas. Salu2 Herson
@anamariahernandezpinzon85083 күн бұрын
algunos videos se cortan o se suben completos como el anterior
@juangonzalezassimontti4407 Жыл бұрын
Para hacerlo en AWL, una forma sencilla como ya ha comentado una compañera es con la funciones contador que nos da TIA PORTAL. (Instrucciones-AWLMnemónica) Se deben crear variables (globales) tipo counter para asignar a dicho contador. yo he lo he hecho de la siguiente manera: (de esta forma cada vez que sumamos 1 en la variable contador, podemos hacer que el resultado sea el múltiplo que le asignemos) U "Marcas Internas".Marcas."M0.0" FP "Marcas Internas".Flancos.FL1 ZV "contador1" L "contador1" L 20 *I T "Marcas Internas".Datos[0]
@melissaperez870 Жыл бұрын
También hay otra manera más sencilla de hacer un contador, es usando los contadores ZV (incrementa) y ZR (decrementa) que están en contadores, carpeta Legacy, ellos solo utilizan una variable tipo counter que ocupa de espacio solo 16 bits. Solo necesitaría el contacto de activar el contador y listo (no tiene que ser de impulso)
@programacionmultidisciplinar Жыл бұрын
Gracias por el aporte Melissa! TIA Portal tiene tantas herramientas que esos contadores los desconocía! Tienen pinta de ser heredados del antiguo Step7... Siempre se aprende algo nuevo. Salu2 pelecera!
@gerardodenovalesdelapuente86882 жыл бұрын
Buenas Abel, si al usar ADD o SU no usas un flanco, ¿se suman las variables infinitamente en cada ciclos de scan? ¿Por eso se debe usar flancos? ¿Cómo se usarían los contadores en AWL?
@programacionmultidisciplinar2 жыл бұрын
Si, se sumarian a cada ciclo de scan, por eso es necesario un flanco. En AWL utilizo sumas y restas, nunca he utilizado contadores (lo veo innecesario)
@reyesgustavosanchezarce11103 жыл бұрын
HOLA BUENAS TARDES, AGRADEZCO SUS VIDEOS SON MUY BUENOS. SE ME ACABA DE OCURRIR UNA PREGUNTA, ¿COMO PUEDO REALIZAR UN DETECTOR DE FLANCOS EN SCL O AWL? AGRADEZCO SUS RESPUESTAS.
@programacionmultidisciplinar3 жыл бұрын
Te refieres a un flanco positivo o negativo? En AWL tienes las instrucciones FP y FN (en el curso tengo un vídeo de flancos donde lo explico). En SCL existen las instrucciones P_TRIGG y N_TRIGG, aunque personalmente no me gusta hacer flancos en SCL. Un saludo!
@reyesgustavosanchezarce11103 жыл бұрын
@@programacionmultidisciplinar Muchas gracias por responder, si mire el video, seguramente me distraje lo volvere a ver, por cierto la informacion es muy clara, gracias.
@DAngello7772 жыл бұрын
Buen día, una consulta, me fijé que en Step7 y en TiaPortal hay una función llamada "FR", que supuestamente habilita un contador, pero estuve intentando usarla en Step7 y no encontré cómo. No sé si la has usado en algún momento, que pudieras orientarme en coómo es que funciona.
@programacionmultidisciplinar2 жыл бұрын
Buenas Angello, La función FR es solo para AWL, se puede usar en 300, 400 y 1500. La función simplemente habilita un contador, si buscas en la ayuda de Siemens te explicará mejor como y con un ejemplo, es muy sencillo. Salu2
@DAngello7772 жыл бұрын
@@programacionmultidisciplinar Buen día, así es, estuve investigando en las ayudas y pdfs de AWL, pero no te muestra una aplicación o un uso práctico. De hecho no encuentro por ninguna parte un buen ejemplo de su utilización. Realmente es una duda personal, supongo que absolutamente nadie utiliza esa función.
@cavihadesАй бұрын
Hola, el video anterior de Temporizador se corta y no aparece nada de AWL, porque será esto?
@luisguzman6426 Жыл бұрын
Control de la cantidad de un ítem en almacén
@enriqueoswaldoparedesmoren41243 ай бұрын
Al hacer un contador con el bloque de suma de que manera reseteo el contador
@MartinUnold Жыл бұрын
Hola! Intenté hacer el contador en AWL pero se me incrementa en cada ciclo de Scan... No se cómo condicionar la carga de datos (L) en este caso con el valor del flanco positivo. Finalmente la idea era que al llegar a "5" la variable se encienda un motor. U "DB_pruebaContadores".activarContador1 FP "DB_pruebaContadores".flanco[1] L "DB_pruebaContadores".miNumero1 L 1 +I T "DB_pruebaContadores".miNumero1 L "DB_pruebaContadores".miNumero1 L 5 >=I = "DB_pruebaContadores".motor2 @ProgramacionMultidisciplinar gracias nuevamente por el contenido, espero que alguno pueda hecharme una mano. Saludos y gracias desde ya.
@programacionmultidisciplinar Жыл бұрын
Hola Martín, El problema es que no estás condicionando el incremento a ese flanco, haces el flanco, y luego haces el incremento, prueba con esto: U "DB_pruebaContadores".activarContador1 FP "DB_pruebaContadores".flanco[1] U ( L "DB_pruebaContadores".miNumero1 L 1 +I T "DB_pruebaContadores".miNumero1 ) L "DB_pruebaContadores".miNumero1 L 5 >=I = "DB_pruebaContadores".motor2 Salu2 pelecero!
@MartinUnold Жыл бұрын
@@programacionmultidisciplinar Abel perdón pero no puedo lograr condicionar esa carga de datos a una condición previa. Probé con lo que me dijiste y pasa lo mismo, también intenté haciendo uso de SALTOS pero con SPB el RLO siempre está en "1" y no logro cambiarlo... hay algo que no estoy viendo o entendiendo de cómo programar en AWL, podrías ayudarme por favor. Saludos y gracias de nuevo. U "contador".activarContador FP "contador".flanco SPB CONT CONT: L "contador".miNumero L 1 +I T "contador".miNumero L "contador".miNumero L 5 >=I = "contador".motor
@programacionmultidisciplinar Жыл бұрын
@@MartinUnold discúlpame, me equivoque yo completamente que se me fue la pinza. Para sumar en AWL, necesitas una etiqueta de salto, simplemente con un flanco no te funcionará, te dejo el código: U "DB_pruebaContadores".activarContador1 FP "DB_pruebaContadores".flanco[1] SPBN BUCLE L "DB_pruebaContadores".miNumero1 L 1 +I T "DB_pruebaContadores".miNumero1 BUCLE: NOP 0 U( L "DB_pruebaContadores".miNumero1 L 5 >=I ) = "DB_pruebaContadores".motor2 Date cuenta además, que para darle un valor a una variable booleana en awl, necesitas la instruccion U, que en motor 2, no la tenias, asignabas "=" justo después del comparador, y eso no funciona asi. Espero te sirva y disculpa de nuevo!
@MartinUnold Жыл бұрын
@@programacionmultidisciplinar Perfecto!!! Ahora sí y para complementar el tema es ideal el video de SALTOS en AWL (Instrucciones SPB y SPBN) que es justamente lo que necesitaba, saber cómo condicionar en AWL. Gracias Abel
@miguelr.59992 жыл бұрын
Si me hago mi propio CTU, ¿cómo hago para resetearlo a 0 de nuevo?
@programacionmultidisciplinar2 жыл бұрын
Hola Miguel, Con un move, haces un move del valor 0 a la variable de contaje cuando ocurra el evento de reset, así lo reseteas. Salu2 pelecero