Crea un servidor OPC 馃捇 de hist贸ricos con PostgreSQL 馃悩

Publicado el 28.05.2023 a las 21:01

Crea un servidor OPC 馃捇 de hist贸ricos con PostgreSQL 馃悩

  1. Instalar software MatrikonOPC Server for General Database Access (GDA)

  2. Configurando la fuente de datos

  3. Trabajando con MatrikonOPC GDA

    • Creando la conexi贸n entre MatrikonOPC GDA y el origen de datos ODBC

    • Mapeando los datos de la tabla de PostgreSQL con MatrikonOPC GDA

    • Utilizando MatrikonOPC HDA Explorer para comprobar que todo funciona

  4. Consideraciones al instalar PostgreSQL

  5. Buscando errores en los logs de ODBC

  6. Errores comunes

    • Timed out while waiting for result of method BrowseTo

  7. 驴C贸mo extender la licencia gratuita de MatrikonOPC Server for GDA?

Crea un servidor OPC 馃捇 de hist贸ricos con PostgreSQL 馃悩

Para crear un servidor OPC HDA conectado a un servidor de base de datos PostgreSQL voy a utilizar el software MatrikonOPC Server for General Database Access (GDA)


El uso de este software de Matrikon es bajo licencia.


La licencia no expira y es una por servidor.

Instalar software MatrikonOPC Server for General Database Access (GDA)

Hay que tener en cuenta varias consideraciones para instalar el software correctamente.


Voy a detallar las consideraciones para instalar en un Windows 10 de 64 bits.


Si tu Sistema Operativo es otro puedes buscar las instrucciones en el siguiente documento.


Las consideraciones que he tenido en cuenta para instalar satisfactoriamente el MatrikonOPC Server GDA en mi Windows 10 64 bits son:


  • Instalar .NET 3.5

    Seleccionar instalaci贸n de .NET 3.5
  • Ejecutar la instalaci贸n con un usuario local que pertenezca al grupo Administradores .

    馃毄 Un usuario administrador de dominio no ser谩 v谩lido.

  • Desactivar el antivirus durante la instalaci贸n.
  • Crear una regla en el antivirus para excluir del an谩lisis en tiempo real cualquier carpeta y archivos de MatrikonOPC.
  • Cambiar el Data Execution Prevention a "Activar DEP s贸lo para programas y servicios esenciales de Windows". Esto es s贸lo requerido durante la instalaci贸n del software.

    Es probable que el ordenador tenga que ser reiniciado para poder aplicar la nueva configuraci贸n.

    Configurando para instalar MatrikonOPC GDA
  • Cambiar la configuraci贸n del User Account Control a "Never notify".

    S贸lo requerido durante la instalaci贸n del software.

    Bajando el user control de windows al m铆nimo

Si toda va bien podr谩s instalar el software.

Pantalla de instalaci贸n de MatrikonOPC GDA

Al abrirlo te encontrar谩s la siguiente pantalla 馃憞

Pantalla de bienvenida de MatrikonOPC GDA

Configurando la fuente de datos (ODBC)

El servidor MatrikonOPC para GDA utiliza las fuentes de datos de Microsoft para comunicarse con tu base de datos.


Como en este caso voy a utilizar una base de datos de PostgreSQL, tendr茅 que instalarme un driver para ello.


Yo lo he descargado de su fuente oficial.


Aunque mi Sistema Operativo es de 64 bits, el driver que me funcion贸 fue el de 32 bits 馃樁


Una vez descargado e instalado el driver, abres el Administrador de origen de datos ODBC y agregas un nuevo origen de datos en DSN del sistema completando con los datos de tu base de datos de PostgreSQL a atacar.


Eliges el nombre que quieras para el Data Source que utilizar谩s despu茅s para cargarlo.

Crear conexi贸n ODBC para PostgreSQL

Trabajando con MatrikonOPC GDA

Creando la conexi贸n entre MatrikonOPC GDA y el origen de datos ODBC

  1. Abres el MatrikonOPC server for GDA y pulsas sobre New Node.
  2. Eliges como Provider Matrikon GDA for ODBC.
  3. En Data Source eliges en nombre de la fuente de datos que elegiste al crearla.
  4. Defines los mapeos de c贸digos de validaci贸n a c贸digos OPC.
  5. Defines Text Padding a comilla simple 馃憠'馃憟.
  6. Defines Timestamp Padding a comilla simple, 馃憠'馃憟.
Crear Node en MatrikonOPC GDA

Mapeando los datos de la tabla de PostgreSQL con MatrikonOPC GDA

El nombre de los campos de los datos en mi base de datos de PostgreSQL no son descriptivos para el usuario que vaya a consumir los datos desde el OPC, as铆 que lo que hago es crearme en PostgreSQL una vista con un nombre para los campos que le resulte de ayuda al usuario final de OPC.


En la vista voy a asignar los siguientes alias

  • Para el campo que quiero que sea la descripci贸n usar茅 el alias descipcion
  • Para el campo que quiero que sea el timestamp usar茅 el alias fecha
  • Para el campo que quiero que sea el valor usar茅 el alias valor
  • Para el campo que quiero que sea la calidad usar茅 el alias validez

La instrucci贸n SQL para crearme la vista ser谩:

CREATE OR REPLACE VIEW public.nombre_de_la_vista
 AS
 SELECT campo_de_fecha AS fecha,
    campo_de_descripcion AS descripcion,
    campo_de_valor AS valor,
    campo_de_validez_del_valor AS validez
   FROM tabla_donde_estan_los_datos
     JOIN incluye_join_si_los_necesitas;
Vista testopc en PGAdmin
Para crear el Data Mapping:
  • Haz clic en la flecha hacia abajo de la derecha del bot贸n New Node o haz clic con el bot贸n derecho sobre la conexi贸n creada y dentro de New Node y elige Data Mapping.

  • Asigna un nombre al Data Mapping, en mi caso eleg铆 data_mapping_postgres
  • Elige como OPC Interface -> HDA (Historical Data Access)
  • Elige la tabla de la que quieres obtener los datos, en mi caso, como te he contado cre茅 una vista para presentar el nombre de los campos con un texto descriptivo.

    El nombre que le di a la vista fue testopc

  • En OPC Mappings selecciona qu茅 campo quieres asignar a Tag Name, Value, Timestamp y Quality

Crear Data Mapping en MatrikonOPC GDA

Ten en cuenta las siguientes consideraciones:

  • 馃毄 El nombre de la vista debe ser con todas las letras en min煤sculas.

  • 馃毄 Al crear la vista, hazlo en el esquema public si usaste el usuario postgres para la creaci贸n del conector ODBC ya que el MatrikonOPC GDA cuando intente buscar los datos en la vista, para obtener los tags hace la siguiente consulta SQL:

    Select distinct descripcion from nombre_de_la_vista

    Si creas el conector ODBC con otro usuario deber谩s crear la vista en el esquema que tome por defecto ese usuario.

    El darme cuenta de esto me llev贸 bastante horas 馃槺

    Consegu铆 encontrar que fallaba por esto al activar los logs del driver ODBC, fue qui茅n me dio la pista.

    Log de ODBC

    El aviso que me daba el MatrikonOPC GDA era Table 'nombre_de_la_vista' does not exist or contains no columns. The server may not function properly. Proceed anyway? 馃憞

    Advertencia de MatrikonOPC GDA

    Si quiere saber c贸mo configurar los logs del driver ODBC para que sea verboso y poder analizar todo el tr谩fico te lo cuento 馃憠 aqu铆 馃憟

Utilizando MatrikonOPC HDA Explorer para comprobar que todo funciona

  • Abrimos el MatrikonOPC HDA Explorer
  • Seleccionamos el servidor Matrikon.OPC.GDA.1
  • Creamos un nuevo tag OPC

    Creando tag en Matrikon HDA OPC Explorer
  • Navegar en el 谩rbol de Available Items in Server 'Matrikon.OPC.GDA.1' buscando el Data Mapping que creamos con el nombre data_mapping_postgres
  • Podr谩s ver los tags disponibles la caja de abajo si todo ha ido bien

    A帽adiendo tags en Matrikon HDA OPC Explorer

Voy a seleccionar el tag de Carga para la prueba:


Tags a帽adidos en Matrikon OPC Explorer

Con el tag a帽adido seleccionado pulsa en Read Raw y te saldr谩 un cuadro de di谩logo para elegir el rango de fecha del cu谩l quiere obtener los datos.

Quita la selecci贸n de Get Bounds.

Tags a帽adidos en Matrikon HDA OPC Explorer

Pulsa en Read Raw


Tags le铆dos en Matrikon OPC HDA Explorer

Te dejo una vista de los datos en el PgAdmin para que veas que coinciden 馃馃

Tags le铆dos en Matrikon OPC HDA Explorer

Consideraciones al instalar PostgreSQL por el ODBC

Cuando vayas a elegir qu茅 versi贸n de PostgreSQL instalar, tienes que tener en cuenta que el ODBC oficial a fecha de hoy es antiguo y no soporta los nuevos m茅todos de autenticaci贸n.


Si no quieres tener problemas instala un PostgreSQL 12 o anterior.


Si instalas una versi贸n m谩s reciente, configura la autenticaci贸n con MD5, y no la que trae por defecto.

Buscando errores en los logs de ODBC

Para activar los logs del driver ODBC tiene que abrir la aplicaci贸n del ODBC:

  1. Seleccionas el origen de datos del que quieras capturar el tr谩fico

  2. Pulsas en Datasource
  3. Activas el checkbox CommLog

    Activando logs de ODBC p谩gina 1
  4. Pulsa en el bot贸n Global
  5. En el textbox Folder for logging a帽ades la ruta donde quieres que se guarden los logs, en mi caso eleg铆 C:\odbcLog

    Definiendo ruta para guardar los logs

Siguiendo esos pasos y tras varias solicitudes de trabajo con el data source ver谩s lo siguiente en la ruta de logs

Definiendo ruta para guardar los logs

Error de Timed out while waiting for result of method BrowseTo en MatrikonOPC Server for GDA

驴Por qu茅 me aparece el error de Timed out while waiting for result of method BrowseTo en MatrikonOPC Server for GDA?

Exception ocurred while attempting for communicating with the server: Timed out while waiting for result of method BrowseTo
Error en MatrikonOPC Server for Generic Database Access (GDA) de BrowseTo

Significa que tu tiempo de licencia ha finalizado.


Una acci贸n r谩pida que puedes hacer es reiniciar el servicio de MatrikonOPC Server for Generic Database Access (GDA) lo que te otorgar谩 dos horas m谩s de funcionamiento del software.


    Para ello:
  • Cierra el software de Matrikon
  • Abre el administrador de tareas
  • Busca el servicio MatrikonOPC Server for Generic Database Access (GDA)
  • Lo reinicias
Reiniciando el servicio de MatrikonOPC Server for Generic Database Access (GDA)

驴C贸mo extender la licencia gratuita de MatrikonOPC Server for GDA?

Solicita una licencia de 30 d铆as a Matrikon si quieres extender la licencia de forma gratuita.


Cuando tengas dicha licencia siguie los siguiente pasos:

  1. Lanzar el License Wizard del producto (desde Inicio -> Programas -> MatrikonOPC -> Nombre_del_software) haciendo clic derecho y seleccionando "Ejecutar como administrador鈥 (aunque hayamos iniciado sesi贸n con credenciales de Administrador).
  2. Introducir los siguientes detalles para activar el software y hacer clic en "Siguiente".

    • Product: OPC Server for GDA
    • Activation key: ***
    • Lock selector: 0x04
  3. El Asistente intentar谩 ponerse en contacto con el servidor de licencias MatrikonOPC a trav茅s de Internet. Si lo consigue, el software quedar谩 licenciado y no ser谩 necesaria ninguna acci贸n adicional.
  4. Si no consigue conectar con el servidor de licencias MatrikonOPC, hay dos opciones: Licenciamiento a trav茅s de p谩gina web o licenciamiento por correo electr贸nico. En ambos casos hay que seleccionar la opci贸n "Guardar..." en la ventana del License Wizard para crear un archivo llamado "summary.txt". Si se opta por licenciar a trav茅s de la p谩gina web ir al paso 5, o ir al paso 7 para la opci贸n de correo electr贸nico. En ambos casos no cerrar la ventana del License Wizard.
  5. Si se ha seleccionado la opci贸n de licenciamiento a trav茅s de la p谩gina web, desde un ordenador con acceso a Internet habr谩 que iniciar sesi贸n en http://opclicensing.matrikon.com e introducir la informaci贸n del archivo summary.txt guardado en el paso 4 (summary.txt es un archivo de texto y se puede abrir en el Bloc de notas). Cuando toda la informaci贸n solicitada haya sido introducida hay que hacer click en "Request License Key" para generar la licencia. A continuaci贸n, hay que pulsar en "Guardar..." para guardarla y copiarla en el ordenador que se desea licenciar.
  6. En el ordenador que se desea licenciar seleccionaremos "Examinar ..." en la ventana del License Wizard para seleccionar el archivo que se ha generado desde la p谩gina web. Elegiremos "Siguiente ->" para aplicar la licencia. El software quedar谩 licenciado y no ser谩 necesaria ninguna acci贸n adicional. Por favor, contactad con nosotros si apareciera alg煤n problema.
  7. Si se ha seleccionado la opci贸n de correo electr贸nico, habr谩 que enviar el archivo summary.txt como adjunto respondiendo a este correo. MatrikonOPC Licensing generar谩 una licencia y la enviar谩 por e-mail. Hay que tener en cuenta que es probable que haya un retraso de 24 horas cuando se utiliza este m茅todo.

Hasta luego 馃枛