Herunterladen Inhalt Inhalt Diese Seite drucken
Inhaltsverzeichnis

Werbung

Manual
Version 5.0.4
www.iftools.com

Werbung

Inhaltsverzeichnis
loading

Inhaltszusammenfassung für IFTOOLS MSB-RS485-PLUS

  • Seite 1 Manual Version 5.0.4 www.iftools.com...
  • Seite 3: Inhaltsverzeichnis

    Abtastung ......2 MSB-RS485-PLUS Analyser Vorteile einer Hardware Lösung ....
  • Seite 4 INHALTSVERZEICHNIS 7.4.3 Anzeige III ......Konfigurierung der Aufzeichnung ....7.5.1 Verbindung .
  • Seite 5 INHALTSVERZEICHNIS 11.2 Bereich auswählen ......11.2.1 Copy and Paste ..... . . 11.2.2 Datenauschnitt speichern .
  • Seite 6 INHALTSVERZEICHNIS 13.1.5 Aktuelle Fenstereinstellungen als Vorgabe verwenden . 102 13.1.6 Zu einer Telegramm Nummer springen ..102 13.1.7 Filter Eingabe ......102 13.1.8 Bereich auswählen .
  • Seite 7 INHALTSVERZEICHNIS 14.4 Undo und Redo ......171 14.5 Signalkontrollfeld ......171 14.5.1 Signal entfernen/ausblenden .
  • Seite 8 INHALTSVERZEICHNIS 17.2.3 Kommentare ......202 17.2.4 Datentypen ......203 17.2.4.1 Zahlen .
  • Seite 9 INHALTSVERZEICHNIS 18.2.4.2 checksum.crc16_bacnet ... . . 227 18.2.4.3 checksum.crc16_ccitt_kermit ... 228 18.2.4.4 checksum.crc16_df1 ....228 18.2.4.5 checksum.crc16_dnp3 .
  • Seite 10 INHALTSVERZEICHNIS 20.3.4 Benutzerdefinierte Datumausgabe ... . 261 20.3.5 msb_format Programm Parameter ... . 262 20.4 Datenausgabe filtern mit msb_filter ....263 .
  • Seite 11 INHALTSVERZEICHNIS Programm läuft nicht unter einem 64 bit Linux (Part II) ..297 Unbekannte Probleme ..... . . 297...
  • Seite 12 INHALTSVERZEICHNIS...
  • Seite 13: Analyse Von Rs422/485 Bussystemen

    Analyse von RS422/485 Bussystemen Im Gegensatz zu anderen Bussen definieren RS422 bzw. RS485 nur die elektrischen Eigenschaften, alle weiteren Protokolleben- en können frei spezifiziert werden. Eine Analyse muß deshalb neben den physikalischen Besonderheiten auch die unterschied- lichsten Protokolle berücksichtigen. RS485 und RS422 (bzw. korrekter EIA-422 und EIA-485) werden aufgrund der großen Ähnlichkeit oft synonym verwendet, wobei der EIA-422 Standard als ei- ne Art Untermenge von EIA-485 angesehen wird.
  • Seite 14 KAPITEL 1. ANALYSE VON RS422/485 BUSSYSTEMEN Sende- und Empfangsleitungspaaren (4-Draht-Technik, kurz 4-wire). In einem 2-Draht Bussystem sind alle Sender und Empfänger gemeinsam mit einem Leitungspaar verbunden. Hauptvorteil der 2-Draht Technik ist ihre Multi- Master Fähigkeit, d.h. jeder Busteilnehmer kann prinzipiell mit anderen Teil- nehmern Daten austauschen.
  • Seite 15: Spezieller Serieller Treiber

    1.1. SPEZIELLER SERIELLER TREIBER Nach diesem kurzen Exkurs in die Spezifikationen von EIA-422/485 ist der Rahmen gesteckt für unsere eigentliche Frage: Welche Möglichkeiten zur Ana- lyse von EIA-485 Verbindungen gibt es und wofür sind sie geeignet? Durch die einfache Anbindung eines auf einer asynchronen Datenübertrag- ung basierenden EIA-485 Busses an einen herkömmlichen PC sind folgende Verfahren zur Auszeichnung und ggf.
  • Seite 16: Doppelter Bus-Abgriff 4-Draht Bus

    KAPITEL 1. ANALYSE VON RS422/485 BUSSYSTEMEN an den Bus angeschlossen. Diese Variante erlaubt das Mitprotokollieren aller übertragenen Datenbytes (auch von zwei nicht PC Geräten) mit einem PC und entsprechender Software wie z.B. Hyperterm. Die Nachteile: Da Sende- und Empfangsdaten über die gleiche Leitung gehen, kann phy- sikalisch nicht zwischen gesendeten und empfangenen Daten unterschieden werden.
  • Seite 17 1.4. ABTASTUNG Mehr noch: Selbst ’jitternde’ oder leicht abweichende Baudraten einzelner Teil- nehmer sind damit erkennbar. Abtastende Analysatoren vereinigen damit die Vorzüge eines Protokollanaly- sers mit den Eigenschaften eines Digitalscopes und bieten neben der Proto- kollierung des Datentransfers auch die physikalische Darstellung der Leitungs- pegel.
  • Seite 18 KAPITEL 1. ANALYSE VON RS422/485 BUSSYSTEMEN...
  • Seite 19: Msb-Rs485-Plus Analyser

    MSB-RS485-PLUS Analyser Analyzer ist ein unverzichtbares Werkzeug MSB-RS485-PLUS zur Analyse und Optimierung von RS485/422 Verbindungen. Als eigenständiges Gerät liefert es Mikrosekunden genaue Daten über jede Leitungsänderung - unabhängig von PC und OS. Ausgestattet mit einer Vielzahl von Visualisierungs-Tools erlaubt es einen detailierten Blick in jede RS485/422 Kommunikation und erkennt Zustände, die nur einer echten ’Hardware Lösung’...
  • Seite 20: Vorteile Einer Hardware Lösung

    KAPITEL 2. MSB-RS485-PLUS ANALYSER 2.1 Vorteile einer Hardware Lösung Analyzer bietet die Fähigkeiten eines Logik-Analysers MSB-RS485-PLUS verbunden mit einem sehr attraktiven Preis. Dabei werden die Nachteile reiner Software Lösungen durch die direkte Verarbeitung der Signaländerungen in ei- ner unabhängigen Hardware vermieden.
  • Seite 21: Innovatives Software Konzept

    Dies schließt sowohl die physikalische Darstel- lung des Signals (Scopedarstellung) in unterschiedlichen zeitlichen Auflösun- gen also auch die Anzeige der übertragenen Datenbytes ein..und alle Linux OS Die Software des ist modular als Multi-Process Architektur MSB-RS485-PLUS 32 und 64 Bit...
  • Seite 22: Anwendungsgebiete

    KAPITEL 2. MSB-RS485-PLUS ANALYSER aufgebaut. Während das Kontrollprogramm die Aufzeichnung kontrolliert, kön- nen die übertragenen Daten/Signale durch beliebig viele ’Analysefenster’ zu unterschiedlichen Zeitpunkten untersucht und analysiert werden. So kann z.B. das physikalische Signal eines 2-Draht Busses bzw. der beiden Datenleitungen eines 4-Draht Systems zum aktuellen Zeitpunkt verfolgt und gleichzeitig ein früherer Ausschnitt in einer höheren Auflösung betrachtet wer-...
  • Seite 23 2.3. ANWENDUNGSGEBIETE (Profibus, CAN Bus), sowie detaillierte Aussagen über Reaktionszeiten in EIA- 422/485 Protokollen. Durch die aktive Abtastung aller Leitungspaare können auch Buskonflikte, her- vorgerufen durch falsches Umsetzen des TriState Zustandes eindeutig erkannt werden. Dies gilt auch, wenn der Datenbus (Sende- und/oder Empfangslei- tungen) per pull up/pull down auf ein Idle Pegel von 200mV eingestellt sind.
  • Seite 24 KAPITEL 2. MSB-RS485-PLUS ANALYSER...
  • Seite 25: Features & Benefits

    Features & Benefits Analyzer bietet alle nötigen Eigenschaften für MSB-RS485-PLUS eine effektive Untersuchung von asynchronen EIA-422/485 Verbindungen. Insbesondere für Debugging, Tests und ’Reverse Engineering’. Simultane Erfassung aller Leitungen durch externe Hardware : Exakte Messung des Zeitverhaltens aller EIA-422/485 Signale mit einer Genauigkeit von 1µsec durch maximale Abtastung mit 200 MHz unabhängig vom Betriebs-...
  • Seite 26 Link Buchse ist die zeitgleiche Datenaufzeichnung zweier unter- schiedlicher RS232/RS422/485 Verbindungen möglich. Die Genauigkeit be- trägt 10 Nanosekunden. Multiplattform Support : Software wird als ’Native Bi- MSB-RS485-PLUS nary’ für Microsoft Windows und Linux geliefert. Keine Emulation, keine zu- sätzlichen Bibliotheken oder Installationen wie .NET oder Java MultiLanguage Support : Deutsche und englische Sprachunterstützung.
  • Seite 27: Spezifikationen

    Spezifikationen Allgemein Protokoll Analysator zur Aufnahme und Analyse von asynchronen EIA-422/485 Verbindungen (2-Draht, 4-Draht, halb- und vollduplex) durch paralleles Abtas- ten mit maximal 200 MHz. Exakte Messung des Zeitverhaltens aller Daten- und Bussignale mit einer Genauigkeit von 10 Nanosekunden. Dekodierung der Busleitungen T+, T–, R+, R– inklusive Tri-State Zustand mit beliebiger Baudrate im Bereich 1 Baud bis 20 MBaud.
  • Seite 28: Zusätzliche Features

    Abmessungen 100mm x 60mm x 30mm (Länge, Breite, Höhe) Gewicht ca. 100g Lieferumfang Analyzer Analyzer Gerät. MSB-RS485-PLUS Anschluss-Set bestehend aus: 2* 6-polige Phoenix Schraubklemm-Anschlussstecker 4* Abschlußwiderstände 120 falls Analyser End-Device ist 4* Drahtbrücken für unterschiedliche Anschlussvarianten Schraubendreher für Phoenix Stecker USB Kabel zur Verbindung mit PC.
  • Seite 29: Voraussetzungen

    Voraussetzungen Grafikdisplay Grafikkarte und Monitor mit 1024x768 Auflösung und 16 Bit Farbtiefe oder bes- ser. Festplattenplatz 100 MByte freier Festplattenplatz für die Software Installation plus zusätzlicher Platz für die Aufnahmedateien. Speicher (RAM) 256 MByte oder mehr USB Anschluss Ein freier USB 2.0 Anschluss (high speed).
  • Seite 30 KAPITEL 4. SPEZIFIKATIONEN...
  • Seite 31: Programm Installation

    MSB-Analyser tion durchgeführt haben. Legen Sie die Installations CDROM ein. Der IFTOOLS Produkt Installer wird aufgerufen. Wenn der Installer nicht auto- matisch startet, doppelklicken Sie auf dem Desktop auf Arbeitsplatz bzw. öffnen diesen im Startmenü. Doppelklicken Sie das IFTOOLS-Setup-CD Icon um den IFTOOLS Produkt Installer zu starten.
  • Seite 32: Installation Unter Linux

    Das für den Betrieb nötige Kernelmodul ist Bestandteil aller Kernel seit Kernel Version 2.4.18 und muß deshalb nicht extra eingerichtet werden. 5.2 Manuelle Installation unter Linux Sollte der IFTOOLS Produkt Installer nach einlegen der CD-ROM nicht auto- matisch starten, gehen Sie wie folgt vor: Öffnen Sie eine Konsole...
  • Seite 33: Installation Für Alle Benutzer

    Kommando ausführen wollen: sudo ~/Desktop/msb-5.0.4-linux-installer.run --mode text 5.4 Programm Updates IFTOOLS veröffentlicht in unregelmäßigen Abständen Software Updates mit neuen Eigenschaften und Verbesserungen. Diese Updates sind für Sie kos- tenlos und können jederzeit unter folgender Adresse https://iftools.com/download...
  • Seite 34 KAPITEL 5. PROGRAMM INSTALLATION...
  • Seite 35: Anschluß Des Analysers

    Um eine einfache Adaptierung des Analysers an die verschiedensten Bussys- teme zu ermöglichen ist die mit zwei 6poligen Buchsen zur MSB-RS485-PLUS Aufnahme von jeweils einem Phoenix Schraubklemmstecker ausgestattet. Ein entsprechendes Anschluß-Kit inklusive Schraubenzieher ist beigelegt. Über die Buchse PC USB wird der Analyser mit einem freien USB Anschluß...
  • Seite 36: Busanschlüsse

    Bus Richtung oder Bus Gültigkeit dienen können. 6.1 Busanschlüsse bietet zwei steckbare 6-Pin Phoenix Schraubklemm An- MSB-RS485-PLUS schlüsse zur einfachen Verbindung des Analysers mit beliebigen Feldbus Sys- temen. Dies umfasst insgesamt vier RS485 Bus (Kanal) Eingänge sowie zwei digitale IO Ports.
  • Seite 37: Anschluss Der Bus Leitungen

    PC benötigen verwenden Sie entweder einen potentialfreien Laptop oder einen passenden USB Isolator. Die nachfolgende Tabelle listet die geläufigsten Leitungsbezeichnungen auf: EIA-485 Alternative Bezeichnungen MSB-RS485-PLUS TX+, TX+/RX+, D+, Data+, (Y) TX–, TX–/RX–, D-, Data-, (G) 1,2 Nur bei vollduplex 4-Draht Systemen. 6.3 Interne Signalverarbeitung Analyzer besitzt vier Differenzsignal-Eingänge CH1...CH4...
  • Seite 38: Digitale Ein/Ausgänge

    Bus-(Daten)-Signal Bus-(Daten)-Signal 6.4 Digitale Ein/Ausgänge Analyser besitzt 2 zusätzliche Digitale IO Kanäle, die MSB-RS485-PLUS wahlweise als Hilfseingang (zur Aufzeichnung zusätzlicher Logiksignale) oder als Ausgang geschaltet werden können. Letzteres erlaubt die Ausgabe der Busrichtung sowie Gültigkeit des Busses entweder einzelner Segmente oder durchgeschleifter Busleitungen.
  • Seite 39: Abgriff 2-Draht System

    Allen seriellen Bussystemen ist die Tatsache zu eigen, daß die Signale auf un- terster Ebene keine Rückschlüsse auf Richtung und Herkunft erlauben. Analyser bietet deshalb zusätzlich die Möglichkeit zur MSB-RS485-PLUS Auftrennung der zu untersuchenden Verbindung in einzelne Segmente und/o- der Teilnehmer.
  • Seite 40: Segment Analyse 2-Draht System

    Im Gegensatz zum einfachen ’Abgriff’ des Datensignals wird bei der Segment- Analyse die ’in’ den Bus eingeschleift. Der Bus wird dadurch MSB-RS485-PLUS in einen Abschnitt (ein Segment) rechts und links dem Analyser aufgeteilt. Obwohl diese Anschlussart etwas aufwendiger ist, hat sie doch einige Vorteile gegenüber dem einfachen Abgriff.
  • Seite 41: Abgriff 4-Draht System

    6.8. ABGRIFF 4-DRAHT SYSTEM 2-Draht Segment Analyse für Halbduplex Bus (Modbus, ProfiBus) Der Analyser zeichnet die Daten beider Segmente unabhängig voneinander auf, wobei die Daten in beide Richtungen transparent durchgeleitet werden. Daten des einen Segments werden als von CH1 kommend und intern mit A, Daten des anderen Segments oder Teilnehmers an CH2 mit B gekennzeichnet (A und B entsprechen einfach zwei verschiedenen Datenquellen, die weder einem Leitungspaar noch einem speziellen Eingangskanal zugewiesen sind).
  • Seite 42: Segment Analyse 4-Draht System

    Bussegmente hinterlässt müssen Sie diese ggf. entsprechend terminieren. Der Analyser hat diese bereits ’an Bord’ und Sie MSB-RS485-PLUS müssen diese nur noch im Bus Anschluss Dialog aktivieren. Zusätzlich sind evtl vorhandene Pullups zu berücksichtigen, siehe Abschnitt 6.7. Der Anschluß des Masterbus erfolgt als einfacher Abgriff an CH3. Eine Termi- nierung ist hier unnötig.
  • Seite 43: Analyse Zweier Unabhängiger Halb-Duplex Bus Systems

    Dies ist ein spezieller Anwendungsfall des 4-Draht Abgriff wie in Abschnitt beschrieben. Aus Sicht des Analysers spielt es dabei keine MSB-RS485-PLUS Rolle, ob Sie einen Voll-Duplex Bus an Kanal 1 und 2 angeschlossen haben, oder zwei unabhängige Halb-Duplex Bus Systeme. Die Anschluss Einstellun- gen sind identisch.
  • Seite 44: Signalzuordnung

    KAPITEL 6. ANSCHLUSS DES ANALYSERS 6.11 Signalzuordnung Analysator besitzt 10 sogenannte Anzeigekanäle zur Vi- MSB-RS485-PLUS sualisierung der aufgenommenen Informationen. Zwei Datenkanäle dienen zur Anzeige der von den beiden UARTs generierten Bus-Daten (Daten A und B). Weitere 8 Logikkanäle werden zur Anzeige des Tri-State Pegelverlauf der Dif- ferenzsignal Eingänge CH1...CH4 als auch zur Darstellung von Busaktivität...
  • Seite 45: Leuchtdioden

    In Klammern die im Programm angezeigten Signalnamen 6.12 Leuchtdioden Analyser besitzt 5 mehrfarbige Leuchtdioden (LED) zur MSB-RS485-PLUS Anzeige seines Betriebszustandes und des Zustandes der Datenaufnahme. Die Leuchtdioden für die Datenaufnahme sind den jeweiligen Eingangskanälen der Phoenix Stecker zugeordnet. Sie sitzen über den beiden 6 poligen Phoenix Buchsen und sind mit CH1 und CH2 bzw.
  • Seite 46 KAPITEL 6. ANSCHLUSS DES ANALYSERS...
  • Seite 47: Programm Start

    Wurde das Gerät korrekt erkannt und die Firmware geladen (erkennbar am Fortschrittsbalken im unteren Teil des Dialogfensters) startet automatisch das Der erste Start Kontrollprogramm. MSB-RS485-PLUS lädt die Firmware Sollten Sie mehrere Analyser an Ihrem PC angeschlossen haben zeigt Ihnen in den Analyzer der Firmware Loader eine Auswahlliste der vorhandenen Analyser.
  • Seite 48: User Interface

    Satz einfach zu bedienender Tools zur Verfügung stellen, die für Ihre An- wendung am geeignetsten sind. Kontrollprogramm ist Ihr Cockpit zur Steuerung des MSB-RS485-PLUS Analysers. Mit ihm starten Sie eine Aufzeichnung, speichern oder laden Auf- nahmen und Projekte und öffnen die verschiedenen Analysetools zur Untersu- chung der Aufzeichnung. 7.1 User Interface Aufnahmesteuerung: Einfaches starten, pausieren oder stoppen einer Aufzeichnung.
  • Seite 49: Der Erste Start

    übertragenen Daten oder deren physikalischen Signalpegel können Sie ganz nach Belieben öffnen oder schliessen ohne die Aufnahme zu beeinflußen. Analyzer enthält mit dem sogenannten Kern MSB-RS485-PLUS FLEXUART eine eigene Dekodiert-Hardware für die serielle Datenübertragung, die neben der Messung der Baudrate auch das automatische Erkennen des verwendeten Protokolls erlaubt.
  • Seite 50: Display Anzeige

    Regel nur dann stoppen, wenn Sie eine neue Aufnahme starten wollen, oder um sie zur späteren Auswertung zu speichern. Software ohne Analyser testen MSB-RS485-PLUS Sie können das Programm auch ohne angeschlossenen Analyser aus- probieren. Laden Sie dazu einfach per Strg+O eine Bespielaufzeich- nung aus dem Beispiel (examples) Ordner des Installationsverzeichnis.
  • Seite 51: Anzeige

    Die dritte Anzeigevariante dient zur Kontrolle der Verbindung zum Analyser. Der Analyser wird direkt über eine USB Verbindung gesteu- MSB-RS485-PLUS ert und versorgt. Die USB Verbindung erfolgt als virtueller COM Port und wird unter Windows als normaler COM Anschluss angezeigt, unter Linux ist dies typischerweise /dev/ttyUSBx.
  • Seite 52: Verbindung

    Parität Verbindungsparameter allerdings auch dem Analyser überlassen. Analyser unterstützt zusätzlich zu den Standard Baud- MSB-RS485-PLUS raten beliebige Baudraten im Bereich von 1Baud bis zu 20 MBaud. Geben Sie einfach Ihre gewünschte Baudrate ein oder wählen Sie sie aus einer Liste der standardisierten Baudraten aus indem Sie auf den Knopf klicken.
  • Seite 53: Bus Anschluss

    Dekodierung einleitet. 7.5.2 Bus Anschluss Maßgeblich für die interne Signalzuordnung ist wie Sie den MSB-RS485-PLUS Analyser mit dem zu untersuchenden Bus verbunden haben. Da diese nicht automatisch ermittelt werden kann, müssen Sie die Anschlussart (Wiring) dem Analyzer mitteilen. Je nach Anschlusseinstellung wird nur ein Teil der Differenzsignal-Eingänge verwendet.
  • Seite 54: Signale

    7.5.3 Signale Alle vom Analyser abgetasteten Leitungen bzw. zur Verfü- MSB-RS485-PLUS gung gestellten Signale können einzeln für die Aufnahme aktiviert und mit ei- nem individuellen Namen versehen werden. Letzteres ist im übrigen auch wäh- rend einer laufenden Aufnahme möglich. Signale auswählen Die gewählte Bus-Anschlussart gibt eine sinnvolle Signalbezeichnung vor (Vor-...
  • Seite 55 7.5. KONFIGURIERUNG DER AUFZEICHNUNG Aufnahmeschleife mit Fifo Modus: Im Fifo Modus wird eine bestimmte Anzahl der zuletzt (vor Ende der Aufzeich- nung) aufgetretenen Ereignisse gespeichert. Sie wird vorgegen durch eine Ma- ximalanzahl (1000...1000000 Ereignisse) oder als maximale Zeit im Bereich von 10...600 Sekunden.
  • Seite 56: Autospeichern

    KAPITEL 7. PROGRAMM START Aufzeichnungsdatum anpassen Aufnahmedatum und Zeit richten sich immer nach der aktuellen Zeit und loka- len Zeitzone. Manchmal ist es deshalb nötig, Zeit und Datum nachträglich an- zupassen, z.B. wenn Sie zwei Aufzeichnungen zeitlich anpassen wollen oder unterschiedliche Zeitzonen berücksichtigen müssen.
  • Seite 57: Die Analysetools

    7.7. EIN AUFZEICHNUNG SPEICHERN Software erlaubt die ’externe’ Synchronisation der durch MSB-Analyser Views eine andere, parallel laufende Analyser Applikation. Dies ist z.B. sinnvoll, wenn Sie zwei synchron aufgenommene Aufzeichnungsdateien in zwei Programmen parallel untersuchen und die zwischen beiden sychronisieren wollen wie Views Sie es bereits innerhalb einer Aufnahme gewohnt sind.
  • Seite 58: Ein Sitzung Als Projekt Speichern

    KAPITEL 7. PROGRAMM START oder evtl. geöffneter Analysefenster werden separat als Projektdatei gespeich- ert. Jedesmal, wenn Sie eine Aufzeichnung sichern, wird die von Ihnen ausgewähl- te Datei in einer Liste zuletzt geöffneter Aufzeichnungsdateien gespeichert und kann von dort jederzeit wieder geladen werden. Nähere Informationen dazu fin- den Sie im Abschnitt zuletzt geöffnete Aufzeichnungen und Projekte.
  • Seite 59: Eine Frühere Aufzeichnung Öffnen

    7.9. EINE FRÜHERE AUFZEICHNUNG ÖFFNEN 7.9 Eine frühere Aufzeichnung öffnen Die Unterteilung zwischen Projektdateien und Aufzeichnungen ist bewusst ge- wählt worden. Dadurch können Sie jederzeit eine frühere Aufzeichnung in ein aktuelles Projekt laden ohne dabei ihre aktuellen Einstellungen zu verlieren. Drücken Sie die Taste Strg+O oder klicken Sie im Dateimenü...
  • Seite 60: Anschluß Mehrerer Analyser

    Jedes Kontrollprogramm inkl. seiner Analysetools agiert dabei völlig unabhängig voneinander. Um ein Kontrollprogramm explizit mit einem ganz bestimmten MSB-RS485-PLUS Analyser zu verbinden, müssen Sie das Programm mit Angabe der Seriennum- mer des Analysers starten. Die Seriennummer befindet sich...
  • Seite 61: Autostart Aktivieren

    7.14. AUTOMATISCHES STARTEN NACH RECHNER REBOOT Sobald der Windows Anmeldeprozess abgeschlossen ist, wird nach einem an- geschlossenen Analyser gesucht und die Firmware übertra- MSB-RS485-PLUS gen. Der Analyser schaltet anschliessend in den Aufnahmemodus und beginnt mit der Aufzeichnung der Verbindung. Dabei werden automatisch die zuletzt ver- wendeten Einstellungen berücksichtigt.
  • Seite 62: Kurzbefehle

    Einstellungen speichern und Programm beenden Alt+F4 7.16 Allgemeine Programm Parameter Kontrollprogramm kann mit einer Reihe von zusätzlichen MSB-RS485-PLUS Argumenten (Programm Parametern) aufgerufen werden, um z.B. eine expli- zite Spracheinstellung auszuwählen, den Offline Modus zu wählen, oder den angeschlossenen Analyser Typ vorgeben.
  • Seite 63 Ein angeschlossener Analyser wird nicht gesucht. Auf- zeichnungen sind nicht möglich, allerdings können gespei- cherte Projekte oder Aufzeichnungen bearbeitet bzw. un- tersucht oder mit einer laufenden Aufzeichnung verglichen werden. Syntax: msb_serv -o typ Erlaubte Typen sind: MSB-RS232 MSB-RS232-PLUS MSB-RS485 MSB-RS485-PLUS z.B. msb_serv -o MSB-RS232...
  • Seite 64: Spezielle Programm Parameter

    Legt eine Reportdatei (AnalyzerScan.txt) mit Details zur --verbose Analyser Erkennung auf dem Desktop ab. Senden Sie die- se Datei an support@iftools.com wenn der Analyzer nicht korrekt von der Software erkannt wird. 7.17 Spezielle Programm Parameter Neben den ’normalen’ Programm Parametern unterstützt das Kontrollprogramm auch eine Reihe von Einstellungen, die den Programmablauf im Speziellen be- einflussen.
  • Seite 65: Das Multiview Konzept

    MultiView Views AnalyseTools. Analyzer Software verwendet eine Multi-Process Archi- MSB-RS485-PLUS tektur um ein Höchstmaß an Stabilität und Skalierbarkeit zu garantieren. Auf- zeichnung der Daten des per USB angeschlossenen Analysers sowie Dar- stellung und Auswertung erfolgen durch getrennte und unabhängige Program- me/Prozesse die miteinander kommunizieren (verteilte Anwendung).
  • Seite 66: Synchronisierung

    KAPITEL 8. DAS MULTIVIEW KONZEPT 8.1 Synchronisierung Die Art, miteinander zu kommunizieren, wird als Synchronisierung bezeichnet, die Bedienung ist für alle identisch. Views Jedes Anzeigeprogramm kann dabei wahlweise der aktuellen Aufzeichnung folgen und damit immer das zuletzt aufgetretene Ereignis (Datenbyte, Pegel- wechsel) darstellen.
  • Seite 67: Views (Ansichten)

    Aufzeichnung einklinken und die Daten in einer bestimm- ten Form visualisieren. Die Analyser Software verfolgt dabei MSB-RS485-PLUS das Konzept, für jede Art der Betrachtung der Daten ein darauf optimiertes Anzeigetool zur Verfügung zu stellen. Jedes stellt die Funktionen zur Ver- View fügung, die seiner Interpretation der Daten entsprechen.
  • Seite 68: Eventview - Ereignismonitor

    8.2.5 SignalView - Signalmonitor Analyser tastet alle Signale mit bis zu 200 Mhz ab. Das MSB-RS485-PLUS Ergebnis liefert der Signalmonitor. Analog zu einem Digitalscope können Sie beliebige Ausschnitte anfahren und in unterschiedlicher Vergrößerung untersu- chen.
  • Seite 69 8.4. DEFAULT VIEW EINSTELLUNGEN Unabhängig hiervon sind die Einstellungen, mit denen ein View aus dem Kon- trollprogramm heraus gestartet werden. Sie können diese View spezifischen Standardeinstellung aber jederzeit ändern, indem Sie das ’Stecknadel’ Symbol in der Werkzeugleiste des gewünschten Views klicken. Ein Beispiel: Sie möchten den Signalmonitor immer mit dem dunklen Thema (schwarzer Si- gnalhintergrund) und mit nur 4 angezeigten Signalen starten.
  • Seite 70 KAPITEL 8. DAS MULTIVIEW KONZEPT...
  • Seite 71: Session Management

    Management sorgt dafür, dass Sie bei erneutem Programmstart alles so wiederfinden, wie Sie es verlassen haben. Der Session Manager der Software gewährleistet, daß al- MSB-RS485-PLUS le für eine Programmsitzung relevanten Einstellungen wie Aufzeichnungspara- meter, Fenstereigenschaften der offenen (Position, Größe), Inhalt (d.h.
  • Seite 72: Projekte Speichern/Laden

    Analyse einer Aufzeichnung verwenden. Projekt- und Recorddateien haben jeweils ihr eigenes Icon um sie leichter zu unterscheiden. Sie werden bei der Installation mit der Soft- MSB-RS485-PLUS ware verknüpft und lassen sich dadurch einfach per Doppelklick (Windows) öffnen. 9.2 Projekte speichern/laden...
  • Seite 73: Automatisches Speichern Einer Sitzung

    Typical names are: MSB-RS232-MSB00000.msbprj MSB-RS232-PLUS-MSB05001.msbprj MSB-RS485-MSB00000.msbprj MSB-RS485-MSB04080.msbprj MSB-RS485-PLUS-MSB00000.msbprj MSB-RS485-PLUS-MSB05002.msbprj Sollten Sie keinen Analyser angeschlossen haben, werden die Einstellungen in der Datei ANALYZERTYPE-MSB00000.msbprj gesichert. Das Verzeichnis, unter welchem die Default Projektdateien abgelegt werden, hängt von Ihrem OS ab. Windows Anwender finden sie unter: C:\User\USERNAME\AppData\Roaming\SerialAnalyzer\Defaults mit Ausnahme von Windows XP.
  • Seite 74 KAPITEL 9. SESSION MANAGEMENT...
  • Seite 75: Ein Virtueller Ledtester

    EIA-485 Verbindungen. Der Schwellwert der EIA-485 Emp- mit Standard Namen... fänger liegt zwar bei 200mV. Durch die höheren Pegel des MSB-RS485-PLUS Analysers werden allerdings auch durch Pullups bzw. Pulldowns voreingestell- te Bus-Ruhepegel noch zuverlässig als ungültige Buszustände erkannt, wenn sie den 200mV Bereich überschreiten.
  • Seite 76: Werkzeugleiste

    KAPITEL 10. EIN VIRTUELLER LEDTESTER zusätzliche Informationen zu Zustand der Leitungen ein. Bewegen Sie einfach den Mauszeiger über den Ledtester um diese Informationen sichtbar zu ma- chen. Pegel Bedeutung logisch 1, Mark, entspricht einer negativen Spannung von –0.7V...-7V am Differenzsignal-Eingang (grüne LED mit Minus- Symbol) logisch 0, Space, entspricht einer positiven Spannung von +0.7V...+12V am Differenzsignal-Eingang (rote LED mit Plus-...
  • Seite 77: Der Datenmonitor

    Zeilenvorschub Zeichen werden in der ASCII Anzeige als Punkt dar- gestellt. Mit den Pfeil- und Bildtast können Sie den Cursor beliebig über die Daten steu- ern, wobei die Statuszeile zusätzliche Informationen zum genauen Zeitpunkt MSB-RS485-PLUS Genau genommen 9 Bit Werte, da der Analyser Übertragungen mit 9 Bit Datenlänge unterstützt.
  • Seite 78: Synchronisierung Der Ansicht

    KAPITEL 11. DER DATENMONITOR des Auftretens, der Position und der Anzahl im Vergleich zur Gesamtzahl an- zeigt. Im Falle eines Übertragungsfehlers (Frame oder Parity) blendet der Daten- monitor automatisch den Fehler in den zugehörigen Datenbytes ein. Dies gilt auch für ein Break, welches im Datenstrom sonst leicht als Null Byte fehlinter- pretiert werden könnte.
  • Seite 79: Auswahl Des Datenkanals

    11.1. USER INTERFACE gen lassen können. Dies gilt auch für den Datenmonitor. Ist der Datenmonitor das aktive Fenster, d.h. das Fenster, welches Ihre Eingaben entgegen nimmt, dann wird mit jeder Bewegung oder Plazierung des Cursors ein entsprechen- des Sync.-Signal an alle anderen geöffneten Analysefenster gesendet. Dies schließt auch die Bewegung des Cursors als Ergebnis einer Suche oder Positionierung mit ein.
  • Seite 80: Bereich Auswählen

    KAPITEL 11. DER DATENMONITOR Minus: Subtrahiert den angegeben Wert von der aktuellen Position und ver- schiebt das Datenfenster entsprechend Richtung Datenanfang, Kurzbefehl Alt+N. Die Eingabe kann wahlweise in dezimaler, hexadezimaler oder binärer Form erfolgen. Klicken Sie einfach auf das gewünschte Zahlenformat. Wie die meis- ten anderen Dialoge können Sie auch den Gehe zu Dialog solange geöffnet lassen, solange Sie ihn benötigen.
  • Seite 81: Datenauschnitt Speichern

    11.2. BEREICH AUSWÄHLEN 00000040 | :61 :6d :65 :21 :0a .66 .72 .61 .6d .65 | ame!.frame 00000050 | .20 .72 .65 .73 .70 .6f .6e .73 .65 .0a response. 00000060 | :00 .00 :70 :61 :72 :69 :74 :79 :0a .70 | ..parity.p 00000070 | .61 .72 .69 .74 .79 .20 .61 .6e .73 .77 | arity answ...
  • Seite 82: Programm Einstellungen

    KAPITEL 11. DER DATENMONITOR Beim Export der Daten wird die aktuelle Ansicht des Datenmonitors berück- sichtigt. D.h. die Daten werden in hexadezimaler (mit voran gestelltem ’0x’, de- zimaler Schreibweise oder als ASCII Zeichen in eingeschlossenen Hochkom- mas in die Datei geschrieben. Entsprechendes gilt für das Format der Adresse. (Bei der Adresse handelt es sich um die Position des Datenbytes im Daten- strom).
  • Seite 83: Daten Einfärben

    11.3. PROGRAMM EINSTELLUNGEN Zusätzlich können Sie für die ersten 32 Zeichen des ASCII Zeichensatzes (Kontrollzeichen) die allgemein definierten Namen einblenden. Z.B. statt dem Hexwert 0A des Linefeed ein ’LF’. Nicht druckbare Zeichen können in der ASCII Spalte wahlweise als Punkt oder als Originalzeichen entsprechend dem gewählten Zeichensatz angezeigt wer- den.
  • Seite 84: Der Dateninspektor

    KAPITEL 11. DER DATENMONITOR 11.4 Der Dateninspektor Die über die serielle Leitung transportierten Daten sind die eine Sache. Um Kommunikationsproblem auf die Schliche zu kommen, ist es aber oftmals er- forderlich, das genaue Zeitverhalten der transportierten Daten zu kennen. Oder mit anderen Worten: Welche Zeitdifferenz besteht zwischen zwei Datenbytes? Wie lange dauert es, bis auf einen gesendeten String die Antwort eintrifft? Kli- cken Sie auf das Augen Symbol in der Werkzeugleiste oder drücken Sie Strg+I...
  • Seite 85 11.5. AUFZEICHNUNG DURCHSUCHEN Die Suche startet per Voreinstellung mit dem Beginn der Datenaufzeichnung. Sie können eine Mustersuche aber auch ab einem beliebigen Zeit/Startpunkt durchführen. Positionieren Sie dazu einfach den Cursor des Datenmonitors an der gewünschten Startposition und aktivieren Sie das Feld Starte Suche von Cursor Position.
  • Seite 86: Zeitabstände Suchen

    KAPITEL 11. DER DATENMONITOR LOGIN PASSWORT Suche nach 9-Bit Als besonderen Fall unterstützt der Suchmechanismus des Datenmonitors auch Sequenzen 9-Bit Werte. Ein 9-Bit Wert kann nicht als normales Zeichen eingegeben wer- den. Der Datenmonitor erweitert deshalb die oben beschriebene Angabe von beliebigen Hexzahlen um eine ’spezielle’...
  • Seite 87: Übertragungsfehler Suchen

    11.5. AUFZEICHNUNG DURCHSUCHEN Die Zeitangaben erfolgen immer in Sekunden, beispielsweise 0.0015 für 1.5ms. Die kleinste Zeiteinheit entspricht dabei der Auflösung des Analysers, d.h. Zeit- abstände von 0.000001 oder 1µs (MSB-PLUS Serie 10ns). können als Über- oder Unterschreitung eines bestimmten Wertes oder aber als Bereich definiert werden.
  • Seite 88: Integrierte Skriptsprache Lua

    KAPITEL 11. DER DATENMONITOR 11.6 Integrierte Skriptsprache Lua Der Datenmonitor war das erste Analysefenster mit integrierter Lua Unterstüt- zung. In Version 5.0 wurde diese nochmals komplett überarbeitet und mit einer Menge neuer Features ausgestattet, die die Verarbeitung der Daten noch ein- facher und effizienter gestaltet.
  • Seite 89 11.6. INTEGRIERTE SKRIPTSPRACHE LUA Im Funktionsrumpf können Sie durch das Datenmonitor eigene data Modul auf jedes aufgenommene Byte zugreifen - absolut oder relative zur aktuellen Cursor Position. Ein Beispiel: function onchange ( c u r s o r , selbeg , selend ) i n p u t your code here r e t u r n data .
  • Seite 90 KAPITEL 11. DER DATENMONITOR alphabetischer Reihenfolge der Schlüssel/Namen. Daher Source, Time, Value. Wir kommen später noch einmal darauf zurück. Im nächsten Beispiel wollen wir die Prüfsumme einer im Datenfenster markier- ten (selektierten) Bytefolge ausrechnen und ausgeben. function Mod256Sum ( from , t o ) l o c a l chksum = 0 f o r i =from , t o do chksum = chksum + data .
  • Seite 91: Sortierte Resultate

    11.6. INTEGRIERTE SKRIPTSPRACHE LUA können. function onchange ( c u r s o r , selbeg , selend ) i n p u t your code here data . c u r s o r c o l o u r s { 1] = 0xFF0000 , >...
  • Seite 92: Lua Skript Auswählen Und Ausführen

    KAPITEL 11. DER DATENMONITOR function onchange ( c u r s o r , selbeg , selend ) l o c a l d = data . a t ( c u r s o r ) l o c a l n = 0 function s o r t ( ) n = n + 1 r e t u r n s t r i n g .
  • Seite 93: Wie Kann Ich Überflüssige Skripte Löschen

    11.7. DATENMONITOR SPEZIFISCHE LUA ERWEITERUNGEN ein. Der Editor selbst kann Ihre Eingaben nur begrenzt prüfen, da der eigentli- che Code im Datenmonitor ausgeführt wird Etwaige Fehler werden deshalb im Datenmonitor selbst angezeigt. In diesem Fall wird der Lua Fehler Knopf aktiv: Solange kein Fehler auftritt ist der Knopf inaktiv.
  • Seite 94 KAPITEL 11. DER DATENMONITOR Position zu markieren. Das Modul im Detail: Funktion Beschreibung Liefert Informationen zu dem Datenbyte an der gegebenen Adresse/Position. Dies beinhaltet den Datenbytewert (inkl. 9-Bit), die Richtung (Quelle A oder B) sowie den Zeitpunkt des Auftretens. cursorcolours Eine interne Tabelle, die Farbangaben zu relativen Cursor Positionen enthält.
  • Seite 95: Die Werkzeugleiste

    11.8. DIE WERKZEUGLEISTE data.cursorcolours Dies ist eine interne Tabelle von Schlüssel/Werte Paaren. Die Schlüssel ent- sprechen dabei einer relativen Cursor Position (z.B. 0, 1, 2 aber auch -1, -2), die Werte einer hexadezimalen RGB Farbnotation (z.B. 0xFF0000 für rot). Beachten Sie, dass im Gegensatz zur normalen Lua Indizierung die Cursor Positionen von 0 gezählt werden! 0 bedeutet die aktuelle Cursor Position, ein positiver Wert eine Position nach dem Cursor, ein negativer Werte eine Positi- on vor dem Cursor.
  • Seite 96: Kurzbefehle

    KAPITEL 11. DER DATENMONITOR Default Einstellung: Speichert die aktuellen Datenmonitor Einstellun- gen als Vorgabe wenn ein neues Datenmonitor Fenster geöffnet wird. Suchdialog: Öffnet den Suchdialog zur Mustersuche oder Suche nach Übertragungspausen. Gehe zu...: Öffnet den Gehe zu Dialog zur Eingabe einer absoluten Po- sition oder relativem Offset.
  • Seite 97: Der Ereignismonitor

    Der Ereignismonitor Wann ist welches Ereignis aufgetreten? Hat während der Datenübertragung ein bestimmter Pegelwechsel stattgefunden oder wurde ein Fehlerzustand (Break, Paritäts- bzw. Rahmen- fehler) erkannt. Wie war der Zustand der Busleitungen zu einem bestimmten Zeitpunkt. Der Ereignismonitor listet Sie alle auf, sucht nach Ereignis- sequenzen oder Pegelzuständen und exportiert die Ereignisse als CSV Datei.
  • Seite 98: User Interface

    KAPITEL 12. DER EREIGNISMONITOR 12.1 User Interface Das Fenster des Ereignismonitors liefert Ihnen zu jedem Zeitpunkt der Auf- zeichnung einen schnellen Überblick der Pegelzustände. Von hier starten Sie die Suche nach bestimmten Ereignissequenzen, den Export beliebiger Aus- schnitte oder vergleichen unterschiedliche Abschnitte miteinander. 12.1.1 Jede Zeile ein Ereignis Der Ereignismonitor stellt alle aufgenommenen Ereignisse in Form einer Liste...
  • Seite 99: Durch Ereignisliste Navigieren

    12.2. DURCH EREIGNISLISTE NAVIGIEREN Pegelwechsel Eine Änderung des Pegels an einem beliebigen Differenzsignaleingang. Dies schließt Pegelwechsel durch übertragene Datenbytes mit ein. Framing Empfangenes Datenbyte mit Framing Fehler Parity Empfangenes Datenbyte mit Parity Fehler Break Break erkannt Die eingerückten Fehlersymbole treten nie einzeln sondern immer mit einem Datenbyte auf.
  • Seite 100: Suchmuster Eingeben

    KAPITEL 12. DER EREIGNISMONITOR Ereignisaufzeichnung durchsuchen wollen. Dabei können Sie die Suche mit dem Auftreffen eines bestimmten Datenbytes bzw. einer Reihe gesetzter Bits in einem Datenbyte, oder einem asynchronen Ereignis (break, framing oder parity Fehler), verknüpfen. Klicken Sie auf das ’Lupen Symbol’ in der Werk- zeugleiste oder drücken Sie Strg-F um den Suchdialog zu öffnen.
  • Seite 101: Ereignissuche Mit Dem Levelfinder

    EIA-422/485 Definition liegt der Schwell- wert der Empfängerbausteine bei 200mV, durch den höheren Pegel des Analy- MSB-RS485-PLUS sers werden aber auch durch Pullup bzw. Pull- down voreingesetllte Ruhepegel noch sicher als sol- che erkannt). Die Formulierung eines ungültigen Pegels erfolgt damit als: CH1=none, CH1=invalid, CH1=inactive oder CH1=0V.
  • Seite 102: Sucheingabe Und Suche

    KAPITEL 12. DER EREIGNISMONITOR Eingabe Beschreibung A=*, B=* Jedes Datenereignis (A oder B) liefert einen Treffer, der Datenwert ist unerheblich. Sinnvoll, wenn nach einem beliebigen Datum gesucht wird. A=’x’, B=’x’ Prüft das Ziel (A oder B) auf Gleichheit mit dem in Hochkommas gesetzten Zeichen.
  • Seite 103: Suche Nach Signaländerungen

    12.3. EREIGNISSUCHE MIT DEM LEVELFINDER Das war einfach. Verkomplizieren wir die Suche ein wenig und suchen nach: Suche nach inaktivem CH2 und BSIG sowie BDIR, IO1, IO2 alle high Textfeld anklicken und: » AND: CH2=none BSIG=none BDIR=high IO1=high IO2=high « eingeben Den Knopf Mehr klicken um die nächsten Treffer zu finden Sie können alle Pegelzustände, Daten und/oder Datenfehler beliebig kombi-...
  • Seite 104: Suchen Mit Zeitvorgaben

    KAPITEL 12. DER EREIGNISMONITOR Sie können die Suchbedingungen beliebig kombinieren. Z.B. Suchen nach ei- nem bestimmten Datenbyte bei gleichzeitig aktiver IO2 Leitung, oder beliebi- ges Datenbyte von Datenkanal A gefolgt von einem Wechsel der Bus-Richtung BDIR. Der Anzahl von Suchausdrücken sind prinzipiell keine Grenzen gesetzt. Nicht desto trotz kostet jede einzelne Bedingung und jeder einzelne Ausdruck zusätzliche Rechenzeit und verlangsamt dadurch die Suche.
  • Seite 105: Eine Auswahl Markieren Und Speichern

    12.4. EINE AUSWAHL MARKIEREN UND SPEICHERN 12.4 Eine Auswahl markieren und speichern Bestimmte Funktionen des Ereignismonitors wie z.B. die Speicherung von Er- eignissen als eigenständige Aufzeichnungsdatei, der Export im CSV Format zur späteren Bearbeitung durch externe Programme oder aber als Region be- ziehen sich immer auf eine zuvor definierte Auswahl.
  • Seite 106 KAPITEL 12. DER EREIGNISMONITOR Domäne der Tabellenkalkulations Programme. Der Ereignismonitor gibt Ihnen die Möglichkeit, diese auch zu nutzen. Markieren Sie zunächst eine Auswahl der von Ihnen zu exportierenden Ereig- nisse. Mit Strg + A können Sie auch alle bis dato aufgezeichneten Ereignisse auswählen.
  • Seite 107 12.4. EINE AUSWAHL MARKIEREN UND SPEICHERN Änderung Ausgabe der Veränderungen verglichen zum letzten Ereignis, wie in der Splate Veränderung dargestellt.. Signalpegel Ausgabe der Veränderungen/Zustände aller Leitungen wie im Ereignismonitor angezeigt. Die grafische Dar- stellung der Pegelwechsel wird dabei in einer ent- sprechende Textsymbolik dargestellt.
  • Seite 108: Zeitabstände Messen

    KAPITEL 12. DER EREIGNISMONITOR Eine Abfolge von -v beschreibt einen Wechsel von invalid zu low level, wäh- rend ein Pegelwechsel von high auf low mit ^v signalisiert wird. Nachfolgender Auszug soll dies verdeutlichen: "Number","Type(Event)","Time(s)","SignalLevels" 0,L,17.359117,"-vCH1,-^CH2,-^CH3,-vCH4,-vBDIR,-^BSIG,-^IO1,--IO2", 1,L,18.408774,"vvCH1,^^CH2,^^CH3,vvCH4,vvBDIR,^vBSIG,^^IO1,--IO2", 2,L,18.408911,"vvCH1,^^CH2,^vCH3,vvCH4,vvBDIR,vvBSIG,^^IO1,--IO2", 3,L,18.409014,"vvCH1,^^CH2,v^CH3,vvCH4,vvBDIR,vvBSIG,^^IO1,--IO2", 4,L,18.409118,"vvCH1,^^CH2,^vCH3,vvCH4,vvBDIR,vvBSIG,^^IO1,--IO2", 5,L,18.409845,"vvCH1,^^CH2,v^CH3,vvCH4,vvBDIR,vvBSIG,^^IO1,--IO2", 6,A,18.410003,"-vCH1,-^CH2,-^CH3,-vCH4,-vBDIR,-vBSIG,-^IO1,--IO2", [3] Signalnamen bei Export Beachten Sie, daß...
  • Seite 109: Kurzbefehle

    12.7. KURZBEFEHLE Neue Ansicht: Öffnet ein neues Fenster mit dem gleichen Ausschnitt und identischen Einstellungen. Ereignis abhängiges blättern: Springt zum vorherigen oder nächsten Ereignis des gleichen Typs wie an der aktuellen Cursor Position. Ereignis Suche Öffnet den LevelFinder Dialog zur Ereignissuche. Gehe zu...
  • Seite 110 KAPITEL 12. DER EREIGNISMONITOR...
  • Seite 111: Der Protokollmonitor

    Der Protokollmonitor Mit der Analyse von Protokollen betreten Sie die nächste Ebene der Kommunikation. Die scheinbar willkürlich auftretenden Daten werden nach Ihren Regeln geordnet und gruppiert. Ausgabefunktionen erlauben Ihnen dabei, die einzelnen Daten- sequenzen individuell zu formatieren und farblich darzustellen. Der Austausch von Daten zwischen zwei oder mehreren Kommunikationspart- ner erfolgt i.a.
  • Seite 112: User Interface

    KAPITEL 13. DER PROTOKOLLMONITOR des Protokollmonitors zu stellen. Lua bietet Ihnen die Möglichkeit, Protokoll Templates mit dem vollen Lua Sprach- umfang zu realisieren. Sie können eigene Prüfsummenfunktionen schreiben, (neben dem bereits vorhandenen Checksum Modul, welches die gängigsten Algorithmen abdeckt), Funktionsnummern mit entsprechenden Namen erset- zen und Telegramme ausblenden die Sie nicht interessieren.
  • Seite 113: Telegramm Fenster

    Views. Die Sequenz, die Teil der Synchronisierung ist, wird mit der ak- tuellen Zeilenauswahl versehen. 13.1.3 Datenrichtung IFTOOLS Analyser besitzen zwei unabhängige Datenkanäle welche jeweils ei- ner Quelle oder Richtung der übertragenen Daten zugewiesen werden. Bei Datenquellen Voll-Duplex Bus Systemen wie RS422 (aber auch RS232) ist die Bedeutung hierfür klar.
  • Seite 114: Aktuelle Ansicht In Neuem Fenster Öffnen

    KAPITEL 13. DER PROTOKOLLMONITOR nötig. Nicht desto trotz können Sie im Protokollmonitor jederzeit eine Auswahl der Telegramm nach Datenrichtung A, B oder A+B vornehmen. 13.1.4 Aktuelle Ansicht in neuem Fenster öffnen Stellen Sie sich vor, Sie möchten ein oder mehrere aufeinander folgende Te- legramme mit denen an einer völlig anderen Position in der Aufzeichnung ver- Fenster kopieren gleichen.
  • Seite 115: Bereich Auswählen

    13.2. PROTOKOLL VORLAGEN 13.1.8 Bereich auswählen Mit der Export oder Copy And Paste Funktion können Sie einen beliebigen Ausschnitt des Protokolls in anderen Anwendungen weiter verarbeiten. Dazu müssen Sie lediglich den gewünschten Bereich markieren. Die Auswahl erfolgt analog der Dateiauswahl in Ihrem Betriebssystem. Platzie- ren Sie den Cursor per Linksklick auf der ersten Zeile des auszuwählenden Abschnittes.
  • Seite 116: Ein Protokoll Template Editieren

    Sollte keines der vorhandenen Templates Ihrem Protokoll entsprechen, bietet sich entweder die Modifikation eines vorhandenen oder das Schreiben eines komplett neuen Templates an. In beiden Fällen steht Ihnen der IFTOOLS Sup- port mit Rat und Tat zur Seite. 13.2.2 Ein Protokoll Template editieren Diese Fähigkeit des Protokollmonitors, Sequenzen mittels der Skriptsprache...
  • Seite 117: Eigene Templates Definieren

    13.2. PROTOKOLL VORLAGEN Template anwenden Beachten Sie, das eine Änderung der Split oder ’Aufteilungs-Regel’ eine komplette Neuinterpretation der aufgenommenen Daten erfordert und in Abhängigkeit von der Größe der Aufzeichnung etwas länger dauern kann. Eine Veränderung der eigentlichen Telegramm Darstellung wirkt sich dagegen nur auf die gerade angezeigten Telegramme aus und ist unmittelbar sichtbar.
  • Seite 118: Template Sprachsyntax

    KAPITEL 13. DER PROTOKOLLMONITOR 13.3 Template Sprachsyntax Jedes Protokoll Template (Datei bzw. Skript) muss mindestens zwei Funktionen bereitstellen. Die Erste extrahiert aus den eintreffenden oder aufgenommenen Daten die einzelnen Datagramme bzw. Telegramme. Diese enthält den Code der nötig ist, um zu entscheiden wann ein Telegramm beginnt und wann es endet.
  • Seite 119 13.3. TEMPLATE SPRACHSYNTAX Endezeichen. Dies ist der Grund, warum die split mit zusätzlichen Parametern aufgerufen wird. Diese sind: data Das aktuelle Datenbyte (bis zu 9 Bits) interval (kurz intval), die Zeitdifferenz zum letzten Byte in Sekunden (mit Mikrosekunden Auflösung) alternation (kurz alter), wahr wenn sich die Datenrichtung geändert hat string (kurz str), alle bisher im aktuellen Telegramm empfangenen Bytes als...
  • Seite 120 KAPITEL 13. DER PROTOKOLLMONITOR bei Modbus ASCII üblich ist. Data ’:’ ASCII coded data as 0-9 and A-F CR LF Jedes Telegramm wird mit einem Doppelpunkt ’:’ eingeleitet (der ASCII Wert ist dezimal 58), gefolgt von den eigentlichen Daten, wobei das Datenfeld nur die Zeichen 0-9 und A-F erlaubt).
  • Seite 121 13.3. TEMPLATE SPRACHSYNTAX Die Übertragungszeit für ein Byte oder Zeichen hängt von der eingestellten Baudrate ab. Glücklicher Weise bietet der Protokollmonitor entsprechende Funk- tionen zur Umrechnung. Aber zunächst der split Funktionscode: function s p l i t ( data , i n t v a l , a l t e r , s t r ) i f i n t v a l >...
  • Seite 122 KAPITEL 13. DER PROTOKOLLMONITOR Da das erste eintreffende Zeichen als der Beginn eines neuen Telegramms gewertet wird, wird ein LF in diesem Fall genauso behandelt (und nicht als Endezeichen). Eventuell schlagen Sie jetzt einfach vor, die Zeilen 2 und 3 zu tauschen - das löst das Problem aber nicht.
  • Seite 123 13.3. TEMPLATE SPRACHSYNTAX Start (eines neuen Telegramms) zu ’markieren’ um dann später zu entschei- den, ob und wann dieses Byte als Telegrammstart gewertet wird. Hier kommt der Rückgabestatus MARKED ins Spiel. Ein zurück gegebenes MARKED startet kein neues Telegramm. Vielmehr wird eine Analyse der fol- genden Bytes fortgeführt als wäre nichts passiert.
  • Seite 124 KAPITEL 13. DER PROTOKOLLMONITOR Globale und lokale Variablen Variablen in Lua sind per default global und nach ihrer ersten Deklaration von überall im Skript sichtbar bzw. zugänglich. Dies kann bei vermeintlich unab- hängigen Variablen gleichen Namens zu merkwürdigen Resultaten führen. Be- trachten Sie dazu folgende Zeilen: function chksum ( data ) n = 0...
  • Seite 125: Individuelle Darstellung Der Telegramme

    13.3. TEMPLATE SPRACHSYNTAX innerhalb der Schleife sichtbar und wird anschließend gelöscht. Sie sehen: Es ist generell immer eine gute Idee ALLE Variablen als local zu deklarieren und nicht lokale Variablen, die Sie über mehrere Funktionen hin- weg verwenden mit einer entsprechenden Kennzeichnung zu versehen. Z.B. g_n (globale n).
  • Seite 126 KAPITEL 13. DER PROTOKOLLMONITOR function o u t ( ) your f o r m a t i n g i n s t r u c t i o n s Das Prinzip des neuen Ausgabe-Mechanismus basiert auf einer Menge von individuellen rechteckigen Boxen angeordnet in einer Zeile, wobei jede Zeile ein Telegramm repräsentiert.
  • Seite 127 13.3. TEMPLATE SPRACHSYNTAX eines Hexdumps auszugeben. Die Telegramm Funktion dump liefert einen be- liebigen Datenausschnitt des zugehörigen Telegramms als Hexdaten String. Per Voreinstellung (ohne Parameter) wird die vollständige Datensequenz des Telegramms verwendet. Die geschweiften Klammern des dump Aufrufs weisen, wie bei box.text, dar- auf hin, das die Funktion benannte Parameter erwartet.
  • Seite 128 KAPITEL 13. DER PROTOKOLLMONITOR l o c a l t e l e g r a m = t e l e g r a m s . a t ( i n d e x ) Dabei adressiert der Parameter index ein Telegramm auf zweierlei Weise. Ein positiver Index (absolute Adresse oder Position innerhalb der Aufzeich- nung) gibt das Telegramm mit dem angebenen Index bzw.
  • Seite 129 13.3. TEMPLATE SPRACHSYNTAX Der Protokollmonitor spezifische Lua Typ telegram repräsentiert ein einzel- nes Telegramm. Dieser ist am besten mit einem Container (oder einem Objekt) zu vergleichen welches alle zu diesem Telegramm relevanten Information ent- hält. D.h. Zeit, Länge, Richtung usw. Die Variablen tcurr und tprev im vorherigen Beispiel sind vom Typ telegram.
  • Seite 130 KAPITEL 13. DER PROTOKOLLMONITOR eins niedriger Telegrammnummer. Die folgende Regel möge als kleine Eselsbrücke dienen: Verwenden Sie ’:’ wenn Sie sagen können: Variable, bitte tue dies für mich Einen Telegramminhalt untersuchen Sie können verschiedenste Telegramm Informationen abfragen indem Sie die entsprechende Funktion aufrufen.
  • Seite 131 13.3. TEMPLATE SPRACHSYNTAX Time Data (hex) 2.351468 3A 30 32 30 32 30 46 31 35 36 41 34 32 37 44 0D 0A Soweit so gut. Stellen Sie sich nun vor Sie wollen die letzten beiden Bytes (das CRLF) als individuelle End-Of-String Box anzeigen. dump hält dazu die zwei Positionsparameter first und last bereit, mit welchen Sie einen beliebigen Ausschnitt auswählen können.
  • Seite 132 KAPITEL 13. DER PROTOKOLLMONITOR angeschlossenen und bietet Ihnen die Möglichkeit, die folgenden MSB-Analyser Template Veränderung direkt im Protokollmonitor anzusehen. Das Beispielprojekt enthält die Aufzeichnung eines einfachen Protokolls wobei jedes Telegramm mit einem Doppelpunkt ’:’ eingeleitet und mit der Sequenz CRLF (Carriage Return und Linefeed) beendet wird. Eventuell haben Sie es bereits in den oben abgebildeten EOS Box gesehen (die Daten 013 010).
  • Seite 133 13.3. TEMPLATE SPRACHSYNTAX l o c a l f c = t e x t c o l o r s [ t g : d i r ( ) ] l o c a l bc = b a c k c o l o r s [ t g : d i r ( ) ] d i s p l a y t i m e box .
  • Seite 134 KAPITEL 13. DER PROTOKOLLMONITOR d i s p l a y a l l data as hex box . t e x t { c a p t i o n =" Data ( hex ) " , t e x t = t g : dump { f i r s t =2 , l a s t = 3} , f g = f c , bg=bc } end o f frame CRLF box .
  • Seite 135 13.3. TEMPLATE SPRACHSYNTAX Stellen Sie sich vor, jedes dieser beiden Geräte steht an einem unterschied- lichen Standort. Der Sender (oder Bus Master) erfragt bei jeden Teilnehmer in wahlloser Reihenfolge eine dieser Informationen. Die Antwort ist eine Fliess- kommazahl. Mit Ausnahme des Startzeichens ’:’ sowie dem CRLF am Ende werden alle Datenbytes des Telegramms als zwei ASCII Zeichen kodiert (hex Format oder Base16).
  • Seite 136 KAPITEL 13. DER PROTOKOLLMONITOR Sie können die einzelnen Bytes eines Lua Srings mit string:byte(index) erfragen. Diese Funktion arbeitet ähnlich der telegram:data(index) und liefert das Byte an der angegebenen String Position. Eine Anzeige von Adres- se und Funktion ist damit einfach zu realisieren: box .
  • Seite 137 13.3. TEMPLATE SPRACHSYNTAX d i s p l a y t h e response data as hex box . t e x t { c a p t i o n =" Data ( hex ) " , t e x t = t g : dump { f i r s t =3 , l a s t =6 , w i d t h = 2 } , f g = f c , bg=bc } t h e checksum b y t e i s always t h e l a s t b y t e i n b i n d a t a box .
  • Seite 138 KAPITEL 13. DER PROTOKOLLMONITOR aber nur relativ kleine Funktion in out() platzieren und bei umfangreicheren Funktionen (oder mehreren) diese z.B. am Ende des Skriptes anlegen. function o u t ( ) function i n s i d e ( ) do something c a l l t h e f u n c t i o n i n s i d e ( )
  • Seite 139 13.3. TEMPLATE SPRACHSYNTAX Bytefolgen in Zahlen umwandeln Bei der Analyse von Protokollen ist es oftmals erforderlich eine bestimmte Bytesequenz in eine Zahl zu konvertieren. Die verwendeten Zahlwerte kön- nen dabei in den unterschiedlichsten Formaten vorliegen: Integer (Ganzzahl) Werte werden als zwei oder vier Bytes übertragen, Fließkommazahlen in Fol- gen von vier (einfache Genauigkeit) oder acht Bytes (doppelte Genauigkeit).
  • Seite 140 KAPITEL 13. DER PROTOKOLLMONITOR Vorgabe gleichbedeutend mit dem Stringanfang ist können wir hier auf die Po- sition verzichten. Die eigentliche ’Magie’ oder Vielfalt von bunpack liegt in seinem Formatstring. Jeweils ein einzelnes Zeichen ist einem ganz bestimmten Datentyp zugeord- net. Ein ’<’ oder ’>’ davor definiert die Byteordnung. Ein ’<’ steht für Little Endi- an, ein ’>’...
  • Seite 141 13.3. TEMPLATE SPRACHSYNTAX function GetFunctionName ( number ) l o c a l names = { " M o i s t u r e " , " H u m i d i t y " , " Pressure " } r e t u r n names [ number ] t e l e g r a m c o l o r s l o c a l t e x t c o l o r s = { 0xFF0000 , 0x0000FF }...
  • Seite 142 KAPITEL 13. DER PROTOKOLLMONITOR Time Address Function Value Checksum 2.351468 Moisture 58.520565032959 0D 0A Verglichen mit der ersten Anzeige ist das deutlich informativer und verständ- licher. Wir sind damit aber noch nicht am Ende. Unser Template enthält noch einigen Spielraum für weitere Verbesserungen. Zum Beispiel: Die Fließkomma- zahl wird mit zu vielen Nachkommastellen dargestellt.
  • Seite 143 13.3. TEMPLATE SPRACHSYNTAX function Checksum ( data ) l o c a l sum = 0 f o r i =1 ,# data do sum = sum + data : b y t e ( i ) end d i s c a r d t h e c a r r i e s r e t u r n sum % 256 Die Checksum Funktion wird aufgerufen mit der zu prüfenden Bytefolge und liefert den niederwertigen 8 Bit Wert der Summe zurück.
  • Seite 144: Filterung

    KAPITEL 13. DER PROTOKOLLMONITOR box . b l o c k { c a p t i o n =" Func " , t e x t ="Command" , f g =0xFFAAAA , bg=0x0000FF } Die Bedeutung ist offensichtlich, auch wenn Sie sich merken müssen, das fg für die Vordergrund/Textfarbe (foreground) und bg für die Hintergrundfarbe (back- ground) steht.
  • Seite 145 13.4. FILTERUNG sich nur auf die aktuell sichtbaren Telegramme im Fenster bezieht. Wir kom- men im nächsten Abschnitt darauf zurück. Der Filtermechanismus ist am besten - wie üblich - an einem Beispiel erklärt. Laden Sie das Tutorial Projekt erneut und wählen Sie im Protokollmonitor das Template ’Tutorial-Complete’.
  • Seite 146 KAPITEL 13. DER PROTOKOLLMONITOR Weiter oben haben wir bereits die Verbindung zwischen dem Filtereingabefeld und der split Funktion angedeutet. Die aktuelle Eingabe im Filter Control wird der split Funktion per Parameter filter zur Verfügung gestellt. Wir müs- sen nur den Suchstring "02" in Zeile 3 durch den filter Parameter ersetzen wie im nachfolgenden Code gezeigt.
  • Seite 147 13.4. FILTERUNG i f s t r : f i n d ( " \ r \ n " ) then r e t u r n COMPLETED end r e t u r n MODIFIED Der obige Code filtert alle Telegramme mit Ausnahme der im Filter Control ein- gegebenen Nummer aus.
  • Seite 148: Zwischen Verschiedenen Telegramm Darstellungen Wählen

    KAPITEL 13. DER PROTOKOLLMONITOR Mit den entsprechenden Anpassungen in den Zeilen 3, 7 und 11 im obigen Lis- ting ist der Anwender nun in der Lage, die von ihm gewünschten Telegramm- typen einfach per Mausklick aus der Filtereingabe auszuwählen. Und da der Filtermechanismus immer Teil eines Protokoll-Templates ist kann jedes Proto- koll mit exakt den Filtermöglichkeiten ausgestattet werden, die es erfordert.
  • Seite 149: Telegramm Export

    13.5 Telegramm Export Software ist für die meisten Anwendungsfälle sehr gut MSB-RS485-PLUS gerüstet. Ungeachtet dessen gibt es aber immer wieder Situationen in denen Sie die durch den Analyser aufgenommenen Daten - hier die Telegramme - mit anderen Tools oder in externen Applikationen verarbeiten müssen. Z.B. in Pro- grammen die spezialisiert sind auf spezielle Dinge die die Analyser Software naturgemäß...
  • Seite 150: Welche Daten Werden Exportiert

    KAPITEL 13. DER PROTOKOLLMONITOR allem dann, wenn Sie die Daten in einem Tabellenkalkulationsprogramm wie z.B. Excel oder Open Office Calc verarbeiten möchten. 13.5.1 Welche Daten werden exportiert? In den vorangegangenen Abschnitten haben Sie alles über das zugrunde lie- gende Box Modell erfahren. Jede Box besteht demnach aus einer Bezeichnung (caption) und den zugehörigen Informationen bzw.
  • Seite 151: Der Exportdialog

    13.5. TELEGRAMM EXPORT 13.5.2 Der Exportdialog Bevor Sie einen Export starten müssen Sie zuerst die gewünschten Telegram- me auswählen. Ohne einen ausgewählten Bereich von Telegrammen wird das Telegramm unter der aktiven Cursorposition verwendet. Den Exportdialog öff- nen Sie mit Strg+E oder mit Klick auf den Exporteintrag im Dateimenü. Das Exportdialog Fenster präsentiert Ihnen eine Liste aller verfügbaren Tele- grammfelder sowie der eingeschalteten Präfixe.
  • Seite 152: Export Als Latex

    KAPITEL 13. DER PROTOKOLLMONITOR denen Felder (Boxen) berücksichtigt werden. Die einzelnen Telegrammfelder werden dabei als Label(VALUE) Ausdrücke in die Exportdatei geschrieben. Diese Art von Export ist - je nach weiter führender Applikation - leichter zu ver- arbeiten und empfiehlt sich vor allem bei Dokumentation/Report Tools die nur reine Texteingaben erlauben.
  • Seite 153: Protokollmonitor Spezifische Lua Erweiterungen

    13.6. PROTOKOLLMONITOR SPEZIFISCHE LUA ERWEITERUNGEN (caption) als "Fnc (" extrahiert und der restliche Ausdruck verworfen. Wenn der rechte Teil der Zuweisung (der NAME) bereits mit einem ausführbaren Aus- druck beginnt, z.B. caption=tg:data(1).."-Typ" schlägt die Suche kom- plett fehl und die Box-Bezeichnung bzw. der Feldname wird weder in der Liste der zu exportierenden Werten auftreten noch in der Exportdatei selbst.
  • Seite 154: Das Box Modul

    KAPITEL 13. DER PROTOKOLLMONITOR shared module : Der Protokollmonitor verwendet zwei unabhängige Lua In- terpreter zur Aufsplittung der Telegramme, getrennt nach Datenrichtung. Das shared Modul erlaubt Ihnen, Daten zwischen diesen beiden Interpretern aus- zutauschen. telegram Typ : Ein Protokollmonitor spezifischer Datentyp der alle Informatio- nen zu einem ganz bestimmten Telegramm enthält.
  • Seite 155 13.6. PROTOKOLLMONITOR SPEZIFISCHE LUA ERWEITERUNGEN [ " Source " ] = 0x80FFFF Und! Ab Version 5.0 ist die Anzahl der Textzeilen in einer Box nicht länger auf 2 Zeilen (Caption und Text) beschränkt. Möglich sind nun bis zu 4 Zeilen (Caption und bis zu 3 Zeilen Text).
  • Seite 156: Das Debug Modul

    KAPITEL 13. DER PROTOKOLLMONITOR px: Optionale Breite in Pixel. Die Vorgabe ist die Textbreite. Beispiel function o u t ( ) box . t e x t { c a p t i o n =" Caption " , t e x t ="Some t e x t " , px =100 , f g =0xFF0000 , bg=0xAADDFF } 13.6.2 Das debug Modul...
  • Seite 157 13.6. PROTOKOLLMONITOR SPEZIFISCHE LUA ERWEITERUNGEN function s p l i t ( data , i n t v a l , a l t e r , s t r , f i l t e r ) i f a l t e r or i n t v a l > t r a n s m i s s i o n . bytepause ( 3 . 5 ) then a f u n c t i o n b y t e >...
  • Seite 158 KAPITEL 13. DER PROTOKOLLMONITOR Beispiel function o u t ( ) l o c a l t g = t e l e g r a m s . t h i s ( ) i f t g : data ( 1 ) == 0x10 then f i r s t o u t p u t t h e debug message debug .
  • Seite 159: Das Event Modul

    13.6. PROTOKOLLMONITOR SPEZIFISCHE LUA ERWEITERUNGEN debug.timeprompt Aktiviert oder deaktiviert die zusätzliche Zeitangabe wann die Debugausgabe erfolgte. Voreingestellt ist eine Ausgabe ohne Zeit. Wenn eingeschaltet wird jeder Ausgabe die aktuelle Zeit im Format hh:mm:ss vorangestellt. Ein Beispiel: 12:24:48: My debug message Siehe auch Zeile 2 im vorherigen Beispiel.
  • Seite 160 KAPITEL 13. DER PROTOKOLLMONITOR event.dir() Beispiel function s p l i t ( data , i n t v a l , a l t e r , s t r ) l o c a l eos = 13 i f event .
  • Seite 161: Das Linestates Modul

    13.6. PROTOKOLLMONITOR SPEZIFISCHE LUA ERWEITERUNGEN event.number Gibt die Position des aktuellen Ereignisses in der Aufzeichnung/Aufnahme zu- rück, beginnend mit 0 für das erste Ereignis. Diese Funktion wird nützlich, wenn Sie wissen möchten, ob z.B. seit dem letzten Ereignis bestimmte Pegelwech- sel aufgetreten sind.
  • Seite 162 KAPITEL 13. DER PROTOKOLLMONITOR Function Description changed( signo ) liefert true wenn sich der Pegel der angegebenen Leitung (Signalnummer 1...8) seit der letzten Anfrage geändert hat. count( signo ) gibt die Anzahl aller Pegeländerungen der angegeben Leitung (Signalnummer (1...8) seit Aufzeichnungsbeginn zurück.
  • Seite 163: Das Shared Module

    13.6. PROTOKOLLMONITOR SPEZIFISCHE LUA ERWEITERUNGEN Example rtsChanges = 0 function s p l i t ( data , i n t v a l , a l t e r , s t r ) l o c a l RTS = 6 i f l i n e s t a t e s .
  • Seite 164 KAPITEL 13. DER PROTOKOLLMONITOR wird deren Inhalt mit dem neuen Wert überschrieben. shared.set(name, value) name: Der Name der Variable als Lua String. value: Ein beliebiger Lua Wert (Zahl, Boolean, String). Das folgende Beispiel verwendet ein imaginäres Protokoll. Dabei wird jedes Telegramm mit einem Doppelpunkt ’:’...
  • Seite 165: Der Telegram Typ

    13.6. PROTOKOLLMONITOR SPEZIFISCHE LUA ERWEITERUNGEN (data ist 10) prüfen wir, ob es die Antwort auf ein vorheriges ’Life Ping’ ist. In diesem Fall ist die gemeinsam genutzte Variable LifePing wahr (true) und wir können das Telegramm in Zeile 5 entfernen (REMOVED). In Zeile 7 merken wir uns den Erhalt eines ’Life Ping’...
  • Seite 166 Liefert den Datenwert des Telegramms an der angegebenen Position. Wie üb- lich zählt der Positionswert von 1 an. Negative Positionen adressieren die Da- ten vom Telegrammende. Da die 9 Bit Datenprotokolle unter- MSB-RS485-PLUS stützt ist der Rückgabewert im Bereich 0...511. telegram:data(INDEX) INDEX Index des angeforderten Datenwertes.
  • Seite 167 13.6. PROTOKOLLMONITOR SPEZIFISCHE LUA ERWEITERUNGEN Example function o u t ( ) access t h e c u r r e n t t e l e g r a m l o c a l t g = t e l e g r a m s . t h i s ( ) shows t h e pause between t h e s t o p b i t o f t h e f i r s t b y t e and t h e s t a r t b i t o f t h e second b y t e ( s u b s t r a c t sending t i m e ) l o c a l d e l a y = t g : d a t a t i m e ( 2 )
  • Seite 168 KAPITEL 13. DER PROTOKOLLMONITOR sep: Ersetzt das vorgegebene Trennungsleerzeichen durch einen belie- bigen anderen Charakter oder String. Ein leerer String unterdrückt die Ausgabe eines Trennungszeichens komplett. max: Limitiert die maximale Anzahl der angezeigten Daten im hex dump. Ein Wert von max=4 gibt lediglich die ersten und letzten beiden Daten- werte aus.
  • Seite 169 13.6. PROTOKOLLMONITOR SPEZIFISCHE LUA ERWEITERUNGEN function o u t ( ) access t h e c u r r e n t t e l e g r a m l o c a l t g = t e l e g r a m s . t h i s ( ) d i s t i n g u i s h between a normal n u l l b y t e and a break i f t g : data ( 1 ) == 0 then i f t g : i s b r e a k ( 1 ) then...
  • Seite 170: Das Telegrams Modul

    KAPITEL 13. DER PROTOKOLLMONITOR Da das Lua String Modul bereits leistungsfähige Funktionen zur String Extrak- tion bietet, besteht auch keine Notwendigkeit diese erneut zu implementieren. Und: Lua erlaubt das Indizieren von Teilstringen auch vom ’Stringende’, was ein zusätzlicher Vorteil ist. telegram:string() Beispiel function o u t ( )
  • Seite 171 13.6. PROTOKOLLMONITOR SPEZIFISCHE LUA ERWEITERUNGEN mehreren Teilnehmern ist dies nicht zwangsläufig das vorherige Telegramm. D.h. Sie brauchen eine Möglichkeit über die zuvor empfangenen Telegramme zu ’iterieren’ um das passende Telegramm zu finden. Der Zugriff auf ein beliebiges Telegramm erfolgt einfach per Aufruf der Modul Funktion telegrams.at(index) wobei index die Nummer des gewünschten Telegramms ist.
  • Seite 172: Einstellungen

    KAPITEL 13. DER PROTOKOLLMONITOR Beispiele function o u t ( ) query t h e c u r r e n t t e l e g r a m l o c a l t e l e g r a m = t e l e g r a m s . a t ( show t h e t e l e g r a m t i m e box .
  • Seite 173: Änderung Der Schriftart

    13.7. EINSTELLUNGEN Telegramm Dauer Entspricht der zeitlichen Länge des Telegramms in Sekunden, gemessen vom ersten Startbit bis zum letzten Stopbit. Zeitdistanz zum vorherigen Telegramm Die ’Pausezeit’ zwischen dem aktuellen und vorherigen Telegramm. Gemessen als die Zeit zwischen dem letzten Stopbit des vorherigen und dem Startbit des aktuellen Telegramms.
  • Seite 174: Die Werkzeugleiste

    KAPITEL 13. DER PROTOKOLLMONITOR 13.8 Die Werkzeugleiste Die Werkzeugleiste dient zum schnellen Zugriff der am meisten benötigten Funktionen. Einige davon sind bei allen Monitoren identisch, andere spezifisch für den Protokollmonitor. Ende: Speichert alle Einstellungen und schließt das Fenster Anzeigemodus: Je nach Anzeigemodus zeigt der Fensterinhalt immer das aktuelle (zuletzt aufgenommene) Ereignis, ist verriegelt oder aktua- lisiert den Inhalt mit anderen Fenstern.
  • Seite 175: Kurzbefehle

    13.10. ÄNDERUNGEN ZU VORHERIGEN VERSIONEN 13.9 Kurzbefehle Aktion Kurzbefehl Online Hilfe zum Protokollmonitor Zeigt die Telegramme in einem neuen Fenster Strg + N Tastenkommandos Alle Telegramme auswählen Strg + A der wichtigsten Auswahl aufheben Umschalt + Strg + A Funktionen Ausgewählte Zeilen exportieren Strg + E Gehe zu Telegramm-Nummer Dialog anzeigen...
  • Seite 176 KAPITEL 13. DER PROTOKOLLMONITOR Im folgenden Abschnitt erfahren Sie, wie Sie Ihre eigenen Templates updaten und obsoleten Programmcode durch die neuen und weitaus leistungsfähigeren Module und Funktionen ersetzen Zunächst eine Übersicht der obsoleten Module: tg - Zugriff auf das aktuelle Telegramm in der Funktion out() tgprev - Zugriff auf das vorherige Telegramm in der Funktion out() hex - Konvertiert die Hex ASCII Daten des...
  • Seite 177 13.10. ÄNDERUNGEN ZU VORHERIGEN VERSIONEN box . t e x t { c a p t i o n =" Func " , t e x t =hex . b y t e { pos=4 } } box . t e x t { c a p t i o n =" R e g i s t e r " , t e x t =hex . i n t 1 6 { pos =6 , o r d e r ="BE " } } box .
  • Seite 178 KAPITEL 13. DER PROTOKOLLMONITOR l o c a l t e l e = t e l e g r a m s . t h i s ( ) l o c a l b i n d a t a = base16 . decode ( t e l e : s t r i n g ( ) : sub (2 , 3) ) l o c a l pos , adr , fnc , reg , v a l , l r c = bunpack ( b i n d a t a , "...
  • Seite 179: Der Signalmonitor

    Der Signalmonitor Analyser tastet alle Signale mit bis zu MSB-RS485-PLUS 200 Mhz ab. Das Ergebnis liefert der Signalmonitor. Analog zu einem Digitalscope können Sie beliebige Ausschnitte anfahren und in unterschiedlicher Vergrößerung untersuchen. Zur Analyse von seriellen Datenverbindungen reicht es oftmals nicht aus, nur die übertragenen Datenbytes zu betrachten.
  • Seite 180: Die Signaldarstellung

    KAPITEL 14. DER SIGNALMONITOR Pegeländerungen einer gerade aktiven Datenverbindung und liefert damit be- reits entscheidende Hinweise auf das Funktionieren bzw. nicht funktionieren einer laufenden Datenübertragung. 14.1 Die Signaldarstellung Die Signalanzeige ist unterteilt in drei Abschnitte. Direkt unter der Werkzeug- leiste befinden sich die Cursor-Leiste (siehe Cursor) sowie die Zeitachse. Die Zeitachse liefert Ihnen die genaue Position und Auflösung des gerade sichtba- ren Signalausschnittes.
  • Seite 181 14.1. DIE SIGNALDARSTELLUNG Vergleichen von Signalabschnitten Sie können beliebig viele Signalausschnitte gleichzeitig betrachten, auch bereits während einer laufenden Aufzeichnen. Öffnen Sie dazu einfach neue Signalmonitor Fenster mit dem gewünschten Abschnitt. Jedes sichtbare Signal wird durch seinen Namen am linken Rand beschrie- ben.
  • Seite 182: Navigation

    KAPITEL 14. DER SIGNALMONITOR Alle drei Darstellungen betreffen den gleichen Signalausschnitt, allerdings mit einer von oben nach unten kleiner werdenden Zeitbasis, bzw. höheren Auflö- sung. 14.2 Navigation Die Scrolleiste unter den Signalen gibt Ihnen einen Überblick über die Position und Größe des dargestellten Signalausschnittes im Vergleich zum Gesamtsi- gnal.
  • Seite 183: Undo Und Redo

    14.4. UNDO UND REDO Werkzeugleiste wird die Zeitbasis jeweils auf den nächst größeren bzw. kleine- ren Wert gesetzt. Dasselbe erreichen Sie durch die Tastenkombination Strg + Pfeil nach oben und Strg + Pfeil nach unten bzw. durch Drehen des Mausrades. Sie können auch einen bestimmten Ausschnitt des Signals vergrößern, indem Sie den Ausschnitt mit der gedrückter linker Maustaste auswählen.
  • Seite 184: Signalfarbe

    KAPITEL 14. DER SIGNALMONITOR 14.5.2 Signalfarbe Der Signalmonitor definiert acht unterschiedliche Signalfarben die am besten zu den vorgefertigten Farbthemen passen. Sie können diese aber nach be- lieben ändern indem Sie einfach den Farbknopf im zugehörigen Kontrollfeld klicken. Das sich öffnende Fenster präsentiert den OS typischen Farbdialog wo Sie entweder eine bereits vorhandene Farbe auswählen oder eine neue erstellen können.
  • Seite 185: Allgemeine Einstellungen

    14.6. ALLGEMEINE EINSTELLUNGEN Beim Verschieben des Signals in eine höhere Position wird das Signal vor die- sem eingefügt. Wenn Sie das Signal nach unter verschieben, erfolgt die Dar- stellung dann hinter diesem. Der Name des zu verschiebenden Signals wird während des Drag and Drop am Mauszeiger eingeblendet.
  • Seite 186: Auswahl

    KAPITEL 14. DER SIGNALMONITOR Ort und Stelle. Cursor Auswahl Mit gedrückter Umschalt Taste wird bei übereinander liegenden Cursor der Zweite aktiviert. Plazierte Cursor behalten ihre Signal spezifische Position, auch wenn Sie einen anderen Signalausschnitt auswählen. Cursor außerhalb des sichtbaren Be- reichs werden dabei am linken oder rechten Rand dargestellt, je nachdem, in welcher Signalrichtung sie sich befinden.
  • Seite 187: Datenrahmen Mit Rahmenlineal Ausmessen

    14.8. DATENRAHMEN MIT RAHMENLINEAL AUSMESSEN Bei dem rot-gelben Dreieck in der Cursor Leiste handelt es sich im übrigen um das aktuelle Synchronisierungs Ereignis, empfangen von einem anderen Analysefenster. Jede Region kann individuell mit einem Namen versehen wer- den. Im Beispiel hier die linke Region mit ’Slave ACKN’, die rechte mit ’Master POLL’.
  • Seite 188: Rahmenlineal Anpassen

    KAPITEL 14. DER SIGNALMONITOR Sie können das Rahmenlineal einem beliebigen Signal zuweisen, indem Sie das entsprechende Signal in der Auswahlliste des Rahmenlineals (unterhalb des horizontalen Scrollbalkens) anklicken. Anschließend können Sie das Lineal durch Ziehen von Cursor 1 (siehe vorhe- riger Abschnitt) genau mit der fallenden Flanke des Startbits positionieren. Die fallende Startbitflanke ist durch den eingeblendeten Datenwert (D3) bzw.
  • Seite 189: Synchronisierung

    14.9. SYNCHRONISIERUNG Per Rahmenlineal ist es einfach zu prüfen ob das Signal des ausgewählten Datenbytes den Vorgaben entspricht und welche Bitrate verwendet wird - und dass ohne umständliches Ausmessen und Umrechnen der Bitbreite mit Hilfe der Cursor. In unserem Beispiel ist die zum Signal (Datenrahmen) passende Baudrate 20600.
  • Seite 190: Die Werkzeugleiste

    KAPITEL 14. DER SIGNALMONITOR 14.10 Die Werkzeugleiste Die Werkzeugleiste dient zum schnellen Zugriff der am meisten benötigten Funktionen. Einige davon sind bei allen Views indentisch, andere spezifisch für den Signalmonitor. Ende: Speichert alle Einstellungen und schließt das Fenster Anzeigemodus: Je nach Anzeigemodus zeigt der Fensterinhalt immer das aktuelle (zuletzt aufgenommene) Ereignis, ist verriegelt oder aktua- lisiert den Inhalt mit anderen Fenstern.
  • Seite 191 14.11. KURZBEFEHLE Bewegt Ausschnitt 1 Raster Richtung Signalende Pfeil nach rechts Bewegt Ausschnitt 1 Raster Richtung Signalanfang Pfeil nach links Bewegt Ausschnitt 10 Raster Richtung Signalanfang Umschalt + Pfeil nach links Bewegt Ausschnitt 10 Raster Richtung Signalende Umschalt + Pfeil nach rechts Bewegt Signalausschnitt horiontal Umschalt + Mausrad Ansicht vergrößern...
  • Seite 192 KAPITEL 14. DER SIGNALMONITOR...
  • Seite 193: Regionen

    Regionen Um besonders interessante Bereiche der Aufzeichnung schnell wieder zu finden, können diese als Region markiert werden. Regionen sind in allen Ansichten präsent, so dass eine im Datenmonitor markierte Region ebenfalls in der Signaldarstel- lung berücksichtigt wird. Regionen können gezielt angesprungen werden.
  • Seite 194: Region Ein/Ausschalten

    KAPITEL 15. REGIONEN 15.1 Region ein/ausschalten Jede Region kann individuell ein- oder ausgeblendet werden. Dies ist vor allem sinnvoll, wenn sich mehrere Regionen in der Ansicht eines Fensters überlap- pen und trotz Transparenz eine Zuordnung erschweren. Um den Sichtbarkeits- zustand einer Region umzuschalten klicken Sie einfach auf die Sichtbar Ei- genschaft.
  • Seite 195: Speicherung Der Regionen

    15.6. REGION EIGENSCHAFTEN Region in Fenstern einblenden Regionen können blitzschnell in den Anzeigebereich eines Analyse- fensters geholt werden, indem mit der linken Maustaste auf den Start- oder Endwert der Region geklickt wird. Das Fenster Modus muss dabei als synchronisierbar eingestellt sein! 15.5 Speicherung der Regionen Regionen werden als Teil der Aufzeichnung (Aufnahme Datei msblog) automa- tisch mit abgespeichert.
  • Seite 196 KAPITEL 15. REGIONEN...
  • Seite 197: Der Editor

    Der Editor Lua wird ein zunehmend wichtigerer Bestandteil der Analyser Software. Die Vorteile einer extrem anpassungsfähigen Skript- sprache zur Definition von Protokoll spezifischen Telegrammen wurde mit Version 5.0.0 komplett auf den Datenmonitor übertra- gen und erlaubt nun auch dort die Verarbeitung von Protokoll relevanten Rohdaten.
  • Seite 198: Den Editor Starten

    KAPITEL 16. DER EDITOR ting, ein Multi-Dokument Interface, unbegrenztes Undo/redo und vieles mehr. Daneben erstellt er automatisch Code Gerüste für Protokoll Templates, Daten- monitor Skripte und Lua Module zur Verwendung in den ersten beiden. 16.1 Den Editor starten Gestartet wird der Editor aus dem Daten- bzw. Protokollmonitor indem Sie ein- fach den Knopf Neu/Editieren neben dem aktuell verwendeten Skript ankli-...
  • Seite 199: Lua Skriptfehler

    16.4. HERVORHEBEN INDIVIDUELLER SCHLÜSSELWORTE tiert wird. Insbesondere um die Telegramm Struktur im Protokollmonitor oder die Lua Ausgabe in Datenmonitor interaktiv zu verändern. Dies macht das Pro- grammieren von Telegramm Darstellungen oder Verarbeiten der Daten im Da- tenmonitor zu einem erstaunlich einfachen Vorgang. Sobald Sie ein modifiziertes Skript gespeichert haben, werden die Änderun- gen automatisch in dem daten-/Protokollmonitor Fenster angewendet, dies die- ses Skript ausgewählt haben.
  • Seite 200: Suchen

    KAPITEL 16. DER EDITOR 16.5 Suchen Das Durchsuchen eines Programms nach bestimmten Begriffen oder Worttei- len ist oft verbunden mit zusätzlichen Angaben. Gesucht wird entweder ein vollständiges Wort oder nur der Teil eines Textes. Die Suche muss Groß- und Kleinschreibung entweder berücksichtigen oder ignorieren. Und die Suche soll rückwärts erfolgen und dann erneut von hinten starten.
  • Seite 201: Editor Einstellungen

    16.8. EDITOR EINSTELLUNGEN Suchen & Ersetzen bei eingeklapptem Code Ein eingeklappter Code Block ist für den Suchdialog nicht ’sichtbar’. Al- lerdings wirkt sich das Ersetzen aller vorkommenden Texte auch auf eingefaltete Code Passagen aus! 16.8 Editor Einstellungen Die Standard Einstellungen des Editors können im Einstelldialog nach eigenen Vorgaben angepasst werden.
  • Seite 202: Editor Tastenkürzel

    KAPITEL 16. DER EDITOR C:\User\USERNAME\AppData\SerialAnalyzer\Templates Die Skriptdateien oder Templates werden dabei je nach Anwendungszweck (zugehöriges View) in unterschiedlichen Verzeichnissen einsortiert. Neben den Verzeichnissen ProtocolView, DataView, Modules gibt es einen zusätzlichen Ordner SwitchEditor. Letzterer enthält allerdings nur Schaltpläne der Schalt- option und keine Skriptdateien. Sie können natürlich ein Skript auch unter einem beliebigen anderen Ort spei- chern.
  • Seite 203 16.11. EDITOR TASTENKÜRZEL Editorschrift verkleinern (zoom out) Strg + Editorschrift vergrößern oder verkleinern via Mausrad Strg+Wheel...
  • Seite 204 KAPITEL 16. DER EDITOR...
  • Seite 205: Schnelleinstieg In Lua

    Schnelleinstieg in Lua Lua ist eine der schnellsten Skriptsprachen und auf Grund seines einfachen und klaren Designs sehr einfach zu lernen. Lua enthält einige wenige aber um so mächtigere Konzepte die es zur ersten Wahl bei der Erweiterung der Analyser Software machen. Dieses Kapitel gibt Ihnen einen ersten Überblick über die Sprache und die Möglichkeiten, die sich dadurch bei der Analyse von Datenaufzeichnungen und Protokollen ergeben.
  • Seite 206: Verwendung Von Funktionen

    KAPITEL 17. SCHNELLEINSTIEG IN LUA p r i n t ( " H e l l o World " ) Drücken Sie . Der Editor öffnet ein Lua Ausgabefenster und führt den Inhalt des Sketchbuffers aus. In der Ausgabe erscheint unsere Begrüßung Hello world.
  • Seite 207: Funktionen Mit Mehreren Rückgabewerten

    17.1. ERSTE SCHRITTE in Ihren Skripten verwenden. Alle Information über Lua Funktion finden Sie auf Seite 216. Wir erweitern unser kleines Beispiel nun um eine Begrüßungs- Funktion. function g r e e t i n g ( t e x t , name ) p r i n t ( t e x t .
  • Seite 208 KAPITEL 17. SCHNELLEINSTIEG IN LUA Lua Strings zu einem idealen Datentype um Protokoll Telegramme zu reprä- sentieren bzw. zu generieren. Betrachten Sie das folgende String Beispiel: p r i n t ( s t r i n g . dump ( " \ 0 0 0 \ 0 0 1 \ 2 5 5 \ 1 2 8 " ) ) >...
  • Seite 209 17.1. ERSTE SCHRITTE Um den Bytewert eines Zeichens zu ermitteln verwenden wir die Lua String Funktion string.byte(i) In Zeile 4 werden alle Byte bzw Zeichenwerte des Strings aufaddiert nach- einander aufaddiert. Eine alternative, Objekt orientierte Variante um die byte aufzurufen ist: chksum = chksum + data : b y t e ( i ) Lua bietet mit dem Doppelpunkt : eine spezielle Syntax um auf Funktionen oder Variablen eines ’Objekts’...
  • Seite 210: Datenstrukturen In Lua

    KAPITEL 17. SCHNELLEINSTIEG IN LUA wobei TO optional ist und per Voreinstellung den Index des letzten Zeichens enthält. Zeile 1 liefert den Teilstring von Position 7 (dem ’w’) bis zum Stringende (default). Erinnern Sie sich, das Lua Indexe mit 1 starten. Zeile 2 resultiert in den ersten 5 Zeichen des Strings (1 bis 5).
  • Seite 211 17.1. ERSTE SCHRITTE bellen einfach als eine Liste von Schlüssel/Werte Paare. Sie können eine einfache Tabelle erzeugen per: days = { "Mon " , " Tue " , "Wed" , " Thu " , " F r i " , " Sat " , " Sun " } f o r i =1 ,# days do p r i n t ( days [ i ] ) Falls kein Index ’Schlüssel’...
  • Seite 212: Wiederverwendung Von Code Mit Lua Modulen

    KAPITEL 17. SCHNELLEINSTIEG IN LUA Die print Funktion ignoriert geflissentlich nil Argumente. Aber der Lua Inter- preter wird einen Fehler generieren sobald Sie versuchen einen nil Wert weiter zu verarbeiten, z.B. in einer mathematischen Funktion p r i n t ( n i l ) >...
  • Seite 213 17.1. ERSTE SCHRITTE Ersetzen Sie in einem zweiten Schritt alle Modul Platzhalter ModuleName mit MyChecksums. Anschließend fügen Sie noch unsere checksum Funktion hinzu und ersetzen den Funktionsnamen durch MyChecksums.Mod256Sum. Die Modul Datei soll- te jetzt wie folgt aussehen: l o c a l MyChecksums = { } function MyChecksums .
  • Seite 214: Die Lua Sprache

    KAPITEL 17. SCHNELLEINSTIEG IN LUA Funktionen ohne führenden Modul Namen verhalten sich wie lokale Funktion. Sie sind außerhalb des Moduls nicht sichtbar und können nur innerhalb des Moduls aufgerufen werden. Weitere Modul Informationen finden Sie auf Seite 218. Test Einschränkungen Der im Editor eingebaute Lua Interpreter kann nur Lua Module ausfüh- ren, die nicht von einer besonderen Umgebung abhängen.
  • Seite 215: Datentypen

    17.2. DIE LUA SPRACHE 17.2.3 Kommentare Kommentare werden in Lua mit einem doppelten Bindestrich -- eingeleitet und reichen bis zum Ende der Zeile. Verwenden Sie Kommentare um Ihre Skripte zu dokumentieren oder um einzelne Zeilen beim Erstellen und Testen vorüber- gehend auszukommentieren.
  • Seite 216: Hexadezimale Konstanten

    KAPITEL 17. SCHNELLEINSTIEG IN LUA 17.2.4.1 Zahlen Lua vereinfacht die Anwendung von so unterschiedlichen Zahlentypen wie gan- ze Zahlen, Fließkommazahlen, Fließkommazahlen mit doppelter Genauigkeit indem es intern nur einen Typ verwendet. Zahlenwerte in Lua sind generell vom Typ Fließkommazahlen mit doppelter Genauigkeit und werden intern au- tomatisch umgewandelt.
  • Seite 217: Zeichenketten Mit Escape Sequenzen

    17.2. DIE LUA SPRACHE 17.2.4.5 Zeichenketten Zeichenketten haben in Lua die übliche Bedeutung; sie entsprechen einer Rei- he von einzelnen Zeichen. Im Gegensatz zu anderen Sprachen unterstützt Lua jedoch 8 Bit Zeichen in Zeichenketten. Dies hat einen entscheidenden Vorteil: Zeichenketten (strings) können in Lua ’jedes’ beliebige Zeichen enthalten, d.h. auch ein Null Byte (in C das Stringende).
  • Seite 218: Tabellen

    KAPITEL 17. SCHNELLEINSTIEG IN LUA ist es: "\000\001\002\003". 17.2.4.7 nil ist ein spezieller Typ in Lua und bezeichnet einen undefinierten Wert. Jede Variable besitzt einen nil Wert solange ihr kein Wert zugewiesen wird. p r i n t ( x ) >...
  • Seite 219: Diskontinuierliche Tabellen Mit Löchern

    17.2. DIE LUA SPRACHE Ein Element an einer bestimmten Position entfernen Sie mit: table.remove(table,position). t = { 1 , 2 , 3 , 4 , 5 } t a b l e . remove ( t , 4 ) > 1 , 2 , 3 , 5 p r i n t ( "...
  • Seite 220: Tabellen Iteration

    KAPITEL 17. SCHNELLEINSTIEG IN LUA p r i n t ( # t r a n s l a t i o n s ) > 0 ! ! ! Lua berechnet in diesem Fall für jeden Schlüssel einen speziellen Hash Wert. Dieser dient als Positionsindex des zugehörige Wertes in der Tabelle, d.h an welcher Position der Wert abgelegt ist .
  • Seite 221 17.2. DIE LUA SPRACHE f r u i t s = { [ 2 ] = " apple " , [ 3 ] = " banana " , [ 4 ] = " orange " , [ 5 ] = " pear " , f o r i =0 ,# f r u i t s do p r i n t ( f r u i t s [ i ] ) >...
  • Seite 222: Tabellen Sortieren

    KAPITEL 17. SCHNELLEINSTIEG IN LUA Wahrscheinlich ist Ihnen bereits aufgefallen, das die Ausgabe in unsortierter Reihenfolge erfolgt. Auch wenn die Indexe von 2...5 eine sortierte Sequenz anzeigen werden Sie intern dennoch als Eingabe für den Hash Algorithmus verwendet. Und so wenig der resultierende Hash Wert dem ursprünglichen Index Key (Schlüssel) entspricht so ist es die interne Ordnung in der Tabelle.
  • Seite 223: Bezeichner

    17.2. DIE LUA SPRACHE i = i + 1 r e t u r n a [ i ] , t [ a [ i ] ] f o r i , v i n s o r t e d P a i r s ( f r u i t s ) do p r i n t ( i , v ) Der entscheidende Code liegt in den Zeilen 5...9.
  • Seite 224: Variablen

    KAPITEL 17. SCHNELLEINSTIEG IN LUA p r i n t ( 2n ) > malformed number near ’ 2 a ’ 17.2.7 Schlüsselworte Die folgenden Schlüsselworte sind reserviert und können nicht als Variablen- oder Funktionsnamen verwendet werden: false function local repeat return then...
  • Seite 225: Globale Und Lokale Variablen

    17.2. DIE LUA SPRACHE 17.2.8.2 Globale und lokale Variablen In Lua existieren drei Arten von Variablen: Globale Variablen, lokale Variablen und Tabellen (wir diskutieren Tabellen später). Per Default sind alle Variablen global was bedeutet: Auf jede Variable kann während der Programm Laufzeit zugegriffen werden. Globale Variablen sind Teil eines ’globalen’...
  • Seite 226: Logische Operatoren

    KAPITEL 17. SCHNELLEINSTIEG IN LUA 17.2.9.3 Logische Operatoren Lua bietet die folgende logischen Operatoren in Ausdrücken: and, or und not. Alle logischen Operatoren verhalten sich alle auf gleiche Art und Weise. Alle liefern entweder ein true oder false. Als Spezialfall wird der Wert nil als false verarbeitet.
  • Seite 227: 10Kontrollstrukturen

    17.2. DIE LUA SPRACHE 17.2.10 Kontrollstrukturen Kontrollstrukturen steuern den Programmfluß und sind integraler Bestandteil einer jeden Programmiersprache. Lua stellt folgende Kontrollstrukturen zur Verfügung: if für bedingte Ausführun- gen, sowie for, repeat und while für wiederholende Ausführungen. Mit Aus- nahme von repeat müssen alle mit einem expliziten end beendet werden. repeat Ausführungsblöcke werden mit einem until geschlossen.
  • Seite 228: 4Numerisches For

    KAPITEL 17. SCHNELLEINSTIEG IN LUA l o c a l x = 0 x = x + 1 u n t i l x < 10 17.2.10.4 Numerisches for Lua besitzt zwei Arten der for Anweisung. Wir beschränken uns hier auf die erste und eingängigere numerische Variante.
  • Seite 229: 2Funktionsdefinition

    17.2. DIE LUA SPRACHE math.sqrt(x). Die meisten sind Teil eines Moduls oder anderweitig durch die Analyser Software definiert. 17.2.11.2 Funktionsdefinition Funktionen werden ganz konventionell mit dem Schlüsselwort function defi- niert. function f n c ( arg1 , arg2 , . . . ) >...
  • Seite 230: 12Module

    KAPITEL 17. SCHNELLEINSTIEG IN LUA Rekursive Funktionen bieten oftmals elegante und was Code Zeilen anbelangt - kompakte Lösungen. Sie haben allerdings ihren Preis. Betrachten Sie dazu den faculty Code. Mit jeder Erhöhung der übergebe- nen Zahl n wächst die Rekursionstiefe. Für eine Programmiersprache bedeu- tet dies: Jedes mal wenn eine Funktion aufgerufen wird und nicht zurückkehrt erhöht sich der Stack Verbrauch .
  • Seite 231: 1Standard Module

    17.2. DIE LUA SPRACHE Aus der Sicht von Lua ist ein Modul schlicht eine Tabelle, die verschiedene Funktionen, Modul-Variablen (Funktionen sind für Lua ebenfalls nur ein Varia- blentyp), Modul-Konstanten etc. enthält. Eine Modul Funktion wird deshalb wie ein Tabellenelement mit dem Modulnamen gefolgt von einem Punkt und der eigentlichen Funktionsbezeichnung aufgerufen.
  • Seite 232: Lua Einschränkungen

    KAPITEL 17. SCHNELLEINSTIEG IN LUA http://lua-users.org/wiki/LuaShortReference Die Referenz ist ebenfalls Teil der Software und wird bei der MSB-RS485-PLUS Installation im doc Verzeichnis abgelegt. 17.3 Lua Einschränkungen Rechenintensive Lua Skripte oder Endlosschleifen können dazu führen, daß das zugehörige nicht mehr oder nur sehr träge reagiert. Die integrierte...
  • Seite 233: Lua Analyser Erweiterungen

    Lua Analyser Erweiterungen Um die Analyser Fähigkeiten bestmöglich unter Lua ausnutzen zu können bietet die Software zusätzliche Module und Daten- strukturen. Manche davon sind explizit bestimmten Views vorbehalten, andere können ohne Einschränkung in allen Views verwendet werden. 18.1 Übersicht der Module Die folgende Tabelle listet alle zusätzlichen Module in alphabetischer Reihen- folge, ihre Verfügbarkeit in den und eine kurze Beschreibung.
  • Seite 234: Allgemeine Erweiterungen Für Alle Views

    KAPITEL 18. LUA ANALYSER ERWEITERUNGEN checksum Allgemein Enthält checksum Algorithmen für Modbus RTU (CRC16), Modbus ASCII (LRC), BAC- Net (CRC8 und CRC16), DNP3, CRC16 CCITT (Kermit) und weitere. config Allgemein Das config Modul dient zur Anpassung in- terner Lua Interpreter Einstellungen. Ersetzt das frühere cfg Modul.
  • Seite 235: Base16.Decode

    18.2. ALLGEMEINE ERWEITERUNGEN FÜR ALLE VIEWS 18.2.1.1 base16.decode Dekodiert eine Datenreihe im base16 Format in seine ursprüngliche Binärse- quenz und gibt diese als String zurück. Die Umwandlung/Dekodierung stoppt automatisch wenn das Ende des übergebenen Strings erreicht wurde oder ein ungültiges Zeichen auftrat. base16.decode( string ) string: Eine im Base16 Format vorliegende Datensequenz.
  • Seite 236: Die Bpack Und Bunpack Funktionen

    KAPITEL 18. LUA ANALYSER ERWEITERUNGEN Beachten Sie! Das bit32 Module ist auf 32 Bit begrenzt. Größere Werte werden automatisch auf 32 bit gekürzt entsprechend dem Rest der Teilung durch 2 bit Modul umbenannt in bit32 In der Analszer Version 5.0 wurde das bit module in bit32 umbenannt um mit der offiziellen Lua Beschreibung übereinzustimmen.
  • Seite 237 18.2. ALLGEMEINE ERWEITERUNGEN FÜR ALLE VIEWS beliebig viele Zahlenwerte in einem Aufruf zurück geben. Mittels eines optionalen dritten Parameters können Sie den Start der Konver- tierung unabhängig vom Beginn der Bytefolge festlegen. pos , val1 , . . . = bunpack ( sequence , format , p o s i t i o n ) Im folgenden sind die meist verwendeten und von bunpack verstandenen Format/Umwandlungs-Zeichen aufgelistet.
  • Seite 238: Das Checksum Modul

    KAPITEL 18. LUA ANALYSER ERWEITERUNGEN Reg HI Reg LO Value HI Value LO CRC HI CRC LO Dieses Modbus Telegramm instruiert einen Busteilnehmer eine 16-Bit Zahl in das angegebene Register zu schreiben. Das Register ist adressiert mit einer 16-Bit Nummer. Die Registeradresse ist in dem 3ten und 4ten Byte, der Regis- terwert im 5ten und 6ten Byte.
  • Seite 239: Checksum.crc8_Bacnet

    18.2. ALLGEMEINE ERWEITERUNGEN FÜR ALLE VIEWS crc16_ccitt_kermit Berechnet die crc16 Prüfsumme der gegebenen Daten- sequenz, allerding mit einem anderen Startwert (Initiali- sierung) wie in CCITT Kermit üblich. crc16_df1 Berechnet die crc16 Prüfsumme wie sie im Allen-Bradley DF1 Protokoll verwendet wird. Zurück gegeben wird ein 16 Bit Wert.
  • Seite 240: Checksum.crc16_Ccitt_Kermit

    KAPITEL 18. LUA ANALYSER ERWEITERUNGEN Sketch Beispiel p r i n t ( checksum . crc16_bacnet ( " H e l l o w o r l d " ) ) > 20985 Protokollmonitor Beispiel function o u t ( ) l o c a l t g = t e l e g r a m s .
  • Seite 241: Checksum.crc16_Dnp3

    18.2. ALLGEMEINE ERWEITERUNGEN FÜR ALLE VIEWS Protokollmonitor Beispiel function o u t ( ) l o c a l t g = t e l e g r a m s . t h i s ( ) e x t r a c t t h e a p p l i c a t i o n data and s u b s t i t u t e DLE DLE l o c a l data = t g : s t r i n g ( ) : sub (6 , 5) : gsub ( ‘...
  • Seite 242: Checksum.crc16_Modbus

    KAPITEL 18. LUA ANALYSER ERWEITERUNGEN l o c a l cks = checksum . l r c ( b i n d a t a ) box . t e x t { c a p t i o n ="Checksum " , cks } 18.2.4.7 checksum.crc16_modbus Liefert die Modbus RTU Prüfsumme der Datensequenz als 16 Bit Integer.
  • Seite 243: Das Record Modul

    Beschreibung analyzer liefert den für die Aufnahme verwendeten Analyzer Typ. 0 : MSB-RS232, 1 : MSB-RS485, 2 : MSB-RS232-PLUS, 3 : MSB-RS485-PLUS buswiring Zurück gegeben wird der eingestellte Bus Anschluss: 0 : 2-Draht-Abgriff, 1 : 2-Draht-Segment, 2 : 4-Draht-Abgriff, 3 : 4-Draht-Segment...
  • Seite 244: Record.analyzer

    KAPITEL 18. LUA ANALYSER ERWEITERUNGEN starttime liefert den Beginn der Aufzeichnung in Sekunden seit dem 1. Januar 1970 00:00:00 (wie bereits im datetime Modul verwendet). 18.2.6.1 record.analyzer Gibt den aktuellen Analyser Typ zurück. Dies ist entweder der aktuell verwen- dete oder der Analyser mit dem eine geladene Aufzeichnung gemacht wurde. Diese Funktion ist hauptsächlich zum Behandlung von verschiedenen Analy- ser Typen in Ihren Skripten gedacht, insbesondere der neuen PLUS Serie.
  • Seite 245: Record.starttime

    18.2. ALLGEMEINE ERWEITERUNGEN FÜR ALLE VIEWS 18.2.6.4 record.starttime Liefert die Sekunden die seit der Epoche (00:00:00 UTC, 1. Januar, 1970) ver- strichen sind. Sie können die os.date Funktion verwenden um das Datum nach Ihren eigenen Wünschen zu formatieren und auszugeben. record.starttime() Protokollmonitor Beispiel function o u t ( )
  • Seite 246: Das Transmission Modul

    KAPITEL 18. LUA ANALYSER ERWEITERUNGEN box . t e x t { c a p t i o n =" Data ( hex ) " , t e x t = b i n d a t a : dump ( b i n d a t a , 10 , " : " 18.2.8 Das transmission Modul Das transmission Modul ersetzt das bisherige protocol Module und kommt...
  • Seite 247: Transmission.bitpause

    18.2. ALLGEMEINE ERWEITERUNGEN FÜR ALLE VIEWS r e t u r n MODIFIED 18.2.8.2 transmission.bitpause Berechnet die notwendige Zeit um die angegebene Anzahl von Bits zu senden. transmission.bitpause(bits) bits number of paused bits. Protokollmonitor Beispiel function s p l i t ( data , i n t v a l , a l t e r , s t r ) P r o f i b u s s p e c i f i e s a pause o f 33 b i t s as a t e l e g r a m d e l i m i t e r i f i n t v a l >...
  • Seite 248: Transmission.parity

    KAPITEL 18. LUA ANALYSER ERWEITERUNGEN function o u t p u t ( ) l o c a l t g = t e l e g r a m s . t h i s ( ) i f t r a n s m i s s i o n . d a t a b i t s ( ) > 8 then d i s c a r d s t h e 9 t h b i t and and uses a warning red background box .
  • Seite 249: Zwei Verbindungen Aufzeichnen

    Zwei Verbindungen aufzeichnen Sie haben zwei Verbindungen (RS232 und/oder RS422/485) die Sie gemeinsam betrachten bzw. untersuchen müssen, z.B. Ein- und Ausgangsdaten eines Protokollumsetzers, verschiedene Bussegmente, oder generell voneinander abhängige Datenüber- tragungen. Wie Sie hier vorgehen und was Sie dabei beachten müssen zeigt dieses Kapitel.
  • Seite 250: Master Slave Betrieb

    KAPITEL 19. ZWEI VERBINDUNGEN AUFZEICHNEN Für die erfolgreiche Umsetzung ihres Planes ist es unabdingbar jeden Schritt der Wachen Sekunden genau zu kennen. Das gleiche Szenario, allerdings mit einer weitaus höheren Genauigkeit stellt sich bei der simultanen Aufzeichnung zweier Verbindungen. Der Uhrenver- gleich steht hier für den ’gleichzeitigen’...
  • Seite 251: Einrichten Einer Synchronen Aufzeichnung

    19.3. EINRICHTEN EINER SYNCHRONEN AUFZEICHNUNG Netzlaufwerk. Die Aufnahmedateien werden dabei nach Seriennummer und Datum/Zeit des Aufnahmestarts benannt. Zusätzlich können Sie ihnen aber noch eine beliebi- ge Zeichenkette (Prefix) voranstellen. 19.3 Einrichten einer synchronen Aufzeichnung Sie haben jetzt eine ungefähre Vorstellung wie eine Synchron-Aufzeichnung von statten geht.
  • Seite 252: Auswertung/Analyse Einer Synchronen Aufzeichnung

    KAPITEL 19. ZWEI VERBINDUNGEN AUFZEICHNEN Die Dateinamen entsprechen folgender Form, hier als Beipiel eine Aufnahme des Analysers mit der Seriennummer MSB01060, gestartet am 16 April 2014 um 15:32,17. MSB01060-20140416153217.msblog Sie können diesem allerdings noch eine beliebige Zeichenkette als Prefix vor- anstellen, z.B.
  • Seite 253: Synchronisierung Von Mehr Als Zwei Analysern

    19.5. SYNCHRONISIERUNG VON MEHR ALS ZWEI ANALYSERN Software erweitert dazu die bereits vorhandene Kommuni- MSB-Analyser kation zwischen den einer einzelnen Anwendung (Sitzung) konsequent Views auf mehrere, parallel laufende Anwendungen. D.h. so wie die Signaldarstellung dem Cursor des Datenmonitors folgt, folgen bzw. synchronisieren sich auch die zweier getrennt laufender Programme.
  • Seite 254: Zusammenfassung

    Indem dieses Signal in zwei weitere gesplittet wird, kann der Master bereits zwei Slaves synchronisieren. IFTOOLS bietet einen solchen Splitter als MSB-Link-Port-Doubler an. Wenn der Splitter mit dem MSB-Link Anschluss des Master Gerätes verbunden wird, können zwei Analyser als Slaves synchronisiert werden. Jeder weiterer hinzu- gefügte Splitter ermöglicht die Synchronisierung eines weiteren Analysers.
  • Seite 255 19.6. ZUSAMMENFASSUNG Aktivieren Sie in beiden Programmen im Einstelldialog unter ’Allgemein’ den Punkt ’Externe Synchronisation erlauben’. Plazieren Sie beide Kontrollprogramme und die von Ihnen benötigten zugehö- rigen auf Ihrem Bildschirm. Views Navigieren Sie wie gewohnt durch beide Aufzeichnungen. in Sync. Mo- Views dus werden dabei automatisch ihren Inhalt am aktuell untersuchten Zeitab- schnitt ausrichten.
  • Seite 256 KAPITEL 19. ZWEI VERBINDUNGEN AUFZEICHNEN...
  • Seite 257: Kommandozeilen Api

    Tools. Nach der Installation der Analyser Software befinden sich im Installationsver- zeichnis neben den Programmen für die Bedienung der MSB-RS485-PLUS Darstellung bzw. Analyse der aufgenommenen Daten noch eine Reihe weite- rer kleiner ’Helferlein’. Alle diese Programme arbeiten per Kommandozeile und können auch als Teil von Batchdateien oder Shell Skripten verwendet werden.
  • Seite 258: Beliebige Verarbeitungsketten Mittels Pipes

    KAPITEL 20. KOMMANDOZEILEN API msb_format Liest gültige Analyserdaten von der Standardeingabe, formatiert diese und schreibt das Ergebnis auf die Standardausgabe oder in eine Datei. msb_filter Die von der Standardeingabe gelesenen Daten werden nach vorgegebenen Regeln gefiltert und die passierten Daten auf der Standardausgabe wieder ausgegeben.
  • Seite 259: Ein Paar Beispiele

    20.2. AUFZEICHNEN MIT MSB_RECORD einfach einliest und gemäß Ihren Vorgaben verarbeitet, beispielsweise Lab- View. Bei msb_split handelt es sich um eine typische Datensenke. Die Daten wer- den nicht weiter gereicht sondern als Datei(en) gespeichert. 20.1.4 Ein paar Beispiele Das Programmverzeichnis der Software wird während der In- MSB-Analyser stallation automatisch dem Suchpfad für ausführbare Programme hinzugefügt.
  • Seite 260: Verbindungsparameter Und Ereignisse

    KAPITEL 20. KOMMANDOZEILEN API Die vom Analyser aufgenommenen Daten werden mit dem Pipe Operator ’|’ direkt an das nächste Programm in der Kommandokette übergeben . Dieses liest die Daten aus der Pipe, verarbeitet sie und gibt das Ergebnis seinerseits wieder auf der Standardausgabe aus. In diesem Fall - ohne weitere Programm Parameter - einfach als informelle Liste.
  • Seite 261: Einbindung In Eigene Applikationen

    20.2. AUFZEICHNEN MIT MSB_RECORD 20.2.2 Einbindung in eigene Applikationen Das ist alles ganz schön, aber wie binden Sie den Analyser nun in Ihrer eigenen Anwendung ein? Folgenden Voraussetzungen müssen dazu erfüllt sein: Aufruf eines beliebigen Kommandos aus Ihrer Anwendung. Einlesen einer von einem anderen Prozess geöffneten Datei. Das klingt zunächst kompliziert, ist es aber nicht.
  • Seite 262: Synchrones Aufzeichnen Mit Zwei Oder Mehreren Analyser

    MSB-Analyser derer die Aufnahmen von zwei oder sogar sogar mehreren Geräten (bei Ver- wendung des IFTOOLS MSB Port-Link Doublers) mit einer Genauigkeit von einer Mikrosekunde synchronisiert werden können. Wir haben diesen speziel- len Anwendungsfall und seine Vorteile im Detail in Kapitel beschrieben.
  • Seite 263: Eine Synchrone Aufzeichnung Fernsteuern

    20.2. AUFZEICHNEN MIT MSB_RECORD zu drücken um die Aufzeichnung zu starten. Was bedeutet das denn? Ein synchrone Aufzeichnung setzt den Austausch bestimmter Informationen zwischen den beiden voraus. Insbesondere Zeit relevante Daten. MSB-Analyser Lassen Sie uns deshalb ein zweites Terminal- bzw. DOS Kommandoeingabe- fenster öffnen und den ’Slave’...
  • Seite 264 KAPITEL 20. KOMMANDOZEILEN API rem Synchronous r e c o r d echo " { } I n i t i a t e master . . . " s t a r t msb_record . exe nMSB01000 sync mode=master paused o master .
  • Seite 265: Msb_Record Programm Parameter

    20.2. AUFZEICHNEN MIT MSB_RECORD abhängig voneinander. Der Master schreibt seine Daten in die per -o ange- gebene Ausgabedatei master.msblog. Der Slave speichert seine Daten in sla- ve.msblog. Die interne Synchronisation der durch das per MSB Link ver- MSB-Analyser bundene Kabel garantiert, dass die aufgenommenen Ereignisse in beiden Auf- zeichnungen zeitlich mit einer Genauigkeit von einer Mikrosekunde überein- stimmen.
  • Seite 266 KAPITEL 20. KOMMANDOZEILEN API Verwendung des Hilfskanals IO2 (nur MSB-RS485). --io2=operation Werte siehe IO1 oben. Leitungssignale, die vom Analyser aufgezeichnet wer- den sollen. Die Leitungen werden von 1...8 durchnum- --log-signals=list meriert so wie sie im Display Kontrollprogramm ange- zeigt werden. Z.B. -l 2,3 oder --log-signals=2,3,6,7. Schaltet die Eingänge auf Logiksignalpegel um (nur MSB-RS232), Vorgabe sind RS232 Signalpegel.
  • Seite 267: Formatierte Ausgabe Mit Msb_Format

    20.3. FORMATIERTE AUSGABE MIT MSB_FORMAT Zeigt alle am PC verfügbaren seriellen Ports. --show-serials Zeigt alle am PC angeschlossenen --show-analyzers MSB-Analyser --sync-mode=mode Wählt die Betriebsart (autonom, master, slave) des Analysers für synchrone Aufzeichnungen. Die Vorga- be ist autonom. -t Zahl Verlangsamt den Transfer der Firmware um die ange- gebenen Zahl (Vorgabe ist 0, d.h.
  • Seite 268 KAPITEL 20. KOMMANDOZEILEN API ma. Der entsprechende Formatstring lautet: T,B Wir werden im folgenden eine Aufzeichnungsdatei als Datenquelle verwenden. Damit brauchen Sie für die folgenden Beispiele keinen angeschlossenen Ana- lyser. Unabhängig von der Datenquelle ist die Arbeitweise identisch und gilt so auch für Aufnahmen mit msb_record.
  • Seite 269: Ausgabe Mit Beliebigen Zeichen

    20.3. FORMATIERTE AUSGABE MIT MSB_FORMAT 20.3.1 Ausgabe mit beliebigen Zeichen Sie wollen per Formatstring ein nicht druckbares Zeichen einfügen, oder ein vom System unabhängigen Zeilenumbruch festlegen Verwenden Sie den Formatbezeichner #ddd um ein beliebiges Zeichen zu de- finieren, was an Stelle des Bezeichners ausgegeben werden soll. Um die Aus- gabe der einzelnen Werte durch ein Tabulator zu trennen, geben Sie diesen als Dezimalwert 9 ein.
  • Seite 270 KAPITEL 20. KOMMANDOZEILEN API Ascii Flag Schaltet für alle folgenden Parameter die ASCII Ausgabe ein. #ddd Zeichen Ausgabe eines beliebigen auch nicht druckbaren Zeichens, angegeben als 3-stelliger Dezimalwert. Erlaubter Wertebereich ist 0...255. Z.B. Zeilenende Carridge Return mit #013. [...] [format] Ausgabe des Zeitstempels in einem Benutzer defi- nierten Format.
  • Seite 271 20.3. FORMATIERTE AUSGABE MIT MSB_FORMAT Logik-Pegel Der aktuelle logische Leitungsstatus. Ein gesetz- tes Bit entspricht einem logischen Pegel von 1. Die Bitzuordnung entspricht der Signalreihenfolge im Kontrollprogramm. Bit 0 ist das erste (linke) Signal, Bit 7 das letzte (rechte) Signal im Display. Die Ausgabe erfolgt entweder als 8 Bit Wert (Bi- närmode) oder als 2-stelliger Hexadezimalwert mit führenden Nullen.
  • Seite 272 KAPITEL 20. KOMMANDOZEILEN API Source Quelle oder Richtung des Datenbytes. Datenkanal A=1, Datenkanal B=2, (0 wenn es sich um kein Da- tenereignis handelt). Die Ausgabe erfolgt als Dezi- malzahl in ASCII oder als 8 Bit Wert im Binärmo- dus. Ereignistyp Art des Ereignisses, im ASCII Modus bezeichnet als: A (Daten Port A), B (Daten Port B), L (Ände- rung des Leitungspegel).
  • Seite 273: Benutzerdefinierte Datumausgabe

    20.3. FORMATIERTE AUSGABE MIT MSB_FORMAT x1...8 signal level Ausgabe des Tri-State Signalpegels individuel- ler Signalleitungen. Die Signalnummer 1...8 ent- spricht der Signalfolge im Kontrollprogramm. Der Signalstatus wird als -1, 0, oder 1 in ASCII bzw. als vorzeichenbehafteter 8 Bit Wert im Binärmodus ausgegeben.
  • Seite 274: Msb_Format Programm Parameter

    KAPITEL 20. KOMMANDOZEILEN API abgekürzter Name des Wochentages ausgeschriebener Name des Wochentages abgekürzter Name des Monats ausgeschriebener Name des Monats Datum und Uhrzeit Repräsentation gemäß den Systemein- stellungen Tag des Monats als Zahl [01...31] Monatstag als Dezimalwert mit vorangestelltem Leerzeichen bei einstelligen Werten [ ’...
  • Seite 275: Datenausgabe Filtern Mit Msb_Filter

    20.4. DATENAUSGABE FILTERN MIT MSB_FILTER Argument Beschreibung -c Datei Verwende die angegebene Konfigurationsdatei. --config-file=Datei Zeilenumbruch unterdrücken. --disable-linefeed -F Format Ausgabeformat Definition, siehe Format Tabelle. --format=Formatstring Ausgabe aller verfügbaren Programmparameter. --help -o Datei Datei, in welche die Ausgabe erfolgen soll. Default ist die Standardausgabe (Konsole).
  • Seite 276: Daten Filtern

    KAPITEL 20. KOMMANDOZEILEN API das Programm nur die Daten durchreicht, die per Parameter frei gegeben wur- . Ohne Angabe eines Filter Parameters werden alle Daten blockiert. 20.4.1 Daten filtern Die folgende Kommandokette filtert aus der Datei modbus-ascii.msblog im examples/DataView Verzeichnis alle (an Port A und B) empfangenen Datenbytes und speichert diese als neue Aufzeichnungsdatei data-only.msblog.
  • Seite 277: Msb_Filter Programm Parameter

    20.4. DATENAUSGABE FILTERN MIT MSB_FILTER type modbus-ascii.msblog | msb_filter --pass-all --pass-time=3.04,3.05 Filter durchgängig schalten Per Voreinstellung ’blockiert’ das Filter Tool alle Daten. Bei der Defi- nition eines bestimmten Bereiches müssen Sie deshalb entweder die durchzureichenden Ereignisse explizit auflisten, oder mit dem Parame- ter --pass-all das Filter für alle Ereignisse komplett ’durchlässig’...
  • Seite 278: Aufzeichnungen Splitten Mit Msb_Split

    20.5 Aufzeichnungen splitten mit msb_split Bei der Aufzeichnung mit dem Analyser können schnell recht MSB-RS485-PLUS große Datenmengen entstehen. Dies gilt vor allem dann, wenn auf der Suche nach Fehlern in einer Datenkommunikation der Fehler tagelang nicht auftritt und eine Aufzeichnung im Fifo Modus aus bestimmten Gründen nicht möglich ist.
  • Seite 279: Laufende Aufzeichnung Von Msb_Record Splitten

    20.5. AUFZEICHNUNGEN SPLITTEN MIT MSB_SPLIT Sie können jede dieser Datei einzeln mit der Analyser Soft- MSB-RS485-PLUS ware untersuchen, indem Sie diese einfach in das Programm laden oder diese doppelklicken. Per Voreinstellung nummeriert das Programm alle Dateien alphabetisch mit einem vorangestellten ’x’. Sie können dieses Verhalten jederzeit durch Anga- be eines entsprechenden Programm Parameters ändern.
  • Seite 280: Msb_Split Programm Parameter

    KAPITEL 20. KOMMANDOZEILEN API unterteilen. Dies ist z.B. sinnvoll, wenn Sie sehr lange und vor allem sehr große Aufzeichnungen planen und diese erst später untersuchen müssen. msb_record -b115200 -p8N1 | msb_split -a4 -d -n1000000 20.5.3 msb_split Programm Parameter Der Aufruf des Programmes erfolgt mit: msb_split [OPTION]...
  • Seite 281: Eine Aufzeichnung Triggern Mit Msb_Trigger

    20.6. EINE AUFZEICHNUNG TRIGGERN MIT MSB_TRIGGER 20.6 Eine Aufzeichnung triggern mit msb_trigger Langzeitaufzeichnungen in Verbindung mit den Kommandozeilen Tools dienen oft dazu, bestimmte und selten auftretende Ereignisse zu finden die zu Fehlern in der Kommunikation führen. Dies können z.B. plötzlich nicht mehr reagieren- de Busteilnehmner sein, ausgelöst durch ungültige Telegramme oder fehler- hafte Telegramminhalte.
  • Seite 282: Eine Trigger Bedingung Definieren

    KAPITEL 20. KOMMANDOZEILEN API und wählen im Kontrollprogramm unter ’Ansicht’ den Menüpunkt ’Skript Edi- tor’. Im Editor selbst klicken Sie das ’Neue Datei’ Symbol in der Werkzeugleiste (oder drücken Sie einfach Strg um den Skript Ersteller zu starten. Dort wählen Sie ’Trigger’ als Skript aus. Sie finden eine ganze Reihe von Beispielen, die Sie per Klick auf das ’Datei Öffnen’...
  • Seite 283: Pre Und Post Trigger

    20.6. EINE AUFZEICHNUNG TRIGGERN MIT MSB_TRIGGER Über ein innerhalb der trigger Funktion verfügbares event Objekt können Sie zusätzliche Informationen über das aktuelle Ereignis (Datenbyte oder Lei- tungsänderung) abrufen. Z.B. den Zeitpunkt (Time Stamp) des Datenbytes so- wie die aktuellen Leitungspegel. Das event Modul wird detailiert im Protokollmonitor Kapitel 13.6.3 beschrie-...
  • Seite 284: Trigger Ausschnitt Aus Aufzeichnung Extrahieren

    KAPITEL 20. KOMMANDOZEILEN API Modbus RTU Telegramme, indem es die Inaktiv (Idle) Zeiten zwischen den ein- zelnen Datenbytes auswertet. Modbus RTU spezifiziert eine Idle Zeit von 3.5 Byte (die Zeit, die zur Übertragung von 3.5 Byte benötigt wird) als Telegramm Trennung.
  • Seite 285: Eine Aufzeichnung Nach Bestimmten Ereignissen Durchsuchen

    20.6. EINE AUFZEICHNUNG TRIGGERN MIT MSB_TRIGGER type record.msblog für Windows Anwender oder cat record.msblog für Linux User. Im Falle des vorherigen Beispiels (Windows): type modbus-rtu.msblog | msb_trigger --pre-triger=2560 --post-trigger=2560 script.lua > record.msblog 20.6.5 Eine Aufzeichnung nach bestimmten Ereignissen durchsuchen Stellen Sie sich vor, Sie wollen wissen ob in einer aktiven Übertragung oder einer bereits gemachten Aufzeichnung falsche Prüfsummen - oder generell ir- gendwelche Fehler - vorhanden sind.
  • Seite 286: Ein Skript Zur Triggerung Und Suche

    KAPITEL 20. KOMMANDOZEILEN API schaltet die normale Ausgabe der empfangenen Daten ab und alle per Lua print Anweisungen gemachten Ausgaben werden nicht mehr vollendet, da das Programm zuvor beendet wird. Sie können das obige Skript selber testen. Öffnen Sie dazu einfach ein Termi- nal (Linux) oder Kommando Eingabe/Fenster (Windows) in dem examples/API Verzeichnis und geben Sie folgendes ein: type Modbus-RTU-wrong-checksum.msblog | msb_trigger...
  • Seite 287: Mehrfaches Triggern

    20.6. EINE AUFZEICHNUNG TRIGGERN MIT MSB_TRIGGER Rückgabewert der trigger Funktion (true oder false) steuern. Genau zu diesem Zweck definiert msb_trigger die globale Variable DEBUG. Sie ist true bei Programmaufruf mit übergebenem --debug Parameter, an- sonsten false. Damit ist es recht einfach, Code für beide Anwendungsfälle (Auszeichnungs-Triggerung oder individuelle Ausgabe) in einem Skript zu ver- einen.
  • Seite 288 KAPITEL 20. KOMMANDOZEILEN API kette beendet. In den meisten Fällen ist dies auch ausreichend. Was aber, wenn Sie mehrere Trigger Ereignisse in einer einzelnen Aufzeichnung sammeln möchten? Das Programm Argument --multi-trigger deaktiviert die einmalige Trig- gerung. Statt dessen fährt das Tool msb_trigger mit der Verarbeitung weite- rer Daten fort.
  • Seite 289: Msb_Trigger Spezifische Lua Erweiterungen

    20.7. MSB_TRIGGER SPEZIFISCHE LUA ERWEITERUNGEN Im Gegensatz zu einem Skript für einmaliges Triggern müssen Sie bei mehr- fachem Triggern dafür sorgen, das Ihre im Skript definierte Trigger Bedingung nach erfolgter ’Triggerung’ zurückgesetzt wird. Das folgende Beispiel zeigt das. Es triggert bei einer bestimmten Datensequenz, hier ’hello’ für Kanal 1 (A) und ’world’...
  • Seite 290: Msb_Trigger Programm Parameter

    KAPITEL 20. KOMMANDOZEILEN API checksum Modul : Das Checksum Modul enthält fertige Berechnungsalgo- rithmen für Modbus RTU (CRC16), Modbus ASCII (LRC), BACNet (CRC8 und CRC16), DNP3 sowie CRC16 CCITT (Kermit), siehe Lua Erweiterungen, An- schnitt 18.2.4. event Modul : Das event Modul ist nur innerhalb der trigger Funktion verfügbar und liefert zusätzliche Informationen zum aktuell empfangenen Datenereignis, siehe Protokollmonitor, Abschnitt 13.6.3.
  • Seite 291: Eine Konfigurationsdatei Für Alle

    20.8. EINE KONFIGURATIONSDATEI FÜR ALLE Gibt die Anzahl der Ereignisse an, die NACH dem --post-trigger=events Triggerzeitpunkt noch ausgegeben werden sol- len. Voreingestellt ist keine Begrenzung, d.h. die Datenausgabe erfolgt bis zum Stop der Aufnah- --trigger-source=source Die Art der Ereignisse, die an das Trigger Skript übergeben werden.
  • Seite 292 KAPITEL 20. KOMMANDOZEILEN API Sie können natürlich beliebige Konfigurationsdateien anlegen, für jede Appli- kation eine individuelle. Dateiname und Endung sind dabei ohne Belang. Sobald Sie die Konfigurationsdatei msb_record übergeben, werden alle Pro- gramm der Verarbeitungskette die dort gespeicherten Einstellungen überneh- men.
  • Seite 293: A Ascii Zeichensatz

    ASCII Zeichensatz ASCII (American Standard Code for Information Interchange) ist eine Form der Zeichenkodierung, die ursprünglich für Fernschreiber entwickelt wurde, und sich in den Anfängen des Computer Zeitalters als Standard-Code für Schriftzeichen etablierte. Bei den ersten 32 Zeichen des ASCII Codes (hex 00...1F) handelt es sich um nicht druckbare Zeichen die für Steuerzwecke reserviert sind.
  • Seite 294 ANHANG A. ASCII ZEICHENSATZ...
  • Seite 295: B Baudratemessung

    Baudratemessung Analyser erlaubt die Einstellung und Messung MSB-RS485-PLUS beliebiger Baudraten in einem weiten Bereich von 1 Baud bis 1 MBaud und das mit einer Genauigkeit besser als 0.1%. Die Messung der Baudrate erfolgt 8 mal pro Sekunde. Dabei wird die Breite von singulären 0 oder 1 Bits gemessen und gemittelt.
  • Seite 296 ANHANG B. BAUDRATEMESSUNG korrekt erzeugte Raten erklärt werden. Als grober Richtwert gilt: Abweichungen von maximal 3% können noch toleriert und ausgeglichen wer- den, darüber hinausgehende Abweichungen sollten vermieden werden. Baudrate Toleranz Vermeiden Sie bei der Übertragung Abweichungen der Baudrate mit mehr als 3%.
  • Seite 297: C Farben

    Farben Analyser Software erlaubt Ihnen an MSB-RS485-PLUS verschiedenster Stelle die Angabe eigener Farben. Eine Auswahl vordefinierter Farben finden Sie hier. Die Angabe von Farbwerten kann sowohl in Form eines Farbnamens erfolgen (die folgenden Tabellen geben einen Überblick über die vordefinierten Farbna- men) oder durch Eingabe des RGB (rot grün blau) Wertes als hexadezimale...
  • Seite 298: Grey Colors

    ANHANG C. FARBEN Von den erweiterten Farben abgesehen, sollte die Eingabe von ’green’ deutlich intuitiver sein, als #0F0 bzw. #00FF00. Leicht zu merken sind hier neben ’black’ und ’white’ vor allem die Grundfarben. C.3.1 Grey colors Name/Value Color Name/Value Color black dim grey #000000...
  • Seite 299 C.3. VORDEFINIERTE FARBNAMEN Name/Value Color Name/Value Color cornflower blue navy #6495ed #23238e medium blue dark slate blue #0000cd #483d8b medium orchid medium slate blue #9370db #7f00ff blue violet dark orchid #8a2be2 #9932cc purple orchid #b000ff #db70db violet red orange red #cc3299 #ff007f maroon...
  • Seite 300 ANHANG C. FARBEN...
  • Seite 301: D Windows Trouble-Shooting

    Windows Trouble-Shooting Der für den Betrieb des Analysers benötigte MSB-RS485-PLUS Treiber wird bei der Installation automatisch installiert und das Gerät bei Start automatisch erkannt. Sollte dies nicht der Fall sein oder andere Probleme auftreten, finden Sie hier eine Reihe von Lösungen.
  • Seite 302: Analyser Wird Nicht Erkannt (Teil Ii)

    --verbose Der --verbose Parameter erzeugt eine Reportdatei (AnalyzerScan.txt) mit zusätzlichen Informationen zur Analyser Erkennung und speichert diese auf dem Desktop. Senden Sie diese Datei anschließend an support@iftools.com. D.2 Analyser wird nicht erkannt (Teil II) Beschreibung Der Analyser ist korrekt mit Ihrem System verbunden und beide LEDs leuch- ten rot.
  • Seite 303: Unbekannte Probleme

    Sie haben ein anderes Problem, welches hier nicht genannt ist. Lösung Mailen Sie uns unter support@iftools.com mit genauen Angaben zur Ihrem System (Windows Version, Service Pack, 32/64 Bit System) sowie der verwen- deten Software Version und einer detailierten Beschreibung Ihres Problems.
  • Seite 304 ANHANG D. WINDOWS TROUBLE-SHOOTING...
  • Seite 305: E Linux Trouble-Shooting

    Beschreibung Der Analyser ist korrekt mit Ihrem System verbunden und beide LEDs leuch- ten rot. Nach Start der Software wird der Fehler ’Keine MSB MSB-RS485-PLUS gefunden’ gemeldet. Lösung Linux User benötigen Gruppenrechte um auf das für den Betreib des Analysers nötige /dev/ttyUSBx zugreifen zu können.
  • Seite 306: Analyser Wird Nicht Erkannt (Teil Iii)

    ANHANG E. LINUX TROUBLE-SHOOTING Lösung Vergewissern Sie sich, daß auf Ihrem System kein Braille Treiber installiert ist. Trennen Sie den Analyser von Ihrem PC und stecken Sie ihn wieder an. Öffnen Sie anschliessend eine Konsole und geben Sie das Kommando dmesg ein. Ist die Ausgabemeldung ähnlich der folgenden: ~$ dmesg Detected FT232BM Feb 11 16:14:59 sd kernel: [ 1575.765756] usb 3-2:...
  • Seite 307: Aufnahme Funktioniert Nicht

    ~$ ./msb_serv --verbose Der --verbose Parameter erzeugt eine Reportdatei (AnalyzerScan.txt) mit zusätzlichen Informationen zur Analyser Erkennung und speichert diese auf dem Desktop. Senden Sie diese Datei anschließend an support@iftools.com. E.4 Aufnahme funktioniert nicht Beschreibung Der Analyser scheint korrekt erkannt worden sein und die Firmware geladen.
  • Seite 308: Segmentation Fehler Während Installation

    Lösung Starten Sie die Installation aus einer Konsole im Textmodus. Kopieren Sie da- zu die Installationsdatei von der IFTOOLS CDROM (falls es sich um keinen Download handelt) auf Ihre lokale Festplatte und setzen Sie die Datei per ~$ chmod +x msb-2.4.0-linux-installer.bin auf ausführbar.
  • Seite 309 Linux Varianten lauffähig zu machen. In Hinblick auf die große Zahl von ver- schiedenen Linux Distributionen ist dies nicht immer ganz einfach. Deshalb: Mailen Sie uns unter support@iftools.com mit genauen Angaben zur Ihrem System (Distribution, Kernel Version, 32/64 Bit System, Desktop Umgebung) sowie der verwendeten Software Version und einer detailierten Beschreibung Ihres Problems.
  • Seite 310 ANHANG E. LINUX TROUBLE-SHOOTING...
  • Seite 311 Bestandteil der Hardware sein, oder erst beim Starten in das Gerät geladen werden. FLEXUART Eine spezielle von IFTOOLS entwickelte UART erlaubt das präzise Setzen und Messen belie- biger Baudraten im Bereich von 1 Baud bis 1 MBaud mit 0,1% Genauigkeit.
  • Seite 312 Glossar Glossar Beschreibung Multi-Master Busteilnehmer, die selbständig auf den Bus zu- greifen dürfen (im Sinne von schreiben bzw. senden), bezeichnet man als aktive Knoten oder Master, (andernfalls heißen sie passive Knoten oder Slave). Ein Bus, der mehrere Mas- ter erlaubt, heißt Multimaster-Bus. Bei einem Multimaster-Bus ist eine zentrale oder dezen- trale Busvermittlung notwendig, die gewährleis- tet, dass zu jedem Zeitpunkt jeweils nur ein...
  • Seite 313 Glossar Glossar Beschreibung Zeitbasis Die einem Raster (10 Pixel) entsprechende Zeitspanne. Je niedriger die Zeitbasis, desto höher die zeitliche Auflösung der Darstellung. Die niedrigste Zeitbasis im Signalmonitor be- trägt 500ns, d.h. 50ns pro Pixel..
  • Seite 314 Index Absolute Zeit, Tastenkürzel, Analyser Datenmonitor mehrere, siehe Data View, Analysetools debug siehe Views, clear, Ansichten print, siehe Views, resume, Aufzeichnung summarize, automatisch starten, suspend, laden, timeprompt, pausieren, Ereignisabstände messen, speichern, starten, Ereignismonitor stoppen, siehe Event View, Aufzeichnungsmodus, event Fifo, data, kontinuierlich, dir,...
  • Seite 315 INDEX Paritätsfehler Signal View, anzeigen, Abstände messen, suchen, 75, Ausschnitt rückgängig machen, Programmeinstellung, Ausschnitt vergrößern/verkleinern, Projekt, laden, Bereich auswählen, speichern, 46, Cursor, zuletzt geöffnet, Signal invertieren, protocol Tastenkürzel, bitpause, Signalmonitor bytepause, siehe Signal View, databits, Signalnamen parity, ändern, Protocol View, Signalpegel Bereich auswählen, Anzeige,...
  • Seite 316 INDEX sperren, synchronisieren, Zeichenkette suchen, Zeitabstand Datenbytes, suchen, Zeitbasis,...

Inhaltsverzeichnis