Client - Read Data (GetAllDataValues, GetDataValues)
Dieses Beispiel zeigt die Verwendung der „GetAllDataValuesReq“- und „GetDataValuesReq“-Methoden des Client-Funktionsbausteins.
Download TwinCAT XAE Project (*.zip): Sample02.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.
Im State 10 sind mehrere IF-Anweisungen aufgeführt, welche Befehle (Methodenaufrufe) des Client-Bausteins aktivieren. Durch eine steigende Flanke an einer der booleschen Variablen in der IF-Anweisung wird der Befehl aktiviert und die entsprechende Client-Methode aufgerufen. Zu Testzwecken kann der Benutzer in der Online-Ansicht die Werte der booleschen Variablen auf „TRUE“ setzen und die Befehlsabarbeitung auf diese Weise auslösen.
Nach der erfolgreichen Abarbeitung eines Befehls wird die Statemachine in den State 0 versetzt. Falls mehrere der booleschen Variablen auf „TRUE“ gesetzt wurden, wird die oberste IF-Anweisung mit dem jeweiligen Befehl zuerst bearbeitet. Je häufiger und komplexer die Befehle, die an den Server gesendet werden, desto länger benötigt der Client diese abzuarbeiten.
In der folgenden Tabelle sind einige der booleschen Variablen aufgelistet. Zudem sind die Methodennamen und eine Beschreibung der Funktionalität enthalten.
Befehle im Sample02
Variablenname | Methodenname | Beschreibung |
---|---|---|
bGetAllDataValues_LLN0 ähnliche Variablen (Befehle): | GetAllDataValuesReq | Sobald diese boolesche Variable auf „TRUE“ gesetzt wird, werden alle Datenwerte sämtlicher Unterelemente des logischen Knoten: „LLN0“ und jeder funktionalen Gruppe gelesen. Um dies zu ermöglichen, verwendet der Methodenaufruf als Parameter einen Schnittstellenzeiger auf den zu lesenden logischen Knoten: „LLN0“ und die Angabe der funktionalen Gruppe: „E_AcsiFc.XX.“ |
bGetAllDataValues_LLN0_ST ähnliche Variablen (Befehle): | GetAllDataValuesReq | Sobald diese boolesche Variable auf „TRUE“ gesetzt wird, werden alle Datenwerte sämtlicher Unterelemente des logischen Knoten: „LLN0“ und der funktionalen Gruppe: „ST“ gelesen. Um dies zu ermöglichen, verwendet der Methodenaufruf als Parameter einen Schnittstellenzeiger auf den zu lesenden logischen Knoten: „LLN0“ und die Angabe der funktionalen Gruppe: „E_AcsiFc.ST_“. |
bGetDataValues_LLN0_ST_Beh ähnliche Variablen (Befehle): | GetDataValuesReq | Sobald diese boolesche Variable auf „TRUE“ gesetzt wird, werden alle Datenwerte sämtlicher Unterelemente des Datenobjektes: „Beh“ des logischen Knoten: „LLN0“ und der funktionalen Gruppe: „ST“ gelesen. Um dies zu ermöglichen, verwendet der Methodenaufruf als Parameter einen Schnittstellenzeiger auf das zu lesende Datenobjekt: „LLN0.Beh“ und die Angabe der funktionalen Gruppe: „E_AcsiFc.ST_“. |
bGetDataValues_LLN0_ST_Beh_stVal ähnliche Variablen (Befehle): | GetDataValuesReq | Sobald diese boolesche Variable auf „TRUE“ gesetzt wird, wird der Wert des Datenattributs: „stVal“ des Datenobjekts: „Beh“, des logischen Knoten: „LLN0“ und der funktionalen Gruppe: „ST“ gelesen. Um dies zu ermöglichen, verwendet der Methodenaufruf als Parameter einen Schnittstellenzeiger auf das zu lesende Datenattribut: „LLN0.Beh.stVal“ und die Angabe der funktionalen Gruppe: „E_AcsiFc.ST_“. |
Die Benennung der booleschen Variablen ist beispielhaft und kann beliebig angepasst werden. Sie soll nur verdeutlichen, welche Werte durch das Anschalten der Variablen gelesen werden können.