> For the complete documentation index, see [llms.txt](https://docs.videc.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.videc.de/acron-9.3/anlagenkonfiguration/prozessanbindung/provider/providerid/treiberauswahl/universeller-odbc-treiber-fuer-werte.md).

# Universeller ODBC-Treiber für Werte

#### Hintergrund

Die Messdaten werden von dem ACRON Provider über die ODBC-Schnittstelle übernommen und in der ACRON Datenbank abgespeichert.

Das SQL-Statement zum Lesen der Daten ist frei konfigurierbar. ACRON merkt sich, ab welchem Zeitpunkt Daten übernommen wurden und setzt bei der nächsten Übernahme dort wieder auf.

Es werden grundsätzlich zwei Modi unterschieden:

|              |                                                                                                                                                                                                                                                                                                                                            |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Modus All    | Die Werte werden für alle externen Variablen gemeinsam mit einem SQL-Befehl abgefragt. Das ist in den meisten Fällen die richtige Methode.                                                                                                                                                                                                 |
| Modus Single | Die Werte werden für jede externe Variable einzeln mittels eines SQL-Befehls abgefragt. Diese Methode macht Sinn, wenn neue Werte zu unterschiedlichen Zeitpunkten in der ODBC-Quelle eintreffen. Beispielsweise trifft jede Sekunde ein Onlinewert für eine Variable ein – eine andere Variable erhält aber nur täglich einen neuen Wert. |

#### Konfiguration des SQL-Abfragebefehls

Der Treiber entnimmt den SQL-Abfragebefehl einer ASCII-Textdatei. Diese Datei muss sich in folgendem Pfad befinden:

Die Datei muss in dem Anlagendatenpfad auf dem Server abgelegt werden (nicht im Plantcache!). Das ist der Pfad, der beim Anlegen der Anlage angegeben wurde und der auch in ACRON Admin angezeigt wird.

Der Treiber sucht zunächst eine Datei mit der Bezeichnung `ODBC_UNI_Statement.txt`. Wenn diese Datei nicht vorhanden ist, sucht der Treiber nach der Datei `ODBC_UNI_Statement_X.txt`, wobei das "X" durch die Identifikation (Providernummer) ersetzt wird.

Für Provider 1 wird also nach Datei `ODBC_UNI_Statement_1.txt` gesucht.

Wenn auch diese Datei nicht vorhanden ist, wird folgendes SQL-Statement ausgeführt:

#### Standardabfrage im Modus All

`SELECT Timestamp, Tagname, Value`

`FROM Processdata`

`WHERE (Timestamp >= {ts '%s'})`

`ORDER BY Timestamp`

Dort, wo im Statement "%s" steht, wird zur Laufzeit das letzte erfolgreiche Übernahmedatum eingesetzt.

Es kann jedes beliebige, auch komplexe Statement z.B. Joins definiert werden. Einzige Bedingung ist jedoch, dass die drei Spalten in der angegebenen Reihenfolge als Ergebnis herauskommen:

* Spalte 1 (Timestamp) als SQL-Datentyp Timestamp
* Spalte 2 (Tagname) als SQL-Datentyp Text
* Spalte 3 (Value) als SQL-Datentyp Numerisch oder Text

#### Standardabfrage im Modus Single

`SELECT Timestamp, Value`

`FROM Processdata`

`WHERE (Tagname = '%s' AND Timestamp >= {ts '%s'})`

`ORDER BY Timestamp`

Dort, wo im Statement das erste "%s" steht, wird zur Laufzeit der abzufragende Name der externen Variablen eingesetzt.

Dort, wo im Statement das zweite "%s" steht, wird zur Laufzeit das letzte erfolgreiche Übernahmedatum eingesetzt.

Es kann jedes beliebige, auch komplexe Statement z.B. Joins definiert werden. Einzige Bedingung ist jedoch, dass folgende zwei Spalten in der angegebenen Reihenfolge als Ergebnis herauskommen:

* Spalte 1 (Timestamp) als SQL-Datentyp Timestamp
* Spalte 2 (Value) als SQL-Datentyp Numerisch oder Text

Hinweis

Der Wert wird vom Treiber immer als Text von der Datenquelle angefordert und automatisch in den konfigurierten ACRON Datentyp der externen Variablen konvertiert.

Instandhaltungsimpulse können nicht übernommen werden. Hier müssen in der SPS Instandhaltungszähler gebildet werden.

Es werden grundsätzlich alle Daten übernommen, die die SQL-Abfrage liefert. Bereits vorhandene Daten mit dem gleichen Zeitstempel werden in der ACRON Datenbank überschrieben.

#### Syntax der externen Variablen

Angabe des Variablennamens so, wie sie von der SQL-Abfrage zurückgeliefert werden.

## Treiber <a href="#treiber" id="treiber"></a>

### Treiberdatei

Anzeige der Bezeichnung des ausgewählten Treibers und Auswahl eines Treibers aus der Liste der installierten Treiber

### Version

Version der Treiberdatei

### Schnittstellentyp

Anzeige des Schnittstellentyps des Treibers

### Datenübergabetyp

Beschreibung des Datenübergabetyps

## Treiberparameter <a href="#treiberparameter" id="treiberparameter"></a>

### Name der ODBC-Datenquelle

Name, der vom ODBC-Administrator angelegt wurde.

### ODBC Benutzer

Der Benutzername zum Zugriff auf die Datenbank ist optional.

### ODBC-Password

Das ODBC-Passwort zum Zugriff auf die Datenbank ist optional.

### Differenzzeit in Sekunden / Zeitformat (L,U) / Modus (A,S)

Die drei Parameter werden durch ein Leerzeichen getrennt angegeben, z.B. 0 L A.

### Differenzzeit

Einstellung, ob ACRON die Daten überlappend liest.

Normalerweise (Differenzzeit = 0 Sekunden) liest ACRON bei erneutem Lesen die Daten genau ab dem Zeitpunkt, bis zu dem beim letzten Lesen Daten gefunden wurden.

Hinweis

Falls nachträglich historische Daten in die Datenbank geschrieben werden, bekommt ACRON das nicht mit. In diesem Fall ist es sinnvoll, die Daten mit einer Differenzzeit erneut zu lesen. Wenn z. B. stündlich Daten aus einer Außenstelle nachträglich eingefügt werden, dann kann durch eine Differenzzeit von 3600 Sekunden bewirkt werden, dass diese Daten vom Provider auch übernommen werden.

### Zeitformat

L- die Zeitstempel werden in der ODBC-Quelle in lokaler Zeit angegeben

U- die Zeitstempel werden in der ODBC-Quelle in UTC Zeit angegeben

### Modus

A- der Modus All wird verwendet

S- der Modus Single wird verwendet

## Einstellungen <a href="#einstellungen" id="einstellungen"></a>

### Messintervall

In diesem Intervall werden das SQL-Statement ausgeführt und die Daten übernommen.

### Abfrageverzögerung nach Start

Beginn der Datenprotokollierung in Sekunden nach erfolgreichem Aufbau der Prozesskommunikation der ACRON Provider. Das ist z.B. sinnvoll, wenn der Kommunikationspartner nach einem Neustart einige Zeit benötigt, um alle Variablen zu initialisieren.

Empfohlener Eintrag: 0 Sek.

### Providerfenster immer im Vordergrund anzeigen

Providerfenster werden immer im Vordergrund angezeigt

### Testmodus aktivieren

Anzeige eines Fensters mit Diagnosemeldungen

Der ACRON Provider öffnet beim Start ein Fenster mit Diagnosemeldungen. Das Log-File wird unter dem jeweiligen Providernamen im ACRON Installationspfad, Verzeichnis `Log`, abgespeichert.

Hinweis

Da der Diagnosemodus die Performance der Anwendung stark beeinflusst und die aufgezeichneten Meldungen in der Regel nur durch den technischen Support ausgewertet werden können, sollte eine Aktivierung nur erfolgen, wenn eine entsprechende Aufforderung durch den Support vorliegt.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.videc.de/acron-9.3/anlagenkonfiguration/prozessanbindung/provider/providerid/treiberauswahl/universeller-odbc-treiber-fuer-werte.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
