Тоже думаю над этим.
Пропайка проца, ожидаемо не дала результатов.
Все больше склоняюсь к тому что проблемма может скрываться в программной части, например малая задержка для заполнения буфера RX
ниже пример лога с ошибками чтения из блока. Не нашёл как спрятать под спойлер.
0.000s ++ PTLoadLibrary(test)
0.003s 0:STATUS_NOERROR
0.003s ++ PTOpen(*NULL*, 0x0214F594)
returning DeviceID: 1
0.020s 0:STATUS_NOERROR
0.020s ** PTReadVersion(1, 0x0214F558, 0x0214F508, 0x0214F4B8)
Firmware: 1.17.4877
DLL: 1.01.4247 Apr 18 2014 16:14:11
API: 04.04
0.020s 0:STATUS_NOERROR
0.020s ++ PTConnect(1, 4:ISO14230, 0x00001000, 10400, 0x04805958)
Flags: 12:ISO9141_K_LINE_ONLY
returning ChannelID: 3
0.023s 0:STATUS_NOERROR
0.023s ++ PTStartMsgFilter(3, 1:PASS_FILTER, 0x0214D530, 0x0214E568, 0x00000000, 0x0214D518)
Mask[ 0] 4:ISO14230. 1 bytes. TxF=0x00000000
\__ c0
Pattern[ 0] 4:ISO14230. 1 bytes. TxF=0x00000000
\__ c0
FlowControl is NULL
returning FilterID: 0
0.024s 0:STATUS_NOERROR
0.024s ++ PTStartMsgFilter(3, 1:PASS_FILTER, 0x0214D530, 0x0214E568, 0x00000000, 0x0214D518)
Mask[ 0] 4:ISO14230. 1 bytes. TxF=0x00000000
\__ c0
Pattern[ 0] 4:ISO14230. 1 bytes. TxF=0x00000000
\__ 80
FlowControl is NULL
returning FilterID: 1
0.025s 0:STATUS_NOERROR
0.025s ++ PTStartMsgFilter(3, 1:PASS_FILTER, 0x0214D530, 0x0214E568, 0x00000000, 0x0214D518)
Mask[ 0] 4:ISO14230. 1 bytes. TxF=0x00000000
\__ c0
Pattern[ 0] 4:ISO14230. 1 bytes. TxF=0x00000000
\__ 40
FlowControl is NULL
returning FilterID: 2
0.025s 0:STATUS_NOERROR
0.025s ** PTIoctl(3, 2:SET_CONFIG, 0x0214F478, 0x00000000)
12 parameter(s) at 0x09470640:
1:DATA_RATE = 9600
7:P1_MAX = 40
10:P3_MIN = 500
12:P4_MIN = 8
19:TIDLE = 300
20:TINIL = 35
21:TWUP = 50
14:W1 = 110
15:W2 = 20
16:W3 = 20
17:W4 = 50
18:W5 = 330
0.032s 0:STATUS_NOERROR
0.032s ** PTIoctl(3, 8:CLEAR_RX_BUFFER, 0x00000000, 0x00000000)
0.032s 0:STATUS_NOERROR
0.032s ** PTIoctl(3, 5:FAST_INIT, 0x04807AD8, 0x04808B20)
Input[ 0] 4:ISO14230. 4 bytes. TxF=0x00000000
\__ 81 98 f0 81
Input[ 0] 0.000000s. 4:ISO14230. Actual data 6 of 6 bytes. RxS=0x00000000
\__ 83 f0 98 c1 e9 8f
0.143s 0:STATUS_NOERROR
0.143s << PTReadMsgs(3, 0x0214D540, 0x0214D53C, 250)
read 0 of 1 messages
0.394s 16:ERR_BUFFER_EMPTY
0.395s ** PTIoctl(3, 8:CLEAR_RX_BUFFER, 0x00000000, 0x00000000)
0.395s 0:STATUS_NOERROR
0.395s >> PTWriteMsgs(3, 0x048059A4, 0x0214E5B4, 1000)
Msg[ 0] 4:ISO14230. 5 bytes. TxF=0x00000000
\__ 82 98 f0 21 00
sent 1 of 1 messages
0.422s 0:STATUS_NOERROR
0.422s << PTReadMsgs(3, 0x0214D5E8, 0x0214D5DC, 1020)
read 1 of 1 messages
Msg[ 0] 268.452226s. 4:ISO14230. Actual data 0 of 0 bytes. RxS=0x00000002
RxStatus: 1:START_OF_MESSAGE
0.462s 0:STATUS_NOERROR
0.462s << PTReadMsgs(3, 0x0214D5E8, 0x0214D5DC, 5000)
read 1 of 1 messages
Msg[ 0] 268.480372s. 4:ISO14230. Actual data 0 of 6 bytes. RxS=0x00000000
\__ [83] [f0] [98] [7f] [81] [78]
0.462s 0:STATUS_NOERROR
0.462s << PTReadMsgs(3, 0x0214D5E8, 0x0214D5DC, 1020)
read 1 of 1 messages
Msg[ 0] 268.487225s. 4:ISO14230. Actual data 0 of 0 bytes. RxS=0x00000002
RxStatus: 1:START_OF_MESSAGE
0.521s 0:STATUS_NOERROR
0.521s << PTReadMsgs(3, 0x0214D5E8, 0x0214D5DC, 5000)
read 0 of 1 messages
5.523s 16:ERR_BUFFER_EMPTY
5.524s ** PTIoctl(3, 8:CLEAR_RX_BUFFER, 0x00000000, 0x00000000)
5.524s 0:STATUS_NOERROR
5.524s ** PTIoctl(3, 5:FAST_INIT, 0x04807AD8, 0x04808B20)
Input[ 0] 4:ISO14230. 4 bytes. TxF=0x00000000
\__ 81 98 f0 81
Input[ 0] 0.000000s. 4:ISO14230. Actual data 6 of 6 bytes. RxS=0x00000000
\__ 83 f0 98 c1 e9 8f
5.637s 0:STATUS_NOERROR
5.637s << PTReadMsgs(3, 0x0214D540, 0x0214D53C, 250)
read 0 of 1 messages
5.889s 16:ERR_BUFFER_EMPTY
5.890s ** PTIoctl(3, 8:CLEAR_RX_BUFFER, 0x00000000, 0x00000000)
5.890s 0:STATUS_NOERROR