FB_RegQueryValue

Die Systemregistrierung ist ein hierarchisch strukturierter Baum. Ein Knoten im Baum wird als Schlüssel (Key) bezeichnet. Jeder Schlüssel kann wiederum Unterschlüssel (SubKeys) und Datenwerte (Values) enthalten. Mit dem Funktionsbaustein "FB_RegQueryValue" können einzelne Datenwerte (Values) aus der Systemregistrierung aus dem Zweig mit dem vordefinierten Handle HKEY_LOCAL_MACHINE ausgelesen werden. Beim Erfolg werden cbData-Datenbytes in den Puffer mit der Adresse pData hineinkopiert. Mit dem Funktionsbaustein können beliebige Value-Typen (z. B. REG_DWORD, REG_SZ) oder Binärdaten mit einer unbegrenzten Bytelänge (REG_BINARY) ausgelesen werden.
Bemerkung:
Die sSubKey und sValueName-Strings dürfen keine Leerstrings sein!
![]() | HKEY_LOCAL_MACHINE\SOFTWARE\ bei 64 Bit Betriebssystemen In einem 64 Bit Windows Betriebssystem werden alle Registry Einträge von und für 32 Bit Anwendungen nicht unter HKEY_LOCAL_MACHINE\SOFTWARE\ sondern unter HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ abgelegt. |
Eingänge
VAR_INPUT
sNetId : T_AmsNetId;
sSubKey : T_MaxString;
sValName : T_MaxString;
cbData : UDINT;
pData : POINTER TO BYTE;
bExecute : BOOL;
tTimeOut : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
sNetId | T_AmsNetID | Hier kann ein String mit der Netzwerkadresse des TwinCAT-Rechners angegeben werden, dessen Systemregistrierung gelesen werden soll. Für den lokalen Rechner kann auch ein Leerstring angegeben werden. |
sSubKey | T_MaxString | String mit dem SubKey-Namen |
sValName | T_MaxString | String mit dem Value-Namen |
cbData | UDINT | Anzahl der zu lesenden Value-Datenbytes. |
pData | BYTE | Adresse eines Datenpuffers/Variablen in den/die Value-Daten hineinkopiert werden sollen. Die Adresse kann dem ADR-Operator ermittelt werden. Der Programmierer ist selbst dafür verantwortlich den Datenpuffer so zu dimensionieren, dass dieser cbData-Datenbytes aufnehmen kann. |
bExecute | BOOL | Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert. |
tTimeout | TIME | Gibt die Timeout-Zeit an, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf. |
Ausgänge
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
nErrId : UDINT;
cbRead : UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bBusy | BOOL | Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt. |
bError | BOOL | Sollte ein Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde. |
nErrId | UDINT | Liefert bei einem gesetzten bError-Ausgang die ADS-Fehlernummer oder einen befehlsspezifischen Fehlercode zurück (Tabelle). |
Fehlercodes | Fehlerbeschreibung |
---|---|
0x00 | Kein Fehler |
0x01 | Der Key mit dem Namen sSubKey konnte nicht geöffnet/gefunden werden. |
0x02 | Der Schlüsselwert mit dem Namen sValName konnte nicht geöffnet/gefunden werden. |
Name | Typ | Beschreibung |
---|---|---|
cbRead | UDINT | Anzahl der erfolgreich gelesenen Value-Datenbytes. |
Beispiele:
Es sollen aus der Systemregistrierung die Werte AxisID und LogFilePath gelesen werden.

PROGRAM MAIN
VAR
fbRegQueryValue : FB_RegQueryValue;
bRead : BOOL;
bBusy : BOOL;
bError : BOOL;
nErrId : UDINT;
cbRead : UDINT;
sValData : STRING;
nAxisID : DWORD;
END_VAR
REG_DWORD-Value lesen:
Hier wurde der Wert 0x22 aus der Registrierung in die SPS-Variable nAxisId eingelesen.
REG_SZ-Value lesen:
Hier wurde der String 'c:\MyProject\Log' aus der Registrierung in die SPS-Variable sValData eingelesen.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.0 | PC oder CX (WES7/Win7/Win10: TC RT x86/x64, WEC6/7: TC RT x86, WEC7: TC CE7 ARMV7, TC/BSD: TC RT x64, TC OS ARMT2) | Tc2_Utilities (System) |