Zugriffsvarianten auf MDP Elemente

Die TwinCAT 3 SPS Tc2_MDP Bibliothek bietet verschiedenste Funktionsbausteine, um einen umfangreichen Zugriff auf MDP Daten zu ermöglichen.

Es gibt zwei Grundtypen von Funktionsbausteinen in der Bibliothek.
Zum einen die generischen Funktionsbausteine. Mit ihnen lassen sich beliebige Parameter im MDP mittels diskreten Zugriffes selbst abfragen und setzen.
Des Weiteren bieten spezifische Funktionsbausteine die Möglichkeit, auf bestimmte Daten sowie Gruppierungen von mehreren Daten mit einem Aufruf zuzugreifen.

Die Funktionsbausteine besitzen ein einheitliches Erscheinungsbild.
Alle Funktionsbausteine werden mit einer positiven Flanke am Eingang bExecute aufgerufen. Danach liefert zyklisches Aufrufen des Funktionsbausteines (bExecute = FALSE) das Ergebnis der Abfrage am Ausgang, sobald die Bearbeitung der Abfrage abgeschlossen ist (bBusy = FALSE). Jeder Funktionsbaustein muss solange aufgerufen werden (bExecute = FALSE) bis die interne Bearbeitung abgeschlossen (bBusy = FALSE) ist. Währenddessen sind alle Eingänge des Funktionsbausteins unverändert zu belassen.

Generell ist MDP ein Modell, welche Hardware- und Software Komponenten in Form von Modulen beschreibt. Informationen zu diesen Modulen sowie zum Gerät selbst können abgefragt und geändert werden.
Ein Modul besteht aus einer oder mehreren Tabellen. Jede Tabelle besteht aus einer festen Anzahl von Subindizes. Ein Subindex entspricht einem konkreten Element auf das zugegriffen werden kann.
Zum Aufbau von MDP finden sich nähere Informationen im MDP Information Model (Device Manager Dokumentation). Dort sind ebenso weitere Zugriffsmöglichkeiten auf das MDP beschrieben.

Generische Funktionsbausteine

Um einen IPC-Diagnose Parameter abfragen oder setzen zu können, muss die dynamische Modul ID des Moduls bekannt sein in dem sich der Parameter befindet.
Diese wird mithilfe des Funktionsbausteines FB_MDP_ScanModules ermittelt.

Nun können einzelne Parameter mittels FB_MDP_Read und FB_MDP_Write gelesen bzw. geschrieben werden. Dabei werden zur Abfrage, neben der dynamischen Modul ID, die Nummer der ausgewählten Tabelle (Table ID), der ausgewählte Subindex innerhalb der Tabelle, sowie weitere Informationen angegeben.

Ebenso kann der komplette Header eines Moduls (ST_MDP_ModuleHeader) mit dem Funktionsbaustein FB_MDP_ReadModuleHeader abgefragt werden.
Der komplette Inhalt einer ausgewählten Tabelle innerhalb eines Moduls kann mit dem Funktionsbaustein FB_MDP_ReadModuleContent abgefragt werden.

Der Funktionsbaustein FB_MDP_ReadModule bündelt obige Abfragen. Der Funktionsbaustein ermittelt implizit die dynamische Modul ID und fragt Header sowie Tabelle ab.
Der Funktionsbaustein FB_MDP_ReadElement ermittelt ebenfalls die dynamische Modul ID bereits implizit. Mit ihm kann ein beliebiger einzelner IPC-Diagnose Parameter abgefragt werden.
Bei diesen beiden Funktionsbausteinen ist ein vorheriger Aufruf von FB_MDP_ScanModules demnach nicht nötig.

Spezifische Funktionsbausteine

Die hier zur Verfügung stehenden Funktionsbausteine bieten schnellen Zugriff auf die wichtigsten IPC-Diagnose Informationen.

Beispielsweise reicht der Aufruf des Funktionsbausteines FB_MDP_NIC_Read aus, um alle wichtigen Informationen über einen Netzwerkadapter abzufragen (siehe Device Manager Dokumentation Modul NIC). Der Modul Header wird jeweils auch abgefragt und ausgegeben.
Ebenso ermitteln die spezifischen Funktionsbausteine implizit die dynamische Modul ID, sodass ein vorheriger Aufruf von FB_MDP_ScanModules überflüssig ist.