Client - Write Data (SetAllDataValues, SetDataValues)

Dieses Beispiel zeigt die Verwendung der „SetAllDataValuesReq“- und „SetDataValuesReq“-Methoden des Client-Funktionsbausteins.

Download TwinCAT XAE Projekt (*.zip): Sample09.zip

Das hier beschriebene Beispiel nutzt die Statemachine, welche in dem Kapitel „Allgemeine Client - Projektstruktur“ beschrieben ist. Die States: 0,1,11 und 100 sind identisch zu der dort beschriebenen Statemachine. Andere States wurden für das Beispiel modifiziert oder auch neue States hinzugefügt.

Beispielprojekt

Im Funktionsbaustein FB_IEDClient und State 10 sind mehrere IF-Anweisungen aufgeführt, welche Befehle (Methodenaufrufe) des Client-Bausteins aktivieren. Jeder Befehl in der IF-Anweisung wird durch eine steigende Flanke an einer der booleschen Variablen aktiviert. Die booleschen Variablen sind im Deklarationsteil des Funktionsbausteins „FB_IEDClient“ definiert. Zu Testzwecken kann der Benutzer in der Online-Ansicht die Werte der booleschen Variablen auf „TRUE“ setzen und die Befehlsabarbeitung auf diese Weise aktivieren. Danach wird zum State 11 gewechselt, wo in weiteren SPS-Zyklen die Methode „ipResult.Execute()“ so lange aufgerufen wird, bis die Befehlsabarbeitung abgeschlossen wurde. Dies ist dann der Fall, wenn „ipResult.IsBusy()“ den Wert „FALS“E zurück liefert.

Nach der erfolgreichen Abarbeitung eines Befehls wird die Statemachine in den State 0 versetzt. Falls mehrere der booleschen Variablen auf „TRUE“ gesetzt sind, dann wird die oberste IF-Anweisung mit dem jeweiligen Befehl zuerst abgearbeitet. In der folgenden Tabelle sind einige der booleschen Variablen aufgelistet. Zudem sind die Methodennamen und eine Beschreibung der Funktionalität enthalten.

Variablenname

Methodenname

Beschreibung

bSetAllDataValues_LPHD1_DC

ähnliche Variablen (Befehle):
bSetAllDataValues_LLN0_DC
bSetAllDataValues_MMXU1_DC
bSetAllDataValues_XCBR1_DC
bSetAllDataValues_CSWI1_DC
bSetAllDataValues_LEDGGIO1_DC
bSetAllDataValues_LEDGGIO2_DC
bSetAllDataValues_LEDGGIO3_DC
bSetAllDataValues_LEDGGIO4_DC
bSetAllDataValues_LEDGGIO5_DC
bSetAllDataValues_LEDGGIO6_DC
bSetAllDataValues_LEDGGIO7_DC
bSetAllDataValues_LEDGGIO8_DC

SetAllDataValuesReq

Sobald diese boolesche Variable auf „TRUE“ gesetzt wird, werden alle Datenwerte sämtlicher Unterelemente des logischen Knoten: „LPHD1“ und der funktionalen Gruppe „DC“ geschrieben. Um dies zu ermöglichen, verwendet der Methodenaufruf als Parameter einen Schnittstellenzeiger auf den zu schreibenden logischen Knoten: „LPHD1“ und die Angabe der funktionalen Gruppe: „E_AcsiFc.DC“.

bSetDataValues_MMXU1_CF_TotW

ähnliche Variablen (Befehle):
bSetDataValues_LEDGGIO1_CF_AnOut1_sboClass
bSetDataValues_LEDGGIO1_CF_AnOut1_ctlModel
bSetDataValues_LEDGGIO1_CF_AnOut1_units
bSetDataValues_LEDGGIO1_CF_AnOut1_units_SIUnit
bSetDataValues_LEDGGIO1_CF_AnOut1_units_multiplier

SetDataValuesReq

Sobald diese boolesche Variable auf „TRUE“ gesetzt wird, werden alle Datenwerte sämtlicher Unterelemente des Datenobjektes: „TotW“ des logischen Knoten „MMXU1“ und der funktionalen Gruppe: „CF“ geschrieben. Um dies zu ermöglichen, verwendet der Methodenaufruf als Parameter einen Schnittstellenzeiger auf das zu schreibende Datenobjekt: „MMXU1.TotW“ und die Angabe der funktionalen Gruppe: „E_AcsiFc.CF“.

Die Benennung der booleschen Variablen ist beispielhaft und kann beliebig angepasst werden. Sie soll nur verdeutlichen, welche Werte durch das Anschalten der Variablen geschrieben werden können.