RKS+CAN Adapter für CAN-Bus Sniffing
CAN-Interface
CAN Hardware, CAN Software, CAN Protokolle - CAN-Bus Forum für Dein CAN-Bus Projekt. CAN-Bus und Elektronik.

VB Programm Drehzahlsimulation Fehler


 
Neues Thema beginnen Auf Beitrag antworten Weitergeben, Thema teilen Lesezeichen setzen Druckansicht CANhack.de - Übersicht » CANhack.de CAN-USB System: RKS+CAN
Autor Nachricht
dunt
Hacker
Hacker


CAN Hacker seit: 06.11.2015
Beiträge: 11
Karma: +0 / -0   Danke, gefällt mir!


Premium Support

Beitrag19-11-2015, 18:04    Titel: VB Programm Drehzahlsimulation Fehler Antworten mit Zitat

Hallo wollte mir ein kleines VB .NET Programm schreiben das die Drehzahl Bei NEC 24c32/64 VDO Tachos simuliert. Also Passat 3c, Golf 6 T5.2 Tachos usw.

Es funktioniert aber leider nur 4-5 sec. lang dann passiert nichts mehr! Die LED blinkt dann rot/grün. Wahrscheinlich habe ich einen Fehler im Programm. Hat jemand Erfahrung damit?


mein Code:
Code:

Imports System
Imports System.Threading
Imports System.IO.Ports
Imports System.ComponentModel
Public Class Form1
    Dim myPort As Array
    Dim valuehex As String
    Dim x280 As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        myPort = IO.Ports.SerialPort.GetPortNames() 'Array mit den COM Ports füllen
        ComboBox1.Items.AddRange(myPort) 'Array in Combo Box laden
        Timer1.Start() 'timer 1 Starten
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'open Button
        Try
            SerialPort1.PortName = ComboBox1.SelectedItem
            SerialPort1.Open() 'Serial Port 1 öffnen
            Button2.Enabled = True
            Button1.Enabled = False
            SerialPort1.Write("S6" & vbCr) 'RKS CAN auf 500hBit/s
        Catch ex As Exception
            MsgBox("Bitte COM-Port auswählen!")
        End Try
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'close Button
        Timer1.Stop()
        SerialPort1.Write("C" & vbCr) 'CAN Channal schliesen
        SerialPort1.Close()
        Button1.Enabled = True
        Button2.Enabled = False
    End Sub

    Private Sub Timer1_Tick_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If SerialPort1.IsOpen Then 'abfragen ob Serial Port geöffnet ist
            If TrackBar1.Value > 0 Then
                'Trackbar Value in drehzahl umrechnen
                valuehex = Hex(TrackBar1.Value * 4)
                If valuehex.Length = 1 Then
                    valuehex = "000" & valuehex
                ElseIf valuehex.Length = 2 Then
                    valuehex = "00" & valuehex
                ElseIf valuehex.Length = 3 Then
                    valuehex = "0" & valuehex
                End If

                x280 = "t28080000" & Mid(valuehex, 3, 4) & Mid(valuehex, 1, 2) & "00000000" 'komplette Can Message zusammenbauen

                'CAN Message senden
                SerialPort1.Write("O" & vbCr)
                Threading.Thread.Sleep(5)
                SerialPort1.Write(x280 & vbCr)
                Threading.Thread.Sleep(5)
                SerialPort1.Write("C" & vbCr)

                Label3.Text = TrackBar1.Value & " U/min"
            End If
        End If
    End Sub

End Class


Zuletzt bearbeitet am 19-11-2015, 18:12, insgesamt 3-mal bearbeitet.
Nach oben CAN Hacker - Profil anzeigen Private Nachricht senden Gehe in Dein Profil um mehr über die Verlinkung Deiner Webseite zu erfahren.
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

CAN Hacker seit: 07.06.2011
Beiträge: 550
Karma: +27 / -0   Danke, gefällt mir!
Wohnort: Ländle



Beitrag20-11-2015, 12:31    Titel: VB Programm Drehzahlsimulation Fehler Antworten mit Zitat

Hi,

Dein Fehler liegt vermutlich in...

Code:

SerialPort1.Write("O" & vbCr)
Threading.Thread.Sleep(5)
SerialPort1.Write(x280 & vbCr)
Threading.Thread.Sleep(5)
SerialPort1.Write("C" & vbCr)


Grund: Leider wertest Du nicht die Rückgabecodes der Open/Close/Send Befehle aus. Das Öffnen und Schliessen der CAN Schnittstelle kann etwas dauern.
Vermutlich kommt bei dem ganzen Öffnen/Schliessen irgendwann ein Betriebsstatus, wo offen ist und nochmal geöffnet werden soll etc. und ab da passiert nur noch Unsinn.

Richtige Vorgehensweise wäre:
- Open (O), nachdem am CAN die richtige Bitrate eingestellt wurde.
- Danach nur CAN Nachrichten senden/empfangen.
- Wenn sich Dein Programm beendet oder andere Parameter eingestellt werden sollen, vorher CAN schliessen (C) und kurz warten.

Mein Vorschlag wäre folgendes,

Ersetze
Code:
SerialPort1.Write("S6" & vbCr) 'RKS CAN auf 500hBit/s

durch
Code:

SerialPort1.Write("C" & vbCr)
Threading.Thread.Sleep(50)
SerialPort1.Write("S6" & vbCr) 'RKS CAN auf 500kBit/s
SerialPort1.Write("O" & vbCr)


Ersetze
Code:

'CAN Message senden
SerialPort1.Write("O" & vbCr)
Threading.Thread.Sleep(5)
SerialPort1.Write(x280 & vbCr)
Threading.Thread.Sleep(5)
SerialPort1.Write("C" & vbCr)

durch
Code:

'CAN Message senden
SerialPort1.Write(x280 & vbCr)


Viele Grüße, Rainer
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded @ Kaufmann Automotive GmbH
CANhack.de System RKS+CAN: CAN-Bus Interface


Zuletzt bearbeitet am 21-11-2015, 10:27, insgesamt 10-mal bearbeitet.
Nach oben CAN Hacker - Profil anzeigen Private Nachricht senden Website dieses Benutzers besuchen
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

CAN Hacker seit: 07.06.2011
Beiträge: 550
Karma: +27 / -0   Danke, gefällt mir!
Wohnort: Ländle



Beitrag21-11-2015, 10:26    Titel: VB Programm Drehzahlsimulation Fehler Antworten mit Zitat

Guten Morgen,

ich habe nochmals etwas über Dein Problem nachgedacht und obiges Post ein weiteres mal editiert.
Der zuerst von mir gegebenen Kommentar bezüglich des Windows Treibers war in Deinem Fall nicht passend, das habe ich verwechselt.

Theoretisch sollten die meisten Deiner "Threading.Thread.Sleep(5)" Aufrufe unnötig sein, die Funktion zum Schreiben auf den seriellen Port wird ja hoffentlich funktionieren.

Bezüglich:
Zitat:
Die LED blinkt dann rot/grün.

Die Beschreibung ist leider nicht genau genug, rot/grünes Blinken zeigt je nach Art des Blinkens unterschiedliche Stati, u.a. auch den ganz normalen Betriebsstatus bei geöffnetem CAN. Kannst Du das Verhalten der LED(s) evtl. filmen und hier als Anhang hochladen?

Bitte gebe auch Feedback, ob die von mir vorgeschlagenen Änderungen Dein Problem lösen konnten.

Viele Grüße, Rainer
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded @ Kaufmann Automotive GmbH
CANhack.de System RKS+CAN: CAN-Bus Interface


Zuletzt bearbeitet am 21-11-2015, 10:27, insgesamt 1-mal bearbeitet.
Nach oben CAN Hacker - Profil anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dunt
Hacker
Hacker


CAN Hacker seit: 06.11.2015
Beiträge: 11
Karma: +0 / -0   Danke, gefällt mir!


Premium Support

Beitrag21-11-2015, 15:39    Titel: VB Programm Drehzahlsimulation Fehler Antworten mit Zitat

Hallo,
könnte leider das von dir vorgeschlagenen erst heute testen! Leider funktioniert es nicht. Ich habe auch ein Video hochgeladen. Zum blinken, mit der ersten Version meines Programmes war es ein langsames abwechselndes blinken ca.1/2 sec. rot/grün jetzt man kann es am Video leider nur schwer erkennen leuchtet rot durch und grün blinkt kurz dazwischen als ob noch CAN Messages gesendet werden nur der Zeiger bleibt auf 0 U/min.

Habe es auch auf 2 anderen Rechner versucht überall das gleiche.

Ich glaube ich sende zu viele Daten an den Serial Port wenn ich mit Buttons die Multifunktionstasten simuliere und die Can Messages nicht alle 100ms mit den Timer an den Serial Port sende sondern nur wenn der Button gedrückt ist den Can Channel öffne und die Daten sende und dann wieder schließe funktioniert es ohne Probleme.

Grüße David



VB Programm Drehzahlsimulation Fehler - VID_20151121_150335.mp4
 Beschreibung:
 Ansteuerung Drehzahlmesser mit RKS+CAN
 Dateigröße:  12,07 MB
 Angeschaut:  1425 mal





Zuletzt bearbeitet am 21-11-2015, 16:33, insgesamt 2-mal bearbeitet.
Nach oben CAN Hacker - Profil anzeigen Private Nachricht senden Gehe in Dein Profil um mehr über die Verlinkung Deiner Webseite zu erfahren.
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

CAN Hacker seit: 07.06.2011
Beiträge: 550
Karma: +27 / -0   Danke, gefällt mir!
Wohnort: Ländle



Beitrag21-11-2015, 17:02    Titel: VB Programm Drehzahlsimulation Fehler Antworten mit Zitat

Vielen Dank für Dein Video.

So wie ich es sehe, läuft das Interface ganz normal, wenn CAN geöffnet wird, wechseln die LEDS von dauergrün auf rot mit gleichzeitigem grünem Blinken.

Hier die Stati der LEDs des RKS+CAN (Firmware 1070):

LED1: rot
LED2: grün

LED_SELFTEST: LED 1 on, LED 2 on (rote und grüne LED an)
LED_BOOT: LED 1 and 2 blink common (rote und grüne LED blinken gleichzeitig)
LED_OK: LED 1 off, LED 2 on (normaler Status wenn an USB angesteckt, grüne LED leuchtet)
LED_HWFAILURE: LED 1 and 2 blink alternating (abwechselnd rot-grün-rot-grün...)
LED_CANOPEN: LED 1 on, LED 2 blinks (rote LED an, grün blinkt)
LED_CANERR: LED 1 blinks, LED 2 on (rote LED blinkt, grün an)
LED_SWFAILURE: LED 1 on, LED 2 off (rote LED an)

Zitat:
Ich glaube ich sende zu viele Daten an den Serial Port wenn ich mit Buttons die Multifunktionstasten simuliere und die Can Messages nicht alle 100ms mit den Timer an den Serial Port sende

Alle 100ms ein paar Nachrichten senden sollte kein Problem sein.

Was passiert, wenn Du die CAN Verbindung schliesst, wechselt die LED dann wieder auf dauergrün?
Wenn Du anschliessend wieder Deine Nachrichten sendest, geht dann der Drehzahlzeiger wieder auf 4000rpm?

Welche Visual Studio Version verwendest Du? 2008 und 2015 wären hier zum Testen Deines Visual Basic Programmes.

Viele Grüße, Rainer
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded @ Kaufmann Automotive GmbH
CANhack.de System RKS+CAN: CAN-Bus Interface


Zuletzt bearbeitet am 21-11-2015, 17:10, insgesamt 2-mal bearbeitet.
Nach oben CAN Hacker - Profil anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dunt
Hacker
Hacker


CAN Hacker seit: 06.11.2015
Beiträge: 11
Karma: +0 / -0   Danke, gefällt mir!


Premium Support

Beitrag22-11-2015, 13:05    Titel: VB Programm Drehzahlsimulation Fehler Antworten mit Zitat

Gute Nachrichten es funktioniert! icon_lol.gif

Ich bin heute durch Zufall drauf gekommen, dass wenn ich das Interface nicht mit den Tacho verbunden habe alles normal funktioniert! Also musste es an den eingehenden CAN Nachrichten liegen. Jetzt leere ich bei jeden Timerdurchlauf den Eingangspuffer des seriellen Treibers und es läuft alles so wie es soll.

Code:
SerialPort1.DiscardInBuffer()


Vielen Dank für deine Hilfe!! icon_smile_thumb_up.gif

Anbei noch mein Beispielprojekt mit VB .NET 2010.

Grüße
David



RKS CAN Test 2.zip
 Beschreibung:
 Beispiel Ansteuerung Kombiinstrument/Instrumentenbrett mit RKS+CAN, Visual Basic .NET 2010
Beispiel Ansteuerung Kombiinstrument/Instrumentenbrett mit RKS+CAN, Visual Basic .NET 2010
Download
 Dateiname:  RKS CAN Test 2.zip
 Dateigröße:  912,34 KB
 Heruntergeladen:  518 mal
Nach oben CAN Hacker - Profil anzeigen Private Nachricht senden Gehe in Dein Profil um mehr über die Verlinkung Deiner Webseite zu erfahren.
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

CAN Hacker seit: 07.06.2011
Beiträge: 550
Karma: +27 / -0   Danke, gefällt mir!
Wohnort: Ländle



Beitrag22-11-2015, 13:40    Titel: VB Programm Drehzahlsimulation Fehler Antworten mit Zitat

Prima, vielen Dank für Dein Feedback! icon_biggrin.gif

Der Vollständigkeit halber: Wer einfach nur ein KI testen will, kann in KCANMonitor auch die entsprechenden CAN-Nachrichten zum Senden einstellen. Dabei muß man gar nichts programmieren, sondern trägt in KCANMonitor nur die zu sendenden Nachrichten ein. Dieses "Mini-Programm" kann man dann auch speichern (z.B. als "KI-Test-XY") und später wieder laden.
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded @ Kaufmann Automotive GmbH
CANhack.de System RKS+CAN: CAN-Bus Interface


Zuletzt bearbeitet am 05-08-2016, 11:54, insgesamt 1-mal bearbeitet.
Nach oben CAN Hacker - Profil anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Bewertungen - VB Programm Drehzahlsimulation Fehler

Durchschnittsbewertung: 0,00 - schlechteste Bewertung: 0 - beste Bewertung: 0 - Anzahl der Bewertungen: 0 - Bewertungen ansehen

Du bist nicht dazu autorisiert dieses Thema zu bewerten. Danke sagen
Neues Thema beginnen Auf Beitrag antworten Weitergeben, Thema teilen Lesezeichen setzen Druckansicht CANhack.de - Übersicht » CANhack.de CAN-USB System: RKS+CAN
Ähnliche Fachartikel und Themen
Thema Community Bereich
Keine neuen Beiträge Can-Bus Fehler eliminieren CAN-Bus Allgemein
Keine neuen Beiträge C220 CDI Sportcoupé SRS Fehler Fahrzeugspezifische Hardware und Pinbelegungen
Keine neuen Beiträge CAN-BUS Fehler? Bitte helft mir :(( Innenraum- / Komfort CAN
Keine neuen Beiträge Fehler bei Treiberinstallation Win7 gelöst CANhack.de CAN-USB System: RKS+CAN
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.