2015 / 2016
CFGS Automatización y Robótica Industrial
Comunicaciones Industriales
Redes MPI con Simatic S7-300 Maricruz Pacheco Tejuelo Roberto Álvarez Sindín Revisión 0.9 Noviembre 2015
Índice 1. 2. 3.
4.
5. 6.
Introducción ............................................................ .................................................................................................................................. ............................................................................. ....... 1 Especificaciones técnicas............................................................... ...................................................................................................................... ....................................................... 2 Comunicación GD (Datos globales) ........................................................... ...................................................................................................... ........................................... 4 Reduction ratio (factor de scan) ........................................................................................................ ........................................................................................................ 4 Enlaces y estructura de los paquetes GD ......................................................................... ........................................................................................... .................. 5 SFCs para la comunicación con datos globales GD ............................................................................ ............................................................................ 6 Comunicación básica S7 ................................................................. ....................................................................................................................... ...................................................... 7 Comunicación con función de recepción (SFC65 y SFC66) ................................................................ 8 Comunicación sin función de recepción (SFC67 y SFC68) ........................................................... .................................................................. ....... 9 Interrupción de un enlace con un interlocutor existente (SFC69) ................................................... 10 Comunicación S7 ................................................................. ................................................................................................................................ ............................................................... 11 Ejemplos de aplicación ................................................................... ....................................................................................................................... .................................................... 14 Configuración de una red MPI ......................................................................................................... ......................................................................................................... 14 Comunicación mediante Datos Globales (GD) .............................................................. ................................................................................. ................... 17 Comunicación básica S7 (X_PUT y X_GET) X _GET) ......................................................... ....................................................................................... .............................. 21 Comunicación básica S7 (X_SEND y X_RCV)..................................................................... X_RCV)..................................................................................... ................ 24
Documentación de referencia: EWA 4NEB 7106075-04 03 Comunicación con SIMATIC A5E00105477-08 A5E00105477-08 S7-300 CPU CPU 31xC y CPU 31x, Datos técnicos técnicos A5E00709337-01 A5E00709337-01 Software de sistema para S7-300 y S7-400 S7-400 Funciones estándar y funciones de sistema
Disponibles en la web del fabricante del producto: http://swe.siemens.com http://support.automation.siemens.com/
Este trabajo se distribuye bajo licencia Creative Commons BY-NC-SA http://creativecommons.org/licenses/by-nc-sa/4.0/
IES Cavanilles. Alicante
1.
Comunicaciones Industriales
Introducción
Este sistema de bus propietario de Siemens fue principalmente desarrollado cono interfaz de programación para los Simatic S7. Multi Point Interface (MPI) sirve como medio de comunicación homogénea entre dispositivos de automatización Siemens y, especialmente, como medio de comunicación en la interfaz hombre máquina (HMI). La gran ventaja es que se incorpora de serie en todos los equipos S7, por lo que resulta muy económica, ya que no requiere, a diferencia de las otras comunicaciones, una tarjeta adicional (CP).
La interfaz MPI es la base que inspiró el desarrollo posterior del protocolo y especificaciones de ProfiBus. De hecho, los conectores, cableado y repetidores que se utilizan son los mismos (conector DB9 con resistencia incorporada y cable de 2 hilos apantallado con cubierta morada). Por tanto, la red puede configurarse como estructura lineal o en estructura árbol, con la ayuda de repetidores.
① Indica resistencia ON
La red MPI debe tener la resistencia al final de la línea generalmente incluida en el conector, que permite conectarla o desconectarla mediante un interruptor, en función de la topología. En general MPI se reserva para redes pequeñas, con poca extensión, pocos interlocutores y un volumen de datos a intercambiar reducido.
Comunicación Siemens MPI
1
IES Cavanilles. Alicante
2.
Comunicaciones Industriales
Especificaciones Especificacio nes técnicas
MPI está basado en el estándar RS485 (actualmente EIA 485), trabajando a una velocidad estándar de 187,5 kbit/s, aunque puede alcanzar un máximo de 12 Mbit/s. Sus principales características:
Soporte físico: RS485. Hasta 32 participantes en la red MPI. Velocidad de transmisión de datos desde 187.5 kbit/s hasta 12 Mbit/s Distancia hasta 50 m (entre el primer y último nodo) y utilizando repetidores hasta 1000 m., siempre y cuando el repetidor esté colocado en el centro del segmento a amplificar. Se pueden colocar hasta 10 repetidores, lo que da una longitud de cableado máxima de 10km. Componentes (cable, conectores y repetidores) son los mismos que los utilizados en una red Profibus Cada CPU tiene la posibilidad de un máximo de 8 conexiones de comunicación dinámica para la comunicación básica con un SIMATIC S7 300/400. Posibilidades flexibles de configuración en el bus o estructura en árbol (con repetidores).
Precauciones:
Para que todos los nodos puedan comunicarse en la red MPI, se deberá tener en cuenta:
Cada equipo debe contener una dirección MPI, una dirección MPI máxima y una velocidad de comunicación. Todas las direcciones MPI deben ser diferentes. La dirección MPI más alta debe de ser mayor o igual a la dirección MPI del último nodo, y la velocidad de transmisión debe de ser igual en todos los nodos. En las CPU SIMATIC S7-300, se debe de tener en cuenta que los módulos de comunicación (CPs) y módulos de función (FMs) tienen una dirección MPI única. Esta dirección es asignada automáticamente en la CPU, según como se encuentren los módulos colocados a su derecha en el bastidor. De manera genérica, el direccionamiento de los diferentes módulos sería: CPU: Dirección MPI o CP/FM1: Dirección MPI + 1 o CP/FM2: Dirección MPI + 2 o El acceso directo a los módulos de expansión se realiza a través del dispositivo de programación a través de la CPU en el módulo correspondiente. Este acceso tiene lugar en el S7-300 a través del bus interno de comunicaciones (BUS K).
Tipos de comunicación soportados:
La interface MPI puede utilizarse para uniones simples en redes y permite las siguientes formas de comunicación:
Comunicación básica S7, utilizando funciones de sistema SFC, se pueden intercambiar hasta 76 byte de datos (84 en el S7-400). Comunicación S7, utilizando bloques de funciones SFB, se pueden intercambiar hasta 65534 byte de datos. Este tipo de comunicación no es relevante en el S7-300, ya que sólo se puede utilizar como servidor en la comunicación S7 a través de MPI. Comunicación Siemens MPI
2
IES Cavanilles. Alicante
Comunicaciones Industriales
Comunicación de Datos Globales, las CPUs interconectadas en red pueden intercambiar datos cíclicamente unas con otras. Una CPU S7-300 puede intercambiar un máximo de 4 paquetes con al menos 22 bytes y un máximo 15 CPUs. La Programación y Diagnosis de Errores puede ejecutarse vía MPI desde otros elementos de programación/PCs a todos los PLCs conectados a la red. La interface MPI de la CPU esta directamente conectada al bus interno de comunicaciones (BUS K) del S7-300. La conexión desde los paneles de operador/estaciones de operador PG/OP al PLC SIMATIC S7 es muy simple con MPI estando implementados por defecto.
Especificaciones de cada tipo de comunicación: SFC65 "X_SEND"
SFC68 “X_PUT"
SFC66 "X_RECV"
SFC67 “X_GET"
Longitud máxima de datos
76 Bytes
84 Bytes (en el S7-400) 76 Bytes (en el S7-300)
Tipo de configuración
No configurado
No configurado
Tipo de enlace
Enlace Cliente / Cliente dinámico
Enlace Cliente / Servidor dinámico / estático
Comunicación básica S7
Comunicación S7
Longitud máxima de datos
SFB8 "USEND"
SFB12 "BSEND"
SFB15 "PUT"
SFB9 "URCV"
SFB13 "BRCV"
SFB14 "GET"
160 .. 453 Bytes
32768 .. 65534 Bytes
Put: 160 .. 452 Bytes Get: 160 .. 462 Bytes
Tipo de configuración
Configurado bilateralmente
Configurado unilateralmente
Tipo de enlace
Enlace Cliente / Cliente estático
Enlace Cliente / Servidor estático
Comunicación de datos globales
Valores
Longitud máxima de datos
22 Bytes (S7-300) 54 Bytes (S7-400) 22 Bytes (S7-300/S7-400) (S7-300/S7-400)
Tipo de configuración
Ningún enlace configurado
Tipo de enlace
Broadcast (ningún enlace en este sentido)
Referencia más información en la web de Siemens: https://support.industry.siemens.com/cs/document/21537047/posibilidades-de-comunicaci%C3%B3na-trav%C3%A9s-de-mpi?dti=0&dl=es&lc=en-WW
Comunicación Siemens MPI
3
IES Cavanilles. Alicante
3.
Comunicaciones Industriales
Comunicación GD (Datos globales)
La comunicación de datos globales (comunicación GD) es un método de comunicación simple integrado en el sistema operativo de las CPUs S7-300/S7-400, que permite intercambiar datos cíclicamente entre CPUs a través del interface MPI. Los L os datos globales (GD) pueden ser:
Entradas y salidas Marcas Datos de módulos de datos Funciones de contador y tiempo
El intercambio cíclico de datos se lleva a cabo con la imagen normal del proceso. La comunicación de datos globales se configura con STEP 7; donde se indican qué datos se intercambian y entre qué participantes. La transferencia de los datos globales está integrada en el sistema, por lo que no se tiene que programar, una vez configurada se realiza cíclicamente de forma automática. Un inconveniente de este sistema es, que no hay acuse de recibo de los datos globales. El emisor no recibe información alguna acerca de si hay un receptor que ha recibido los datos globales enviados y, en caso de haberlo, cuál es. El intercambio cíclico de datos tiene lugar justo en el punto en que se produce el intercambio de imágenes de proceso. La CPU envía los datos globales al final del ciclo y lee los datos a inicio del ciclo. Por tanto, una CPU S7-300/400 envía los datos simultáneamente con todas las otras CPUs conectadas a la red MPI (Broadcast). Para comunicar las CPU’s a través de la red MPI debemos configurar una tabla llamada Tabla de Datos
Globales. Dicha tabla está diseñada para cantidades de datos reducidos. Estos datos se transmiten cíclicamente entre CPU’s. En la tabla de datos globales se puede introducir hasta 15 estaciones o nodos
diferentes. El intercambio de datos globales se realiza de la siguiente forma:
CPU emisora: Envía datos al final de un ciclo cada X ciclos.
CPU receptora: Recibe datos al inicio de un ciclo cada X ciclos.
Reduction ratio (factor de scan)
Con la ayuda de un factor de scan, introducido en la tabla de datos globales, se puede configurar el número de ciclos de scan necesarios para intercambiar los datos (por defecto ajustado a 8), de esta forma se reduce la carga de trabajo de la CPU, aunque implica un retraso en la actualización de los datos de la comunicación, ya que sólo se actualiza cada ese número de ciclos de scan. Si se ajusta la comunicación a actualizar en cada ciclo de scan y la CPU tiene un ciclo muy corto (<60 ms) se podría Comunicación Siemens MPI
4
IES Cavanilles. Alicante
Comunicaciones Industriales
sobreescribir algún paquete GD antes de ser transmitido. Este tipo de error puede ajustarse par que se me muestre en la ventana de estado del circuito GD. Enlaces y estructura de los paquetes GD
El intercambio de datos se produce por medio de paquetes de datos entre las CPUs, las cuales pueden formar parte de círculos de comunicación GD de tipo 1:N ó 1:1. Un círculo de comunicación GSD está identificado por medio de un número de círculo GD. Enlace 1:N
Una CPU puede enviar sus paquetes de datos GD a varias CPUs. Enlace 1:1:
Enlace entre 2 CPUs: Cada CPU puede enviar y recibir un único paquete GD. Hay que tener en cuenta que la comunicación por Datos Globales no se programa, sino que se configura desde el administrador de redes del proyecto. Se genera una tabla de datos globales con STEP 7, dónde se especificarán los datos de configuración para el intercambio de información. Todas las CPUs SIMATIC S7-300/400 que participan en la comunicación por datos globales deben de encontrarse en el mismo proyecto STEP 7 y además se deben configurar formando parte de la misma red MPI. La estructura de los datos que se transmiten por la red MPI mediante datos globales está formada por tres cifras donde la primera indica el círculo GD, la segunda el número del paquete GD y la última los datos a enviar en el paquete.
Paquete GD
Los datos globales que tienen el mismo emisor y el mismo receptor se reúnen en un paquete GD. El paquete GD se envía en un telegrama. Un paquete GD se identifica mediante un número de paquete GD. Si se sobrepasa la longitud máxima de un paquete de emisión GD se utiliza un nuevo círculo GD. Círculo GD
Las CPUs que participan en el intercambio de paquetes GD forman un círculo. Si en una red MPI existen otras CPUs que intercambian paquetes GD, estas CPUs forman un segundo círculo. Círculos diferentes pueden acceder a las mismas CPUs superponiéndose. El círculo GD menor se compone de dos CPUs, y el mayor de 15. Un círculo GD sólo puede contener CPUs conectadas bien a través de un bus de comunicaciones (bus K) bien a través de un cable MPI. No se pueden utilizar dos medios distintos de comunicación al mismo tiempo.
Comunicación Siemens MPI
5
IES Cavanilles. Alicante
Comunicaciones Industriales
SFCs para la comunicación con datos globales GD
En vez de una comunicación cíclica, pueden utilizarse las funciones de sistema “Stardard Library > System Function Blocks” SFC60 “GD_SND” y SFC61 “GD_RCV” para programar el envío y recepción de datos globales. Los paquetes GD se deben haber configurado previamente en Step 7. Asegurar la coherencia para el paquete GD
Un paquete GD en una CPU de envío, tiene una estructura tal, que no está garantizado de antemano que los datos acumulados sean coherentes. Son coherentes los tipos de datos sencillos (bit, byte, palabra y palabra doble) un array de los tipos de datos byte, palabra y palabra doble de hasta una longitud máxima específica de CPU receptora. SFC60 “GD_SND”
SFC61 “GD_RCV”
Descripción de parámetros
Códigos de error
No habrá coherencia, por ejemplo, cuando consista de un array de bytes y la cantidad de bytes exceda la longitud máxima específica de la CPU. En el caso de que, sin embargo, se desee coherencia para todo el paquete GD, procédase en el programa de la siguiente forma: o
o o
bloquéese o retárdese la aparición de eventos de error de alarma o asíncronos de mayor prioridad mediante la llamada de la SFC 39 (DIS_IRT) o la SFC 41 (DIS_AIRT). llámese la SFC 60 "GD_SND". habilítense los eventos de error de alarma o asíncrono mediante la llamada de la SFC 40 (EN_IRT) o SFC 42 (EN_AIRT). Comunicación Siemens MPI
6
IES Cavanilles. Alicante
4.
Comunicaciones Industriales
Comunicación básica S7
Para las comunicaciones básicas S7 no se necesita realizar una configuración de enlaces. Las funciones de comunicación integradas se inician en el programa de usuario usando las SFC. En la comunicación S7, la CPU puede ser en principio servidor o cliente: Se distingue entre
Enlaces unilaterales (sólo para X_PUT/X_GET) Enlaces bilaterales (para X_SEND, X_RCV)
La funcionalidad disponible depende de la CPU. Por P or ello, en determinados casos debe emplearse un CP. La conexión no se configura, sino que se establece explícitamente cuando el programa de usuario llama la SFC . Una vez se han transferido los datos a la SFC, la conexión se mantiene o se finaliza, según
sea la parametrización. Si no puede establecerse una conexión, la petición en cuestión no se enviará. Sólo es posible establecer una conexión con un interlocutor en todo momento . La cantidad de
interlocutores a los que puede accederse uno detrás de otro no está limitada por los recursos de conexión disponibles.
Como vemos, tenemos dos tipos de funciones principales. Una con acuse de recibo SFC65 y SFC66, en el que los interlocutores envían y reciben los paquetes de datos desde y hacia una dirección concreta que deberemos especificar en las funciones y en las que los datos se van almacenado en un buffer que debe ser leído. Ambas funciones son necesarias para la comunicación. Por otro lado mediante las SFC67 y SFC68 leeremos o escribiremos en una variable sin necesidad de que en el interlocutor se llame a ninguna función. Comunicación Siemens MPI
7
IES Cavanilles. Alicante
Comunicaciones Industriales
Comunicación con función de recepción (SFC65 y SFC66)
La SFC 65 "X_SEND" permite emitir datos a un interlocutor situado fuera del equipo S7 propio. En el interlocutor, la recepción de los datos se efectúa a través de la SFC 66 "X_RCV". Es necesario atender a que el área de emisión (en la CPU emisora) definida a través del parámetro SD sea menor o igual que el área de recepción (en el interlocutor) definida mediante el parámetro RD. Si SD es del tipo BOOL, RD deberá ser también del mismo tipo. La SFC 66 "X_RCV" permite recibir datos enviados por uno o varios interlocutores situados fuera del equipo S7 propio utilizando la SFC 65 "X_SEND". Con la SFC 66 "X_RCV" • •
es posible determinar si hay datos recibidos en el momento actual. Dado el caso, estos han sido colocados en una cola de espera interna por parte del sistema operativo. es posible copiar en un área de memoria especificada el paquete de datos más viejo de los situados en la cola.
SFC65 (X_SEND)
SFC66 (X_RCV)
Con la SFC66 podemos, bien verificar si hay datos nuevos en el buffer de entrada, llamando a la función con EN_DT=0, o aceptar los datos, con EN_DT=1. En la práctica tendremos que hacer un bucle que permita hacer la evaluación y de inmediato aceptarlos. Comunicación Siemens MPI
8
IES Cavanilles. Alicante
Comunicaciones Industriales
Señalizar la recepción de datos con EN_DT=0
Tan pronto lleguen datos de un interlocutor, el sistema operativo los coloca en la cola siguiendo el orden de recepción. Si se desea verificar si hay disponible como mínimo un paquete de datos, llamar la SFC 66 con EN_DT=0 y evaluar el parámetro de salida NDA:
NDA=0 significa que en la cola no hay registrado ningún paquete de datos. REQ_ID no tiene significado, RET_VAL incluye W#16#7000. NDA=1 significa que en la cola hay como mínimo un paquete de d atos disponible.
En este caso evaluar también los parámetros de salida RET_VAL y, dado el caso, REQ_ID. RET_VAL incluye la longitud en bytes del paquete de datos; REQ_ID el identificador de petición del bloque de emisión. Si en la cola hay varios paquetes de datos, REQ_ID y RET_VAL pertenecen al paquete más viejo de los situados en la cola. Aceptar los datos en el área de recepción con EN_DT=1
Si se llama la SFC 66 "X_RCV" con EN_DT=1, entonces el paquete de datos más viejo de la cola se copia en el área de la memoria de trabajo definida por RD. RD debe ser mayor o igual que el área de emisión definida mediante SD de la SFC 65 "X_SEND" asociada. Si su parámetro de entrada SD es del tipo BOOL, RD debe ser también del mismo tipo. Si se desea memorizar en diferentes áreas los datos recibidos, basta con observar REQ_ID (llamada de la SFC con EN_DT = 0) y elegir RD adecuadamente en la petición sucesiva (con EN_DT = 1).Si al copiar no ha aparecido ningún error, entonces RET_VAL contiene la longitud, en bytes, del paquete de datos copiado; seguidamente se envía un acuse positivo al emisor.
Comunicación sin función de recepción (SFC67 y SFC68)
La SFC 68 "X_PUT" permite escribir datos en un interlocutor situado fuera de la estación S7 propia. En el interlocutor no existe ninguna SFC asociada. La escritura se activa tras llamar la SFC con REQ=1. Seguidamente se llama tantas veces la SFC hasta que se señalice, con BUSY=0, la recepción del acuse. Es necesario atender a que el área de emisión (en la CPU emisora) definido mediante el parámetro SD tenga la misma longitud que el área de recepción (en el interlocutor) definida con el parámetro VAR_ADDR. Además deben coincidir los tipos de datos en SD y VAR_ADDR. La SFC 67 "X_GET" permite leer datos de un interlocutor situado fuera del equipo S7 propio. En el interlocutor no existe ninguna SFC asociada. La lectura se activa llamando la SFC con REQ=1. Seguidamente se llama la SFC tantas veces como sea necesario para que se señalice, con BUSY=0, la recepción de los datos. Entonces, RET_VAL incluye la longitud, en bytes, del paquete de datos recibido. Es necesario atender a que el área de recepción (en la CPU receptora) definida mediante el parámetro RD sea como mínimo tan largo como el área de lectura (en el interlocutor) definida con el parámetro VAR_ADDR. Además deberán coincidir los tipos de datos de RD y VAR_ADDR.
Comunicación Siemens MPI
9
IES Cavanilles. Alicante SFC68 (X_PUT)
Comunicaciones Industriales SFC67 (X_GET)
Interrupción de un enlace con un interlocutor existente (SFC69)
La SFC 69 "X_ABORT" permite interrumpir el enlace con un interlocutor situado fuera del equipo S7 propio y que fue establecido con una de las SFCs X_SEND, X_GET o X_PUT. En caso de que haya concluido la petición correspondiente a X_SEND, X_GET o X_PUT (BUSY = 0), los recursos que habían estado ocupados por ese enlace quedan libres a ambos lados tras llamar a la SFC 69 "X_ABORT". En caso de que la petición correspondiente a X_SEND, X_GET o X_PUT (BUSY = 1) todavía no haya concluido, al terminar la interrupción del enlace el usuario debe volver a llamar a la correspondiente SFC especificando REQ = 0 y CONT = 0, y esperar hasta obtener la señal BUSY = 0. Y en el instante en que se obtenga dicha señal volverán a quedar libres todos los recursos que habían permanecido ocupados por ese enlace. La SFC 69 "X_ABORT" sólo puede llamarse en el lado dónde corre la SFC "X_SEND", "X_PUT" o "X_GET". La interrupción del enlace se activa una vez llamada la SFC con REQ=1. SFC69 (X_ABORT)
Comunicación Siemens MPI
10
IES Cavanilles. Alicante
5.
Comunicaciones Industriales
Comunicación S7
Los servicios de comunicación S7 ofrecen un intercambio de datos por medio de bloques de función del sistema para comunicación (SFBs) y bloques de función para comunicación (FBs) para enlaces S7 configurados.
Todos los controladores SIMATIC S7 y C7 tienen servicios de comunicación S7 integrados con los que el programa de usuario puede leer o escribir datos. Los controladores S7-400 utilizan SFBs y los controladores S7-300 y C7 utilizan FBs. Estas funciones están disponibles independientemente del sistema de comunicación empleado, de modo que puede utilizar la comunicación S7 a través de PROFINET, Industrial Ethernet, PROFIBUS o MPI. Los servicios de comunicación S7 ofrecen las siguientes funciones: En la configuración del sistema se configuran los enlaces que deben utilizarse en la comunicación S7. Estos enlaces permanecen configurados hasta que se carga una nueva configuración en el sistema de destino. Puede configurar varios enlaces con un interlocutor. El número de interlocutores disponibles en un momento determinado está limitado al número de recursos de conexión disponibles en la CPU o en el CP. Con la comunicación S7 puede transmitir un bloque de un máximo de 64 KB por llamada del SFB o del FB. Una S7-400 envía como máximo cuatro variables por cada llamada de bloque. Una S7-300 envía como máximo una variable por cada llamada de bloque.
•
•
•
En la comunicación S7, la CPU puede ser en principio servidor o cliente: Se distingue entre
Enlaces unilaterales (sólo para PUT/GET) Enlaces bilaterales (para USEND, URCV, BSEND, BRCV, PUT, GET)
La funcionalidad disponible depende de la CPU. Por ello, en determinados casos debe emplearse un CP. Comunicación S7 en función del tipo de interfaz, el modelo de CPU y la versión de FW.
Comunicación Siemens MPI
11
IES Cavanilles. Alicante
Comunicaciones Industriales
Los servicios de comunicación disponibles para el S7-300 a través del interfaz MPI, incluidos los que ya hemos visto en los puntos anteriores, se resumen en la tabla siguiente:
Enlace S7 como vía de comunicación
Cuando los módulos S7 se comunican entre Sí, se establece entre ellos un enlace S7. Este enlace S7 es la vía de comunicación. Nota: La comunicación de datos globales, el acoplamiento punto a punto y la comunicación vía PROFIBUS DP, PROFINET CBA, PROFINET IO, TCP/IP, ISO on TCP, UDP, servidor web y SNMP no requieren enlaces S7.
Todo enlace requiere recursos de enlace S7 en la CPU mientras dure esta comunicación. Por ello, en todas las CPUs S7 existe un determinado número de enlaces S7 ocupados por distintos servicios de comunicación (comunicación PG y OP, comunicación S7 o comunicación básica S7). En la CPU se reserva automáticamente un recurso de enlace para la comunicación con la PC y uno para la comunicación con el OP. Si necesita más recursos de enlace (p. ej. al conectar varios OPs), aumente la cantidad en el cuadro de diálogo de propiedades de la CPU, en STEP 7. También deben configurarse enlaces para utilizar la comunicación S7 (con NetPro). Para ello debe haber enlaces disponibles que No estén ocupados por enlaces PG/OP o por otros enlaces. Los enlaces S7 necesarios se ocuparán al cargar la configuración en la CPU para la comunicación S7. En S7-300, S7-400 y sistemas C7, los siguientes bloques de comunicación se encargan de la comunicación S7 mediante enlaces S7 configurados: o o o o
BSEND (SFB12 / FB12) y BRCV (SFB13 / FB13) USEND (SFB8 / FB8) y URCV (SFB9 / FB9) GET (SFB14 / FB14) y PUT (SFB15 / FB15) SFBs y SFCs de alarma (ALARM_R y ALARM_S)
Las CPU de la serie S7-300 son limitadas en cuanto a las posibilidades de comunicación S7 por MPI, tanto por la capacidad de la CPU como por las especificaciones de esta comunicación limitadas a 187.5 kb/s (hasta 12 Mb/s en la serie S7-400 y en algunas CPU 300 de gama alta). En la práctica es más adecuado trabajar con las funciones de comunicación básica, si no hay un interlocutor S7-400 en la red. Comunicación Siemens MPI
12
IES Cavanilles. Alicante
Comunicaciones Industriales
Disponibilidad de recurso de conexión y reservados, en función de la CPU:
En los S7-300 sólo se puede configurar la comunicación S7 como servidor, pero no como cliente, lo que en la práctica no permite interconectar dos o más S7-300 entre sí por este tipo de comunicación a menos de que se disponga de unidades de comunicación (CP) en los lo s equipos cliente.
Más información en la web de Siemens: Comunicaciones en red MPI - Profibus, con ejemplos: https://support.industry.siemens.com/cs/document/23847972/%C2%BFqu%C3%A9-posibilidadesexisten-para-intercambiar-datos-entre-varias-cpus-a-trav%C existen-para-intercambiar-datos-ent re-varias-cpus-a-trav%C3%A9s-una-red-mpi-profibus3%A9s-una-red-mpi-profibusdp?dti=0&dl=es&lc=en-WW
Comunicación Siemens MPI
13
IES Cavanilles. Alicante
6.
Comunicaciones Industriales
Ejemplos de aplicación
Configuración de una red MPI
Para cualquier tipo de comunicación en red MPI, lo primero que tendremos que hacer es configurar los dispositivos y la red. Desde el Administrador Simatic crearemos crearemos un proyecto en el que se incluyan todos los PLC que van a participar en la comunicación y haremos la configuración del HW de cada uno de ellos.
Una vez configurados los equipos, pasaremos a configurar la red MPI con el programa NetPro, al que podemos acceder de diversas maneras:
La configuración pude hacerse bien desde NetPro o también podríamos haberla hecho directamente desde la ventana de HW de cada uno de los PLC indicando la dirección MPI única que te ndrán en la red. Comunicación Siemens MPI
14
IES Cavanilles. Alicante
Comunicaciones Industriales
Por defecto todos los PLC tienen la misma dirección MPI (2), por lo que deberemos ajustar una diferente para cada uno de ellos y conectarlos a la red. Por ejemplo, ajustaremos las direcciones 2, 3 y 5.
Haciendo doble clic sobre la interfaz MPI (el cuadrado rojo), editamos sus propiedades y
Comprobaremos como han cambiado las direcciones de cada uno de ellos y que además aparece una línea roja que indica que la estación está conectada a la red MPI. Guardaremos y compilaremos la configuración antes de cargarla en los equipos.
Comunicación Siemens MPI
15
IES Cavanilles. Alicante
Comunicaciones Industriales
Seleccionaremos cada uno de los equipos y cargaremos su configuración, conectando el cable de comunicación MPI cada vez en el equipo correspondiente.
Podríamos haberlo hecho también directamente desde la configuración HW de cada equipo y transferirlo junto con el resto de la configuración.
Una vez cargadas las configuraciones conectaremos el puerto MPI de cada PLC con el cable morado usado en ProfiBus, asegurándonos de que el interruptor de los conectores de los extremos estén en ON (en este caso los PLC con dirección 2 y 5), mientras que el conector del PLC intermedio (con dirección 3 en nuestro ejemplo), está en la posición OFF.
Nota: Si en los PLC existe un módulo de comunicación (un CP 342-5, por ejemplo), será necesario asignar a estos
una dirección MPI unívoca (aunque no se utilice en la comunicación) ya que por defecto todos tienen la dirección MPI 3, dando un error por ser utilizada más de una vez. Basta con asignar una dirección a cada uno de estos módulos que sea diferente.
Comunicación Siemens MPI
16
IES Cavanilles. Alicante
Comunicaciones Industriales
Comunicación mediante Datos Globales (GD)
Partimos de una red MPI correctamente configurada en la que tenemos conectados 3 PLC con direcciones MPI 2, 3 y 5.
Accederemos a la vista de redes NetPro y seleccionaremos la red MPI (pinchar sobre la barra roja a la que están conectados los puertos MPI de los PLC), después, sobre Herramientas > Definir datos globales.
Nos aparecerá una ventana en la que se procede a la configuración de los datos globales del sistema. Sobre una columna, pinchando con el botón derecho del ratón, nos permitirá elegir la CPU relacionada con esos datos.
Se abrirá entonces una ventana en la que podremos seleccionar de entre todas las CPU del proyecto a la que configuraremos esos datos. Hay que tener en cuenta que la configuración se hace directamente sobre la CPU, por lo que deberemos hacer doble clic y acceder a la CPU de ese PLC
Comunicación Siemens MPI
17
IES Cavanilles. Alicante
Comunicaciones Industriales
Repetiremos el proceso y agregaremos las CPU que van a participar en la comunicación, tendremos entonces en nuestro ejemplo 3 columnas, una con cada PLC.
Ahora ya podemos proceder a indicar qué datos van a intercambiar los PLC. Primeramente tendremos que especificar quién va a ser el PLC emisor de los datos ye después el o los receptores de los mismos. Bien seleccionándolo con el botón derecho del ratón o con la combinación de teclas CTRL+D, indicamos la celda del emisor, que quedará coloreada en verde y con la indicación ( >) en la celda.
Ahora deberemos introducir los datos a enviar. Recordemos que podemos enviar hasta 8 bytes y que el conjunto de la comunicación GD (todos los datos envidos por todos los participantes) no pueden exceder de 22 bytes en total. La sintaxis a utilizar comprende la dirección a enviar (en el caso de datos BOOL) o el byte, palabra, doble palabra o bloque de datos inicial que se envía y la longitud del mismo (con el límite de 8 byte). En caso de necesitar editar una entrada, pulsar F2. Comunicación Siemens MPI
18
IES Cavanilles. Alicante
Comunicaciones Industriales
Una vez editada la tabla, pulsaremos en el icono o con CTRL+B para compilar los datos y verificar que no haya errores en la tabla
Por ejemplo, en este caso tendremos 4 círculos (cada círculo es una conexión diferente entre CPUs), el primero entre el PLC_1 y el PLC_3 (con dos paquetes GD), el segundo incluye al PLC_1 con los PLC_2 y PLC_3, el tercero los PLC_2 y PLC_3 y por último el cuarto círculo comprende el PLC_2 con el PLC_1.
Tendremos que: GD 1.1.1 GD 1.2.1 GD 2.1.1 GD 3.1.1 GD 4.1.1
El PLC_1 transfiere la M10.0 al PLC_3 en M20.5 El PLC_2 transfiere el byte de entradas EB124 al byte de salidas AB125 del PLC_1 El PLC_1 Trasfiere Trasfiere los los bytes de entradas EB124 y EB125 EB125 a las salidas AB124 AB124 y AB125 de ambos PLC_2 PLC_2 y PLC_3 PLC_3 El PLC_2 transfiere transfiere 2 palabras de DB1.DBW0 DB1.DBW0 a 2 palabras palabras a partir de DB3.DW5 en en el PLC_3 PLC_3 El PLC_2 transfiere su byte de entradas EB124 al byte de salidas AB124 del PLC_1
Recordemos que:
Paquete GD
Los datos globales que tienen el mismo emisor y el mismo receptor se reúnen en un paquete GD. El paquete GD se envía en un telegrama. Un paquete GD se identifica mediante un número de paquete GD. Si se sobrepasa la longitud máxima de un paquete de emisión GD se utiliza un nuevo círculo GD. Círculo GD
Las CPUs que participan en el intercambio de paquetes GD forman un círculo. Si en una red MPI existen otras CPUs que intercambian paquetes GD, estas CPUs forman un segundo círculo. Círculos diferentes pueden acceder a las mismas CPUs superponiéndose. El círculo GD menor se compone de dos CPUs, y el mayor de 15. Un círculo GD sólo puede contener CPUs conectadas conectadas bien a través de un bus de comunicaciones comunicaciones (bus K) bien a través de un cable MPI. No se pueden utilizar dos medios distintos de comunicación al mismo tiempo.
Comunicación Siemens MPI
19
IES Cavanilles. Alicante
Comunicaciones Industriales
Desde la ventana Ver > Factores de ciclo , podemos ver y modificar cada cuantos ciclos se mandan los paquetes en cada círculo (por defecto 8, reducirlo con precaución para evitar la pérdida de paquetes en tiempos de ciclo cortos o en comunicaciones las que participen CPU lentas).
Una vez editada la tabla correctamente, se compilará y se deberá cargar en los PLC lo que se hace directamente desde el editor GD… Nos dará un aviso respecto a los factores de ciclo establecidos y procederá a la carga de los datos en cada CPU. Si estamos conectados a los PLC mediante un cable por MPI, deberemos realizar la carga uno a uno, desconectando y conectando alternativamente el cable a cada PLC.
Ya sólo queda probar que el sistema funciona correctamente activando las entradas de los PLC y comprobando que se reflejan en los otros. Para monitorizar las marcas y los DB podemos usar una tabla de variables y conectarnos a cada PLC por el cable MPI para ver que sucede. Nota:
En caso de transferir bloques de datos, como en el ejemplo, se deben crear en los PLC implicados las DB direccionadas, con una estructura ARRAY de suficientes bytes.
Comunicación Siemens MPI
20
IES Cavanilles. Alicante
Comunicaciones Industriales
Comunicación básica S7 (X_PUT y X_GET)
Partimos de una red de 3 PLC correctamente configurada. Si usamos la del ejemplo anterior, tomar la precaución de borrar la tabla de datos globales y transferir la configuración para evitar un mal funcionamiento.
En este ejemplo vamos a usar las funciones X_PUT y X_GET para mover las entradas del PLC_1 a las salidas de los otros dos. Moveremos el EB124 del PLC_1 al AB124 del PLC_2 y el EB125 del PLC_1 al AB124 del PLC_3. Opcionalmente además, pondremos la EB124 de los PLC_2 y PLC_3 en las salidas AB_124 y AB_125 en el PLC_1. Trabajaremos directamente en el OB1, pero podríamos hacerlo desde cualquier FC. Necesitamos un ‘trigger’ o disparador de la transmisión de datos, por lo que haremos un ‘apaño del siguiente tipo. Comparamos el EB124 y el EB125 (el EW124, en definitiva), con una palabra de marcas (la MW en este ejemplo). Si no coinciden, se activará una marca que moverá las entradas al byte de marcas y activará el disparo de las funciones de transferencia. De esta forma, cada cambio en el estado de las entradas provocará la transmisión de los nuevos datos. ’
Condición de disparo:
Programa de transferencia para el PLC_1:
Usamos la función SFC68 (X_PUT) para mover el byte de entradas E124 del PLC_1 al byte de salidas A124 del PLC_2 (dirección W#16#3) y el byte de entradas E125 del PLC_1 al byte de salidas A124 del PLC_3 (dirección W#16#5). Por coherencia de los datos realmente transferimos los datos que se encuentran en el área de marcas a los que los hemos movido previamente. El sistema así configurado cerrará la conexión una vez transferidos los datos y no lo volverá a abrir hasta que se modifique el estado de las entradas del PLC_1. Comunicación Siemens MPI
21
IES Cavanilles. Alicante
Comunicaciones Industriales
El problema para saber si los PLC_2 y PLC_3 tienen datos que transferir es que no tenemos nada que nos lo indique. Lo que haremos es abrir un canal de comunicación con cada PLC con la función SFC67 (X_GET) y lo mantendremos abierto, de forma que la comunicación entre ellos quedará abierta y se refrescará cíclicamente. Como la instrucción necesita una condición de disparo, usaremos en este ejemplo la entrada física E126.0 del PLC_1 y con la E126.1 activada mantendremos el canal de comunicación abierto.
Comunicación Siemens MPI
22
IES Cavanilles. Alicante
Comunicaciones Industriales
Vamos a añadir una función que me permita interrumpir la comunicación X_GET con los PLC_2 y PLC_3, para lo que usamos la SFC69 (X_ABORT). Como disparador uso la entrada del PLC_1 E126.1 (la misma que he usado para mantener el estado activo), de forma que cuando la desconecte se interrumpa la comunicación.
Comprobar qué si mantenemos la entrada E126.0 conectada de forma permanente ya no se envían los datos a las salidas de los PLC_2 y PLC_3, aunque sí que se reciben las modificaciones en las entradas de los mismos. Recordemos que sólo se puede mantener abierto un enlace entre dos PLC al mismo tiempo por este método. Al mantener abierto la petición X_GET, las modificaciones de las entradas del PLC_1 ya no se transmiten a los otros dos PLC, pero sí que se reciben los datos de sus entradas. Verificar cómo X_ABORT permite interrumpir la comunicación. Como ejercicios se propone: o
o
o
Reflejar el valor de la entrada analógica 1 del PLC_1 en las salidas analógicas de los PLC_2 y PLC_3 (usar marcas ya que no se pueden transferir directamente a unidades de periferia). Intercambiar los interlocutores, de forma que sean los PLC_2 y PLC_3 los que accedan a los datos del PLC_1. Hacer que la comunicación no sea cíclica, esto es que los datos se manden sólo cuando haya modificaciones en los estados de las entradas.
Comunicación Siemens MPI
23
IES Cavanilles. Alicante
Comunicaciones Industriales
Comunicación básica S7 (X_SEND y X_RCV)
Nuevamente partimos de una red de 3 PLC correctamente configurada. Si usamos alguno de los ejemplos anteriores, tomar la precaución de borrar la tabla de datos globales y/o los bloques de programa y transferir la configuración limpia para evitar un mal funcionamiento.
El problema con estas funciones es que no sólo hemos de usar un disparador para enviar los datos, sino que además hemos de recepcionarlos. Los datos recibidos se almacenan en un buffer de datos y han de ser evaluados en función del emisor para decidir si se descargan y a qué área de memoria. Un problema añadido es que en una llamada inicial a (X_RCV) sólo se avisa de si hay datos nuevos en espera y si los hay, habrá que evaluarlos (ver de qué interlocutor proceden) y descargarlos al área deseada con otra llamada a la misma función activando. El ejemplo que se propone implica que el PLC_2 y el PLC_3 enviarán el estado de sus entradas AB124 al PLC_1 y este las recepcionará y colocará las entradas del PLC_2 en sus salidas AB124 y las del PLC_3 en las salidas AB125. Para cada uno de los PLC_2 y PLC_3 haremos el mismo programa, que envía las entradas AB124 cuando hay un cambio en su estado. Como la comparación requiere una palabra, haremos dos movimientos, primero el byte de entradas a una marca y después, si hay cambios a otra, comparando estas dos marcas.
La única diferencia será el identificador de envío en X_SEND, que en el PLC_2 será DW#16#3 (su dirección MPI en hexadecimal) y para el PLC_3 será DW#16#5 (su dirección MPI). Comunicación Siemens MPI
24
IES Cavanilles. Alicante
Comunicaciones Industriales
Ahora en el PLC_1 crearemos la función que se encargará de recibir los datos, los evaluaremos y los llevaremos al byte de salidas correspondiente, los que vengan de PLC_2 al AB124 y los que vengan del PLC_3 al AB125.
Como ejercicio, se propone hacer que además se muestre el valor de una entrada analógica de un PLC en la salida de otro PLC, usando en este caso las funciones X_PUT o X_GET. Comprobar qué sucede cuando se intentan mantener dos comunicaciones de forma simultánea entre ellos (una por X_SEND y la otra mediante X_PUT o X_GET).
Comunicación Siemens MPI
25