Sei sulla pagina 1di 82

NANOSCADA

2010

MANUAL DE USUARIO
REVISIÓN 21

Rosario, Santa Fe
Argentina
Mayo de 2011
NanoScada 2010
Tiempo Real Servicios de Ingeniería

1 DESCRIPCION DE NANOSCADA 2010 5

1.1 Estructura de Nanoscada 2010 5


1.2 Listado de tareas adicionales 6
1.3 Listado de tags propios de Nanoscada 2010 6

2 INSTALANDO NANOSCADA 2010 7

2.1 Instalación de NanoScada 2010 7


2.2 Registración de NanoScada 2010 8
2.3 Creación de una aplicación NanoScada 2010 8

3 CONFIGURANDO UNA APLICACION NANOSCADA 2010 9

3.1 Elementos básicos de NanoScada 2010 9


3.2 Iniciar NanoScada 2010 11
3.3 Finalizar NanoScada 2010 11
3.4 Configuración del archivo NANOSCADA.INI 12
3.5 Creación de la BDCFG utilizando el archivo NANOSCADA.XLS 14
3.6 Tabla “Inicio” de NANOSCADA.XLS 15
3.7 Tabla “ns_tags” de NANOSCADA.XLS 16
3.8 Tabla “ns_io” de NANOSCADA.XLS 17
3.9 Tabla “ns_alarms” de NANOSCADA.XLS 18
3.10 Tabla “ns_net” de NANOSCADA.XLS 19
3.11 Tabla “ns_tasks” de NANOSCADA.XLS 22
3.12 Configuración de NSMODBUS 23
3.13 Configuración de NSMBTCP 27
3.14 Configuración de NSDNP 31
3.15 Configuración de E90GW 34
3.16 Configuración de NSOPCCNT 35
3.17 Configuración de NSOPCSRV 37
3.18 Configuración de NSHSB 38
3.19 Configuración de NSALARM 41
3.20 Configuración de NSCALC 43
3.21 Configuración de NSLOG 47
3.22 Configuración de NSODBC 50
3.23 Configuración de NSCSV 53
3.24 Configuración de NSMAIL 55
3.25 Configuración de NSPERS 58
3.26 Configuración de NSCONTROLS 59
3.27 Configuración de NSAPISRV 69

4 NANOSCADA 2010 REMOTE CLIENT 70

4.1 Instalación de NanoScada 2010 Remote Client 70


4.2 Creación de una aplicación NanoScada 2010 Remote Client 71
4.3 Configurando una aplicación Nanoscada 2010 Remote Client 72
4.4 Iniciar NanoScada 2010 Remote Client 73
4.5 Finalizar NanoScada 2010 Remote Client 74

5 BACKUP Y RESTORE DE APLICACIONES NANOSCADA 75

5.1 NSBackup 75
5.2 NSRestore 77

Página 2 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

6 CONSIDERACIONES PARA APLICACIONES HOT STAND-BY 81

Página 3 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

TIEMPO REAL SERVICIOS DE INGENIERIA


CHACABUCO 2302
S2000FIN Rosario (Santa Fe), Argentina
www.trsi.com.ar

® TIEMPO REAL SERVICIOS DE INGENIERIA, 2010

HECHO EL DEPOSITO QUE MARCA LA LEY.


RESERVADOS TODOS LOS DERECHOS DEL AUTOR.
PROHIBIDA LA REPRODUCCION TOTAL O PARCIAL DE LOS SOPORTES QUE CONTIENE EL
PROGRAMA Y DE ESTA DOCUMENTACION, POR CUALQUIER MEDIO O PROCEDIMIENTO Y CON
CUALQUIER DESTINO.

ESTE MANUAL CONSTITUYE INFORMACION CONFIDENCIAL Y PROPIETARIA DE TIEMPO REAL


SERVICIOS DE INGENIERIA Y DEBE SER MANTENIDO EN ABSOLUTA RESERVA.

Los nombres de los productos mencionados aquí se utilizan con propósitos indentificativos y pueden ser marcas comerciales
y/o marcas registradas de sus respectivas compañías.

Página 4 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

1 DESCRIPCION DE NANOSCADA 2010

1.1 Estructura de Nanoscada 2010

NanoScada 2010 es un sistema de adquisición, supervisión y administración de datos en


tiempo real e históricos (SCADA). Está diseñado para funcionar sobre plataforma Windows
32 bits (Windows7, Windows XP, Windows Server) y consta de elementos de Configuración
y elementos de Run-Time.

A continuación se muestra un diagrama esquemático de los elementos de Configuración y


Run-Time que forman NanoScada 2010. Cada uno de los elementos serán descriptos en
detalle en las secciones siguientes.

NANOSCADA 2010

CONFIGURACION RUN-TIME

NSGRAPH
%NSAPP%\
(IHM)
NANOSCADA.INI NSCALC
NSHSB
NSRUN (ETC)
(NSMAIN)

MSSQL
(MSDE)

BDCFG

RTDB
NSALARM
ALARMS
+
LOG
NSLOG
+
ETC
NSPERS

%NSAPP%\
NANOSCADA.XLS

MBUS
MBTCP NSOPCCNT NSOPCSRV NSAPISRV NSNETSRV
DNP
(ETC)

PLC, RTUs, Consolas


IED, equipos Servidores Clientes IHM NanoScadas
de campo, OPC OPC Remotas Remotos
etc. (Remote
Client)

Página 5 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

La tarea NSMAIN es el módulo principal de NanoScada 2010 y es el encargado de leer la


BDCFG almacenada en una base de datos MSSQL (MSDE). Luego de leer la configuración,
crea la RTDB, arranca las tareas configuradas con inicio automático y queda residente como
aplicación de soporte de la RTDB y control de las aplicaciones.

NSMAIN es el único proceso indispensable para el funcionamiento del NanoScada y posee un


icono en el agente de tareas desde el cual se puede cerrar NanoScada 2010.

1.2 Listado de tareas adicionales

Nombre Descripción
NSALARM Manejador de alarmas del sistema
NSOPCSRV Aplicación servidor OPC de NanoScada
NSOPCCNT Aplicación cliente OPC de NanoScada
NSAPISRV Aplicación de servidor de API remota de NanoScada
NSDEBUG Aplicación de consola para administración de la RTDB
NSWATCH Aplicación gráfica para monitoreo de la RTDB
NSNETCNT Cliente de red para interconexión de NanoScadas
NSNETSRV Servidor de red para interconexión de NanoScadas
NSMODBUS Driver Modbus Master
NSMBTCP Driver Modbus TCP Master
NSDNP Driver DNP V3.0 Master
NSODBC Driver de acceso a Bases de Datos externas por ODBC.
NSHSB Administrador de redundancia
NSCALC Aplicación de soporte de bloques y scripts de cálculo
NSLOG Aplicación de registro en base de datos
NSPERS Aplicación para almacenamiento de datos persistentes
NSMAIL Aplicación para el envío de emails ante eventos.
NSBACKUP Aplicación para realizar backup de aplicaciones
NSRESTORE Aplicación para realizar restauración de aplicaciones

1.3 Listado de tags propios de Nanoscada 2010

Nombre del TAG Tipo Descripción


NS_SRV_ID T Srv Id de la ejecución de NanoScada.
Se toma de la configuración.
NS_RUN_ID I Run Id de la ejecución de NanoScada.
NS_ALARM_ACK D Tag de indicación de reconocimiento de
alarma
NS_ALARMS_CHANGE D Tag de indicación de cambio en alarma
NS_ASCII_DATE T Fecha en formato ASCII
NS_ASCII_TIME T Hora en formato ASCII
NS_SECTIME I Segundos pasados 1970 (GMT)
NS_DAY I Dia (1 - 31)
NS_MONTH I Mes (1 - 12)
NS_YEAR I Año (1900 - 2036)
NS_HOUR I Hora (0 - 23)
NS_MINUTE I Minutos (0 - 60)
NS_SECOND I Segundos (0 - 60)

Página 6 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

2 INSTALANDO NANOSCADA 2010

2.1 Instalación de NanoScada 2010

Requisitos para la instalación:

• Equipo PC con sistema operativo Windows XP profesional o similar (2000, 2003,


etc.).
• Microsoft SQL Server 2000 o 2005.
• La configuración regional del equipo deberá ser la siguiente:
Español (Argentina) Personalizado
Simbolo decimal: . (punto)
Separador de miles: (espacio en blanco)
Separador de listas: , (coma)
Formato de hora: HH:mm:ss (24 horas)
Formato de fecha: dd/MM/aaaa
Números: -123 456 789.00
Moneda: $-123 456 789.00
Hora: HH:mm:ss
Fecha: dd/MM/aaaa
Idioma: Español/Argentina

La instalación de NanoScada 2010 se realiza mediante un asistente de instalación, el cual


permitirá seleccionar la carpeta de destino para los archivos de NanoScada 2010, luego de los
primeros pasos de la instalación aparecerá el siguiente mensaje:
*************************************
** **
** NANOSCADA 2010 INSTALLATION **
** **
*************************************

Do you want to create NanoScada Database? (Y/N)? Y

Presionar ENTER para crear la base de datos de NanoScada 2010. Si usted no desea crear la
base de datos, presione N seguido de la tecla ENTER.

En el caso de aceptar la creación de la base de datos se mostrarán los siguientes mensajes,


mediante los cuales se requiere indicar el tipo de base de datos MSSQL a utilizar y los
parámetros de conexión (entre corchetes se indican los valores por defecto):

NanoScada 2010
Script de instalacion de base de datos de configuracion
.
Ingrese la version de MSSQL (2000 o 2005) [2005]:
Ingrese el nombre de la instancia de MSSQL [.]:
Ingrese el nombre del usuario administrador [sa]:
Ingrese palabra clave del usuario [trsi]:

Una vez finalizado el proceso de instalación se habrá creado el grupo de programas de


NanoScada 2010.

Página 7 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

2.2 Registración de NanoScada 2010

NanoScada 2010 requiere de una licencia de software la cual deberá ser solicitada a:

TIEMPO REAL
Servicios de Ingeniería
Chacabuco 2302 - (S2000FIN) Rosario
Tel/FAX: 0341-4824962
http://www.trsi.com.ar

Si NanoScada 2010 no está debidamente registrado funcionará en modo DEMOSTRACION y


finalizará automáticamente a los 30 minutos.

2.3 Creación de una aplicación NanoScada 2010

Dentro del grupo de programas NanoScad 2010 se habrá creado la carpeta Sample
Application en la cual se encuentran los accesos directos para configurar e iniciar una
aplicación NanoScada de ejemplo.

El icono New NanoScada Application permite crear una nueva aplicación


Al presionarlo aparecerá una ventana mostrando el siguiente mensaje:

NanoScada 2010 - New application script

Atención: Utilice comillas si el destino posee espacios

Ingrese el nombre de la carpeta de destino:

Ingresar el nombre de la carpeta de destino y presionar ENTER.


Una vez creada la aplicación aparecerá un nuevo icono dentro de la carpeta de accesos
directos de NanoScada 2010 correspondiente a la nueva aplicación creada.

Página 8 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

Observación: Al momento de la instalación de NanoScada 2010 se creará una aplicación de


ejemplo llamada Sample Application.

Esta carpeta de aplicación posee todos los elementos necesarios para configurar e iniciar una
aplicación NanoScada 2010.

3 CONFIGURANDO UNA APLICACION NANOSCADA 2010

3.1 Elementos básicos de NanoScada 2010

NanoScada 2010 requiere para su funcionamiento de tres elementos básicos:

1) Base de datos de configuración (NANOSCADA.XLS + DBCFG)


2) Archivo de configuración (NANOSCADA.INI)
3) Aplicación IHM (NSGRAPH)

La Base de datos de configuración DBCFG es una base de datos Microsoft SQL (usualmente
MSDE 2000) la cual es administrada desde un archivo Excel (usualmente llamado
NANOSCADA.XLS). Desde la carpeta de aplicación, este archivo es accedido mediante el
icono NanoScada Database Configuration.

El archivo de configuración NANOSCADA.INI es un archivo de parámetros dividido en


secciones. Desde la carpeta de aplicación, este archivo es accedido mediante el icono
NanoScada Configuration File.

La aplicación IHM usualmente es desarrollada en MS Visual Basic utilizando los controles


Active X de NanoScada. Desde la carpeta de aplicación, el editor de MS Visual Basic puede
ser accedido mediante el icono NanoScada Graph Configuration.

Al momento de la instalación se creará la base de datos en MSSQL (MSDE), se crearán los


DSN de acceso a la BDCFG.

Al momento de crear una aplicación se crearan los archivos NANOSCADA.XLS y


NANOSCADA.INI (ubicados en el directorio de destino de la aplicación). También se instala
una aplicación IHM con los lineamientos básicos sugeridos para realizar aplicaciones IHM
utilizando los controles Active X de NanoScada.

Para crear una aplicación NanoScada se deberá seguir el siguiente procedimiento:

Página 9 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

1) Crear una nueva aplicación utilizando el icono New NanoScada Application

2) Opcionalmente podrán modificarse los parámetros del archivo NSNOSCADA.INI


ubicado en el directorio de la aplicación o bien a través del icono NanoScada
Configuration File. Ver referencias en las siguientes secciones.

3) Editar el archivo NANOSCADA.XLS ubicado en el directorio de la aplicación de


acuerdo al detalle de las secciones siguientes. Este archivo puede ser accedido
mediante el icono NanoScada Database Configuration. Escribir la BDCFG
presionando el botón “Escribir base de datos” ubicado en la tabla “Inicio”.

4) Crear una aplicación IHM utilizando MS Visual Basic, utilizando como base los la
aplicación de ejemplo NSGRAPH. El editor de MS Visual Basic puede ser
accedido mediante el icono NanoScada Graph Configuration.

La aplicación IHM (NSGRAPH) posee parámetros que deben ser configurados en el archivo
NANOSCADA.INI en sección llamada [NSGRAPH]:

Parámetro Descripción
use_networked_api Esta flag indica a la aplicación IHM que deberá utilizar la API de
acceso remoto.
Valores posibles:
0: Utilizar API local (Válido para aplicaciones IHM que se ejecutan
en el mismo equipo donde corre NanoScada 2010)
1: Utilizar API de acceso remoto (Válido para aplicaciones IHM
que se ejecutan en un equipo diferente al equipo donde corre
NanoScada 2010, utilizando NanoScada Remote Client).
access_default Nivel de acceso por defecto que tendrá la aplicación.
Valores posibles: Valores numéricos enteros.
IMPORTANTE:
El nivel de acceso con valor bitmapped 0x1 (uno) es necesario para
que funcione el reconocimiento de alarmas.

Página 10 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.2 Iniciar NanoScada 2010

Toda aplicación NanoScada deberá estar almacenada dentro de una carpeta y poseerá al
menos los siguientes archivos:

NANOSCADA.INI: Archivo de configuración general


NANOSCADA.XLS: Archivo de configuración de BDCFG
NSRUN.BAT: Script de arranque de Nanoscada
NSSET.BAT: Script para inicialización de entorno

Para iniciar NanoScada 2010 con una aplicación en particular, se deberá realizar el siguiente
procedimiento:

1. Asegurarse que la BDCFG está actualizada, para ello abrir el archivo


NANOSCADA.XLS y escribir la BDCFG presionando el botón Escribir base de
datos ubicado en la tabla “Inicio”.

2. Ejecutar el archivo “NSRUN.BAT” ubicado en la carpeta de la aplicación o bien


ejecutar el icono Start NanoScada 2010 ubicado en la carpeta de la aplicación.

3.3 Finalizar NanoScada 2010

Para finalizar NanoScada 2010 se podrán realizar cualquiera de las operaciones siguientes:

1. Buscar en el agente de tareas (usualmente en la parte inferior derecha de la pantalla) el


icono de NanoScada 2010, presionar el botón derecho y seleccionar “Shutdown
NanoScada 2010”, respondiendo afirmativamente a la advertencia.

2. Desde el IHM o NSDEBUG escribir el TAG llamado “NS_START_NSMAIN” con el


valor 0 (cero).

3. Desde NSDEBUG ejecutar el comando siguiente:

t stop NSMAIN

Página 11 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.4 Configuración del archivo NANOSCADA.INI

El archivo NANOSCADA.INI posee inicialmente dos secciones las cuales son detalladas a
continuación.

Sección [DATABASE]:

Esta sección permite configurar los parámetros de acceso a la base de datos de NanoScada
2010.

Parámetro Descripción
DSN Indica el nombre del DSN ODBC para acceso a la BDCFG
Valor por defecto: nanoscada (Es el nombre creado por el
instalador)
USER Indica el nombre de usuario para acceso a la BDCFG
Valor por defecto: nanoscada (Es el nombre creado por el
instalador)
PWD Indica la palabra clave del usuario para acceso a la BDCFG
Valor por defecto: nanoscada (Es el nombre creado por el
instalador)

Sección [SOUNDS]:

Esta sección permite configurar el nombre de archivo WAV a reproducir para la indicación de
alarma sonora. Los parámetros de esta sección son válidos para Nano Scada 2010 y para Nano
Scada 2010 Remote Client.

Parámetro Descripción
alarm Indica el nombre del archivo WAV a reproducir para la indicación
de alarma sonora.
Valor por defecto: alarm.wav (Es el archivo creado por el
instalador)

Sección [LABEL]:

La sección llamada [LABEL] permite configurar las etiquetas a visualizar como calificadores
de los TAGS. Los parámetros de esta sección son válidos para Nano Scada 2010 y para Nano
Scada 2010 Remote Client.

Parámetro Descripción
measured Valor a utilizar para calidad medida.
Valor por defecto: MEASURED
manual Valor a utilizar para calidad manual.
Valor por defecto: MANUAL
invalid Valor a utilizar para calidad inválida.
Valor por defecto: INVALID

Página 12 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

Sección [NSMAIN]:

Esta sección permite configurar el formato del menú de opciones del agente de NanoScada
2010..

Parámetro Descripción
enable_menu Indica si NanoScada 2010 presentará las opciones de menú
adicionales: Update Configuration, Start NanoScada Debug y Start
NanoScada Watch.
Estas opciones son útiles durante el desarrollo de una aplicación y
es conveniente inhabilitarla cuando se encuentra en producción.
Valores posibles:
0 – No mostrar opciones de menú adicionales.
1 – Mostrar opciones de menú adicionales.
Valor por defecnto:
0
La opción de menú: Shutdown NanoScada 2010 siempre estará
presente.

Página 13 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.5 Creación de la BDCFG utilizando el archivo NANOSCADA.XLS

El archivo NANOSCADA.XLS es un archivo creado con MS Excel 2000 que posee las
siguientes tablas:

Tabla Descripción
Inicio Tabla de presentación, con botones que permiten la lectura y escritura
de la BFCFG y la creación de un SCRIPT con todos los datos del
archivo.
ns_tags Contiene la configuración básica de los TAGs de la Base de Datos de
NanoScada.
ns_io Contiene la configuración de Entrada / Salida (I/O) de los TAGs de la
Base de Datos de NanoScada.
ns_alarms Contiene la configuración de Alarmas de los TAGs de la Base de
Datos de NanoScada.
ns_net Contiene la configuración de Red (Network) para la interconexión de
dos o mas sistemas NanoScada 2010.
ns_tasks Contiene la configuración de las Tareas de NanoScada 2010.

En las secciones siguientes se detallas cada una de las tablas del archivo NANOSCADA.XLS

Página 14 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.6 Tabla “Inicio” de NANOSCADA.XLS

Es la primera tabla del archivo.

En la misma podrán configurarse los siguientes parámetros (acceso a la BDCFG):

Celda Descripción
APLICACIÓN Es el nombre de la aplicación y se utiliza con el solo efecto de
(D7) identificar a la aplicación. No posee uso adicional.
DSN BASE DE Indica el nombre del DSN ODBC para acceso a la BDCFG.
DATOS
(D8)
NOMBRE BASE Indica el nombre de la base de datos donde reside la BDCFG
DE DATOS
(D9)
USUARIO Indica el nombre de usuario para acceso a la BDCFG
(D10)
PASSWORD: Indica la palabra clave del usuario para acceso a la BDCFG.

La tabla posee también los siguientes botones:

Botón Descripción
Leer Base de Datos Mediante este botón se puede leer el contenido actual de la BDCFG el
cual será volcado a las demás tablas del archivo.
CUIDADO: Esta operación borra el contenido actual de las tablas del
archivo.
Escribir Base de Mediante este botón se puede escribir la BDCFG con el contenido
Datos actual de las tablas del archivo.
CUIDADO: Esta operación borra el contenido actual de la BDCFG.
Crear Script SQL Mediante este botón se podrá crear un archivo conteniendo un script
SQL (el cual podrá ser importado a la BDCFG utilizando una
herramienta de SQL compatible con MSSQL) con el contenido actual
de las tablas del archivo. Esto es util cuando no se dispone de MSExcel
en el equipo o la red donde se instalará NanoScada 2010.
El archivo de destino será el indicado en la celda C32.

Página 15 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.7 Tabla “ns_tags” de NANOSCADA.XLS

Esta tabla contiene la configuración básica de los TAGs de la Base de Datos de NanoScada.

Inicialmente esta tabla posee varios elementos con tag_name iniciados con el prefijo “NS_”.
Estos TAGs son del sistema y deben ser mantenidos. Se recomienda leer la descripción de los
mismos para comprender la utilidad de dichos TAGs.

Campo Longitud Máxima Descripción


tag_name 63 Es el nombre mediante el cual el TAG será
identificado en NanoScada.
Utilizar solo caracteres alfanuméricos y ‘_’ (guión
bajo). No utilizar espacios. Utilizar el carácter ‘:’
solo cuando se hace referencia a un TAG de un
NanoScada remoto (ver “ns_net”).
Cada elemento de la tabla debe contener un
“tag_name” diferente.
tag_desc 79 Es la descripción del TAG. Este campo forma parte
de la RTDB y puede ser accedido desde el IHM y
demás módulos de NanoScada.
tag_type 1 Tipo de dato del TAG.
Valores posibles:
M: Medición (flotante - 32 bits)
I: Entero (con signo – 32 bits)
D: Digital (0 o 1)
T: Texto (hasta 256 bytes)
tag_units 7 Unidades del valor contenido en el TAG. Este
campo forma parte de la RTDB y puede ser
accedido desde el IHM y demás módulos de
NanoScada.
tag_label0 15 Etiqueta del TAG cuando éste posee el valor 0
(cero). Este campo forma parte de la RTDB y
puede ser accedido desde el IHM y demás módulos
de NanoScada.
tag_label1 15 Etiqueta del TAG cuando éste posee el valor 1
(uno). Este campo forma parte de la RTDB y puede
ser accedido desde el IHM y demás módulos de
NanoScada.
tag_label2 15 Etiqueta del TAG cuando éste posee el valor 2
(dos). Este campo forma parte de la RTDB y puede
ser accedido desde el IHM y demás módulos de
NanoScada.
tag_label3 15 Etiqueta del TAG cuando éste posee el valor 3
(tres). Este campo forma parte de la RTDB y puede
ser accedido desde el IHM y demás módulos de
NanoScada.
tag_default 79 Valor inicial de TAG.
Si un TAG no posee valor por defecto su calidad
inicial será INVALID. Si un TAG posee valor por
defecto su calidad inicial será MEASURED.

Página 16 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.8 Tabla “ns_io” de NANOSCADA.XLS

Esta tabla contiene la configuración de Entrada / Salida (I/O) de los TAGs de la Base de
Datos de NanoScada.

Los módulos de I/O son tareas de NanoScada que se caracterizan por relacionar valores de la
RTDB con elementos externos (PLC, RTU, aplicaciones específicas, personas, etc.).
Mediante esta tabla se configuran los parámetros que realizan dicha relación.

Por favor remitirse a la sección correspondiente a cada módulo de I/O para obtener detalles
específicos de cada tarea.

Campo Longitud Máxima Descripción


io_tag_name 63 Es el nombre del TAG. Este nombre debe estar
configurado en la tabla “ns_tags” en el campo
“tag_name”.
Un “tag_name” puede ser repetido múltiples veces
dentro de esta tabla, generalmente vinculado a
distintos “io_driver”.
io_driver 63 Es el nombre del módulo de I/O correspondiente.
Indica que este elemento de la tabla será
interpretado por la tarea indicada en este campo.
io_address 79 Campo de dirección de I/O.
El formato de este campo es determinado por la
tarea (io_driver) correspondiente.
io_scan 15 Grupo de scan al que pertenece el elemento.
La interpretación de este campo es determinada por
la tarea (io_driver) correspondiente, pero
generalmente está vinculada a tiempo de scan
(lectura o escritura) más otros parámetros.
io_min_raw Valor entero Estos campos están vinculados con operaciones de
io_max_raw Valor entero escalado, es decir cuando los valores provenientes
io_min_eng Valor flotante desde el exterior no están expresados en la escala
io_max_eng Valor flotante utilizada por NanoScada. Solo se soporta escalado
LINEAL.
La interpretación de estos campos es determinada
por la tarea (io_driver) correspondiente.

Página 17 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.9 Tabla “ns_alarms” de NANOSCADA.XLS

Esta tabla contiene la configuración de Alarmas de los TAGs de la Base de Datos de


NanoScada. La información de esta tabla es interpretada por la tarea NSALARM.

Campo Longitud Máxima Descripción


alarm_id Valor Entero Es un número identificador de la alarma.
Este valor no debe repetirse.
alarm_tag_name 63 Es el nombre del TAG. Este nombre debe estar
configurado en la tabla “ns_tags” en el campo
“tag_name”.
Un “tag_name” puede ser repetido múltiples veces
dentro de esta tabla, con distintas condiciones de
alarma.
alarm_type 1 Indica el tipo de alarma a generar.
Valores posibles:
A: Alarma (Permanece visible mientras este
presente).
E: Evento (Desaparece al ser reconocido)
alarm_require_ack 1 Indica si requiere reconocimiento por parte del
operador.
Valores posibles:
Y: Requiere reconocimiento
N: No requiere reconocimiento
alarm_condition 7 Operación lógica para la determinación de la
alarma. Opera junto con “alarm_limit”
Valores posibles:
= Igual
<> Distinto
>= Mayor o Igual
<= Menor o Igual
> Mayor
< Menor
CH Cambio de valor
alarm_limit Valor flotante Indica el valor contra el cual realizar la operación
lógica.
Por ejemplo si:
TAG_VALUE=5067
alarm_condition=’>’
alarm_limit=5000
la alarma estará activa (presente).
alarm_deadband Valor flotante No implementado hasta el momento
alarm_label 15 Es el mensaje a mostrar en el visualizador de
alarmas, junto con la descripción del TAG.
alarm_area 15 Es un elemento que se utiliza a los efectos de filtrar
alarmas de distintos tipos o agrupar alarmas del
mismo tipo.
alarm_adelay Valor Entero Tiempo en segundos que debe estar presente la
condición de alarma antes de que sea activada la
misma.
alarm_ndelay Valor Entero Tiempo en segundos que debe desaparecer la
condición de alarma antes de que sea normalizada.
Página 18 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.10 Tabla “ns_net” de NANOSCADA.XLS

Esta tabla contiene la configuración de Red (Network) para la interconexión de dos o mas
sistemas NanoScada 2010.

Los nombres de los TAGs pueden contener el carácter ‘:’. De esta forma se indica que se está
haciendo referencia a un TAG perteneciente a un NanoScada remoto. Estos nombres de TAG
poseen el siguiente formato:

<NET_ID>:<TAG_NAME>

donde:
<NET_ID> es un prefijo que identifica al NanoScada remoto.
<TAG_NAME> es el nombre del TAG en el NanoScada remoto

El NanoScada local deberá tener activa la tarea NSNETCNT.

En la tabla “ns_net” se configuran los parámetros de conexión a los sistemas NanoScada


remoto para cada NET_ID.

Esta tabla tendrá tantos elementos como distintos <NET_ID> se hayan utilizado en la tabla
“ns_tags”.

Por consiguiente la información de esta tabla es interpretada por la tarea NSNETCNT.

Campo Descripción
net_host Nombre o dirección IP del Servidor NanoScada remoto
Si este campo comienza con * hará referencia a un TAG de tipo
TEXTO (el deberá estar definido en la tabla “ns_tags”).
En este caso podrá cambiarse el Servidor NanoScada remoto en run
time escribiendo distintos valores en este TAG.
net_port Puerto TCP donde escucha el Servidor NanoScada remoto.
En el servidor se configura en NANOSCADA.INI, mediante el
parámetro [NSNETSRV].tcp_port. El valor usual de este parámetro
es 7004.
net_id Prefijo con el cual se identifican los tags locales que hacen
referencias a TAGs del NanoScada remoto que se está
configurando.
net_mode Valores válidos (cmbinaciones de cualquiera de ellos):
R: Conexión de lectura
W: Conexión de escritura
WF: Conexión de escritura (con escritura forzada)
H: Conexión con características de HSB

Para la conexión que utilice reconocimiento remoto de alarmas, se


deberá usar RWF.

Cuando una conexión tiene características de HSB (letra H),


NanoScada 2010 creará automáticamente para cada tag configurado
en la tabla NS_TAGS con este NET_ID, un tag con idéntico nombre
sin NET_ID.

Página 19 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

net_status_tag Estado de la conexión (lo escribe NSNETCNT)


Valores posibles:

- Disconnected Conexión no establecida


- Connecting Conexión en progreso (etapa de conexión)
- Binding Conexión en progreso (etapa de datos)
- Connected Conexión establecida (luego de actualizar
los datos).

IMPORTANTE:
• El NanoScada remoto deberá tener activa la tarea NSNETSRV.

• El NanoScada remoto reporta los datos en el siguiente orden:


1) Cambios que se producen en variables I, M, F (en orden alfabético)
2) Cambios que se producen en variables tipo T (en orden alfabético)

Parámetros de NSNETSRV
Los parámetros de NSNETSRV se configuran en el archivo NANOSCADA.INI en la sección
NSNETSRV.

Parámetro Descripción
max_conn Cantidad de conexiones soportadas por NSNETSRV.
Valor por defecto: 10
tcp_port Puerto TCP en el cual escucha NSNSETSRV.
scan_period Periodo (en segundos) de SCAN por cambios.
wresponse_timeout Tiempo a esperar por respuseta a comandos.
connect_timeout Tiempo máximo que dura el período de conexión y binding de datos.
iecal_timer Granularidad (en milisegundos) del timer de administración de red.
Valores posibles: 200 – 1000.
Valor por defecto: 1000
Valor recomendado: 200
inactivity_timer Tiempo (en segundos) máximo de inactividad de la conexión.
Valores posibles: 0 (inhabilitado) o la cantidad de segundos.
Valor por defecto: 0

Parámetros de NSNETCNT
Los parámetros de NSNETCNT se configuran en el archivo NANOSCADA.INI en la sección
NSNETCNT.

Parámetro Descripción
wresponse_timeout Tiempo a esperar por respuseta a comandos.
connect_timeout Tiempo máximo que dura el período de conexión y binding de datos.
iecal_timer Granularidad (en milisegundos) del timer de administración de red.
Valores posibles: 200 – 1000.
Valor por defecto: 1000
Valor recomendado: 200

Página 20 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

inactivity_timer Tiempo (en segundos) máximo de inactividad de la conexión.


Valores posibles: 0 (inhabilitado) o la cantidad de segundos.
Valor por defecto: 0

Página 21 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.11 Tabla “ns_tasks” de NANOSCADA.XLS

Esta tabla contiene la configuración de las Tareas de NanoScada 2010.

Mediante esta tabla se indican las tareas configuradas en el sistema NanoScada y cuáles
deberán iniciarse automáticamente al inicio de NanoScada 2010.

Campo Descripción
task_name Nombre de la tarea.
Deberá ser un nombre de tarea válido.
Ver configuración de los distintos módulos para obtener
información sobre los nombres de tarea de cada módulo.
task_run Flags de arranque
Valores Posibles:
- R: Arrancar en el inicio
- S: Iniciar en una consola aparte.
task_pre_sleep Cantidad de segundos a esperar antes de lanzar la tarea en el inicio.
task_directory Directorio donde reside el archivo ejecutable.
Si se especifica ‘.’ indica que el archivo ejecutable reside en la
misma carpeta de instalación de NanoScada.
Si se especifica ‘%NSAPP%’ indica que el archivo ejecutable reside
en la misma carpeta de la aplicación.
task_cmd_line Línea de comando para el arranque del proceso.
Usualmente es el nombre del archivo ejecutable, más parámetros
opcionales que dependen de la tarea.
task_start_tag Tag de arranque y parada de la tarea (1: Arrancar, 0: Parar).
Aquí se debe configurar el nombre de un TAG de tipo DIGITAL (el
cual deberá estar creado en la tabla “ns_tags”) mediante el cual se
podrá arrancar o parar la tarea.
task_status_tag Tag de estado de la tarea.
Aquí se debe configurar el nombre de un TAG de tipo TEXTO (el
cual deberá estar creado en la tabla “ns_tags”) mediante el cual se
podrá obtener información acerca del estado de la tarea.
Valores posibles:
- STOPPED
- STARTING
- RUNNING
- TERMINATING

Página 22 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.12 Configuración de NSMODBUS

Cada instancia de NSMODBUS realizara lecturas / escrituras en forma serializada, razón por
la cual se recomienda tener una instancia de NSMODBUS por puerto serie.

Cada instancia de NSMODBUS se configura de la siguiente manera:

1) El task_name por defecto de NSMODBUS es MBUS y puede ser cambiado ejecutando la


aplicación con el task_name requerido como línea de comando, por ejemplo:
NSMODBUS MBUS1
ejecutará el servidor con task_name = MBUS1

2) Cada instancia deberá tener una carpeta en el NSAPP con el nombre de la tarea. En dicha
carpeta residirán los archivos de configuración del driver MODBUS para dicho task_name.
Por ejemplo, si el NSAPP = C:\NSAPP y el task_name es MBUS, los archivos de
configuración del driver serán:

C:\NSAPP\MBUS\MODCOM.CFG
C:\NSAPP\MBUS\MODAPI.CFG

En dichos archivos se encuentran los parámetros de configuración de los puertos series y las
estaciones MODBUS.

3) Las direcciones de los TAGS se configuran en la tabla NS_IO de la siguiente manera:

Campo Descripción
io_tag_name Nombre del TAG de NanoScada
io_driver task_name del driver (MBUS, MBUS1, etc)
io_address Estación, tipo de registro y dirección (ver detalles abajo)
Valor Reservado: FORCE_SCAN. Indica que al forzar el valor del
TAG en 1, se requiere una ejecución inmediata del SCAN.
io_scan Scan Group (ver detalles abajo)
io_min_raw Valor RAW mínimo para escalado
io_max_raw Valor RAW máximo para escalado
io_min_eng Valor ENG mínimo para escalado
io_max_eng Valor ENG máximo para escalado

FORMATO io_address:

<st_id>:<reg_type>.<address>.[<bit>|SW|UW|SL|UL|F|M10K]

<st_id> numero lógico de la estación esclava


<reg_type> tipo de registro Modbus: COIL, INP, HREG, SREG
<address> numero de registro modbus: de 1 a 65535
<bit> bit dentro del registro: 1 a 16
SW El registro es un WORD con signo (valor por defecto)
UW El registro es un WORD sin signo
SL El registro es un DOUBLE WORD con signo
UL El registro es un DOUBLE WORD sin signo
F El registro es un punto flotante
M10K El registro es un 32-bit signed M10K (solo lectura)

Página 23 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

Codificación de SREG:
Address R/W Descripción
9999 W Habilitación (1) / Inhabilitación (2) de la estación

Ejemplos:
3:HREG.2.1 Bit 1 del registro HREG 2 de la estación 3
3:HREG.2 Contenido del registro HREG 2 interpretado como WORD con signo
3:HREG.2.SW Contenido del registro HREG 2 interpretado como WORD con signo
3:HREG.2.UW Contenido del registro HREG 2 interpretado como WORD sin signo
3:HREG.2.SL Contenido de los registros HREG 2 y 3 interpretado como una
DOUBLE WORD con signo.
3:HREG.2.F Contenido de los registros HREG 2 y 3 interpretado como un
valor en punto flotante.
3:SREG.9999 Habilitación e inhabilitación de la estación

4) Los grupos de SCAN se configuran en el archivo NANOSCADA.INI que reside en


NSAPP. Cada grupo de SCAN poseerá una sección en este archivo con el nombre del grupo
de SCAN configurado en el campo io_scan de la tabla NS_IO, mas el prefijo SCAN_.
Por ejemplo si io_scan = R1, el archivo deberá tener una sección llamada[SCAN_R1].

Parámetro Descripción
read Lectura por bloque.
Valores posibles:
0 - No se realiza lectura periódica para este grupo
1 - Se realiza lectura periódica para este grupo.
Valor por defecto: 1
write Escritura por bloque.
Valores posibles:
0 - No se realiza escritura periódica para este grupo
1 - Se realiza escritura periódica para este grupo.
Valor por defecto: 0.
Si write = 1 automáticamente se asumirá read = 0.
exception_write Escritura por excepción
Valores posibles:
0 - No se realiza escritura por excepción para este grupo
1 - Se realiza escritura por excepción para este grupo
Valor por defecto: 1
period Periodo de SCAN (en segundos) para lectura / escritura por bloque
Si el valor de este parámetro es 0 indica que solo podrá leerse o escribirse
a través del elemento FORCE_SCAN.
Valor por defecto: 1 segundo
initial_scan Indica si se deberá realizar una lectura inmediatamente luego de iniciar la
tarea.
Valores posibles:
0 - No se realizará lectura al iniciar la tarea
1 - Se realizará lectura al iniciar la tarea
Valor por defecto: 0
scan_offset Segundos a desplazar la ejecución del SCAN respecto de la hora del
sistema.
Valores posibles: Valores enteros positivos, negativos o cero
Valor por defecto: 0

Página 24 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

Ejemplo: En el siguiente ejemplo se requiere ejecutar el scan cada 1 minuto y el mismo será
ejecutado a los 58 segundos de cada minuto.

[SCAN_R1]
read=1
exception_write=1
period=60
scan_offset=-2
initial_scan=0

5) El archivo NANOSCADA.INI puede incluir una sección con el nombre de la tarea y los
siguientes parámetros generales de toda la tarea:

Parámetro Descripción
use_forced_write Indica si el driver realizará escrituras forzadas cuando escriba en
NanoScada los valores de los elementos leídos desde estaciones
remotas.
Valores posibles:
0 – Se realizarán escrituras normales
1 – Se realizarán escrituras forzadas (producen cambio en la
estampa de tiempo y producen evento de cambio en el valor del
TAG)
Valor por defecto: 0
limit_scaled_values Indica si el driver, cuando lea un valor fuera de rango, limitará los
valores leídos a los minimos y máximos configurados en el escalado
cada TAG.
Valores posibles:
0 – No limitar los valores leídos
1 – Limitar los valores leídos a los minimos y máximos
configurados en el escalado cada TAG.
2 – Escribir el valor 0 (cero) cuando se lea un valor fuera de
escala.
Valor por defecto: 0

Página 25 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.12.1 Archivo MODCOM.CFG

Posee la configuración de los puertos series a utilizar:


# port: Nombre del puerto serie (COMx) o
# <direccion IP>:<port> en el caso de usar Servidor TCP / COM.
# baud_rate: Velocidad (9600, 19200, etc)
# data_bits: Cantidad de bits de datos por carácter (7, 8)
# stop_bits: Cantidad de bits de stop por carácter (1, 1.5, 2)
# parity: Tipo de paridad (NO, ODD, EVEN, MARK, SPACE)
# TX delay: Tiempo (milisegundos) a esperar antes de trasmitir un mensaje
# flow_control: Tipo de control de flujo (bitmap) (1: DSR, 2:CTS, 4: RTS)

#Port baud_rate data_bits stop_bits parity tx_delay flow_ctrl


COM4 9600 8 1 NO 0 0
10.10.0.1:5555 9600 8 1 NO 0 0

3.12.2 Archivo MODAPI.CFG

Posee la configuración de las estaciones MODBUS:


# Configuration file for Modbus Master - STATIONS

# log_number: Identificador logico de la estacion


# station_id: Numero de estacion MODBUS
# port: Nombre del puerto serie
# timeout: Tiempo de espera por respuesta (en decimas de segundo)
# retries: Cantidad de reintentos
# min_block: Maxima distancia entre direcciones para un mismo pedido
# pulse_time: Tiempo de duracion de pulsos (en decimas de segundo)
# mode: Modo de comunicacion Modbus: ASCII o RTU
# swap: Swap register for long data type (2 registers): NO or YES
# debug: Debug level: 0001 => Character traffic
# 0002 => Serial port additional information
# 0010 => MODBUS headers and data
# 0020 => MODBUS headers

#LSN station_id port timeout retries min_block pulse_time mode swap debug
1 1 COM4 100 0 0 0 RTU NO 30
2 2 COM4 100 0 0 0 RTU NO 30
3 3 COM4 100 0 0 0 RTU NO 30

Página 26 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.13 Configuración de NSMBTCP

Cada instancia de NSMBTCP realizara lecturas / escrituras en forma serializada, por dicha
razón es posible que alguna aplicación requiera iniciar varias instancias de NSMBTCP a los
efectos de mejorar la performance.

Cada instancia de NSMBTCP se configura de la siguiente manera:

1) El task_name por defecto de NSMBTCP es MBTCP y puede ser cambiado ejecutando la


aplicación con el task_name requerido como línea de comando, por ejemplo:
NSMBTCP MBTCP1
ejecutará el servidor con task_name = MBTCP1

2) Cada instancia deberá tener una carpeta en el NSAPP con el nombre de la tarea. En dicha
carpeta residirá el archivo de configuración del driver MODBUS TCP para dicho task_name.
Por ejemplo, si el NSAPP = C:\NSAPP y el task_name es MBTCP, el archivo de
configuración del driver será:

C:\NSAPP\MBTCP\MBTCPSTA.CFG

En dicho archivo se encuentran los parámetros de configuración de las estaciones MODBUS


TCP (ver descripción mas abajo).

3) También en dicha carpeta podrá configurarse un archivo de configuración llamado


MBTCP.INI, en el cual podrán configurarse parámetros generales del driver MODBUS TCP.
Este archivo es del tipo INI de Windows separado en secciones con parámetros.
La única sección configurable es [MBTCP] y a continuación se describen los parámetros de la
misma.

Parámetro Descripción
disconnect_nerrors Cantidad de errores de lectura (todos los reintenos fallidos es un error de
lectura) que esperará el driver MODBUS TCP antes de cerrar la conexión
TCP/IP.
Valores posibles:
0 - No se cerrará la conexión TCP por errores de lectura.
1-N - Cantidad de errores antes de cerrar la conexión
Valor por defecto: 0

4) Las direcciones de los TAGS se configuran en la tabla NS_IO de la siguiente manera:

Campo Descripción
io_tag_name Nombre del TAG de NanoScada
io_driver task_name del driver (MBTCP, MBTCP1, etc)
io_address Estacion, tipo de registro y direccion (ver detalles abajo)
Valor Reservado: FORCE_SCAN. Indica que al forzar el valor del
TAG en 1, se requiere una ejecución inmediata del SCAN.
io_scan Scan Group (ver detalles abajo)
io_min_raw Valor RAW minimo para escalado
io_max_raw Valor RAW maximo para escalado
io_min_eng Valor ENG minimo para escalado
io_max_eng Valor ENG maximo para escalado

Página 27 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

FORMATO io_address:

<st_id>:<reg_type>.<address>.[<bit>|SW|UW|SL|UL|F|M10K]

<st_id> numero lógico de la estación esclava


<reg_type> tipo de registro Modbus: COIL, INP, HREG, SREG
<address> numero de registro modbus: de 1 a 65535
<bit> bit dentro del registro: 1 a 16
SW El registro es un WORD con signo (valor por defecto)
UW El registro es un WORD sin signo
SL El registro es un DOUBLE WORD con signo
UL El registro es un DOUBLE WORD sin signo
F El registro es un punto flotante
M10K El registro es un 32-bit signed M10K (solo lectura)

Codificación de SREG:
Address R/W Descripción
9999 W Habilitación (1) / Inhabilitación (2) de la estación

Ejemplos:
3:HREG.2.1 Bit 1 del registro HREG 2 de la estación 3
3:HREG.2 Contenido del registro HREG 2 interpretado como WORD con signo
3:HREG.2.SW Contenido del registro HREG 2 interpretado como WORD con signo
3:HREG.2.UW Contenido del registro HREG 2 interpretado como WORD sin signo
3:HREG.2.SL Contenido de los registros HREG 2 y 3 interpretado como una
DOUBLE WORD con signo.
3:HREG.2.F Contenido de los registros HREG 2 y 3 interpretado como un
valor en punto flotante.
3:SREG.9999 Habilitación e inhabilitación de la estación

Página 28 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

5) Los grupos de SCAN se configuran en el archivo NANOSCADA.INI que reside en


NSAPP. Cada grupo de SCAN poseerá una sección en este archivo con el nombre del grupo
de SCAN configurado en el campo io_scan de la tabla NS_IO, mas el prefijo SCAN_.
Por ejemplo si io_scan = R1, el archivo deberá tener una sección llamada[SCAN_R1].

Parámetro Descripción
read Lectura por bloque.
Valores posibles:
0 - No se realiza lectura periódica para este grupo
1 - Se realiza lectura periódica para este grupo.
Valor por defecto: 1
write Escritura por bloque.
Valores posibles:
0 - No se realiza escritura periódica para este grupo
1 - Se realiza escritura periódica para este grupo.
Valor por defecto: 0.
Si write = 1 automáticamente se asumirá read = 0.
exception_write Escritura por excepción
Valores posibles:
0 - No se realiza escritura por excepción para este grupo
1 - Se realiza escritura por excepción para este grupo
Valor por defecto: 1
period Periodo de SCAN (en segundos) para lectura / escritura por bloque
Si el valor de este parámetro es 0 indica que solo podrá leerse o escribirse
a través del elemento FORCE_SCAN.
Valor por defecto: 1 segundo
initial_scan Indica si se deberá realizar una lectura inmediatamente luego de iniciar la
tarea.
Valores posibles:
0 - No se realizará lectura al iniciar la tarea
1 - Se realizará lectura al iniciar la tarea
Valor por defecto: 0
scan_offset Segundos a desplazar la ejecución del SCAN respecto de la hora del
sistema.
Valores posibles: Valores enteros positivos, negativos o cero
Valor por defecto: 0

Ejemplo: En el siguiente ejemplo se requiere ejectuar el scan cada 1 minuto y el mismo será
ejecutado a los 58 segundos de cada minuto.

[SCAN_R1]
read=1
exception_write=1
period=60
scan_offset=-2
initial_scan=0

Página 29 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

6) El archivo NANOSCADA.INI puede incluir una sección con el nombre de la tarea y los
siguientes parámetros generales de toda la tarea:

Parámetro Descripción
use_forced_write Indica si el driver realizará escrituras forzadas cuando escriba en
NanoScada los valores de los elementos leídos desde estaciones remotas.
Valores posibles:
0 – Se realizarán escrituras normales
1 – Se realizarán escrituras forzadas (producen cambio en la
estampa de tiempo y producen evento de cambio en el valor del TAG)
Valor por defecto: 0
limit_scaled_values Indica si el driver, cuando lea un valor fuera de rango, limitará los
valores leídos a los minimos y máximos configurados en el escalado
cada TAG.
Valores posibles:
0 – No limitar los valores leídos
1 – Limitar los valores leídos a los minimos y máximos
configurados en el escalado cada TAG.
2 – Escribir el valor 0 (cero) cuando se lea un valor fuera de
escala.
Valor por defecto: 0

3.13.1 Archivo MBTCPSTA.CFG

Posee la configuración de las estaciones MODBUS TCP:

# log_number: Logical station number


# address: IP address and port (port is optional)
# station_id: Fisical MODBUS station number
# port: Serial port for communication with the station
# timeout: Time to wait for the station answer before timeout(in .1 seconds)
# retries: Number of retries for each poll
# min_block: Maximum hole between addresses in each poll bock
# pulse_time: Duracion de los comandos tipo pulsado
# swap: Swap register for long data type (2 registers)
# debug: Debug level: 0001 => Character traffic
# 0002 => Serial port additional information
# 0010 => MODBUS headers and data
# 0020 => MODBUS headers
#
# log_number: Identificador logico de la estacion
# address: Dirección IP y puerto (opcional, 502 por defecto)
# station_id: Numero de estacion MODBUS
# timeout: Tiempo de espera por respuesta (en decimas de segundo)
# retries: Cantidad de reintentos
# min_block: Maxima distancia entre direcciones para un mismo pedido
# pulse_time: Tiempo de duracion de pulsos (en decimas de segundo)
# swap: Invertir el orden de los registros para datos DWORD (YES, NO)
# debug: Debug level: 0001 => Character traffic
# 0002 => Serial port additional information
# 0010 => MODBUS headers and data
# 0020 => MODBUS headers

#Log_number address station_id timeout retries min_block pulse_time swap debug


1 192.168.0.51 1 100 0 20 0 YES 30
2 pc_ganatrone2 2 100 0 20 0 YES 30
3 192.168.0.51 3 100 0 20 0 NO 30

Página 30 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.14 Configuración de NSDNP

NSDNP se configura de la siguiente manera:

1) El task_name de NSDNP es DNP.

2) Dentro de la carpeta NSAPP, deberá existir una carpeta en el DNP. En dicha carpeta
residirán los archivos de configuración del driver DNP de acuerdo a la configuración de Trsi-
DNPMTR..
Por ejemplo, si el NSAPP = C:\NSAPP, los archivos de configuración del driver serán:

C:\NSAPP\DNP\dnp.ini
C:\NSAPP\DNP\dnpcom.cfg
C:\NSAPP\DNP\dnpgen.cfg
C:\NSAPP\DNP\dnpsta.cfg
C:\NSAPP\DNP\dnptrg.cfg

En dichos archivos se encuentran los parámetros de configuración de los puertos series y las
estaciones DNP. Ver manual de configuración del driver DNP.

3) Las direcciones de los TAGS se configuran en la tabla NS_IO de la siguiente manera:

Campo Descripción
io_tag_name Nombre del TAG de NanoScada
io_driver DNP
io_address Estacion, tipo de registro y direccion (ver detalles abajo)
io_scan En el caso de objetos de tipo AO o CROB, este parámetro indica el
período cada cuanto se escribe el dato en la estación remota.
Si este valor está vacío o es cero, la escritura es por excepción.
En caso de escritura por excepcion, la misma será realizada solo a
una estación remota (no se soporta un mismo TAG con escritura por
excepción a múltiples estaciones remotas).
io_min_raw Valor RAW minimo para escalado
io_max_raw Valor RAW maximo para escalado
io_min_eng Valor ENG minimo para escalado
io_max_eng Valor ENG maximo para escalado

FORMATO io_address:

<station>:<data_type>.<address>.<options>

<station> nombre de la estación esclava

<data_type>: Campo obligatorio que identifica el tipo de señal. Valores posibles:


BI: Binary Input
BO: Binary Output (read only)
CROB: Control Relay Output Block (Operación de salidas digitales)
BC: Binary Counter (Contadores numéricos)
AI: Analog Input
AO: Analog Output
FP: Floating Point

<address>: Campo obligatorio con la dirección del objeto DNP.


Puesto que DNP no maneja entradas digitales dobles ni comandos dobles,

Página 31 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

es necesario especificar dos direcciones para obtener un equivalente a


estas señales.
En estos casos, las dos direcciones se ingresarán separadas por un signo
"-" (signo de sustracción). Por ejemplo: 1-2.
El <data_type> AI también soporta direcciones dobles, para poder leer valores
enteros y flotantes de 32 bits encapsulados en dos direcciones DNP (AI de 16 bits.)

<options>: Campo opcional válido para <data_type> AI, CROB o AO.

Los canales CROB que no posean el campo <options> utilizarán las


opciones por defecto configuradas en el archivo de configuración local
en el campo [DNP].CROB_OPTIONS.
Los canales AO que no posean el campo <options> utilizarán las
opciones por defecto configuradas en el archivo de configuración local
en el campo [DNP].AO_OPTIONS.

Formato para CROB:


<ctrl_type>,<code_1>,<code_0>,<on_time>,<off_time>,<count>
<ctrl_type>: Tipo de control o clase de comando.
Valores posibles:
S: Select
O: Operate
DO: Direct Operate
DONA: Direct Operate No Acknowledge
El tipo de operación es independiente del valor
que se esta escribiendo.
<code1>: Especifica la operación de control a realizar cuando se
escriba el TAG en el valor 1.
Ver codificación más abajo (bitmapped).
<code0>: Especifica la operación de control a realizar cuando se
escriba el TAG en el valor 0.
Ver codificación más abajo (bitmapped).
<on_time>: Tiempo de ON del pulso (en milisegundos)
<off_time>: Tiempo de OFF del pulso (en milisegundos)
<ctrl_count>: Cantidad de pulsos

Codificación de los campos <code1> y <code0>

bits: 7 6 5 4 3 2 1 0
|_| | | |_____|
| | | |_________ Code
| | |______________ Queue
| |________________ Clear
|___________________ Trip/Close: 00-NUL, 01-Close, 10-Trip

Code:
0: NUL operation. No operation specified. Only the R attribute is processed.
1: Pulse On - The point(s) is turned on for the specified on-time, turned off
for the specified off-time and left in the off state.
2: Pulse Off - The point(s) is turned off for the specified off-time, then turned
on for the specified on-time and left in the on state.
3: Latch On - This latches the point(s) on.
4: Latch Off - This latches the point(s) off.

Formato para AO:


<ctrl_type>
<ctrl_type>: Tipo de control o clase de comando.
Valores posibles:
S: Select
O: Operate
DO: Direct Operate
DONA: Direct Operate No Acknowledge
El tipo de operación es independiente del valor
que se esta escribiendo.

Página 32 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

Opciones para AI:


F: Solo válido cuando es configurado con doble dirección, para indicar
que el valor leído es un flotantes de 32 bits encapsulado en dos
direcciones DNP (AI de 16 bits.).
Si no se especifica la opción F, y se indica doble dirección, se asume
que el valor leído es un entero de 32 bits.

Existen dos registros especiales para las estaciones:

<station>:ENABLE Permite habilitar o inhabilitar la lectura de una estación


<station>:TRACE Permite asignar un nivel de trace a una estación

Ejemplos de configuracón:
RTU:BI.42 // Entrada binaria con dirección 42
RTU:AI.12 // Entrada analógica con dirección 12
RTU:AI.13-14 // Entradas analógicas con direcciones
// 13 y 14 contienen un valor entero
// de 32 bits.
RTU:AI.16-17.F // Entradas analógicas con direcciones
// 13 y 14 contienen un valor flotante
// de 32 bits.

4) El archivo NANOSCADA.INI puede incluir una sección con el nombre de la tarea y los
siguientes parámetros generales de toda la tarea:

Parámetro Descripción
CROB_OPTIONS Los canales CROB que no posean el campo <options> en su
configuración utilizarán las opciones por defecto configuradas en este
campo.
Valor por defecto: DO,3,4,3000,3000,1
AO_OPTIONS Los canales AO que no posean el campo <options> en su configuración
utilizarán las opciones por defecto configuradas en este campo.
Valor por defecto: DO
SOE_BI_DELAY Esta opción permite establecer un tiempo mínimo (en milisegundos) entre
escrituras sucesivas a un mismo TAG. De esta manera, se dará tiempo al
módulo NSALARM de procesar cada uno de los cambios reportados por
DNP cuando la estación remota reporte múltiples eventos BI en forma
simultánea.
Valor por defecto: 0

Página 33 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.15 Configuración de E90GW

E90GW se configura de la siguiente manera:

1) El task_name de E90GW es E90GW.

2) Todos los TAGS utilizados por E90GW deberán estar incluidos en la tabla NS_IO de la
siguiente manera:

Campo Descripción
io_tag_name Nombre del TAG de NanoScada
io_driver E90GW
io_address No utilizado
io_scan No utilizado
io_min_raw No utilizado
io_max_raw No utilizado
io_min_eng No utilizado
io_max_eng No utilizado

Página 34 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.16 Configuración de NSOPCCNT

NSOPCCNT es el cliente OPC de NanoScada el cual permite conectar a NanoScada a uno o


múltiples servidores OPC, tanto locales como remotos.

Cada instancia de NSOPCNT posee un thread dedicado a la comunicación con cada servidor
OPC, por tal razón no es necesario crear múltiples instancias de NSOPCCNT para mejorar la
performance, aunque sí es posible.

Cada instancia de NSOPCCNT se configura de la siguiente manera:

1) El task_name por defecto de NSOPCCNT es OPCCNT y puede ser cambiado ejecutando la


aplicación con el task_name requerido como línea de comando, por ejemplo:
NSOPCCNT OPCCNT1
ejecutará el servidor con task_name = OPCCNT1

4) Las direcciones de los TAGS se configuran en la tabla NS_IO de la siguiente manera:

Campo Descripción
io_tag_name Nombre del TAG de NanoScada
io_driver task_name del driver (OPCCNT, OPCCNT 1, etc)
io_address Nombre del item OPC (Ver detalles abajo)
io_scan Scan Group (ver detalles abajo)
io_min_raw Valor RAW mínimo para escalado
io_max_raw Valor RAW máximo para escalado
io_min_eng Valor ENG mínimo para escalado
io_max_eng Valor ENG máximo para escalado

FORMATO io_address:

El formato de io_address depende exclusivamente de la sintaxis de los ítems OPC de cada


servidor. En este campo se debe configurar solamente el nombre del ítem (ItemName) puesto
que el nombre del servidor OPC y grupo OPC se configura dentro de los parámetros del grupo
de SCAN.

4) Los grupos de SCAN se configuran en el archivo NANOSCADA.INI que reside en


NSAPP. Cada grupo de SCAN poseerá una sección en este archivo con el nombre del grupo
de SCAN configurado en el campo io_scan de la tabla NS_IO, mas el prefijo SCAN_.
Por ejemplo si io_scan = R1, el archivo deberá tener una sección llamada[SCAN_R1].

Parámetro Descripción
server_name Nombre del servidor OPC en la forma en la cual éste es publicado.
Valor por defecto: No posee
host_name Nombre del host (precedido por el prefijo “\\”) o dirección IP donde
reside el servidor OPC.
Valor por defecto: localhost
period Periodo de refresco a solicitar al servidor OPC (en milisegundos).
Valor por defecto: 0 (lo mas rápido posible)
time_bias Time bias a solicitar al servidor OPC (en minutos)
Valor por defecto: 0

Página 35 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

async_type Tipo de lectura (sincrónica o asincrónica) para la lectura del grupo.


Valor posibles:
0 – Asincrónico (Versión 2 o Versión 1)
1 – Asincrónico Versión 1
2 – Asincrónico Versión 2
3 – Sincrónico
Valor por defecto: 0
create_items_inactive Indica la forma de crear los items del grupo.
Valor posibles:
0 – Los items serán creados activos
1 – Los items serán creados inactivos y activados luego de
haber sido creados.
Valor por defecto: 0
write Escritura por bloque.
Valores posibles:
0 - No se realiza escritura periódica para este grupo
1 - Se realiza escritura periódica para este grupo.
Valor por defecto: 0.
Si write = 1 automáticamente se asumirá read = 0.
exception_write Escritura por excepción
Valores posibles:
0 - No se realiza escritura por excepción para este grupo
1 - Se realiza escritura por excepción para este grupo
Valor por defecto: 1

Ejemplo:

[SCAN_R1]
server_name=Matrikon.OPC.Simulation.1
host_name=localhost
group_name=PRUEBA
period=5000
time_bias=-180
async_type=0
create_items_inactive = 0

Página 36 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.17 Configuración de NSOPCSRV

NSOPCSRV es el servidor OPC de NanoScada el cual permite a clientes OPC (locales o


remotos) acceder a la RTDB de NanoScada a través de las interfaces OPC (Versión 1 o
Versión 2).

El nombre a través del cual se identifica a NSOPCSRV es: “NANOSCADA.OPC.1”.

NSOPCSRV exporta la totalidad de los tags de la RTDB de NanoScada, con permiso de


lectura y escritura. El nombre de cada ítem OPC coincide con el nombre del tag en la RTDB
de NanoScada.

El tipo de dato canónico de los tags es el siguiente de acuerdo al tipo de dato del tag en la
RTDB de NanoScada:

Tipo de dato en NanoScada Tipo de dato en OPC


Digital – ‘D’ VT_I4
Integer – ‘I’ VT_I4
Measure – ‘M’ VT_R4
Text – ‘T’ VT_BSTR (longitud máxima 256)

NSOPCSRV se configura de la siguiente manera:

1) El task_name de NSOPCSRV es OPCSRV.

2) El archivo NANOSCADA.INI deberá poseer una entrada llamada [OPCSRV] en la cual se


podrán configurar los siguientes parámetros:

Parámetro Descripción
max_ítems Cantidad de ítems totales concurrentes que soportará el servidor OPC
Valor por defecto: (El tamaño de la RTDB).
trace_item_name Nombre del TAG en la RTDB que indica el nivel de trace para el servidor
OPC. Mediante este TAG se puede cambiar dinámicamente la traza
visualizada.
Valor por defecto: (No posee).
trace_level Nivel de trace inicial
Valores posibles (bitmapped):
0x00000010 // Interfaces OPC
0x00000020 // Creación y eliminación de elementos OPC
0x00000040 // Tráfico de datos OPC.
Valor por defecto: 0

Ejemplo:

[OPCSRV]
trace_level=0x000000FF
max_items=5000
trace_item_name=OPC_SERVER_TRACE

Página 37 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.18 Configuración de NSHSB

NSHSB administra múltiples tareas entre nodos NanoScada redundantes.

La configuración es la siguiente:

1) El task_name NSHSB

2) Las configuración de los TAGS de control se configuran en la tabla NS_IO de la siguiente


manera:
io_tag_name: Nombre del TAG de NanoScada
io_driver: NSHSB
io_address: Campo mediante el cual se identifica el grupo y función de cada TAG.

FORMATO io_address:

<hsb_group>:<tag_function>

<hsb_group> Nombre que identifica a la tarea que se administrara


<tag_function> Función del TAG

Las funciones son las siguientes y se recomienda configurarlas a todas:

PARTNER_CONN: Direccion Aplicacion -> NSHSB


TAG que indica el estado de comunicación con el NanoScada Asociado.
Debe ser el TAG configurado en "ns_net.net_status_tag" para la conexión con el
NanoScada Asociado.
Tipo de tag: T

COMMAND: Direccion Aplicacion -> NSHSB


TAG para el envío de comandos a NSHSB.
Tipo de tag: I
Comandos soportados:
1: Failover
2: Force to active
3: Set to automatic mode

LOCAL_STATUS: Direccion NSHSB -> Aplicacion


TAG que indica el estado del HSB
Tipo de tag: I o T
Valores posibles:
0: HSB_IDLE
1: HSB_STANDBY
2: HSB_ACTIVE_REQ
3: HSB_MAN_ACTIVE_REQ
4: HSB_ACTIVE
5: HSB_STANDBY_REQ
6: HSB_FORCED_ACTIVE
7: HSB_FORCED_STANDBY
8: HSB_FORCED_ACTIVE_REQ

LOCAL_ERROR: Direccion Aplicacion -> NSHSB

Página 38 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

TAG que indica el estado de la tarea que se esta monitoreando.


Tipo de tag: I o D
Valores posibles:
0: DESCONOCIDO
1: OK
2: ERROR

PARTNER_STATUS: Direccion Aplicacion -> NSHSB


TAG que indica el estado del HSB del NanoScada asociado.
Tipo de tag: I o T
Valores posibles:
0: HSB_IDLE
1: HSB_STANDBY
2: HSB_ACTIVE_REQ
3: HSB_MAN_ACTIVE_REQ
4: HSB_ACTIVE
5: HSB_STANDBY_REQ
6: HSB_FORCED_ACTIVE
7: HSB_FORCED_STANDBY
8: HSB_FORCED_ACTIVE_REQ

START: Dirección NSHSB --> Aplicación


TAG mediante el cual NSHB arrancara y parara a la tarea
Puede ser el TAG configurado en "ns_task.task_start_tag" para la tarea que se
esta administrando.
Tipo de tag: I
Valores posibles:
0: Parar la tarea
1: Arrancar la tarea

NBLOQUED: Dirección NSHSB --> Aplicación


En el caso que exista una conexión en la tabla NS_NET con NET_ID igual al
<hsb_group> configurado y esta posea el atributo ‘F’ en el campo net_mode, NSHSB
contará la cantidad de TAGs bloqueados y lo escribirá en este TAG.
Tipo de tag: I

NINVALID: Dirección NSHSB --> Aplicación


En el caso que exista una conexión en la tabla NS_NET con NET_ID igual al
<hsb_group> configurado y esta posea el atributo ‘F’ en el campo net_mode, NSHSB
contará la cantidad de TAGs con calificador inválido y lo escribirá en este TAG.
Tipo de tag: I

Ejemplos:
Para una tarea llamada RTU

io_tag_name io_driver io_address


PARTNER_STATUS NSHSB RTU:PARTNER_CONN
HSB_RTU_COMMAND NSHSB RTU:COMMAND
HSB_RTU_STATUS NSHSB RTU:LOCAL_STATUS
HSB_RTU_ERROR NSHSB RTU:LOCAL_ERROR
PARTNER:HSB_RTU_STATUS NSHSB RTU:PARTNER_STATUS
NS_START_MBRTU NSHSB RTU:START

Página 39 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

RTU_NINVALID NSHSB RTU:NINVALID


RTU_NBLOQUED NSHSB RTU:NBLOQUED

4) En el archivo NANOSCADA.INI que reside en NSAPP podrán configurarse los siguientes


parámetros dentro de la sección [NSHSB]

Parámetro Descripción
failover_to_primary Valores posibles:
0 - No se realizaran conmutaciones automáticas desde nodo backup a
nodo primary.
1 - Se realizaran conmutaciones automáticas desde nodo backup a
nodo primary.
Valor por defecto: 1
failover_latency Tiempo (en segundos) que NSHSB esperará luego de arrancar o parar
una tarea antes de volver a monitorear el tag LOCAL_ERROR.
Valor por defecto: 10.
invalid_in_standby Indica si los calificadores de los TAGs locales correspondientes al
NET_ID igual al <hsb_group> configurado serán puestos con
calificador INVALID cuando la tarea se encuentre en estado
STANDBY.
Valores posibles:
0 - No asignar calificador INVALIDO
1 - Asignar calificador INVALIDO
Valor por defecto: 1

Página 40 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.19 Configuración de NSALARM

NAALARM es el servidor de alarmas de NanoScada 2010.

La configuración es la siguiente:

1) El task_name NSALARM

2) Las alarmas son configuradas en la tabla NS_ALARMS de la siguiente manera:

alarm_id: Identificador numérico entero (único) de la alarma


alarm_tag_name: Nombre del TAG de NanoScada que produce la alarma
alarm_type: Tipos de alarma soportadas (ver abajo)
alarm_require_ack: Indica si la alarma debe ser reconocida (Y) o no (N) en el alarmero.
alarm_condition: Condición para la evaluación de la alarma (ver abajo)
alarm_limit: Límite para la evaluación de la alarma (ver abajo)
alarm_deadband: No soportado por el momento
alarm_label: Etiqueta que identifica la condición de alarma
alarm_area: Area de la alarma (utilizada para filtrado de alarmas)
alarm_adelay: Tiempo que debe permanecer la condición de alarma para que se
dispare la alarma.
alarm_ndelay: Tiempo que debe desaparecer la condición de alarma para que se
normalice la alarma.

Condiciones soportadas (alarm_condition)


= Igual
<> Distinto
>= Mayor o igual
<= Menor o igual
> Mayor
< Menor
CH Change

Para los tags de tipo texto siempre será alarma si el texto cambia a un valor distinto de cadena
vacía.

Evaluación de alarma
La condición de alarma se dará siempre que la expresión siguiente sea verdader:
<alarm_tag_name> <alarm_condition> <alarm_limit>
El campo alarm_limit se evalua como expresion (ver sección 3.20.1-Evaluación de
expresiones) si comienza con el caracter '=', caso contrario se asume que es un valor numerico
constante.
Por ejemplo si:
alarm_tag_name: M_CALC1
alarm_condition: >=
alarm_limit: =M_CALC2 + M_CALC3
La condición de alarma estará presente cuando el valor del tag M_CALC1 sea mayor o igual
al valor del tag M_CALC2 más el valor del tag M_CALC3.
Si:
alarm_limit: 50
La condición de alarma estará presente cuando el valor del tag M_CALC1 sea mayor o igual a
50.

Página 41 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

4) En el archivo NANOSCADA.INI que reside en NSAPP podrán configurarse los siguientes


parámetros dentro de la sección [NSALARM]

Parámetro Descripción
ignore_invalid Permite no realizar el procesamiento de alarmas cuando el calificador
del TAG de alarma (alarm_tag_name) es invalido.
Valores posibles:
0 - No ignorar
1 - Ignorar
Valor por defecto: 0
silent_init Permite que NSALARM arranque en modo silencioso, esto es que
todas las alarmas presentes al momento del arranque de NSALARM
aparezcan como reconocidas. Ademas las alarmas temporizadas
(alarm_adelay != 0) apareceran inmediatamente (tambien como
reconocidas).
Valores posibles:
0 - Arranque normal
1 - Arranque silencioso
Valor por defecto: 0

Los TAGs de evento nunca son registrados al momento de arranque


de NSALARMS.
limit_compute_period Tiempo (en segundos) cada cuando se evaluan las expresiones de
límite (comenzadas con el carácter ‘=’).
Valor por defecto: 1.

Página 42 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.20 Configuración de NSCALC

La tarea NSCALC realiza el procesamiento de una expresión o script y vuelca el resultado en


un TAG.

Se configura de la siguiente manera:

1) El task_name es NSCALC y puede ser ingresado en el listado de tareas NS_TASKS.

2) Los TAGS de cálculo se configuran en la tabla NS_IO de la siguiente manera:

Campo Descripción
io_tag_name Nombre del TAG de NanoScada donde se escribirá el resultado
io_driver NSCALC
io_address Expresión o archivo a evaluar (ver abajo)
Valor Reservado: FORCE_SCAN. Indica que al forzar el valor del
TAG en 1, se requiere una ejecución inmediata del SCAN.
io_scan Scan Group (ver detalles abajo)

FORMATO io_address:

En io_address se escribirá la expresión a computar.


Si se desea podrá escribirse en este campo el nombre de un archivo conteniendo el script a
ejecutar, precedido por el carácter ‘!’. El archivo deberá residir en la carpeta NSAPP.
En el caso de utilizar un archivo de script, la líneas comenzadas con el carácter ‘#’ serán
interpretadas como líneas de comentario. El tamaño máximo de un archivo de script es de 64
Kbytes.

Ejemplos:
if (M_01 > 10) then M_01 else 0 endif // Expresión a calcular
!calc_script.txt // El archivo calc_script.txt contiene la expresión a calcular.

Ver debajo la descripción de los formatos de expresión soportados.

4) Los grupos de SCAN se configuran en el archivo NANOSCADA.INI que reside en


NSAPP. Cada grupo de SCAN poseerá una sección en este archivo con el nombre del grupo
de SCAN configurado en el campo io_scan de la tabla NS_IO, mas el prefijo SCAN_.
Por ejemplo si io_scan = R1, el archivo deberá tener una sección llamada[SCAN_R1].

Parámetro Descripción
period Periodo de en segundos cada cuanto se calcula el bloque.
Valor por defecto: 0 (lo mas rápido posible).
initial_scan Indica si se deberá realizar un cálculo del bloque inmediatamente luego de
iniciar la tarea.
Valores posibles:
0 - No se realizará cálculo al iniciar la tarea
1 - Se realizará cálculo al iniciar la tarea
Valor por defecto: 0
scan_offset Segundos a desplazar la ejecución del SCAN respecto de la hora del
sistema.
Valores posibles: Valores enteros positivos, negativos o cero
Valor por defecto: 0
Página 43 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

Ejemplo: En el siguiente ejemplo se requiere ejecutar el scan cada 1 minuto y el mismo será
ejecutado a los 58 segundos de cada minuto.

[SCAN_R1]
period=60
scan_offset=-2
initial_scan=0

3.20.1 Evaluación de expresiones

NSCALC soporta los siguientes operadores, bloques y funciones:

- Operadores aritméticos:
^ potencia
/ división
* multiplicación
% resto de división (módulo)
+ suma
- resta

- Operadores relacionales:
!= distinto
<= menor o igual
>= mayor o igual
== igual
< menor
> mayor

- Operadores bitwaise (bit a bit):


band and
bor or
bxor exclusive or

- Operadores lógicos:
and and
or or

- Bloque condicional:
if (expression) then (expression1) endif
if (expression) then (expression1) else (exprssion2) endif
donde (expression1) o (expression2) pueden ser bloques condicionales.

- Funciones:
acos arcocoseno
asin arcoseno
atan arcotangente
sin seno (en radianes)
cos coseno (en radianes)
tan tangente
abs valor absoluto
exp exponencial

Página 44 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

log logaritmo natural


log10 logaritmo base-10
sqrt raiz cuadrada
rand numero aleatorio (menor o igual al argumento)
system ejecuta el programa indicado como argumento (no se soportan espacios)
trace crea un mensaje de trace con el argumento (no se soportan espacios)
qual calidad del TAG (el argumento debe ser el nombre de un TAG)(*1).
changed flag de cambio en TAG (el argumento debe ser el nombre de un TAG)(*2)
flags flags del TAG (el argumento debe ser el nombre de un TAG)(*3).

(*1): Los valores devuelto por qual() son:


0: Calificador MEASURED
1: Calificador INVALID
2: Calificador MANUAL
(*2): Los valores devuelto por flags() son bitmapped:
0x01: BLOQUED // Indicacion de TAG bloqueado
0x02: ALARM_DISABLED // Indicacion de ALARMAS inhabilitadas
0x04: ALARM_PRESENT // Indicacion de alarma presente
0x08: PERSIST // Indicacion de TAG con valor persistente
(*3): La flag de cambio indica si TAG cambió desde la ultima lectura realizada por el módulo
0: El TAG no cambió desde la ultima lectura realizada
1: El TAG no cambió desde la ultima lectura realizada

Cuando se hace referencia de lectura a un TAG de tipo TEXT, el valor devuelto será el valor
ASCII correspondiente a la primer letra del valor del TAG.

Precedencia de operaciones: NSCALC interpreta las distintas operaciones soportadas en el


siguiente orden, evaluando en forma separada las que se encuentran entre paréntesis o forman
parte de un bloque if-then-else-endif:
1. Evaluación de funciones
2. Evaluación de operaciones bitwaise
3. Evaluación de operaciones aritméticas de potencia (^)
4. Evaluación de operaciones aritméticas de división y multiplicación (/*%)
5. Evaluación de operaciones aritméticas de suma y resta (+-)
6. Evaluación de operaciones relacionales en el siguiente orden ("<=", ">=", "<", ">",
"!=", "==").
7. Evaluación de operaciones lógicas en el siguiente orden ("and”, “or").

NSCALC soporta dos tipos de expresiones:

Expresiones que devuelven un resultado: En este tipo de expresiones, el resultado de la


expresión será asignado al TAG configurado en la correspondiente entrada de la tabla NS_IO:

Ejemplos:

- if (M_01+M_02) > 10 and (M_03+M_04) > 10 then


M_05
else
M_04
endif

Página 45 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

- S_01 bor S_02

- rand(100)

- qual(S_02)

Expresiones de asignación: En este tipo de expresiones, se asigna valores de TAGS


directamente dentro de la expresión. Puesto que estas expresiones no devuelven resultados, no
se escribirá valor en el TAG configurado en la correspondiente entrada de la tabla NS_IO a
menos que la expresión lo indique como asignación.
Las expresiones de asignación deberán estar finalizadas con un carácter ‘;’ (punto y coma) y
se permite realizar múltiples asignaciones.
En las expresiones de asignación se puede utilizar las siguientes opciones:
TAG = <expresion> escribe valor y calificador
TAG.value = <expresion> escribe solo valor, el calificador no es modificado.
TAG.qualifier = <expresion> escribe solo calificador, el valor no es modificado.
TAG.forced = <expresion> escribe valor y calificador en forma forzada

Ejemplos:

- if (M_01+M_02) > 10 and (M_03+M_04) > 10 then


TAG_1 = M_05;
else
TAG_1 = M_04;
endif

- TAG_1 = S_01 bor S_02;


TAG_2 = rand(100);
TAG1_3.qualifier = qual(S_02);

NSCALC interpretará expresiones formadas por múltiples bloques ‘if’ con múltiples
asignaciones, como la siguiente (las cuales generalmente son creadas en archivos script):

# Asignacion condicional if, else


if (M_01+M_02) > 10 and (M_03+M_04) > 10 then
TAG_1 = M_05;
else
TAG_1 = M_04;
endif

# Asignacion directa
TAG1_3 = qual(S_02);

# Asignacion condicional if
if rand(100) > 10 then
TAG_2 = M_05;
endif

Página 46 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.21 Configuración de NSLOG

La tarea NSLOG realiza el LOG en base de datos para un conjunto de TAGS.


NSLOG realiza dos tipos de registro en base de datos.

El tipo DUMP es un registro periódico en donde la tabla posee una columna por TAG a
registrar. La tabla puede ser configurada para poseer campos sectime, date_time y srv_id. Los
nombres de las columnas pueden ser los nombres de los TAGs o configurables para cada
columna.

El tipo SOE es un registro de cambios en los TAGS configurados. La tabla a crear posee las
siguientes columnas TAG_NAME, DESCRIPTION, VALUE, QUALIFIER; TIMESTAMP
(El tipo de dato de estas columnas es varchar(256)). La tabla puede ser configurada para
poseer adicionalmente campos sectime, date_time y srv_id.

Se configura de la siguiente manera:

1) El task_name es NSLOG y puede ser ingresado en el listado de tareas NS_TASKS.

2) Los TAGS se configuran en la tabla NS_IO de la siguiente manera:

Campo Descripción
io_tag_name Nombre del TAG
(sera tambien el nombre de la columna si io_address esta vacio)
io_driver NSLOG
io_address Nombre de la columna
(si se desea que sea diferente al nombre del TAG)
Valor Reservado: FORCE_SCAN. Indica que al forzar el valor del
TAG en 1, se requiere una ejecución inmediata del SCAN.
io_scan Scan Group (ver detalles abajo)
min_raw En el caso que el TAG sea de tipo M (Measure) este campo indica
la cantidad de decimales a registrar.
Valores posibles: 1- 9
Valor por defecto: 5
max_raw Este tag indica si el valor del TAG deberá ser registrado aún si su
calificador es inválido. Es válido solo cuando el SCAN
correspondiente tiene el campo varchar_fields=1.
Valores posibles:
0 – No registrar valor si el calificador es inválido
1 – Registrar el valor aún si el calificador es inválido

3) Los grupos de SCAN se configuran en el archivo NANOSCADA.INI que reside en


NSAPP. Cada grupo de SCAN poseerá una sección en este archivo con el nombre del grupo
de SCAN configurado en el campo io_scan de la tabla NS_IO, mas el prefijo SCAN_.
Por ejemplo si io_scan = R1, el archivo deberá tener una sección llamada[SCAN_R1].

Parámetro Descripción
type Tipo de registro que realizará NSLOG para este SCAN.
Valores posibles:
- DUMP
- SOE
Valor por defecto: DUMP
Página 47 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

period Periodo en segundos cada cuanto se insertará un registro (Solo


válido para tipo DUMP).
Si period <= 0, no se realizará registro periódico.
Valor por defecto: 60
table_name Nombre de la tabla (la base de datos será nanoscada)
Valor por defecto: El nombre del SCAN
sectime Indica si la tabla tendrá SECTIME: 0 (No), 1: (Si)
Valor por defecto: Si
date_time Indica si la tabla tendrá campo datetime: 0 (No), 1: (Si)
Valor por defecto: Si
srv_id Indica si la tabla tendrá campo srv_id: 0 (No), 1: (Si)
Valor por defecto: Si
live_days Indica la cantidad de días de almacenamiento de los datos.
Los datos correspondientes a días anteriores respecto de éste
parámetro serán eliminados mediante un procedimiento de limpieza
automático que se realiza una vez por día.
Para que el procedimiento de limpieza automática funcione, la tabla
deberá poseer el campo sectime.
Valor por defecto: 0 (No se realiza limpieza automática)
cleanup_time Indica la hora a la cual se realizará el procedimiento de limpieza
automática de datos antiguos para esta tabla.
El formato de este parámetro es: HH:MM (hora y minutos).
Valor por defecto: 12:00
initial_scan Indica si se deberá insertar un registro inmediatamente luego de
iniciar la tarea (Solo vlido para tipo DUMP).
Valores posibles:
0 - No se insertará registro al iniciar la tarea
1 - Se insertará registro al iniciar la tarea
Valor por defecto: 0
scan_offset Segundos a desplazar la ejecución del SCAN respecto de la hora del
sistema (Solo vlido para tipo DUMP).
Valores posibles: Valores enteros positivos, negativos o cero
Valor por defecto: 0
varchar_fields Indica si los el tipo de dato a crear en los campos de la base de datos
serán de acuerdo al tipo de dato del TAG o serán fijos de tipo
varchar(256) (Solo vlido para tipo DUMP).
Valores posibles:
0 – En este caso los tipos de datos de las columnas a crear serán los
siguientes:
DIGITAL – integer
INTEGER – integer
MEASURE – float
TEXT – varchar(256)
1 – En este caso el tipo de datos de las columnas correspondientes a
TAGs serán de tipo varchar(256). En esta condición NSLOG
registrará un valor vacío (‘’) si el calificador del TAG es
INVALIDO.
Valor por defecto: 0

Página 48 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

ignore_invalid En el caso que el tipo de registro sea SOE, mediante este campo se
indica si se deberán ignorar cambios en el TAG cuando el
calificador del mismo es INVALIDO.
Valores posibles:
0-No ignorar cambios cuando el calificador es INVALIDO
1-Ignorar cambios cuando el calificador es INVALIDO
Valor por defecto: 1

Ejemplo: En el siguiente ejemplo se insertará un registro cada 1 minuto a los 58 segundos de


cada minuto.

[SCAN_R1]
period=10
table_name=trend_log_10sec
sectime=1
date_time=0
srv_id=0
live_days=30
cleanup_time=11:10
scan_offset=-2
initial_scan=0
varchar_fields = 1

OBSERVACIONES:
• Registro de datos para tendencias: Deberán configurarse tags que no sean de tipo T,
con io_address vacío y grupo de scan con type=DUMP, sectime=1, date_time=1,
scan_offset=0 e initial_time = 0, varchar_fields = 1 (puede ser 0, pero se recomienda
1).
• NSLOG creará la tabla si no existe
• NSLOG agregará campos si no existen
• NSLOG no eliminará campos previamente creados

Página 49 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.22 Configuración de NSODBC

La tarea NSODBC permite ejecutar sentencias SQL a través de conexiones ODBC a bases de
datos y volcar los resultados de las mismas en TAGs de NanoScada 2010.

Cada instancia de NSODBC realizara las consultas SQL en forma serializada, por dicha razón
es posible que alguna aplicación requiera iniciar varias instancias de NSODBC a los efectos
de mejorar la performance.

Cada instancia de NSODBC se configura de la siguiente manera:

1) El task_name por defecto de NSODBC es NSODBC y puede ser cambiado ejecutando la


aplicación con el task_name requerido como línea de comando, por ejemplo:
NSODBC NSODBC1
ejecutará la tarea con task_name = NSODBC1

2) Las direcciones de los TAGS se configuran en la tabla NS_IO de la siguiente manera:

Campo Descripción
io_tag_name Nombre del TAG de NanoScada donde se escribirá el valor
io_driver task_name del driver (NSODBC, NSODBC1, etc)
io_address Número de query, columna, tipo (ver detalles abajo)
Valor Reservado: FORCE_SCAN. Indica que al forzar el valor del
TAG en 1, se requiere una ejecución inmediata del SCAN.
io_scan Scan Group (ver detalles abajo)
io_min_raw No utilizado
io_max_raw No utilizado
io_min_eng No utilizado
io_max_eng No utilizado

FORMATO io_address:

<nquery>:<ncolumn1>[,q.<ncolumn2>]

<nquery>: Número de query del SCAN


<ncolumn1>: Numero de columna que devuelve el valor a escribir
<ncolumn2>: Numero de columna que devuelve el calificador a escribir

los parámetros entre corchetes son opcionales

Ejemplos:
1:1 La primer columna del primer query indica el valor a escribir
1:1,q.2 La primer columna del primer query indica el valor a escribir y
la segunda columna indica el calificador a escribir.
2:4 La cuarta columna del segundo query indica el valor a escribir

Página 50 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

5) Los grupos de SCAN se configuran en el archivo NANOSCADA.INI que reside en


NSAPP. Cada grupo de SCAN poseerá una sección en este archivo con el nombre del grupo
de SCAN configurado en el campo io_scan de la tabla NS_IO, mas el prefijo SCAN_.
Por ejemplo si io_scan = R1, el archivo deberá tener una sección llamada[SCAN_R1].

Parámetro Descripción
period Periodo de SCAN (en segundos) para la ejecución de las sentencias
SQL.
Valor por defecto: 0 (lo mas rápido posible).
initial_scan Indica si se deberá realizar una ejecución de las sentencias
inmediatamente luego de iniciar la tarea.
Valores posibles:
0 - No se realizará ejecución al iniciar la tarea
1 - Se realizará ejecución al iniciar la tarea
Valor por defecto: 0
scan_offset Segundos a desplazar la ejecución del SCAN respecto de la hora del
sistema.
Valores posibles: Valores enteros positivos, negativos o cero
Valor por defecto: 0
dns DNS correspondiente a la conexión ODBC
user Usuario correspondiente a la conexión ODBC
pwd Password correspondiente a la conexión ODBC
database Base de datos correspondiente a la conexión ODBC
nqueries Cantidad de sentencias SQL que posee el SCAN
query_ncols_<n> Cantidad de columnas que devuelve la sentencia SQL enésima (n: 1-10)
query_sentence_<n> Sentencia SQL enésima (n: 1-10) a ejecutar.
En el caso que la sentencia SQL no devuelva ninguna columna, se
deberá configurar ncols = 0.
La sentencia SQL puede ser un select, insert, update, delete o la
ejecución de un stored procedure.

Ejemplo: El siguiente ejemplo configura un SCAN que posee dos sentencias SQL que
devuelven 10 columnas cada una.

[SCAN_ODBC1]
period = 10
scan_offset=0
initial_scan=0
DNS=nanoscada
USER=nanoscada
PWD=nanoscada
DATABASE=nanoscada
nqueries = 2
query_ncols_1 = 10
query_sentence_1 = select top 1 NSLOG_AI_1, NSLOG_AI_2, NSLOG_AI_3,
NSLOG_AI_4, NSLOG_AI_5, NSLOG_AI_6, NSLOG_AI_7, NSLOG_AI_8, NSLOG_AI_9,
NSLOG_AI_10 from trend_log_10sec order by sectime desc
query_ncols_2 = 10
query_sentence_2 = select top 1 NSLOG_AI_11, NSLOG_AI_12, NSLOG_AI_13,
NSLOG_AI_14, NSLOG_AI_15, NSLOG_AI_16, NSLOG_AI_17, NSLOG_AI_18,
NSLOG_AI_19, NSLOG_AI_20 from trend_log_10sec order by sectime desc

Página 51 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

Ejemplos de sentencias SQL:

Tipo Select:
select top 1 NSLOG_AI_1, NSLOG_AI_2, NSLOG_AI_3, NSLOG_AI_4, NSLOG_AI_5,
NSLOG_AI_6, NSLOG_AI_7, NSLOG_AI_8, NSLOG_AI_9, NSLOG_AI_10 from
trend_log_10sec order by sectime desc
query_ncols_2 = 10
query_sentence_2 = select top 1 NSLOG_AI_11, NSLOG_AI_12, NSLOG_AI_13,
NSLOG_AI_14, NSLOG_AI_15, NSLOG_AI_16, NSLOG_AI_17, NSLOG_AI_18,
NSLOG_AI_19, NSLOG_AI_20 from trend_log_10sec order by sectime desc

Tipo Delete (log_table es el nombre de una tabla)


delete log_table

Tipo ejecución de stored procedure (log_insert es un stored procedure):


log_insert 'a', 'NSODBC', Mensaje de NSODBC'

6) El archivo NANOSCADA.INI puede incluir una sección con el nombre de la tarea y los
siguientes parámetros generales de toda la tarea:

Parámetro Descripción
use_forced_write Indica si el driver NSODBC realizará escrituras forzadas cuando escriba
en NanoScada los valores de los elementos leídos por ODBC.
Valores posibles:
0 – Se realizarán escrituras normales
1 – Se realizarán escrituras forzadas (producen cambio en la
estampa de tiempo y producen evento de cambio en el valor del TAG)
Valor por defecto: 0

Página 52 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.23 Configuración de NSCSV

La tarea NSCSV permite obtener datos desde un archivo CVS (archivo de texto separado por
comas) y volcarlos en TAGs de NanoScada 2010.

Cada instancia de NSCSV realizará las operaciones en forma serializada, por dicha razón es
posible que alguna aplicación requiera iniciar varias instancias de NSCSV a los efectos de
mejorar la performance.

Cada instancia de NSCSV se configura de la siguiente manera:

1) El task_name por defecto de NSCSV es NSCSV y puede ser cambiado ejecutando la


aplicación con el task_name requerido como línea de comando, por ejemplo:
NSCSV NSCSV1
ejecutará la tarea con task_name = NSCSV1

2) Las direcciones de los TAGS se configuran en la tabla NS_IO de la siguiente manera:

Campo Descripción
io_tag_name Nombre del TAG de NanoScada donde se escribirá el valor
io_driver task_name del driver (NSCSV, NSCSV1, etc)
io_address Número de fila, columna, tipo (ver detalles abajo)
Valor Reservado: FORCE_SCAN. Indica que al forzar el valor del
TAG en 1, se requiere una ejecución inmediata del SCAN.
io_scan Scan Group (ver detalles abajo)
io_min_raw No utilizado
io_max_raw No utilizado
io_min_eng No utilizado
io_max_eng No utilizado

FORMATO io_address:

<nrow>:<ncolumn1>[,q.<ncolumn2>]

<nrow>: Número de fila (renglón dentro del archivo)


<ncolumn1>: Numero de columna que devuelve el valor a escribir
<ncolumn2>: Numero de columna que devuelve el calificador a escribir

los parámetros entre corchetes son opcionales

Ejemplos:
1:1 La primer columna del primer renglón indica el valor a escribir
1:1,q.2 La primer columna del primer renglón indica el valor a escribir y
la segunda columna indica el calificador a escribir.
2:4 La cuarta columna del segundo renglón indica el valor a escribir

Página 53 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

5) Los grupos de SCAN se configuran en el archivo NANOSCADA.INI que reside en


NSAPP. Cada grupo de SCAN poseerá una sección en este archivo con el nombre del grupo
de SCAN configurado en el campo io_scan de la tabla NS_IO, mas el prefijo SCAN_.
Por ejemplo si io_scan = R1, el archivo deberá tener una sección llamada[SCAN_R1].

Parámetro Descripción
period Periodo de SCAN (en segundos) para la ejecución de las lecturas.
El valor 0 (cero) indica que el SCAN será ejecutado solo a través del
TAG FORCE_SCAN.
Valor por defecto: 1
initial_scan Indica si se deberá realizar una ejecución de las sentencias
inmediatamente luego de iniciar la tarea.
Valores posibles:
0 - No se realizará ejecución al iniciar la tarea
1 - Se realizará ejecución al iniciar la tarea
Valor por defecto: 0
scan_offset Segundos a desplazar la ejecución del SCAN respecto de la hora del
sistema.
Valores posibles: Valores enteros positivos, negativos o cero
Valor por defecto: 0
filename Nombre completo del archivo CSV

Ejemplo:

[SCAN_CSV1]
period = 10
scan_offset=0
initial_scan=0
filename=C:\csvfile.csv

6) El archivo NANOSCADA.INI puede incluir una sección con el nombre de la tarea y los
siguientes parámetros generales de toda la tarea:

Parámetro Descripción
use_forced_write Indica si el driver NSCSV realizará escrituras forzadas cuando escriba en
NanoScada los valores de los elementos leídos.
Valores posibles:
0 – Se realizarán escrituras normales
1 – Se realizarán escrituras forzadas (producen cambio en la
estampa de tiempo y producen evento de cambio en el valor del TAG)
Valor por defecto: 0
separator Indica el carácter de separación utilizado
Valor por defecto: , (coma)

Página 54 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.24 Configuración de NSMAIL

La tarea NSMAIL permite enviar emails ante determinados eventos.

NSMAIL utiliza la siguiente aplicación GNU para el envío de correo electrónico a través de
un servidor smtp: sendemail-1.56 by Brandon Zehm. Esta aplicación deberá estar
instalada en el equipo donde se ejecuta NanoScada.

Los eventos que determinan el envío de mails están basados en valores de TAGS de
NanoScada 2010. De esta manera se puede configurar que cuando un TAG tome un
determinado valor durante una cantidad de segundos se envíe un correo electrónico a un
conjunto de cuentas de correo.

Los mails enviados por NSMAIL poseen el siguiente formato:

Subject: <TAG_DESCRIPTION> o
<TAG_DESCRIPTION>: <TAG_LABEL >

Message body: Event: <TAG_DESCRIPTION>


Value: <TAG_LABEL>
Date and Time: <TAG_TIMESTAMP>

Los títulos “Event”, “Value” y “Date and Time” son configurables.

NSMAIL se configura de la siguiente manera:

1) El task_name es NSMAIL y puede ser ingresado en el listado de tareas NS_TASKS.

2) Las TAGS que generarán envío de emails se configuran en la tabla NS_IO de la siguiente
manera:

Campo Descripción
io_tag_name Nombre del TAG de NanoScada.
io_driver NSMAIL
io_address Valor y tiempos para el envío de mails (ver detalles abajo)
io_scan Scan Group (ver detalles abajo)
io_min_raw
io_max_raw
io_min_eng
io_max_eng

El campo io_address determina la condición de envío de mails. Para TAGs de tipo TEXTO la
condición de envío es por cambio (a un valor distinto de cadena vacía) en forma inmediata.
Los TAGS de otros tipos pueden ser configurados de la siguiente manera:

FORMATO io_address:

<value>;<adelay>[;<ndelay>]
<value>: Valor que produce el envío del mail.
<adelay>: Tiempo en segundos que debe estar presente el valor antes de
que sea enviado el mail.
<ndelay>: Tiempo en segundos que debe desaparecer el valor de envío antes
Página 55 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

de que se vuelva a monitorear. Este parámetro opcional es útil en los


casos en que se dan situaciones transitorias que no debe generar
envío de mail.

Ejemplos:
1;30;0 Cada vez que TAG tome el valor 1 durante 30 segundos se enviara mail.
2;30;10 Cada vez que TAG tome el valor 2 durante 30 segundos se enviara mail.
Además cuando tome otro valor por un tiempo menor a 10 segundos antes de
volver a 2, no se enviará mail. Se asume que es una situación transitoria que no
debe generar envío de mail.

3) Los grupos de SCAN se configuran en el archivo NANOSCADA.INI que reside en


NSAPP. Cada grupo de SCAN poseerá una sección en este archivo con el nombre del grupo
de SCAN configurado en el campo io_scan de la tabla NS_IO, mas el prefijo SCAN_.
Por ejemplo si io_scan = R1, el archivo deberá tener una sección llamada[SCAN_R1].

Parámetro Descripción
period Periodo de SCAN (en segundos) para la verificación de valores.
Valor por defecto: 0 (o mas rápido posible).
initial_scan Indica si se deberá realizar la verificación de valores inmediatamente
luego de iniciar la tarea.
Valores posibles:
0 - No se realizará ejecución al iniciar la tarea
1 - Se realizará ejecución al iniciar la tarea
Valor por defecto: 0
scan_offset Segundos a desplazar la ejecución del SCAN respecto de la hora del
sistema.
Valores posibles: Valores enteros positivos, negativos o cero
Valor por defecto: 0
repeat_period Indica la cantidad de segundos que se debe esperar antes de volver a
enviar mail si la condición permanece.
Valores posibles:
0 - No se repite el envío de mails
N – Cantidad de segundos entre mails sucesivos.
Valor por defecto: 0
label_in_subject Indica el formato del asunto (Subject) del mensaje:
Valores posibles:
0 – El Subject poseerá solo la descripción del TAG
1 – El Subject poseerá la descripción y el valor del TAG
Valor por defecto: 0
from Nombre de la cuenta de email a especificar como remitente.
Parámetro obligatorio, no posee valor por defecto.
to Cuenta de email de destinatario del mail. En caso ser múltiples
destinatarios, separarlos con un espacio.
Si este parámetro no es configurado, NSMAIL buscará los destinatarios
de los mails en la tabla configurada en el parámetro
EMAIL_DEST_TABLE de la sección NSMAIL del archivo
NANOSCADA.INI.
Esta tabla deberá tener las siguientes columnas:
io_scan: varchar (15)
email_address: varchar (63)

Página 56 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

smtp Servidor SMTP y puerto (opcional) donde enviar el mail.


Formato: <smpt_server>[:port]
Parámetro obligatorio, no posee valor por defecto.
user Nombre de usuario para autenticación en el servidor SMTP, si éste la
requiere.
pwd Password de usuario para autenticación en el servidor SMTP, si éste la
requiere.
tls Indica si se debe utilizar TLS.
Valores posibles:
0 – No
1 – Si
Valor por defecto: 0

Ejemplo:

[SCAN_MAIL1]
repeat_period = 0
label_in_subject = 0
from=horaciozabala@gmail.com
to=hzabala@trsi.com.ar horaciozabala@hotmail.com
smtp=smtp.gmail.com:587
user=horaciozabala@gmail.com
pwd=mypassword
tls=1

4) El archivo NANOSCADA.INI puede incluir una sección con el nombre de la tarea y los
siguientes parámetros generales de toda la tarea:

Parámetro Descripción
SendEmail Indica el path completo y nombre del programa ejecutable
correspondiente a la aplicación de envío de mails “sendemail-1.56 by
Brandon Zehm”
Valor por defecto: sendEmail.exe
event Etiqueta a utilizar en cuerpo (body) del mensaje para indicar la
descripción del evento.
Valor por defecto: “Event:”
value Etiqueta a utilizar en cuerpo (body) del mensaje para indicar el valor del
evento.
Valor por defecto: “Value:”
date_time Etiqueta a utilizar en cuerpo (body) del mensaje para indicar la fecha y
hora del evento.
Valor por defecto: “Date and Time:”

[NSMAIL]
SendEmail=E:\util\sendEmail\sendEmail.exe
event=Codigo de evento:
value=Valor del evento:
date_time=estampa de tiempo del evento:

Página 57 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.25 Configuración de NSPERS

La tarea NSPERS permite almacenar en disco la información correspondiente a TAGS


denominados persistentes, de manera tal que mantengan su valor al reiniciar NanoScada 2010
o ante problemas de alimentación.

Se configura de la siguiente manera:

1) El task_name es NSPERS y puede ser ingresado en el listado de tareas NS_TASKS.

2) Los TAGS se configuran en la tabla NS_IO de la siguiente manera:

Campo Descripción
io_tag_name Nombre del TAG que se desea hacer persistente.
io_driver NSPERS
io_address Valor Reservado: FORCE_SCAN. Indica que al forzar el valor del
TAG en 1, se requiere una ejecución inmediata del SCAN.
io_scan Scan Group (ver detalles abajo)

3) Los grupos de SCAN se configuran en el archivo NANOSCADA.INI que reside en


NSAPP. Cada grupo de SCAN poseerá una sección en este archivo con el nombre del grupo
de SCAN configurado en el campo io_scan de la tabla NS_IO, mas el prefijo SCAN_.
Por ejemplo si io_scan = R1, el archivo deberá tener una sección llamada[SCAN_R1].

Parametro Descripción
period Periodo en segundos cada cuanto se actualizará en disco el valor de
los TAGS persistentes.
La actualización efectiva en disco será siempre ante cambios.
Valores posibles: Valores enteros positivos o cero.
Valor por defecto: 1
initial_scan Indica si se deberá actualizar en disco inmediatamente luego de
iniciar la tarea.
Valores posibles:
0 - No actualizar en disco al iniciar la tarea
1 - actualizar en disco al iniciar la tarea
Valor por defecto: 1
scan_offset Segundos a desplazar la ejecución del SCAN respecto de la hora del
sistema.
Valores posibles: Valores enteros positivos, negativos o cero
Valor por defecto: 0

[SCAN_R1]
period=0

Página 58 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.26 Configuración de NSCONTROLS

NSCONTROLS es un grupo de objectos ActiveX que permiten la animación gráfica de TAGs


de la RTDB así como también visualizar tendencias y alarmas activas e históricas.

Algunos controles permiten realizar animaciones en función de la calidad de un TAG. En


tales casos la codificación de calidades utilizada es la siguiente:

MEASURED: 0
INVALID: 1
MANUAL: 2

3.26.1 NSMain

Este objeto deberá ser insertado (solo una vez) en cada formulario en el cual se inserte algún
otro control Active X de NanoScada. Realiza la inicialización de variables, control de la tarea
y actualiza la información de todos los controles.

Propiedades Descripción
m_ns_interval Periodo de en milisegundos cada cuanto se actualizan los controles
insertados en el formulario.
Valor por defecto: 1000 msec.

Página 59 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.26.2 NSTagDisplay

Este objeto permite la animación de un recuadro texto en función del valor, calidad, estampa
de tiempo, unidades, descripción, etiquetas de TAGS de la RTDB

Las propiedades de este control son accesibles mediante la pantalla de propiedades del
mismo.

Eventos Descripción
nsClick Cuando de realiza un click sobre del control, se enviará un evento a
(tag_name, la aplicación indicando el nombre del tag (tag_name), el tag_id y el
tag_id, valor (numérico flotante).
value) El tag indicado es el que corresponde a la Animación General.
nsMouseUp Cuando de realiza un MouseUp sobre del control, se enviará un
(tag_name, evento a la aplicación indicando el nombre del tag (tag_name), el
tag_id, tag_id y el valor (numérico flotante) y las carácterísticas del click
value, (Button, Shift, X, Y)
Button, El tag indicado es el que corresponde a la Animación General.
Shift,
X,
Y)
nsMouseDown Cuando de realiza un MouseDown sobre del control, se enviará un
(tag_name, evento a la aplicación indicando el nombre del tag (tag_name), el
tag_id, tag_id y el valor (numérico flotante) y las carácterísticas del click
value, (Button, Shift, X, Y)
Button, El tag indicado es el que corresponde a la Animación General.
Shift,
X,
Y)

Página 60 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.26.3 NSText

Este objeto permite la animación de un recuadro texto fijo en función del valor, calidad,
estampa de tiempo, unidades, descripción, etiquetas de TAGS de la RTDB

Las propiedades de este control son accesibles mediante la pantalla de propiedades del
mismo.

Eventos Descripción
nsClick Cuando de realiza un click sobre del control, se enviará un evento a
(tag_name, la aplicación indicando el nombre del tag (tag_name), el tag_id y el
tag_id, valor (numérico flotante).
value) El tag indicado es el que corresponde a la Animación por Text List.
nsMouseUp Cuando de realiza un MouseUp sobre del control, se enviará un
(tag_name, evento a la aplicación indicando el nombre del tag (tag_name), el
tag_id, tag_id y el valor (numérico flotante) y las carácterísticas del click
value, (Button, Shift, X, Y)
Button, El tag indicado es el que corresponde a la Animación por Text List.
Shift,
X,
Y)
nsMouseDown Cuando de realiza un MouseDown sobre del control, se enviará un
(tag_name, evento a la aplicación indicando el nombre del tag (tag_name), el
tag_id, tag_id y el valor (numérico flotante) y las carácterísticas del click
value, (Button, Shift, X, Y)
Button, El tag indicado es el que corresponde a la Animación por Text List.
Shift,
X,
Y)

Página 61 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.26.4 NSShape

Este objeto permite la animación de una figura geométrica (rectangular o circular) en función
del valor, calidad, estampa de tiempo, unidades, descripción, etiquetas de TAGS de la RTDB

Las propiedades de este control son accesibles mediante la pantalla de propiedades del
mismo.

3.26.5 NSFill

Este objeto permite la animación del relleno de una figura rectangular en función del valor de
TAGS de la RTDB. El relleno puede ser horizontal o vertical en ambos sentidos. También se
permite animación del borde y la visibilidad del objeto.

Las propiedades de este control son accesibles mediante la pantalla de propiedades del
mismo.

3.26.6 NSBMP

Este objeto permite la visualización de una imagen (archivo mapa de bits) en función del
valor o calificador de un TAG de la RTDB

Las propiedades de este control son accesibles mediante la pantalla de propiedades del
mismo.

Eventos Descripción
nsClick Cuando de realiza un click sobre del control, se enviará un evento a
(tag_name, la aplicación indicando el nombre del tag (tag_name), el tag_id y el
tag_id, valor (numérico flotante).
value) El tag indicado es el que corresponde a la Animación por BMP
List.
nsMouseUp Cuando de realiza un MouseUp sobre del control, se enviará un
(tag_name, evento a la aplicación indicando el nombre del tag (tag_name), el
tag_id, tag_id y el valor (numérico flotante) y las carácterísticas del click
value, (Button, Shift, X, Y)
Button, El tag indicado es el que corresponde a la Animación por BMP
Shift, List.
X,
Y)
nsMouseDown Cuando de realiza un MouseDown sobre del control, se enviará un
(tag_name, evento a la aplicación indicando el nombre del tag (tag_name), el
tag_id, tag_id y el valor (numérico flotante) y las carácterísticas del click
value, (Button, Shift, X, Y)
Button, El tag indicado es el que corresponde a la Animación por BMP
Shift, List.
X,
Y)

Página 62 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.26.7 NSAlarmManager

Este objeto permite la visualización y administración de alarmas activas e históricas.

Propiedades Descripción
m_ns_dsn Indica el DSN sobre el cual se conecta NSAlarmManager a la DB.
En caso que comience con un * significa que “m_ns_dsn” cuyo
contenido indica el nombre del DSN a utilizar.
m_ns_filter Indica el filtro a aplicar a la búsqueda.
Si la expresión del filtro posee la cadena “alarm_state” se asume
que se visualizan alarmas activas, caso contrario se asume que se
visualizan alarmas históricas.
Los valores recomendados son:
“alarm_state <> ' '”: Para ver alarmas activas o no reconocidas
“”: Para visualizar alarmas historicas
m_ns_srv_net_id Indica el net_id a utilizar para leer y escribir las variables de alarma
de la RTDB: “NS_ALARM_CHANGE”, “NS_RUN_ID”,
“NS_SRV_ID” y “NS_ALARM_ACK”.
Por ejemplo si esta propiedad posee el valor “SRV_ALA” utilizará
los tags:
“SRV_ALA:NS_ALARM_CHANGE”,
“SRV_ALA:NS_RUN_ID”, “SRV_ALA:NS_SRV_ID” y
“SRV_ALA:NS_ALARM_ACK”.

Métodos Descripción
GetRow(idx) Obtiene el contenido de la fila ‘idx’ (la fila conteniendo los
nombres de los campos es la idx=0). Los valores de las columnas
estarán separados por el carácter de delimitación configurado en el
parámetro char_delimiter (ver abajo)

En el archivo nscontrols.ini, el cual reside en la carpeta de la aplicación, en la seccion


[NsAlarmManager], se pueden configurar los siguientes parámetros (los cuales son válidos
para todos los controles NsAlarmManager de la aplicación:

Propiedades Descripción
odbc_user Nombre de usuario a utilizar en la conexión ODBC.
Valor por defecto: nanoscada
odbc_pwd Password a utilizar en la conexión ODBC.
Valor por defecto: nanoscada
odbc_db Nombre de la base de datos a utilizar en la conexión ODBC.
Valor por defecto: nanoscada
active_select_query Sentencia SQL a utilizar para visualizar alarmas activas.
Valor por defecto:
CONVERT(varchar(32), initial_time, 103) + ' ' +
CONVERT(varchar(32), initial_time, 108) + '.' +
REPLACE(STR(initial_msec, 3), ' ', '0') AS 'Alarm Time',
tag_name AS 'TAG', "
tag_desc AS 'Alarm Message',
alarm_label AS 'Status',
alarm_seq AS 'Seq.',
alarm_state AS 'State'

Página 63 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

active_format Nombres de las columnas (separadas por el carácter | -ASCII 124)


para visualización de alarmas activas.
Valor por defecto:
Alarm Time|TAG|Alarm Message|Status|Seq|State
active_col0_width a Ancho de las columnas para la visualización de alarmas activas.
active_col9_width Valores por defecto:
active_col0_width = 2300
active_col1_width = 1500
active_col2_width = -7300
active_col3_width = 1500
active_col4_width = 1000
active_col5_width = 1000
active_col6_width = 1000
active_col7_width = 1000
active_col8_width = 1000
active_col9_width = 1000
active_font_size Tamaño de letra a utilizar para la visualización de alarmas activas.
Valores por defecto: 10
historical_select_query Sentencia SQL a utilizar para visualizar alarmas históricas.
Valor por defecto:
CONVERT(varchar(32), initial_time, 103) + ' ' +
CONVERT(varchar(32), initial_time, 108) + '.' +
REPLACE(STR(initial_msec, 3), ' ', '0') AS 'Alarm Time',
normal_time AS 'Normal Time', tag_name AS 'TAG', tag_desc AS
'Alarm Message', alarm_label AS 'Status'
historical _format Nombres de las columnas (separadas por el carácter | -ASCII 124)
para visualización de alarmas históricas.
Valor por defecto:
Alarm Time|Normal Time|TAG|Alarm Message|Status
historical _col0_width a Ancho de las columnas para la visualización de alarmas históricas.
historical _col9_width Valores por defecto:
historical_col0_width = 2300
historical_col1_width = 2000
historical_col2_width = 1500
historical_col3_width = -7300
historical_col4_width = 1500
historical_col5_width = 1000
historical_col6_width = 1000
historical_col7_width = 1000
historical_col8_width = 1000
historical_col9_width = 1000
historical _font_size Tamaño de letra a utilizar para la visualización de alarmas
históricas.
Valores por defecto: 10
char_delimiter Indica el carácter de separación a utilizar por el método GetRow().
Valores por defecto: , (coma).

Página 64 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

char_prefix Indica si se debe agregar un espacio al comienzo del valor de cada


columna reportada por la función GetRow().
Esto permite evitar la conversión de formato cuando se utiliza esta
función para la exportación de datos a Excel.
Valores posibles:
0 – No agregar espacio
1 – Agregar un espacio
2 – Agregar dos espacios
Valores por defecto: 1

Página 65 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.26.8 NSDBBrowser

Este objeto permite la visualización del contenido de una tabla en la base de datos de
nanoscada.

Propiedades Descripción
ns_dsn Indica el DSN sobre el cual se conecta NSDBBrowser a la DB.
En caso que comience con un * significa que “m_ns_dsn” cuyo
contenido indica el nombre del DSN a utilizar.
Valor por defecto: No Posee
ns_parms Indica usuario, password y nombre de la base de datos a conectar.
Formato:
<user>#<password>#<database>
Valor por defecto : nanoscada#nanoscada#nanoscada
ns_query Indica la sentencia SQL a ejecutar para obtener los datos.
Valor por defecto: No Posee
ns_width Permite especificar el ancho de cada columna.
Para asignar el ancho de las columnas utilizar la siguiente rutina de
ejemplo:
Dim w
w = Array(4000, 8000, 0)
nsDBBrowser1.ns_width = w

Métodos Descripción
Refresh() Permite requerir una actualización de los datos.
GetRow(idx) Obtiene el contenido de la fila ‘idx’ (la fila conteniendo los
nombres de los campos es la idx=0). Los valores de las columnas
estarán separados por el carácter de delimitación configurado en el
parámetro char_delimiter (ver abajo)

Eventos Descripción
nsClick(row_info) Cuando se realiza un doble click sobre una fila del control
NSDBBrowser, se enviará este evento, indicando en row_info el
contenido de la fila donde las columnas estarán separados por el
carácter ‘,’ (coma).

En el archivo nscontrols.ini, el cual reside en la carpeta de la aplicación, en la seccion


[NSDBBrowser], se pueden configurar los siguientes parámetros (los cuales son válidos para
todos los controles NsdbBrowser de la aplicación:

Propiedades Descripción
char_delimiter Indica el carácter de separación a utilizar por el método GetRow().
Valores por defecto: , (coma).

Página 66 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

char_prefix Indica si se debe agregar un espacio al comienzo del valor de cada


columna reportada por la función GetRow().
Esto permite evitar la conversión de formato cuando se utiliza esta
función para la exportación de datos a Excel.
Valores posibles:
0 – No agregar espacio
1 – Agregar un espacio
2 – Agregar dos espacios
Valores por defecto: 1

Página 67 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

NSTrend

Este objeto permite la visualización de gráficos de tendencia histórica y en tiempo real.

Propiedades Descripción
m_ns_dsn Indica el DSN sobre el cual se conecta NSTrend a la DB.
En caso que comience con un * significa que “m_ns_dsn” cuyo
contenido indica el nombre del DSN a utilizar.
m_ns_db Indica el nombre de la base de datos de la cual extraer los datos.
m_ns_table Indica el nombre de la tabla de la cual extraer los datos.
m_ns_tag1 Indica el nombre de columna (y TAG) para graficar el Pen1
m_ns_tag2 Indica el nombre de columna (y TAG) para graficar el Pen2
m_ns_tag3 Indica el nombre de columna (y TAG) para graficar el Pen3
m_ns_tag4 Indica el nombre de columna (y TAG) para graficar el Pen3
m_ns_begin_time Indica el tiempo en segundos (SECTIME) desde el cual comenzar
la visualización de los datos. Si este parámetro es cero, significa
visualización de datos en tiempo real (refresco automático)
m_ns_display_time Indica la cantidad de tiempo, en segundos, a mostrar en el gráfico.
m_ns_refresh_time Indica la período de refresco automático, en segundos.
m_ns_font_size Indica el tamaño de la fuente a utilizar en los textos mostrados.

Métodos Descripción
get_columns () Esta métododevuelve un elemento tipo ADODB.Recordset
conteniendo los nombres de las columnas de la tabla que se está
utilizando para realizar el gráfico de tendencias.

En el archivo nscontrols.ini, el cual reside en la carpeta de la aplicación se pueden configurar


los siguientes parámetros (los cuales son válidos para todos los controles NsTrend de la
aplicación:

Propiedades Descripción
odbc_user Nombre de usuario a utilizar en la conexión ODBC.
Valor por defecto: nanoscada
odbc_pwd Password a utilizar en la conexión ODBC.
Valor por defecto: nanoscada

Página 68 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

3.27 Configuración de NSAPISRV

La tarea NSAPISRV en conjunto con NSAPICNT forman una API de acceso remoto a la
RTDB de NanoScada. De esta manera clientes remotos desarrollados utilizando NSAPICNT
(y también NSVBAPI o NSCONTROLS.OCX) pueden acceder a la RTDB de un NanoScada
que no esta corriendo en el equipo local (estación remota).

NSAPISRV se configura de la siguiente manera:

1) El task_name es NSAPISRV y puede ser ingresado en el listado de tareas NS_TASKS.

2) En el archivo NANOSCADA.INI de la aplicación pueden configurarse los siguientes


parámetros:

Parámetro Descripción
max_conn Máxima cantidad de conexiones concurrentes a soportar.
Valor por defecto: 10
tcp_port Puerto TCP en el cual espera conexiones de clientes remotos.
Valor por defecto: 7010
scan_period Tiempo (en segundos) de scan para el refresco de TAGs.
Valor por defecto: 0 (Lo mas rápido posible)
iecal_timer Granularidad (en milisegundos) del timer de administración de red.
Valores posibles: 200 – 1000.
Valor por defecto: 1000
Valor recomendado: 200

Ejemplo:

[NSAPISRV]
max_conn=10
tcp_port=7010
scan_period=0
iecal_timer=200

LIMITACIONES:
• NSAPISRV reportará solo los primeros 60 caracteres de la descripción de los TAGs.

3) Las conexiones de los clientes remotos serán de solo lectura a menos que en la sección
[NSAPISRV] se encuentre configurado un parámetro con el nombre de la estación remota
(parámetro station_name en la sección correspondiente a la tarea remota) con el valor
asignado en 0 (cero).

Ejemplo: En el siguiente ejemplo, la estación llamada STATION_1 tendrá acceso de lectura y


escritura, mientras que el resto de las estaciones tendrán acceso de solo lectura.

[NSAPISRV]
STATION_1=0

Página 69 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

4 NANOSCADA 2010 REMOTE CLIENT

NanoScada 2010 Remote Client es un conjunto de aplicaciones que permiten ejecutar la


misma aplicación IHM que corre en un sistema NanoScada 2010 en un equipo remoto
conectado por TCPIP al sistema NanoScada 2010.

4.1 Instalación de NanoScada 2010 Remote Client

Requisitos para la instalación:

• Equipo PC con sistema operativo Windows XP profesional o similar (2000, 2003,


etc.).

La instalación de NanoScada 2010 Remote Client se realiza mediante un asistente de


instalación, el cual permitirá seleccionar la carpeta de destino para los archivos de NanoScada
2010 Remote Client, luego de los primeros pasos de la instalación aparecerá el siguiente
mensaje:
***************************************************
** **
** NANOSCADA 2010 REMOTE CLIENT INSTALLATION **
** **
***************************************************
Do you want to create NanoScada ODBC DSN? (Y/N)? Y

Presionar ENTER para crear el acceso ODBC al sistema NanoScada (recomendado).

Aparecerá luego el siguiente mensaje:

Ingrese el nombre del servidor NanoScada:

Ingresar el nombre del equipo o la dirección IP correspondiente al equipo donde corre


NanoScada 2010.

A continuación se creará una aplicación de ejemplo, por lo cual aparecerá una nueva pantalla
pidiendo que se vuelva a ingresar el nombre del equipo o la dirección IP correspondiente al
equipo donde corre NanoScada 2010.

NanoScada 2010 - New remote client application

Creando archivos ...

Ingrese el nombre del servidor NanoScada 2010:

Ingresar el nombre del equipo o la dirección IP correspondiente al equipo donde corre


NanoScada 2010.

Página 70 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

4.2 Creación de una aplicación NanoScada 2010 Remote Client

Luego de la instalación de NanoScada 2010 Remote Client se habrá dentro de la carpeta


creado una carpeta como la siguiente:

Dentro de la carpeta Sample Application se encuentran los accesos directos para configurar e
iniciar una aplicación NanoScada Remote Client de ejemplo.

El icono New NanoScada Remote Client permite crear una nueva aplicación remota.
Al presionarlo aparecerá una ventana mostrando el siguiente mensaje:

NanoScada 2010 - New remote client application

Atención: Utilice comillas si el destino posee espacios

Ingrese el nombre de la carpeta de destino:

Ingresar el nombre de la carpeta de destino y presionar ENTER.

Aparecerá una nueva pantalla pidiendo ingresar el nombre del equipo o la dirección IP
correspondiente al equipo donde corre NanoScada 2010.
Ingrese el nombre del servidor NanoScada 2010:

Ingresar el nombre del equipo o la dirección IP correspondiente al equipo donde corre


NanoScada 2010.

Una vez creada la aplicación aparecerá un nuevo icono dentro de la carpeta de accesos
directos de NanoScada 2010 Remote Client correspondiente a la nueva aplicación creada.

Página 71 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

Observación: Al momento de la instalación de NanoScada 2010 se creará una aplicación de


ejemplo llamada Sample Application.

Esta carpeta de aplicación posee todos los elementos necesarios para configurar e iniciar una
aplicación NanoScada 2010 Remote Client.

4.3 Configurando una aplicación Nanoscada 2010 Remote Client

NanoScada 2010 Remote Client requiere para su funcionamiento de tres elementos básicos:

1) Archivo de configuración (NANOSCADA.INI)


2) Aplicación IHM (NSGRAPH)

El archivo de configuración NANOSCADA.INI es un archivo de parámetros dividido en


secciones. Desde la carpeta de aplicación, este archivo es accedido mediante el icono
NanoScada Configuration File.

El archivo NANOSCADA.INI deberá poseer una sección llamada [NSGRAPH] con los
siguientes parámetros (además de los parámetros propios de la aplicación):

Parámetro Descripción
use_networked_api Esta flag indica a la aplicación IHM que deberá utilizar la API de
acceso remoto.
Valores posibles:
0: Utilizar API local (Válido para aplicaciones IHM que se ejecutan
en el mismo equipo donde corre NanoScada 2010)
1: Utilizar API de acceso remoto (Válido para aplicaciones IHM
que se ejecutan en unn equipo diferente al equipo donde corre
NanoScada 2010)
host_name Dirección IP o Host Name del servidor NanoScada remoto.
Valor por defecto: 127.0.0.1
tcp_port Puerto TCP al cual conectar.
Valor por defecto: 7010
host_name_1 a Direcciónes IPs o Host Names de los servidores NanoScada
host_name_4 remotos para el caso de LAN múltiples o servidores redundantes.
Valor por defecto: <vacío>
Página 72 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

tcp_port_1 a Puertos TCP al cual conectar para el caso de LAN múltiples o


tcp_port_4 servidores redundantes.
Valor por defecto: 7010
station_name Nombre de la estación (utilizada solo a los efectos de TACE).
Valor por defecto: NSAPICNT
iecal_timer Granularidad (en milisegundos) del timer de administración de red.
Valores posibles: 200 – 1000.
Valor por defecto: 1000
Valor recomendado: 200

Ejemplo:

[NSGRAPH]
use_networked_api = 1
host_name=PC_HZABALA
tcp_port=7010
station_name=PC_GANATRONE
iecal_timer = 200

Tener en cuenta que las conexiones a través de Nanoscada 2010 Remote Client serán de solo
lectura a menos que sean configuradas en el NanoScada remoto para tener acceso completo.

La aplicación IHM deberá ser la misma que se ejecuta en el sistema NanoScada y debe ser
copiada en la carpeta de destino de la aplicación.

Al momento de crear una aplicación se creará el archivo NANOSCADA.INI (ubicado en el


directorio de destino de la aplicación). También se instala una aplicación IHM por defecto.

Para crear una aplicación NanoScada se deberá seguir el siguiente procedimiento:

1. Crear una nueva aplicación utilizando el icono New NanoScada Application

2. Opcionalmente podrán modificarse los parámetros del archivo NSNOSCADA.INI


ubicado en el directorio de la aplicación o bien a través del icono NanoScada
Configuration File. Ver referencias en las siguientes secciones.

3. Copiar la aplicación IHM desde el equipo donde se ejecuta NanoScada 2010.

4.4 Iniciar NanoScada 2010 Remote Client

Toda aplicación NanoScada Remote Client deberá estar almacenada dentro de una carpeta y
poseerá al menos los siguientes archivos:

NANOSCADA.INI: Archivo de configuración general


NSRUN.BAT: Script de arranque de Nanoscada Remote Client

Para iniciar NanoScada 2010 Remote Client con una aplicación en particular, se deberá
realizar el siguiente procedimiento:

1. Asegurarse que el acceso ODBC llamado NANOSCADA esté correctamente


configurado apuntando a la base de datos MSDE.del equipo donde corre NanoScada

Página 73 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

2010.

2. Ejecutar el archivo “NSRUN.BAT” ubicado en la carpeta de la aplicación o bien


ejecutar el icono Start NanoScada 2010 Remote Client ubicado en la carpeta de la
aplicación.

4.5 Finalizar NanoScada 2010 Remote Client

Para finalizar NanoScada 2010 Remote Client se deberá cerrar la aplicación IHM.

Si se desea también se podrá finalizar la aplicación NanoScada 2010 en forma remota


escribiendo el TAG llamado “NS_START_NSMAIN” con el valor 0 (cero).

Página 74 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

5 BACKUP Y RESTORE DE APLICACIONES NANOSCADA

NanoScada 2010 posee aplicaciones para realizar respaldo y restauración de aplicaciones


desarrolladas en NanoScada.

IMPORTANTES:
En la instalación por defecto de MSSQL 2005, éste se ejecuta utilizando el usuario
NETWORK SERVICE. En algunas instalaciones será necesario cambiar el usuario de
ejecución del servicio MSSQL Server por LOCAL SYSTEM, caso contrario las
operaciones de Backup y Restore de la base de datos podrán fallar.

5.1 NSBackup

NSBackup es una aplicación que permite realizar un respaldo de aplicaciones desarrolladas en


NanoScada. Opcionalmente se podrá incluir en el respaldo los archivos binarios de
NanoScada 2010 y la Base de datos MSSQL de NanoScada.

Para iniciar la aplicación NSBackup, ejecutar el NanoScada Backup ubicado en la carpeta de


instalación de NanoScada 2010.

Ingresar en Application Path el nombre de la carpeta donde reside la aplicación a respaldar.


Verificar que NanoScada Path posea el nombre de la carpeta de instalación de NanoScada
2010.
Ingresar en Destination File el nombre del archivo donde se va a almacenar el respaldo (la
extensión por defecto y sugerida es “.zip”).

Tildar las opciones deseadas:

- Backup Application Files: Incluir en el respaldo a la carpeta Application Path.


- Backup NanoScada Database: Incluir en el respaldo un backup de la base de datos
MSSQL nanoscada.
- Backup NanoScada Binary Files: Incluir en el respaldo a la carpeta NanoScada Path.

Presionar el botón OK para iniciar el procedimiento.

Página 75 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

Se abrirá la pantalla del script de backup. Si se seleccionó la opcion Backup NanoScada


Database se requierá al usuario ingresar los parámetros de conexión a la base de datos
nanoscada (entre corchetes se indican los valores por defecto).

NanoScada 2010 - Backup Application script

NanoScada Path: "C:\NanoScada"


Application Path: "C:\nsapp"
Destination File: "c:\nsapp_backup.zip"

Ingrese el nombre de la instancia de MSSQL [.]:


Ingrese el nombre del usuario nanoscada [nanoscada]:
Ingrese palabra clave del usuario nanoscada [nanoscada]:

Backing up NanoScada Application Folder ...


Backing up NanoScada Database ...

Processed 18984 pages for database 'nanoscada', file 'nanoscada' on file 1.


Processed 1 pages for database 'nanoscada', file 'nanoscada_log' on file 1.
BACKUP DATABASE successfully processed 18985 pages in 14.309 seconds
(10.869
MB/sec).

Backing up NanoScada 2010 Binary Files ...


Backing up NanoScada 2010 Folder ...
Creating backup file ...

Backup completed successfully

Press any key to continue . . .

Presionar <ENTER> para cerrar la ventana del script de backup.


Si la ejecución del script finalizó exitosamente se habrá creado el archivo de respaldo.

Página 76 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

5.2 NSRestore

NSRestore es una aplicación que permite restaurar aplicaciones desarrolladas en NanoScada y


respaldadas mediante NSBackup. Opcionalmente se podrá incluir en la restauración a los
archivos binarios de NanoScada 2010 y la Base de datos MSSQL de NanoScada.

Para iniciar la aplicación NSRestore, ejecutar el NanoScada Restore ubicado en la carpeta de


instalación de NanoScada 2010.

Ingresar en Source Backup File el nombre del archivo de respaldo realizado con NSBackup.
Ingresar en Application Path el nombre de la carpeta donde almacenar la aplicación.
Verificar que NanoScada Path posea el nombre de la carpeta de instalación de NanoScada
2010.

Tildar las opciones deseadas:

- Restore Application Files: Restaurar la aplicación contenida en la copia de respaldo.


- Restore NanoScada Database: Restaurar la base de datos MSSQL nanoscada con el
backup contenido en la copia de respaldo..
- Restore NanoScada Binary Files: Restaurar los archivos binarios de NanoScada con
los contenidos en la copia de respaldo.

Presionar el botón OK para iniciar el procedimiento.

Se abrirá la pantalla del script de restauración. Si se seleccionó la opcion Restore NanoScada


Database se requierá al usuario ingresar los parámetros de conexión a la base de datos
nanoscada (entre corchetes se indican los valores por defecto).

NanoScada 2010 - Restore Application script

Source Backup File: "C:\nsapp_backup.zip"


NanoScada Path: "C:\NanoScada"
Application Path: "C:\nsapp"

Ingrese el nombre de la instancia de MSSQL [.]:


Ingrese el nombre del usuario nanoscada [nanoscada]:
Ingrese palabra clave del usuario nanoscada [nanoscada]:

Página 77 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

Deploying backup file ...


Restoring application files ...
Restoring NanoScada Database ...

Processed 18984 pages for database 'nanoscada', file 'nanoscada' on file 1.


Processed 1 pages for database 'nanoscada', file 'nanoscada_log' on file 1.
RESTORE DATABASE successfully processed 18985 pages in 20.269 seconds
(7.673
MB/sec).

Restoring NanoScada 2010 Files ...

Restore completed successfully

Press any key to continue . . .

Presionar <ENTER> para cerrar la ventana del script de restauración.


Si la ejecución del script finalizó exitosamente se habrá realizado la restauración requerida.

IMPORTANTE:
El procedimiento de restauración de aplicaciones restaurará el contenido de las carpetas tal
cual estaban almacenadas al momento de realizar el respaldo con NSBACKUP.
En el caso de restaurar la aplicación o archivos binarios de NanoScada en carpetas diferentes
a la originales, será necesario modificar los scripts (archivos con extensión .bat) tanto de la
carpeta de aplicación como de la carpeta de NanoScada.

Página 78 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

NSImport

NSImport es una aplicación que permite importar datos desde una base de datos MSSQL
externa con datos históricos (previamente registrados o replicados por NanoScada 2010).

En las instalaciones en las cuales hay equipos de respaldo fuera de línea (quiere decir que se
encuentra apagado mientras no está en servicio), cuando sea necesario que este equipo entre
en servicio, será conveniente ejecutar NSIMPORT antes de poner en servicio al equipo, de
manera tal que cuando se lo ponga en servicio posea toda la información histórica posible. En
estos casos la fuente de los datos debera corresponder a una base de datos MSSQL en la cual
se habrán registrado o respaldado los datos de la aplicación (alarmas, datos históricos,
tendencias, tablas, etc.)

Para iniciar la aplicación NSImport, ejecutar el NanoScada Import ubicado en la carpeta de


instalación de NanoScada 2010.

Source Database DSN es el nombre del acceso ODBC (el cual deberá haber sido creado con
anterioridad a ejecutar NSImport) correspondiente a la base de datos origen de los datos que
se desean importar. Para asignar estos parámetros presionar el botón Params ...
correspondiente e ingresar los parámetros de conexión a la base de datos (DSN, Usuario,
Password y Base de Datos).

Una vez ingresado el DSN de origen, seleccionar en Table Name la tabla que se desea
importar.

Si la tabla seleccionada la tabla, se mostrarán en Date Time field los campos de tipo fecha
existentes en la tabla seleccionada. En el caso de haber mas de uno, se podrá seleccionar el
campo fecha a partir del cual se realizará la importación de los datos. En este caso también
habrá que ingersar en Date Time range el rango de fechas que se desea importar.

Destination Database DSN es el nombre del acceso ODBC (el cual deberá haber sido creado
con anterioridad a ejecutar NSImport) correspondiente a la base de datos destino de los datos
que se desean importar. Para asignar estos parámetros presionar el botón Params ...
correspondiente e ingresar los parámetros de conexión a la base de datos (DSN, Usuario,
Password y Base de Datos). La tabla a importar poseerá el mismo nombre y estructura que la
de origen.

Página 79 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

La opción Delete existing data permite eliminar todos los registros existentes en la tabla de
destino antes de importar los datos desde la tabla de origen. Esta opción es útil para evitar
insertar registros duplicados.

La opción Replace (drop) existing table permite eliminar la tabla de destino (si existe) y
volver a crearla con el formato existente en la base de datos de origen. Cuando esta opción es
seleccionada, la tabla de destino será borrada junto con sus indices y datos, quedando la tabla
de destino sin índice. Es importante mencionar que si la tabla, es utilizada para registro de
datos con NSLOG, los índices serán creados nuevamente en forma automática por NSLOG al
iniciarse NanoScada 2010.

Presionar el botón Import para realizar la importación de los datos. Una vez finalizada la
operación, de haber sido existosa mostrará un mensaje con la cantidad de registros
importados.

El procedimiento anterior podrá repetirse para todas las tablas que se desee importar.

Presionar el botón Close para salir de NSImport.

Página 80 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

6 CONSIDERACIONES PARA APLICACIONES HOT STAND-BY

Las aplicaciones Hot Stand-By son aquellas formadas por dos sistemas NanoScada 2010, los
cuales están configurados para trabajar en forma conjunta, mediante la adminsitración de
NSHSB.

Estas aplicaciones redundantes, hacen uso de los servicios de NSNETSRV y NSNETCNT


para intercambiar información de estado del sistema y/o valores de I/O.

Una aplicación tipica HSB está formada por dos sistemas NanoScada 2010, vinculados entre
sí por una red TCP/IP de alta confiabilidad. En una aplicación de este tipo, NSHSB administra
la lectura de campo (a través de algunos de los drivers de protocolo como NSDNP,
NSMBTCP, NSMODBUS, NSVCOMM, NSOPCCNT, etc.), activando y desactivando la
tarea correspondiente (estado ACTIVE o STANDBY).

Para crear una aplicación HSB en la cual se obtendrán datos de campo, por ejemplo de una
RTU, se deberán configurar los siguientes elementos:

1) Una conexión en la tabla NS_NET como la siguiente:

net_host net_port net_id net_mode net_status_tag


*RTU_NAME 7004RTU RWH RTU_STATUS
*PARTNER_NAME 7004PARTNER R PARTNER_STATUS

2) Configuración de NS_HSB como la siguiente (el hsb_group debe ser igual al net_id):

io_tag_name io_driver io_address


PARTNER_NAME NSHSB RTU:PARTNER_NAME
PARTNER_STATUS NSHSB RTU:PARTNER_CONN
HSB_RTU_COMMAND NSHSB RTU:COMMAND
HSB_RTU_STATUS NSHSB RTU:LOCAL_STATUS
RTU_ERROR NSHSB RTU:LOCAL_ERROR
PARTNER:HSB_RTU_STATUS NSHSB RTU:PARTNER_STATUS
NS_START_DNP NSHSB RTU:START
RTU_NAME NSHSB RTU:SERVER_NAME

3) En la tabla NS_TAGs se configuran los tags a obtener de la RTU con los nombres de los
elementos y el prefijo RTU solamente (es decir que no deben crearse los tags con idéntico
nombre y sin prefijo, ya que este será automáticamente creado por NanoScada 2010 al
detectar la letra H en el net_mode RTU de la tabla NS_NET).

tag_name
RTU:LSH_314
RTU:LSH_414
RTU:LSH_514
RTU:LSH_614
RTU:LSH_714

4) Cuando se utilice un TAGs con el prefijo RTU (ejemplo RTU:LSH_314) se estará


haciendo uso del elemento correspondiente al NanoScada 2010 del equipo que posee la
tarea activa.
Página 81 de 82
NanoScada 2010
Tiempo Real Servicios de Ingeniería

5) Cuando se utilice un TAGs sin prefijo (ejemplo LSH_314) se estará haciendo uso del
elemento correspondiente al NanoScada 2010 del equipo local donde se ejecuta la acción.

Página 82 de 82

Potrebbero piacerti anche