AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit SerialNG

Ein Thema von Blamaster · begonnen am 3. Aug 2009 · letzter Beitrag vom 4. Aug 2009
Antwort Antwort
Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#1

Probleme mit SerialNG

  Alt 3. Aug 2009, 14:37
Hi,

ich habe ein Problem mit SerialNG.

Ich sende an einen Controller Daten nach folgendem Schema:

SerialPortNG1.SendString(chr(255) + chr(50) + chr(20) + chr(1) + chr(0) + chr(0));

Diese Übertragung wird vom Controller grundätzlich auch richtig erkannt und gesetzt.

Nun habe ich aber das Problem, das die Daten nur an den Controller übertragen werden, wenn ich vorher mit dem HTerm Terminal den Comport geöffnet habe und danach das HTerm Programm schließe.

Nun kann ich mit meinem Programm die Daten senden und der Controller führt sie richtig aus.

Wenn ich Hterm vorher nicht gestartet und den Comport einmal geöffnet habe, dann wertet der Controller die Daten nicht aus (ob er dann keine empfängt kann ich so nicht sagen).

Öfnnen tut mein Programm den Comport wie folgt:

SerialPortNG1.CommPort := 'COM1';
SerialPortNG1.BaudRate := 9600;
SerialPortNG1.Active := true;
(Baudrate und Comport stimmen)

Desweiteren ist im Objektinspektor Databits auf 8, StopBit auf 1 Parity aufn none gestellt.

Jemand eine Idee wo das Problem liegen kann ?

mfg Yannic
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Probleme mit SerialNG

  Alt 3. Aug 2009, 14:46
Hallo,

versuch mal Hyperterminal zu starten, nachdem Du dein Programm gestratet hast. Bekommst Du dann eine Fehlermeldung, das der COMPort von einem anderen Programm bereits genutzt wird.

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Probleme mit SerialNG

  Alt 3. Aug 2009, 14:51
Moin !

Besorg dir mal PortMon und lausche auf dem seriellen Port.
Da sieht man schnell was passiert (oder eben auch nicht).

Man kann so auch sehen ob der Port geöffnet oder geschlossen ist.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#4

Re: Probleme mit SerialNG

  Alt 3. Aug 2009, 15:32
Zitat von Blamaster:
Hi,

ich habe ein Problem mit SerialNG.
Hi,

ich schreibe serielle Komponenten selbst und kenne daher SerialNG nicht, aber ein COM-Port muss als erstes wie eine Datei geöffnet werden (zum Lesen und Schreiben). Ob dazu Active=true genügt weiss ich nicht, aber im Handbuch müsste ja was zum Öffnen/Schliessen stehen. Allerdings dürfte es ohne Öffnen auch mit Hyperterminal zuvoe nicht gehen.

Das mit dem Hyperterminal spricht eher dafür, dass in Hyperterminal eine Einstellung gemacht wird, die in deinem Programm noch fehlt, Handshaking oder noch irgendwas anderes von den vielen Parametern, die es an einem COM-Port gibt.

Gruss Reinhard
  Mit Zitat antworten Zitat
Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#5

Re: Probleme mit SerialNG

  Alt 3. Aug 2009, 17:35
Danke für den Tipp mit PortMon.

Ich habe mal für mein Programm mitgelauscht.

Delphi-Quellcode:
2   0.00005671   Project1.exe   IRP_MJ_CREATE   Serial0   SUCCESS   Options: Open    
3   0.00000335   Project1.exe   IOCTL_SERIAL_SET_QUEUE_SIZE   Serial0   SUCCESS   InSize: 4096 OutSize: 4096   
4   0.00000168   Project1.exe   IOCTL_SERIAL_GET_BAUD_RATE   Serial0   SUCCESS      
5   0.00000168   Project1.exe   IOCTL_SERIAL_GET_LINE_CONTROL   Serial0   SUCCESS      
6   0.00000140   Project1.exe   IOCTL_SERIAL_GET_CHARS   Serial0   SUCCESS      
7   0.00000140   Project1.exe   IOCTL_SERIAL_GET_HANDFLOW   Serial0   SUCCESS      
8   0.00000168   Project1.exe   IOCTL_SERIAL_GET_TIMEOUTS   Serial0   SUCCESS      
9   0.00000168   Project1.exe   IOCTL_SERIAL_SET_TIMEOUTS   Serial0   SUCCESS   RI:-1 RM:0 RC:0 WM:0 WC:0   
10   0.00000140   Project1.exe   IOCTL_SERIAL_GET_BAUD_RATE   Serial0   SUCCESS      
11   0.00000168   Project1.exe   IOCTL_SERIAL_GET_LINE_CONTROL   Serial0   SUCCESS      
12   0.00000140   Project1.exe   IOCTL_SERIAL_GET_CHARS   Serial0   SUCCESS      
13   0.00000140   Project1.exe   IOCTL_SERIAL_GET_HANDFLOW   Serial0   SUCCESS      
14   0.00000866   Project1.exe   IOCTL_SERIAL_SET_BAUD_RATE   Serial0   SUCCESS   Rate: 9600   
15   0.00000447   Project1.exe   IOCTL_SERIAL_CLR_RTS   Serial0   SUCCESS      
16   0.00000475   Project1.exe   IOCTL_SERIAL_CLR_DTR   Serial0   SUCCESS      
17   0.00000140   Project1.exe   IOCTL_SERIAL_SET_LINE_CONTROL   Serial0   INVALID PARAMETER   StopBits: 1.52 Parity: NONE WordLength: 8   
18   0.00000140   Project1.exe   IOCTL_SERIAL_GET_BAUD_RATE   Serial0   SUCCESS      
19   0.00000140   Project1.exe   IOCTL_SERIAL_GET_LINE_CONTROL   Serial0   SUCCESS      
20   0.00000140   Project1.exe   IOCTL_SERIAL_GET_CHARS   Serial0   SUCCESS      
21   0.00000140   Project1.exe   IOCTL_SERIAL_GET_HANDFLOW   Serial0   SUCCESS      
22   0.00000838   Project1.exe   IOCTL_SERIAL_SET_BAUD_RATE   Serial0   SUCCESS   Rate: 9600   
23   0.00000447   Project1.exe   IOCTL_SERIAL_CLR_RTS   Serial0   SUCCESS      
24   0.00000419   Project1.exe   IOCTL_SERIAL_CLR_DTR   Serial0   SUCCESS      
25   0.00000279   Project1.exe   IOCTL_SERIAL_SET_LINE_CONTROL   Serial0   SUCCESS   StopBits: 1 Parity: NONE WordLength: 8   
26   0.00000279   Project1.exe   IOCTL_SERIAL_SET_CHAR   Serial0   SUCCESS   EOF:0 ERR:0 BRK:0 EVT:0 XON:0 XOFF:0   
27   0.00000363   Project1.exe   IOCTL_SERIAL_SET_HANDFLOW   Serial0   SUCCESS   Shake:0 Replace:0 XonLimit:2048 XoffLimit:512   
28   0.00000447   Project1.exe   IOCTL_SERIAL_SET_DTR   Serial0   SUCCESS      
29   0.00000419   Project1.exe   IOCTL_SERIAL_SET_RTS   Serial0   SUCCESS      
30   0.00000307   Project1.exe   IOCTL_SERIAL_SET_WAIT_MASK   Serial0   SUCCESS   Mask: RXCHAR RXFLAG TXEMPTY CTS DSR RLSD BRK ERR RING    
31   0.00000950   Project1.exe   IOCTL_SERIAL_GET_MODEMSTATUS   Serial0   SUCCESS      
32   0.00000307   Project1.exe   IOCTL_SERIAL_GET_COMMSTATUS   Serial0   SUCCESS      
33   18.08476105   Project1.exe   IOCTL_SERIAL_WAIT_ON_MASK   Serial0   SUCCESS      
34   0.00000922   Project1.exe   IOCTL_SERIAL_GET_MODEMSTATUS   Serial0   SUCCESS      
35   0.00000335   Project1.exe   IOCTL_SERIAL_GET_COMMSTATUS   Serial0   SUCCESS      
36   0.00000363   Project1.exe   IOCTL_SERIAL_GET_MODEMSTATUS   Serial0   SUCCESS      
37   0.00000168   Project1.exe   IOCTL_SERIAL_GET_COMMSTATUS   Serial0   SUCCESS      
38   0.00000838   Project1.exe   IOCTL_SERIAL_GET_MODEMSTATUS   Serial0   SUCCESS      
39   0.00000307   Project1.exe   IOCTL_SERIAL_GET_COMMSTATUS   Serial0   SUCCESS
Der letzte Teil setzt sich dann solange nichts gesendet wir immer weiter so fort bis ich mein Programm schließe.

Ist daraus etwas zu erkennen ?

mfg Yannic
  Mit Zitat antworten Zitat
Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#6

Re: Probleme mit SerialNG

  Alt 3. Aug 2009, 22:39
Hier analog nochmal was Hterm macht.

Delphi-Quellcode:
15   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_CHARS   Serial0   SUCCESS      
16   0.00000168   HTerm.exe   IOCTL_SERIAL_GET_HANDFLOW   Serial0   SUCCESS      
17   0.00000950   HTerm.exe   IOCTL_SERIAL_SET_BAUD_RATE   Serial0   SUCCESS   Rate: 9600   
18   0.00000475   HTerm.exe   IOCTL_SERIAL_CLR_RTS   Serial0   SUCCESS      
19   0.00000447   HTerm.exe   IOCTL_SERIAL_CLR_DTR   Serial0   SUCCESS      
20   0.00000335   HTerm.exe   IOCTL_SERIAL_SET_LINE_CONTROL   Serial0   SUCCESS   StopBits: 1 Parity: NONE WordLength: 8   
21   0.00000196   HTerm.exe   IOCTL_SERIAL_SET_CHAR   Serial0   SUCCESS   EOF:0 ERR:0 BRK:0 EVT:0 XON:0 XOFF:0   
22   0.00000363   HTerm.exe   IOCTL_SERIAL_SET_HANDFLOW   Serial0   SUCCESS   Shake:0 Replace:0 XonLimit:0 XoffLimit:0   
23   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_BAUD_RATE   Serial0   SUCCESS      
24   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_LINE_CONTROL   Serial0   SUCCESS      
25   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_CHARS   Serial0   SUCCESS      
26   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_HANDFLOW   Serial0   SUCCESS      
27   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_BAUD_RATE   Serial0   SUCCESS      
28   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_LINE_CONTROL   Serial0   SUCCESS      
29   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_CHARS   Serial0   SUCCESS      
30   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_HANDFLOW   Serial0   SUCCESS      
31   0.00000866   HTerm.exe   IOCTL_SERIAL_SET_BAUD_RATE   Serial0   SUCCESS   Rate: 9600   
32   0.00000419   HTerm.exe   IOCTL_SERIAL_CLR_RTS   Serial0   SUCCESS      
33   0.00000419   HTerm.exe   IOCTL_SERIAL_CLR_DTR   Serial0   SUCCESS      
34   0.00000307   HTerm.exe   IOCTL_SERIAL_SET_LINE_CONTROL   Serial0   SUCCESS   StopBits: 1 Parity: NONE WordLength: 8   
35   0.00000168   HTerm.exe   IOCTL_SERIAL_SET_CHAR   Serial0   SUCCESS   EOF:0 ERR:0 BRK:0 EVT:0 XON:0 XOFF:0   
36   0.00000307   HTerm.exe   IOCTL_SERIAL_SET_HANDFLOW   Serial0   SUCCESS   Shake:0 Replace:0 XonLimit:0 XoffLimit:0   
37   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_BAUD_RATE   Serial0   SUCCESS      
38   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_LINE_CONTROL   Serial0   SUCCESS      
39   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_CHARS   Serial0   SUCCESS      
40   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_HANDFLOW   Serial0   SUCCESS      
41   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_BAUD_RATE   Serial0   SUCCESS      
42   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_LINE_CONTROL   Serial0   SUCCESS      
43   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_CHARS   Serial0   SUCCESS      
44   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_HANDFLOW   Serial0   SUCCESS      
45   0.00000838   HTerm.exe   IOCTL_SERIAL_SET_BAUD_RATE   Serial0   SUCCESS   Rate: 9600   
46   0.00000447   HTerm.exe   IOCTL_SERIAL_CLR_RTS   Serial0   SUCCESS      
47   0.00000447   HTerm.exe   IOCTL_SERIAL_CLR_DTR   Serial0   SUCCESS      
48   0.00000307   HTerm.exe   IOCTL_SERIAL_SET_LINE_CONTROL   Serial0   SUCCESS   StopBits: 1 Parity: NONE WordLength: 8   
49   0.00000168   HTerm.exe   IOCTL_SERIAL_SET_CHAR   Serial0   SUCCESS   EOF:0 ERR:0 BRK:0 EVT:0 XON:0 XOFF:0   
50   0.00000307   HTerm.exe   IOCTL_SERIAL_SET_HANDFLOW   Serial0   SUCCESS   Shake:0 Replace:0 XonLimit:0 XoffLimit:0   
51   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_BAUD_RATE   Serial0   SUCCESS      
52   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_LINE_CONTROL   Serial0   SUCCESS      
53   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_CHARS   Serial0   SUCCESS      
54   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_HANDFLOW   Serial0   SUCCESS      
55   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_BAUD_RATE   Serial0   SUCCESS      
56   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_LINE_CONTROL   Serial0   SUCCESS      
57   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_CHARS   Serial0   SUCCESS      
58   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_HANDFLOW   Serial0   SUCCESS      
59   0.00000838   HTerm.exe   IOCTL_SERIAL_SET_BAUD_RATE   Serial0   SUCCESS   Rate: 9600   
60   0.00000447   HTerm.exe   IOCTL_SERIAL_CLR_RTS   Serial0   SUCCESS      
61   0.00000419   HTerm.exe   IOCTL_SERIAL_CLR_DTR   Serial0   SUCCESS      
62   0.00000307   HTerm.exe   IOCTL_SERIAL_SET_LINE_CONTROL   Serial0   SUCCESS   StopBits: 1 Parity: NONE WordLength: 8   
63   0.00000168   HTerm.exe   IOCTL_SERIAL_SET_CHAR   Serial0   SUCCESS   EOF:0 ERR:0 BRK:0 EVT:0 XON:0 XOFF:0   
64   0.00000279   HTerm.exe   IOCTL_SERIAL_SET_HANDFLOW   Serial0   SUCCESS   Shake:0 Replace:0 XonLimit:0 XoffLimit:0   
65   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_BAUD_RATE   Serial0   SUCCESS      
66   0.00000168   HTerm.exe   IOCTL_SERIAL_GET_LINE_CONTROL   Serial0   SUCCESS      
67   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_CHARS   Serial0   SUCCESS      
68   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_HANDFLOW   Serial0   SUCCESS      
69   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_BAUD_RATE   Serial0   SUCCESS      
70   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_LINE_CONTROL   Serial0   SUCCESS      
71   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_CHARS   Serial0   SUCCESS      
72   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_HANDFLOW   Serial0   SUCCESS      
73   0.00000838   HTerm.exe   IOCTL_SERIAL_SET_BAUD_RATE   Serial0   SUCCESS   Rate: 9600   
74   0.00000447   HTerm.exe   IOCTL_SERIAL_CLR_RTS   Serial0   SUCCESS      
75   0.00000447   HTerm.exe   IOCTL_SERIAL_CLR_DTR   Serial0   SUCCESS      
76   0.00000279   HTerm.exe   IOCTL_SERIAL_SET_LINE_CONTROL   Serial0   SUCCESS   StopBits: 1 Parity: NONE WordLength: 8   
77   0.00000140   HTerm.exe   IOCTL_SERIAL_SET_CHAR   Serial0   SUCCESS   EOF:0 ERR:0 BRK:0 EVT:0 XON:0 XOFF:0   
78   0.00000307   HTerm.exe   IOCTL_SERIAL_SET_HANDFLOW   Serial0   SUCCESS   Shake:0 Replace:0 XonLimit:0 XoffLimit:0   
79   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_BAUD_RATE   Serial0   SUCCESS      
80   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_LINE_CONTROL   Serial0   SUCCESS      
81   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_CHARS   Serial0   SUCCESS      
82   0.00000140   HTerm.exe   IOCTL_SERIAL_GET_HANDFLOW   Serial0   SUCCESS      
83   0.00000894   HTerm.exe   IOCTL_SERIAL_PURGE   Serial0   SUCCESS   Purge: TXABORT RXABORT TXCLEAR RXCLEAR   
84   0.00000251   HTerm.exe   IOCTL_SERIAL_SET_WAIT_MASK   Serial0   SUCCESS   Mask: RXCHAR CTS DSR RLSD ERR RING    
85   0.00000447   HTerm.exe   IOCTL_SERIAL_GET_MODEMSTATUS   Serial0   SUCCESS      
86   3.54010524   HTerm.exe   IOCTL_SERIAL_WAIT_ON_MASK   Serial0   CANCELLED      
87   0.00000559   HTerm.exe   IOCTL_SERIAL_CLR_DTR   Serial0   SUCCESS      
88   0.00000447   HTerm.exe   IOCTL_SERIAL_CLR_RTS   Serial0   SUCCESS      
89   0.00002570   HTerm.exe   IRP_MJ_CLEANUP   Serial0   SUCCESS      
90   0.01584419   HTerm.exe   IRP_MJ_CLOSE   Serial0   SUCCESS
mfg Yannic
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#7

Re: Probleme mit SerialNG

  Alt 4. Aug 2009, 00:29
Hallo,

warum machst du nicht erstmal den Fehler bei LineControl (INVALID PARAMETER) raus - du setzt 1.52 Stoppbits, wozu soll das denn gut sein? Auch wenns nicht daran liegt. 1.5 Stoppbits gabs glaube ich bei alten Fernschreibern, 1.52 noch nie.

Gruss Reinhard
  Mit Zitat antworten Zitat
Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#8

Re: Probleme mit SerialNG

  Alt 4. Aug 2009, 12:24
Hi,

das dumme ist ja das ich diese 1.52 Stopbits niemals gesetzt habe. Weder im Objektinspektor, noch irgendwo im Source zugewiesen.

Ich habe jetzt alles auf die ApdCom Kompo umgestellt. Mit der läuft jetzt alles problemlos.

mfg Yannic
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz