1.1. Comunicación S7 GET y PUT.
La comunicación GET y PUT entre PLCs se caracteriza por realizar un intercambio de datos de forma asíncrona entre los PLCs a través de los registros DB y M.
La función GET copia registros de otro PLC hasta el PLC donde está programada la función.
La función PUT, copia registros del PLC donde está programada la función hasta otro PLC.
A continuación podemos ver un ejemplo de cómo programar las funciones GET y PUT. En este caso, lo que queremos es copiar en los "REGISTROS B1" del PLC B en los "REGISTROS A1" del plc A.
Aquí tenemos cuatro opciones diferentes para conseguir el mismo objetivo.
2. Comunicación S7 GET y PUT. Ejercicio
La comunicación GET y PUT entre PLCs se caracteriza por realizar un intercambio de datos de forma asincrona entre los PLCs a través de los registros DB y M.
La función GET copia registros de otro PLC hasta el PLC donde está programada la función.
La función PUT, copia registros del PLC donde está programada la función hasta otro PLC.
2.1. Enunciado del funcionamiento.
Aunque hemos visto antes de que podamos llegar al mismo objetivo programando las funciones en un PLC u otro, en este ejercicio aplicaremos la opción A.
Mediante la comunicación S7 GET y PUT, queremos conseguir el siguiente funcionamiento:
PLC A:
Cuando accionemos la entrada I10.1 del PLC A:
Copiaremos los registros DB2.DBW0 al DB2.DBW2 del PLC B en los registros DB1.DBW10 al DB1.DBW12 del PLC A (GET).
Cuando accionemos la entrada I10.2 del PLC A:
Copiaremos los registros DB1.DBW0 al DB1.DBW4 del PLC A en los registros DB2.DBW10 al DB2.DBW14 del PLC B (PUT).
Cuando accionemos la entrada I10.3 se pondrán a 0 los registros del DB1.DBW10 hasta el DB1.DBW18.
PLC B:
Cuando accionemos la entrada I10.1 del PLC B:
Copiaremos los registros DB3.DBW6 al DB3.DBW8 del PLC C en los registros DB2.DBW16 al DB2.DBW18 del PLC B (GET).
Cuando accionemos la entrada I10.2 del PLC B:
Copiaremos los registros DB2.DBW4 al DB2.DBW8 del PLC B en los registros DB3.DBW10 al DB2.DBW14 del PLC C (PUT).
Cuando accionemos I10.3 se pondrán a 0 los registros del DB2.DBW10 hasta el DB2.DBW18.
PLC C:
Cuando accionemos I10.1 del PLC C:
Copiaremos los registros DB1.DBW6 al DB1.DBW8 del PLC A en los registros DB3.DBW16 al DB3.DBW18 del PLC C (GET).
Cuando accionemos I10.2 del PLC C:
Copiaremos los registros DB3.DBW0 al DB3.DBW4 del PLC A en los registros DB1.DBW14 al DB1.DBW18 del PLC A (PUT).
Cuando accionemos la entrada I10.3 se pondrán a 0 los registros del DB3.DBW10 hasta el DB3.DBW18.
IMPORTANTE: Aunque normalmente el control (REQ) de las funciones GET y PUT irán controladas por un generador de pulsos, en este caso el control lo realizaremos con pulsadores para ver el trasvase de datos con mayor facilidad.
2.2. Configuración de los DBs.
Crearemos en cada PLC un DB con el que haremos el intercambio de datos.
PLC A: Crearemos el DB1 con un array con el nombre de "PLC_A" de 10 variables en formato integer y a las 5 primeras variables le pondremos los valores 1,2,3,4 y 5.
PLC B: Crearemos el DB2 con un array con el nombre de "PLC_B" de 10 variables en formato integer y a las 5 primeras variables les pondremos los valores 10,20,30,40 y 50.
PLC1: Crearemos el DB3 con un array con el nombre "PLC_C" de 10 variables en formato integer y a las 5 primeras variables les pondremos los valores 100,200,300,400 y 500.
A los DBs debemos quitarles el "acceso optimizado al bloque", ya que las funciones GET y PUT trabajan con direcciones absolutas.
Una vez esté deshabilitado el acceso optimizado, debemos compilar el DB para que salgan las direcciones absolutas.
Escribimos los "valores de arranque" de DB1 que serán 1,2,3,4 y 5.
Repetimos el procedimiento en el DB2 del PLC B y en el DB3 del PLC C poniendo los valores indicados en el punto 2.2.
2.3. Descripción de los parámetros de GET.
Función programada en PLC A
REQ: Pondremos el operando que hará que se ejecute la función GET.
ID: Saldrá por defecto el número de enlace configurado.
ADDR_1: Aquí indicaremos los registros que queremos copiar del otro PLC. Indicaremos en formato puntero el primer bit de inicio de lectura, el formato y el número de registros a copiar.
RD_1: Aquí indicaremos en que registros del PLC donde tenemos programada la función queremos que se ponga la copia. Indicaremos en formato puntero el primer bit de inicio de lectura, el formato y el número de registros a copiar.
NDR: Si vale 1, significa que la petición se ha realizado correctamente.
ERROR Y STATUS: Mirar la ayuda de la función GET.
2.4. Descripción de los parámetros de PUT.
Función programada en PLC A
REQ: Pondremos el operando que hará que se ejecute la función PUT.
ID: Saldrá por defecto el número de enlace configurado.
ADDR_1: Aquí indicaremos los registros del otro PLC donde queremos escribir los datos enviados. Indicaremos en formato puntero el primer bit de inicio de lectura, el formato y el número de registros a copiar.
SD_1: Aquí indicaremos que registros de nuestro PLC copiaremos en el otro PLC. Indicaremos en formato puntero el primer bit de inicio de lectura, el formato y el número de registros a copiar.
DONE: Si vale 1, significa que la petición se ha realizado correctamente.
ERROR Y STATUS: Vea la ayuda de la función PUT.
2.5. Habilitación de la comunicación GET-PUT.
Para que se pueda producir la comunicación GET-PUT debemos habilitarla. Vamos a las propiedades del PLC y buscaremos el apartado "Protección&Seguridad" y habilitaremos la casilla "Permitir acceso vía comunicación PUT/GET del interlocutor remoto".
2.6. OB30, Comunicación con el simulador 2D.
En cada PLC, en el OB30 tenemos una instrucción MOVE que nos servirá para indicar al simulador 2D con el que DB de datos trabajaremos en este PLC para hacer el GET y PUT. En este ejemplo, estamos diciendo que trabajaremos con DB1.
En este ejercicio, en el PLC A trabaja con el DB1, en el PLC B con el DB2 y en el PLC C con el DB3. Si queremos trabajar con otro DB, ponemos el número del DB en IN del MOVE.
Por otra parte, el simulador 2D no lee DBs y si Marcas, por tanto en el segmento dos movemos los valores del DB utilizado en las marcas que serán leídas por el simulador.
3.1. Procedimiento para la comunicación entre PLCSimAdvanced – Simulador 2D.
Para poder trabajar con este simulador debemos abrir el PLCSin Advanced. A continuación se relaciona el procedimiento a seguir para poder conseguir con éxito la comunicación entre PLCSimAdvanced y el Simulador 2D para poder comprobar el funcionamiento del programa.
1 Poner en el buscador "Plcsim advanced".
2 Seleccionamos el programa.
3 Ejecutamos como administrador.
Cambiaremos la IP del adaptador del PLCSim Virtual y le pondremos una IP fija del mismo rango que nuestros PLCs. Para ello pulsamos sobre "Cambiar opciones del adaptador".
Seleccionamos el adaptador "Siemens PLCSIM Virtual Ethernet" y lo abrimos.
Abrimos el protocolo TCP/IP v4 y en nuestro caso pondremos como IP 192.168.0.100.
Hemos de abrir en el PLCsim Advance los tres PLCs, en este caso para el primero haremos lo siguiente:
1 Seleccionamos "PLCSim Virtual Ethernet Adapter".
2 Seleccionamos "Ethernet".
3 Ponemos el nombre que le hemos puesto al PLC en nuestro proyecto, la IP y la mascara de subred.
4 Pulsamos encima de "Start".
5 Aparece el PLC con el nombre y la dirección configurada.
Repetimos el procedimiento con el PLC_B y por lo tanto haremos lo siguiente:
1 Ponemos el nombre que le hemos puesto al PLC en nuestro proyecte, la IP y la mascara de subred.
2 Pulsamos encima de "Start".
3 Aparece el PLC con el nombre y dirección configurada.
Repetimos el procedimiento con el PLC_C y por lo tanto haremos lo siguiente:
1 Ponemos el nombre que le hemos puesto al PLC en nuestro proyecte, la IP y la mascara de subred.
2 Pulsamos encima de "Start".
3 Aparece el PLC con el nombre y dirección configurada.
Una vez que tengamos ya configurados los tres PLCs en el PLCSim Advanced, enviaremos la configuración y programa a cada PLC y procederemos de la siguiente manera:
1 Marcamos con el ratón el PLC que queremos cargar.
2 Pulsamos el botón "Enviar a dispositivo".
3 Seleccionamos en "Tipo de interface PG/PC" = "PN/IE".
"Interfaz PG/PC" = "Siemens PLCSIM Virtual Internet Adapter".
"Conexión con interface /subred" ="PNIE_1"
4 Seleccionar "Mostrar dispositivos compatibles". Tambien podriamos poner "Mostrar dispoitivos identicos".
5 Pulsamos en "Iniciar busqueda".
6 Seleccionamos el PLC donde queremos cargar nuestro proyecto.
7 Pulsamos "Cargar".
Cuando se haya cargado el PLC, lo marcamos (1) y lo ponemos en RUN (2).
Repetimos el procedimiento de carga con el PLC_B y PLC_C.
Antes de poder realizar el programa es necesario hacer una relación de las diferentes variables que intervienen en el proceso, de forma que mediante una Tabla de variables en TIA Portal queden reflejadas, y en el momento de realizar el programa poder identificarlas correctamente.
4.1. Relación de variables de entradas.
A continuación se relacionan las variables de entrada al PLC que son:
o Pulsadores de control.
o Selector.
o Potencióetre.
4.2. Relación de variables de salidas.
A continuación se relacionan las variables de salida al PLC que son:
o Pilotos de señalización.
El proYecto de TIA Portal se ha estructurado en diferentes bloques de programa como son:
o OB30 Cyclic interrupt: Este bloque de programa és el que realiza la comunicación entre el PLCSim y el Simulador 3D del proceso.
o OB1 Main: Este bloque contiene la organización de llamadas al resto de bloques que forman el programa.
oFC1 GET-PUT: Este bloque contiene el programa que da respuesta al funcionamiento descrito al enunciado.
o DB: Este bloque contiene las variables donde se leerá y escribirá los valores que nos interesen.
PLC A - OB30_Cyclic interrupt
PLC A - OB1_Main
PLC A - FC1_GET_PUT
PLC A - DB1
PLC B - OB30_Cyclic interrupt
PLC B - OB1_Main
PLC B - FC1_GET_PUT
PLC B - DB2
PLC C - OB30_Cyclic interrupt
PLC C - OB1_Main
PLC C - FC1_GET_PUT
PLC C - DB2
Contenidos de este espacio de Ramón L. Yuste y Vicenç Guerrero se publica bajo licencia:
Creative Commons Reconocimiento-No comercial-Sin obras derivadas 3.0 España