Miscellaneous

Im letzten Tab der Basis-Einstellungen geht es diverse Einstellungen. Der erste Teil geht um die Treiber Versionen, die verwendet werden. Die hier ausgewählte Version (Default: Latest) wird beim Aktivieren der TwinCAT Konfiguration automatisch auf das Zielsystem (Steuerung) heruntergeladen. Das gilt für alle Betriebssysteme unter 4026, wodurch eine zusätzliche Installation in Form von Paketen auf dem Zielsystem selbst entfällt.

Miscellaneous 1:

Zusätzlich kann hier der Log für die Analytics Logger System Manager Extension eingesehen werden. Der Beckhoff Support könnte Sie im Supportfall auch dazu auffordern diese Datei zur Verfügung zu stellen.

Copy Deployment

Ebenfalls kann eine Art Patch Mechanismus mit dem Copy Deployment aktiviert und konfiguriert werden.

Hinweis

TwinCAT Restart

Verwenden Sie diese Option nur, wenn zukünftiges Aktivieren der Konfiguration (TwinCAT Activate Configuration) nicht mehr möglich ist und trotzdem Änderungen gemacht werden sollen! Ein TwinCAT Restart bleibt notwendig!

Das Copy Deployment bietet die Möglichkeit, mittels Patch-Dateien, in einem Target Verzeichnis, Änderungen vorzunehmen und nach einem TwinCAT Restart auszuführen. Der folgende Workflow beschreibt die Funktionsweise des Copy Deployments:

Workflow:

1. Copy Deployment aktivieren — Setzen Sie den Haken bei „Download configuration to target“ im Abschnitt Deployment.
2. Target-Directory wählen — TwinCAT speichert diesen Pfad in den Treibereinstellungen. Nach Schritt 3 liest der Treiber die Patch-Dateien aus diesem Ordner aus.
3. Activate Configuration – Aktivieren Sie die Konfiguration mit dem Target-Directory mit einem TwinCAT Activate Configuration auf dem Zielsystem. Erst danach weiß der Treiber an welcher Stelle die Patch-Dateien zu finden sind.
4. Änderungen vornehmen - Daraufhin besteht die Möglichkeit Änderungen an der Logger-Konfiguration zu tätigen. Wenn Sie nur eine Anpassung nach Schritt 6 vornehmen, bleibt die Konfiguration unverändert.
5. Patch-Dateien exportieren – Exportieren Sie über den Button „Local export“ die geänderte Konfiguration als JSON-Patch-Datei. Der Export erstellt pro Stream ein Ordner mit einer Patch-Datei. Die Export-Struktur besitzt folgendes Format: <Export-Ordner>/<StreamName>_<ID>/Config.json. Der nachfolgende Abschnitt beschreibt das Format einer Patch-Datei genauer.
6. Hinzufügen und/oder Entfernen von Symbolen (Optional) – Erweitern Sie die JSON-Strukturen der Patch-Dateien können durch ein Symbols-Array. Dies bietet die Möglichkeit Symbole zum Loggen hinzuzufügen beziehungsweise zu entfernen. (Siehe Beispiele im nachfolgenden Abschnitt)
7. Ablegen der Patch-Dateien: Legen Sie die Patch-Dateien wie in der Export-Ordnerstruktur auf dem Zielsystem unter dem Target Directory (siehe Schritt 2) ab.
8. Starten Sie TwinCAT neu.
Danach liest der Treiber die Patch-Dateien ein und läuft mit dieser Konfiguration.

Hinweis

Konfiguration aktivieren

Aktivieren Sie die Konfiguration mit dem Target Directory einmalig, damit der Treiber die Patch-Dateien aus dem Target Directory einlesen kann!

Patch-Datei-Format

Jede Config.json enthält:

Ebene

Feld

Beschreibung

1

InitData

Die vollständigen Stream-Initialisierungsdaten (kodiert). Immer vorhanden.

1

InitParameters

Dieses Objekt enthält die Konfiguration des Analytics Logger Streams. Diese Parameter sollen nicht verändert werden und dienen nur der Transparenz innerhalb der Patch-Datei.

1

Symbols

Optionale Liste von Symboländerungen (hinzufügen oder deaktivieren).

2

Name

Vollständiger Name des Symbols (Notwendig)

2

TypeName

Typ-Name des Symbols (Notwendig beim Hinzufügen eines Symbols)

2

Flags

Zusatzinformation. Optional. Flags = 2 bedeutet, dass die Size von Byte auf Bit umgestellt ist.

2

Size

Größe des Symbols (Notwendig beim Hinzufügen eines Symbols)

2

IdxGrp

IndexGroup des Symbols (Dezimal) (Notwendig beim Hinzufügen eines Symbols, wenn Symbolic Mapping deaktiviert ist. Zum Beispiel bei Device Streams)

2

IdxOffs

IndexOffset des Symbols (Dezimal) (Notwendig beim Hinzufügen eines Symbols, wenn Symbolic Mapping deaktiviert ist. Zum Beispiel bei Device Streams)

2

Properties

Array aus mehreren Schlüssel-Wert-Paaren. (Notwendig beim Hinzufügen eines Pointers oder einer Referenz oder beim Deaktivieren eines Symbols) (Siehe Beispiele im nachfolgenden Abschnitt)

Symbol hinzufügen

Um ein neues Symbol in den Stream aufzunehmen, einen Eintrag mit Namen, Datentyp und Größe hinzufügen.

Beispiel — MAIN.VarInt64 (8-Byte-Integer) hinzufügen:

{
    "InitData": "...",
    "Symbols": [
        {
            "Name": "MAIN.VarInt64",
            "TypeName": "LINT",
            "Size": 8
        }
    ]
}

Beispiel — Inputs.Frm0State of a Device (2-Byte-Integer) hinzufügen:

{
    "InitData": "...",
    "Symbols": [
        {
            "Name": "Inputs.Frm0State",
            "TypeName": "UINT",
            "Size": 2
            "IdxGrp": 61488,
            "IdxOffs": 1520,
        }
    ]
}

Beispiel — Symbole mit BIT-Datentypen hinzufügen:

{
    "InitData": "...",
    "Symbols": [
        {
            "Name": "MAIN.VarBit1",
            "TypeName": "BIT",
            "Flags": 2,
            "Size": 1
        },
        {
            "Name": "MAIN.VarBit4",
            "TypeName": "BIT",
            "Flags": 2,
            "Size": 4
        }
    ]
}

Beispiel — Pointer hinzufügen:

{
    "InitData": "...",
    "Symbols": [
        {
            "Name": "MAIN.PtrToInt^",
            "TypeName": "UINT",
            "Size": 2
            "Properties": [
                {
                    "Name": "DataAccess",
                    "Value": "Handle"
                }
            ]
        }
    ]
}

Beispiel — Referenzen hinzufügen:

{
    "InitData": "...",
    "Symbols": [
        {
            "Name": "MAIN.RefToInt",
            "TypeName": "UINT",
            "Size": 2
            "Properties": [
                {
                    "Name": "DataAccess",
                    "Value": "Handle"
                }
            ]
        }
    ]
}

Symbol deaktivieren

Um ein vorhandenes Symbol zu deaktivieren, wird es per Name referenziert und mit einer Disable-Eigenschaft versehen.

Beispiel — MAIN.VarInt32 deaktivieren:

{
    "InitData": "...",
    "Symbols": [
        {
            "Name": "MAIN.VarInt32",
            "Properties": [
                { "Name": "Disable" }
            ]
        }
    ]
}

Kombiniert (Hinzufügen + Deaktivieren)

Beide Operationen können in einer einzigen Patch-Datei kombiniert werden.

Stream-Konfiguration editieren

Einige Einstellungen der Stream-Konfiguration lassen sich auch über die Patch-Datei editieren. Die Einstellungen sind im Folgenden beschrieben und mit Beispielen erklärt.

Ebene

Feld

Beschreibung

1

Mqtt

Der Abschnitt Mqtt definiert ein MQTT-Ziel, an das die aufgezeichneten Daten gesendet werden.

2

SamplesPerBuffer

Anzahl der Samples pro gesendetem Puffer.

2

CompressionWidth

Breite der Kompression in Bytes (0 = keine Kompression).

2

SamplingDivider

Teiler der Abtastrate (0/1 = jedes Sample).

2

SystemIdAlias

Optionaler Alias der System-ID.

2

MqttConfig

Eingebettete MQTT-Verbindungsparameter (siehe unten).

3

QoS

MQTT Quality of Service (0, 1 oder 2).

3

TcpPort

TCP-Port des Brokers (Standard 1883)

3

ClientId

MQTT-Client-ID

3

Host

Hostname oder IP-Adresse des Brokers.

3

Topic

Basis-Topic, unter dem veröffentlicht wird.

3

UserName

Benutzername für die Authentifizierung.

3

UserPwd

Passwort für die Authentifizierung.

3

Tls

TLS-/Zertifikatsparameter (siehe Abschnitt „TLS-Parameter“).

4

Version

TLS-Version, z. B. "tlsv1.2" oder "tlsv1.3"

4

CaFile

Pfad zur CA-Zertifikatsdatei.

4

CertFile

Pfad zur Client-Zertifikatsdatei.

4

KeyFile

Pfad zur Datei mit dem privaten Schlüssel des Clients.

4

KeyPwd

Passwort/Passphrase für den privaten Schlüssel.

Beispiel — MQTT-Ziel aktivieren:

{
    "InitData": "...",
    "Mqtt": {
        "SamplesPerBuffer": 32,
        "CompressionWidth": 8,
        "MqttConfig": {
            "TcpPort": 1883,
            "Host": "127.0.0.1",
            "Topic": "Analytics/Stream1"
        }
    }
}

Beispiel — MQTT-Ziel mit TLS-Verschlüsselung (Zertifikate als Dateipfade):

{
    "InitData": "...",
    "Mqtt": {
        "MqttConfig": {
            "TcpPort": 8883,
            "Host": "broker.example.com",
            "Topic": "Analytics/Stream1",
            "Tls": {
                "Version": "tlsv1.2",
                "CaFile": "C:\\Certs\\ca.crt",
                "CertFile": "C:\\Certs\\client.crt",
                "KeyFile": "C:\\Certs\\client.key",
                "KeyPwd": "secret"
            }
        }
    }
}

Datei-Zielkonfiguration

Ebene

Feld

Beschreibung

1

File

Der Abschnitt File definiert einen Ordner, in den die aufgezeichneten Daten geschrieben werden.

2

BuffersPerFile

Anzahl der Puffer pro Datei

2

SamplesPerBuffer

Anzahl der Samples pro Puffer.

2

CompressionWidth

Breite der Kompression in Bytes (0 = keine Kompression).

2

FilesInRingBuffer

Anzahl der Dateien im Ringpuffer (0 = kein Ringpuffer).

2

SamplingDivider

Teiler der Abtastrate (0/1 = jedes Sample).

2

FilePath

Zielpfad bzw. Dateiname für die Aufzeichnung.

2

SystemIdAlias

Optionaler Alias der System-ID.

Beispiel — Datei-Ziel mit Ringpuffer aktivieren:

{
    "InitData": "...",
    "File": {
        "SamplesPerBuffer": 64,
        "BuffersPerFile": 100,
        "FilesInRingBuffer": 10,
        "FilePath": "C:\\DataStore\\FileStreamTarget"
    }
}