Jump to content
Форум по продукции MOXA

Передача данных через MOXA5110


Recommended Posts

Основной вопрос: как NP5110 "режет" данные, поступающие с rs232 в пакеты, если данных меньше 1Кб, нет Delimiter'a, размер пакета - 0, интервал - 0?

Побудила меня создать тему следующая проблема:

Необходимо управлять коммерческим оборудованием с использование коммерческого ПО.

При подключении с ПК и железного COM порта, обмен сообщений выглядит так:

0	0.11484504	ItmCit.exe	IRP_MJ_CREATE	Serial2	SUCCESS	Options: Open 	
1	0.00000531	ItmCit.exe	IOCTL_SERIAL_SET_WAIT_MASK	Serial2	SUCCESS	Mask: RXCHAR CTS ERR 	
2	0.00000223	ItmCit.exe	IOCTL_SERIAL_SET_QUEUE_SIZE	Serial2	SUCCESS	InSize: 4096 OutSize: 4096	
3	0.00000335	ItmCit.exe	IOCTL_SERIAL_PURGE	Serial2	SUCCESS	Purge: TXABORT RXABORT TXCLEAR RXCLEAR	
4	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_BAUD_RATE	Serial2	SUCCESS		
5	0.00000223	ItmCit.exe	IOCTL_SERIAL_GET_LINE_CONTROL	Serial2	SUCCESS		
6	0.00000223	ItmCit.exe	IOCTL_SERIAL_GET_CHARS	Serial2	SUCCESS		
7	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_HANDFLOW	Serial2	SUCCESS		
8	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_BAUD_RATE	Serial2	SUCCESS		
9	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_LINE_CONTROL	Serial2	SUCCESS		
10	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_CHARS	Serial2	SUCCESS		
11	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_HANDFLOW	Serial2	SUCCESS		
12	0.00376109	ItmCit.exe	IOCTL_SERIAL_SET_BAUD_RATE	Serial2	SUCCESS	Rate: 115200	
13	0.00297105	ItmCit.exe	IOCTL_SERIAL_SET_RTS	Serial2	SUCCESS		
14	0.00298893	ItmCit.exe	IOCTL_SERIAL_SET_DTR	Serial2	SUCCESS		
15	0.00394324	ItmCit.exe	IOCTL_SERIAL_SET_LINE_CONTROL	Serial2	SUCCESS	StopBits: 1 Parity: NONE WordLength: 8	
16	0.00294032	ItmCit.exe	IOCTL_SERIAL_SET_CHAR	Serial2	SUCCESS	EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13	
17	0.00698720	ItmCit.exe	IOCTL_SERIAL_SET_HANDFLOW	Serial2	SUCCESS	Shake:1 Replace:40 XonLimit:2048 XoffLimit:512	
18	0.00000335	ItmCit.exe	IOCTL_SERIAL_GET_TIMEOUTS	Serial2	SUCCESS		
19	0.00000196	ItmCit.exe	IOCTL_SERIAL_SET_TIMEOUTS	Serial2	SUCCESS	RI:100 RM:0 RC:1000 WM:0 WC:1000	
20	0.00000559	ItmCit.exe	IOCTL_SERIAL_SET_WAIT_MASK	Serial2	SUCCESS	Mask: RXCHAR CTS ERR 	
21	0.00765125	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	Serial2	SUCCESS		
22	0.00102331	ItmCit.exe	IRP_MJ_WRITE	Serial2	SUCCESS	Length 6: 01 01 03 10 03 10 	
23	0.00000447	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
24	0.00000419	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
25	0.00000503	ItmCit.exe	IRP_MJ_READ	Serial2	SUCCESS	Length 1: 01 	
26	0.00000223	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
27	0.00000223	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
28	0.00188879	ItmCit.exe	IRP_MJ_READ	Serial2	SUCCESS	Length 3: 01 02 16 	
29	0.00000419	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
30	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
31	0.00000419	ItmCit.exe	IRP_MJ_READ	Serial2	SUCCESS	Length 1: 14 	
32	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
33	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
34	0.00883073	ItmCit.exe	IRP_MJ_READ	Serial2	SUCCESS	Length 1: 01 	
35	0.00070959	ItmCit.exe	IRP_MJ_WRITE	Serial2	SUCCESS	Length 47: 01 01 2C 24 01 03 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0B 	
36	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
37	0.00000447	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
38	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
39	0.00089732	ItmCit.exe	IRP_MJ_READ	Serial2	SUCCESS	Length 3: 01 02 26 	
40	0.00000391	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
41	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
42	0.00000419	ItmCit.exe	IRP_MJ_READ	Serial2	SUCCESS	Length 1: 24 	
43	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
44	0.00000223	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
45	0.00286657	ItmCit.exe	IRP_MJ_READ	Serial2	SUCCESS	Length 1: 01 	
46	0.00000475	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
47	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
48	0.00089816	ItmCit.exe	IRP_MJ_READ	Serial2	SUCCESS	Length 3: 01 2C 34 	
49	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
50	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
51	0.00393123	ItmCit.exe	IRP_MJ_READ	Serial2	SUCCESS	Length 43: 01 04 01 00 00 00 01 03 07 41 53 57 31 30 35 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 C6 01 01 02 1B 12 43 45 54 00 B4 	
52	0.00000475	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
53	0.00085123	ItmCit.exe	IRP_MJ_WRITE	Serial2	SUCCESS	Length 5: 01 01 02 36 34 	
54	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
55	0.00000223	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
56	0.00000531	ItmCit.exe	IRP_MJ_READ	Serial2	SUCCESS	Length 1: FF 	
57	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
58	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
59	0.99992150	ItmCit.exe	IRP_MJ_READ	Serial2	TIMEOUT	Length 0: 	
60	0.00000531	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
61	0.00000475	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	Serial2	SUCCESS		
62	0.00000223	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
63	0.99988183	ItmCit.exe	IRP_MJ_READ	Serial2	TIMEOUT	Length 0: 	
64	0.00000559	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	Serial2	SUCCESS		
65	0.00000000	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	Serial2	

 

При подключении через MOXA (np Firmware version : 2.3.15 Build 11033111, NPORT Admin 1.16 build 11021514 ) tcpdump по порту 950:

SEND:   01 01 03 10 04 17                                ......
RECV:      01 01 02 16 14                                   .....
SEND:   01 01 2c 24 01 03 01 00  00 00 00 00 00 00 00 00 ..,$.... ........
SEND:   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 ........ ........
SEND:   00 00 00 00 00 00 00 00  00 00 00 00 00 00 0b    ........ .......
RECV:      01 01 02 26                                      ...&
RECV:      24                                               $
RECV:      01 01 2c 34 01 04 01 00                          ..,4.... 
RECV:      00 01 03 07 41 53 57 31  30 34 44 00             ....ASW1 04D.
RECV:      00 00 00 00 00 00 00 00  00 07 c6 01             ........ ....
RECV:      01 02 29 09 43 45 54 00  67                      ..).CET. g

 

Данные передаются от устройства одни и те же (небольшие отличия, судя по всему, вызваны разным номером порта), но при работе через NPORT программе не отправляет "01 01 02 36 34", судя по всему она не понимает что ей приходит, соответственно, не работает ничего. Отличия только в компоновке данных от MOXA.

Link to comment

Поставил NPort Windows Driver Manager, появился COM порт в диспетчере задач и получилось снять трасировку с COM порта:

0	0.05705222	ItmCit.exe	IRP_MJ_CREATE	NPtdrv24	SUCCESS	Options: Open 	
1	0.00000503	ItmCit.exe	IOCTL_SERIAL_SET_WAIT_MASK	NPtdrv24	SUCCESS	Mask: RXCHAR CTS ERR 	
2	0.00000223	ItmCit.exe	IOCTL_SERIAL_SET_QUEUE_SIZE	NPtdrv24	SUCCESS	InSize: 4096 OutSize: 4096	
3	0.03114334	ItmCit.exe	IOCTL_SERIAL_PURGE	NPtdrv24	SUCCESS	Purge: TXABORT RXABORT TXCLEAR RXCLEAR	
4	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_BAUD_RATE	NPtdrv24	SUCCESS		
5	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_LINE_CONTROL	NPtdrv24	SUCCESS		
6	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_CHARS	NPtdrv24	SUCCESS		
7	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_HANDFLOW	NPtdrv24	SUCCESS		
8	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_BAUD_RATE	NPtdrv24	SUCCESS		
9	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_LINE_CONTROL	NPtdrv24	SUCCESS		
10	0.00000168	ItmCit.exe	IOCTL_SERIAL_GET_CHARS	NPtdrv24	SUCCESS		
11	0.00000168	ItmCit.exe	IOCTL_SERIAL_GET_HANDFLOW	NPtdrv24	SUCCESS		
12	0.01545224	ItmCit.exe	IOCTL_SERIAL_SET_BAUD_RATE	NPtdrv24	SUCCESS	Rate: 115200	
13	0.01555561	ItmCit.exe	IOCTL_SERIAL_SET_RTS	NPtdrv24	SUCCESS		
14	0.01558997	ItmCit.exe	IOCTL_SERIAL_SET_DTR	NPtdrv24	SUCCESS		
15	0.01558550	ItmCit.exe	IOCTL_SERIAL_SET_LINE_CONTROL	NPtdrv24	SUCCESS	StopBits: 1 Parity: NONE WordLength: 8	
16	0.00000335	ItmCit.exe	IOCTL_SERIAL_SET_CHAR	NPtdrv24	SUCCESS	EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13	
17	0.06244313	ItmCit.exe	IOCTL_SERIAL_SET_HANDFLOW	NPtdrv24	SUCCESS	Shake:1 Replace:40 XonLimit:0 XoffLimit:0	
18	0.00000307	ItmCit.exe	IOCTL_SERIAL_GET_TIMEOUTS	NPtdrv24	SUCCESS		
19	0.00000196	ItmCit.exe	IOCTL_SERIAL_SET_TIMEOUTS	NPtdrv24	SUCCESS	RI:100 RM:0 RC:1000 WM:0 WC:1000	
20	0.00000531	ItmCit.exe	IOCTL_SERIAL_SET_WAIT_MASK	NPtdrv24	SUCCESS	Mask: RXCHAR CTS ERR 	
21	0.01143916	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	NPtdrv24	SUCCESS		
22	0.00000782	ItmCit.exe	IRP_MJ_WRITE	NPtdrv24	SUCCESS	Length 6: 01 01 03 10 04 17 	
23	0.00000335	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
24	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
25	0.00000335	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 1: 01 	
26	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
27	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
28	0.00000223	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 3: 00 02 16 	
29	0.00000168	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
30	0.00104343	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	NPtdrv24	SUCCESS		
31	0.00000279	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
32	0.00000279	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 1: 14 	
33	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
34	0.00000168	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
35	0.98684134	ItmCit.exe	IRP_MJ_READ	NPtdrv24	TIMEOUT	Length 0: 	
36	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
37	0.00000475	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	NPtdrv24	SUCCESS		
38	4.01143665	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	NPtdrv24	SUCCESS		
39	0.00000782	ItmCit.exe	IRP_MJ_WRITE	NPtdrv24	SUCCESS	Length 6: 01 01 03 10 04 17 	
40	0.00000307	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
41	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
42	0.00000307	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 1: 01 	
43	0.00000168	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
44	0.00000168	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
45	0.00000223	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 3: 00 02 16 	
46	0.00000168	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
47	0.00107360	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	NPtdrv24	SUCCESS		
48	0.00000279	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
49	0.00000279	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 1: 14 	
50	0.00000168	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
51	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
52	0.98715423	ItmCit.exe	IRP_MJ_READ	NPtdrv24	TIMEOUT	Length 0: 	
53	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
54	0.00000503	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	NPtdrv24	SUCCESS		
55	4.01172244	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	NPtdrv24	SUCCESS		
56	0.00000782	ItmCit.exe	IRP_MJ_WRITE	NPtdrv24	SUCCESS	Length 6: 01 01 03 10 04 17 	
57	0.00009945	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
58	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
59	0.00000335	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 1: 01 	
60	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
61	0.00000168	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
62	0.00000251	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 3: 01 02 16 	
63	0.00000168	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
64	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
65	0.00110433	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 1: 14 	
66	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
67	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
68	0.07327188	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 1: 01 	
69	0.00000866	ItmCit.exe	IRP_MJ_WRITE	NPtdrv24	SUCCESS	Length 47: 01 01 2C 24 01 03 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0B 	
70	0.00000279	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
71	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
72	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
73	0.00000279	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 3: 01 02 26 	
74	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
75	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
76	0.00110405	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 1: 24 	
77	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
78	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
79	0.00290763	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 1: 01 	
80	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
81	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
82	0.00000279	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 3: 01 2C 34 	
83	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
84	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
85	0.11227460	ItmCit.exe	IRP_MJ_READ	NPtdrv24	TIMEOUT	Length 38: 01 04 01 00 00 01 03 07 41 53 57 31 30 35 44 00 00 00 00 00 00 00 00 00 00 00 90 5C 50 20 80 89 68 54 14 15 10 D9 	
86	0.00000391	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
87	0.00000503	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	NPtdrv24	SUCCESS		
88	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
89	0.99983992	ItmCit.exe	IRP_MJ_READ	NPtdrv24	TIMEOUT	Length 0: 	
90	0.00000391	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
91	8.89298975	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	NPtdrv24	SUCCESS		
92	0.00000391	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
93	0.00000335	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 1: 01 	
94	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
95	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
96	0.00000223	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 3: 01 2C 34 	
97	0.00000168	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
98	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
99	0.10672474	ItmCit.exe	IRP_MJ_READ	NPtdrv24	TIMEOUT	Length 37: 01 04 01 00 00 01 03 07 41 53 57 31 30 35 44 00 00 00 00 00 00 00 00 00 00 07 C6 01 01 00 89 68 54 14 15 10 D9 	
100	0.00000391	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
101	0.00000503	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	NPtdrv24	SUCCESS		
102	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
103	0.99987037	ItmCit.exe	IRP_MJ_READ	NPtdrv24	TIMEOUT	Length 0: 	
104	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
105	8.89900420	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	NPtdrv24	SUCCESS		
106	0.00000391	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
107	0.00000335	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 1: 01 	
108	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
109	0.00000168	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
110	0.00000251	ItmCit.exe	IRP_MJ_READ	NPtdrv24	SUCCESS	Length 3: 01 2C 34 	
111	0.00000168	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
112	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
113	0.10080248	ItmCit.exe	IRP_MJ_READ	NPtdrv24	TIMEOUT	Length 38: 01 04 01 00 00 01 03 07 41 53 57 31 30 35 44 00 00 00 00 00 00 00 00 00 00 00 07 C6 01 01 00 89 68 54 14 15 10 D9 	
114	0.00000363	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
115	0.00000475	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	NPtdrv24	SUCCESS		
116	0.00000196	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
117	0.99986199	ItmCit.exe	IRP_MJ_READ	NPtdrv24	TIMEOUT	Length 0: 	
118	0.00000391	ItmCit.exe	IOCTL_SERIAL_GET_COMMSTATUS	NPtdrv24	SUCCESS		
119	39.21990504	ItmCit.exe	IOCTL_SERIAL_WAIT_ON_MASK	NPtdrv24	CANCELLED		
120	0.00000475	ItmCit.exe	IRP_MJ_CLEANUP	NPtdrv24	SUCCESS		
121	0.08793771	ItmCit.exe	IRP_MJ_CLOSE	NPtdrv24	SUCCESS		

 

Из неё видно, что программа отвечает, когда идёт:

IRP_MJ_READ NPtdrv24 SUCCESS Length 1: 01

IRP_MJ_READ NPtdrv24 SUCCESS Length 3: 01 02 16

IRP_MJ_READ NPtdrv24 SUCCESS Length 1: 14

IRP_MJ_READ NPtdrv24 SUCCESS Length 1: 01

 

Когда же "IRP_MJ_READ NPtdrv24 TIMEOUT", то программа не отвечает.

Что может вызывать "IRP_MJ_READ NPtdrv24 TIMEOUT" вместо "IRP_MJ_READ NPtdrv24 SUCCESS"?

Link to comment

Добрый день,

 

Прошу прощения за поздний ответ.

Да, похоже, что NPort "режет" данные на несколько TCP-пакетов. Я думаю, таймаут чтения возник именно из-за длинного пакета (NPort разрезал его на части, и программа не дождалась сообщения целиком).

 

Вообще, если в NPort не заданы параметры Delimiter / Force Tx / Packet Length, то NPort делает размеры пакетов на свое усмотрение (от 4 до 128 байт в зависимости от скорости, нагруженности процессора, своего настроения итп.). Четкого алгоритма нет.

Как правило, помогает выставление Force Tx Timeout = 2 мс. Подробнее - здесь.

Попробуйте, заработает ли.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...