Informationsmodell
Module – Kategorisierung von Hardware- und Softwareinformationen
Der Beckhoff Device Manager kategorisiert diverse Hardware- und Softwareinformationen über sogenannte „Module“ in einem Informationsmodell.
- Ein Modul kategorisiert mehrere Hardware- und Softwareinformationen in logische Gruppen, z. B. CPU, Mainboard, TwinCAT.
- Module werden anhand der tatsächlich vorhandenen Hard- und Software des IPCs automatisch beim Systemstart durch den Device Manager generiert. Module haben deswegen keine statische Adresse, sondern eine dynamische, die beim Start des Device Managers auf Basis der identifizierten Hard- und Software des IPCs erzeugt wird.
- Ein Modul beinhaltet mehrere Tabellen („Tables“), die die Hardware- bzw. Softwareinformationen des jeweiligen Moduls noch einmal in logische Untergruppen unterteilen. Jedes Modul enthält mindestens eine sogenannte „Header“-Tabelle, die allgemeine Informationen zum Modul beinhaltet, sowie mindestens eine Datentabelle.
- Ein bestimmter Eintrag in der Tabelle wird durch dessen SubIndex adressiert.
Um eine bestimmte Information über den Device Manager auszulesen, werden folgende Informationen benötigt:
- Die (dynamische) Adresse der Tabelle, die die gewünschte Information enthält. Eine Tabelle kann über eine eindeutige Adresse angesprochen werden.
- Den SubIndex innerhalb der Tabelle, der die gewünschte Information repräsentiert (z. B. CPU‑Temperatur).
Für die SPS-Programmierung stehen komfortable Funktionsbausteine zur Verfügung, die einen einfachen Zugriff auf die gewünschten Daten ermöglichen (siehe Beispiele zur SPS-Programmierung). Die nachfolgenden Ausführungen zur Adressierung können daher für die SPS-Programmierung übersprungen werden.
Adresse einer Tabelle finden
Um eine bestimmte Hardware- oder Softwareinformation über den Device Manager auszulesen, ist es notwendig, ihre genaue Position im Informationsmodell anhand des Index der umgebenden Tabelle und ihres SubIndex zu bestimmen.
Index:
Der Index der Tabelle besteht aus 16 Bit und setzt sich dabei wie folgt zusammen:
0x | a | nn | x |
Hex-Preambel | Area-Code (4 bit) | Modul-ID (8 bit) | Tabellen-ID (4 bit) |
Area-Code (4 Bit): beschreibt, welche Area diese Adresse ansprechen soll.
Modul-ID (8 Bit): kennzeichnet eindeutig die dynamische Position des jeweiligen Moduls und wird automatisch durch den Device Manager beim Systemstart generiert. Sie kann durch Abfragen der Tabelle 0xF020 (Device-Area) ermittelt werden.
Tabellen-ID (4 Bit): kennzeichnet die Tabelle innerhalb eines Moduls.
Abhängig von der verwendeten Area werden Modul-ID und Tabellen-ID auch zusammengefasst, zum Beispiel bei der Device-Area, da dort keine Module existieren.
SubIndex:
Der SubIndex einer gewünschten Information kann bequem in der Liste verfügbarer Module (Configuration Area) in den dortigen Tabellen nachgelesen werden.
Beispiel
In diesem Beispiel soll das NIC-Modul adressiert werden, um die IP-Adresse der Netzwerkkarte (NIC) auszulesen. Zur Erinnerung: Module des Device Managers werden automatisch anhand der tatsächlich verfügbaren Hard- und Software erstellt. In der Tabelle 0xF020 der Device-Area kann eine Liste aller automatisch erstellten Module abgefragt werden. Jede Zeile in dieser Tabelle repräsentiert jeweils ein Modul, welches aus dem jeweiligen Modultyp im High-Word und der dynamisch erstellten Modul-ID im Low-Word besteht. Der Inhalt der Tabelle 0xF020 könnte zum Beispiel wie folgt aussehen:
SubIndex | Wert | Beschreibung |
---|---|---|
0 | 5 | Anzahl der Einträge in dieser Tabelle |
1 | 0x 000C 0000 | Modul „Memory“ |
2 | 0x 000B 0001 | Modul „CPU“ (Kern 1) |
3 | 0x 000B 0002 | Modul „CPU“ (Kern 2) |
4 | 0x 0002 0003 | Modul „NIC“ |
Der Rückgabewert an SubIndex 4 besteht aus dem gesuchten Modultypen „NIC“ (0x0002) im High Word und der dynamischen Modul-ID (0x0003) im Low Word. Weil die Liste entsprechend der dynamischen Modul-IDs sortiert ist, ist die dynamische Modul-ID immer gleich dem SubIndex minus eins.
Der komplette Index setzt sich nun gemäß des oben genannten Schemas wie folgt zusammen:
0x | a | nn | x |
0x | 8 | 03 | 1 |
| Area Code (In diesem Fall: Configuration Area) | Modul-ID (Ergibt sich aus der Tabelle 0xF020) | Tabellen-ID (1 = NIC Properties) |
Die Eigenschaften der Netzwerkkarte sind also an Adresse 0x8031 hinterlegt. Gemäß der Spezifikation des NIC-Moduls kann nun unter der Adresse 0x8031 an deren SubIndex 2 die IP-Adresse der Netzwerkkarte ausgelesen werden. Der Rückgabewert, den man hierbei enthält, entspricht einem der definierten Datentypen.