Curso de RSSQL
Curso de RSSQL
Curso de RSSQL
Velez, Adrian
Curso de RSSql
11/10/2010
1 Page 2 of 34
TABLA DE CONTENIDO
1 Introducción a RSSql.
2 Servicios que componen a RSSql.
2.1 Antecedentes
2.2 Arquitectura de RSSql
3 Interfase gráfica de RSSql.
4 Terminología
5 Definición de una Configuración.
5.1 Paso 1. Definición de la configuración.
5.2 Paso 2. Definición de Conectores.
5.3 Paso 3. Definición de Data Points
5.3.1 Conceptos de comunicación OPC
5.3.2 Descripción de la pantalla de Data Points
5.4 Paso 4. Definición de Data Objects
5.5 Paso 5. Definición de Transacciones
6 Ejercicios de Ejemplo
6.1 Ejemplo: Adquisición de variables en el tiempo
6.2 Ejemplo: Registro de alertas.
6.3 Ejemplo: Descargar setpoints de una receta.
7 Administración de configuraciones RSSql.
7.1 Crear y Restaurar Respaldos.
7.2 Exportar e Importar Transacciones.
8 Diagnóstico de problemas en RSSql
11/10/2010
1 Page 3 of 34
Curso de RSSql
1 Introducción a RSSql.
RSSql (pronunciado “Rascal”) es la solución de Rockwell Software para la comunicación entre
dispositivos de control industrial y bases de datos o software corporativo.
Esta comunicación bidireccional entre bases de datos y equipos de control es posible gracias a
RSSql.
Servicios de Windows
Los servicios de Windows, también conocidos como Servicios NT son programas que se
ejecutan en una PC en segundo plano. Normalmente no tienen una interfase gráfica o ventana,
es decir no tienen interacción con el usuario, simplemente realizan procesos cuando es
necesario.
Como ejemplos de servicios tenemos:
Inicio de Sesión de Red: se encarga de validar las contraseñas de acceso de red en los
equipos de un dominio.
Fax: permite enviar y recibir Faxes.
Servidor web (IIS): Sirve páginas web a través del protocolo http.
Actualizaciones automáticas: se conecta a Internet para descargar actualizaciones del
sistema operativo.
Desde esta consola los servicios se pueden iniciar, detener y establecer su configuración básica
11/10/2010
1 Page 4 of 34
11/10/2010
1 Page 5 of 34
Notar que los elementos que componen a RSSql son únicamente los señalados en los puntos 3,
4 y 5.
11/10/2010
1 Page 6 of 34
11/10/2010
1 Page 7 of 34
Barra de título.
Barra de menús.
Barra de herramientas.
Árbol de configuraciones.
Área de trabajo.
Barra de estatus.
Barra de Título.
Muestra el ícono de RSSql y el nombre de la configuración o del servidor de configuraciones
(dependiendo de lo que se seleccione en el árbol de configuraciones), el nombre del producto y
los botones de Minimizar, Maximizar y Cerrar.
Barra de Menús.
Se puede acceder a muchas funciones de RSSql desde la barra de menús.
Security: Permite iniciar o cerrar sesión en FactoryTalk para poder utilizar la aplicación.
Configuration: Permite crear una nueva configuración de RSSql, establecer o cambiar las
propiedades de una configuración, acceder al CheckList de configuraciones, borrar,
respaldar o restaurar una configuración o iniciar o detener una configuración.
Define: Permite definir un conector, un data object, data points, o una transacción RSSql.
Además se pueden definir las opciones de registro de los eventos de error y eventos
programados.
Help: Muestra los archivos de ayuda y la información sobre la versión del producto.
Barra de Herramientas
Cada botón de la barra de herramientas es un acceso rápido a una función de RSSql.
11/10/2010
1 Page 8 of 34
Botón Descripción
Crea una nueva configuración de RSSql
Despliega la pantalla “acerca de…”
Despliega la ayuda en línea de cualquier elemento de la pantalla
(Oprima este botón y después el elemento en cuestión)
Inicia la configuración de RSSql o el conector seleccionado en el
árbol de configuraciones
Detiene la configuración de RSSql o el conector seleccionado en el
árbol de configuraciones.
Verifica la configuración de RSSql seleccionada.
Despliega la pantalla de Definición de Transacciones en el área de
trabajo.
Despliega la pantalla de Monitor de Transacciones en el área de
trabajo
Despliega la pantalla de Logs en el área de trabajo.
Despliega el gráfico del sistema en el área de trabajo.
Árbol de Configuraciones
Se ubica en la parte izquierda de la pantalla y muestra en forma de árbol la siguiente
información:
El nivel superior es el servidor de configuraciones que tiene el mismo nombre de la
computadora en la que está corriendo RSSql, el segundo nivel es el nombre de la configuración,
el tercer nivel muestra el administrador de transacciones seguido de los conectores de control y
los controles corporativos definidos en la configuración
Área de trabajo
11/10/2010
1 Page 9 of 34
Se encuentra en la parte derecha de la pantalla y puede mostrar las cuatro vistas mencionadas
anteriormente: Definición de Transacciones, Monitor de Transacciones, Log de errores y Gráfico
del Sistema.
4 Terminología
Configuración: Una configuración de RSSql consiste en un conjunto de transacciones de RSSql
que utiliza conectores de control y corporativos requeridos para la realización de dichas
transacciones.
Se pueden crear varias configuraciones, pero solo se puede ejecutar una a la vez, por lo que
todas las transacciones requeridas para implementar una aplicación deben estar contenidas en
una sola configuración.
Transacción: Se denomina transacción a la acción de leer datos del PLC (denominados Data
Points), enviarlos a la base de datos para ser registrados y opcionalmente obtener un resultado
de la base de datos y enviarlo de regreso al PLC.
11/10/2010
1 Page 10 of 34
Esta pantalla muestra todos los pasos a seguir para completar una configuración. Primero se
debe alimentar el nombre de la configuración nueva y se oprime el botón “Step 1”
Esta pantalla enlista los pasos requeridos y muestra el progreso de la configuración. Una marca
verde indica que el paso está concluido, mientras que una marca amarilla indica que el paso
está parcialmente concluido.
11/10/2010
1 Page 11 of 34
11/10/2010
1 Page 12 of 34
Para el caso del Servicio Transaction Manager, también se debe definir el puerto de
comunicación que utilizará, por default es el 400
11/10/2010
1 Page 13 of 34
El botón “Passwords” establece el mismo usuario y contraseña para todos los servicios
involucrados en la configuración, evita tener que capturarlos repetidamente para cada servicio.
El botón “Host/User” funciona igual que el botón “passwords”, salvo que adicionalmente copia el
Host Name a todos los servicios.
Como se mencionó antes, los diferentes conectores de control acceden a los registros del PLC
utilizando un servidor OPC o DDE, por lo que conviene estar familiarizado con los términos
utilizados en una comunicación OPC o DDE
En el siguiente diagrama se muestran los componentes que forman parte de una comunicación
OPC.
11/10/2010
1 Page 14 of 34
El cliente OPC realiza una conexión con el servidor OPC para realizar lecturas y escrituras de la
información que dispone el servidor, e incluso para ser notificado cuando algún valor cambie.
Dado que el servidor OPC puede tener acceso a varios PLCs, se necesita una manera de
distinguir los datos de un PLC con los de otro (ya que los PLCs pueden tener registros con el
mismo nombre o dirección de memoria). Para esta finalidad se utilizan los tópicos, que son
simplemente un nombre que distingue a un PLC de otro.
En resumen, para que un cliente OPC pueda leer un dato de un PLC utilizando en Servidor OPC
debe establecer la comunicación con el servidor, y especificando un tópico, solicitar al Servidor
OPC las variables que requiere para leer o escribir.
RSLinx es un servidor OPC que aun cuando cumple con el estándar OPC contiene algunas
funciones internas optimizadas para el uso de controladores Allen-Bradley y software de
Rockwell software. Una de estas diferencias es que un cliente OPC que utiliza RSLinx puede
utilizar un tópico para especificar un PLC o también, una ruta de acceso de red que apunta a
donde se encuentra el PLC. En este curso utilizaremos el acceso por tópico.
Se oprime el botón “New” para crear un nuevo tópico al que llamaremos, en nuestro ejemplo,
Curso_RSSql. Aparece en la sección izquierda de la pantalla. Del lado derecho de la pantalla se
muestra la red de PLCs con la que tiene comunicación RSLinx, se debe seleccionar el PLC al
que hará referencia el tópico, en nuestro ejemplo al SoftLogix denominado Curso_RSSql.
11/10/2010
1 Page 15 of 34
Para dar de alta y definir los Data Points, que serán utilizados por los conectores de control, se
cuenta con una pantalla con ciertas particularidades para cada conector, que deberán ser
tomadas en cuenta. En este documento nos enfocamos al conector RSLinx Classic OPC Control
Connector, que presenta la siguiente ventana
La parte superior de la pantalla muestra el nombre del conector definido en el paso 2 del
CheckList, el nombre del dispositivo PLC que en vez de ser tecleado, debe seleccionarse de la
ventana de exploración de redes de RSLinx (también conocida como RSwho), que está en el
centro de la ventana.
11/10/2010
1 Page 16 of 34
También se debe especificar la ruta o directorio donde se encuentra el archivo de Tags para ese
PLC. Un archivo de Tags es un archivo de texto plano separado por comas (formato CSV,
Comma Separated Values) que contiene la lista de los Tags que se encuentran dentro de un
PLC. Este archivo se puede elaborar en Microsoft Excel y debe tener el siguiente formato
El archivo no debe tener ningún encabezado, debe tener cuatro columnas con los siguientes
datos:
1. Dirección de memoria o nombre del Tag como está definido dentro del PLC.
2. Tipo de dato (Real, DINT, INT, STRING, BOOL, etc.)
3. Nombre del Tag que utilizará RSSql para su identificación.
4. Descripción del Tag.
La parte inferior de la pantalla muestra la lista de los Data Points de PLC seleccionado, que
RSSql utilizará. Inicialmente la lista aparece vacía.
Antes de agregar nuevos Data Points a esta lista conviene especificar es modo de acceso que
el conector utilizará al comunicarse con RSLinx, si por tópico o por ruta de red, para esto se
oprime el botón “Access Options”, que presenta la siguiente ventana
Es conveniente utilizar el modo por tópico, ya que de otro modo si se cambia la ruta de conexión
de la red es necesario ajustar cada Data Point, mientras que si se utiliza por tópico sólo bastaría
con apuntarlo al PLC correspondiente.
11/10/2010
1 Page 17 of 34
Para llenar la lista de Data Points a partir del archivo de Tags especificado, se oprime el botón
“Add Tags”, que muestra la siguiente ventana
En la parte superior se muestra información del conector, como su nombre y el archivo de Tag
seleccionado.
En la parte inferior de la pantalla se muestran dos listas, una, la de la izquierda muestra la lista
de Tags del archivo de Tags. La lista de la derecha muestra los Tags seleccionados para ser
agregados a este conector, como Data Points.
11/10/2010
1 Page 18 of 34
Para pasar Tags de una lista a la otra se utilizan los botones “>>” y “>>”. Una vez
seleccionados los Tags que se desean agregar se oprime el botón “Apply” que cierra esta
ventana y nos lleva a la ventana anterior donde se presentarán los nuevos Data Points
agregados.
Una de las partes más importantes de RSSql es la definición de los parámetros de los Data
Points, que se presentan en la lista inferior de la ventana. Como se dijo anteriormente, esta lista
se importó desde el archivo de Tags, pero el usuario puede agregar nuevos Data Points
escribiéndolos directamente sobre esta cuadrícula, así mismo, se puede modificar la
información que aparece en cualquier columna de esta lista. A continuación describiremos cada
una de las columnas que aparecen en ese listado:
1. Item address: Muestra la dirección o nombre del tag dentro del PLC.
2. Tag symbol: Es el nombre asignado al Tag (nombre corto)
3. Tag Description: Es la descripción del Tag.
4. Data Point Name: Es el nombre completo del Data Point, tal y como lo conoce RSSql,
está compuesto de la siguiente forma: Conector. Tópico. Nombre del tag. Ejemplo:
cnnLinx.Curso_RSSql.Maq0_ConteoPiezas
5. Topic: Nombre de tópico a utilizar. Si dice default se está utilizando el acceso por ruta.
6. Data Type: Es el tipo de dato.
7. Elements: Es la cantidad de elementos a leer/escribir. Es útil al leer arreglos de Tags.
8. Bindings: Indica si el Data Point ya está siendo utilizado por alguna transacción, si dice
“none” es que no está siendo utilizado.
11/10/2010
1 Page 19 of 34
Estas pueden ser configuradas directamente sobre la cuadrícula o bien, al dar click derecho
sobre un renglón de la lista y seleccionando “Edit Collection Parameters”, que resulta más
sencillo pues se muestra la siguiente ventana
El servidor OPC lee el valor del Data Point a la frecuencia especificada en el campo
“Subscription Scan Rate”, si se encuentra un nuevo valor, éste es enviado al conector de
control. Si el valor no ha cambiado en servidor OPC, no se transfiere ningún dato, de este modo
no se utiliza tráfico en la red para transmitir el mismo valor entre el servidor OPC y el conector
de control.
Este modo de adquisición es utilizado por transacciones que registran datos constantemente
(por ejemplo registrar datos de temperatura de un horno cada 5 minutos).
11/10/2010
1 Page 20 of 34
Servidor OPC lee directamente del PLC cuando el conector de control le solicita un dato. De
todos los modos de adquisición, este es el más tardado ya que no hace uso de ningún buffer.
Sin embargo es el más preciso ya que lee los datos directamente del PLC, cada vez que se
requieren.
Cabe mencionar que si no hay cambios en el valor del Data Point, el dato no será enviado a
RSSql.
El campo “Subscription Scan Rate” establece que tan rápido pueden llegar los datos, por
ejemplo, si se establece a 250 ms el servidor OPC no puede enviar los datos más rápido que a
esa tasa. Si el valor del Data Point cambia más rápido, el conector de control solo podrá ver los
valores cada 250 ms.
Este modo de adquisición se utiliza principalmente para los triggers de las transacciones.
Timeout Properties
Dado que este valor controla que tan seguido se debe refrescar el caché del conector de
control, el usuario puede especificar un valor alto, de tal manera que se reduzca la carga de
trabajo en el sistema. Por ejemplo, si un valor, como la temperatura de un horno, no cambia
muy seguido se puede especificar un valor de 10 minutos. Para una transacción que se ejecuta
cada minuto, RSSql utilizará la información del caché hasta que la vigencia del dato expire. Para
11/10/2010
1 Page 21 of 34
refrescar el dato cada vez que se utiliza se deberá especificar este lapso como 0.
Use Substitution Option For Bad Quality (Usar sustitución por mala calidad del dato)
Esta opción indica al conector de control que cuando reciba un dato con mala calidad, lo
sustituya por el valor especificado en el recuadro “Substitution Options”, esta opción sólo
es válida para los servidores OPC (no está presente para servidores DDE)
Substitution Option
En este recuadro se establece el valor de sustitución que será empleado al recibir un dato con
mala calidad (Cuando se ha seleccionado “Use Substitution Option…” en el recuadro anterior).
Los valores posibles son:
Los objetos de base de datos que pueden utilizarse como Data Objects son:
Tablas
11/10/2010
1 Page 22 of 34
Vistas
Procedimientos almacenados
Entonces, para cada conector corporativo se deben crear tantos Data Objects, como tablas,
vistas o procedimientos almacenados se vayan a utilizar.
Para dar de alta y definir los Data Objects, que serán utilizados por los conectores corporativos,
se debe oprimir el botón “Step 4”, que presenta la siguiente ventana
Inicialmente aparece vacía, ya que no existe ningún Data Object en el conector OLEDB y como
en este ejemplo es la primera vez que se va a dar de alta uno, primero se debe establecer una
conexión a la base de datos, oprimiendo el botón “…” del campo Database connection, que
presenta la siguiente ventana que se deberá configurar sólo una vez por cada base de datos
que se utilice, en este ejemplo todos los Data Objects que utilizaremos residen en la misma
base de datos, por lo que este paso se realizará sólo una vez.
11/10/2010
1 Page 23 of 34
La pantalla inicialmente aparece vacía y para especificar la conexión a la base de datos se debe
introducir los parámetros en el siguiente orden:
11/10/2010
1 Page 24 of 34
Una vez alimentada la conexión, se podrá escoger el objeto de base de datos a utilizar como
Data Object.
En el campo Data Object “Name” se escribe el nombre que le daremos al Data Object, es
recomendable utilizar el mismo nombre de la tabla, vista o procedimiento al que hará referencia.
En este ejemplo el Data Object “datMuestras” apunta a la tabla “Muestras”.
En campo “Mode” se define si se utilizará para realizar operaciones insert o update (sólo aplica
para tablas y vistas).
En la parte inferior de la ventana se muestran dos listas, la primera es la lista de campos que
contiene la tabla o vista, o bien. Para el caso de procedimientos almacenados, se muestra la
lista de parámetros del procedimiento.
Al oprimir el botón “Apply” queda registrado el Data Object. Se debe repetir esta operación para
cada Data Object que utilice el conector corporativo.
11/10/2010
1 Page 25 of 34
Transacciones Unidireccionales
Son el tipo más simple de transacción para añadir o actualizar registros en la base de datos, o
incluso, llamar a procedimientos almacenados que no devuelven parámetros. Son apropiadas
para el registro de eventos que ocurren en planta.
Las transacciones unidireccionales pueden utilizar la opción “Use Cache Transaction Files”, que
permite al Transaction Manager utilizar un archivo caché cuando la base de datos está muy
ocupada y no responde rápidamente y posteriormente enviar todos los datos del caché a la
base de datos.
Transacciones bidireccionales.
Las transacciones bidireccionales leen datos desde el PLC y llaman a un procedimiento
almacenado que ejecuta cierta lógica y que devuelve parámetros de salida, que a su vez son
enviados de regreso al PLC. También se pueden hacer transacciones bidireccionales que sólo
escriben en el PLC datos provenientes de la base de datos.
Este tipo de transacción es la más poderosa, ya que le permite al PLC interactuar con la base
de datos, mediante procedimientos almacenados o incluso, llamar a métodos de componentes
COM+.
Las transacciones bidireccionales deben utilizar la opción “Real Time Thread”, ya que por su
naturaleza, no es posible utilizar los archivos caché.
11/10/2010
1 Page 26 of 34
Para definir una transacción se oprime el botón “Step 5” del checkList de configuración y se
presenta la siguiente pantalla
En el campo” Data Object Name” se selecciona el nombre del Data Object que se utilizará en la
transacción.
Se selecciona si la transacción utilizará los archivos caché o “Real Time Thread” (descritos
anteriormente)
11/10/2010
1 Page 27 of 34
En la siguiente pantalla se muestran las asignaciones para cada parámetro, la columna “Bind
Type” indica el tipo de asignación utilizado para cada campo
11/10/2010
1 Page 28 of 34
En el campo “Expression String” se escribe la fórmula o valor explícito que se desee asignar al
parámetro. La fórmula puede tener multiplicación, división y otros operadores y utilizar Data
Points como operandos. También incluye algunas funciones, entre las que destacan:
TimestampOf(Data Point): Devuelve la fecha y hora en que se realizó la lectura del Data Point.
TransTimestamp(): Devuelve la fecha y la hora en que se dispara la transacción.
11/10/2010
1 Page 29 of 34
Por eventos no programados (On Unscheduled Event): Permite seleccionar un Data Point
Unscheduled para que dispare la transacción, en un flanco de subida, en un flanco de
bajada, cada que cambie, etc. Como se muestra en la siguiente figura
Por una aplicación externa: RSSql proporciona unas bibliotecas o DLLs que se pueden
utilizar en aplicaciones Visual Basic, para disparar transacciones.
11/10/2010
1 Page 30 of 34
Cuando se activa esta opción se permite seleccionar un Data Point en el cual el Transaction
Manager registrará el resultado de la transacción, se trata de un valor numérico en donde un
valor igual a 1 indica que la transacción se ejecutó satisfactoriamente, un valor mayor que 1
representa que la transacción falló y el valor corresponde al código de error de la
transacción.
De este modo, el PLC puede saber si una transacción fue ejecutada correctamente, de lo
contrario se puede programar la lógica necesaria en el PLC para que la operación se
reintente (es recomendable que el PLC contenga la lógica que ponga en 0 este Tag para
después detectar un cambio en el valor).
6 Ejercicios de Ejemplo
6.1 Ejemplo: Adquisición de variables en el tiempo
Con la información proporcionada por el instructor, realizar en el laboratorio un conjunto de
transacciones que registren el comportamiento de tres variables que cambian en el tiempo, las
transacciones deberán ejecutarse de forma periódica cada 20 segundos y registrar el muestreo
en una tabla de SQL.
Se desea crear las transacciones necesarias para registrar en la base de datos la presencia o
ausencia de fallas en cada máquina y registrar el historial de incidencias.
Se desea escribir una transacción que consulte los valores de especificación de la receta
seleccionada desde el PanelView y que se descarguen en el PLC.
11/10/2010
1 Page 31 of 34
Crear Respaldos
Desde el menú “Configuration” opción “Backup” se puede crear un archivo de respaldo de toda
una configuración RSSql. La información que se respalda es:
Conectores utilizados.
Configuración de cada conector.
Data Points de todos los conectores de control.
Data Objects de todos los conectores corporativos, incluyendo los parámetros de conexión
de cada conector corporativo.
Transacciones, incluyendo asignaciones y triggers.
Cabe mencionar que NO se respaldan los archivos de Tags utilizados por el conector RSLinx
Classic OPC Control Connector.
Al crear un respaldo se selecciona la ruta donde se almacenará y el nombre del archivo, al cual
se le asigna la extensión .RSQ
Restaurar Respaldos
Para restaurar un respaldo se selecciona la opción “Restore” del menú “Configuration”. El
sistema pregunta la ruta o directorio donde se desea escribir los archivos de configuración de
RSSql y el nombre que se le dará a la configuración a restaurar, puede ser la misma u otra.
Una vez que se restaura una configuración, sobretodo cuando se copia a otra computadora, es
muy importante verificar los parámetros configurados en los pasos 1 y 2 del CheckList, ya que
las rutas de directorios, usuarios y contraseñas pueden haber cambiado.
11/10/2010
1 Page 32 of 34
Al oprimir “siguiente” comienza el primer paso del asistente, en la que se debe seleccionar la
operación a realizar (importar o exportar), la configuración que contiene las transacciones en
cuestión y el nombre del archivo TSV
11/10/2010
1 Page 33 of 34
Al oprimir “siguiente” se selecciona el Data Object y las transacciones asociadas al mismo que
se desean exportar.
Al oprimir “Finalizar”, el asistente termina, generando el archivo TSV, que puede ser visualizado
en Excel, como se muestra en la siguiente figura
Por esta razón al oprimir el botón “Finalizar” en vez de cerrarse la ventana, se presenta
nuevamente la primera pantalla del asistente.
11/10/2010
1 Page 34 of 34
El Log del Transaction Manager muestra los errores correspondientes cuando alguna
transacción ha fallado y el texto del error siempre incluye el código de error asociado al mismo.
Al momento de instalar RSSql se instala también una aplicación llamada “Error Messages” que
sirve para obtener una descripción un poco más detallada del error, a partir de su código, como
se muestra en la siguiente ventana
RSSql Error: Se selecciona esta opción si es que el código de error fue leído en el Log del
Transaction Manager (el que aparece en la pantalla de RSSql)
Bind Transaction Result Error: Se selecciona esta opción si es que el código de error fue
leído desde el Data Point, en donde se reporta el resultado de la transacción (por ejemplo
visualizado desde RSLogix o desplegado en un PanelView del PLC)
11/10/2010