Comprehensive CAN monitor for Windows® and its add-ins: Plotter, CANdb Import, Instruments Panel, and J1939
-
fm_pal
- Posts: 5
- Joined: Wed 14. Mar 2018, 07:29
Post
by fm_pal » Wed 14. Mar 2018, 07:46
Ich habe ein Problem mit der WaitData Anweisung (Statement).
Jeglicher Parameter wird mit "
Zeile xx; Anweisungsende erwartet" quittiert.
Auch Beispiele direkt aus der Dokumentation funktionieren nicht.
z.B.:
Code: Select all
FormatVersion=5.0
...
WaitData 0 1 678h 8 40h 18h 10h 01h 00h 00h 00h 00h
oder (aus der Hilfe):
Code: Select all
WaitData 1000 1 101h 3 BBh CCh DDh
Nur ohne Parameter wird es akzeptiert:
Was mache ich da falsch ?
Mein System:
- Windows 8, 64 Bit
- PCAN-Explorer Version 5.1.3.676
-
M.Gerber
- Design & Documentation

- Posts: 68
- Joined: Mon 13. Sep 2010, 16:34
Post
by M.Gerber » Wed 14. Mar 2018, 13:56
Hallo fm_pal,
es kann sein, dass bereits eine Anweisung zuvor nicht korrekt/vollständig eingegeben wurde und sich das dann auf die WaitData-Anweisung auswirkt. Leider kann ich das hier anhand der alleinstehenden Code-Zeile nicht erkennen (die so für sich in Ordnung ist).
Abgesehen davon ist es sinnvoll, dass Sie Ihre PE5-Installation aktualisieren auf die derzeit verfügbare Version 5.4.2 (viele Fehlerbehebungen und Funktionsverbesserungen). Ein Download-Link erhalten Sie, wenn Sie im PCAN-Explorer auf der Startseite die News zum entsprechenden Release anklicken (Internet-Verbindung vorausgesetzt).
Freundliche Grüße
Mark Gerber
-
fm_pal
- Posts: 5
- Joined: Wed 14. Mar 2018, 07:29
Post
by fm_pal » Wed 14. Mar 2018, 14:19
Danke erst einmal für die Antwort.
Allerdings ist da nicht sehr viel an vorherigen Anweisungen ...
Hier ein auf's Minimum reduzierter Ausschnitt, der den gleichen Fehler provoziert:
Code: Select all
'FILE DESCRIPTION: Startup sequence simulation for the Danfoss Telematic module
REM ------------------------------------------------
REM -- PCAN-Explorer VBS Macro File --
REM -- First edited: 13.03.2018 --
REM -- FRM --
REM -- (simple) VBS Macro to simulate the startup --
REM -- sequence of the Danfoss Telematic Module --
REM ------------------------------------------------
FormatVersion=5.0
Sub Run_TM2_Sequence()
' clear RX queue from any possible trash
ClearQueue
' -----------------------------------------------------------
' main sequence, send SDO responses on requests to ID 0x678
' -----------------------------------------------------------
' read identity object / Vendor ID
waitdata 0 1 678h 8 40h 18h 10h 01h 00h 00h 00h 00h
if false then
stop
Send 5F8h 43h 18h 10h 01h 00h 02h 06h 01h
Die zugehörige Fehlermeldung ist:
Line 25: Anweisungsende erwartet; waitdata 0 1 678h 8 40h 18h 10h 01h 00h 00h 00h 00h
Selbst direkt aus der Hilfe kopierte Beispiele für WaitData werfen diesen Fehler.
Ich stehe da momentan etwas auf dem Schlauch ...
Gruß
Frank
-
M.Gerber
- Design & Documentation

- Posts: 68
- Joined: Mon 13. Sep 2010, 16:34
Post
by M.Gerber » Wed 14. Mar 2018, 15:09
Hallo Frank,
Sie verwenden hier im Standard-Makro (proprietäres Makro-Format des PCAN-Explorer) Elemente aus VBScript (gesonderte Verwendung im PCAN-Explorer). Das darf nicht gemischt werden.
Für Kommentare müssen Sie zwei Schrägstriche verwenden. REM oder Hochkommata werden hier nicht unterstützt.
Auch die Einleitung mit Sub findet im Standard-Makro nicht statt. Insofern erzeugt alles bis auf die Zeile Formatversion und die letzten vier Zeilen einen Fehler.
[Nachtrag]
Sorry, ClearQueue funktioniert natürlich auch. Hatte ich übersehen.
-
fm_pal
- Posts: 5
- Joined: Wed 14. Mar 2018, 07:29
Post
by fm_pal » Wed 14. Mar 2018, 15:45
Dann darf ich Makros wahrscheinlich nicht über den Menüpunkt "Macro->VBS-Macro Manager..." hinzufügen.
Dort kann ich nur *.pem - Dateien auswählen - offensichtlich VBS-Makros.
Stattdessen wohl über "Macro->Macro...".
Der Unterschied war (is ?)t mir noch nicht so recht bewußt.
Ich komme wohl leider morgen erst dazu, das zu probieren.
Danke erst einmal.
Gruß
Frank
-
M.Gerber
- Design & Documentation

- Posts: 68
- Joined: Mon 13. Sep 2010, 16:34
Post
by M.Gerber » Wed 14. Mar 2018, 15:55
Standardmakros (Dateiendung .mcr) verwenden eine eigenständige Makrosprache, um schlichte Sende- und Empfangsaufgaben zu bewältigen.
Am besten erstellen Sie ein neues Standard-Makro im Projekt-Browser (normalerweise rechts) über Neu > Standardmakro.
Mehr Infos gibt's in der Hilfe (F1) unter Referenz > Standardmakros.
-
fm_pal
- Posts: 5
- Joined: Wed 14. Mar 2018, 07:29
Post
by fm_pal » Fri 16. Mar 2018, 08:21
Danke, das paßt soweit. Zumindest bekomme ich keine Syntaxfehler mehr.
Wie gesagt, der Unterschied zwischen Standardmakros und VBS-Makros war mir nicht ganz klar.
Gibt es eigentlich ein VBS-Äquivalent zu WaitData (oder WaitID) ?
Die einzige Möglichkeit, die mir spontan (bzw. nach kurzer Suche in der Hilfe) einfällt, ist der Empfang eines vollständigen CO-Frames, und manuelle Auswertung.
Noch eine Frage:
Sind eigentlich Makro-Abarbeitung und ein Trace gleichzeitig möglich ?
In meinem Fall warte ich im Makro sequentiell auf verschiedene CO-Botschaften, um darauf eine Antwort zu senden.
-
M.Gerber
- Design & Documentation

- Posts: 68
- Joined: Mon 13. Sep 2010, 16:34
Post
by M.Gerber » Fri 16. Mar 2018, 08:56
In VBScript ist die Sache halt etwas aufwendiger. Aber dafür hat man damit auch viel mehr Möglichkeiten.
Ja, ein Trace kann gleichzeitig laufen (auch mehrere) und sogar per VBScript gesteuert werden (ein entsprechendes PCAN-Explorer-Objekt ist vorhanden). Es kann jedoch nur ein Makro (Standard oder VBScript) zur Zeit laufen.
In der Makro-Auswahl oben auf der Werkzeugleiste im PCAN-Explorer gibt es ein paar Beispiel-VBScript-Makros, an denen Sie sich orientieren können. Falls sie (auch abseits von der Hilfe mit vielen Code-Schnipseln) weitere Beispiele benötigen, schreiben Sie an
support@peak-system.com eine kurze E-Mail inklusive Ihrer Lizenznummer für den PCAN-Explorer.
Freundliche Grüße
Mark Gerber
-
fm_pal
- Posts: 5
- Joined: Wed 14. Mar 2018, 07:29
Post
by fm_pal » Fri 16. Mar 2018, 09:20
Falls sie (auch abseits von der Hilfe mit vielen Code-Schnipseln) weitere Beispiele benötigen, schreiben Sie ... eine kurze E-Mail ...
Danke, das werde ich notfalls tun.
Ich habe noch eine Menge Skripte und Makros von Kollegen, an die ich mich halten kann.
Im Moment reicht das einfache Makro mit WaitData + Send Sequenzen noch aus.
Ja, ein Trace kann gleichzeitig laufen (auch mehrere) ...
Es kann jedoch nur ein Makro (Standard oder VBScript) zur Zeit laufen.
Dann kann ich wohl davon ausgehen, daß es an meinen Änderungen am Code des CO-Masters liegt, daß ich nicht das sehe was ich erwarte.
Wie befürchtet ...
Danke erst einmal.