реклама на сайте
подробности

 
 
> Получение данных по запросу в J1939.
galjoen
сообщение Nov 12 2009, 15:58
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Например, простейший случай. Я хочу запросить Total Averaged Information с PGN=00FE4D и Default Priority=7. Для этого мне нужно послать запрос с PGN=00EA00, а в нём, в 3-х байтах данных указать запрашиваемый PGN=FE4D.
Т.е. запрос будет выглядеть так:
ID = 18 E0 00 00 и 3 байта данных в такой последовательности: 4D FE 00
Правильно?
А в ответ, не позже через 200 милисекунд, я получу:
ID = 1C FE 4D 00 и 8 байтов данных: XX XX XX XX XX XX XX XX.
Правильно?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Juray
сообщение Dec 17 2009, 11:12
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 19-03-06
Из: Йошкар-Ола
Пользователь №: 15 388



Пытались считать журнал неисправностей (DM2 - Previously active trouble codes).
То есть CANID = 18 EA 00 sa (00 - это адрес EDC) "Request PGN";
data = CB FE 00 00 00 00 00 00 (PGN 65227)

Так пока в идентификаторе запроса не выставили в Source Address значение, кое-как вытянутое из бошевских представителей, EDC на этот запрос молчал как партизан. Какое - не могу сказать, бошевцы не позволили.

Цитата(galjoen @ Nov 17 2009, 20:56) *
Попробовал слать сообщение с ID=0x18EAFFFE и данными 0x00E000. Это вроде Address Claim. И на него все отвечать должны, хотя бы NACK.

PGN59904 (EA00) "Request PGN" описано в SAE J1939-21 в разделе 5.4.2 начиная со стр.17
Так вот там сказано: "A NACK is not permitted as a response to a global request."

А запросили вы pgn57344 - CM1 "Cab Message 1". С очень высокой вероятностью не нашлось блоков, способных выслать этот набор параметров.
Кстати, согласно SAE J1939-71 это сообщение должно передаваться периодически с интервалом в 1с, без запроса.
Но надо сказать, не все производители соблюдают рекомендации стандарта. Например, тот же Бошевский EDC передаёт сообщение HOURS только по запросу, а не периодически, как указано в стандарте.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Dec 17 2009, 11:46
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Juray @ Dec 17 2009, 13:50) *
data = CB FE 00 00 00 00 00 00 (PGN 65227)

Так вроде по стандарту в запросе длина данных всего 3 байта д.б.? А я с запросами в 8 байт и не экспериментировал. А вы запрос с размером данных 3 байта, а всё остальное тоже самое, пробовали посылать? Не отвечает?

А насчёт перебора двух младших байт в ID я пробовал - ответов не было (NACK тоже). Раз в секунду запрашивал - каждый следующий раз 2 мл. байта ID на 1 больше. Девайс неделю на ПАЗике катался - точно все варианты перебрал и даже не по 1-му разу. Хотя я в запросе только 3 байта данных посылал. М.б. из-за этого? Надо было 8 слать?

А вообще, видимо стоит к попыткам что-нибудь запросить вернутся. А то я уж подумал, что это всё не поддерживается. А какой бы мне PGN запросить чтобы наиболее вероятно ответ получить? 65227? А 8 или 3 байта?
Хотя попробую и то и другое - всего 2 варианта. Сейчас задача - вообще хоть какой-нибудь ответ получить.
Go to the top of the page
 
+Quote Post
Juray
сообщение Dec 17 2009, 12:48
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 19-03-06
Из: Йошкар-Ола
Пользователь №: 15 388



Цитата(galjoen @ Dec 17 2009, 14:46) *
Так вроде по стандарту в запросе длина данных всего 3 байта д.б.? А я с запросами в 8 байт и не экспериментировал. А вы запрос с размером данных 3 байта, а всё остальное тоже самое, пробовали посылать?

Тоже пробовали - от этого не зависит.

Цитата
А насчёт перебора двух младших байт в ID я пробовал - ответов не было (NACK тоже).

Многие экономят и не посылают NACK на неподдерживаемые запросы, в расчёте что молчание будет расценено имено как "не поддерживается".

Цитата
я в запросе только 3 байта данных посылал. М.б. из-за этого? Надо было 8 слать?

В блоке-то мы потом реализовали 3-байтный вариант - нормально работает. По стандарту положено 3.

Цитата
А какой бы мне PGN запросить чтобы наиболее вероятно ответ получить? 65227?

Сложный вопрос. Может быть действительно DM2. Или DM1 (65226).
Есть варианты 65259 (CI - идентификация компонента) и 65242 (SOFT - версия ПО). Ответ может прибежать транспортным протоколом, если не уложится в 8 байт.

Если знать, какие блоки вообще подключены к шине, тогда можно предположить, что у кого стоит спрашивать.
Типовой набор - блок двигателя (адрес 0x00) и АБС (0x0B).
Двигатель, если сидит на шине, в обязательном порядке должен гнать EEC1 без всяких запросов с интервалом 10 мс.
С него, по идее, можно спросить неисправности DM1 и DM2, моточасы и коленвал HOURS (65253), израсходованное топливо LFC (65257).

Только вот мне не попадались документы SAE с распределением PGN по блокам.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Dec 17 2009, 14:09
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Juray @ Dec 17 2009, 15:48) *
Сложный вопрос. Может быть действительно DM2. Или DM1 (65226).
Есть варианты 65259 (CI - идентификация компонента) и 65242 (SOFT - версия ПО). Ответ может прибежать транспортным протоколом, если не уложится в 8 байт.

Ну что же, буду и многобайтные сообщения проверять. В исходном состоянии имеются только 2 многобайтных - FEE3 и FEE1.
Цитата
Если знать, какие блоки вообще подключены к шине, тогда можно предположить, что у кого стоит спрашивать.
Типовой набор - блок двигателя (адрес 0x00) и АБС (0x0B).

Так и есть.
Но, несмотря на однотипность, отличий полно. Вот, например, с одним ПАЗиком встретился у которого сообщения со скоростью (FEBF) с интервалом 50 mS, а не 100 mS приходили.
Цитата
Двигатель, если сидит на шине, в обязательном порядке должен гнать EEC1 без всяких запросов с интервалом 10 мс.

EEC1 ни у кого не шлёт. Искал чтобы обороты получить... И EEC2 и EEC3 тоже не шлёт.
Цитата
С него, по идее, можно спросить неисправности DM1 и DM2, моточасы и коленвал HOURS (65253), израсходованное топливо LFC (65257).

Попробую разные варианты. А DM1 (FECA) без всякого запроса 1 раз в секунду шлётся.
Цитата
Только вот мне не попадались документы SAE с распределением PGN по блокам.

А я так понял, что разные блоки могут сообщения с одинаковым PGN слать. Т.е. отличие в младшем байте ID будет (0x00/0x0B).

А ещё имеются FF08 (ID=18 FF 08 00). Что это такое, в каком документе посмотреть? Хотя, наверное, ерунда какая-нибудь, т.к. там всегда все 8 байт данных FF.
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Dec 17 2009, 15:56
Сообщение #6


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(galjoen @ Dec 17 2009, 16:09) *
EEC1 ни у кого не шлёт. Искал чтобы обороты получить... И EEC2 и EEC3 тоже не шлёт.

Обороты из FEF1 часто получаются.
Цитата
А я так понял, что разные блоки могут сообщения с одинаковым PGN слать. Т.е. отличие в младшем байте ID будет (0x00/0x0B).

Да, встречалось.
Цитата
А ещё имеются FF08 (ID=18 FF 08 00). Что это такое, в каком документе посмотреть? Хотя, наверное, ерунда какая-нибудь, т.к. там всегда все 8 байт данных FF.

FFxx это всё проприетарные расширения. New Holland например почти всё так гоняет.
Go to the top of the page
 
+Quote Post
Juray
сообщение Dec 18 2009, 10:59
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 19-03-06
Из: Йошкар-Ола
Пользователь №: 15 388



Цитата(galjoen @ Dec 17 2009, 17:09) *
EEC1 ни у кого не шлёт. Искал чтобы обороты получить... И EEC2 и EEC3 тоже не шлёт.

EEC1 - ОБЯЗАТЕЛЬНОЕ сообщение. Двигатель может не передавать ничего из остальных приписанных ему параметров, но свои обороты он сообщать должен, если он сидит на шине. Есть в шине сообщения с SA=00 ? Если такие есть, но нет EEC1, то контроллер двигателя неправильно настроен.
EEC2 и EEC3 - сообщения вспомогательные.

Цитата(galjoen @ Dec 17 2009, 17:09) *
А я так понял, что разные блоки могут сообщения с одинаковым PGN слать. Т.е. отличие в младшем байте ID будет (0x00/0x0B).

Зависит от PGN.
Есть универсальные - например, любой блок может послать Request, выдать инфу о своих неисправностях, сообщить версию ПО и т.п.
Но есть и специфические, за которые отвечает конкретный блок. Например, АБС бесполезно спрашивать о температуре двигателя - зато может сообщить блок двигателя, а контроллер кондиционера ничего не может сказать о колёсной скорости - это епархия АБС. И т.п.

Цитата(HARMHARM @ Dec 17 2009, 18:56) *
Обороты из FEF1 часто получаются.

Из CCVS? Это как?
Конечно, в принципе, по скорости можно вычислить обороты - зная передаточный коэффициент КПП на текущей передаче, а также состояние педали сцепления. И то - на нейтрали и при выжатом сцеплении обороты так определить нельзя.

Цитата(HARMHARM @ Dec 17 2009, 18:56) *
FFxx это всё проприетарные расширения.

Именно. Весь диапазон FF00-FFFF определен как "Manufacturer Assigned".

Сообщение отредактировал Juray - Dec 18 2009, 11:00
Go to the top of the page
 
+Quote Post
galjoen
сообщение Dec 18 2009, 14:00
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Juray @ Dec 18 2009, 13:59) *
EEC1 - ОБЯЗАТЕЛЬНОЕ сообщение. Двигатель может не передавать ничего из остальных приписанных ему параметров, но свои обороты он сообщать должен, если он сидит на шине. Есть в шине сообщения с SA=00 ? Если такие есть, но нет EEC1, то контроллер двигателя неправильно настроен.
EEC2 и EEC3 - сообщения вспомогательные.

Ну нет там EEC1. А с 00, в младшем байте ID, сообщений большинство. Вот FEF2 - мгновенный расход, например.
А из PGN F0xx имеется только:
Код
ID                  данные
18 F0 00 0F     FF FF FF FF 0F FF FF FF - всегда (кто такой 0F (SA) в ID? Больше вроде нигде он не встречается)
18 F0 01 00     FF FF FF FF FF FF FF FF
18 F0 01 0B     CF FF F0 FF FF 0D FF FF

Это с завода так. Никто там ничего никогда не перестраивал и вообще не подключался. И работает. М.б. потому, что коробка механическая? Надо будет на автомате глянуть.

А как там вообще что-нибудь настроить можно?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- galjoen   Получение данных по запросу в J1939.   Nov 12 2009, 15:58
- - galjoen   Попробовал сделать как тут описал - ничего не полу...   Nov 14 2009, 12:29
|- - HARMHARM   Пробовали запрашивать. Пришли к выводу, что всё, ч...   Nov 16 2009, 17:16
|- - galjoen   Цитата(HARMHARM @ Nov 16 2009, 20:16) Про...   Nov 16 2009, 20:42
|- - HARMHARM   Цитата(galjoen @ Nov 16 2009, 22:42) А NA...   Nov 17 2009, 00:37
|- - galjoen   Попробовал слать сообщение с ID=0x18EAFFFE и данны...   Nov 17 2009, 17:56
|- - HARMHARM   Возможно, хотя на практике такого не видел. ПАЗики...   Nov 17 2009, 20:08
|- - galjoen   Ну вот, например, PGN=FEC1. Это пробег в 5 метрах ...   Nov 17 2009, 21:22
|- - HARMHARM   Разница, видимо, не в китайскости, наверняка китай...   Nov 18 2009, 06:37
- - Juray   Да что китайсы - в натуральном бошевском EDC-7 обн...   Dec 15 2009, 20:20
|- - galjoen   Цитата(Juray @ Dec 15 2009, 23:20) В запр...   Dec 16 2009, 14:23
|- - Juray   Цитата(galjoen @ Dec 18 2009, 17:00) Ну н...   Jan 26 2010, 10:02
|- - galjoen   Цитата(Juray @ Jan 26 2010, 13:02) Странн...   Jan 27 2010, 10:39
- - Juray   Распределение адресов определено в таблицах ...   Jan 28 2010, 03:17
|- - galjoen   Цитата(Juray @ Jan 28 2010, 06:17) Распре...   Jan 28 2010, 12:16
- - Juray   Ага, оно самое.   Jan 29 2010, 01:42


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 19:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01579 секунд с 7
ELECTRONIX ©2004-2016