1

Тема: порядок обработки диаграммы

Хочется понять, есть ли процедуры отключающие часть диаграммы ? Или это не возможно, например есть участки диаграммы которые выполняются при заведенном двигателе, а есть которые при остановленном. Про синхронизацию я кое что понял. А вот про последовательность обработки блоков и затрачиваемое на это время - не понятно. Если возможно опишите идеологию этой процедуры.
Вопрос связан с тем, что выяснилось, что CCM теряет примерно 50% посылок, отключение, снятием звездочки, просто скрывает посылку, но не облегчает режим приема данных, посылки все равно теряются. Все это на медленной 100 кбит шине.

2

Re: порядок обработки диаграммы

Функциональные блоки диаграммы, при проходе диаграммы в контроллере  будут выполняться в том же самом порядке, в котором они выполняются в  симуляторе CannyLab (подробнее про порядок выполнения функциональных  блоков диаграммы см. стр 8 руководства CannyLab)
Контроллер  выполняет каждый функциональный блок диаграммы на каждом проходе  вычислений, исключение составляют только блоки "Установка значения",  которые выполняются лишь единожды после каждого сброса контроллера.  Возможность исключать какие-либо блоки из цикла исполнения в  языке CFD  не предусмотрена. Время, затрачиваемое на исполнение контроллером  каждого функционального блока диаграммы зависит от многих факторов,  самым существенным из которых является число входов/выходов  функционального блока. Каждый функциональный блок исполняется  контроллером от ~20 (большинство трехвыводных блоков) до ~120  (коммутатор 1-в-16) микросекунд.
Число миллисекунд, затрачиваемое  контроллером на исполнение полного цикла диаграммы, включая время опроса  всех задействованных драйверов, доступно для чтения по адресу «Регистр  контроля длительности программного цикла». Практически, цикл диаграммы  из  порядка 420 функциональных блоков исполняется CANNY 7 за ~15  миллисекунд.
CCM будет работать максимально эффективно, если  выбрать (отметить звездочкой) строго ОДИН идентификатор, в этом случае  будет задействован аппаратный фильтр CAN и сообщения с другими  идентификаторами будут отбрасываться на аппаратном уровне. Мы планируем в  дальнейшем повысить гибкость использования в CCM аппаратной фильтрации  сообщений.
Кроме того, следует обратить внимание на то, что CAN  согласно своему стандарту не гарантирует доставку сообщений более чем  одному получателю. Если хотя бы один узел подтвердил прием сообщения,  оно считается доставленым. Таким образом, если адресат в автомобиле  принял сообщение а монитор шины, тот же CCM не принял, то сообщение  будет потеряно монитором безвозвратно. В связи с этим, невозможно  гарантировать прием CCM или любым другим средством мониторинга CAN  постоенном на базе стандартного CAN-процессора 100% сообщений сети.
Думаю, небезынтересным будет и тот факт, что передача сообщений с одинаковым ID несколькими узлами сети так же, в общем случае, нарушает стандарт CAN, так как может вызвать коллизии, потери сообщений и ошибки  из за нарушения арбитража шины.

3

Re: порядок обработки диаграммы

Да, я читал руководство, кроме того немного представляю что такое CAN smile. К этому вопрос - если два узла отправляют сообщения с одним идентификатором, то в результате этой коллизии они должны "замолчать". ССM так и делает, что кстати не удобно. Если же загружена другая, пользовательская диаграмма, то, похоже, устройство этому правилу не следует, и это ,скорее, хорошо. Как я понял из ответа и руководства  "обсчет" каждого узла диаграммы происходит при каждом проходе по диаграмме и как понял уже только из ответа никакой оптимизации и возможности временного отключения некоторых участков диаграммы нет - это плохо, поскольку не дает возможности ускорить обработку критических участков диаграммы.
Есть другой способ попробовать ускорить работу устройства - аппаратный фильтр кан. Но оказалось, что использовать его можно только статически, проинициализировать один раз с помощью блоков "установка значения". Поскольку если использовать фильтры динамически, то каждый раз, при установке значений в регистры фильтра происходит ресет всего кан блока устройства. То есть да же если фильтры уже настроены на фильтрацию нужным образом и диаграмма повторно записывает теже самые настройки, происходит  ресет буфера приема кан. Возможно это какая то ошибка ?

4

Re: порядок обработки диаграммы

Уже к ближайшему релизу CannyLab постораемся уделить пристальное внимание работе с аппаратными фильтрами CANNY 7, надеемся сделать работу с ними максимально удобным для пользователя.

5

Re: порядок обработки диаграммы

Опишите пожалуйста последовательность построения диаграммы работы с драйвером автомобиля,так как в справочном руководстве про этот момент ничего не написанно! Например: VW Passat B6, при открытии водительской двери мигание красным светодиодом!

6

Re: порядок обработки диаграммы

Порядок работы сдедующий: при помощи функционального блока "Установка занчения" задаете значение регистра "Регистр установки модели автомобиля" константой соответсвующей модели автомобиля, в данном случае "Volkswagen Passat B6 ('05-)" и используете необходимые вам регистры драйвера автомобиля для построения вашей диаграммы. Ниже пример диаграммы включения зеленого светодиода с частотой три раза в секунду при открытой водительской двери.
http://forum.canny.ru/files/drdoor.png
Опубликованые драйвера и перечень поддерживаемых ими регистров находится в папке "ccx" пакета CannyLab.
В настоящее время драйвер автомобилей VAG не опубликован, выложим его сразу после праздников. Однако он вполне работоспособен, и если вы готовы его исследовать его прямо сейчас без документации, но с моей помощью, напишите мне на info@canny.ru
PS: Просьба не писать в темы форума комментарии к ним не относящиеся! Для новых вопросов пожалуйста создавайте новые темы.