Hola, muy buen video, podrías por favor realizar un ejemplo en la conexión entre estos dos PLC, por ejemplo un semáforo en uno de ellos, gobernado por una botonera en el otro, o algún ejemplo así, muchas gracias:)
Buenos días Abel, puedes explicar en algún video como funciona y qué configuraciones tiene un PN/PN coupler? No hay videos que valgan algo en español sobre esto... Gracias !
Estimado es genial tu canal , he aprendido mucho , tambien tengo una consulta bueno tengo 2 PLC S7300 pero son de distinas IP y por razones de otros componetes que tiene cada uno en sus redes no puedo cambiarlas de IP, mi duda es como podria enviar un dato entre ellos 2 PLC ya que tiene distina IP alguna idea quisas para orientarme , saludos.
Buenas Danilo! Diferentes IP van a tener si o si, supongo que te refieres a que están en subredes diferentes, no? Si solo tienen un puerto de subred, la única manera es ampliar ambos PLC con tarjetas de conexión de red para poder utilizar una red diferente en la cual ambos estén en la misma subred! Saludos pelecero!
Ahora mismo la parte de podcast la tengo muy abandonada, estoy con otros proyectos, entre ellos, mi academia, y no me da la vida. Cuando tenga algo de tiempo subiré más podcast. Salu2 pelecero!
Buen día, primero que nada, muchas gracias por el video, es muy bueno. Sólo me quedó una duda, entonces si el otro PLC al que quiero transferir datos no está en el proyecto de TIA Portal, al momento de direccionar en el ADDR_1 el DB del otro PLC, sólo tiene que coincidir el número de DB del otro PLC? Gracias
Buenas Luís, Así es, el DB que pongas debe ser al que deseas leer/escribir en el otro PLC. Por ejemplo si quieres leer de un PLC que no tienes en tu proyecto, y concretamente quieres leer de su DB 104, pues deberás poner en tu GET el DB104. Salu2 pelecero!
Buenas tardes maestro, esto seria posible con un interlocutor plc de otro fabricante? Es decir por ejemplo escribir datos en un Schneider??? ( o otro PLC) muchas gracias por tu canal, me sirve para muchas dudas en el trabajo!
Buenas Jordi, Nop, el GET y el PUT forman parte de la comunicación S7, solo disponible en PLC de la marca Siemens. Digamos que es un protocolo de comunicación único para productos Siemens (plc, variadores, hmi, scada...) Para conectar plc siemens con otras marcas, hay que hacerlo por otras vías, como por ejemplo modbus o opc. Salu2 pelecero!
Buenos días Abel. Cuando pones "P" delante de los DB, porque se hace así? Se debe de hacer así porque lo utilizas como un puntero para buscar en un área de memoria de un DB a otro DB? Gracias.
Buenas Francisco, Las funciones GET y PUT necesitan el parámetro de entrada, es decir, la dirección del DB y de las variables a leer/escribir de esa manera. Si vas a la ayuda de Siemens verás que la manera de hacerlo es así, quiero decir que no hay otra manera. Se hace de esa manera precisamente por lo que comentas. Como tienes que hacer referencia a X datos de un DB, la función necesita que se le pase como parámetro un DB en formato puntero, especificando la longitud de datos y su tipo. Saludos!
Hola buenos días, una consulta. Cuando ingreso el bloque get o put y le escribo en el RD1: P#DB2.DBx0.0 int 3 me sale en rojo con una información que dice: EN BLOQUES CON ACCESO OPTIMIZADO NO ESTA PERMITIDO EL ACCESO ABSOLUTO DE DATOS. me puedes ayudar con eso porfavor.
Buenas pelecero, eso es porque no puedes acceder con direcciones absolutas a un db optimizado. Te dejo este post donde lo explico al detalle: www.programacionmultidisciplinar.com/curso-tia-portal/bloques-de-datos/db-optimizado-vs-no-optimizado/ Salu2!
Hola buenas, tienes un video donde después de realizar el PUT y GET, envíes información atreves de los DB's que programaste? para saber como y que dato enviar. por favor.
Buenasss, a ver si me puedes resolver esta duda respecto a las funciones GET/PUt en SCL. Estoy intentando dinamizar una funcion con una cascada de llamadas tipo Get/put ( para hacer una lectura de muchos parametros de otra cpu) y para no repetir segmentos estoy programando en SCL. El problema lo tengo en como dinamizar el parametro ADDR_1 (tipo remote) en funcion del valor de una variable tipo int ( es decir con un Case asignar valores al "puntero" tipo Remote) para de esta forma solo insertar una llamada a un GET . Muchas gracias, a ver si me podéis ayudar
Prueba a ver si puedes poner en el get/put variable tipo variant a ver si te deja coger todos los datos que deseas de una (no lo he probado nunca). De todas maneras te digo que en el tema de comunicaciones, es preferible repetir los bloques que dinamizarlo con un bucle, nunca sabes cuando te va a tocar modificar un bloque de comunicación en concreto. Por no mencionar el clock que necesitas en el request, es muy posible que intentar leer el bloque X veces en un bucle te perjudique a la hora de activar y desactivar el request de algunas llamadas. En lo personal, no recomiendo lo que tienes pensado hacer con los gets puts (aunque si es algo que hubiera hecho hace años, para que negarlo 🤣) Pero bueno, como respuesta a tu pregunta, prueba a crear una variable tipo Any en el main o donde llames los gets/puts y prueba a asignarle los punteros, creo que así te dejará. Saludos!
@@programacionmultidisciplinar Solo puede tener tipo Remote. Sabrias como convertir una variable tipo ANY (ejemplo: "P#DB100.DBX0.0 INT 100") en una tipo REMOTE?
@@programacionmultidisciplinar En un FC o FB sin acceso optimizado si se puede. el problema viene al asignarle el valor, que no te deja, dice tipo de dato incorrecto. Si en la patilla del GET ADDR_1 pones por ejemplo este puntero "P#DB100.DBX0.0 INT 1" no hay problema. Pero si a una variable tipo REMOTE le asignas este valor, no te deja, da error de tipo de dato..... Y a la aptilla del GET no se le puede poner otro tipo de datos . Asi que el problema viene en como asignar valor a una variable tipo REMOTE......
@@integra0232 He visto en la ayuda de siemens que el tipo remote, el tipo base es un any. Te recomiendo que mires el vídeo que tengo de punteros any para aprender a cómo configurarlos, porque no vas a poder chutarle como tal el "P#DB100.DBX.0.0 INT1"
Buenas Mario, Pues se hace exactamente de la misma manera. La forma de utilizar get y put en Step7 es igual que en TIA Portal, solo que tendrás que tener en cuenta que ID hay en cada PLC. Salu2 pelecero
@@programacionmultidisciplinar En el plc s7 300 no aparece la opción de "permitir acceso vía comunicación PUT/GET del interlocutor remoto" , no es necesario hacer esto con los plc s7 300??
@@programacionmultidisciplinar tengo un plc s7 1200 pero es la versión penúltima en tía portal, y no me sale la opción de "Conexión de mecanismos " en protección y seguridad, pero ya leí que es porque esa versión no tiene la comunicación S7 :(
Buenas Isra, Tienes las licencias de HMI instaladas en el automation license manager? Si la respuesta es si y te sigue pasando, te recomiendo reinstalar por completo, o probar con otra versión. Hay gente a las que, inexplicablemente, le pasan este tipo de cosas... Saludos!
Hice esto, me funciono perfecto en la simulación y cuando intento hacer la comunicación con los plc físicos exactamente lo que funciono en simulación ya no funciona en la vida real, los cables están bien, a alguien si le funciono con plc físicos?
Supongo que en los 2 PLC tienes habilitado el get/put y los enlaces S7 no te dan error cuando te conectas online, verdad? Mmmm, no sabría decirte sin tener más información. En el online y diagnostico te dice algo interesante? A nivel de cableado es simplemente un cable ethernet entre ambos PLC, sin más. Que estén en la misma subred. Lo que si te recomiendo es que mires el error que te lanza el get/put y buscar ese error en el manual de siemens (si pulsas F1 en TIA Portal te aparece) a ver que te dice.
@@programacionmultidisciplinar Asi es tongo todo correctamente, la unica forma que logre hacerlo funcionar fue usando BYTES en lugar de BOOL o INT, y use DWORD para sustituir los REAL, muy extraño pero al final funciono. Gracias por el soporte.
@@juanmgallardo6426 Buenas, a mi me está pasando exactamente lo mismo, tengo los dos PLCs en la misma subred, los mismos DBs creados que Abel y el bloque GET idéntico. Sin embargo no se escribe nada en el DB. La comunicación está bien (lo tengo todo en verde). Probaré con el uso de otro tipo de datos a ver qué tal...
Solo tienes una forma de poder acceder a mis formaciones exclusivas 👉Aquí: www.programacionmultidisciplinar.com/inicio
Hermano, publicas videos al mismo tiempo que salen dudas en mi trabajo, esto era exactamente lo que necesitaba. Muchas gracias
Todo calculado
Muy interesante y fácil de entender así. Me gustaría también ver como explicas la comunicación con T-SEND y T-RCV. Gracias.
muchas gracias por tu aportacion abel en verdad lo aprecio, eres el mejor
Muy bueno el video, muchas gracias por tu explicación!!.
Gracias.
No sé si algún día pondré en práctica todo lo que estoy aprendiendo en este curso .
Pero estoy listo
gracias profe, saludos de Calama Chile ❣
Hola, muy buen video, podrías por favor realizar un ejemplo en la conexión entre estos dos PLC, por ejemplo un semáforo en uno de ellos, gobernado por una botonera en el otro, o algún ejemplo así, muchas gracias:)
Muy bien explicado, muchas gracias
sigue asi muchisimas gracias
Muy bueno👌
Buenos días Abel, puedes explicar en algún video como funciona y qué configuraciones tiene un PN/PN coupler? No hay videos que valgan algo en español sobre esto... Gracias !
en la lecuta o escritura de las variables booleanas en el get o put pongan de tipo byte en vez de bool para que funcione
Así es! Lo probaste, ¿Verdad? Yo en su día llegué a la misma conclusión 🤣
Estimado es genial tu canal , he aprendido mucho , tambien tengo una consulta bueno tengo 2 PLC S7300 pero son de distinas IP y por razones de otros componetes que tiene cada uno en sus redes no puedo cambiarlas de IP, mi duda es como podria enviar un dato entre ellos 2 PLC ya que tiene distina IP alguna idea quisas para orientarme , saludos.
Buenas Danilo! Diferentes IP van a tener si o si, supongo que te refieres a que están en subredes diferentes, no? Si solo tienen un puerto de subred, la única manera es ampliar ambos PLC con tarjetas de conexión de red para poder utilizar una red diferente en la cual ambos estén en la misma subred!
Saludos pelecero!
@@programacionmultidisciplinar o añadir un scalance
Que tal inge, tendrá algún video realizando comunicación entre plc por medio de bloquea TSEND y TRECIV?
Por el momento no, ya que son bastante similares al get/put, pero es posible que en un futuro los haga.
Saludos Juan!
por favor !!! lo nesecito
Hola, necesito comunicar dos S7-1200 pero con TIA v13 y TIA v14, tienes algun video que me pueda servir?? Gracias!!!!! :)
Buenichimo
estoy esperando el podcast jeje
Ahora mismo la parte de podcast la tengo muy abandonada, estoy con otros proyectos, entre ellos, mi academia, y no me da la vida.
Cuando tenga algo de tiempo subiré más podcast.
Salu2 pelecero!
Hice los pasos tal cual y por alguna razón me sale en rojo tanto en el bloque de get como en el de put la parte de la RD y SD, no entiendo el porqué
Buenos días Abel.
Con el GET PUT podemos escribir y leer entre PLC , cualquier tipo de dato , ya sean Bool, INT, reales, etc.?
Gracias.
Si, así es!
Gracias
Buen día, primero que nada, muchas gracias por el video, es muy bueno.
Sólo me quedó una duda, entonces si el otro PLC al que quiero transferir datos no está en el proyecto de TIA Portal, al momento de direccionar en el ADDR_1 el DB del otro PLC, sólo tiene que coincidir el número de DB del otro PLC?
Gracias
Buenas Luís,
Así es, el DB que pongas debe ser al que deseas leer/escribir en el otro PLC. Por ejemplo si quieres leer de un PLC que no tienes en tu proyecto, y concretamente quieres leer de su DB 104, pues deberás poner en tu GET el DB104.
Salu2 pelecero!
@@programacionmultidisciplinar muchas gracias! Me ayudó muchísimo
Amigo necesito de tu ayuda, es posible por Profinet,enviar datos a un plc y que el otro plc me regrese otros datos por profinet tambien?
Buenas tardes maestro, esto seria posible con un interlocutor plc de otro fabricante? Es decir por ejemplo escribir datos en un Schneider??? ( o otro PLC) muchas gracias por tu canal, me sirve para muchas dudas en el trabajo!
Buenas Jordi,
Nop, el GET y el PUT forman parte de la comunicación S7, solo disponible en PLC de la marca Siemens. Digamos que es un protocolo de comunicación único para productos Siemens (plc, variadores, hmi, scada...)
Para conectar plc siemens con otras marcas, hay que hacerlo por otras vías, como por ejemplo modbus o opc.
Salu2 pelecero!
Buenos días Abel.
Cuando pones "P" delante de los DB, porque se hace así?
Se debe de hacer así porque lo utilizas como un puntero para buscar en un área de memoria de un DB a otro DB?
Gracias.
Buenas Francisco,
Las funciones GET y PUT necesitan el parámetro de entrada, es decir, la dirección del DB y de las variables a leer/escribir de esa manera. Si vas a la ayuda de Siemens verás que la manera de hacerlo es así, quiero decir que no hay otra manera.
Se hace de esa manera precisamente por lo que comentas. Como tienes que hacer referencia a X datos de un DB, la función necesita que se le pase como parámetro un DB en formato puntero, especificando la longitud de datos y su tipo.
Saludos!
con cuantos plcs puedo comunicar por get y put teniendo el plc1200
Buen día,
veo que luego de la dirección pones INT entonces puedo poner BOOL para leer menos
Cuántos enlaces de comunicación se pueden hacer en tre un plc S7 1500 y un S71200?
5 poco como los comunico q función usaría saludos Perú
Hola buenos días, una consulta. Cuando ingreso el bloque get o put y le escribo en el RD1: P#DB2.DBx0.0 int 3 me sale en rojo con una información que dice: EN BLOQUES CON ACCESO OPTIMIZADO NO ESTA PERMITIDO EL ACCESO ABSOLUTO DE DATOS.
me puedes ayudar con eso porfavor.
Buenas pelecero, eso es porque no puedes acceder con direcciones absolutas a un db optimizado.
Te dejo este post donde lo explico al detalle:
www.programacionmultidisciplinar.com/curso-tia-portal/bloques-de-datos/db-optimizado-vs-no-optimizado/
Salu2!
@@programacionmultidisciplinar gracias por su ayuda excelente curso
Hola buenas, tienes un video donde después de realizar el PUT y GET, envíes información atreves de los DB's que programaste? para saber como y que dato enviar. por favor.
@@programacionmultidisciplinar , gracias me sirvio la pagina para recordar.
Y el podcast? Sigo esperándolo amigo
Soy consciente de ello Andrés! Tengo apuntado hacerlo :D
Me sale un error al intentar descargar el CPUCummon, o algo así. Esto me pasa después de intentar cargarlo ya del todo, a que se debe?
cuando pongo el RD_1 tal y como en el video no me deja. Me aparece asignación de valor no valida
Se pueden conectar varios PLC usando estos bloques????
Buenasss, a ver si me puedes resolver esta duda respecto a las funciones GET/PUt en SCL.
Estoy intentando dinamizar una funcion con una cascada de llamadas tipo Get/put ( para hacer una lectura de muchos parametros de otra cpu) y para no repetir segmentos estoy programando en SCL. El problema lo tengo en como dinamizar el parametro ADDR_1 (tipo remote) en funcion del valor de una variable tipo int ( es decir con un Case asignar valores al "puntero" tipo Remote) para de esta forma solo insertar una llamada a un GET .
Muchas gracias, a ver si me podéis ayudar
Prueba a ver si puedes poner en el get/put variable tipo variant a ver si te deja coger todos los datos que deseas de una (no lo he probado nunca).
De todas maneras te digo que en el tema de comunicaciones, es preferible repetir los bloques que dinamizarlo con un bucle, nunca sabes cuando te va a tocar modificar un bloque de comunicación en concreto. Por no mencionar el clock que necesitas en el request, es muy posible que intentar leer el bloque X veces en un bucle te perjudique a la hora de activar y desactivar el request de algunas llamadas.
En lo personal, no recomiendo lo que tienes pensado hacer con los gets puts (aunque si es algo que hubiera hecho hace años, para que negarlo 🤣)
Pero bueno, como respuesta a tu pregunta, prueba a crear una variable tipo Any en el main o donde llames los gets/puts y prueba a asignarle los punteros, creo que así te dejará.
Saludos!
@@programacionmultidisciplinar Solo puede tener tipo Remote. Sabrias como convertir una variable tipo ANY (ejemplo: "P#DB100.DBX0.0 INT 100") en una tipo REMOTE?
@@integra0232 No lo he hecho nunca, la verdad. Puedes crear una variable tipo REMOTE en el main o en una DB?
@@programacionmultidisciplinar En un FC o FB sin acceso optimizado si se puede. el problema viene al asignarle el valor, que no te deja, dice tipo de dato incorrecto. Si en la patilla del GET ADDR_1 pones por ejemplo este puntero "P#DB100.DBX0.0 INT 1" no hay problema. Pero si a una variable tipo REMOTE le asignas este valor, no te deja, da error de tipo de dato..... Y a la aptilla del GET no se le puede poner otro tipo de datos . Asi que el problema viene en como asignar valor a una variable tipo REMOTE......
@@integra0232 He visto en la ayuda de siemens que el tipo remote, el tipo base es un any. Te recomiendo que mires el vídeo que tengo de punteros any para aprender a cómo configurarlos, porque no vas a poder chutarle como tal el "P#DB100.DBX.0.0 INT1"
Ami en el RD_1 cuando pon p#_DB2… me da error ósea se me pone en rojo
Como se hace de un s7 300 a un s1200
Buenas Mario,
Pues se hace exactamente de la misma manera. La forma de utilizar get y put en Step7 es igual que en TIA Portal, solo que tendrás que tener en cuenta que ID hay en cada PLC.
Salu2 pelecero
@@programacionmultidisciplinar En el plc s7 300 no aparece la opción de "permitir acceso vía comunicación PUT/GET del interlocutor remoto"
, no es necesario hacer esto con los plc s7 300??
Si en mi Tía Portal no me sale la opción de Conexión de mecanismos, que se puede hacer ?
Buenas Alex,
Ahora mismo no caigo, donde te refieres exactamente?
@@programacionmultidisciplinar tengo un plc s7 1200 pero es la versión penúltima en tía portal, y no me sale la opción de "Conexión de mecanismos " en protección y seguridad, pero ya leí que es porque esa versión no tiene la comunicación S7 :(
Al agregar una hmi se cierra TIA PORTAL sabes por que puede ser??
Tanto basics como confort
Buenas Isra,
Tienes las licencias de HMI instaladas en el automation license manager? Si la respuesta es si y te sigue pasando, te recomiendo reinstalar por completo, o probar con otra versión. Hay gente a las que, inexplicablemente, le pasan este tipo de cosas...
Saludos!
Hice esto, me funciono perfecto en la simulación y cuando intento hacer la comunicación con los plc físicos exactamente lo que funciono en simulación ya no funciona en la vida real, los cables están bien, a alguien si le funciono con plc físicos?
Supongo que en los 2 PLC tienes habilitado el get/put y los enlaces S7 no te dan error cuando te conectas online, verdad? Mmmm, no sabría decirte sin tener más información. En el online y diagnostico te dice algo interesante?
A nivel de cableado es simplemente un cable ethernet entre ambos PLC, sin más. Que estén en la misma subred.
Lo que si te recomiendo es que mires el error que te lanza el get/put y buscar ese error en el manual de siemens (si pulsas F1 en TIA Portal te aparece) a ver que te dice.
@@programacionmultidisciplinar Asi es tongo todo correctamente, la unica forma que logre hacerlo funcionar fue usando BYTES en lugar de BOOL o INT, y use DWORD para sustituir los REAL, muy extraño pero al final funciono. Gracias por el soporte.
@@juanmgallardo6426 Buenas, a mi me está pasando exactamente lo mismo, tengo los dos PLCs en la misma subred, los mismos DBs creados que Abel y el bloque GET idéntico. Sin embargo no se escribe nada en el DB. La comunicación está bien (lo tengo todo en verde). Probaré con el uso de otro tipo de datos a ver qué tal...
Hola de nuevo, he abierto el programa de nuevo y me ha funcionado, qué cosas más raras... jajajaja
Y si no me aparece lo de protección y seguridad para activar el PUT y el GET? JAJAJAJAJ
como puedo hacer un inversor de giro con put y get? o.o