Übersicht

Das TwinCAT Scope2 ist, wie sein Vorgänger, ein Analysewerkzeug mit grafischer Ausgabe, um die Zustände von Variablen aus dem TwinCAT System in zeitlicher Abhängigkeit zu bewerten.

Im Scope2 sind der Anzeige- und Konfigurationsteil (ScopeView2) und der Daten-Logger-Teil (ScopeServer) in unterschiedlichen Programmen realisiert. Der Server läuft idR. auf dem (den) Zielsystem(en) und übernimmt im "Hintergrund" die Aufnahme, Speicherung und Vorverarbeitung der Daten. Das ScopeView verbindet sich nach bedarf mit diesen Servern und konfiguriert sie je nach Anforderung der aktuellen Aufnahme. Durch diese Last- und Daten-Verteilung kann eine hohe Verarbeitungsdichte erreicht werden.

Systemvoraussetzungen TwinCAT Scope2 View

  • Mindestens TwinCAT Version 2.10 und Level I/O
  • .NET Framework 2.0 oder höher
  • Windows XP oder Windows XP Embedded

Systemvoraussetzungen TwinCAT Scope2 Server

  • Mindestens TwinCAT 2.10 und Level I/O
  • .NET Framework 2.0 oder höher
  • Windows XP oder Windows XP Embedded

Hinweis: Auch ohne lauffähigen Scope2 Server für Windows CE ist es bereits möglich Kanäle von CE Geräten aufzuzeichnen. Nutzen Sie dazu die Option Use Local Server.

Installation

Führen Sie die TcScope2.exe aus und folgen Sie den Installationshinweisen. Zu Beginn Ihrer Installation haben Sie die Auswahlmöglichkeit auf Ihrem System entweder das Scope2 View und den Scope2 Server oder nur den Scope2 Server zu installieren. Sollten Sie eine TwinCAT Scope 2 Lizenz erworben haben, dann können Sie während der Installation den entsprechenden Produktschlüssel eingeben und im Anschluss die unbegrenzte Vollversion nutzen. Andernfalls gibt es die Möglichkeit als Produktschlüssel "DEMO" einzutragen. Die Demoversion steht Ihnen dann 30 Tage mit vollem Funktionsumfang zur Verfügung.

Windows XP, XPe

Nach der Installation finden Sie unter ..\TwinCAT\Scope 2 die Anwendungsprogramme für View und Server. Diese werden ebenso in das TwinCAT-Start-Menu eingegliedert.

Windows CE

Für Windows CE befindet sich ein Scope2 Server zur Zeit in der Entwicklung.

Einführung/Tutorial

Um eine Übersicht zum Funktionsumfang vom TwinCAT Scope2 zu bekommen, steht Ihnen ein ausführliches Tutorial zur Verfügung.

ScopeViewControl

Die .NET-Komponente ScopeViewControl ist Basis des ScopeView und kann als Control in eigene Applikationen integriert werden. Ein übersichtliches Beispiel finden sie unter ScopeControl Integration.


Hinweise zur Dokumentation

Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs- und Automatisierungstechnik, das mit den geltenden nationalen Normen vertraut ist.
Zur Installation und Inbetriebnahme der Komponenten ist die Beachtung der Dokumentation und der nachfolgenden Hinweise und Erklärungen unbedingt notwendig.
Das Fachpersonal ist verpflichtet, für jede Installation und Inbetriebnahme die zu dem Zeitpunkt veröffentlichte Dokumentation zu verwenden.

Das Fachpersonal hat sicherzustellen, dass die Anwendung bzw. der Einsatz der beschriebenen Produkte alle Sicherheitsanforderungen, einschließlich sämtlicher anwendbaren Gesetze, Vorschriften, Bestimmungen und Normen erfüllt.

Disclaimer

Diese Dokumentation wurde sorgfältig erstellt. Die beschriebenen Produkte werden jedoch ständig weiter entwickelt.
Wir behalten uns das Recht vor, die Dokumentation jederzeit und ohne Ankündigung zu überarbeiten und zu ändern.
Aus den Angaben, Abbildungen und Beschreibungen in dieser Dokumentation können keine Ansprüche auf Änderung bereits gelieferter Produkte geltend gemacht werden.

Marken

Beckhoff®, TwinCAT®, EtherCAT®, EtherCAT G®, EtherCAT G10®, EtherCAT P®, Safety over EtherCAT®, TwinSAFE®, XFC®, XTS® und XPlanar® sind eingetragene und lizenzierte Marken der Beckhoff Automation GmbH.
Die Verwendung anderer in dieser Dokumentation enthaltenen Marken oder Kennzeichen durch Dritte kann zu einer Verletzung von Rechten der Inhaber der entsprechenden Bezeichnungen führen.

Patente

Die EtherCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP1590927, EP1789857, EP1456722, EP2137893, DE102015105702
mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

EtherCAT® ist eine eingetragene Marke und patentierte Technologie lizenziert durch die Beckhoff Automation GmbH, Deutschland.

Copyright

© Beckhoff Automation GmbH & Co. KG, Deutschland.
Weitergabe sowie Vervielfältigung dieses Dokuments, Verwertung und Mitteilung seines Inhalts sind verboten, soweit nicht ausdrücklich gestattet.
Zuwiderhandlungen verpflichten zu Schadenersatz. Alle Rechte für den Fall der Patent-, Gebrauchsmuster- oder Geschmacksmustereintragung vorbehalten.


Architecture

TS3300 | TwinCAT Scope 2

TwinCAT ScopeServer

Der ScopeServer ist der Daten-Logger für das Scope2. Er verwaltet die Aufnahme der Daten auf einem System und dient so als Schnittstelle zum View. Auch wenn im ScopeView ein zuvor gespeichertes File geladen wird, dient der ScopeServer der Vorverarbeitung.

Auf jedem System ist nur eine Instanz des ScopeServer nötig. Ist dieser bei Bedarf noch nicht gestartet, bietet das View dies in einer Abfrage an. Nach dem Start erscheint ein entsprechendes Icon im System-Tray neben der Uhr, hier kann mit der Maus ein kleines Menü aufgerufen werden.

Change Workfolder...

Hier wird ein Ordner Menü aufgerufen um den Speicherort für die temporären Daten des ScopeServer auszuwählen. Standardmäßig wird ein Ordner in den User-Daten angelegt; er kann jedoch an einen beliebigen lokalen oder externen (USB-Gerät, Netzlaufwert,..) Ordner verlegt werden.

Reset

Mit dieser Option werden alle angeschlossenen Client-Verbindungen getrennt und der Server in den Ausgangszustand zurückversetzt. Ggf. laufende Aufzeichnungen werden verworfen.

Info

Nach dem Aufrufen der Info erscheint ein Dialog der Auskunft über den Produkt- und Versionsstand gibt. Besonders die Produkt- und Serverversion sind bei einer Supportanfrage wichtig.

Exit

Beendet die aktuelle Serverinstanz.


Architecture

TwinCAT ScopeView2 - Architektur

Bei der Konfiguration eines Scope View stehen die folgenden Elemente in hierarchischer Reihenfolge zu Verfügung:

  • Scope: Das Scope ist die oberste Ebene einer Konfiguration. Alle Elemente die einem Scope hinzugefügt werden unterliegen den gleichen Aufnahmeeinstellungen. TwinCATScopeView2_Elements_Scope.htm
  • Chart: Die Charts sind die eigentliche Anzeigefläche des Scope View. Sie stellen die X-Achse, als zeitdefinierte Basis der Anzeige zur Verfügung. Jeder Chart verfügt über eine Toolbar um die Anzeige zu ändern. In einer zweiten Leiste werden die Startzeit und Endzeit der Aufnahme als absoluter Zeitwert, sowie die aktuelle Position des Chartursprungs, relativ zur Starzeit angezeigt. Format: "Stunden:Minuten:Sekunden.Millisekunden"). Allgemeine Einstellungen, wie Farben, können in den Eigenschaften eingestellt werden. TwinCATScopeView2_Elements_Chart.htm
  • (Y-)Achse: Die Y-Achsen bieten die Möglichkeit Kanäle innerhalb eines Charts zu gruppieren. Jede Achse stellt, mittels automatischer oder freier Skalierung, den Wertebereich zur Verfügung, der die angeschlossenen Kanäle umspannt. TwinCATScopeView2_Elements_Axis.htm
  • Die Kanäle stellen die zu analysierenden Variablen des Systems dar. Sie sind mit einer festen Adressierung, der Akquisition, einem Systemelement zugeordnet. TwinCATScopeView2_Elements_Acquisition.htm Allgemeine Einstellungen, wie Farbe oder Linienstärke, können in den Einstellungen vorgenommen werden. TwinCATScopeView2_Elements_Channel.htm

Fenster

Jedem der genannten Elemente ist ein Fester mit Einstellungen zugeordnet. Diese Fenster können mit einem Doppelklick auf das entsprechende Objectbrowser-Element oder über das View-Menü geöffnet werden.

Die Scope-Fenster können in beliebiger Anordnung und Größe, in der Mitte des Hauptfensters angeordnet werden. Möglich ist auch die Positionierung als Karteikarten hintereinander. Innerhalb der für ein Scope aufgespannten Fläche zählt das gleiche für die angeschlossen Chart-Fenster. Alle weiteren Fenster können an den Rändern eingerastet oder als separates Fenster auf dem Bildschirm angeordnet werden. Auch dabei können mehrere Fenster als Karteikarte hintereinander gelegt werden. Betätigt man den Pinnadel - Knopf in der der Kopfzeile eines Fensters, wird es an den entsprechenden Rand miniert, um bei berühren mit der Maus temporär ins Bild zu gleiten.

Alle Eigenschaftsfenster werden in einem der weiteren Menüpunkte erläutert.

Konfiguration

Die Möglichkeiten eine Scope-Konfiguration zu erstellen, bzw. zu bearbeiten sind im Folgenden erklärt. Wie die Eigenschaften der jeweiligen Elemente verändert werden können ist in der Beschreibung des zugehörigen Fensters beschrieben.

Zum Hinzufügen der Elemente:

  • File -> Add -> Element -> New fügt dem zuletzt selektierten, höheren Element, ein neues Element hinzu. Ist noch kein höheres Element vorhanden wird es erstellt.
  • ToolBar -> New Element Button -> fügt ein neues Element hinzu.
  • Kontextmenü im ObjectBrowser -> Element -> New fügt ein neues Element hinzu.
  • Um einen Kanal mit Akquisition aus dem Target Browser zu erstellen: siehe Menüpunkt "Target Browser"

Zum Entfernen der Elemente:

  • File -> Delete entfernt das selektierte Element und alle Unterelemente.
  • Toolbar-> Delete-Button entfernt das selektierte Element und alle Unterelemente.
  • Kontextmenü im Object Browser -> Delete entfernt das zugehörige Element und alle Unterelemente.
  • Im Object Browser <Entf> um das selektierte Element zu entfernen.

Verschieben / kopieren einzelner Elemente:

  • Jedes Element kann mit Drag&Drop im Object Browser verschoben werden. Es muss dabei immer einem Element hinzugefügt werden, welches in der Hierarchie eine Ebene höher steht. Wird ein Element zu einem anderen Scope verschoben, so wird es lediglich kopiert. Es steht dann also noch im ursprünglichen Scope zur Verfügung.
  • Die beschriebenen Verschiebeoperationen stehen, innerhalb eines Scopes, auch nach dem Start der Aufnahme zur Verfügung.
  • Kontextmenü im Object Browser -> Copy -> anderes Element selektieren -> Einfügen.

Speichern einer Scope Konfiguration

Als Konfigurationsformat dient dem Scope View 2 eine XML-Beschreibung mit der Dateiendung .sv2.

  • File -> Save speichert die Konfiguration unter dem bereits vergebenen Dateinamen.
  • File -> Save As speichert die Konfiguration unter einem andern Namen oder an einem andern Ort.
  • Kontextmenü im Object Browser -> Save speichert die Konfiguration unter dem bereits vergebenen Dateinamen.
  • Kontextmenü im Object Browser -> Save As speichert die Konfiguration unter einem anderen Namen oder an einem anderen Ort.

Laden einer Scope Konfiguration

  • File -> Add ->Scope -> Load öffnet ein Dateiauswahlmenü. Hier eine .sv2-Datei auswählen.
  • Kontextmenü im Object Browser -> Add -> Scope -> Load öffnet ein Dateiauswahlmenü.
  • Weiterhin kann eine bestehende Datei in den Object Browser gezogen werden um die entsprechende Konfiguration zu laden.
  • Unter File -> Rescent Files kann unter den zuletzt geöffneten Dateien gewählt werden.
  • Im Kontextmenü des Objektbrowsers ist ebenfalls ein Resent Files Button vorhanden.

Speichern von Daten (immer mit Konfiguration)

  • siehe Menüpunkt Scope

Laden von Datenfiles

  • siehe Laden einer Scope Konfiguration. Im Filemenü aber Dateityp .svd auswählen.

Kanal deaktivieren / aktivieren

Ein Kanal kann in der Konfiguration deaktiviert werden, um nicht mit aufgenommen zu werden. Beim Speichern der Konfiguration bleibt er aber erhalten.

  • Kontextmenü des Kanals im Object-Browser -> Disable / Enable deaktiviert / aktiviert den Kanal.


Scope Eigenschaften

Bevor ein Scope mit der Aufnahme beginnen kann, müssen alle beteiligten Server verbunden werden. Zur Änderung der Aufnahmeeinstellungen dient das Scope-Settings-Window:

Record Mode

Die Record Time ist die Gesamtzeit der Aufnahme. Sie wird im Format Tage:Stunden:Minuten:Sekunden eingegeben.

Die Option "File Store" legt fest ob der Server die Daten in einer lokalen Datei zwischenspeichern soll oder ob er die Daten nur im Arbeitsspeicher hält. Die Auswahl sollte abhängig von der Menge der aufzunehmenden Daten und vom Aufnahmegerät gewählt werden. So ist die Zugriffszeit besser, wenn nur im Arbeitsspeicher gearbeitet wird. Bei größeren Datenmengen ist es jedoch meist nötig den File-Store zu nutzen.

Start Record

Hier kann eingestellt werden ob die Aufnahme bei betätigen des Aufnahme-Knopfes (Auto Start) oder auf das Eintreffen eines Triggerereignisses hin (Trigger Start), erfolgen soll.

Stop Record

Ring Buffer und Auto Stop -Modus legen fest wie ein Server bei erreichen der Aufnahmezeit reagieren soll.

  • Ring Buffer: Die Aufnahme wird nicht gestoppt, sondern die ältesten Daten im Speicher werden überschrieben. Die Folge ist das die Startzeit der Aufnahme ansteigt. Die Aufnahme wird erst gestoppt, wenn der Stop-Button betätigt wird.
  • Auto Stop: Die Aufnahme wird bei erreichen der Aufnahmedauer gestoppt. Ein vorzeitiges beenden der Aufnahme über den Stop-Button ist möglich.

Common

Hier kann ein freier Kommentar abgelegt werden.

Scope Toolbar

Mit der Toolbar wird die Aufnahme des Scopes gestartet und gestoppt. Weiterhin können hier aufgenommene Daten gespeichert werden. Die Übersicht zeigt die Buttons und deren Erklärung (von links):

  • New-Symbole: Mit den ersten vier Schaltern können neue Elemente hinzugefügt werden.
  • Delete: Mit dem Delete-Schalter wird das aktuelle Element gelöscht.
  • Start Record: Alle benötigten Server werden aufgerufen und die Aufnahmeeinstellungen sowie die angeschlossenen Kanäle eingetragen. Sind bereits aufgenommene Daten aus einer vorangegangenen Sitzung vorhanden, so erscheint eine Abfrage, ob die aktuellen Daten gespeichert werden sollen. Danach wird die Aufnahme den obigen Einstellungen entsprechend gestartet. Nach dem Start ist eine Veränderung der Scope-Settings, der Akquisition oder das Hinzufügen oder Entfernen von Kanälen nicht mehr möglich.
  • Stop Record: Die Aufnahme wird beendet. Die aufgenommenen Daten verbleiben jedoch auf den angeschlossenen Servern und können eingesehen werden.
    Nach dem Stoppen der Aufnahme ist das Verändern der Scope-Konfiguration wieder möglich. Die aktuellen Daten gehen dann allerdings verloren, sofern sie nicht gespeichert werden.
  • Save Data: Nach dem Stoppen der Aufnahme, können die aktuellen Daten inklusive der Konfiguration in einer .svd-Datei gespeichert werden.

Run Menü

Über das Run Menü sind die Funktionen der Scope-Toolbar ebenfalls erreichbar. Hier können auch die entsprechenden Tastenbelegungen eingesehen werden.

Zusätzlich befinden sich hier zwei Exportfunktionen

  • Export to CSV: Text Export um die Scope-Daten auch in anderen Programmen nutzen zu können. Die erzeugte Datei ist im Tabellenformat gehalten. Die Reihen sind hierbei durch Zeilen, die Spalten durch Tabulatoren getrennt. Die ersten Reihen beinhalten Information über die Aufnahme, wie Scope-Name oder Start, und Endzeit der Aufnahme.
    Name | Scope01
    File
    StartRecord | 128783093223690000 | Donnerstag, 5. Februar 2009 | 13:08:42
    EndRecord | 128783093339880000 | Donnerstag, 5. Februar 2009 | 13:08:53

    Danach folgt für jeden Kanal ein Definitionsbereich mit den Akquisitionsdaten.

    Name | DREIECK
    NetId | 172.16.8.205.1.1
    Port | 801
    SampleTime[ms] | 1
    SymbolBased | TRUE
    SymbolName | MAIN.DREIECK
    SymbolComment
    IndexGroup | 16448
    IndexOffset | 608
    Data-Type | ADST_REAL32
    VariableSize | 4

    Zum Schluss folgt für jeden Kanal eine Liste mit den aufgenommenen Daten. Erst der Zeitwert als Offset von der StartRecord- Zeit, dann der entsprechende Datenwert.

    0 | -1,03799391
    1 | -1,03599393
    2 | -1,033994
    3 | -1,031994
    4 | -1,029994
    5 | -1,027994
    6 | -1,02599406
    7 | -1,02399409
    8 | -1,02199411
    9 | -1,01999414
    10 | -1,01799417
    11 | -1,01599419
    12 | -1,01399422
    13 | -1,01199424
    ... ...
  • Export to Binary: Das binäre Datenformat ist an das Textformat angelehnt, enthält aber keinerlei Trennzeichen. Dafür sind in den entsprechenden Headern die Byte-Länge aller variablen Datentypen (wie Zeichenketten) enthalten. Alle Zeiten sind im File-Time-Format angegeben: 1Tick = 100ns; Ursprung ist der 1.1.1601 0h.
    Variable | Size (Bytes) | DataType
    MAIN-HEADER
    HeaderSize | 8 | Int64
    NameSize | 4 | Int32
    Name | NameSize | Array of Char (1Byte)
    StartTime | 8 | Int64
    EndTime | 8 | Int64
    ChannelCount | 4 | Int32
    Variable | Size (Bytes) | DataType
    Channel - Header #1
    ChannelHeaderSize | 8 | Int64
    NameSize | 4 | Int32
    Name | NameSize | Array of Char (1Byte)
    NetIdSize | 4 | Int32
    NetId | NetIdSize | Array of Char (1Byte)
    Port | 4 | Int32
    Sample Time | 8 | Int64
    SymbolBased | 1 | bool (as byte)
    SymoblNameSize | 4 | Int32
    Symbolname: SymbolNameSize Array of Char (1Byte)
    CommentSize | 4 | Int32
    Comment | CommentSize | Array of Char (1Byte)
    IndexGroup | 8 | Int64
    IndexOffset | 8 | Int64
    DataTypeSize | 4 | Int32
    DataType | DataTypeSize | Array of Char (1Byte)
    DataTypeId | 4 | Int32
    VariableSize | 4 | Int32
    Samples in File | 8 | Int64
    Data in File | 8 | Int64
    File-StartPosition | 8 | Int64
    Channel - Header #2
    ...
    Channel-Header #MainHeader.ChannelCount
    Variable | Size (Bytes) | DataType
    Data Channel #1
    DataPoint #1
    Timestamp | 4 | UInt32
    Value | ChannelHeader1.VariableSize | ChannelHeader.DataType
    DataPoint #2
    ...
    DataPoint ChannelHeader #1.Samples In File
    Data Channel #2
    ...
    Data Channel #MainHeader.ChannelCount

Konvertieren von Daten mit der Kommandozeile

Die mit dem ScopeView2 erzeugten Daten im Format .svd können auch über einen Kommandozeilenaufruf in eines der beiden alternativen Exportformate überführt werden. Die Konvertierung wird von der ScopeView2.exe durchgeführt; als Konvertierungsparameter dient ein -c. Anschließend müssen die Datendatei und die Zieldatei angegeben werden:

  • Beispiel: C:\TwinCAT\Scope 2\View>TwinCatScopeView2.exe -c "C:\Scope2\DataFile.svd" "C:\Scope2\BiaryFile.svb"

Damit die Konvertierung ohne weitere Eingaben durchlaufen werden kann, muss der ScopeServer gestartet und die Datendatei vorhanden sein.

Achtung:

Eine ggf. existierende Datei mit dem Namen der Zieldatei wird ohne Rückfrage überschrieben.


Chart Eigenschaften

Hier können alle dem Chart zugeordneten Einstellungen vorgenommen werden. Das aktuell selektierte Chart kann über das DropDown-Feld, oben im Fenster, ausgewählt werden.

Common

  • Comment: Hier kann ein freier Kommentar hinterlegt werden.
  • Show Name: Legt fest ob der Name des Charts in der Grafik angezeigt wird.

Color

  • Die Hintergrund- und Rahmenfarbe können mittels Farb-Dialogen eingestellt werden.

Behavior

  • Default Display Time: Diese Zeit gibt die Standardbreite des zugehörigen Charts an. Dieser Wert wird z.B. eingestellt, wenn der Rescale - Button in der Chart-Toolbar gewählt wird.
  • Auto Start: Ist die "Auto Start" - Option selektiert, startet das Chart die Live-Darstellung, wenn eine neue Aufnahme begonnen wird.
  • Time Bar: Legt fest ob die Time Bar im Chart angezeigt wird.
  • Tool Bar: Legt fest ob die Tool Bar im Chart angezeigt wird.

Y-Settings

  • Y-Zoom: Wie sich ein Chart beim Zoomen verhält, kann man über den Y-Zoom einstellen. Wird die Option gesetzt kann in den Daten eines Charts auch in Y-Richtung navigiert werden. Das schließt sowohl Zoomen als auch Panning (das Verschieben der Anzeige mit der Maus) ein.
  • Stacked Y-Aches: Mit dieser Einstellung kann gewählt werden, ob die Achsen eines Charts nebeneinander liegen sollen und somit, die Werte der angefügten Kanäle innerhalb der gleichen Fläche darstellen oder ob die Achsen übereinander stehen sollen, um jeweils einen eigenen Darstellungsbereich zu erhalten.
  • Scale on Zoom: Ist diese Option gewählt weist das Chart alle Achsen (X und Y) an, nach einer Zoom- oder Panningaktion eine Autoskalierung durchzuführen. Dadurch kann der gewählte Bereich unter Umständen aufgeweitet werden.

X-Axis Style

Da die X-Achse einem Chart fest zugeordnet ist können hier alle zugehörigen Einstellungen vorgenommen werden.

  • Ticks: Die Anzahl der Unterteilungen.
  • Color: Die Farbe der X-Achesn.
  • LineWidth: Linienstärke der Achse in Pixel.

X-Axis Grid

  • Grid: Die X-Unterteilungen im Chart können hier zu oder abgeschaltet werden.
  • LineWidth: Linienstärke des Grid in Pixel.
  • SubGrid: Hilfslinien zur feineren X-Unterteilung des Hauptnetzes können hier ein- oder ausgeblendet werden.
  • Divisions: Anzahl der Bereiche, in die das Hauptnetz durch Hilfslinien unterteilt wird.
  • Color: Die Farbe des Grids.

Chart Toolbar

Mit der Toolbar wird die Anzeige des Charts bedient. Die Übersicht zeigt alle Buttons und deren Erklärung (von links):

  • Play: Startet den Live-Darstellungsmodus. Die Aktuell auflaufenden Daten werden angezeigt.
  • Pause: Die Darstellung wechselt in den Pause-Modus. In den bereits aufgenommenen Daten kann nun navigiert werden, ohne die Aufnahme zu stoppen.
  • Display-Width: Hier wird die aktuelle Displayweite angezeigt. Sie kann hier im Format "hh:mm:ss,fff" editiert werden. Alternativ kann auch die Maus benutzt werden um die Displayweite zu ändern, indem in einem selektierten Chartfenster das Mausrad betätigt wird. Der veränderte Wert wird automatisch übernommen.
  • Scroll Tasten: Die äußeren Scroll-Tasten bewegen die aktuelle Anzeige in Schritten, die der Display-Width entsprechen. Die inneren hingegen nur einem Zehntel. Sie können dafür aber gehalten werden um den Datensatz zu sichten.
  • Position: Die angezeigte Position kann im Position-Feld im Format "hh:mm:ss,fff" editiert werden. Die Doppelpunkte dienen hierbei als Trennzeichen. Wenn nicht alle Einheiten editiert werden, wird das Format, bei Sekunden beginnend, aufsteigend sortiert.
  • Undo/Redo Time/Position: Sprünge der Displayweite oder der aktuellen Position können hier, unhabhängig von ihrer Entstehung ( z.B.: Zoom, Scroll, etc.) rückgängig gemacht werden. Die rechte Maustaste ist ebenfalls mit dieser Funktion belegt. Einmal Rückgängig gemachte Werte können mit Redo wiederholt werden.
  • Panning Horizontal: Im horizontalen Pannning-Mode kann durch klicken und ziehen mit der Maus die aktuelle Anzeige auf der X-Achse verschoben werden.
  • Panning Free: Im freien Pannning-Mode kann durch klicken und ziehen mit der Maus die aktuelle Anzeige auf der X- und Y- Achse verschoben werden.
  • Zoom Horizontal: Durch aufspannen eines Rechtecks über der X-Achse kann ein neuer Zeitbereich für die Anzeige gewählt werden.
  • Zoom Free: Durch aufspannen eines Rechtecks auf der Zeichenfläche kann in die aktuelle Anzeige hineingezoomt werden.
  • Rescale All: Führt ein Autoscale auf allen Achsen aus. Die X-Achse(n) werden auf die Default-Displaytime gesetzt.
  • Zoom Out Max: Skaliert die x-Achse so, dass alle aktuellen Werte in der Aufnahme in der Anzeige erscheinen.

Durch drehen am Mousrad kann in ebenfalls ein Zoom auf die aktuelle Anzeige durchgeführt werden. Die Cursorpositon gibt dabei das Zentrum vor.

Chart Times Toolbar

Die aktuellen Aufnahmezeiten werden in der Chart Toolbar angezeigt:

  • Start-Time: Der gemeinsame Anfangspunkt der Aufnahmen aller angeschossenen Kanäle. Die Start-Time gibt somit den Null-Punkt der Aufnahme an.
  • End-Time: Die größte gemeinsame Zeit aller angeschlossenen Kanäle. Die End-Time markiert somit den Endwert der Aufnahme. Die Differenz aus End-Time und Start-Time wird maximal so groß wie die eingestellte Record-Time (siehe Scope-Settings).
  • Position: Die Position-Time stellt den Nullpunkt des aktuellen Charts dar, also die Zeit von Start-Time bis zum Beginn der Anzeige.
  • Time: Die Absolute Zeit im Ursprung des Charts.
  • Date: Das Absoute Datum im Ursprung des Charts.


Achsen Eigenschaften

An dieser Stelle können Einstellungen für jede verfügbare Achse separat vorgenommen werden. Die aktuell selektierte Achse wird über das DropDown-Feld im oberen Bereich ausgewählt.

Common

  • Comment: Hier kann ein freier Kommentar hinterlegt werden.
  • Show Name: Legt fest ob der Name des Charts in der Grafik angezeigt wird.

Axis Style

  • Visible: Gibt an ob die Achse im Chart ein- oder ausgeblendet wird.
  • Color: Die Farbe der Achse.
  • LineWidth: Die Linienstärke in Pixel.
  • Ticks: Maximale Anzahl der Unterteilungen. Wenn nicht genug Platz für die gewählte Anzahl an Ticks ist, werden diese im Chart automatisch reduziert.
    Bei logarithmischer Skalierung ist die Anzahl der Ticks abhängig vom dargestellten Wertebereich und kann dadurch gegebenenfalls von den Einstellungen abweichen.

Grid

  • Enabled: Die Y-Unterteilungen der Achse können hier ein- oder ausgeblendet werden.
  • LineWidth: Linienstärke des Grid in Pixel.
  • SubGrid: Hilfslinien zur feineren Y-Unterteilung des Hauptnetzes können hier ein- oder ausgeblendet werden. Hilfslinien besitzen keine Achsenbeschriftung.
  • Divisions: Anzahl der Bereiche, in die das Hauptnetz durch Hilfslinien unterteilt wird.
    Bei logarithmischer Skalierung werden die Hilfslinien zur Bereichsunterteilung nur in der eingestellten Anzahl angezeigt, wenn der Wertebereich pro Tick genau eine Dekade beträgt. Andernfalls zeigt die dargestellte Hilfslinie die im Hauptnetz nicht dargestellten Dekaden an.
  • Color: Die Farbe des Grids.

Scale

  • Auto: Ist Auto gewählt, skaliert sich jede Achse so, dass das letzte bekannte Minimum und Maximum aller angeschlossenen Kanäle innerhalb des Anzeigebereiches liegen.
  • Rescale: Skaliert auf die aktuellen Extremwerte im Anzeigebereich.
  • Min/Max: Ist Auto nicht selektiert, so kann das Minimum und Maximum direkt editiert werden.
  • Logarithmic: Schaltet zwischen logarithmischer und linearer Skalierung der Achse um.


Kanal Eigenschaften

Hier können alle einem Kanal zugehörigen Einstellungen vorgenommen werden, die nicht zur Adressierung gehören. Der aktuell selektierte Kanal kann über das DropDown-Feld, oben im Fenster, ausgewählt werden.

Common

  • Visible: Hier kann eingestellt werden ob der Kanal im Chart angezeigt werden soll.
  • Name: Über das Name-Feld kann der Anzeigename des Kanals verändert werden. Mit der Rechten-Maus kann der Name aus Teilen des Symbolnamen übernommen werden.
  • Comment: Hier kann ein freier Kommentar hinterlegt werden. Ggf. wird der Kommentar des verbundenen ADS-Symbols übernommen.

Line

  • Antialias: Diese Option entscheidet wie die Linen gezeichnet werden. Antialias ist "schöner" aber deutlich rechenaufwendiger. Besonders bei vielen Kanälen mit großen Bewegungen hat dies Auswirkungen.
  • Color: Die Farbe des Graphen.
  • Width: Die Linienstärke des Graphen. Die Linienstärke 1 ist am wenigsten rechenaufwendig.

Marks

  • On: Hier können die Stützpunkt-Markierungen dauerhaft ein geschaltet werden.
  • Auto: Hier können die Stützpunkt-Markierungen abhängig von der Zoomstufe eingeschaltet werden.
  • Off: Hier können die Stützpunkt-Markierungen dauerhaft aus geschaltet werden.
  • Color: Die Farbe der Stützpunkt-Markierungen.
  • Size: Die Größe der Stützpunkt-Markierungen.

Modify

  • Offset: Im Offsetfeld kann ein freier Offset zum Funktionswert des Kanals addiert werden.
  • Scale: Mit dem Scale-Faktor kann der Anzeigewert eines Kanals verändert werden. Dies ist zum Beispiel sinnvoll, wenn man sich Winkelsignale nicht in Radianten sondern in Grad anzeigen lassen möchte. Mit einem Skalierungsfaktor von k = 360 / (2*Pi) = 57,296 würden also Grad statt Radianten angezeigt.
  • Bit Mask: Im Feld Bit Mask kann ein Wert eingegeben werden mit dem der Anzeigewert maskiert wird, sofern es sich nicht um einen Floatingpoint-Typ handelt. Das heißt, der Wert des Kanals wird mit dem binärwert der Maske UND-Verknüpft. Dies hilft um beispielsweise einzelne Bits eines Statusbytes zu beobachten.
  • Time Shift: Die Timeshift-Option ermöglicht es den Graphen auf der Zeitachse zu verschieben. Dies kann zum Beispiel sinnvoll sein, wenn man eine bekannte Buslaufzeit ausgleichen möchte.


Akquisition

Hier werden die zur Adressierung eines Kanals benötigen Einstellungen angelegt. Wenn ein leerer Kanal der Konfiguration hinzugefügt wird müssen diese Daten manuell editiert werden. Die Erzeugung eines Kanals über den Target Browser füllt die Acquisiton selbsttätig. Der aktuell selektierte Kanal kann über das DropDown-Feld, oben im Fenster, ausgewählt werden.

Target

Aus der Target System Liste können die im System-Manager eingetragenen Routes ausgewählt werden.

Der Port, der zu verbindenden Task, wird im Feld darunter eingestellt.

Connection

Das aufzunehmende Signal kann maximal mit der Geschwindigkeit der Task, an die es angeschlossen ist, abgetastet werden. Es ist aber ebenso eine freie (größere) Samplerate einstellbar. Als Maximum sind hier 5000ms vorgesehen.

Die Option "Use Local Server" ermöglicht es Daten von Systemen aufzunehmen auf denen kein Scope-Server installiert ist. Für diesen Fall übernimmt der lokale Server die Aufgabe des Remote-Servers.

Über die "Symbol based"-Option kann eingestellt werden ob ein Kanal über seinen Symbol-Namen oder mit freier Acquisition erstellt werden soll.

Array Settings

Ist das angeschlossene Symbol ein Arraytyp so wird hier die Arraylänge angezeigt.

Druch die Option Force Oversampling werden die einzelnen Arrayelemente als Zwischenwerte mit entsprechender Sampletime interpretiert. Ein Array der Länge 10, mit der Sampletime 10ms wird also als Signal mit der Sampletime 1ms interpretiert.

Symbol Information

Ist für ein Signal ein Symbolname vergeben, kann dieser hier eingegeben werden. Die auf dem ausgewählten Ziel zur Verfügung stehenden Symbole werden in einer Liste vorgeschlagen. Die restlichen Adressierungsdaten werden dann automatisch ausgefüllt wenn der "Symbol based" Schalter aktiviert wird. Ist die "Symbol based" - Option deaktiviert, können die Verbindungsparameter per Hand eingegeben werden.

Das Data-Type-Feld stellt den Datentyp des Signals ein. Das Feld Size in der Connect-Box wird entsprechend ausgefüllt.

Ist ein Kanal über ein Symbol erstellt worden, zu dem ein Kommentar existiert, wird dieser in der Comment Box angezeigt.

Symbol Connect

Die IndexGroup und der IndexOffset legen die Position des Signals in der Task eindeutig fest. Sie können durch voranstellen von "0x" in hexadezimaler Schreibweise oder ohne Prefix in dezimaler Schreibweise editiert werden. Die Anzeige erfolgt stets in hexadezimaler Darstellung.

Das Size Feld zeigt die Größe der Variable in Bytes an. Sie ist vom Datentyp abhängig und kann daher nicht editiert werden.

Gruppenweise Änderungen

Einige Parameter, werden oft für mehrere, oder alle Kanäle geändert. Im Objectbrowser kann daher über das Kontextmenü für Scopes, Charts oder Axen ein Changemenü aufgerufen werden. Nach Auswahl eines der angegeben Parameter erscheint ein Dialog, der die entsprechenden Änderungen für alle Kanäle durchführt, die unter dem selektierten Element angeordnet sind.


Target Browser

Mit dem Target Browser können einer Scope-Konfiguration Kanäle über ihren Symbol-Namen hinzugefügt werden. Der Target Browser ist in zwei Hälften unterteilt. Die eine zeigt einen Baum mit dem ersten Eintrag: ROUTES. Darunter werden alle im System-Manager angemeldete Geräte angezeigt. Die Farbe des Targets gibt Aufschluss über den System-Zustand: Rot = nicht erreichbar (Stop-Modus), Blau = Konfig-Modus, Grün = System in Run-Modus.

Die zweite Hälfte zeigt eine detaillierte Liste der Unterpunkte des gewählten Elementes der Baum-Struktur.

Kanal anfügen

In der Listen-Struktur kann jetzt ein oder mehrere Kanäle selektiert werden und mit Doppelklick oder Rechte Maus-> "Add Symbol" ("Add Subsymbols") oder durch einen der Button in der Toolbar der Konfiguration hinzugefügt werden.

Wird ein Ordner, ein Ads-Bigtype oder ein Array selektiert, der Sub-Symbole enthält fügt die Option "Add Subsymbols" für jedes Subsymbol einen Kanal an. Die Option "Add Symbol" fügt nur einen Kanal mit den Informationen des selektierten Symbols ein.

Task wählen

Wählt man in der Baum- oder Listen-Struktur einen Zielrechner, werden die angeschlossenen Tasks sichtbar. Diese sind farbig markiert: Grün = PLC-Task, Blau = NC-Task, Rot = Andere.

Wird eine Task nicht angezeigt, so kann durch die Enable - Servertypes Option ein Auswahlmenü aufgerufen werden, welches die Einschränkung auf bestimmte Tasks anzeigt.

Hier werden alle gängigen Ads-Ports, unabhängig davon ob es sich um einen Server-Tasks handelt, angezeigt. Ist ein Port hier nicht aufgeführt kann er im Textfeld unten links eingegeben werden. Alle selektierten Ports, bei denen es sich um Server handelt, werden nach dem bestätigen mit OK übernommen. Anschließend wird geprüft, welche der Ports existieren, um die Anzeige zu aktualisieren.

Symbol Liste einsehen

Ist für die gewählte Task eine Symbol-Liste verfügbar kann diese durch selektieren aufgerufen werden. Alle Symbole einer Task, werden nach Trennzeichen (z.B: '.') in eine hierarchische Ansicht überführt, die ein einfaches browsen ermöglicht.

Settings

Mit der Option 'Name Detail Level' in den Settings kann die Detailstufe des aus dem Symbolnamem gebildeten Kanalnamen eingestellt werden. Ist die Detailstufe null, so wird nur der Teil des Symbolnamen nach dem letzten Punkt übergeben. Jedes weitere level fügt dann den Term vor dem jeweils nächsten Punkt hinzu. Z.B. wird das Symbol: "Main.Signals.Sinus" mit einer Detailstufe 0 zu: "Sinus", mit Detailstufe 1 zu "Signals.Sinus" und mit 2 oder höher zu "Main.Signals.Sinus".


Cursor

Über das Cursor Modul können einem Chart Cursor hinzugefügt und verändert werden.

Die ersten vier Buttons der Toolbar dienen dem separaten Hinzufügen und Entfernen von X-, und Y-Cursorn. Über die Check-Buttons können einzelne Zeilen für die Anzeige abgewählt werden (es werden nur die Zeilen mit Häckchen angezeigt).

Werden mehrere Cursor in einer Richtung verwendet können die Differenzen angezeigt werden, wenn der Delta-Button aktiviert ist.

Mit den weiteren vier Buttons können die Felder für die vier unterschiedlichen Rubriken (siehe unten) ein- und ausgeblendet werden.

Eigenschaften (Tabs)

  • Color: Farbe des Cursors
  • LineWidth: Linienstärke des Cursors in Pixel.
  • Comment: Hier kann ein freier Kommentar hinterlegt werden
  • Move: Bewegt den Cursor im Chart pixelwise. Bei längerem Betätigen automatisch in größeren Schritten. Die jeweils zuletzt selektierten Cursor für x- und y-Richtung können auch mit den Pfeiltasten auf der Tastatur bedient werden.

Zeiten

Die zu einem angefügten X-Cursor gehörenden Zeiten werden hier in drei Formaten angezeigt.

  • Absolute Zeit: entspricht der tatsächlich registrierten Uhrzeit.
  • Record Zeit: Zeitwert des Cursors seit Beginn der Aufnahme
  • Chart Zeit: Zeitwert des Cursors innerhalb des Charts

Channel

Im Channel-Feld werden die Schnittwerte der einzelnen Kanäle mit dem jeweiligen x-Cursor angezeigt. Die angezeigten Schnittwerte sind, wie die Anzeige, auf Pixelbreite komprimiert. Um die Zwischenwerte anzuzeigen, kann in die Aufnahme hineingezoomt werden.

Axis

Die Werte der Y-Cursor auf den jeweiligen Achsen werden im untersten Feld angezeigt.


Scope Menü: Optionen

Graphic

Das TwinCAT Scope2 kann mit zwei verschiedenen Graphic-Bibliotheken arbeiten: DirectX und GDI+.

Das Erscheinungsbild der Scopes ist in beiden Fällen gleich. Der Unterschied in der Nutzung liegt in der Performance. Die Microsoft® DirectX® Bibliothek ist auf hohe Bildwiederholraten und Datenmengen ausgelegt. Um dies zu erreichen arbeitet sie eng mit der Hardware des Systems zusammen. Da die hierzu nötigen Zugriffe auf die Hardware auf jedem System unterschiedlich sein können, sollte diese Option nur gewählt werden, wenn das System als DirectX fähig bekannt ist. Auf Systemen mit Echtzeitanbindung wird von der Nutzung der DirectX-Option generell abgeraten.

Um das Scope in einer Remote-Desktopumgebung anzuzeigen, muss GDI+ angewählt sein.

Show Message

Einige, häufig auftretende, Nachrichten-Felder im Scope sind mit einem Schalter "Remember my Answer and don't ask again!" ausgestattet, um diese Frage beim nächsten mal nicht zu wiederholen. Dies dient dazu, die Handhabung des Programms für jeden Nutzer individuell einstellbar zu machen. Ist ein Nachrichtenfeld einmal abgewählt, so kann es hier wieder aktiviert werden.

Default Settings

Die Standardeinstellungen für alle Einstellungen in einem Scope können in den Default-Settings hinterlegt werden. Nach Auswahl erscheint ein Menü mit je einem Tab pro Settings-Fenster des Scopes sowie einem für die Acquisition. Die hier eingestellten Werte werden dann für neu hinzugefügte Elemente übernommen. Der Reset-Button dient dazu, alle Einstellungen auf den Standardwert zurück zu setzen. Mit dem Button Apply Style können alle Einstellungen, die nur für die Anzeige wichtig sind, für alle geöffneten Konfigurationen übernommen werden. Für jeden Benutzer wird ein eigener Satz Grundeinstellungen gespeichert.

Auto Start

Im 'File Auto Load' Bereich können Konfigurationen hinterlegt werden, die beim Starten des Scopes automatisch geladen, bzw. gestartet werden.

Mit den 'Add'- und 'Remove'-Buttons können Konfigurationen über einen Dialog der Liste hinzugefügt, bzw aus ihr entfernt werden. Ob die Konfigurationen in der Liste beim nächsten Start des ScopeView2 geladen werden sollen wird durch die Check-Box in der 'Open'-Spalte angegeben. In der 'Record'-Spalte kann darüberhinaus gewählt werden, ob auch die Aufnahme gestartet werden soll. Die 'Start Record Delay'-Option gibt eine Verzögerung des Aufnahmestarts an (z.B. um TwinCAT genug Zeit zu geben vollständig hochzufahren). Es ist ratsam den ScopeServer über das TwinCAT\Startup Verzeichnis starten zu lassen, wenn man automatische Aufnahmen nutzen möchte.

Die Displaybox bietet die Möglichkeit das Scope im Vollbild-Modus zu starten und den Anwender daran zu hindern, diesen wieder zu verlassen. Ist mehr als ein Bildschirm angeschlossen, so kann der Bildschirm auf dem das Scope startet über die Display-Nummer angegeben werden.

Mit den zwei Lock-Operationen, "Restricted " und "View Only", kann das View gegen Eingaben des Users verriegelt werden. Im "Restricted Mode" kann der User weder Kanäle anfügen noch die Aufnahmeeinstellungen ändern. Im "View Only" können nur noch die Fenster innerhalb des Scopes verändert werden.

Das nötige Passwort kann bei Verlust im "Scope2Settings.xml" zurückgesetzt werden. Das Settingsfile liegt im nicht sichtbaren Anwender-Datenbereich. Hier kann einfach die "LockLevel"-Eigenschaft auf 0 gesetzt werden. Beim nächsten Start des Scope View2 wird die Blockierung zurück gesetzt.


Trigger

Mit dem Trigger-Modul können einer Scope Konfiguration verschiedene Triggerfunktionen hinzugefügt werden.

Um eine möglichst einfache und freie Kombination von einzelnen Triggerbedingungen und -aktionen zu ermöglichen, werden diese in Trigger-Gruppen zusammen gefasst. In der oberen Werkzeugleiste des Trigger-Moduls können neue Gruppen hinzugefügt und entfernt werden.

Trigger-Gruppe

Im Trigger-Modul ist jeder Trigger-Gruppe ein eigener Karteireiter zugewiesen. Dieser Tab unterteilt sich im wesentlichen in den Auslösebereich (oben) und den Aktionsbereich unten.

Der Auslösebereich umfasst eine Werkzeugleiste zum Hinzufügen und Entfernen, sowie eine Tabelle zum Konfigurieren von einzelnen Trigger-Sets:

Trigger-Set

Jede Zeile der Tabelle enthält einen separaten Trigger-Satz. Dieser Satz kann als eigenständige Triggerbedingung angesehen werden. Durch die Wahl einer Verknüpfung in der Combine-Spalte können diese einzelnen Bedingungen in Relation gesetzt werden. Hierbei ist zu beachten, dass UND-Verknüpfungen vor ODER-Verküpfungen behandelt werden.

Jedem Set ist, neben einem frei wählbaren Namen, ein Kanal zugeordnet, dessen Zustand auf die gewählte Auslösebedingung geprüft werden soll. Die Auslösebedingung ist in eine Auslösebeschreibung (Release) und den zugehöreigen Grenzwert (Threshold) unterteilt. Die Release-Bedingung kann entweder ein steigender (RisingEdge) oder fallender (FallingEdge) Durchgang, durch den Grenzwert (frei editierbar) sein. Ist diese Auslösebedingung für eine Zeile erfüllt, wird die Fahne in der Hit-Spalte rot markiert. Alle Triggersets bleiben solange gesetzt bis die gesamte Trigger-Gruppe ausgelöst hat.

Trigger-Action:

Im Aktionsbericht der Trigger-Gruppe ist festgelegt was beim Auslösen einer Trigger-Gruppe geschieht:

  • StartRecord: Wird diese Option gewählt, sollte die Start-Record-Bedingung in den Scopesettings auf Trigger-Start stehen. Andernfalls würde das Scope die Aufnahme wie gewohnt beginnen. Beim Einstellen dieser Aktion erscheint daher ein Fragefeld, welches die Einstellung ggf. vornimmt. Betätigt man den Record-Knopf in der Menüleiste, verbindet sich das Scope wie gewohnt mit den beteiligten Servern und beginnt die angeschlossenen Kanäle zu sichten, ohne jedoch die eigentliche Aufnahme zu starten. Die Aufnahme beginnt mit dem Auslösezeitpunkt der letzten Trigger-Set-Bedingung.
  • StopRecord: Wird die Stop-Aktion gewählt, sollte das Scope im Ringbuffermode betrieben werden. Beim Einstellen dieser Aktion erscheint daher ein Fragefeld, welches die Einstellung ggf. vornimmt. Im Feld darunter kann man angeben ob ein fester Zeitbereich vor und/oder nach dem Triggerevent in der Aufnahme erscheinen soll. Ist der Pre-Trigger gewählt, werden Triggerevents vor dem ablauf dieser Zeit ignoriert. Ist der Post-Trigger aktiv, läuft die aufnahme nach eintreffen des Triggerevents die angegebene Zeit nach.
  • StopDisplay: Die Stop-Display-Aktion hält alle Charts des Scope, die zum Auslösezeitpunkt im Live-Modus sind, an. Dabei kann mit der Trigger-Position gewählt werden wieviel Prozent des angezeigten Displays (Display-Breite) vor, bzw. hinter dem Triggerereignis liegen sollen (Im Beispiel unten: positiver 0-Durchgang des grünen Signals bei 10% von 2.5s = 0,25s). Wird die Triggerbedingung wiederholt erfüllt, springt die Anzeige zu diesem neuen Ereignis. Um dieses Nachtriggern zu unterbinden, kann im Chart Pause betätigt werden.
  • RestartDisplay: Alle duch einen StopDispay-Trigger pausierenden Charts werden beim erfüllen der Trigger-Bedingung wieder fortgeführt.
  • StartSubsave: Beim Eintreten dieses Triggerereignisses wird eine Hintergrundaufnahme, mit der aktuellen Konfiguration, gestartet. Dieser Subsave läuft immer im Ringbuffer-Mode (unabhängig von den Einstellungen in den Scope-Settings). Es ist möglich bis zu 5 Subsaves gleichzeitig zu starten (über einen oder mehrere Triggerevents). Die maximale Speichergröße des Subsaves kann im 'Record-Time'-Feld angegeben werden. Diese Aufnahmedauer darf auch länger sein als die Aufnahmedauer der Basiskonfiguration (hier sollte, dann jedoch ebenfalls der Ringbuffer-Betrieb gewählt werden.
  • StopSubsave: Nach dem StopSubsave-Triggerevent, wird das älteste Subsave gestoppt und im Hintergrund an das View übertragen. Von hieraus wird es unter dem angegebenen Pfad in ein .svd-File gespeichert. Der erzeugte Dateiname besteht aus dem Namen des Scopes in der Basiskonfiguration und einer Kennung aus Datum und Uhrzeit, in alphanumerischer Anordnung.


Tutorial_Overview

Tutorial - TwinCAT Scope 2

Das TwinCAT Scope 2 ist ein grafisches Analysewerkzeug, mit dem Zustände von Variablen aus verschiedenen Software-Tasks in Abhängigkeit der Zeit dargestellt werden können. Wie dieses TwinCAT Supplementprodukt konfiguriert wird und welche Vorteile es bietet, soll in diesem Tutorial anhand eines Beispiels Schritt für Schritt erläutert werden.

1. Installation und Versionsnummern

2. TwinCAT PLC Beispielprojekt

3. Start Scope View 2

4. Einfügen von Kanälen

5. Eine erste Aufnahme

6. Darstellungsmöglichkeiten der Signale

7. Signalanalyse zur Laufzeit

8. Daten speichern und exportieren

9. Triggergesteuerte Aufnahme

10. Glossar


Tutorial_Installation

Tutorial - Installation und Versionsnummern

Installation:

Führen Sie die TcScope2.exe aus und folgen Sie den Installationshinweisen. Wenn Sie eine Scope 2 Lizenz erworben haben, dann können Sie während der Installation den entsprechenden Produktschlüssel angeben und die unbegrenzte Vollversion nutzen. Andernfalls gibt es die Möglichkeit als Produktschlüssel "DEMO" einzugeben. Die Demoversion steht Ihnen dann 30 Tage mit vollem Funktionsumfang zur Verfügung.

Versionsnummern:

Für einen möglichen Support-Fall ist es wichtig die von Ihnen verwendete Scope 2 Versionsnummer anzugeben. Die folgenden Screenshots zeigen wo Sie diese Nummern finden können.

- Scope View 2

Im Scope View 2 finden Sie den Menüpunkt Info. Der Unterpunkt About öffnet das unten dargestellte Fenster, in welchem sich zwei Versionsnummern verbergen.
Zum einen die Versionsnummer des Views an sich und zum anderen die Produktversionsnummer, welche unbedingt im Supportfall anzugeben ist.

- Scope Server

Der Scope Server wird für Sie im Infobereich Ihrer Taskbar (Notification Area Taskbar) sichtbar. Mit einem Rechtsklick öffnet sich ein Menu, wählen Sie dort den Unterpunkt Info, wodurch sich das folgende Fenster öffnet.


Tutorial_PlcProject

Tutorial - TwinCAT PLC Beispielprojekt

Die Grundlage für diese Anleitung, welche Ihnen das Arbeiten mit dem TwinCAT Scope 2 näher bringen soll, bildet ein SPS Projekt. Dieses Projekt liefert Ihnen einige Signale, wie zum Beispiel eine Peak- oder Sinusfunktion. Diese können Sie dann im weiteren Verlauf im Scope darstellen und analysieren.

Öffnen Sie das SPS-Projekt mit folgendem Link. Nach dem Sie das Projekt geöffnet haben, loggen Sie sich auf Ihr Zielgerät ein. Letztendlich müssen Sie dann noch die SPS starten bevor Sie die weiteren Schritte im Scope View unternehmen.


Tutorial_FirstTime

Tutorial - Scope View 2

Nach der Installation können Sie das Scope View 2 unter Windows Start ð Programme ð TwinCAT System ð TwinCAT Scope 2 starten. Wenn Sie diese Auswahl getroffen haben, öffnet sich der Default-Screen, welcher hier unter diesem Textabschnitt dargestellt ist.

Alle Konfigurationsmenüs sind auf dem Default-Screen sichtbar und über die im Bild rot markierten Karteireiter bequem zu erreichen. Wie man in dem nächsten Bild sehen kann, können alle Karteireiter aus ihrem Verbund gelöst werden und dann frei an andere Stellen im Scope View verschoben werden. Ebenso ist es möglich einzelne Fenster komplett heraus zu lösen oder die Fenster zu schließen. Geschlossene Fenster können dann über das View Menu wieder aufgerufen werden.

Die Einstellungen, welche man vorgenommen hat, werden bei jedem Scope View 2 Neustart wieder geladen. Diese Einstellungen werden als User-Default-Settings bezeichnet und für jeden User, der auf einem System einen Zugang hat, einzeln abgespeichert. So können Sie sich ganz individuell Ihr eigenes Scope View einrichten. Des Weiteren gehören zu den User-Default-Settings Einstellungen bezüglich der Standard-Aufnahmezeit oder der Signal-Darstellung, diese können unter Options ð Default Settings (siehe Bild unten) vorgenommen werden. Auch diese Einstellungen werden individuell für jeden Benutzer abgespeichert.


Tutorial_ObjectTarget

Tutorial - Einfügen von Kanälen

Der Target Browser ist ein elementarer Teil des Scope View 2. In diesem werden Ihre zur Zeit eingetragenen Routen des TwinCAT System Managers angezeigt. Bereits an der Farbgebung können Sie den Zustand der einzelnen Geräte ablesen. Rot bedeutet das dieses Gerät zur Zeit nicht angeschlossen ist oder sich TwinCAT im Stopp Mode befindet. Blau zeigt, dass TwinCAT im Configuration Mode ist und grün signalisiert ein laufendes System, welches für eine Aufnahme zur Verfügung steht.

Wenn sich ein Gerät im Run Modus befindet, kann bis hin zum Basis Datentyp in die Datenstruktur der einzelnen Ports bzw. Tasks gebrowst werden. Dort können Sie dann Ihre Kanäle per Multiselect, wie unten im Bild dargestellt, auswählen und per Rechtsklick den Befehl "To Channel" ausführen.

Jetzt werden Sie feststellen, dass völlig automatisch eine Struktur mit Scope, Chart, Achse und den ausgewählten Kanälen im sogenannten Object Browser angelegt wird. Allen Kanälen wird automatisch eine Farbe zugewiesen, welche sich natürlich editieren lässt.

Natürlich haben Sie auch die Möglichkeit diese Objekte einzeln und per Hand einzubinden. Dies ist zum einen durch die Buttons in der Tool-Bar möglich und zum anderen können Sie neue Objekte in ein bestehendes Scope per Rechtsklick auf die Objekt-Symbole einfügen. Dies ist im folgenden Screenshot dargestellt (im weitern Verlauf wird das zweite Scope nicht mehr benötigt).


Tutorial_FirstRecord

Tutorial - Eine erste Aufnahme

Wie Sie dem nächsten Bild entnehmen können, wurden zugehörig zu den Objekten im Object Browser die Elemente Chart und Achse im eigentlichen View des Scopes angelegt. Mit einem Doppelklick auf diese Objekte im Object Browser öffnet sich der entsprechende Konfigurationsdialog, wo zum Beispiel für einen Chart das Grid und die Hintergrundfarbe eingestellt werden kann.

Für eine erste Aufnahme sind allerdings andere Parameter eher von Bedeutung. Dazu sollten Sie nun den Karteireiter Channel Acquisition öffnen. Hier können Sie dann für jeden Kanal einzeln die Sample Time einstellen. Natürlich kann diese Sample Time nicht schneller als die eigentliche Zykluszeit sein, jedoch macht es für manche unkritischen Signale Sinn die Sample Time zu verlängern, um so weniger Daten aufzeichnen und halten zu müssen.

Eine andere wichtige Option in der Channel Acquisition ist Use Local Server. Diese Option sollte angewählt werden, wenn man von einem Gerät Daten aufzeichnen möchte, welches keinen eigenen Scope 2 Server installiert hat. Nach dem Sie die einzelnen Sample Times eingestellt haben, sollten Sie vor dem Aufnahmestart noch die Scope Settings aufrufen, um den Aufnahmemodus einzustellen. Unter Record Time können Sie Ihre gewünschte Aufnahmezeit einstellen. Während die Ring Buffer Option die Daten immer wieder, bis es zu einem manuellen Stopp kommt, überschreibt, wird per Auto Stop die Aufnahme automatisch nach Ablauf der eingestellten Zeit beendet. Auto und Trigger Start sind Optionen für das Arbeiten mit Triggern, welche im späteren Verlauf erläutert werden. Wenn Sie, wie unten im Bild gezeigt, File-Store anwählen speichert der Scope Server die Daten in eine Datei zwischen, andernfalls werden die Daten vollständig im Arbeitsspeicher gehalten.

Nun sind die grundlegenden Einstellungen gemacht, was bedeutet das Sie nun Ihre erste Aufnahme mit dem TwinCAT Scope View 2 starten können. Dazu betätigen Sie bitte den roten Aufnahme-Button in der Toolbar oben links. Die dann auftauchende Frage "Try to start local Server?" bestätigen Sie bitte mit "Ja", dadurch wird der Scope Server gestartet und beginnt mit der Datenaufzeichnung. Das der Server aktiv ist, können Sie durch das zusätzliche Symbol in Ihrer Taskbar (Notification Area Taskbar) erkennen. Gleichzeitig beginnt auch die Visualisierung der Signalverläufe im Scope View, wie hier unten im Bild zu sehen ist.


Tutorial_Charts

Tutorial - Darstellungsmöglichkeiten der Signale

Ihre erste TwinCAT Scope View 2 Aufnahme läuft bereits, jedoch gefällt Ihnen die Darstellung der Signale, wie in dem ersten Bild dargestellt, nicht. Die Amplitude des Signals Peak ist für eine gemeinsame Nutzung der Y-Achse mit den Signalen Puls1 und Sinus_Fast viel zu groß.

Abhilfe kann in diesem Fall eine zweite Y-Achse im selben Chart bieten, welche man direkt zur Laufzeit einfügen kann. Einfach das Achsen-Symbol in der Toolbar anwählen und schon wird im aktuell selektierten Scope bzw. Chart eine Y-Achse eingefügt.

Wie Sie in dem zweiten Bild sehen können ist eine zweite Achse eingefügt worden und die Signale, Puls1 und Sinus_Fast, konnten per Maus in die neue Achse gezogen werden. Damit sind die Signale jetzt auf unterschiedlichen Achsen skaliert. Wenn Sie die Signale noch weiter vereinzeln möchten, haben Sie die Möglichkeit in den Chart-Settings die Option Stacked Y-Axes auszuwählen, diese Option bietet den Vorteil, dass hier für beide Y-Achsen gemeinsame X-Cursor zur Signal-Analyse verwendet werden können.

Eine weitere Möglichkeit, würde das Einfügen eines neuen Charts zur Laufzeit bieten. Gegenüber der Stacked Y-Axes Variante ist die gemeinsame Nutzung von Cursorn nicht möglich, allerdings können für eine Analyse zur Laufzeit die Displays der beiden Charts unabhängig voneinander gestoppt werden. Um diese Möglichkeit zu realisieren, können Sie einen neuen Chart über die Tool-Bar einfügen und die zweite Achse per Maus dort hinein ziehen.

Wenn Sie nun einen der beiden Chart-Karteireiter mit der Maus festhalten und in das Fensterinnere verschieben, so werden Ihnen verschiedene Andock-Möglichkeiten angezeigt. So können Sie sich auch zwei getrennte Charts gleichzeitig anzeigen lassen.


Tutorial_Analysis

Tutorial - Signalanalyse zur Laufzeit

Im TwinCAT Scope View 2 wird explizit zwischen Start/Stopp Record und Start/Stopp Display unterschieden. Mit Start/Stopp Display kann das View angehalten werden, während die Aufnahme im Hintergrund weiterläuft. So ergeben sich für Sie ganz neue Analysemöglichkeiten, noch während der Aufnahme. So kann man beispielsweise Cursor setzen oder in den Signalverlauf zoomen.

Im folgendem Bild wird der untere Chart gestoppt, die Aufnahme läuft im Hintergrund weiter.

Unabhängig davon, ob Sie das Display gestoppt haben oder nicht, ist es möglich im Chart-Fenster in der ersten Eingabebox von links die aktuelle Display-Weite einzustellen. Diese Möglichkeit soll im nächsten Bild für das Peak Signal gezeigt werden. Für die beiden anderen Signale, dessen Display gestoppt ist, werden zwei Cursor gesetzt, das Signal gezoomt und verschoben.

Die Display-Weite für das Peak Signal ist auf 5,5 Sekunden eingestellt worden. Der grüne Pfeil im nächsten Bild deutet auf die Zoom-Funktion im Scope View 2, direkt links daneben können Sie das Signal frei verschieben. Ganz unten finden Sie das geöffnete Cursor-Menu. In der Cursor-Tool-Bar stehen Ihnen verschiedene Symbole zur Verfügung, mit denen Sie Cursor setzen, löschen und auslesen können. Die Cursor zeigen immer den grade aktuellen Prozesswert an. Für die in diesem Menu eingeblendeten Cursor-Werte wird die Farbe des tatsächlichen Cursors übernommen, so lässt sich sehr einfach eine Zusammengehörigkeit zwischen Cursor und angezeigten Werten herstellen. Die gezeigten Werte sind selbsterklärend, hervorzuheben ist allerdings die Spalte "C 04 - C 03", welche optional eingeschaltet werden kann. Hier werden die Differenzen auf der X und Y Achse zwischen den Cursorn bzw. Signalen angezeigt.

Durch einen Doppelklick im Object Browser auf einen Ihrer Kanäle, öffnen sich automatisch die Channel Settings für den entsprechenden Kanal. Im vorherigen Bild wurden die Channel Settings für das Signal SIinus_Fast aufgerufen. Wenn Sie sich bei der Analyse des Puls1 Signals durch das zweite Signal gestört fühlen und im Augenblick keine direkten Zusammenhänge zwischen den Signalen untersuchen möchten, so können Sie das nicht gewünschte Signal ausblenden. Der rote Pfeil im Bild zeigt, wo Sie den Kanal unsichtbar schalten. Dabei gehen die Daten nicht verloren und die Aufnahme im Hintergrund geht auch für diesen Kanal nach wie vor weiter.

Im nächsten Bild ist das Signal Sinus_Fast ausgeblendet und es wird in die Channel Settings von Puls1 gewechselt. Im entsprechenden Menu wird die Option Marks eingeschaltet und zudem noch weiter in das Signal gezoomt. Jetzt sind für Sie alle Aufnahmepunkte direkt sichtbar, so ist es möglich die Cursor präzise auf die Marks auszurichten.


Tutorial_SaveExport

Tutorial - Daten speichern und exportieren

Wenn Ihre Aufnahme, durch Ablauf der Aufnahmezeit oder durch einen manuellen Stopp-Befehl, beendet worden ist, haben Sie verschiedene Möglichkeiten Ihre Daten auszuwerten und zu archivieren. Das hier für entscheidende Scope View 2 Menu finden Sie unter Run.

Mit Save Data speichern Sie Ihre Daten als svd File ab. Dies ist ein Daten File mit dem Sie sich Ihre Aufnahme wieder im TwinCAT Scope View 2 anschauen können.

Wenn Sie ein solches Daten File öffnen, dann stehen Ihnen genauso wie direkt nach dem Beenden einer Aufnahme die Optionen "Export to CSV" und "Export to Binary" zur Verfügung. Bei beiden Optionen öffnet sich ein Dialog, in dem Sie den Speicherort angeben können. Bei einem Export to CSV können Sie zwischen einem .csv und einem .txt File wählen. Ein Beispiel für den Import eines .csv Files in ein Tabellebearbeitungs-Programm können Sie im nächsten Bild sehen.


Tutorial_Trigger

Tutorial - Triggergesteuerte Aufnahme

Dieser Teil des Tutorials behandelt Scope Aufnahmen in Verbindung mit der Triggerfunktionalität. Fügen Sie dazu einen weiteren Kanal, bTest, über den Target Browser in das erste Chart, in eine neue Achse ein. Die Y-Achse wird in den Axis-Settings in "Trigger" umbenannt, dazu ist in den Channel-Settings die Signal-Breite vergrößert worden. Im nächsten Schritt öffnen Sie den Karteireiter Trigger, um dort die nötigen Einstellungen vorzunehmen.

Die beiden Button in der Trigger-Kartei sind zum hinzufügen und entfernen von Trigger-Gruppen, in welchen verschiedene Signale und dessen Grenzwerte mit AND und/oder OR verknüpft werden können, um so eine Triggeraktion auszulösen. Fügen Sie nun eine Trigger-Gruppe hinzu. Ziel dieser Trigger-Gruppe ist es auf eine steigende Flanke von bTest zu reagieren und so die bereits gestartete Aufnahme zu beenden.

Unter Trigger-Action wählen Sie bitte STOP_RECORD aus. Mit dieser Option ist es möglich eine Laufende Aufnahme wie gewünscht zu stoppen. Sobald Sie diese Option auswählen, werden Sie je nach Scope Settings darauf aufmerksam gemacht, dass diese Option nur im Ring Buffer Mode sinnvoll ist und genutzt werden kann (siehe nächste Abbildung).

Des Weiteren haben Sie die Möglichkeit eine Pre-Trigger und Post-Trigger Zeit vor zu geben. So haben können Sie die Vorgeschichte und die Auswirkungen eines Ereignisses in Ihrer Aufnahme festhalten und analysieren. Die Aufnahmedauer in den Scope-Settings sollte so gewählt werden das diese mindestens der Addition von Pre- und Post-Trigger Zeit entspricht. In diesem Fall wird eine Minute Aufnahmedauer im Ringbuffer mit 20s Pre-Trigger und 10s Post-Trigger Zeit eingestellt. Über die Buttons innerhalb der Triggergruppe fügen Sie bitte eine neue Trigger-Bedingung hinzu. Wählen Sie die Variable bTest aus und stellen den Grenzwert auf 0,5 (so wird eine Flake von 0 auf 1 sicher erkannt, diese Kommazahlen machen aufgrund von möglichen Signal-Offsets durchaus auch für boolsche Variablen Sinn) ein.

Starten Sie nun die Aufnahme mit dem Record Button in der Tool-Bar. Der Ring-Buffer wird von jetzt an immer wieder überschrieben, bis irgendwann, frühestens nach 20 Sekunden der Record-Time, das Ereignis eintritt, auf welches getriggert werden soll. Wenn das Ereignis eingetreten ist, verfärbt sich die Triggersignalfahne in der ersten Spalte von grün nach rot. In diesem Beispiel stoppt die Aufnahme nach weiteren 10 Sekunden, so dass man wie gewünscht sehen kann was direkt vor und nach dem Ereignis geschehen ist.

Die aufgenommenen Daten stehen jetzt wie gewohnt zur weiteren Verarbeitung zur Verfügung.


Tutorial_Glossar

Tutorial - Glossar

Begriff | Beschreibung
Scope | Das Scope bildet das oberste Hierarchische Element in einer Scope 2-Konfiguration und verwaltet alle Aufnahmeeinstellungen. TwinCATScopeView2_Elements_Scope.htm
Scope Server | Der Scope Server ist das Logger- Programm des Scope 2. Ein Scope verbindet sich mit einem oder mehreren Servern um neue Daten aufzunehmen oder ein vorhandenes File auszulesen. TwinCATScopeServer_Intro.htm
Scope View | Das Scope View ist das Front-End des Scope 2. Von hier werden Konfigurationen erstellt oder geladen, die Anzeige eingestellt und Aufnahmen gesteuert. TwinCATScopeView2_Architecture.htm
Chart | Das Chart stellt eine Zeichenfläche mit Zeitachse zur Verfügung. Alle angeschlossenen Kanäle werden auf den gleichen Zeitausschnitt skaliert. TwinCATScopeView2_Elements_Chart.htm
Achse | Eine (Y-) Achse stellt die Werteskalierung für angeschlossene Kanäle dar. TwinCATScopeView2_Elements_Axis.htm
Kanal | Der Kanal bildet die Verbindung von Systemvariable und Graph. Daher gibt es ein Einstellfenster für die Acquisition (TwinCATScopeView2_Elements_Acquisition.htm) und eines für die allgemeine Einstellungen (TwinCATScopeView2_Elements_Channel.htm).
Target Browser | Mit dem Target Browser können alle angeschlossenen Systeme und deren Geräte einfach nach Systemvariablen durchsucht werden. TwinCATScopeView2_TargetBrowser.htm
Object Browser | Der Object Browser zeigt die aktuellen Konfigurationen an und bietet Möglichkeiten diese zu verändern. TwinCATScopeView2_Architecture.htm
Cursor | Zur Anzeige von Graph- und Achswerten und deren Differenzen dient das Cursor-Modul. TwinCATScopeView2_Elements_Cursor.htm
Trigger | Mit frei konfigurierbaren Triggergruppen können verschiedene Aktionen ausgelöst werden. TwinCATScopeView2_Elements_Trigger.htm


ScopeViewControl Integration

Integration des ScopeViewControl in eigene Anwendungen

Um eine hohe Integrierbarkeit zu erreichen ist das Scope2 in Komponenten unterteilt. Sichtbar ist beispielsweise die Trennung von ScopeView und ScopeServer. Darüberhinaus basiert das ScopeView auf dem ScopeViewControl, welches ebenfalls als eigenständige Komponente nutzbar ist. Die in .NET entwickelte ScopeViewControlLib steht mit der Installation des Socope2 zur Verfügung. Auf diese Weise ist eine einfache Einbindung in C#, VB.Net oder WPF-Applikationen möglich.

MS VisualStudio

Um das ScopeViewControl einem bestehenden oder neu angelegten Projekt hinzuzufügen bietet sich der Designer des Visual Studios an:

  • Öffnen der Form oder des Controls, dem das ScopeViewControl hinzugefügt werden soll.
  • In der Toolbox, mit der rechten Maus auf eine frei Stelle klicken und 'Choose Items..' wählen.
  • Im erscheinenden Dialog 'Browse' auswählen, den Installationspfad des Scope2 suchen und den Ordner 'View' öffnen.
  • Die 'TwinCAT.Scope2.View.ScopeViewControlLib.dll' auswählen und bestätigen.
  • In der Toolbox erscheint nun ein Zahnrad mit dem Eintrag 'ScopeViewControl'
  • Ein oder mehrere ScopeViewControls mit der Maus in den Designer ziehen und positionieren oder andocken.

Wird das Projekt nun kompiliert meldet das Visual Studio ggf. fehlende Verweise zur 'TcAdsScope2Communications' und zur 'SimpleHelper' -Library:

  • Im Solution Explorer mit der Rechten Maus das aktuelle Projekt auswählen und 'Add Reference..' wählen.
  • Im 'Browse'-Tab den Installationspfad des Scope2 suchen und den View-Ordner wählen.
  • Die Bibliotheken 'TwinCAT.Ads.dll', 'SimpleHelper.dll' und 'TwinCAT.Scope2.Communications.dll' dem Projekt hinzufügen.

C# Sample-Projekt

Im folgenden soll die dargestellte Anwendung schrittweise erstellt werden, um die wichtigsten Aspekte bei der Anwendung des ScopeViewControl zu demonstrieren.

Erstellen sie dazu eine neue Windows-Anwendung und fügen sie der Form im Designer eine Tool-Bar und die dargestellten Buttons hinzu. Durch einen Doppelklick können sie für jeden Button einen Click-Eventhandler erzeugen, der im Folgenden mit dem Beispielcode gefüllt wird. Fügen sie dann ein ScopeViewControl, wie oben beschrieben der Form hinzu und setzten das 'Dock'-Property auf Full.

Konfiguration laden

Das nun ausführbare Projekt zeigt beim Start nur eine graue Fläche, da noch keine Konfiguration geladen oder erstellt ist. Prinzipiell kann man eine Konfiguration programmatisch erstellen oder eine, mit dem ScopeView2 erstellte, .sv2 Datei laden.

Das C# Codebeispiel zeigt den Aufruf aus einem 'ButtonClick-EventHandler' :

private string filename = @"ScopeTest.sv2";

private void button_Load_Click(object sender, EventArgs e)
{
    FileInfo finfo = new FileInfo(filename);
    if (!finfo.Exists)
    {
        MessageBox.Show(this, "File not found! Please use the 'New' buttons to create a config.\r\n
                Once a config is created and saved it can be load using the 'Load' -Button!", "File not found!",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    else
    {
        // alte Konfiguration löschen
        while (scopeViewControl1.Charts.Count > 0)
        {
            scopeViewControl1.DeleteChart(scopeViewControl1.Charts[0]);
        }
        // Konfiguration laden
        scopeViewControl1.LoadScopeConfig(filename);

        foreach (ScopeViewControlChannel channel in scopeViewControl1.ConnectedChannels)
        {
            channel.Acquisition.AmsNetId = AmsNetId.Local;
        }
    }
}

Konfiguration programmatisch erstellen

Das ScopeViewControl bietet Methoden für alle Funktionen an, die auch vom ScopeView2 aufgerufen werden. Für Details sei auf die separate Api-Dokumentation der ScopeViewControlLib verwiesen: ScopeViewControlLib

Hinzufügen

Alle Elemente die im ScopeView2 hinzugefügt werden können, werden im ScopeViewControl durch eine Methode im jeweils höheren Element erzeugt:

  • Charts:
    private void buttonChart_Click(object sender, EventArgs e)
{
    ScopeViewControlChart chart = scopeViewControl1.NewChart();
}
  • (Y-)Axes:
    private void buttonAxis_Click(object sender, EventArgs e)
{
    if (scopeViewControl1.Charts.Count == 0)
    {
        MessageBox.Show(this, "Please create a chart first!", "No chart connected!",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    else
    {
        ScopeViewControlYAxis axis = scopeViewControl1.Charts[0].NewAxis();
    }
}
  • Channels:
    private void buttonChannel_Click(object sender, EventArgs e)
{
    if (scopeViewControl1.Charts.Count == 0)
    {
        MessageBox.Show(this, "Please create a chart first!", "No chart connected!",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    else if (scopeViewControl1.Charts[0].Axes.Count == 0)
    {
        MessageBox.Show(this, "Please create an YAxis first!", "No axis connected!",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    else if (scopeViewControl1.Charts[0].Axes[0].Channels.Count > 0)
    {
        MessageBox.Show(this, "This sample contains only one channel!", "Channel still connected!",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    else
    {
        ScopeViewControlChannel channel = scopeViewControl1.Charts[0].Axes[0].NewChannel();
        ChangeChannelSettings(channel);
        SetAcquisition(channel);
    }
}

Erscheinung (Settings)

Jedes der erstellten Elemente hat ein 'Style'-Property, in dem alle Eigenschaften gespeichert sind, die auch im entsprechenden Settings-Fenster des ScopeView2 zu sehen sind. Einem Kanal etwa können Farbe und Linienstärke zugewiesen werden.

private void ChangeChannelSettings(ScopeViewControlChannel channel)
{
    if (scopeViewControl1.Charts.Count == 0)
    {
        MessageBox.Show(this, "Please create a chart first!", "No chart connected!",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    else if (scopeViewControl1.Charts[0].Axes.Count == 0)
    {
        MessageBox.Show(this, "Please create an YAxis first!", "No axis connected!",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    else if (scopeViewControl1.Charts[0].Axes[0].Channels.Count == 0)
    {
        MessageBox.Show(this, "Please create a Channel first!", "No channel connected!",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    else
    {
        channel.Style.LineColor = Color.Red;
        channel.Style.MarkColor = Color.DarkRed;
        channel.Style.LineWidth = 2;
    }
}

Akquisition

Jeder Kanal besitzt neben dem 'Style' auch das 'Acquisition'-Property. Hier wird die Verbindung zu einer System Variable eingestellt:

private void SetAcquisition(ScopeViewControlChannel channel)
{
    if (scopeViewControl1.Charts.Count == 0)
    {
        MessageBox.Show(this, "Please create a chart first!", "No chart connected!",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    else if (scopeViewControl1.Charts[0].Axes.Count == 0)
    {
        MessageBox.Show(this, "Please create an YAxis first!", "No axis connected!",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    else if (scopeViewControl1.Charts[0].Axes[0].Channels.Count == 0)
    {
        MessageBox.Show(this, "Please create a Channel first!", "No channel connected!",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    else
    {
        // AmsNetId und AmsPort benötigen die TwinCAT.Ads.dll
        channel.Acquisition.AmsNetId = AmsNetId.Local;
        channel.Acquisition.TargetPort = (int)AmsPort.PlcRuntime1;
        channel.Acquisition.IsSymbolBased = true;
        channel.Acquisition.SymbolName = "SIGNALS.TREPPE";
        channel.Acquisition.DataType = DataTypeConverter.AdsToScope2Datatype(AdsDatatypeId.ADST_INT16);
        channel.Acquisition.SampleTime = (uint)(10 * TimeSpan.TicksPerMillisecond);
    }
}

Aufnahme steuern

Alle Methoden und Eigenschaften um das ScopeViewControl zu steuern sind im 'Operating'-Property zusammengefasst. Hier sind alle Eigenschaften zu finden, die auch im Scope-Settings Fenster des ScopeView2 zu sehen sind. Darüber hinaus stehen Methoden zum starten und stoppen der Aufnahme oder zum speichern und exportieren zur Verfügung.

private void button_StartRecord_Click(object sender, EventArgs e)
{
    try
    {
        // alte Daten verwerfen
        if (scopeViewControl1.State == ScopeViewControlStates.REPLY)
            scopeViewControl1.Operating.DisConnect(false);

        // Aufnahme starten
        if (scopeViewControl1.State == ScopeViewControlStates.CONFIG)
            scopeViewControl1.Operating.StartRecord();

        // alle Charts starten
        if (scopeViewControl1.State == ScopeViewControlStates.CONNECTED)
            scopeViewControl1.Operating.StartAllDisplays();
    }
    catch (Exception err)
    {
        MessageBox.Show(this, err.Message, "Error on start record!",
                MessageBoxButtons.OK, MessageBoxIcon.Error);
    }

}

private void button_StopRecord_Click(object sender, EventArgs e)
{
    try
    {
        if (scopeViewControl1.State == ScopeViewControlStates.RECORD)
            scopeViewControl1.Operating.StopRecord();
     }
    catch (Exception err)
    {
        MessageBox.Show(this, err.Message, "Error on stop record!",
                MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

private void button_Save_Click(object sender, EventArgs e)
{
    try
    {
        // wenn Daten da sind speichern
        if (scopeViewControl1.State == ScopeViewControlStates.REPLY)
        {
            File.Create("ExportData.svd").Close();
            scopeViewControl1.Operating.SaveData("ExportData.svd");
        }
        // sonst nur die Konfiguration speichern
        else
        {
            File.Create(filename).Close();
            scopeViewControl1.SaveScopeConfig(filename);
        }
    }
    catch (Exception err)
    {
        MessageBox.Show(this, err.Message, "Error on save!",
                MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

Charts steuern

Alle Charts die der Konfiguration hinzugefügt wurden verfügen über eine eigene Toolbox um sie bedienbar zu machen. Es ist jedoch auch möglich diese Funktionen über das 'ChartOperating'-Property zu bedienen. Dort finden sich auch Optionen um die Toolbar und die Zeitleiste ein und aus zu blenden.

private void button_Run_Click(object sender, EventArgs e)
{
    if (scopeViewControl1.State != ScopeViewControlStates.RECORD)
    {
        MessageBox.Show(this, "Only possible if a record is running!", "Run not possible!",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    if (scopeViewControl1.State == ScopeViewControlStates.RECORD)
        scopeViewControl1.Charts[0].ChartOperating.StartDisplay();
}

private void button_Pause_Click(object sender, EventArgs e)
{
    if (scopeViewControl1.State != ScopeViewControlStates.RECORD)
    {
        MessageBox.Show(this, "Only possible if a record is running!", "Pause not possible!",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    if (scopeViewControl1.State == ScopeViewControlStates.RECORD)
        scopeViewControl1.Charts[0].ChartOperating.StopDisplay();
}

private void toolStripButtonDelChart_Click(object sender, EventArgs e)
{
    if (scopeViewControl1.Charts.Count == 0)
    {
        MessageBox.Show(this, "No chart is connected!", "Nothing to delete!",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
    else if (scopeViewControl1.State == ScopeViewControlStates.RECORD)
    {
        scopeViewControl1.Operating.StopRecord();
        scopeViewControl1.Operating.DisConnect(false);
    }
    else if (scopeViewControl1.State == ScopeViewControlStates.REPLY)
    {
        scopeViewControl1.Operating.DisConnect(false);
    }
    else
    {
        scopeViewControl1.DeleteChart(scopeViewControl1.Charts[scopeViewControl1.Charts.Count - 1]);
    }
}

Das hier entwickelte Beispiel ist als VS2008 - Projekt verfügbar: ScopeViewControlIntegration.zip

Das Beispiel greift auf Variablen des Beispiel PLC-Programms zu: Scope2Signals.zip


Scope Oversampling

Oversampling-Aufnahmen mit Scope 2

Mit dem TwinCAT Scope 2 ist es möglich Oversamping-Werte in einer einzigen Variablen darzustellen. Da beim Oversampling für jeden Zyklus n Werte (n = Oversampling-Faktor) aufgenommen werden, generiert der TwinCAT System Manager ein ADS-Symbol, welches für jeden einzelnen Wert einen eigenen Zeitstempel beinhaltet. Verbindet man sich auf dieses ADS-Symbol mit dem Scope 2, so übernimmt das Scope alle weiteren Einstellungen, um die n Werte in einer zeitlich korrekten Reihenfolge darzustellen.

Damit das ADS-Symbol erzeugt wird und direkt von einer EtherCAT-Klemme (z.B. EL3702 oder EL3632) gescopet werden kann, müssen einige Einstellungen in der TwinCAT System Manager Konfiguration vorgenommen werden:

1. Im EtherCAT Prozessabbild muss im Karteireiter ADS der ADS-Server aktiviert werden. Dazu muss die Option Symbole Erzeugen eingeschaltet werden. Der zugewiesenen ADS-Port muss später im Scope 2 angegeben werden, um die ADS-Symbole zu finden.

2. Für die entsprechende Oversampling Klemme sollte der gewünschte Oversampling-Faktor im TwinCAT System Manager eingestellt werden, bevor dann die Konfiguration aktiviert wird.

3. Wenn die Konfiguration erfolgreich geladen wurde und TwinCAT im Run-Mode ist, kann man in das TwinCAT Scope 2 wechseln. Im Target Browser des Scopes muss der Server Settings Dialog aufgerufen werden. In diesem Dialog muss die vom TwinCAT System Manager zugewiesene ADS-Portnummer eingetragen und mit dem Add-Button hinzugefügt werden, vorausgesetzt der Port ist nicht schon zuvor eingetragen worden.

4. Jetzt sollte im TwinCAT Scope 2 Target Browser AdsPort of Image 1 (27905) erscheinen. Über diesen neuen Eintrag kann man in die EtherCAT Klemmen und so auch in die gewünschte Oversampling-Klemme hinein browsen. In der Oversampling-Klemme sollte die rot gekennzeichnete Variable mit dem Zusatz [T20] (20 steht in diesem Fall für 20-fach Oversampling, diese Zahl kann entsprechend dem Oversampling-Faktor variieren) für die Scope-Aufnahme ausgewählt werden.

Die INT16 Variable kann jetzt im TwinCAT Scope 2 direkt aufgezeichnet werden. Im folgenden Screenshot 20-fach Oversampling bei 1ms Zykluszeit.


FAQ_Scope2

TwinCAT Supplement: Scope 2

FAQ - Häufig gestellte Fragen und Antworten

In diesem Bereich werden häufig gestellte Fragen beantwortet, um Ihnen die Arbeit mit TwinCAT Scope2 zu erleichtern.
Wenn Sie noch weitere Fragen haben, kontaktieren Sie bitte unseren Support (-157)

1. Kann ich von einem CE Gerät Daten aufzeichnen?

2. Kann das Scope Control in .NET eingebunden werden?

3. Gibt es für das Scope2 eine Schritt-für-Schritt Anleitung?

4. Warum wird mein Trigger-Ereignis nicht erkannt?

5. Kann ich meine Daten auch in ein txt File exportieren?

6. Muss ich bei jedem Scope Update meine alte Scope Version deinstallieren?

7. Kann man Oversampling-Werte direkt von den I/O´s aufnehmen?

8. Ist es möglich den aktuellen Chart auszudrucken?

9. Kann man einen Cursor auch an einer Position verankern?

10. Ist die Darstellung einer Kurvenschar möglich?

11. Kann ich das Scope2 aus der PLC steuern?

12. Ist das Scope2 mit TC 2.10 und 2.11 zu betreiben?

13. Ist es möglich von verschiedenen Geräten gleichzeitig in einem Scope eine Aufnahme zu machen?

14. Ist es möglich eine Aufnahme von einer extern getriggerten zusätzlichen Task zu machen?

1 .
? Kann ich von einem CE Gerät Daten aufzeichnen?
 ! Ja, mit der Option "Use Local Server" unter Channel Acquisition.

2.
? Kann das Scope Control in .NET eingebunden werden?
 ! Ja, das Scope Control kann inklusive Scope Client und Chart Control in .NET eingebunden werden.

3.
? Gibt es für das Scope2 eine Schritt-für-Schritt Anleitung?
 ! Ja, im Beckhoff Information System unter Tutorial.

4.
? Warum wird mein Trigger-Ereignis nicht erkannt?
! Weil wahrscheinlich die Aufnahmezeit für eine mögliche "Ereignis-Vorgeschichte" noch nicht abgelaufen ist.

5.
? Kann ich meine Daten auch in ein txt File exportieren?
! Ja. Wenn Sie "Export to CSV" unter dem Menü-Punkt "Run" auswählen und im sich öffnenden Dialog als Datentyp txt wählen.

6.
? Muss ich bei jedem Scope Update meine alte Scope Version deinstallieren?
! Nein. Es sollte reichen das Update ohne Deinstallation durchzuführen. Sollten Sie jedoch noch eine Scope2 Version aus der BETA-Phase benutzen, so sollten Sie eine Deinstallation durchführen.

7.
? Kann man Oversampling-Werte direkt von den I/O´s aufnehmen?
! Ja, sobald der ADS Server im Prozessabbild aktiviert ist und der entsprechende ADS-Port bekannt ist. Eine ausführliche Beschreibung finden Sie hier.

8.
? Ist es möglich den aktuellen Chart auszudrucken?
! Es ist nicht möglich den Chart direkt aus dem Scope View auszudrucken. Allerdings befindet sich diese Funktionalität in der Entwicklung.

9.
? Kann man einen Cursor auch an einer Position verankern?
! Nein, aktuell ist dies noch nicht möglich. Dieses Feature befindet sich ebenfalls in der Entwicklung.

10.
? Ist die Darstellung einer Kurvenschar möglich?
! Nein, dass ist aktuell nicht möglich.

11.
? Kann ich das Scope2 aus der PLC steuern?
! Aus der SPS heraus kann der Scope2 Server mit dem Baustein FB_ScopeServerControl gesteuert werden.

12.
? Ist das Scope2 mit TC 2.10 und 2.11 zu betreiben?
! Natürlich werden beide TwinCAT Versionen unterstützt. Vorrausetzung ist das TwinCAT Level I/O.

13.
? Ist es möglich von verschiedenen Geräten gleichzeitig in einem Scope eine Aufnahme zu machen?
! Ja dies ist möglich. Allerdings müssen die Geräte untereinander zeitlich synchronisiert werden. Aktuell vergleicht das Scope2 die TwinCAT Zeiten miteinander. Die TwinCAT Uhren übernehmen bei einem TwinCAT Start die Windows Zeit. Aktuell ist also eine Synchronisation der Windows Uhren und ein TwinCAT Neustart nötig. Die maximal erlaubte Differenz beträgt 5 Sekunden.

14.
? Ist es möglich eine Aufnahme von einer extern getriggerten zusätzlichen Task zu machen?
! Ja das ist möglich. Es muss jedoch eine vernünftige Update-Rate gewählt werden. Die Update-Rate darf nicht zu langsam sein, da sonst die Werte unter Umständen falsch interpretiert werden können. Des Weiteren stellen Sie sicher, das Ihre externe Applikation bereits vor dem Start der Aufnahme läuft. Generell ist es zu empfehlen eine zusätzliche Task mit der AutoStart Option auszuführen, dann sollte das Handling und die Aufnahme wie gewohnt funktionieren.