Функция выполнят транзакцию (запрос/ответ) по стандарту ISO TP.
За транзакцию отправляется запрос в шину, а полученный ответ записывается в принимающий буфер.
При работе функции используется буфер RXD
Для работы функции, в конфигурации устройства необходимо выполнить настройки:
Конфигурация➜CAN-шина
..➜Использовать встроенный интерфейс CAN
..➜Режим работы интерфейса➜активный
| В меню функций | На схеме |
|---|---|
![]() |
![]() |
| Название | Тип значения | Описание |
|---|---|---|
start |
bool |
Отправить запрос |
data 0..3 |
int32 |
Младшие 4 байта данных для отправки |
data 4..6 |
int32 |
Старшие 3 байта данных для отправки |
send size |
int32 |
Количество отправляемых байт. Определяет, сколько байт будет взято из data 0..3 и data 4..6. Оставшиеся байты заполняются нулями. Значение send size также записывается в первый байт запроса. Параметр не изменяет длину CAN-сообщения (DLC), она всегда равна 8 байтам |
| Название | Тип значения | Описание |
|---|---|---|
state |
int32 |
Состояние приемника: 0 — приемник выключен 1 — выходные данные не актуальны 2 — данные приняты и актуальны 5 — настройки не установлены 6 — установка настроек 7 — настройки установлены -1 — функция настроена некорректно или ресурсы устройства недоступны -2 — ошибка при отправлении данных -3 — таймаут -4 — некорректный ответ -5 — ответ не поддерживается |
recv size |
int32 |
Количество байт, принятых в RXD буфер. |
0 -> 5 -> 6 -> 7 -> 1 -> 2 // финальный статус в случае успеха
| |
| *--> [-4, -5] // ошибка в полученном ответе
| |
| *--> -3 // не получен ответ
|
*--> -2 // ошибка при отправке данных
[0 .. 7] -> -1 // Переход в ошибку возможен из любого статуса
| Название | Описание |
|---|---|
| Шина | Используемый интерфейс CAN:CAN1CAN2 |
| Таймаут, мс | Время ожидания ответа после отправки запроса. |
| Идентификатор запроса | Значение идентификатора для формирования запроса |
| Идентификатор ответа | Значение идентификатора ожидаемого ответа |
| Порядок байт | Порядок байт, который будет использован при отправке исходного массива data в CAN-шину. Например, если data 0..3 = 0x44332211, data 4..6 = 0x776655, то data = [11,22,33,44,55,66,77]: «Младшим вперед» будет передано = [11,22,33,44,55,66,77] «Старшим вперед»будет передано = [77,66,55,44,33,22,11] «Старшим вперед (2 байта)»будет передано = [22,11,44,33,66,55,77] |
Для отправки запроса на уровень топлива по стандарту OBDII необходимо настроить блок следующим образом:

На входы подаются данные для формирования запроса:

В шину будет отправлен запрос с ID 7E0 и данными [02,01,2F,00,00,00,00,00].
В ответ будет получено сообщение с ID 7E8 и данными [03,41,2F,64,00,00,00,00].
Первый байт 03 указывает количество байт полезных данных в ответе. Поэтому в RXD-буфер будут добавлены 3 байта данных [41,2F,64].
