Buenos Aires, 13 de Junio de 2008

Transcripción

Buenos Aires, 13 de Junio de 2008
Contenido
1.
Requerimientos ...................................................................................................................... 2
1.1.
Hardware ....................................................................................................................... 2
1.2.
Sistema Operativo ......................................................................................................... 2
1.3.
Software ........................................................................................................................ 2
1.4.
Plataforma de implemetación ........................................................................................ 2
1.5.
Licencia ......................................................................................................................... 2
2. Instalación .............................................................................................................................. 3
2.1.
Hardware ....................................................................................................................... 3
2.1.1.
Llave de licencia USB:........................................................................................... 3
2.1.2.
Sensor de huellas dactilares USB: ........................................................................ 3
2.1.3.
Lector de tarjetas RFID ......................................................................................... 6
2.2.
Software ........................................................................................................................ 7
2.2.1.
Administrador de licencias Key Manager .............................................................. 7
2.2.2.
QDactilSecure ..................................................................................................... 10
2.2.3.
Registrar el elemento COM del sensor de huellas en sistemas embebidos....... 17
3. Implementación de scripts QDactilSecure ........................................................................... 19
3.1.
Alta de usuario WinCC Flex/TIA Portal en QDactilSecure .......................................... 19
3.1.1.
Descripción del Script .......................................................................................... 22
3.1.2.
Ejemplo de implementación ................................................................................ 22
3.2.
LogIn de un usuario WinCC Flex/TIA Portal a través de QDactilSecure .................... 23
3.2.1.
Descripción del Script .......................................................................................... 25
3.2.2.
Ejemplo de implementación ................................................................................ 25
3.3.
El proyecto Demo QDactilSecure................................................................................ 27
4. Implementación de Scripts QDactilSecure + FDA ............................................................... 28
4.1.
Campo de E/S (Entrada/Salida) .................................................................................. 28
4.1.1.
Script 1º ............................................................................................................... 28
4.1.2.
Script 2º ............................................................................................................... 29
4.1.3.
Script 3º ............................................................................................................... 30
4.1.4.
Ejemplo de implementación ................................................................................ 34
4.2.
Invertir Bit .................................................................................................................... 37
4.2.1.
Descripción del Script .......................................................................................... 40
4.2.2.
Descripción de parámetros ................................................................................. 40
4.2.3.
Ejemplo de implementación ................................................................................ 41
4.3.
Activar Bit (Set), Desactivar Bit (Reset) ...................................................................... 42
4.3.1.
Descripción del Script .......................................................................................... 46
4.3.2.
Descripción de parámetros ................................................................................. 46
4.3.3.
Ejemplo de implementación ................................................................................ 46
4.4.
Navegar pantalla ......................................................................................................... 48
4.4.1.
Descripción del script .......................................................................................... 51
4.4.2.
Descripción de parámetros ................................................................................. 51
4.4.3.
Ejemplo de implementación ................................................................................ 51
4.5.
Ejecución en un Script ................................................................................................. 53
4.5.1.
Descripción del script .......................................................................................... 56
4.5.2.
Descripción de parámetros ................................................................................. 56
4.5.3.
Ejemplo de implementación ................................................................................ 56
4.6.
El proyecto Demo QdactilSecure + FDA ..................................................................... 59
5. Errores en tiempo de ejecución ........................................................................................... 60
5.1.
Falta/Falla de Llave ..................................................................................................... 60
5.2.
Falta/Falla de Sensor de huellas dactilares o tarjeta RFID ......................................... 60
1. Requerimientos
1.1. Hardware
Para poder utilizar QDactilSecure se requieren los siguientes componentes de Hardware:
•
•
•
1 x Puerto USB (Sensor de huellas dactilares)
1 x Puerto USB (Llave USB, licencia de uso)
1 x Puerto Ethernet RJ-45 (Lector de tarjetas RFID)
1.2. Sistema Operativo
El paquete de software QDactilSecure puede ser instalado en los siguientes Sistemas
Operativos:
•
•
•
•
Windows XP (32 Bits)
Windows XP Embedded
Windows 7 (32 Bits)
Windows 7 Embedded
1.3. Software
QDactilSecure requiere del siguiente componente de software:
•
•
Microsoft .NET Framework 3.5 (o posterior)
Siemens Audit Trail (QDactilSecure + FDA)
1.4. Plataforma de implemetación
QDactilSecure puede ser implementado en las siguientes plataformas:
•
•
WinCC Flexible 2008
TIA Portal v11/v12
1.5. Licencia
El uso del paquete de software QDactilSecure se encuentra protegido por la licencia
física a través de una Llave USB.
Es indispensable poseer la licencia USB para poder hacer uso de QDactilSecure.
2. Instalación
La instalación del paquete QDactilSecure se divide en dos partes, Hardware y Software.
2.1. Hardware
2.1.1.
Llave de licencia USB:
Se debe conectar la llave USB en un puerto USB disponible, la instalación del driver es
realizada automáticamente por el sistema operativo.
Una vez instalado el driver de la llave USB, la misma puede conectarse en cualquier
puerto USB disponible, indistintamente si es o no el mismo con el que fue instalada.
2.1.2.
Sensor de huellas dactilares USB:
Se debe conectar el sensor de huellas dactilares USB en un puerto USB disponible.
Importante: el puerto USB elegido para el sensor de huellas dactilares no podrá
cambiarse.
El driver debe instalarse de forma manual, como se explica a continuación:
Nota: el procedimiento se mostrará en Windows 7, siendo de forma similar en los
demás Sistemas Operativos.
Dirigirse a Panel de Control, y abrir “Administrador de dispositivos”
En “Otros dispositivos -> CIF Single Chip” hacer “Click Derecho” y seleccionar
“Actualizar software de controlador…”
Imagen 1:
Administrador de dispositivos de Windows 7
Elegir “Buscar software de controlador en el equipo”
Imagen 2:
Actualizar software de controlador
A través del botón “Examinar”, seleccionar la carpeta donde se encuentra el driver del
dispositivo, y continuar con “Siguiente”.
Imagen 3:
Establecer la ruta de la carpeta del driver
En la ventana de advertencia seleccionar “Instalar este software de controlador de
todas formas”
Imagen 4:
Advertencia de instalación del driver
Esperar a que Windows finalice la instalación y luego cerrar las ventanas.
Imagen 5:
Instalación del dispositivo finalizada
A partir de aquí el sensor queda instalado y disponible para su uso.
2.1.3.
Lector de tarjetas RFID
Se debe conectar a través de un cable UTP el lector de tarjetas RFID a un puerto
Ethernet RJ-45 disponible en la red en la cual se encuentra la PC que ejecuta
QDactilSecure.
El lector de Tarjetas RFID tiene configurado por defecto la IP: 192.168.0.1 .
Es recomendable realizar la configuración de IP del lector en un entorno separado a la
red donde va a ser instalado, con el fin de no generar conflictos de red.
La forma de configurar la IP del dispositivo se mostrará en el capítulo 2.2.2.
Imagen 6:
Arquitectura de red, lector de tarjetas RFID
Imagen 7:
Arquitectura de red, lector de tarjetas RFID
2.2. Software
Se deben instalar dos paquetes de software: Administrador de licencias y QDactilSecure.
2.2.1.
Administrador de licencias Key Manager
El Administrador de licencias es un programa que permite conocer el estado de las
licencias de los paquetes QSolutions.
Nota: Para el caso en que ya se encuentre instalado otro paquete QSolutions, no es
necesaria la instalación del Administrador de licencias.
Para instalar el Administrador de licencias se debe ejecutar el archivo Administrador
de Licencias Instalador.msi que se encuentra en la carpeta de instalación.
A continuación el asistente de instalación indicará los pasos necesarios para completar
la instalación.
Imagen 8:
Instalación Administrador de Licencias
Imagen 9:
Selección de carpeta de instalación del Administrador de Licencias
Importante: no cambiar la ubicación que aparece por defecto en donde se instalará.
Imagen 10: Confirmación de instalación del Administrador de Licencias
Al confirmar comenzará la instalación del Administrador de Licencias.
Imagen 11: Proceso de instalación del Administrador de Licencias.
Imagen 12: Finalización del proceso de instalación del Administrador de Licencias.
Finalmente el asistente indica que se finalizó la instalación del Administrador de
Licencias.
2.2.2.
QDactilSecure
Para instalar QDactilSecure se debe ejecutar el archivo QDactilSecure Instalador.msi
que se encuentra en la carpeta de instalación.
A continuación el asistente de instalación indicará los pasos necesarios para completar
la instalación.
Imagen 13: Instalación QDactilSecure
Imagen 14: Selección de carpeta de instalación de QDactilSecure
Importante: no cambiar la ubicación que aparece por defecto en donde se instalará.
Imagen 15: Confirmación de instalación de QDactilSecure
Al confirmar comenzará la instalación de QDactilSecure.
Imagen 16: Proceso de instalación de QDactilSecure
Antes de finalizar la instalación se desplegará el asistente de configuración de
dispositivo de QDactilSecure.
En caso de ser necesario, el asistente de configuración puede ser accedido en
cualquier momento a través de la aplicación QDactilSecure.
Imagen 17: Asistente de configuración de dispositivo de QDactilSecure
Aquí deberá seleccionar el tipo de dispositivo que será utilizado.
En caso de seleccionar “Sensor de Huellas”, al dar click en el botón siguiente, el
asistente finalizará estableciendo la configuración.
Imagen 18: Estableciendo el sensor de huella como dispositivo QDactilSecure
Si se selecciona “Lector de Tarjetas”, al dar click en siguiente, comenzará el asistente
de configuración del lector. El mismo mostrará dos opciones para continuar.
Imagen 19: Asistente de configuración de IP del lector de tarjetas
La primera opción establece el dispositivo lector de tarjetas como predeterminado en
QDactilSecure según la última configuración de IP cargada en el sistema.
La segunda opción permite establecer manualmente la IP del dispositvo. En esta
opción, el asistente intentará buscar el dispositivo en la red a la cual se encuentra
conectada la computadora. Si no se encuentra el dispositivo, desplegará una ventana
preguntando si desea establecer manualmente la IP actual del equipo.
Imagen 20: Mensaje de dispositivo no encontrado
Si se despliega la ventana de dispositivo no encontrado, y no desea especificar la
dirección IP del lector, el asistente finalizará y regresará a la pantalla inicial.
Si desea especificar la dirección IP, se le desplegará una ventana para que introduzca
manualmente la IP actual del lector.
Imagen 21: Ventana de ingreso de dirección IP del lector
Nota:
Si usted no recuerda la dirección IP que tiene asignada el dispositivo, puede
resetearlo a la configuración de fábrica. Para ello, deberá desmontar el fondo
metálico del dispositivo y mientras el mismo se encuentra alimentado, presionar
el botón de reset hasta que emita un ruido de confirmación.
Al realizar el procedmiento, el dispositivo posee la IP 192.168.0.1
Imagen 22: Método para reestablecer la configuración IP
Una vez ingresada la IP correspondiente al lector, al hacer click en el botón conectar,
se establecerá la conexión con el dispositivo y se mostrará la pantalla de configuración
de IP.
Imagen 23: Ventana de configuración IP del lector
Una vez definida la configuración IP del dispositivo, haga click en establecer. El
asistente establecerá la configuración el lector de tarjetas RFID y en QDactilSecure.
Finalmente el asistente mostrara la ventana de configuración establecida.
Imagen 24: Ventana de configuración establecida
Luego de cerrar el asistente de configuración, se retorna a la instalación del software.
Imagen 25: Finalización del proceso de instalación de QDactilSecure
Finalmente el asistente indica que se finalizó la instalación de QDactilSecure.
2.2.3.
Registrar el elemento COM del sensor de huellas en sistemas embebidos
Cuando el Sistema Operativo en donde se instala QDactilSecure es versión
“Embedded”, debe registrarse el elemento COM de forma manual. De lo contrario se
producirá un error en tiempo de ejecución.
Imagen 26: Error por falta del elemento COM al ejecutar QDactilSecure
Para registrar el elemento COM se debe seguir los siguientes pasos:
Ir a Inicio -> Accesorios, “Click Derecho” en “Símbolo de Sistema” y seleccionar
“Ejecutar como Administrador”
Imagen 27: Ejecutar como administrador
Una vez abierto, ejecutar en la consola el siguiente comando:
RegSvr32 "%ProgramFiles%\Quantia S.A\QSolutions - QDactilSecure\WisSensorNL
ib.dll"
Imagen 28: Ejecución en consola, registro del elemento COM
Luego aparecerá un cartel informando el registro del elemento COM.
Imagen 29: Registro del elemento COM finalizado
3. Implementación de scripts QDactilSecure
QDactilSecure posee dos scripts VB que permiten la interacción entre el Programa de usuario y
el Software QDactilSecure. Los mismos se encuentran programados para la totalidad del
funcionamiento de QDactilSecure, por lo tanto no requiere modificación alguna. El
implementador deberá agregarlos al proyecto para poder hacer uso de los mismos.
Nota: los siguientes scripts se encuentran en el proyecto Demo, se sugiere copiar los scripts
del proyecto demo al proyecto donde se desea implementar.
3.1. Alta de usuario WinCC Flex/TIA Portal en QDactilSecure
Se deberá crear un script VB (VisualBasic) dentro del proyecto WinCC Flex 2008 ó TIA
Portal v11/12 con las siguientes propiedades:
•
Nombre: QDS_Logueo_Atm
•
Tipo: Sub
Código:
Dim usuario
Dim contasena
GetUserName usuario
GetPassword contasena
If usuario<>"" And contasena<>"" Then
On Error Resume Next
Dim programa
Set programa = CreateObject("WScript.Shell")
Dim path
path = programa.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Quantia
S.A\QDactilSecure\Path")
programa.Exec(path +"QDactilSecure - Adminitrador.exe "& "A02 "
& usuario &" "& contasena)
Else
Exit Sub
End If
En TIA Portal se efectúa de la siguiente forma:
•
Ir a Scripts -> VB Scripts y hacer “Doble click” en Agregar función VB
Imagen 30:
Agregar función VB en TIA Portal
En Propiedades -> General, Configuración: establecer el nombre “QDS_Logueo_Atm” y
tipo Sub
Imagen 31:
Establecer el nombre al script en TIA Portal
Finalmente pegar el código dentro del editor.
Imagen 32:
Código del Script en TIA Portal
3.1.1.
Descripción del Script
Este Script utiliza el nombre y contraseña del usuario identificado en el sistema, para
luego darlo de alta en la plataforma QDactilSecure, donde ejecutará el asistente para
registrar la huella dactilar.
3.1.2.
Ejemplo de implementación
•
Crear un botón con el título “Alta DS” en la imagen deseada.
•
En “Eventos->Pulsar” agregar los siguientes eventos:
o
o
o
“Administración de usuarios->CerrarSesión”
“Administración de usuarios->MostrarDiálogoInicioSesión”
“Funciones VB->QDS_Logueo_Atm”
Imagen 33:
Implementación de botón “Alta DS”
3.2. LogIn de un usuario WinCC Flex/TIA Portal a través de QDactilSecure
Se deberá crear un script VB (VisualBasic) dentro del proyecto WinCC Flex 2008 ó TIA
Portal v11/12 con las siguientes propiedades:
•
Nombre: QDS_Obtener_Usuario
•
Tipo: Sub
Código:
Dim usuario
Dim contrasena
Dim usuario_actual
Dim objeto
Dim programa
Set objeto = CreateObject("WScript.Shell")
Dim path
path = objeto.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Quantia
S.A\QDactilSecure\Path")
On Error Resume Next
Set programa = objeto.Exec(path +"QDactilSecure - Adminitrador.exe
A01")
usuario = programa.StdOut.ReadLine()
contrasena = programa.StdOut.ReadLine()
If usuario <>"" And contrasena <>"" Then
Logon contrasena ,usuario
GetUserName usuario_actual
If usuario_actual = "" Then
objeto.Popup "El Usuario " & usuario & " existe en
la plataforma DactilSecure," & vbCrLf & "pero no existe en su
Programa de Usuario",48,"Alta Usuario"
End If
End If
En TIA Portal se efectúa de la siguiente forma:
•
Ir a Scripts -> VB Scripts y hacer “Doble click” en Agregar función VB
Imagen 34:
Agregar función VB en TIA Portal
En
Propiedades
->
General,
“QDS_Obtener_Usuario” y tipo Sub.
Imagen 35:
Configuración:
establecer
Establecer el nombre al script en TIA Portal
el
nombre
Finalmente pegar el código dentro del editor.
Imagen 36:
3.2.1.
Código del Script en TIA Portal
Descripción del Script
Este Script ejecuta el asistente QDactilSecure donde verifica la huella dactilar del
usuario, y luego lo identifica en el sistema.
3.2.2.
Ejemplo de implementación
•
Crear un botón con el título “LogIn” en la imagen deseada.
•
En “Eventos->Pulsar” agregar el siguientes evento:
o “Funciones VB-> QDS_Obtener_Usuario”
Imagen 37: Implementación de botón “LogIn”
3.3. El proyecto Demo QDactilSecure
El paquete de software QDactilSecure incluye un proyecto Demo donde se encuentra un
programa de usuario de panel “Tipo” el cual implementa todas las funcionalidades del sistema
QDactilSecure. Se aconseja utilizar el mismo como base para la futura implementación en el
desarrollo que el implementador esté realizando.
Imagen 38:
Imagen Principal del Proyecto Demo
En el manual de usuario de QDactilSecure se encuentra la explicación del uso y
funcionamiento de la Demo.
El implementador puede hacer uso de la Demo para probar los Scripts antes de realizar su
desarrollo, ó verificar la correcta implementación que esté realizando.
4. Implementación de Scripts QDactilSecure + FDA
QDactilSecure posee siete scripts VB que permiten la interacción entre el Programa de usuario
y el Software QDactilSecure. Los mismos se encuentran programados para la totalidad del
funcionamiento de QDactilSecure+FDA, por lo tanto no requiere modificación alguna. El
implementador deberá agregarlos al proyecto para poder hacer uso de los mismos.
Nota: los siguientes scripts se encuentran en el proyecto Demo, se sugiere copiar los scripts
del proyecto demo al proyecto donde se desea implementar.
4.1. Campo de E/S (Entrada/Salida)
Se deberá crear tres script VB (VisualBasic) dentro del proyecto WinCC Flex 2008 ó TIA
Portal v11/12 con las siguientes propiedades:
4.1.1.
Script 1º
•
Nombre: QDS_Notificacion_Usuario_VA_1
•
Tipo: Sub
•
Parámetros:
• Variable_GMP (ByRef)
Código:
Dim fso, file
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\Users\Public\QDS.dat", 2, True, -2)
file.WriteLine Variable_GMP
file.Close
4.1.1.1
Descripción del Script
Este Script almacena el valor actual de la variable en forma temporal para poder hacer
uso del mismo en los siguientes Scripts.
4.1.1.2
Descripción de parámetros
•
Variable_GMP:
Tipo: Variable_HMI
Uso: variable asociada al campo de Entrada/Salida.
4.1.2.
Script 2º
•
Nombre: QDS_Notificacion_Usuarios_VA_2
•
Tipo: Function
•
Parámetros:
• Pantalla (ByRef)
• Campo (ByRef)
Código:
Dim fso, file, valor_anterior
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\Users\Public\QDS.dat", 1)
valor_anterior = CSng(file.ReadLine)
file.Close
Dim objeto
Set objeto = HmiRuntime.Screens(Pantalla).ScreenItems(Campo)
objeto.Activate
Set file = fso.OpenTextFile("C:\Users\Public\QDS.dat", 2)
file.WriteLine (objeto.ProcessValue)
file.Close
QDS_Notificacion_Usuarios_VA_2 = valor_anterior
4.1.2.1
Descripción del Script
Este Script almacena el valor ingresado en forma temporal para poder hacer uso del
mismo en los siguientes Scripts.
4.1.2.2
Descripción de parámetros
•
Valor de retorno:
Tipo: Variable_HMI
Uso: variable asociada al campo de Entrada/Salida.
•
Pantalla:
Tipo: Imagen
Uso: Imagen del proyecto donde se encuentra el Campo de Entrada/Salida.
•
Campo:
Tipo: Objeto grafico
Uso: Campo de Entrada/Salida asociado a la variable.
4.1.3.
Script 3º
•
Nombre: QDS_Notificacion_Usuario_VA_3
•
Tipo: Function
•
Parámetros:
• Nombre_de_Objeto (ByRef)
• Unidad (ByRef)
• Variable_GMP (ByRef)
• GMP (ByRef)
• Tipo_de_Confirmacion (ByRef)
Código:
Select Case Tipo_de_Confirmacion
Case "Ninguna"
Case "Firma"
Case "Acuse"
Case Else
Dim msg_err1
Set msg_err1 = CreateObject("WScript.Shell")
msg_err1.Popup "Error de parametrizaión, revise el parametro
[Tipo_de_Confirmación] !!!"&vbCrLf &vbCrLf &"Valor ingresado:
"&Tipo_de_Confirmacion &vbCrLf &"Valores posibles: Firma ; Acuse ;
Ninguna",,"Error de Programación",4112
Exit Function
End Select
Dim valor_anterior
Dim valor_actual
Dim fso, file
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\Users\Public\QDS.dat", 1)
valor_actual = file.ReadLine
file.Close
valor_anterior = Variable_GMP
If( CSng(valor_actual) <> CSng(valor_anterior)) Then
Dim estado
Select Case GMP
Case 1
estado = 10
Case 2
estado = 50
Case 0
estado = 100
Case Else
Dim msg_err2
Set msg_err2 = CreateObject("WScript.Shell")
msg_err2.Popup "Error de parametrizacion, revise el
parametro [GMP] !!!"&vbCrLf &vbCrLf &"Valor ingresado: "&GMP &vbCrLf
&"Valores posibles: 0 ; 1 ; 2",,"Error de Programación",4112
Exit Function
End Select
If(estado = 10)Then
Dim usuario
GetUserName usuario
Dim objeto
Set objeto = CreateObject("WScript.Shell")
Dim path
path =
objeto.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Quantia
S.A\QDactilSecure\Path")
Dim categoria
Dim descripcion
categoria = "Cambio de Valor"
descripcion = "Cambio de "& Nombre_de_objeto & " de "
& valor_anterior &" "& Unidad & " a " & valor_actual &" "& Unidad
If Tipo_de_Confirmacion = "Ninguna" Then
QDS_Notificacion_Usuario_VA_3 = valor_actual
Set file =
fso.OpenTextFile("C:\Users\Public\QDS.dat", 2)
file.WriteLine valor_actual
file.Close
If usuario <> "" Then
NotifyUserAction hmiNone, hmiFalse,
categoria, Nombre_de_objeto, descripcion
Else
NotifyUserAction hmiNone, hmiFalse,
categoria, Nombre_de_objeto, "(Sin Usuario Logueado) " & descripcion &
descripcion
End If
Exit Function
End If
If usuario = "" Then
Dim msg_login
Set msg_login = CreateObject("WScript.Shell")
msg_login.Popup "No hay un usuario identificado y
la seguridad se encuentra deshabilitada"&vbCrLf &vbCrLf &"Los tipos de
confirmacion Firma y Acuse requieren Seguridad" & usuario,,"Error de
programacion",4112
Exit Function
End If
Dim
Dim
Dim
Dim
Dim
programa
respuesta
respuesta_desglose
usuario_nok
tipo
If Tipo_de_Confirmacion = "Firma" Then
On Error Resume Next
Set programa = objeto.Exec(path +"QDactilSecure Adminitrador.exe A03 "& usuario)
tipo = "Firmado: "
End If
If Tipo_de_Confirmacion = "Acuse" Then
On Error Resume Next
Set programa = objeto.Exec(path +"QDactilSecure Adminitrador.exe A04 "& usuario)
tipo = "Acusado: "
End If
programa.StdIn.WriteLine descripcion
Do While respuesta = ""
respuesta = programa.StdOut.ReadLine()
respuesta_desglose = Split(respuesta,";")
Select Case respuesta_desglose(0)
Case "ok"
QDS_Notificacion_Usuario_VA_3 =
valor_actual
NotifyUserAction hmiNone, hmiFalse,
categoria, Nombre_de_objeto,tipo & descripcion &respuesta_desglose(1)
Set file =
fso.OpenTextFile("C:\Users\Public\QDS.dat", 2)
file.WriteLine valor_actual
file.Close
Case "nok"
usuario_nok = respuesta_desglose(1)
NotifyUserAction hmiNone, hmiFalse,
categoria, Nombre_de_objeto, "Firma Incorrecta: El usuario " &
usuario_nok & " intento firmar por el Usuario Actual"
respuesta= ""
Case "error"
estado = 50
Case "cancelar"
Set file =
fso.OpenTextFile("C:\Users\Public\QDS.dat", 2)
file.WriteLine valor_anterior
file.Close
End Select
Loop
End If
If(estado = 50) Then
Dim categoria_s
Dim descripcion_s
categoria_s = "Cambio de Valor"
descripcion_s = "Cambio de "& Nombre_de_objeto & " de " &
valor_anterior & " a " & valor_actual
Select Case Tipo_de_Confirmacion
Case "Ninguna"
On Error Resume Next
NotifyUserAction hmiNone, hmiFalse, categoria_s,
Nombre_de_objeto, descripcion_s
If Err.Number = 0 Then
QDS_Notificacion_Usuario_VA_3 =
valor_actual
Set file =
fso.OpenTextFile("C:\Users\Public\QDS.dat", 2)
file.WriteLine valor_actual
file.Close
End If
Case "Acuse"
On Error Resume Next
NotifyUserAction hmiAcknowledgement, hmiFalse,
categoria_s, Nombre_de_objeto, descripcion_s
If Err.Number = 0 Then
QDS_Notificacion_Usuario_VA_3 =
valor_actual
Set file =
fso.OpenTextFile("C:\Users\Public\QDS.dat", 2)
file.WriteLine valor_actual
file.Close
Else
Set file =
fso.OpenTextFile("C:\Users\Public\QDS.dat", 2)
file.WriteLine valor_anterior
file.Close
End If
Case "Firma"
On Error Resume Next
NotifyUserAction hmiSignature, hmiFalse,
categoria_s, Nombre_de_objeto, descripcion_s
If Err.Number = 0 Then
QDS_Notificacion_Usuario_VA_3 =
valor_actual
Set file =
fso.OpenTextFile("C:\Users\Public\QDS.dat", 2)
file.WriteLine valor_actual
file.Close
Else
Set file =
fso.OpenTextFile("C:\Users\Public\QDS.dat", 2)
file.WriteLine valor_anterior
file.Close
End If
End Select
End If
If(estado = 100) Then
QDS_Notificacion_Usuario_VA_3 = valor_actual
End If
End If
4.1.3.1
Descripción del Script
Este Script establece el valor de la variable del campo de Entrada/Salida establecida
por
parámetro,
dependiendo
del
“tipo
de
confirmación”
establecido,
QDactilSecure+FDA desplegará una ventana de confirmación por firma biométrica ó
acuse, y luego lo asienta en el archivo de auditoría.
4.1.3.2
4.1.4.
Descripción de parámetros
•
Valor de retorno:
Tipo: Variable_HMI
Uso: variable asociada al campo de Entrada/Salida.
•
Nombre_de_objeto
Tipo: String
Uso: nombre representativo de la variable para asentar en el reporte.
•
Unidad
Tipo: String
Uso: nombre de la unidad de la variable para asentar en el reporte.
•
Variable_GMP:
Tipo: Variable_HMI
Uso: variable asociada al campo de Entrada/Salida.
•
GMP: (0/1/2)
Tipo: String
Uso: activa ó desactiva el reporte FDA
Valores posibles:
• 0 (Sin auditoria)
• 1 (Con auditoria, método QDactilSecure)
• 2 (Con Auditoria, método Siemens)
Ejemplo de implementación
Nota: el siguiente ejemplo se muestra a través del proyecto Demo.
•
Seleccionar el campo E/S a configurar y dirigirse a “Propiedades”.
•
En “Eventos->Activar” agregar el siguiente evento:
o “Funciones VB-> QDS_Notificacion_Usuario_VA_1”
•
Completar el parámetro:
o Variable_GMP: Temperatura
•
En “Eventos->Entrada finalizada” agregar los siguientes eventos:
o “Funciones VB-> QDS_Notificacion_Usuario_VA_2”
o “Funciones VB-> QDS_Notificacion_Usuario_VA_3”
•
Completar los parámetros en “QDS_Notificacion_Usuario_VA_2”:
o Valor de retorno: Temperatura
o Pantalla: Funciones FDA
o Campo: Campo ES_1
•
Completar los parámetros en “QDS_Notificacion_Usuario_VA_3”:
o Valor de Retorno: Temperatura
o Nombre_de_Objeto: Temperatura del Reactor
o Unidad: ºC
o Variable_GMP: Temperatura
o GMP: 1 (en demo, variable hmi)
o Tipo_de_Confirmacion: Firma
Imagen 39: Implementación de Campo de E/S, “Activar”.
Imagen 40: Implementación de Campo de E/S, “Entrada finalizada”.
4.2. Invertir Bit
Se deberá crear un script VB (VisualBasic) dentro del proyecto WinCC Flex 2008 ó TIA
Portal v11/12 con las siguientes propiedades:
•
Nombre: QDS_Notificacion_Usuario_ON_Inv_OFF
•
Tipo: Function
•
Parámetros:
o Categoria (ByRef)
o Nombre_de_objeto (ByRef)
o Descripcion_ON (ByRef)
o Descripcion_OFF (ByRef)
o Variable_GMP (ByRef)
o GMP (ByRef)
o Tipo_de_Confirmacion (ByRef)
Código:
Select Case Tipo_de_Confirmacion
Case "Ninguna"
Case "Firma"
Case "Acuse"
Case Else
Dim msg_err1
Set msg_err1 = CreateObject("WScript.Shell")
msg_err1.Popup "Error de parametrizacion, revise el parametro
[Tipo_de_Confirmacion] !!!"&vbCrLf &vbCrLf &"Valor ingresado:
"&Tipo_de_Confirmacion &vbCrLf &"Valores posibles: Firma ; Acuse ;
Ninguna",,"Error de Programación",4112
Exit Function
End Select
Dim estado
Select Case GMP
Case 1
estado = 10
Case 2
estado = 50
Case 0
estado = 100
Case Else
Dim msg_err2
Set msg_err2 = CreateObject("WScript.Shell")
msg_err2.Popup "Error de parametrizacion, revise el parametro
[GMP] !!!"&vbCrLf &vbCrLf &"Valor ingresado: "&GMP &vbCrLf &"Valores
posibles: 0 ; 1 ; 2",,"Error de Programación",4112
Exit Function
End Select
If(estado = 10)Then
Dim usuario
Dim Descripcion
If Variable_GMP = False Then
Descripcion = Descripcion_ON
End If
If Variable_GMP = True Then
Descripcion = Descripcion_OFF
End If
GetUserName usuario
If Tipo_de_Confirmacion = "Ninguna" Then
QDS_Notificacion_Usuario_ON_Inv_OFF = Variable_GMP Xor True
If usuario <> "" Then
NotifyUserAction hmiNone, hmiFalse, Categoria,
Nombre_de_objeto, Descripcion
Else
NotifyUserAction hmiNone, hmiFalse, Categoria,
Nombre_de_objeto, "(Sin Usuario Logueado) "& Descripcion
End If
Exit Function
End If
If usuario = "" Then
Dim msg_login
Set msg_login = CreateObject("WScript.Shell")
msg_login.Popup "No hay un usuario identificado y la seguridad
se encuentra deshabilitada"&vbCrLf &vbCrLf &"Los tipos de confirmacion
Firma y Acuse requieren Seguridad" & usuario,,"Error de
programacion",4112
Exit Function
End If
Dim
Dim
Dim
Dim
Dim
Dim
objeto
programa
respuesta
respuesta_desglose
usuario_nok
tipo
Set objeto = CreateObject("WScript.Shell")
If Tipo_de_Confirmacion = "Firma" Then
On Error Resume Next
Set programa = objeto.Exec("%ProgramFiles%\Quantia
S.A\QSolutions - QDactilSecure\QDactilSecure - Adminitrador.exe A03 "&
usuario)
tipo = "Firmado: "
End If
If Tipo_de_Confirmacion = "Acuse" Then
On Error Resume Next
Set programa = objeto.Exec("%ProgramFiles%\Quantia
S.A\QSolutions - QDactilSecure\QDactilSecure - Adminitrador.exe A04 "&
usuario)
tipo = "Acusado: "
End If
programa.StdIn.WriteLine Descripcion
Do While respuesta =""
respuesta = programa.StdOut.ReadLine()
respuesta_desglose = Split(respuesta,";")
Select Case respuesta_desglose(0)
Case "ok"
NotifyUserAction hmiNone, hmiFalse, Categoria,
Nombre_de_objeto, tipo & Descripcion &respuesta_desglose(1)
QDS_Notificacion_Usuario_ON_Inv_OFF = Variable_GMP
Xor True
Case "nok"
usuario_nok = respuesta_desglose(1)
NotifyUserAction hmiNone, hmiFalse, Categoria,
Nombre_de_objeto, "Firmado Incorrecta: El usuario " & usuario_nok & "
intento firmar por el Usuario Actual"
respuesta= ""
Case "error"
estado = 50
Case "cancelar"
Exit Function
End Select
Loop
End If
If(estado = 50) Then
Select Case Tipo_de_Confirmacion
Case "Ninguna"
On Error Resume Next
NotifyUserAction hmiNone, hmiFalse, Categoria,
Nombre_de_objeto, Descripcion
If Err.Number = 0 Then
QDS_Notificacion_Usuario_ON_Inv_OFF = Variable_GMP Xor True
Case "Acuse"
On Error Resume Next
NotifyUserAction hmiAcknowledgement, hmiFalse,
Categoria, Nombre_de_objeto, Descripcion
If Err.Number = 0 Then
QDS_Notificacion_Usuario_ON_Inv_OFF = Variable_GMP Xor True
Case "Firma"
On Error Resume Next
NotifyUserAction hmiSignature, hmiFalse, Categoria,
Nombre_de_objeto, Descripcion
If Err.Number = 0 Then
QDS_Notificacion_Usuario_ON_Inv_OFF = Variable_GMP Xor True
End Select
End If
If(estado = 100) Then
QDS_Notificacion_Usuario_ON_Inv_OFF = Variable_GMP Xor True
End If
4.2.1.
Descripción del Script
Este Script invierte el valor booleano de la variable establecida por parámetro,
dependiendo del “tipo de confirmación” establecido, QDactilSecure+FDA desplegará
una ventana de confirmación por firma biométrica ó acuse, y luego lo asienta en el
archivo de auditoría.
4.2.2.
Descripción de parámetros
•
Valor de retorno:
Tipo: Variable_HMI (Bit)
Uso: variable que contiene el bit a invertir
•
Categoria:
Tipo: String
Uso: descripción de la categoría en el reporte
•
Nombre_de_objeto
Tipo: String
Uso: nombre representativo de la variable para asentar en el reporte
•
Descripción_ON:
Tipo: String
Uso: descripción al activar el bit de la variable para asentar en el reporte
•
Descipción_OFF:
Tipo: String
Uso: descripción al desactivar la variable para asentar en el reporte
•
Variable_GMP:
Tipo: Variable_HMI
Uso: variable que contiene el bit a invertir (debe ser igual a valor de retorno)
•
GMP: (0/1/2)
Tipo: String
Uso: activa ó desactiva el reporte FDA
Valores posibles:
• 0 (Sin auditoria)
• 1 (Con auditoria, método QDactilSecure)
• 2 (Con Auditoria, método Siemens)
•
Tipo_de_Confirmación: (Firma/Acuse/Ninguna)
Tipo: String
Uso: forma de confirmar la acción del usuario
4.2.3.
Ejemplo de implementación
Nota: el siguiente ejemplo se muestra a través del proyecto Demo.
•
Crear un botón con el título “Invertir Bit” en la imagen deseada.
•
En “Eventos->Pulsar” agregar los siguientes eventos:
o “Funciones VB-> QDS_Notificacion_Usuario_ON_Inv_OFF”
•
Completar los parámetros:
o Valor de retorno: bool1
o Categoria: Invertir
o Nombre_de_objeto: Bit
o Descripcion_ON: Se pone en 1
o Descripcion_OFF: Se pone en 0
o Variable_GMP: bool1
o GMP: 1 (en demo, variable hmi)
o Tipo_de_Confirmacion: Firma
Imagen 41:
Implementación de botón “Invertir Bit”
4.3. Activar Bit (Set), Desactivar Bit (Reset)
Se deberá crear un script VB (VisualBasic) dentro del proyecto WinCC Flex 2008 ó TIA
Portal v11/12 con las siguientes propiedades:
•
Nombre: QDS_Notificacion_Usuario_ON_OFF
•
Tipo: Function
•
Parámetros:
o Categoria (ByRef)
o Nombre_de_objeto (ByRef)
o Descripcion (ByRef)
o set_reset (ByRef)
o GMP (ByRef)
o Tipo_de_Confirmacion (ByRef)
Código:
Select Case Tipo_de_Confirmacion
Case "Ninguna"
Case "Firma"
Case "Acuse"
Case Else
Dim msg_err1
Set msg_err1 = CreateObject("WScript.Shell")
msg_err1.Popup "Error de parametrizacion, revise el
parametro [Tipo_de_Confirmacion] !!!"&vbCrLf &vbCrLf &"Valor
ingresado: "&Tipo_de_Confirmacion &vbCrLf &"Valores posibles: Firma
; Acuse ; Ninguna",,"Error de Programación",4112
Exit Function
End Select
Select Case set_reset
Case "set"
Case "reset"
Case Else
Dim msg_err3
Set msg_err3 = CreateObject("WScript.Shell")
msg_err3.Popup "Error de parametrizacion, revise el
parametro [set_reset] !!!"&vbCrLf &vbCrLf &"Valor ingresado:
"&set_reset &vbCrLf &"Valores posibles: set ; reset",,"Error de
Programación",4112
Exit Function
End Select
Dim estado
Select Case GMP
Case 1
estado = 10
Case 2
estado = 50
Case 0
estado = 100
Case Else
Dim msg_err2
Set msg_err2 = CreateObject("WScript.Shell")
msg_err2.Popup "Error de parametrizacion, revise el
parametro [GMP] !!!"&vbCrLf &vbCrLf &"Valor ingresado: "&GMP &vbCrLf
&"Valores posibles: 0 ; 1 ; 2",,"Error de Programación",4112
Exit Function
End Select
If(estado = 10)Then
Dim usuario
GetUserName usuario
If Tipo_de_Confirmacion = "Ninguna" Then
Select Case set_reset
Case "set"
QDS_Notificacion_Usuario_ON_OFF = True
Case "reset"
QDS_Notificacion_Usuario_ON_OFF = False
End Select
If usuario <> "" Then
NotifyUserAction hmiNone, hmiFalse, Categoria,
Nombre_de_objeto, Descripcion
Else
NotifyUserAction hmiNone, hmiFalse, Categoria,
Nombre_de_objeto, "(Sin Usuario Logueado) " & Descripcion
End If
Exit Function
End If
If usuario = "" Then
Dim msg_login
Set msg_login = CreateObject("WScript.Shell")
msg_login.Popup "No hay un usuario identificado y la
seguridad se encuentra deshabilitada"&vbCrLf &vbCrLf &"Los tipos de
confirmacion Firma y Acuse requieren Seguridad" & usuario,,"Error de
programacion",4112
Exit Function
End If
Dim
Dim
Dim
Dim
Dim
Dim
Dim
objeto
programa
respuesta
respuesta_desglose
valor_anterior
usuario_nok
tipo
Set objeto = CreateObject("WScript.Shell")
Dim path
path = objeto.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Quantia
S.A\QDactilSecure\Path")
If Tipo_de_Confirmacion = "Firma" Then
On Error Resume Next
Set programa = objeto.Exec(path +"QDactilSecure Adminitrador.exe A03 "& usuario)
tipo = "Firmado: "
End If
If Tipo_de_Confirmacion = "Acuse" Then
On Error Resume Next
Set programa = objeto.Exec(path +"QDactilSecure Adminitrador.exe A04 "& usuario)
tipo = "Acusado: "
End If
programa.StdIn.WriteLine Descripcion
Do While respuesta =""
respuesta = programa.StdOut.ReadLine()
respuesta_desglose = Split(respuesta,";")
Select Case respuesta_desglose(0)
Case "ok"
NotifyUserAction hmiNone, hmiFalse,
Categoria, Nombre_de_objeto, tipo & Descripcion & Descripcion
&respuesta_desglose(1)
Select Case set_reset
Case "set"
QDS_Notificacion_Usuario_ON_OFF = True
Case "reset"
QDS_Notificacion_Usuario_ON_OFF = False
End Select
Case "nok"
usuario_nok = respuesta_desglose(1)
NotifyUserAction hmiNone, hmiFalse,
Categoria, Nombre_de_objeto, "Firma Incorrecta: El usuario " &
usuario_nok & " intento firmar por el Usuario Actual"
respuesta= ""
Case "error"
estado = 50
Case "cancelar"
Exit Function
End Select
Loop
End If
If(estado = 50) Then
Select Case Tipo_de_Confirmacion
Case "Ninguna"
On Error Resume Next
NotifyUserAction hmiNone, hmiFalse, Categoria,
Nombre_de_objeto, Descripcion
If Err.Number = 0 Then
Select Case set_reset
Case "set"
QDS_Notificacion_Usuario_ON_OFF = True
Case "reset"
QDS_Notificacion_Usuario_ON_OFF = False
End Select
End If
Case "Acuse"
On Error Resume Next
NotifyUserAction hmiAcknowledgement, hmiFalse,
Categoria, Nombre_de_objeto, Descripcion
If Err.Number = 0 Then
Select Case set_reset
Case "set"
QDS_Notificacion_Usuario_ON_OFF = True
Case "reset"
QDS_Notificacion_Usuario_ON_OFF = False
End Select
End If
Case "Firma"
On Error Resume Next
NotifyUserAction hmiSignature, hmiFalse,
Categoria, Nombre_de_objeto, Descripcion
If Err.Number = 0 Then
Select Case set_reset
Case "set"
QDS_Notificacion_Usuario_ON_OFF = True
Case "reset"
QDS_Notificacion_Usuario_ON_OFF = False
End Select
End If
End Select
End If
If(estado = 100) Then
Select Case set_reset
Case "set"
QDS_Notificacion_Usuario_ON_OFF = True
Case "reset"
QDS_Notificacion_Usuario_ON_OFF = False
End Select
End If
4.3.1.
Descripción del Script
Este Script setea ó resetea el valor booleano de la variable establecida por parámetro,
dependiendo del “tipo de confirmación” establecido, QdactilSecure+FDA desplegará
una ventana de confirmación por firma biométrica ó acuse, y luego lo asienta en el
archivo de auditoría.
4.3.2.
4.3.3.
Descripción de parámetros
•
Valor de retorno:
Tipo: Variable_HMI (Bit)
Uso: variable que contiene el bit a Setear ó Resetear
•
Categoria:
Tipo: String
Uso: descripción de la categoría en el reporte
•
Nombre_de_objeto
Tipo: String
Uso: nombre representativo de la variable para asentar en el reporte
•
Descripción:
Tipo: String
Uso: descripción al Setear/Resetar la variable para asentar en el reporte
•
set_reset: (set/reset)
Tipo: String
Uso: define la acción sobre la variable; setear ó resetear
•
GMP: (0/1/2)
Tipo: String
Uso: activa ó desactiva el reporte FDA
Valores posibles:
• 0 (Sin auditoria)
• 1 (Con auditoria, método QDactilSecure)
• 2 (Con Auditoria, método Siemens)
•
Tipo_de_Confirmación: (Firma/Acuse/Ninguna)
Tipo: String
Uso: forma de confirmar la acción del usuario
Ejemplo de implementación
Nota: el siguiente ejemplo se muestra a través del proyecto Demo.
•
Crear un botón con el título “Invertir Bit” en la imagen deseada.
•
En “Eventos->Pulsar” agregar el siguiente evento:
o “Funciones VB-> QDS_Notificacion_Usuario_ON_OFF”
•
Completar los parámetros:
o Valor de retorno: bool2
o Categoria: Set
o Nombre_de_objeto: Bit
o Descripcion: Se setea la variable
o set_reset: set
o GMP: 1 (en demo, variable hmi)
o Tipo_de_Confirmacion: Acuse
Imagen 42:
Implementación de botón “Set”
4.4. Navegar pantalla
Se deberá crear un script VB (VisualBasic) dentro del proyecto WinCC Flex 2008 ó TIA
Portal v11/12 con las siguientes propiedades:
•
Nombre: QDS_Notificacion_Usuario_Pantalla
•
Tipo: Sub
•
Parámetros:
o Categoria (ByRef)
o Nombre_de_objeto (ByRef)
o Descripcion (ByRef)
o Imagen_Numero (ByRef)
o GMP (ByRef)
o Tipo_de_Confirmacion (ByRef)
Código:
Select Case Tipo_de_Confirmacion
Case "Ninguna"
Case "Firma"
Case "Acuse"
Case Else
Dim msg_err1
Set msg_err1 = CreateObject("WScript.Shell")
msg_err1.Popup "Error de parametrizacion, revise el parametro
[Tipo_de_Confirmacion] !!!"&vbCrLf &vbCrLf &"Valor ingresado: "&Tipo_de_Confirmacion
&vbCrLf &"Valores posibles: Firma ; Acuse ; Ninguna",,"Error de Programación",4112
Exit Sub
End Select
Dim estado
Select Case GMP
Case 1
estado = 10
Case 2
estado = 50
Case 0
estado = 100
Case Else
Dim msg_err2
Set msg_err2 = CreateObject("WScript.Shell")
msg_err2.Popup "Error de parametrizacion, revise el parametro [GMP]
!!!"&vbCrLf &vbCrLf &"Valor ingresado: "&GMP &vbCrLf &"Valores posibles: 0 ; 1 ; 2",,"Error
de Programación",4112
Exit Sub
End Select
If(estado = 10)Then
Dim usuario
GetUserName usuario
If Tipo_de_Confirmacion = "Ninguna" Then
ActivateScreenByNumber Imagen_Numero, 0
If usuario <> "" Then
NotifyUserAction hmiNone, hmiFalse, Categoria, Nombre_de_objeto,
Descripcion
Else
NotifyUserAction hmiNone, hmiFalse, Categoria, Nombre_de_objeto,
"(Sin Usuario Logueado) "& Descripcion
End If
Exit Sub
End If
If usuario = "" Then
Dim msg_login
Set msg_login = CreateObject("WScript.Shell")
msg_login.Popup "No hay un usuario identificado y la seguridad se encuentra
deshabilitada"&vbCrLf &vbCrLf &"Los tipos de confirmacion Firma y Acuse requieren
Seguridad" & usuario,,"Error de programacion",4112
Exit Sub
End If
Dim objeto
Dim programa
Dim respuesta
Dim respuesta_desglose
Dim valor_anterior
Dim usuario_nok
Dim tipo
Set objeto = CreateObject("WScript.Shell")
Dim path
path = objeto.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Quantia
S.A\QDactilSecure\Path")
If Tipo_de_Confirmacion = "Firma" Then
On Error Resume Next
Set programa = objeto.Exec(path +"QDactilSecure - Adminitrador.exe A03 "&
usuario)
tipo = "Firmado: "
End If
If Tipo_de_Confirmacion = "Acuse" Then
On Error Resume Next
Set programa = objeto.Exec(path +"QDactilSecure - Adminitrador.exe A04 "&
usuario)
tipo = "Acusado: "
End If
programa.StdIn.WriteLine Descripcion
Do While respuesta =""
respuesta = programa.StdOut.ReadLine()
respuesta_desglose = Split(respuesta,";")
Select Case respuesta_desglose(0)
Case "ok"
NotifyUserAction hmiNone, hmiFalse, Categoria,
Nombre_de_objeto, tipo & Descripcion & Descripcion &respuesta_desglose(1)
ActivateScreenByNumber Imagen_Numero, 0
Case "nok"
usuario_nok = respuesta_desglose(1)
NotifyUserAction hmiNone, hmiFalse, Categoria,
Nombre_de_objeto, "Firma Incorrecta: El usuario " & usuario_nok & " intento firmar por el
Usuario Actual"
respuesta= ""
Case "error"
estado = 50
Case "cancelar"
Exit Sub
End Select
Loop
End If
If(estado = 50) Then
Select Case Tipo_de_Confirmacion
Case "Ninguna"
On Error Resume Next
NotifyUserAction hmiNone, hmiFalse, Categoria,
Nombre_de_objeto, Descripcion
If Err.Number = 0 Then ActivateScreenByNumber
Imagen_Numero, 0
Case "Acuse"
On Error Resume Next
NotifyUserAction hmiAcknowledgement, hmiFalse, Categoria,
Nombre_de_objeto, Descripcion
If Err.Number = 0 Then ActivateScreenByNumber
Imagen_Numero, 0
Case "Firma"
On Error Resume Next
NotifyUserAction hmiSignature, hmiFalse, Categoria,
Nombre_de_objeto, Descripcion
If Err.Number = 0 Then ActivateScreenByNumber
Imagen_Numero, 0
End Select
End If
If(estado = 100) Then
ActivateScreenByNumber Imagen_Numero, 0
End If
4.4.1.
Descripción del script
Este Script navega al número de imagen de panel establecido por parámetro,
dependiendo del “tipo de confirmación” establecido, QDactilSecure+FDA desplegará
una ventana de confirmación por la firma biométrica ó acuse, y luego lo asienta en el
archivo de auditoría.
4.4.2.
4.4.3.
Descripción de parámetros
•
Categoria:
Tipo: String
Uso: descripción de la categoría en el reporte
•
Nombre_de_objeto
Tipo: String
Uso: nombre representativo de la pantalla para asentar en el reporte
•
Descripción:
Tipo: String
Uso: descripción de la pantalla que se va a navegar
•
Imagen_Numero:
Tipo: Int
Uso: define el número de la imagen hacia donde navegar
•
GMP: (0/1/2)
Tipo: String
Uso: activa ó desactiva el reporte FDA
Valores posibles:
• 0 (Sin auditoria)
• 1 (Con auditoria, método QDactilSecure)
• 2 (Con Auditoria, método Siemens)
•
Tipo_de_Confirmación: (Firma/Acuse/Ninguna)
Tipo: String
Uso: forma de confirmar la acción del usuario
Ejemplo de implementación
Nota: el siguiente ejemplo se muestra a través del proyecto Demo.
•
Crear un botón con el título “Ir a la Pantalla de Funciones FDA” en la imagen
deseada.
•
En “Eventos->Pulsar” agregar el siguiente evento:
o “Funciones VB-> QDS_Notificacion_Usuario_Pantalla”
•
Completar los parámetros:
o Categoria: Navegacion de Pantallas
o Nombre_de_objeto: Pantallas Principal
o Descripcion: Se abre la pantalla de funciones FDA
o Imagen_Numero: 2
o GMP: 1 (en demo, variable HMI)
o Tipo_de_Confirmacion: Firma
Imagen 43:
Implementación de botón “Ir a la Pantalla de Funciones FDA”
4.5. Ejecución en un Script
Se deberá crear un script VB (VisualBasic) dentro del proyecto WinCC Flex 2008 ó TIA
Portal v11/12 con las siguientes propiedades:
•
Nombre: QDS_Notificacion_Usuario_Scripts
•
Tipo: Function
•
Parámetros:
o Categoria (ByRef)
o Nombre_de_objeto (ByRef)
o Descripcion (ByRef)
o GMP (ByRef)
o Tipo_de_Confirmacion (ByRef)
Código:
Select Case Tipo_de_Confirmacion
Case "Ninguna"
Case "Firma"
Case "Acuse"
Case Else
Dim msg_err1
Set msg_err1 = CreateObject("WScript.Shell")
msg_err1.Popup "Error de parametrizacion, revise el parametro
[Tipo_de_Confirmacion] !!!"&vbCrLf &vbCrLf &"Valor ingresado: "&Tipo_de_Confirmacion
&vbCrLf &"Valores posibles: Firma ; Acuse ; Ninguna",,"Error de Programación",4112
Exit Function
End Select
Dim estado
Select Case GMP
Case 1
estado = 10
Case 2
estado = 50
Case 0
estado = 100
Case Else
Dim msg_err2
Set msg_err2 = CreateObject("WScript.Shell")
msg_err2.Popup "Error de parametrizacion, revise el parametro [GMP]
!!!"&vbCrLf &vbCrLf &"Valor ingresado: "&GMP &vbCrLf &"Valores posibles: 0 ; 1 ; 2",,"Error
de Programación",4112
Exit Function
End Select
If(estado = 10)Then
Dim usuario
GetUserName usuario
If Tipo_de_Confirmacion = "Ninguna" Then
QDS_Notificacion_Usuario_Scripts = "ok"
If usuario <> "" Then
NotifyUserAction hmiNone, hmiFalse, Categoria, Nombre_de_objeto,
Descripcion
Else
NotifyUserAction hmiNone, hmiFalse, Categoria, Nombre_de_objeto,
"(Sin Usuario Logueado) " & Descripcion
End If
Exit Function
End If
If usuario = "" Then
Dim msg_login
Set msg_login = CreateObject("WScript.Shell")
msg_login.Popup "No hay un usuario identificado y la seguridad se encuentra
deshabilitada"&vbCrLf &vbCrLf &"Los tipos de confirmacion Firma y Acuse requieren
Seguridad" & usuario,,"Error de programacion",4112
Exit Function
End If
Dim objeto
Dim programa
Dim respuesta
Dim respuesta_desglose
Dim usuario_nok
Dim tipo
Set objeto = CreateObject("WScript.Shell")
If Tipo_de_Confirmacion = "Firma" Then
On Error Resume Next
Set programa = objeto.Exec("%ProgramFiles%\Quantia S.A\QSolutions QDactilSecure\QDactilSecure - Adminitrador.exe A03 "& usuario)
tipo = "Firmado: "
End If
If Tipo_de_Confirmacion = "Acuse" Then
On Error Resume Next
Set programa = objeto.Exec("%ProgramFiles%\Quantia S.A\QSolutions QDactilSecure\QDactilSecure - Adminitrador.exe A04 "& usuario)
tipo = "Acusado: "
End If
programa.StdIn.WriteLine Descripcion
Do While respuesta =""
respuesta = programa.StdOut.ReadLine()
respuesta_desglose = Split(respuesta,";")
Select Case respuesta_desglose(0)
Case "ok"
QDS_Notificacion_Usuario_Scripts = "ok"
NotifyUserAction hmiNone, hmiFalse, Categoria,
Nombre_de_objeto,tipo & Descripcion &respuesta_desglose(1)
Case "nok"
usuario_nok = respuesta_desglose(1)
NotifyUserAction hmiNone, hmiFalse, Categoria,
Nombre_de_objeto, "Firmado Incorrecta: El usuario " & usuario_nok & " intento firmar por el
Usuario Actual"
respuesta= ""
Case "error"
estado = 50
Case "cancelar"
QDS_Notificacion_Usuario_Scripts = "nok"
End Select
Loop
End If
If(estado = 50) Then
Select Case Tipo_de_Confirmacion
Case "Ninguna"
On Error Resume Next
NotifyUserAction hmiNone, hmiFalse, Categoria,
Nombre_de_objeto, Descripcion
If Err.Number = 0 Then
QDS_Notificacion_Usuario_Scripts = "ok"
Else
QDS_Notificacion_Usuario_Scripts = "nok"
End If
Case "Acuse"
On Error Resume Next
NotifyUserAction hmiAcknowledgement, hmiFalse, Categoria,
Nombre_de_objeto, Descripcion
If Err.Number = 0 Then
QDS_Notificacion_Usuario_Scripts = "ok"
Else
QDS_Notificacion_Usuario_Scripts = "nok"
End If
Case "Firma"
On Error Resume Next
NotifyUserAction hmiSignature, hmiFalse, Categoria,
Nombre_de_objeto, Descripcion
If Err.Number = 0 Then
QDS_Notificacion_Usuario_Scripts = "ok"
Else
QDS_Notificacion_Usuario_Scripts = "nok"
End If
End Select
End If
If(estado = 100) Then
QDS_Notificacion_Usuario_Scripts = "ok"
End If
4.5.1.
Descripción del script
Este script retorna el valor “ok” cuando el parámetro “Tipo_de_Confirmacion” sea
“Ninguna”, ó en caso de ser “Firma”/”Acuse” y se confirme mediante la ventana de
QDactilSecure+FDA, en caso contrario retornará el valor “nok”
Nota: el uso de este script es exclusivo para la programación de scripts de usuarios.
4.5.2.
4.5.3.
Descripción de parámetros
•
Categoria:
Tipo: String
Uso: descripción de la categoría en el reporte
•
Nombre_de_objeto
Tipo: String
Uso: nombre representativo del objeto que es modificado para asentar en el
reporte
•
Descripcion:
Tipo: String
Uso: descripción de la acción sobre el objeto para asentar en el reporte
•
GMP: (0/1/2)
Tipo: String
Uso: activa ó desactiva el reporte FDA
Valores posibles:
• 0 (Sin auditoria)
• 1 (Con auditoria, método QDactilSecure)
• 2 (Con Auditoria, método Siemens)
•
Tipo_de_Confirmación: (Firma/Acuse/Ninguna)
Tipo: String
Uso: forma de confirmar la acción del usuario
Ejemplo de implementación
Nota: el siguiente ejemplo se muestra a través del proyecto Demo.
•
Crear un círculo en la imagen deseada con las siguientes características:
• “Apariencia->Fondo->Color” en “Rojo”
• “Misceláneo->Objeto->Nombre” “Círculo_1”
Crear un script VB (VisualBasic) dentro del proyecto WinCC Flex 2008 ó TIA Portal
v11/12 con las siguientes propiedades:
•
Nombre: Ejemplo_Scripts
•
Tipo: Sub
Código:
Dim resultado
resultado = QDS_Notificacion_Usuario_Scripts ("Cambio de
Color","Circulo","Se cambia el
color",SmartTags("Tipo_GMP"),"Acuse")
If resultado="ok" Then
Dim objeto
Set objeto = HmiRuntime.Screens("Funciones
FDA").ScreenItems("Círculo_1")
If SmartTags("bool3")=True Then
objeto.BackColor = RGB(255,0,0)
Else
objeto.BackColor = RGB(0,255,0)
End If
SmartTags("bool3") = SmartTags("bool3") Xor True
End If
Este Script invoca a la función VB “QDS_Notificacion_Usuario_Scripts” y guarda el
valor de retorno en “resultado”. Cuando el valor de “resultado” es igual a “ok” cambia el
color del circulo “Círculo_1” de rojo a verde y viceversa.
El valor de los parámetros es:
• Categoria: “Cambio de Color”
• Nombre_de_objeto: “Circulo”
• Descripcion: “Se cambia el color”
• GMP: 1 (en demo, variable HMI)
• Tipo_de_Confirmacion: “Acuse”
•
Crear un botón con el título “Ejemplo Script” en la imagen donde se encuentra
“Círculo_1”.
•
En “Eventos->Pulsar” agregar el siguiente evento:
o “Funciones VB-> Ejemplo_Scripts”
Imagen 44: Implementación botón “Ejemplo Script”
4.6. El proyecto Demo QdactilSecure + FDA
El paquete de software QDactilSecure+FDA incluye un proyecto Demo donde se
encuentra un programa de usuario de panel “Tipo” el cual implementa todas las
funcionalidades del sistema QDactilSecure+FDA.
Imagen 45: Proyecto Demo, QDactilSecure+FDA
En este proyecto se encuentran los “ejemplos de implementación” de los scripts
descriptos anteriormente. Se recomienda utilizarlos como base para la futura
implementación en el desarrollo que el implementador esté realizando.
5. Errores en tiempo de ejecución
Durante la ejecución del programa HMI puede producirse errores por la ausencia o falla de
dispositivos.
Cuando se produzca un error en tiempo de ejecución controlado, el sistema QDactilSecure
cambiará el método de identificación a Siemens de forma automática.
5.1. Falta/Falla de Llave
Cuando la “Llave USB” no está presente ó se encuentre dañada, al realizar una acción
que haga uso de QDactilSecure se desplegará una ventana de error con el código Nº 20
Imagen 46:
Ventana de Error Nº20
Si el sistema informa este error, deberá comprobarse la presencia de la “Llave USB” y
que esté debidamente conectada. De no solucionar el problema deberá solicitar
asistencia.
5.2. Falta/Falla de Sensor de huellas dactilares o tarjeta RFID
Cuando el “Sensor de huellas dactilares” o el “lector de tarjetas RFID” no está presente ó
se encuentre dañado, al realizar una acción que haga uso de QDactilSecure se
desplegará una ventana de advertencia informando la situación.
Imagen 47:
Ventana de advertencia, falta del sensor de huellas dactilares
Si el sistema informa esta advertencia, deberá comprobar que el sensor de huellas
dactilares o lector de tarjetas RFID esté debidamente conectado. De no solucionar el
problema deberá solicitar asistencia.

Documentos relacionados