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!

VAR_INPUT

VAR_INPUT
    sNetId      :T_AmsNetId;   
    sSubKey     :T_MaxString; 
    sValName    :T_MaxString;
    eValType    :E_RegValueType;
    cbData      :UDINT;
    pData       :UDINT; 
    bExecute    :BOOL;
    tTimeOut    :TIME := DEFAULT_ADS_TIMEOUT;
END_VAR

sNetId: Hier kann ein String mit der Netzwerkadresse des TwinCAT-Rechners angegeben werden, dessen Systemregistrierung geschrieben werden soll. Für den lokalen Rechner kann auch ein Leerstring angegeben werden.

sSubKey: String mit dem SubKey-Namen.

sValName: String mit dem Value-Namen.

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

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

pD ata:    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: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.

tTimeOut: Gibt die Timeout-Zeit an, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf.

VAR_OUTPUT

VAR_OUTPUT
    bBusy       :BOOL;
    bError      :BOOL;
    nErrId      :UDINT;
    cbWrite     :UDINT;
END_VAR

bBusy: Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.

bError: Sollte ein ADS-Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde.

nErrId: Liefert bei einem gesetzten bError-Ausgang die ADS-Fehlernummer oder den Befehlsspezifischen Fehlercode (Tabelle).

cbWrite: Anzahl der erfolgreich geschriebenen Value-Datenbytes.

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.

 

Beispiele:

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 2:

FB_RegSetValue 3:

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.7.0 Build > 519

PC or CX (x86)

TcPlcUtilities.Lib; Standard.Lib; PLCSystem.Lib; TcPLCAds.Lib; PLCHelper.Lib;

TwinCAT v2.8.0 Build > 723

PC or CX (x86)

TcUtilities.Lib

TwinCAT v2.10.0 Build >= 1301

CX (ARM)