IntroducciónComo ya hemos comentado previamente, es necesario configurar una pasarela para poder gestionar los mapas de memoria modbus de los distintos dispositivos que tenemos desplegados por nuestra instalación.Este objeto que representa una pasarela en el servidor, además de permitirnos alcanzar dispositivos físicos modbus, nos permite también alcanzar cualquier otro origen de información que seamos capaces de mapear en un mapa de memoria modbus. Gestión de pasarelasCon las siguientes utilidades podremos conocer las pasarelas que están instaladas en el sistema.admin> help gatewayGATEWAY cmdGestiona las pasarela Modbus.LIST Muestra la lista de pasarelas.SHOW Muestra los modelo da datos modbus de las pasarelas.admin> gateway listName Status Explanation Description---------------- -------- -------------------- --------------------------------------------------default ERROR Invalid provider Provider used by invalid nodessimple OPENED Transport opened Simple router targetadmin>Si realizamos la consulta en un servidor recién instalado obtenemos estas dos pasarelas. La pasarela default es una pasarela especial, si intentamos utilizarla para acceder a sus mapas de memoria modbus obtendremos como resultado un error de acceso a los datos. Como indicamos en Objetos del servidor, las pasarelas son enganchadas a nodos. Si por cualquier motivo un nodo no está correctamente enganchado a una pasarela, el servidor utilizará para ese nodo la pasarela default. Como ya hemos indicado varias veces, conceptualmente un objeto pasarela del servidor nos permite acceder a un dispositivo pasarela remoto, el cual facilita el acceso a varios dispositivos conectados en un bus donde cada uno de ellos dispone de un mapa de memoria modbus. Disponemos de una utilidad para poder acceder a todos los mapas de memoria de todos los dispositivos que están conectados al objeto pasarela. admin> help gateway showGATEWAY SHOW [NAME=name] [TABLE=tablename] [REFERENCE=ref]Muestra los modelo da datos modbus de las pasarelas.Los parametros para este comando son:[Req] [Parametro] [Tipo] [Description] * NAME String Nobre de la pasarela TABLE String Tabla del modelo de datos que se quiere ver. Los valores posibles son (DISCRETE_INPUT, COIL, INPUT_REGISTERS, HOLDING_REGISTER) REF int Referencia o direccion inicial del item (0-FFFF)Como se ve en la ayuda proporcionada por la utilidad, podemos arrancar el visor del mapa de memoria proporcionando parámetros concretos de lo que deseamos ver. En el siguiente ejemplo simplemente indicaremos el nombre de la pasarela mediante el comando gateway show name=default Device: 1 Bank: Discrete inputsRef Value0000 -0001 -0002 -0003 -0004 -0005 -0006 -0007 -(^) Bloque anterior, (v) Bloque siguiente,(<) Tabla anterior, (>) Tabla siguiente,*Discrete inputs, Coils, Input registers, Holding registres(R) Indicar referencia, (D) Indicar dispositivo.(ESC) Finalizar, (SPACE) Refrescar, (+/-) AutoRefresco: 1000 milisegsEn la pantalla tendremos ahora las 8 primeras entradas del primer banco (Discrete Inputs), del dispositivo 1 de los 247 dispositivos posibles que se pueden conectar en una pasarela modbus tcp. La entrada correspondiente a un dato mostrará el dato en binario (true o false) o en hexadecimal (con un rango de 16 bits) dependiendo del tipo de banco al que estemos accediendo, pero en el caso de que la zona de memoria no sea válida (porque el dispositivo al que accedemos no la tiene mapeada) mostrará el carácter - como en el ejemplo anterior. Hay que tener en cuenta que un dispositivo modbus implementará sólo un rango de la memoria (siempre empezando desde la posición 0x0) y tal vez sólo alguno de los bancos. Esta pantalla nos permitirá desplazar las 8 entradas de datos que visualizamos entre todos los modelos de memoria de todos los dispositivos a los que se puede acceder mediante la pasarela modbus. La posibilidades de navegación son:
Instalación de pasarelasPara instalar una pasarela necesitamos configurarla y para ello tenemos que proporcionarle los datos que se necesitan para su configuración.Dispondremos de varios tipos de pasarelas y pueden aparecer más tipos a medida que surjan nuevas necesidades. Debido a esta variedad, ésta es la única parte del servidor que no se gestiona mediante comandos a través de las sesiones interactivas que abrimos con un cliente telnet (como hemos ido viendo hasta ahora en los ejemplos). Como ya se indicó en Instalación, existe un directorio c:\scada-middleware\bin\install (estamos suponiendo que el servidor está instalado en c:\scada-middleware) donde podemos incluir nuevos Bundles y también ficheros de configuración para éstos. A este directorio le llamaremos a partir de ahora directorio de instalación dinámica y en él podremos instalar indistintamente nuevos tipos de pasarelas como ficheros de configuración para éstas. Pasarela: simpleÉsta es una pasarela muy elemental y su único objetivo es que podamos hacer pruebas también muy simples.Sus características son:
Podemos aprovechar esta pasarela, que es bastante inútil y nunca estará en producción, para probar primero a desinstalarla y después volver a instalarla. Los pasos serían:
Como el nodo del que estamos hablando mantiene en su configuración una ruta hacia la pasarela simple, en el momento que esta pasarela estuviese disponible otra vez, el nodo se engancharía de nuevo con ella. Pasarela de tipo simulaciónEn este caso estamos hablando de un tipo de pasarela y esto quiere decir que podemos configurar tantas pasarelas como queramos.Con estas pasarelas podremos hacer pruebas mucho más complejas y simular un entorno más real (al menos en lo referente a la carga del sistema). Deberemos incluir un archivo de configuración en el directorio de instalación dinámica por cada cada pasarela que deseemos crear, y podremos utilizar el archivo C:\scada-middleware\doc\com.speedycontrol.gateway.simulator-sample.cfg como plantilla (estamos suponiendo que el servidor está instalado en c:\scada-middleware). El nombre de fichero com.speedycontrol.gateway.simulator-sample.cfg tiente tres partes significativas:
Por tanto, si queremos tener 4 pasarelas de simulación instaladas, podríamos incorporar en el directorio de instalación dinamica 4 ficheros con los siguientes nombres. Ejemplo:
Al final del archivo tenemos los cuatro campos que hay que configurar siendo el campo NAME el que contendrá el nombre que la pasarela tendrá dentro del servidor. ################################################################### === DESCRIPCION ===## Esta pasarela permite definir uno o mas nodos modbus donde cada# nodo dispondra de un modelo de memoria con valores dinamicos# que permitiran verficar el funcionamiento de sistema sin la# necesidad de utilizar dispositibos modbus fisicos.## El mapa de memoria y sus valores para cada nodo sera:## DIGITAL_INPUTS: # El rango de direciones disponibles sera 0x00-0x20 (0-32) # con un valor inicial 'false' para cada posicion.# Transcurrido el tiempo indicado por el atributo # 'refreshperiod' se producira un desplazamiento de los # valores desde la posicion mas alta hacia las mas baja.# Como consecuencia, en cada desplazamiento se perdera el# valor mas bajo del rango de memoria y entrara un nuevo # valor por la zona alta del rango de memoria.# El nuevo valor que entrara por la zona alta sera un valor# FALSE excepto cada 6 ocasiones en la que entrara un valor # TRUE.# # Ejemplo (FALSE == 0, TRUE = 1):# 00.......00000000000000000000000000000000000000000 # 00.......00000000000000000000000000000000000000001 # 00.......00000000000000000000000000000000000000010 # 00.......00000000000000000000000000000000000000100 # 00.......00000000000000000000000000000000000001000 # 00.......00000000000000000000000000000000000010000 # 00.......00000000000000000000000000000000000100000 # 00.......00000000000000000000000000000000001000001 # 00.......00000000000000000000000000000000010000010 # 00.......00000000000000000000000000000000100000100 # 00.......00000000000000000000000000000001000001000## INPUT_REGISTER:# El rango de direcciones disponible sera 0x00-0x20 (0-32)# con un valor inicial 0x0 para cada posición.# Transcurrido el tiempo indicado por el atributo # 'refreshperiod' se producira un incremento en el valor # de cada posocion. El valor de dicho incremento sera# el de su propia direccion.## Ejemplo:# Posicion 0: 0, 0, 0, 0, 0, ....# Posicion 1: 0, 1, 2, 3, 4, ....# Posicion 2: 0, 2, 4, 6, 8, ....# Posicion 3: 0, 3, 6, 9, 12, ....# Posicion 4: 0, 4, 8, 12, 16, ...# "# Posicion 32: 0, 32, 64, 128, 256, ...## COILS:# El rango de direcciones disponible sera 0x00-0x20 (0-32)# con un valor inicial FALSE para cada posición.# En esta zona de la memoria no se producira ningun cambio# automatico en sus valores.# Al ser una zona de R/W se podra escribir valores los cuales # persistiran mientras el sistema este en funcionamiento.## REGISTERS:# El rango de direcciones disponible sera 0x00-0x20 (0-32)# con un valor inicial 0 para cada posición.# En esta zona de la memoria no se producira ningun cambio# automatico en sus valores.# Al ser una zona de R/W se podra escribir valores los cuales # persistiran mientras el sistema este en funcionamiento.# ##################################################################################################################################### Nombre de la pasarela que tiene que ser unico# entre el conjunto de pasarelas definidas.##################################################################NAME=simu-sample################################################################### Primer nodo modbus que podra se referenciado en esta pasarela##################################################################FIRSTNODE=1################################################################### Numero de nodos modbus que podran ser referenciados a partir# del nodo que se ha definido como primero.##################################################################NODES=10################################################################### Numero de milisegundos que transcurriran entre los refrescos de# de los valores calculados de los nodos modbus disponibles# en esta pasarela.##################################################################REFRESHPERIOD=800Pasarela de tipo modbusEsta pasarela nos permitirá conectar con dispositivos Modbus que tengan interface ethernet y soporten el protocolo Modbus TCP.Deberemos incluir un archivo de configuración en el directorio de instalación dinámica por cada cada pasarela que deseemos crear, y podremos utilizar el archivo C:\scada-middleware\doc\com.speedycontrol.gateway.modbus-sample.cfg como plantilla (estamos suponiendo que el servidor está instalado en c:\scada-middleware). El nombre de fichero com.speedycontrol.gateway.modbus-sample.cfg tiente tres partes significativas:
Por tanto, si queremos tener 4 pasarelas de tipo modbus instaladas, podríamos incorporar en el directorio de instalación dinámica 4 ficheros con los siguientes nombres. Ejemplo:
Al final del archivo tenemos los cuatro campos que hay que configurar, siendo el campo NAME el que contendrá el nombre que la pasarela tendrá dentro del servidor. ################################################################### === DESCRIPCION ===## Esta pasarela permite conectar con dispositivos modbus tcp# remotos para acceder a sus mapas de memoria.##################################################################################################################################### Nombre de la pasarela que tiene que ser unico# entre el conjunto de pasarelas definidas.##################################################################NAME=gatewayname################################################################### Direccion IP del dispositivo MOBUS-TCP##################################################################IP=192.168.1.12################################################################### Puerto IP del dispositivo MOBUS-TCP# Este es un parametro opcional y su valor por defecto es 502. ##################################################################PORT=502################################################################### Tiempo para el reintento de la conexion.# En caso de que no se pueda establecer la conexion o esta se # haya perdido, este parametro inidica el numero de milisegundos# que se esperara antes de intentar conectar de nuevo.# Este es un parametro opcional y su valor por defecto es 1000. ##################################################################RETRYTIMEOUT=1000Construcción de nuevas pasarelasComo ya se ha indicado anteriormente, mediante el directorio de instalación dinámica podemos cargar en tiempo de ejecución nuevas pasarelas desarrolladas específicamente para algún proyecto.Imaginemos cualquier mecanismo mediante el cual podamos obtener información:
|