General

Recursos

Gestionando el modelo

Preparación

Para poder crear los objetos involucrados en la adquisición de datos que son los nodos, los grupos y los puntos, configuraremos una pasarela llamada simu-sample (para mas información ver Pasarelas).

Lo haremos copiando el fichero c:\scada-middleware\doc\com.speedycontrol.gateway.simulator-sample.cfg en el directorio de instalación dinámica c:\scada-middleware\bin\install (estamos suponiendo que el servidor está instalado en c:\scada-middleware).

Entonces nos deberá aparecer en el servidor la pasarela simu-sample.
admin> gateway list

Name             Status   Explanation          Description
---------------- -------- -------------------- --------------------------------------------------
default          ERROR    Invalid provider     Provider used by invalid nodes
simple           CLOSED   Transport closed     Simple router target
simu-sample      ERROR    This gateway is clos Modbus simulator

admin>

El estado ERROR desaparecerá en cuanto empecemos a acceder a la pasarela.

De esta forma y gracias a una pasarela de tipo simulación, podremos continuar con el diseño de la adquisición sin tener la necesidad de desplegar un dispositivo de tipo pasarela, al cual tendría que estar conectado con los correspondientes elementos de campo para poder obtener datos.

Parte significativa del fichero de configuración del simulador.
##################################################################
# 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=800

Podemos ver los datos que está generando esta pasarela en cualquiera de sus 10 dispositivos mediante el comando GATEWAY SHOW NAME=simu-sample.


Device: 3    Bank: Input registers

Ref                             Value
0000                            0000
0001                            017e
0002                            02fc
0003                            047a
0004                            05f8
0005                            0776
0006                            08f4
0007                            0a72

(^) 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 milisegs

Creación de los objetos

En el fichero c:\scada-middleware\doc\sample_commands.txt tenemos todos los comandos que utilizaremos para diseñar nuestra adquisición de datos (estamos suponiendo que el servidor está instalado en c:\scada-middleware).

Iremos cogiendo partes de su contenido y ejecutando mediante la técnica de copiar los comandos en el portapapeles y pegarlos en la consola telnet para que se ejecuten.

El contenido de este fichero es el siguiente.
SCADA NODE ADD NODE=simu-sample

SCADA GROUP ADD PARENT=/ NAME=GROUP-A
SCADA GROUP ADD PARENT=/GROUP-A NAME=SUB
SCADA GROUP ADD PARENT=/ NAME=GROUP-B
SCADA GROUP ADD PARENT=/ NAME=GROUP-C
SCADA GROUP ADD PARENT=/ NAME=GROUP-D
SCADA GROUP ADD PARENT=/ NAME=GROUP-E

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/ NAME=POINT-01-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=0 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/ NAME=POINT-02-RO PLCTYPE=BINARY DEVICE=1 ADDRESS=0 BANK=INPUT_STATUS

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/ NAME=POINT-03-RW PLCTYPE=BINARY DEVICE=1 ADDRESS=0 BANK=COIL_STATUS

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-A NAME=POINT-04-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=1 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-A NAME=POINT-05-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=2 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-A NAME=POINT-06-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=3 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-A NAME=POINT-07-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=4 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-A/SUB NAME=POINT-08-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=5 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-A/SUB NAME=POINT-09-RW PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=0 BANK=HOLDING_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-A NAME=POINT-10-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=6 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-B NAME=POINT-11-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=7 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-B NAME=POINT-12-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=8 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-B NAME=POINT-13-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=9 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-B NAME=POINT-14-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=10 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-B NAME=POINT-15-RW PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=0 BANK=HOLDING_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-B NAME=POINT-16-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=11 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-C NAME=POINT-17-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=12 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-C NAME=POINT-18-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=13 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-C NAME=POINT-19-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=14 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-C NAME=POINT-20-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=16 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-D NAME=POINT-21-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=17 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-D NAME=POINT-22-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=18 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-D NAME=POINT-23-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=19 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-E NAME=POINT-24-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=20 BANK=INPUT_REGISTER

SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-E NAME=POINT-25-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=21 BANK=INPUT_REGISTER

Nodos

Para crear un nodo utilizamos el siguiente comando.
admin> help scada node add

SCADA NODE ADD NODE=name [SLEEP=msecs] [ENABLED=isEnabled]

Inserta un nuevo nodo.

Los parametros para este comando son:

[Req] [Parametro]    [Tipo]     [Description]
  *   NODE           String     Nodo modbus que utilizara el punto para
                                gestionar su valor
      SLEEP          Integer    Milisegundos de descando antes de planificar
                                las lecturas de los puntos (Default:100)
      ENABLED        Boolean    Indica si el nodo estara activo
                                (Default:true)

Podremos crear un nodo, asignándole un nombre, un número de milisegundos que servirá para forzar una pausa entre las lecturas al nodo para no saturarlo y un indicador mediante el cual podremos parar el nodo.

Si el nombre del nodo corresponde con el nombre de una pasarela, ésta será utilizada por el nodo para obtener los datos de los puntos que pertenezcan a este nodo.

En caso de no existir ninguna pasarela con el mismo nombre el sistema utilizará la pasarela default, la cual como se indicó en Pasarelas, no proporcionará datos validos.

Ahora podemos crear nuestro nodo.
SCADA NODE ADD NODE=simu-sample

y vemos el resultado.
admin> scada node list

Id     Node                 Sleep Enabled Alarm Gateway              State
------ -------------------- ----- ------- ----- -------------------- -------
     1 simu-sample            100 true    false simu-sample          OPENED

admin>


Además de los comandos para añadir un nodo y ver la lista de nodos, tenemos disponibles los siguientes comandos para gestionar los nodos.
admin> help scada node points

SCADA NODE POINTS [NODE=name] [FORMAT=P|S|A|*]

Muestra los puntos agrupados por el nodo al que pertencen.

[Req] [Parametro]    [Tipo]     [Description]
      NODE           String     Nombre de la pasarela de la cual se mostrara
                                la informacion detallada de todos sus
                                puntos.
      FORMAT         String     Formato de la salida:
                                  P: Processing
                                  S: Scanning
                                  A: Addressing
                                  *: All

admin> help scada node remove

SCADA NODE REMOVE NODE=name

Borra un nodo.

Los parametros para este comando son:

[Req] [Parametro]    [Tipo]     [Description]
  *   NODE           String     Nombre de la pasarela.

admin> help scada node update

SCADA NODE UPDATE CURRENTNODE=currentnODE [NODE=name] [SLEEP=msecs]
[ENABLED=isEnabled]

Inserta un nuevo nodo.

Los parametros para este comando son:

[Req] [Parametro]    [Tipo]     [Description]
  *   CURRENTNODE    Node       Node que se quiere modificar
      NODE           String     Node que utilizara el punto para gestionar
                                su valor
      SLEEP          Integer    Milisegundos de descando antes de planificar
                                las lecturas de los puntos
      ENABLED        Boolean    Indica si el nodo estara activo
                                (Default:true)

admin>

Grupos

Para crear un grupo se utiliza el siguiente comando.
admin> help scada group add

SCADA GROUP ADD PARENT=path NAME=groupName

Inserta un nuevo grupo.

Los parametros para este comando son:

[Req] [Parametro]    [Tipo]     [Description]
  *   PARENT         String     Ruta del grupo padre (Ejemplo: "", "/",
                                "gri/gr2", "/gr1/gr2", "/gr1/gr2/"
  *   NAME           String     Nombre de grupo.

admin>

La función de los grupos es la de poder organizar los puntos de datos estructurándolos en una jerarquía con la cual podamos representar un modelo que nos convenga.

Utilizando una similitud, los grupos serían como los directorios de un disco y los puntos como los archivos que pueden estar ubicados en cualquier directorio.

Ahora creamos nuestros grupos.
admin> SCADA GROUP ADD PARENT=/ NAME=GROUP-A
admin> SCADA GROUP ADD PARENT=/GROUP-A NAME=SUB
admin> SCADA GROUP ADD PARENT=/ NAME=GROUP-B
admin> SCADA GROUP ADD PARENT=/ NAME=GROUP-C
admin> SCADA GROUP ADD PARENT=/ NAME=GROUP-D
admin> SCADA GROUP ADD PARENT=/ NAME=GROUP-E
admin>

y vemos el resultado.
admin> scada group list

/
/GROUP-A
/GROUP-A/SUB
/GROUP-B
/GROUP-C
/GROUP-D
/GROUP-E

admin>

Además de los comandos para añadir un grupo y para listarlos, tenemos disponibles los siguientes comandos para gestionar los grupos.
admin> help scada group change parent

SCADA GROUP CHANGE PARENT GROUP=groupPath PARENT=parentGroupPath

Situa el grupo jerarquicamente bajo otro grupo.

Los parametros para este comando son:

[Req] [Parametro]    [Tipo]     [Description]
  *   GROUP          String     Nombre del grupo a mover.
  *   PARENT         String     Nombre del grupo destino.

admin> help scada group points

SCADA GROUP POINTS [GROUP=group] [FORMAT=P|S|A|*]

Muestra los puntos gestionados por todos los grupos o por uno en concreto si
se especifica.

Los parametros para este comando son:

[Req] [Parametro]    [Tipo]     [Description]
      GROUP          String     Grupo del cual se mostrara la informacion
                                detallada de todos sus puntos.
      FORMAT         String     Formato de la salida:
                                  P: Processing
                                  S: Scanning
                                  A: Addressing
                                  *: All

admin> help scada group remove

SCADA GROUP REMOVE GROUP=groupName

Borra un grupo.

Los parametros para este comando son:

[Req] [Parametro]    [Tipo]     [Description]
  *   GROUP          String     Nombre del grupo

admin> help scada group update

SCADA GROUP UPDATE CURRENTGROUP=pathGroup [NAME=groupName]

Modifica un grupo.

Los parametros para este comando son:

[Req] [Parametro]    [Tipo]     [Description]
  *   CURRENTGROUP   String     Ruta del grupo que se modifica
      NAME           String     Nombre que se le asignada al grupo.

admin>

Puntos

Para crear un punto utilizaremos este comando.
admin> help scada point add

SCADA POINT ADD NODE=node GROUP=group NAME=name PLCTYPE=type
[POINTTYPE=type] [SCALE=scale] [INITIALVALUE=initialVal]
[BITNUMBER=bitNumber] [LOGGINGMODE=lmode] [READSYNC=rsync]
[PERIODUNIT=perunit] READPERIOD=time [LOGATPERIOD=times] DEVICE=device
ADDRESS=address BANK=bank [ENABLED=isEnabled]

Inserta un nuevo punto.

Los parametros para este comando son:

[Req] [Parametro]    [Tipo]     [Description]
  *   NODE           String     Nodo que utilizara el punto para gestionar
                                su valor
  *   GROUP          String     Nombre del grupo donde se ubicara el punto
  *   NAME           String     Nombre del punto.
  *   PLCTYPE        String     Formato del dato en sus registros 'BINARY',
                                'TWO_BYTE_INT_UNSIGNED',
                                'TWO_BYTE_INT_SIGNED',
                                'FOUR_BYTE_INT_UNSIGNED',
                                'FOUR_BYTE_INT_SIGNED',
                                'FOUR_BYTE_INT_UNSIGNED_SWAPPED',
                                'FOUR_BYTE_INT_SIGNED_SWAPPED',
                                'FOUR_BYTE_FLOAT',
                                'FOUR_BYTE_FLOAT_SWAPPED',
                                'EIGHT_BYTE_INT_UNSIGNED',
                                'EIGHT_BYTE_INT_SIGNED',
                                'EIGHT_BYTE_INT_UNSIGNED_SWAPPED',
                                'EIGHT_BYTE_INT_SIGNED_SWAPPED',
                                'EIGHT_BYTE_FLOAT',
                                'EIGHT_BYTE_FLOAT_SWAPPED'
      POINTTYPE      String     Tipo de dato del punto 'BOOLEAN', 'BYTE',
                                'SHORT', 'INT', 'LONG', 'FLOAT', 'DOUBLE'
      SCALE          Double     Constante por el que sera multiplicado el
                                valor (default 1.0)
      INITIALVALUE   Double     Constante que se le sumara al valor
                                (default: 0.0, Se aplicara despues de
                                aplicar la escala)
      BITNUMBER      Int        En caso de un almacenamiento en registro y
                                un tipo boolean indicara que bit se
                                considerara (Default:0).
      LOGGINGMODE    String     Estrategia para la adquisicon de datos
                                'DO_NOT_LOG', 'WHEN_VALUE_CHANGE',
                                'ALL_DATA' (default:DO_NOT_LOG)
      READSYNC       String     Estrategia para la sincronizacion de la
                                lectura 'DO_NOT_SYNC', 'DO_SYNC'
                                (default:DO_SYNC, sincroniza con el
                                principio de cada dia)
      PERIODUNIT     String     Unidad del periodo de lectura del punto
                                'MILLISECONDS', 'SECONDS', 'MINUTES',
                                'HOURS', 'DAYS' (default:MINUTES)
      READPERIOD     Long       Periodo de lectura (default:15)
      LOGATPERIOD    Int        Cada cuantas lecturas toma una muestra el
                                sistema de logging (1)
  *   DEVICE         Int        Dispositivo modbus
  *   ADDRESS        Int        Direccion modbus
  *   BANK           String     Banco de memoria Modbus 'COIL_STATUS',
                                'INPUT_STATUS', 'HOLDING_REGISTER',
                                'INPUT_REGISTER'
      ENABLED        Boolean    Indica si el punto estara activo
                                (Default:true)

admin>

A un punto, se le proporciona toda la información de cómo obtener, transformar y almacenar un valor que nos interese desde nuestra infraestructura (mas información en Infraestructura y en Preparación de los datos).

Cada punto pertenece a un nodo, siendo este nodo el encargado de tener en cuenta toda la configuración de un punto y obtener su valor a través de la pasarela asociada al nodo.

Cada punto está incluido en un grupo y de esta forma el nombre de un punto está compuesto por su propio nombre precedido por todos los grupos que hay entre él y el grupo raíz (las partes del nombre están separadas por el caracter / ).

Ahora creamos nuestros puntos.
admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/ NAME=POINT-01-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=0 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/ NAME=POINT-02-RO PLCTYPE=BINARY DEVICE=1 ADDRESS=0 BANK=INPUT_STATUS

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/ NAME=POINT-03-RW PLCTYPE=BINARY DEVICE=1 ADDRESS=0 BANK=COIL_STATUS

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-A NAME=POINT-04-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=1 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-A NAME=POINT-05-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=2 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-A NAME=POINT-06-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=3 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-A NAME=POINT-07-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=4 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-A/SUB NAME=POINT-08-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=5 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-A/SUB NAME=POINT-09-RW PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=0 BANK=HOLDING_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-A NAME=POINT-10-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=6 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-B NAME=POINT-11-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=7 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-B NAME=POINT-12-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=8 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-B NAME=POINT-13-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=9 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-B NAME=POINT-14-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=10 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-B NAME=POINT-15-RW PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=0 BANK=HOLDING_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-B NAME=POINT-16-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=11 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-C NAME=POINT-17-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=12 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-C NAME=POINT-18-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=13 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-C NAME=POINT-19-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=14 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-C NAME=POINT-20-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=16 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-D NAME=POINT-21-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=17 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-D NAME=POINT-22-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=18 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-D NAME=POINT-23-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=19 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-E NAME=POINT-24-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=20 BANK=INPUT_REGISTER

admin> SCADA POINT ADD NODE=simu-sample READPERIOD=1 GROUP=/GROUP-E NAME=POINT-25-RO PLCTYPE=TWO_BYTE_INT_UNSIGNED DEVICE=1 ADDRESS=21 BANK=INPUT_REGISTER
admin>

y veamos el resultado.
admin> scada point list

Id     Alarm Point path                           Qlt  P.Type  Antiquity  Value
------ ----- ------------------------------------ ---- ------- ---------- --------------------
     1 false /POINT-01-RO                         GOOD INT           1638                    0
     2 false /POINT-02-RO                         GOOD BOOLEAN       1638                false
     3 false /POINT-03-RW                         GOOD BOOLEAN       1638                false
     4 false /GROUP-A/POINT-04-RO                 GOOD INT           1638                 2904
     5 false /GROUP-A/POINT-05-RO                 GOOD INT           1638                 5808
     6 false /GROUP-A/POINT-06-RO                 GOOD INT           1638                 8712
     7 false /GROUP-A/POINT-07-RO                 GOOD INT           1638                11616
    10 false /GROUP-A/POINT-10-RO                 GOOD INT           1638                17424
     8 false /GROUP-A/SUB/POINT-08-RO             GOOD INT           1638                14520
     9 false /GROUP-A/SUB/POINT-09-RW             GOOD INT           1638                    0
    11 false /GROUP-B/POINT-11-RO                 GOOD INT           1638                20328
    12 false /GROUP-B/POINT-12-RO                 GOOD INT           1638                23232
    13 false /GROUP-B/POINT-13-RO                 GOOD INT           1638                26136
    14 false /GROUP-B/POINT-14-RO                 GOOD INT           1638                29040
    15 false /GROUP-B/POINT-15-RW                 GOOD INT           1638                    0
    16 false /GROUP-B/POINT-16-RO                 GOOD INT           1638                31944
    17 false /GROUP-C/POINT-17-RO                 GOOD INT           1638                34848
    18 false /GROUP-C/POINT-18-RO                 GOOD INT           1638                37752
    19 false /GROUP-C/POINT-19-RO                 GOOD INT           1638                40656
    20 false /GROUP-C/POINT-20-RO                 GOOD INT           1638                46464
    21 false /GROUP-D/POINT-21-RO                 GOOD INT           1638                49368
    22 false /GROUP-D/POINT-22-RO                 GOOD INT           1638                52272
    23 false /GROUP-D/POINT-23-RO                 GOOD INT           1638                55176
    24 false /GROUP-E/POINT-24-RO                 GOOD INT           1638                58080
    25 false /GROUP-E/POINT-25-RO                 GOOD INT           1638                60984

admin>

De nuevo tenemos múltiples comandos disponibles para gestionar los puntos.

admin> help scada point change owner

SCADA POINT CHANGE OWNER POINT=name OWNER=gatewayName

Cambia el nodo propietario del punto.

Los parametros para este comando son:

[Req] [Parametro]    [Tipo]     [Description]
  *   POINT          String     Nombre del punto.
  *   OWNER          String     Nombre del gateway.

admin> help scada point change parent

SCADA POINT CHANGE PARENT POINT=name PARENT=groupPath

Situa el punto en otro grupo.

Los parametros para este comando son:

[Req] [Parametro]    [Tipo]     [Description]
  *   POINT          String     Nombre del punto.
  *   PARENT         String     Nombre del grupo destino.

admin> help scada point remove

SCADA POINT REMOVE POINT=pointName

Borra un punto.

Los parametros para este comando son:

[Req] [Parametro]    [Tipo]     [Description]
  *   POINT          String     Nombre del punto.

admin>
admin> help scada point show

SCADA POINT SHOW POINT=pointName

Muestra las caracteristicas de un punto.

Los parametros para este comando son:

[Req] [Parametro]    [Tipo]     [Description]
  *   POINT          String     Nombre del punto.

admin> help scada point update

SCADA POINT UPDATE CURRENTPOINT=name [NAME=name] [PLCTYPE=type]
[POINTTYPE=pointtype] [INITIALVALUE=initialVal] [BITNUMBER=bitNumber]
[LOGGINGMODE=lmode] [READSYNC=rsync] [PERIODUNIT=perunit] [READPERIOD=time]
[LOGATPERIOD=times] [DEVICE=device] [ADDRESS=address] [BANK=bank]
[ENABLED=isEnabled]

Inserta un nuevo punto.

Los parametros para este comando son:

[Req] [Parametro]    [Tipo]     [Description]
  *   CURRENTPOINT   String     Nombre del punto que se quiere modificar.
      NAME           String     Nuevo nombre del punto.
      PLCTYPE        String     Nuevo formato del dato en sus registros
                                'BINARY', 'TWO_BYTE_INT_UNSIGNED',
                                'TWO_BYTE_INT_SIGNED',
                                'FOUR_BYTE_INT_UNSIGNED',
                                'FOUR_BYTE_INT_SIGNED',
                                'FOUR_BYTE_INT_UNSIGNED_SWAPPED',
                                'FOUR_BYTE_INT_SIGNED_SWAPPED',
                                'FOUR_BYTE_FLOAT',
                                'FOUR_BYTE_FLOAT_SWAPPED',
                                'EIGHT_BYTE_INT_UNSIGNED',
                                'EIGHT_BYTE_INT_SIGNED',
                                'EIGHT_BYTE_INT_UNSIGNED_SWAPPED',
                                'EIGHT_BYTE_INT_SIGNED_SWAPPED',
                                'EIGHT_BYTE_FLOAT',
                                'EIGHT_BYTE_FLOAT_SWAPPED'
      POINTTYPE      String     Tipo de dato del punto ('auto' para obtener
                                el tipo correspondiente a su PLCTYPE)
                                'BOOLEAN', 'BYTE', 'SHORT', 'INT', 'LONG',
                                'FLOAT', 'DOUBLE'
      SCALE          Double     Constante por el que sera multiplicado el
                                valor
      INITIALVALUE   Double     Constante que se le sumara al valor (despues
                                de aplicar la escala)
      BITNUMBER      Int        En caso de un almacenamiento en registro y
                                un tipo boolean indicara que bit se
                                considerara.
      LOGGINGMODE    String     Nueva estrategia para la adquisicon de datos
                                'DO_NOT_LOG', 'WHEN_VALUE_CHANGE',
                                'ALL_DATA'
      READSYNC       String     Nueva estrategia para la sincronizacion en
                                la lectura 'DO_NOT_SYNC', 'DO_SYNC'
      PERIODUNIT     String     Unidad del periodo de lectura del punto
                                'MILLISECONDS', 'SECONDS', 'MINUTES',
                                'HOURS', 'DAYS' (default:SECONDS, sincroniza
                                con el principio de cada dia)
      READPERIOD     Long       Periodo de lectura
      LOGATPERIOD    Int        Cada cuantas lecturas toma una muestra el
                                sistema de logging
      DEVICE         Int        Nuevo dispositivo modbus
      ADDRESS        Int        Nueva direccion modbus
      BANK           String     Nuevo banco de memoria Modbus 'COIL_STATUS',
                                'INPUT_STATUS', 'HOLDING_REGISTER',
                                'INPUT_REGISTER'
      ENABLED        Boolean    Indica si el punto estara activo

admin>