FB_RegSetValue

FB_RegSetValue 1:

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_RegSetValue" können einzelne Schlüsselwerte (Values) oder neue Schlüsselnamen und Werte (SubKeys+Values) in dem Zweig mit dem vordefinierten Handle HKEY_LOCAL_MACHINE geschrieben bzw. generiert werden. Es können beliebige Value-Typen (z. B. REG_DWORD, REG_SZ) oder maximal 500 Byte Binärdaten (REG_BINARY) in die Systemregistrierung geschrieben werden. Ist ein Schlüsselwert noch nicht vorhanden, dann wird dieser automatisch neu erzeugt.

Bemerkung:

Die sSubKey und sValueName-Strings dürfen keine Leerstrings sein!

FB_RegSetValue 2:

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.
Die Funktionsbausteine FB_RegQueryValue und FB_RegSetValue arbeiten wie jede 32 Bit Anwendung automatisch unterhalb des WOW6432Node-Ordners, wenn ein Registry Eintrag unterhalb vom SOFTWARE-Ordner ausgewählt wird. Die Umleitung wird automatisch vom Betriebssystem ausgeführt.

FB_RegSetValue 3: Eingänge

VAR_INPUT
    sNetId   : T_AmsNetId;
    sSubKey  : T_MaxString;
    sValName : T_MaxString;
    eValType : E_RegValueType;
    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

eValType

E_RegValueType

Das Datentypformat der zu schreibenden Registrierungsdaten z. B: REG_DWORD oder REG_SZ.

cbData

UDINT

Anzahl der zu lesenden Value-Datenbytes ( Bei Stringvariablen inklusiv der abschließenden Null ).

pData

BYTE

Adresse von einem Datenpuffer/SPS-Variablen, der/die Value-Daten enthält. Die Adresse kann dem ADR-Operator ermittelt werden. Der Programmierer ist selbst dafür verantwortlich den Datenpuffer so zu dimensionieren, dass cbData-Datenbytes daraus entnommen werden können.

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.

FB_RegSetValue 4: Ausgänge

VAR_OUTPUT
    bBusy    : BOOL;
    bError   : BOOL;
    nErrId   : UDINT;
    cbWrite  : 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

cbWrite

UDINT

Anzahl der erfolgreich geschriebenen Value-Datenbytes.

Beispiel:

In dem Zweig mit dem vordefinierten Handle HKEY_LOCAL_MACHINE soll ein SubKey 'SOFTWARE\MyCompany\MyProject' mit dem Schlüsselnamen 'LogFileName' , dem Typ REG_SZ

und Wert 'c:\MyProject\Log'' neu angelegt und gesetzt werden.

PROGRAM MAIN
VAR
    fbRegSetValue   : FB_RegSetValue;
    bBusy               : BOOL;
    bError          : BOOL;
    nErrId          : UDINT;
    cbWrite         : UDINT;
    bWrite          : BOOL;
    sNewValue       : STRING := 'c:\MyProject\Log';
END_VAR
FB_RegSetValue 5:
FB_RegSetValue 6:

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)