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 | 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 | 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.