![]() |
Probleme mit SerialNG
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 |
Re: Probleme mit SerialNG
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 |
Re: Probleme mit SerialNG
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. |
Re: Probleme mit SerialNG
Zitat:
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 |
Re: Probleme mit SerialNG
Danke für den Tipp mit PortMon.
Ich habe mal für mein Programm mitgelauscht.
Delphi-Quellcode:
Der letzte Teil setzt sich dann solange nichts gesendet wir immer weiter so fort bis ich mein Programm schließe.
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 Ist daraus etwas zu erkennen ? mfg Yannic |
Re: Probleme mit SerialNG
Hier analog nochmal was Hterm macht.
Delphi-Quellcode:
mfg Yannic
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 |
Re: Probleme mit SerialNG
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 |
Re: Probleme mit SerialNG
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz