Grundkonzepte
Variablen und Datentypen
Es können mehrere Arten von Variablen geloggt werden. Die Variablen, sind Teil von:
- SPS- oder NC-Prozessabbildern
- SPS-Programmen
- Prozessabbildern von Geräten, z. B. einem EtherCAT-Master und
- Datenbereiche von generischen TcCom-Objekten
Darüber hinaus können sie von jedem Datentyp sein, der in IEC 61131 oder dem C++-Standard im Fall von generischen TcCom-Objekten definiert ist.
Strukturierte Datentypen können rekursiv andere strukturierte Datentypen enthalten und können ganz oder teilweise geloggt werden. Weitere Informationen zu diesem Thema finden Sie im Abschnitt „Konfiguration“.
Betriebsarten
In dieser Dokumentation werden die Terminologie und Konzepte verwendet, die im Abschnitt MQTT beschrieben sind. Für allgemeine Informationen über das Protokoll verweisen wir auf diesen Abschnitt.
Ein wichtiges Konzept von TwinCAT Analytics sind Streams, die die Basiseinheit der Transaktion zwischen einer Datenquelle und einem Ziel bilden. Ein Daten-Logger kann mehrere Streams steuern.
Ein Stream kann vier Komponenten umfassen:
- Streambeschreibung
- Stream-Tx-Beschreibung
- Symbolinfo
- und Streamdaten.
Im MQTT-Modus koordinieren die Analytics-Teilnehmer mittels der ersten drei Komponenten unter Verwendung eines MQTT-Brokers und eines spezifischen MQTT-Topic für jede Komponente. Die Topics sind im Allgemeinen wie in der folgenden Tabelle veranschaulicht strukturiert, wobei <>-Klammern auf Variablen hinweisen, gegenüber den anderen Teilen, die fest sind.
Komponente | Topic-Struktur | Format | Zweck |
---|---|---|---|
Beschreibung | <MainTopic>/<StreamTopic>/Beschr | JSON | Informiert darüber, ob eine Streamquelle online oder offline ist. Umfasst einen Zeitstempel der Information. |
Tx-Beschreibung | <MainTopic>/<StreamTopic>/Bin/Tx/Beschr | JSON | Informiert über die Übertragungsparameter, wenn eine Streamquelle aktiv Daten überträgt. |
Symbolinfo | <MainTopic>/<StreamTopic>/Bin/Tx/Symbole | Binär | Enthält Metainformationen über die Variablen, d. h. ausschließlich des Istwerts. |
Daten | <MainTopic>/<StreamTopic>/Bin/Tx/Daten | Binär | Enthält die reinen Variablenwerte. |
Das Main-Topic ist das einzige Sub-Topic, das frei vom Benutzer gesetzt werden kann.
Ein Stream kann gestartet und gestoppt werden. Über die Systemmanager-Konfiguration kann ein Stream standardmäßig gestartet werden, sobald TwinCAT im Run-Modus startet. Außerdem können Streams aus dem SPS-Code gestartet und gestoppt werden.
Der Logger sendet, wenn er mit einem Broker verbunden ist, zuerst die Streambeschreibung, gefolgt von der Tx-Beschreibung und Symbolinfo, sobald der Stream startet. Dies ermöglicht es den Empfängern, alle notwendigen Maßnahmen zu ergreifen, bevor Daten eintreffen. Schließlich werden die Daten zyklisch gesendet.
Beim Dateimodus dient das TwinCAT-Bootverzeichnis auf dem Zielgerät als Basis für ein spezifisches Analytics-Verzeichnis, welches wiederum ein Unterverzeichnis pro Stream enthält, sobald das jeweilige TwinCAT-Projekt aktiviert worden ist. Eine spezifische .tas-Datei im Stream-Verzeichnis enthält die Symbolinfo, während .tay-Dateien, die zyklisch erstellt werden, die Streamdaten enthalten.
Beziehung von Logger und Streams
Ein Daten-Logger kann mehrere Streams steuern. Wie im Abschnitt Konfiguration ausführlicher beschrieben, kann ein Benutzer der Analytics-Konfiguration einen oder mehrere Daten-Logger hinzufügen. Streams werden dann automatisch hinzugefügt, abhängig davon, welche Variablen zum Loggen verfügbar sind. Um zu verstehen, wie Streams einem Logger zugeordnet werden, ist es hilfreich zu wissen, dass jeder Stream spezifische Eigenschaften hat. Eine Eigenschaft, die Zykluszeit, ergibt sich daraus, dass jede Variable, auf die zyklisch reagiert wird, einem zyklischen Task unterliegt; daher können die Zykluszeiten, denen verschiedene Variablen zugrunde liegen, variieren. Da ein Stream definitionsgemäß eine feste Zykluszeit hat und um Tasks mit derselben Zykluszeit zu entkoppeln, wird für jeden Task, der entsprechende Variablen steuert, ein Stream erzeugt. Zusätzlich ist es sinnvoll, Streams abhängig von der Streamquelle, d. h. der ursprünglichen SPS-Instanz oder dem TcCom-Objekt, weiter zu unterteilen. Dadurch können die Benutzer Variablen von verschiedenen Quellen an verschiedene MQTT-Topics senden und die Übertragung unabhängig starten/stoppen. Letztendlich läuft das Ganze auf folgendes Schema hinaus:
Für jede Streamquelle und jeden Task, der Variablen dieser Quelle steuert, wird ein Stream erzeugt. |
Beim Konfigurieren des Daten-Loggers gibt es Konfigurationsparameter, die alle Streams gemeinsam haben, und solche, die streamspezifisch sind. Der Logger legt das Ziel, die Kompressionsmethode, MQTT-Zugangsdaten usw. fest, während z. B. die Datengröße und Start/Stopp-Funktionalität streamspezifisch sind.
In den meisten Fällen ist es nicht unbedingt notwendig, jeden Taskzyklus Daten zu senden oder zu schreiben, sodass die in einem Zyklus aufgezeichneten Daten eines Streams, ein sogenanntes Sample, gepuffert werden können, bevor sie an den Broker gesendet oder in eine Datei geschrieben werden. Die Anzahl der Samples in einem Puffer und damit die Zykluszeit eines gesendeten/geschriebenen Puffers kann konfiguriert werden. Darüber hinaus kann die Anzahl der Puffer in einer Datei und damit die Dateigröße konfiguriert werden.