Opened 12 years ago

Closed 12 years ago

#41 closed Aufgabe (fixed)

CP4002 auf Win-Com (COM7)

Reported by: Melanie Hermann Owned by: Melanie Hermann
Priority: kurzfristig Milestone:
Component: Protokolle Version:
Severity: Zu prüfen Keywords:
Cc:

Description

Falls sich Timeout mit Test-Bios nicht reproduzieren lässt ist es vllt besser das CP4002-Protokoll auf einer Windows-Schnittstelle laufen zu lassen.

TODO:

  • Parallel zu den Tests mit dem Test-Bios CP4002-Protokoll auf einer Win-COM einbauen und ebenfalls testen.

Change History (18)

comment:1 by Melanie Hermann, 12 years ago

Als mögliche Win-Com wird Com7 gewählt, da diese als default auf RS232 eingestellt ist und hier bisher nur das Modbus-Protokoll zur Verfügung steht.

comment:2 by Melanie Hermann, 12 years ago

Da das Messwerk jetzt auf COM7 (Win-Com) und nicht mehr auf COM2 (CAN-Com) angeschlossen wird, musste auch das EZChrom-Protokoll angepasst werden.

  • Vorher: Mic (Win-Com) <-> Cp (CAN-Com)
  • Jetzt: Mic (Win-Com) <-> Cp (Win-Com)

comment:3 by Melanie Hermann, 12 years ago

Änderungen:

  • mtx_tab.txt:
    • Modus EZChrom für COM7 eingebaut.
    • Modus EZChrom für COM2 entfernt.
  • gcvars.cpp:
    • chk_ComBaudrate_6(): Neue Funktion. Fix 9600 Baud.
    • chk_ComBits_6(): Neue Funktion. Fix 8N1.
    • chk_ComMode_6(): Neue Funktion. Fix CP4002-Protokoll.
    • chk_ComBaudrate_1(): Auskommentiert.
    • chk_ComBits_1(): Auskommentiert.
    • chk_ComMode_1(): Auskommentiert.
  • InOut.cpp:
    • SetComModeAndParameter(): ComMode_1_CP4002 auskommentiert und ComMode_6_CP4002 eingebaut.
    • SerSetBiosParameter(): ComMode_1_CP4002 auskommentiert.
    • WriteCanQueue(): ComMode_1_CP4002 auskommentiert.
    • ReadCanQueue(): ComMode_1_CP4002 auskommentiert.
  • GcApp.cpp:
    • SetFixValuesForCM(): Fixe Werte für CP4002-Protokoll auf COM7 setzen
    • InitInstance(): Falls normale GC9300-Applikation und CP4002-Prot auf COM7, wird Modus = AUS auf COM7 gesetzt. Und ModbusSlave wird ebenfalls nur bei normaler GC9300-Applikation gestartet.
  • CAN.cpp:
    • ThreadFunc(): CAN_ID_COM2_RXD tut nichts mehr
  • CP4002Prot.cpp:
    • Komplett verändert! Keine Kommunikation per CAN-Com (COM2) mehr, sondern per Win-Com (COM7). Bedeutet keine Timeoutüberwachung per Events, sondern per MyTimer.


comment:4 by Melanie Hermann, 12 years ago

Kommunikation mit Messwerk und auch EZChrom scheinen, nach den ersten Tests, gut zu funktionieren.

TODO:

  • Dauertest
  • Testen aller möglichen Szenarien (SS/MS, EZChrom, Timeout, ...)

comment:5 by Melanie Hermann, 12 years ago

Severity: AufgabeZu prüfen

comment:6 by Melanie Hermann, 12 years ago

Summary: CP4002 auf Win-ComCP4002 auf Win-Com (COM7)

comment:7 by Melanie Hermann, 12 years ago

Kommunikation läuft ganz gut.
Aber ab und zu werden nicht alle Daten einer Analyse empfangen und dann wird die komplette Analyse verworfen. Meist fehlen um die 10 Bytes.
Deshalb wurde das Timeout, ab dem 2ten Byte, von 2 auf 3 Sekunden erhöht.
Jetzt muss geprüft werden ob jetzt immer alle Bytes der Analysen empfangen werden.

comment:8 by Melanie Hermann, 12 years ago

Mehr als 100 Analysen wurden fehlerfrei übertragen. Aber dann kam doch ein Timeout.

comment:9 by Melanie Hermann, 12 years ago

Timeout, ab dem 2ten Byte, wurde testweise von 3 auf 4 Sekunden erhöht.
Nun muss geprüft werden ob jetzt immer alle Bytes der Analysen empfangen werden.

Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:10 by Melanie Hermann, 12 years ago

Trotz einer Timeoutzeit von 4 Sekunden gab es weiterhin noch vereinzelt Timeouts.
Es liegt also wohl nicht (nur) an der Timeoutzeit.
Allerdings lief gleichzeitig auf dem GC-Rechner die GC9300-Mathe-Test-Applikation im Debugger.

Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:11 by Melanie Hermann, 12 years ago

Gemerkt, dass es ja die Struktur COMMTIMEOUTS zum Handhaben der Timeouts bei Com-Schnittstellen gibt.

Änderungen:

  • m_recvTimer wieder komplett aus CCP4002Prot entfernt
  • COMMTIMEOUTS in CP4002Prot eingebaut
  • Timeout, ab dem 2ten Byte, wieder auf 2 Sekunden zurückgestellt
  • CCP4002Prot::Trans() und CCP4002Prot::Recv() geändert

comment:12 by Melanie Hermann, 12 years ago

TODO:

  • Testen mit Messwerk

comment:13 by Melanie Hermann, 12 years ago

Änderungen:

  • CCP4002Prot::Recv(): Sleep(200) eingebaut wenn CP_START
  • CP_ANADATA_TIMEOUT_2 von 2000 auf 3000 ms erhöht

TODO:

  • Testen mit Messwerk
Last edited 12 years ago by Melanie Hermann (previous) (diff)

comment:14 by Melanie Hermann, 12 years ago

Wenn das Messwerk neugestartet wird, schlägt die Datenübertragung bei den ersten beiden Analysen immer fehl. Danach läuft alles ohne Probleme.

TODO:

  • Herausfinden warum die ersten beiden Analysen Probleme machen.
  • Problem beheben

comment:15 by Melanie Hermann, 12 years ago

Änderungen:

  • Änderungen vom 09.05.2014 rückgängig gemacht.
    • Sleep(200) aus CCP4002Prot::Recv() entfernt
    • CP_ANADATA_TIMEOUT_2 von 3000 auf 2000 ms wieder gesenkt

Beobachtung:
Wenn nach erreichen der Messwerk-Temperaturen und - Drücke noch ~5 Minuten gewartet wird bis die der GC9300 die erste Analyse startet, dann funktioniert die Kommunikation ab der ersten Analyse.

Version 0, edited 12 years ago by Melanie Hermann (next)

comment:16 by Melanie Hermann, 12 years ago

Timeoutdefines für Messwerkkommunikation überarbeitet:

  • 'J' = 5 Sekunden
  • 'N' = 2 Sekunden
  • 'C' = 5 Sekunden
  • 'H' = 5 Sekunden
  • 'D' = 5 Sekunden
  • 'START' = Sampletime * SampletimeFaktor + 35 Sekunden (hier: 110 Sekunden)
  • Timeout zwischen Zeichen = 2 Sekunden

comment:17 by Melanie Hermann, 12 years ago

Siehe auch Ticket #47.

comment:18 by Melanie Hermann, 12 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.