1.1. Característiques de la comunicació MODBUS TCP.
Modbus es un protocolo de comunicación abierto, utilizado para transmitir información en red entre dispositivos electrónicos. El dispositivo que solicita la información se le conoce como Cliente Modbus y el o los dispositivos que suministran la información son los Servidores Modbus.
Modbus trabaja segun el principio de Cliente/Servidor. Esto significa que hay al menos un Cliente o maestro y al menos un Servidor o esclavo.
• Cliente o Maestro: En Modbus son básicamente controladores como son los PLCs.
• Servidor o Esclavo: En Modbus pueden ser otros controladores PLC u otros módulos IO descentralizados para señales digitales y analógicas que permitan comunicarse en Modbus-TCP.
Contiene las siguientes características:
El Cliente o maestro es siempre el interlocutor que toma la iniciativa, es decir que envía a un esclavo una solicitud o la activación de la función deseada.
Cada Servidor o esclavo tiene una dirección unívoca.
Normalmente el Servidor o esclavo es pasivo y tan sólo responde cuando recibe una solicitud en su dirección.
Cada enlace de comunicación entre dos equipos se ha de identificar con un número diferente.
La comunicación se establece por el puerto 502 sobre TCP/IP, especificando la dirección IP del servidor o esclavo.
Para cada Cliente puede tener hasta 247 Servidores.
Utiliza un protocolo de comunicación sencillo y fácil de utilizar.
Está basado en una arquitectura maestro-esclavo.
La velocidad de transmisión de datos va de 10 a 100 Mbits/segundo.
La comunicación en Modbus TCP está basada en direcciones o códigos, en función de la dirección o código seleccionado se realizará una acción diferente (lectura o escritura) con un tipo de datos determinado (bit o word):
1 Si queremos realizar un intercambio de datos entre dos PLCS en comunicación Modbus TCP, hemos de hacer servir los bloques de función MB_CLIENT en un PLC y MB_SERVER en el otro PLC.
Una vez configurado los parámetros de los dos bloques de función para el envío de datos, estos podrán ser marcas, bloques de datos o entradas/salidas.
1.2 Enunciado del funcionamiento.
Mediante la comunicación Modbus-TCP, queremos conseguir el siguiente funcionamiento:
Los registros desde el DB1.DBW0 hasta el DB1.DBW8 del PLC A (Cliente) han de intercambiar datos con los registros DB1.DBW0 hasta el DB1.DBW8 del PLC B (Servidor).
Los registros desde el DB1.DBW10 hasta el DB1.DBW18 del PLC A (Cliente) han de intercambiar datos con los registros DB1.DBW0 hasta el DB1.DBW8 del PLC C (Servidor).
El sentido de la información vendrá dado por el estado de la entrada I10.0 asociada al selector y que interactúa con el parámetro “MB_MODE” del bloque de función “MB_CLIENT”:
I10.0 = 0: El sentido de la información irá de:
PLC_B y PLC_C (SERVIDOR) a PLC_A (CLIENT).
I10.0 = 1: El sentido de la información irá de:
PLC_A (CLIENTE) a PLC_B y PLC_C (SERVIDOR).
Simbólicamente sería:
2.1. Configuración del hardware de los PLCs .
Para realizar la configuración de los PLCs en el proyecto, hemos de proceder de la siguiente forma:
Declararemos tres PLCs de la serie S7-1500.
Le asignaremos direcciones IPs diferentes, como PLC_A la "192.168.0.10", el PLC_B la "192.168.0.1" y el PLC_C la "192.168.0.2".
Elegimos dentro de la definición de las entradas y salidas, tanto digitales como analógicas en el apartado "Direcciones E/S" y en el campo desplegable "Bloque de organización" la opción "Ninguno". Esto no es necesario si la comprobación del funcionamiento se realiza con PLCs reales:
Habilitamos "GET/PUT", en la comunicación Modbus TCP con un PLC real no nos haría falta habilitar el acceso GET y PUT, pero en este caso lo habilitamos para que pueda comunicar con el simulador 2D. Para hacer esto, 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":
A més s'haurà d'activar l'opció "Permitir simulación al compilar bloques" que es troba dins de les "Propiedades" del projecte. En el cas de realitzar la comunicació amb PLCs reals no seria necessari.
2.2. Creación de la red entre los tres PLCs .
Para poder realizar la unión en red entre los tres PLCs, hemos de proceder de la siguiente forma:
Seleccionaremos la pestaña "Vista de redes".
Arrastraremos la conexión del PLC A al PLC B y del PLC_B al PLC_C para que los tres PLCs se encuentren conectados a la maisma red "PN/IE" quedando de la siguiente forma:
Para que aparezcan las direcciones IPs de cada PLC pulsaremos el icono “Mostrar direcciones”.
3.1. Configuración de los DBs para la transferencia de datos ente PLCs .
Crearemos en los diferentes PLCs un DB en donde tendremos los datos para el intercambio.
PLC_A: Crearemos el DB1 llamado “INTERCAMBIO_DATOS_CON_PLCs” con un array con el nombre "DATOS_CON_PLC_B" de 5 variables en formato de integer y otro array con el nombre "DATOS_CON_PLC_C" de 5 variables también en formato de integer.
PLC_B: Crearemos el DB1 llamado “INTERCAMBIO_DATOS_CON_PLCs” con un array con el nombre "DATOS_CON_PLC_A" de 5 variables en formato de integer.
PLC_C: Crearemos el DB1 llamado “INTERCAMBIO_DATOS_CON_PLCs” con un array con el nombre "DATOS_CON_PLC_A" de 5 variables en formato de integer.
Una vez tengamos creado los DBs le hemos de quitar la opción "Acceso optimizado al bloque", para poder trabajar con direcciones absolutas y que lo realizaremos desde las "Propiedades" de cada DB:
Una vez se encuentre deshabilitado el acceso optimizado, hemos de compilar los DBs:
A partir de ahora podemos trabajar con las direcciones absolutas de los DBs declarados en cada PLC quedando configurado cada DB de la siguiente forma:
DB1 del PLC_A
DB1 del PLC_B
DB1 del PLC_C
3.2. Programación del PLC_A y PLC_B para la transferencia de datos.
Para la transferencia de datos en Modbus-TCP, TIA Portal ofrece dos bloques de función, que los encontramos dentro de “Instrucciones – Comunicación” y que son:
MB_CLIENT
MB_SERVER.
3.2.1. Programa del PLC_A (Cliente) para la comunicación con PLC_B (Servidor).
a) Tabla de variables.
En primer lugar, declaremos las variables a utilizar en dos tablas:
Tabla de variables "Estàndar"
Tabla de variables "Comunicación"
b) OB30, Comunicación con el simulador 2D.
En el OB30 tenemos una instrucción MOVE que nos servirá para indicar al simulador 2D con que DB de datos trabajaremos en este PLC para realizar la comunicación MODBUS TCP. En este ejemplo, estamos diciendo que trabajaremos con el DB1.
En este ejemplo, hemos asignado el DB1. Si queremos trabajar con otro DB, entonces, ponemos el número del DB en el parámetro IN de la instrucción MOVE (Segmento 1).
Por otro lado, el simulador 2D no lee DBs y si Marcas, por tanto en el segmento dos movemos los valores del DB utilizando las marcas que seran leidas por el simulador (Segmento 2).
b) OB100, Datos iniciales.
Hemo de crear el bloque OB100 para insertar el siguiente programa en donde asignamos un valor inicial al que es el número de registros que se van a intercambiar, en este caso "5":
c) OB1, Programa para el intercambio de datos entre PLCs.
En el bloque OB1 insertamos el siguiente programa para poder seleccionar el modo de funcionamiento de Lectura/Escritura del equipo Cliente sobre el equipo Servidor:
Con I10.0 = 0: El PLC_A Cliente estará configurado para la recepción de datos desde el equipo PLC_B Server.
Con I10.0 = 1: El PLC_A Cliente estará configurado para enviar datos hacia el equipo PLC_B Server.
A continuación en el bloc OB1 insertamos el bloc de función “MB_CLIENT” que encontraremos en el espacio de “Instrucciones – Comunicación - Otros - MODBUS TCP", en donde se le asigna automáticamente un DB de instancia:
Previo a completar los parámetros del bloque de función “MB_CLIENT” hemos de crear un nuevo bloque de datos (DB3), llamado “CONNECT_CON_PLCs”, en donde declaramos una variable, “Modbus_con_PLC_B” con un tipo de datos “TCON_IP_v4”, que se debe introducir manualmente en la columna "Tipo de datos", en este momento se genera una estructura:
Realizando la lectura de la columna “Comentario” iremos completando cada uno de los parámetros de la estructura de la siguiente forma:
InterfaceId “HW-identifier of IE-interface submodule”: Corresponde a la dirección de hardware del puerto donde conectamos el PLC a la red. En este caso por el puerto Profinet, para localizarlo iremos a las “Propiedades – Constantes del sistema” del PLC_A:
Para este caso observamos que la dirección “ID de hardware” es la “64”.
ID “connection reference / identifier”: Aquí se ha de indicar el número del enlace con el PLC Servidor, al configurar el PLC servidor hemos de realizar el enlace con este mismo identificador ID, para este caso ponemos “1”.
ConnectionType “type of connection: 11=TCP/IP, 19=UDP (17=TCP/IP)”: En este parámetro indicamos un valor decimal que indica el tipo de enlace con el que se va trabajar, en nuestro caso al ser MODBUS-TCP, indicaremos el valor “11”, tal y como se indica en la columna “Comentarios”.
ActiveEstablished “active/passive connection establishment”: Este parámetro nos pregunta si este equipo es el que establecerá la conexión, en Modbus-TCP, el equipo Cliente es el que ha de establecer la conexión, por tanto, en este caso diremos “True”, para el caso del equipo Servidor, se configura como “False”
RemoteAddress (remote IP address (IPv4)): En este grupo de parámetros se ha de introducir la dirección IP del equipo remoto, es decir del equipo Servidor, en este caso será la del PLC:
ADDR (IPv4 address): La dirección IP del PLC_B 2 es “192.168.0.1”.
RemotePort (remote UDP/TCP port number): Para el caso que el equipo actúe como Cliente se debe introducir el número de puerto por el que se va a comunicar con el equipo Servidor con protocolo MODBUS-TCP y que no es otro que el “502”. En el caso de que el equipo sea el Servidor el valor a indicar será “0”.
LocalPort (local UDP/TCP port number): Cuando se trata del equipo Cliente, el valor con el que configuramos este parámetro es “0”, para el caso de que el equipo sea Servidor su valor será el valor del puerto para MODBUS-TCP, que es “502”.
Una vez configurados todos los parámetros de este equipo PLC_A que actuará como Cliente en esta conexión, quedará como se visualiza a continuación:
A partir de ahora ya podemos realizar la parametrización del bloque de función “MB_CLIENT” de la siguiente forma:
3.2.2. Programa del PLC_B (Servidor) para la comunicación con PLC_A (Cliente).
a) Tabla de variables.
En primer lugar, declaremos las variables a utilizar en dos tablas:
Tabla de variables "Estàndar"
Creamos la tabla de variables "Comunicación"
b) OB30, Comunicación con el simulador 2D.
En el OB30 tenemos una instrucción MOVE que nos servirá para indicar al simulador 2D con que DB de datos trabajaremos en este PLC para realizar la comunicación MODBUS TCP. En este ejemplo, estamos diciendo que trabajaremos con el DB1.
En este ejemplo, hemos asignado el DB1. Si queremos trabajar con otro DB, entonces, ponemos el número del DB en el parámetro IN de la instrucción MOVE (Segmento 1).
Por otro lado, el simulador 2D no lee DBs y si Marcas, por tanto en el segmento dos movemos los valores del DB utilizando las marcas que seran leidas por el simulador (Segmento 2).
c) OB1, Programa para l'intercanvi de dades entre PLCs.
En el bloque OB1 insertamos el bloque de función “MB_SERVER” que encontraremos en el espacio de “Instrucciones – Comunicación” - Otros - MODBUS TCP", en donde se le asigna automáticamente un DB de instancia:
Previo a completar los parámetros del bloque de función “MB_SERVER” hemos de crear un nuevo bloque de datos (DB3), llamado “CONNECT_CON_PLCs”, en donde declaramos una variable, “Modbus_con_PLC_A” con un tipo de datos de sistema “TCON_IP_v4”, en este momento se genera una estructura:
Realizando la lectura de la columna “Comentario” iremos completando cada uno de los parámetros de la estructura de la siguiente forma:
InterfaceId “HW-identifier of IE-interface submodule”: Corresponde a la dirección de hardware del puerto donde conectamos el PLC a la red. En este caso por el puerto Profinet, para localizarlo iremos a las “Propiedades – Constantes del sistema” del PLC_B:
Para este caso observamos que la dirección “ID de hardware” es la “64”.
ID “connection reference / identifier”: Aquí se ha de indicar el número del enlace con el PLC Cliente, al configurar el PLC servidor hemos de realizar el enlace con este mismo identificador ID, para este caso ponemos “1”.
ConnectionType “type of connection: 11=TCP/IP, 19=UDP (17=TCP/IP)”: En este parámetro indicamos un valor decimal que indica el tipo de enlace con el que se va trabajar, en nuestro caso al ser MODBUS-TCP, indicaremos el valor “11”, tal y como se indica en la columna “Comentarios”.
ActiveEstablished “active/passive connection establishment”: Este parámetro nos pregunta si este equipo es el que establecerá la conexión, en Modbus-TCP, el equipo Cliente es el que ha de establecer la conexión, por tanto, en este caso diremos “False”.
RemoteAddress (remote IP address (IPv4)): En este grupo de parámetros se ha de introducir la dirección IP del equipo remoto, es decir del equipo Cliente, en este caso será la del PLC_A:
ADDR (IPv4 address): La dirección IP del PLC_A es “192.168.0.10”.
RemotePort (remote UDP/TCP port number): Para el caso que el equipo actúe como Cliente se debe introducir el número de puerto por el que se va a comunicar con el equipo Servidor con protocolo MODBUS-TCP y que no es otro que el “502”. En el caso de que el equipo sea el Servidor el valor a indicar será “0”.
LocalPort (local UDP/TCP port number): Cuando se trata del equipo Cliente, el valor con el que configuramos este parámetro es “0”, para el caso de que el equipo sea Servidor su valor será el valor del puerto para MODBUS-TCP, que es “502”.
Una vez configurados todos los parámetros de este equipo PLC_B que actuará como Servidor del PLC_A en esta conexión, quedará como se visualiza a continuación:
A partir de ahora ya podemos realizar la parametrización del bloque de función “MB_SERVER” de la siguiente forma:
Finalizando con el siguiente segmento para memorizar el último error producido en la ejecución del bloque de función “MB_SERVER”:
3.2.3. Programa del PLC_A (Cliente) para la comunicación con PLC_C (Servidor).
a) Tabla de variables .
En primer lugar, declaremos las variables a utilizar, para ello hay que añadir la variable “CODIGO_ERROR_COMUNICACIÓN_CON_PLC_C” en la tabla de variables "Estandar":
Taula de variables "Estàndar" del PLC_A
c) OB1, Programa para l'intercanvi de dades entre PLCs.
En el bloque OB1 del PLC_A inserim el bloc de funció “MB_CLIENT” que trobarem en l'espai de “Instrucciones – Comunicación - Otros - MODBUS TCP", en donde se le asigna automáticamente un DB de instancia:
Previo a completar los parámetros del bloque de función “MB_CLIENT” hemos de añadir en el bloque de datos (DB3), llamado “CONNECT_CON_PLCs”, una variable llamada, “Modbus_con_PLC_C” con un tipo de datos de sistema “TCON_IP-v4”, que introduciremos manalmente en la columna "Tipo de datos", en este momento se genera una estructura que completamos con los siguientes valores de arranque:
A partir de ahora ya podemos realizar la parametrización del bloque de función “MB_CLIENT” de la siguiente forma:
Finalizando con el siguiente segmento para memorizar el último error producido en la ejecución del bloque de función “MB_CLIENT”:
3.2.4. Programa del PLC_C (Servidor) para la comunicación con PLC_A (Cliente).
a) Tabla de variables.
En primer lugar, declaremos las variables a utilizar en el PLC_C mediante dos tablas "Estandar" y "Comunicación":
Taula de variables "Estàndar"
Taula de variables "Comunicación"
b) OB30, Comunicación con el simulador 2D.
En el OB30 tenemos una instrucción MOVE que nos servirá para indicar al simulador 2D con que DB de datos trabajaremos en este PLC para realizar la comunicación MODBUS TCP. En este ejemplo, estamos diciendo que trabajaremos con el DB1.
En este ejemplo, hemos asignado el DB1. Si queremos trabajar con otro DB, entonces, ponemos el número del DB en el parámetro IN de la instrucción MOVE (Segmento 1).
Por otro lado, el simulador 2D no lee DBs y si Marcas, por tanto en el segmento dos movemos los valores del DB utilizando las marcas que seran leidas por el simulador (Segmento 2).
c) OB1, Programa para l'intercanvi de dades entre PLCs.
En el bloque OB1 insertamos el bloque de función “MB_SERVER” que encontraremos en el espacio de “Instrucciones – Comunicación - Otros - MODBUS TCP", en donde se le asigna automáticamente un DB de instancia:
Previo a completar los parámetros del bloque de función “MB_SERVER” hemos de crear un nuevo bloque de datos (DB3), llamado “CONNECT_CON_PLCs”, en donde declaramos una variable, “Modbus_con_PLC_A” con un tipo de datos de sistema “TCON_IP_-v4”, qie introduciremos mauelament en la columna "Tipo de datos", en este momento se genera una estructura:
A partir de ahora ya podemos realizar la parametrización del bloque de función “MB_SERVER” de la siguiente forma:
Finalizando con el siguiente segmento para memorizar el último error producido en la ejecución del bloque de función “MB_SERVER”:
Para poder ampliar el ejemplo anterior se propone un ejercicio para que el PLC_B (Cliente) se pueda comunicar con el PLC_C (Servidor) respetando las siguientes condiciones:
Els registres des del DB1.DBW10 fins al DB1.DBW18 del PLC B (Cliente) han d'intercanviar dades amb els registres DB1.DBW10 fins el DB1.DBW18 del PLC C (Servidor).
El sentit de la informació vindrá donat per l'estat de l'entrada I10.0 asociada al selector i que interactúa amb el paràmetre “MB_MODE” del bloc de funció “MB_CLIENT”:
I10.0 = 0: El sentit de la informació anirà de:
PLC_C (SERVIDOR) A PLC_B (CLIENT).
I10.0 = 1: El sentit de la informació anirà de:
PLC_B (CLIENTE) a PLC_C (SERVIDOR)
De forma que el ejercicio completo qudaria como se indica en la siguiente tabla resumen:
5.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" o "Conexión de área local", según la versión utilizada.
3) Desplegamos la opción "Start Virtual S7-1500 PLC" y completamos los diferentes campos que aparecen con:
Instance name: Ponemos el mismo nombre que le hemos puesto en el PLC dentro del proyecto de TIA Portal.
IP address [X1]: Ponemos la misma dirección adreça IP asignada dentro del proyecto de TIA Portal.
Subnet mask: Ponemos la misma máscara de subred asignada dentro del proyecto de TIA Portal.
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 accesibles".
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".
5.2 Comprobación del funcionamiento:
Una vez que estén cargados los dos PLCs y en estado RUN, abriremos el simulador 2D.
A partir de ahora podemos ir cargando valores en el DB1 y comprobar como se transmiten a los otros PLCs.
Por ejemplo, si queremos enviar datos desde el PLC_B hacia el PLC_A actuaremos de la siguiente forma:
a) Ponemos valores nuevos que nos interesenn en el registro correspondiente del DB1 del PLC_B y del PLC_C.
b) Forzamos los valores en los registros del DB1 tanto del PLC_B como del PLC_C.
c) Se observa como aparecen en los registros del DB1 configurados en el PLC_A.
DB1 del PLC_B per a lintercanvi de dades amb el PLC_A
DB1 del PLC_B per a lintercanvi de dades amb el PLC_A
DB1 del PLC_C per a lintercanvi de dades amb el PLC_A
En el caso de que el sentido de la transferencia de los datos tenga que ser en sentido contrario, es decir, del PLC_A hacia los PLC_B y PLC_C, y según se ha programado en el PLC_A, tan sólo hemos de activar el selector del PLC_A que encontraremos en el mateix Simulador 2D.
En el cas de tenir la necessitat de fer-ne ús dels diferents dispositius disenyats en el Simulador 2D, representem a continuació la relació de les variables associades tant d'entrada com de sortida, digitals i analògiques:
4.1. Relación de variables de entradas.
A continuación se relacionan las variables de entrada al PLC que son:
Pulsadores de control.
Potenciómetro para el valor de la entrada analógica.
Selectro ON/OFF.
4.2. Relación de variables de salidas.
A continuación se relacionan las variables de salida al PLC que son:
Pilotos de señalización.
Inidcador dels valor de la salida analógica.
El projecteo de TIA Portal se ha estructurado en diferentes bloques de programa como son:
OB30 Cyclic interrupt: Este bloque de programa es el que realiza la comunicación entre el PLCSim y el Simulador 3D del proceso.
OB100 Startup: Este blque contiene la cantidad de datos que inicialmente se desean intercambiar.
OB1 Main: Este bloque contiene la organización de llamadas al resto de bloques que forman el programa del proceso.
FC1 MODBUS TCP: Este bloque contiene el programa que da respuesta al funcionamiento del enunciado.
DB1 INTERCAMBIO_DATOS_CON_PLCs: Este bloque contiene los datos que se han de intercambiar entre los tres PLCs.
DB3 CONNECT_CON_PLCs: Este bloque contiene las variables de configuración de la comunicación Modbus TCP utilizadas en los bloques de función MB_CLIENT y MB_SERVER.
Por tanto, el proyecto en TIA Portal tendrá la siguiente estructura:
PLC A OB30_Cyclic interrupt
 PLC_A_OB30_Cyclic interrupt.pdf
PLC_A_OB30_Cyclic interrupt.pdfPLC A OB1_Main
 PLC_A_OB1_Main.pdf
PLC_A_OB1_Main.pdfPLC A OB100_Startup
 PLC_A_OB100_Startup.pdf
PLC_A_OB100_Startup.pdfPLC A FC1_MODBUS TCP
 PLC_A_FC1_MODBUS TCP.pdf
PLC_A_FC1_MODBUS TCP.pdfPLC A DB1_INTERCAMBIO_DATOS_PLCs
 PLC_A_DB1_INTERCAMBIO_DATOS_CON_PLCs.pdf
PLC_A_DB1_INTERCAMBIO_DATOS_CON_PLCs.pdfPLC A DB3_CONNECT_CON_PLCs
 PLC_A_DB3_CONNECT_CON_PLCs.pdf
PLC_A_DB3_CONNECT_CON_PLCs.pdfPLC B OB1_Main
 PLC_B_OB1_Main.pdf
PLC_B_OB1_Main.pdfPLC B DB1_INTERCAMBIO_DATOS_PLCs
 PLC_B_DB1_INTERCAMBIO_DATOS_CON_PLCs.pdf
PLC_B_DB1_INTERCAMBIO_DATOS_CON_PLCs.pdfPLC B DB3_CONNECT_CON_PLCs
 PLC_B_DB3_CONNECT_CON_PLCs.pdf
PLC_B_DB3_CONNECT_CON_PLCs.pdfPLC C OB30_Cyclic interrupt
 PLC_C_OB30_Cyclic interrupt.pdf
PLC_C_OB30_Cyclic interrupt.pdfPLC C OB1_Main
 PLC_C_OB1_Main.pdf
PLC_C_OB1_Main.pdfPLC C FC1_MODBUS TCP
 PLC_C_FC1_MODBUS TCP.pdf
PLC_C_FC1_MODBUS TCP.pdfPLC C DB1_INTERCAMBIO_DATOS_PLCs
 PLC_C_DB1_INTERCAMBIO_DATOS_CON_PLCs.pdf
PLC_C_DB1_INTERCAMBIO_DATOS_CON_PLCs.pdfPLC C DB3_CONNECT_CON_PLCs
 PLC_C_DB3_CONNECT_CON_PLCs.pdf
PLC_C_DB3_CONNECT_CON_PLCs.pdfContenidos 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