Forum: PC-Programmierung Senden von CAN auf CANoe Nachrichten über RS232


von Gregor (Gast)


Lesenswert?

Hi,

ich hoffe jemand kennt sich hier mit CANe und CAPL aus Oder kann mir 
einen Tipp geben wo ich solche fragen stellen kann.

Ich würde gerne mit der Restbussimulation CANoe CAN Nachrichten 
versenden über eine Ansteuerung über den Seriellen Bus RS232.

Ich würde ich gerne Anfragen an CANoe über RS232 senden, das CANoe 
einzelnen Signale von Nachrichten verändert welche in der Simulation der 
einzelnen Knoten zyklisch verwendet werden.

Vielen Dank

von me (Gast)


Lesenswert?

Muss es CAPL sein?
Du kannst auch C# dlls als Testknoten einfügen.

Grüße

von Gregor (Gast)


Lesenswert?

C# hab ich leider noch keine Erfahrung, will es relativ schnell umsetzen 
und CAPL kenn ich halt...
Habe mir überlegt das mit CAPL so um zusetzen das ich den string mit dem 
Signal Namen über RS232 an CANoe sende und dann in CAPL das jeweilige 
Signal beschreibe.
Finde nur keine passende Funktion dafür.

Habe mal geschaut wo findet man denn Beispiel Projekte für C# in 
Verbindung mit CANoe?
Hast du Tipps wo ich gute Beispiele, Informationen, Tutorials über CANoe 
mit C# finde?
Brauche ich nicht auch von vector dann irgendwelche libraries ?

von me (Gast)


Lesenswert?

Das Setzen der Signale ist sowohl in CAPL und C# unproblematisch. In 
CAPL hab ich bisher nur Dateien gelesen, RS232 aber noch nicht. In C# 
sollte da Google schnell weiterhelfen.

Ich hab selber noch keine Dll aufgesetzt, ich kann mich erst morgen mal 
schlau machen. Du kannst morgen früh aber auch den vector Support 
anrufen, die helfen auch weiter.

Grüße

von Gregor (Gast)


Lesenswert?

Ich brauche eher so einen denk Anstoß.

Mein problem ist das ich eine Restbussimulation mit mehreren Knoten habe 
die zyklisch Nachrichten aussenden. Wenn ich jetzt ein signal ändere 
würde meine zyklischen Sendungen das gleich wieder zu nichts machen.
Weil es das singnal mit dem nächsten Zyklus überschreibt. Weil die 
Quelle der Signale sind ja in meiner einzelnen CAPL restbussimulation 
Variablen, Zustandsautomaten, abfragen u.s.w.

Suche eher etwas um ein signal zu setzen ohne das es überschrieben wird 
oder sonst eine Lösung^^;)

Grüße

von me (Gast)


Lesenswert?

Zu dem Zweck könntest du dir eigene system variablen anlegen. Die können 
im großen und ganzen wie bussignale verwendet werden. Damit könntest du 
die Daten von C# nach CAPL transportiert werden. In CAPL werden sie 
zyklisch gelesen und auf die bussignale geschrieben.

Grüße

von Gregor (Gast)


Lesenswert?

Ich werde es mal die Tage angehen, werde wohl nicht drum herum kommen 
alle Simulierten Steuergeräte anzupassen.

Denke auch das ich es irgendwie mit system variabel oder Environment 
variabel machen werde.

Kannst du mir vielleicht noch sagen wie ich variabel so global 
deklariere das die selben variabel von jedem Steuergerät zugreizbar 
sind.

Gibt es in CAPL system variabel oder muss ich das mit env. machen?

Grüße

von Peter (Gast)


Lesenswert?

Hallo,

CANoe kann aus einem CAPL-Skript heraus auf eine RS232-Schnittstelle 
zugreifen. Ist z.B. (schreibend / lesend) ganz praktisch, um z.B. 
externe Spannungsversorgungen / Meßgeräte anzusteuern.Die CANoe-Hilfe 
ist da ganz "hilfreich".

Datenaustausch zwischen Knoten : Systemvariablen, Environmentvariablen

Gruß

P

von Till X. (till_n)


Lesenswert?

Systemvariablen werden nicht in CAPL definiert, sondern in CANoe im Menü 
unter "Konfiguration". Diese sind dann immer in allen CAPL-Knoten über:

@sysvar::Namespace::Variablenname

lesbar oder beschreibbar.

Environementvariablen sind das alte Konzept und brauchen extra ein 
DBC-File(eintrag).
->Wenn schon möglich (vorhandener Menüeintrag bei aktuellerer CANoe 
Version), dann immer Systemvariablen verwenden.

Für den Zugriff auf RS232 gibt es auf jeden Fall schon Funktionen in 
CAPL. Womöglich jedoch nicht in älteren CANoe Versionen.

Es gibt auch die Möglichkeit von einer externen .Net-Andwendung 
(C#,VBA,C++) oder einem Skript über COM (nicht mit der 
RS232-Schnittstelle verwechseln) aka Component Object Model auf Signale, 
Systemvariablen etc. zuzugreifen.
Dafür wird im .Net-Projekt eine CANoe.Interop.dll eingebunden.
Die Programmierung der Anwendung erfordert jedoch Kenntnisse in den 
jeweiligen Programmiersprachen in .NET.
Damit lässt sich CANoe fernsteuern (Configuration laden, Messung 
starten, etc).

Eine Demobeispiel dazu ist bei CANoe mit dabei (irgendwo unter "More 
Examples" oder im Demoverzeichnis)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.