1. Tema: Mensajería para la comunicación RSLogix 5000
Los mensajes se utilizan para realizar comunicaciones controladas por la lógica de programación. Por ejemplo enviar mensajes de aviso, y así no saturar las comunicaciones. Sin embargo existe una serie de limitaciones como que no puede haber más de 16 mensajes simultáneos. Se explican las conexiones de caché y los búferes a fin de que pueda programar correctamente el controlador. Tipos de datos compatibles
Se aceptan los siguientes tipos de datos al enviar mensajes CIP: SINT, INT, DINT, LINT, REAL Además, para enviar un mensaje puede usarse cualquier tipo de estructura predefinida, definida por el módulo o definida por el usuario. Este diagrama muestra cómo el controlador procesa las instrucciones MSG.
Descripción
2
El controlador escanea la instrucción MSG y su condición de entrada del renglón pasa a ser “verdadero”. El mensaje pasará a un regulador, el cual tiene 16 posiciones. Si el regulador está lleno, el mensaje permanecerá habilitado, pero se mantendrá hasta otro escán de . El segmento de tiempo de procesamiento interno del sistema se ejecuta y el mensaje pasa del regulador a la cola de mensajes.
3
Si la instrucción MSG
Entonces la
No utiliza una conexión o la conexión no fue previamente almacenada en caché. Utiliza una conexión y la conexión está almacenada en caché
Utiliza un búfer no conectado para establecer comunicación con el dispositivo de destino. No uti liza un búfer no conectado.
1
4
instrucción MSG
Se establece establece comunicación con el dispositivo de desti no.
1
Cola de mensajes
La cola de mensajes puede contener hasta 48 instrucciones MSG, incluyendo las que usted configure como lectura de transferencia en bloques o escritura de transferencia en bloques. Cuando la cola esté llena, una instrucción intentará entrar en ella cada vez que se escanee la instrucción, tal como muestra el siguiente esquema:
Descripción: 1
instrucción MSG. La condición de entrada del renglón de la instrucción MSG es verdader o . El bit EN está establecido. La instrucción MSG intenta entrar en la cola pero hay 16 posiciones de regulador. Si las 16 están llenas y se ejecuta un 17° mensaje, el mensaje se habilita, pero … …el bit EW permanece borrad o. El controlador escanea la “
2 & 3
”
MSG. La condición de entrada del renglón de la instrucción MSG es f also . El bit EN permanece establecido. La instrucción MSG intenta pasar a través del regulador, pero todavía no hay posiciones a bier tas. El bit EW permanece borrad o. El controlador escanea la instrucción “
4
”
El controlador escanea la instrucción
MSG.
La instrucción MSG intenta entrar en la cola. Esta vez la posición del regulador está abierta y el mensaje puede pasar a la cola de mensajes. El bit EW está esta blecido.
Lista de caché: Dependiendo de cómo configure una instrucción MSG, puede que ésta utilice
una conexión para enviar o recibir datos. Este tipo de me nsaje
Y este
método de co municaci ón
Ta bla de datos CIP de lectura o es cri tura
PLC-2, PLC-3, PLC-5 o SLC (todos los tipos)
Utiliza una co nexión Su opción
CIP
(1)
No
CIP con ID de origen
DH+
Sí
CIP genéric o
Su opción (2)
Lectur a o escritura de transferencia en bl oques
Sí
2
(1)
Los mensajes de lectura o escritura de la tabla de datos CIP pueden ser conectados o
desconectados. Pero para la mayoría de las aplicaciones, recomendamos que deje conectados los mensajes de lectura o escritura de la tabla de datos CIP. (2)
Los mensajes genéricos CIP pueden estar conectados o desconectados. Pero para la
mayoría de aplicaciones recomendamos dejar los mensajes genéricos CIP no conectados, a menos que desee usar la opción Large Connection. Si una instrucción MSG utiliza una conexión, usted puede escoger entre dejar la conexión abierta (caché) o cerrar la conexión cuando el mensaje se termina de transmitir. Si ust ed
Ent onces
Almacena en caché la conexión
La conexión permanecerá abierta después de que la instrucción MSG haya terminado. Esto optimiza el tiempo de ejecución. Abrir una conexión cada vez que se ejecuta el mensaje supone prolongar el tiempo de e jecución.
No almacena en caché la conexión
La conexión se cerrará después de que la instrucción MSG haya ter minado. De ese modo, la conexión quedará libre para otros usuari os.
El controlador tiene estos límites en cuanto al número de conexiones que usted puede almacenar en caché: Si usted tiene esta revisión de sof tware y f irmware
Entonces puede almacenar en c aché
11.x o anterior
•
•
Mensajes de transferencia en bloques para un máximo de hasta 16 conexiones Otros tipos de mensajes para un máximo de hasta 16
conexiones
Hasta 32 conexiones
12.x o posterior
Si varios mensajes van a un mismo dispositivo, estos mensajes pueden compartir una conexión. Si las instrucciones MSG son para
Y
Dispositivos difer entes
Ento nces Cada instrucción
El mismo
dispositivo y almacenado en caché y sin conexión gr ande
El mismo
dispositivo y almacenado en caché y conexi ón gr ande
MSG utiliza 1 conexión.
Son habilitados al mismo tiempo (el mismo escán)
Cada instrucción MSG utiliza 1 conexión y un búfer en caché.
No son habilitadas al mismo tiem po
Todas las instrucciones MSG utiliz an 1 conexión un búfer en caché. Compar ten la conexión y el
Son habilitados al mismo tiempo (el mismo escán)
No son habilitadas al mismo tiem po
y
. Cada instrucción MSG utiliza 1 conexión y un búfer en caché. Todas las instrucciones MSG utiliz an 1 conexión un búfer en caché. Compar ten la conexión y el
y
.
Búferes no conectados: Para establecer una conexión o procesar mensajes no conectados, el
controlador utiliza un búfer no conectado.
Término
Definición
Búfer no conectado
Asignación de memoria
que el controlador utiliza para procesar comunicaciones no conectadas. El controlador establece una comunicación no conectada cua ndo: Establece una conexión con un dispositivo, incluido un módulo de E/S. Ejecuta una instrucción MSG que no utiliza una conexión. • •
3
El controlador puede tener entre 10 …40 búferes no conectados. El número predeterminado es 10. • •
• •
Para aumentar el número de búferes no conectados, ejecute una instrucción MSG que reconfigure el número de búferes no conectados. Cada búfer no conectado utiliza 1.2 KB de memoria. Si todos los búferes no conectados están siendo utilizados en el momento en que una instrucción abandona la cola de mensajes, dicha instrucción generará un error y los datos no serán transferidos.
Si una instrucción MSG utiliza una conexión, entonces emplea un búfer no conectado cuando se ejecuta por primera vez para establecer una conexión. Si usted configura la instrucción de forma que la conexión se almacene en caché, una vez establecida la conexión la instrucción ya no precisará un búfer no conectado. Pautas : A la hora de planificar y programar sus instrucciones MSG, aplique las siguientes
pautas:
Pauta
Detalles
1. Para cada instrucción MSG, cree un tag de control.
Cada instrucción MSG necesita su propio tag de con t rol. Tipo de datos = MEN SAJE • Alcance = contr olador • El tag no puede formar parte de una matriz ni pertenecer a un tipo de datos definido por el •
2. Mantenga los datos de origen y/o destino dentro del alcance del controlador. 3. Si su mensaje es para un dispositivo que utiliza enteros de 16 bits, utilice un búfer de INT en el mensaje y DINT en todo el pr oyecto. 4. Almacene en caché los mensajes conectados que s e ejecuten con más fr ecuencia. 5. Si desea habilitar más de 16 mensajes a la vez, utilice alguna estrategia de administr ación.
. Una instrucción MSG solamente puede acceder a aquellos tags que estén en la carpeta Controller Tags (alcance del controlador). Si su mensaje es para un dispositivo que utiliza enteros de 16 bits, por ejemplo un controlador PLC-5 o un SLC 500, y transfiere enteros (y no reales), utilice un búfer de INT en el mensaje y DINT en todo el pr oyecto. Esto incrementará la eficiencia de su proyecto, ya que los controladores Logix5000 son más eficientes y utilizan menos memoria cuando operan con enteros de 32 bits ( DINT). . Almacene en caché la conexión de aquellas instrucciones MSG que se ejecuten con más frecuencia (hasta alcanzar el número máximo de instrucciones que le permita la revisión de su controlador). Esto optimizará el tiempo de ejecución, ya que el controlador no tendrá una conexión abierta cada vez que el mensaje se eje cute. Si usted habilita más de 16 mensajes a la vez, algunas instrucciones MSG pueden sufrir retrasos a la hora de entrar en la cola. Para garantizar la ejecución de cada mensaje, escoja una de las siguientes opciones: Habilite cada mensaje en secuencia. Habilite los mensajes en grupos. Programe un mensaje para que se comunique con múltiples dis positivos. . El controlador puede tener entre 10… 40 búferes no conectados. El número predeterminado es 10. Si todos los búfer es no conectados es tán siendo utilizados cuando una instrucción abandona la cola de mensa jes, dicha instrucción generará un error y no transferirá los datos. Usted puede aumentar el número de búferes no conectados (40 como máximo), pero debe • •
•
6.
Mantenga un número de mensajes no conectados y no almacenados en caché inferior al número de búferes no conectados.
•
•
. .
2. Ejemplo práctico de pasos para establecer una comunicación entre dos máquinas virtuales por medio de mensajería de RSLogix 5000
El control de la mensajería la hará el primer controlador (SoftLogix A). En la segunda máquina virtual (SoftLogix B) se crea dos tags; en el primero, MENSAJE_DATOS_RECIBIDOS, estarán los datos que se escribirán desde el SoftLogix A. En el segundo, MENSAJE_DATOS_A_ENVIAR, donde se encontraran los datos que serán leídos desde el SoftLogix A. En el SoftLogix B no se
4
hará ninguna programación, simplemente monitorizar los valores de ese par de tags.
El objetivo es que desde el SoftLogix A se podrá leer y escribir a través de mensajes en los tags del SoftLogix B. En el proyecto del SoftLogix A se debe especificar la existencia en la red Ethernet del SoftLogix B. Para ello, en el árbol de proyecto, en el apartado I/O Configuration, bajo la tarjeta Ethernet hay que incluir los módulos correspondientes para que quede como sigue:
Para cada comunicación por mensajes se debe definir un tag de tipo MESSAGE. Para usar un mensaje
tanto
para
escribir
y
otro
para
leer,
tags MENSAJE_ESCRITURA_SLB y MENSAJE_LECTURA_SLB respectivamente.
se
crea También
los se
necesita tags que tengan el mismo formato que los tags del SoftLogix B en los que se lee y escribe, así de ese modo se crea DATOS_A_ESCRIBIR_SLB y DATOS_LEIDOS_SLB. Finalmente se
5
coloca
un
par
de
booleanos
para
dar
las
órdenes
de
escritura
y
lectura:
ORDEN_ESCRITURA_SLB y ORDEN_LECTURA_SLB.
La programación consiste en lanzar la instrucción MSG con la orden de lectura o escritura y si no está el mensaje activo. Cuando finaliza la comunicación se borra la orden respectiva.
En cada instrucción MSG deberemos asignarle el tag de tipo MESSA GE correspondiente. Para configurar el mensaje se pulsa sobre el botón de los tres puntos que aparece en la instrucción.
6
Para el mensaje de lectura, en la pestaña Configuration lo primero es determinar el tipo de mensaje. Para la lectura de otro controlador Logix debo seleccionar CIP Data Table Read. A continuación, en Source Element debe escribir el nombre de la variable del SoftLogix B que va a leer, decirle cuantos datos de la tabla se transmitirán en Number of Elements y en Destination Element poner el tag del SoftLogix A donde se recogerán los datos.
En la pestaña Communication hay que especificar el controlador de donde se leerán los datos. Para
ello
se pulsa
sobre
el botón Browse y selecciona
el controlador remoto.
7
En la instrucción MSG de escritura se debe hacer una configuración similar, configurar como tipo de mensaje CIP Data Table Write, especificar el tag donde están los datos a transmitir, en número de dato y el nombre de la variable en el controlador remoto donde se almacenarán.
8
En la pestaña Communication también se debe seleccionar el controlador remoto.
Para probar que el servicio de mensajería funciona se debe cargar los proyectos en los dos SoftLogix y seleccionar on line. En los tags DATOS_A_ESCRIBIR_SLB del SoftLogix A y MENSAJE_DATOS_A_ENVIAR del SoftLogix B asignar valores al azar y activando los bits de órdenes de lectura y escritura en el SoftLogix A comprobar que los datos se transmiten correctamente.
9
Datos en el SoftLogix A
Datos en el SoftLogix B
10