FB_RegSetValue
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
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) |