Gamesa Wind Turbines


This plugin will read from the Gamesa Data Historian via ODBC. The Gamesa Historian is a Microsoft SQL Server.

Configuration of the Ardexa Edge Device

Ensure you have read a copy of the manufacturer's operating and safety manual. Please review the manual for safety instructions. Ardexa uses the Gamesa Historian to read live and historical data. The Historian uses a Microsoft SQL Server to store the data. It is available from TCP Port 1433 on the IP address for which the Gamesa Historian server is located. Access to the data is via userid and password to a specific database. Once the Ardexa edge device is installed on the plant's network, verify that it can "ping" the Gamesa Historian using the following command in the REMOTE SHELL (replace the IP address with the IP address of the Historian Server):

ping -c 1

Also, check that the TCP Port for the Gamesa Historian is open. You can do this using the REMOTE SHELL, using the nmap command as follows.

nmap -sS -p 1433

Generally speaking, most firewalls are stateful. This means that once you allow outgoing connections, the firewall will recognise responses coming back from the Internet and let them pass despite the fact that there is no explicit rule to allow incoming data. Some older Gamesa installations may require additional rules to allow the Ardexa machine to work correctly. So be aware that;

  • The firewall may not be stateful and therefore explicit incoming rules need to be created to allow replies to come back through the firewall (5671/tcp, 53/udp)

  • DNS uses UDP which is not a "connection orientated" protocol and while modern routers handle it just fine. Some Gamesa sites might be old enough to require explicit rules to allow DNS.

At the Wind park, Gamesa sometimes sets up the Ardexa devices in the following way. Use the ifconfig or ip a command to check the interfaces.

  1. LAN A: Internet with an IP address allocated by DHCP

  2. LAN B: Direct connection to the OPC server, via a static IP address provided by the plant technicians

The static address needs to be applied to the interface LAN B above. Please check the correct interface since it is possible that the interfaces may appear to be swapped. The OPC server address is almost always located at IP address To check which interface is being used for Internet access, run the route command. It will respond with something like...

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         UG    203    0        0 enp2s0     U     0      0        0 docker0   U     203    0        0 enp2s0 U     0      0        0 enp1s0

The Iface column in the line with Destination default tells you which interface is used for Internet access. Please don't forget to send to Ardexa:

  1. Clear photographs of the installation

  2. The IP address of the Gamesa Historian

  3. The userid of the Gamesa Historian

  4. The password of the Gamesa Historian

  5. The database name, if it is different to windnet

  6. The port of the Gamesa Historian, if it is different to 1433.

  7. The quantity and model numbers of all wind turbines at the park


The Linux driver to read the Microsoft SQL Server is automatically installed and configured when this plugin is installed. This Ardexa plugin will read the Gamesa data, via the Historian, in real time, and send it to the Ardexa cloud. Gamesa Historian data is recorded at various intervals, and stored historically for (usually) the life of the system. Selected data is collected from the Historian. The plugin will read 5 different types of datasets: live, logbook, 15m, 10m, config (or all to show all datasets). The following scenarios are recommended to be configured as five separate scenarios:

Dataset Name    Description                                 Collection Frequency
10m             Turbine values sent to the "wind10m" table      5 minutes
15m             Turbine values sent to the "wind15m" table      5 minutes                
live            Live values sent to the "windlive" table        30 seconds
logbook         Events sent to the "logbook" table              1 minute
config          Events sent to the "configuration-data" table   1 day

Ardexa will only send data to the cloud if the timestamp of the last read has changed. Ardexa is able to send all historical data to the cloud, if required. The discover verb is be used to display the contents of the database. It needs 2 arguments

a. Config path .... path to the configuration file (see above), and
b. The datasets to view. This could be one of:
    - config
    - logbook
    - live
    - 10m
    - 15m
    - all (show all datasets)

Run a discover to see all the data. It will also show the data and time on SQL Server and compare it to the Ardexa device. Pay particular attention to these, since at times the Gamesa Historian time may not be synced. All date and times are in UTC.


  • Configuration YAML A configuration YAML file must be included which can contain up to 6 items of information. An example of which is:

    user: {whatever}
    passwd: {whatever}
    db_name: windnet
    driver: FreeTDS
    port: 1433
  • The db_name, driver and/or port maybe excluded and the default values will be used as follows:

    db_name: windnet
    driver: ODBC Driver 17 for SQL Server
    port: 1433
  • The port is optional. It will default to 1433

  • If db_name is optional. If it is not defined, it will default to: windnet

  • the user and passwd items MUST be supplied by the client

  • The driver is the software driver to use to connect to the database. For MSSQL installations greater than Version 2000, remove the driver entry and it will default to ODBC Driver 17 for SQL Server. For all other installations, include the line driver: FreeTDS

Debug Commands

Running a discover command with -vv (debug data), will show the available tables and all available data in the database. Command example:

gamesa_odbc  -vv discover /opt/ardexa/config/gamesa-odbc/task/task-1.config_path all

You can run a first verb, which will show the earliest data record for the dataeset/turbine. Command examples:

gamesa_odbc first /opt/ardexa/config/gamesa-odbc/task/task-1.config_path 10m BR08
gamesa_odbc first /opt/ardexa/config/gamesa-odbc/task/task-1.config_path logbook BD02

It will return something like:


There is also sample verb which again can only be manually run. It will show a sample of the last 2 hours of the database, for all turbines. The argument for this command is:

a. Config path .... path to the configuration file, and
b. Item code ... such as `24711` which is the item you are interested in showing.

eg; gamesa_odbc sample /opt/ardexa/config/gamesa-odbc/task/task-1.config_path 24711

Last updated