0

Управление включением парковочной камеры гибкой логикой

Александр Яковенко 3 weeks ago updated 3 weeks ago 5

Нужен совет или информация (по дискретности опроса статуса селектора Акпп из CAN).

Преамбула: На машине с АКПП есть задняя парковочная камера, сделал допом переднюю (работает с задней поочерёдно. т. е. или задняя или передняя или никакая ) , конкретно в схему подключения смысла нету вдаваться (там одно реле с двумя парами контактов и пара диодов) , главное что управляет этим реле вывод S96v2, назовём этот вывод передняя камера ( ПК) . 

Что сделано в сиге:

Настроено  две программы гибкой логики:

1) по нажатию сервисное кнопки и если включён АСС и вывод ПК не активен, то подать на вывод  ПК импульс 10сек, прервать выполнение если сервисная кнопка нажата или селектор акпп переведён в R. 

2) если режим акпп D стал не активен при условии неактивного R, P и N режимов (ну не сделали разрабы ручной режим селектора отдельным статусом и этих условий недостаточно, но пока не хочеться раздуваться с битовыми перемеными), действие такое же как и с кнопкой - подать импульс на вывод ПК 10 сёк и прервать если нажата сервисная кнопка или стал активен R.

Первая программа работает нормально, коректно. Вторая программа работает как то не всегда, надо селектор медленно перемещать.

Вопрос: неужели опрос состояний из CAN идёт настолько медленно и в принципе нормальной работать по второй программе не получиться. Забегая наперед - в CAN сообщения о статусе акпп бегают часто, миллисекунд 50 или чаще (специально не засекал когда парсил CAN, свой девайс делал, он ловит эту инфу и выводит на дисплей так что глазом не заметно задержки при переключении селектора АКПП) . 

Посмотрел на сайте по сигналам в  CAN у сигналки -   там статус АКПП берётся из  CAN комфорта  ( CAN B), а я смотрю шину CAN C (моторная) , поэтому вполне возможно в шине комфорта эта инфа намного медленее "ходит". 

Да, задержки передачи данных  из одной шины в другую - вполне возможны. Так как шины мультиплексные, то  по ним в первую очередь передается наиболее важная (с точки зрения того, кто писал протокол работы шины) информация.  Информация о положении коробки Важна в моторной шине и не особо важна в салонной шине.

Более того - из-за разной скорости  передачи данных в разных шинах существуют  шлюзы (GATEWAY), дополнительно обрабатывающие эту информацию при её передаче из  одной шины в другую. Это тоже может вносить  задержку в передаче сигнала.

Как вариант - если  селектор КПП или мозг управления двигателя/коробки в легком доступе, то  можно  сделать  АНАЛОГОВОЕ подключение доп. входа (если есть свободные) к цепи "паркинг" селектора. И переписать ГЛ с участием этого входа сигнализации, отказавшись от контроля паркинга из CAN.

Если интересно - про нюансы использования CAN в процессе установки сигнализации -можно почитать тут

https://www.alarmforum.ru/forum55/thread15807.html (самое интересное на стр 3, там есть еще ссылки  по котором тоже нужно  прогуляться - станет гораздо понятнее -как это всё работает в машине)

Благодарю, почитаю. Про аналоговое подключение наверное выход, но городить доп линии соединения неохота для сиги (я её брал из расчёта что этого делать не буду))) , пока так посмотрю,  может свыкнусь с лишней парой секунд задержки ) , может не так напрягать будет эта задержка (хотя что мешало сделать разрабам считыванием статуса из моторной шины непонятно, подключено две шины все равно),  проще свой девайс доделать отдельным выводом и с него управлять этим.

Какая то непонятка с первой программой стало, если прервать включение камеры кнопкой или включение АКПП в R, то всё работает как и задумано. Но если дождаться выключения через 10 секунд, то чтобы включить повторно кнопкой  надо два раза нажать  на кнопку, как будто условие прерывания продолжает действовать даже когда программа завершена. Может кто-то знает секрет какой-то  почему так )? 

Image 80975

Image 80976

Image 80977

Мутная тема с этой гибкой логикой

Короче пофиксил я проблему с первой программой (та что на скринах) следующим образом: добавил к событиям прерывания условие активности канала ПК. По поведению похоже что программа (часть прерывающая выполнение действия работает автономно в принципе всегда) , а не игнорируется после отработки самого действия (завершения программы). Ну хоть теперь понятно почему такая не понятка была.