26

Re: Программирование CANNY5 DUO

Ошибку понял.
И есть апдейт ситуации. Сейчас собрал схему полностью: фильтр в разрыв линии CAN, анализатор параллельно фильтру.
Диаграмма на которой пробовал запустить изначально (http://forum.canny.ru/viewtopic.php?pid=5111#p5111).
И все совершенно нормально заработало. Фильтр корректно обрабатывает правило, устройство корректно реагирует.

Вся разница с неудачной попыткой в том, что на выходе фильтра кроме анализатора присутствует штатное устройство автомобиля.

27 (26-04-2016 14:39:35 отредактировано Dark-angel)

Re: Программирование CANNY5 DUO

Константин, проверьте пожалуйста мои выводы. Разбираю по блочно логику включения входа 8 и светодиода  из схемы http://forum.canny.ru/viewtopic.php?pid=5111#p5111

1 блок. Если  значение Can0 IDL - равно 0x0308 - возвращаем в результат 1
2 блок. Если  Х=1 а  Y Рег данные есть ( А какие данные с Can0 он берет? где указано ?)  результат - перемножение  = 1
3 блок.  Если Е =1,  копируем (что за значение копируем откуда оно?)  иначе 0
4 блок. Сдвигаем бит  на 8 бит то есть делаем  IDXXX 00 00 00 0e
5 блок.  Если  оно больше либо равно 0х000Е (14) заводим зеленый диод и   на вых канала 8 -

после всех раздумий вот вопрос. В данную блок схему - диаграмму попадают ТОЛЬКО сообщения из отборов? или все таки там все сообщения с шин?

28

Re: Программирование CANNY5 DUO

Dark-angel пишет:

1 блок. Если  значение Can0 IDL - равно 0x0308 - возвращаем в результат 1
2 блок. Если  Х=1 а  Y Рег данные есть ( А какие данные с Can0 он берет? где указано ?)  результат - перемножение  = 1
3 блок.  Если Е =1,  копируем (что за значение копируем откуда оно?)  иначе 0
4 блок. Сдвигаем бит  на 8 бит то есть делаем  IDXXX 00 00 00 0e
5 блок.  Если  оно больше либо равно 0х000Е (14) заводим зеленый диод и   на вых канала 8 -

Принципы работы каждого типа блока, с примерами:
http://wiki.canny.ru/index.php?title=%D … 0%B0%D0%BC

Подробнее про драйвер CAN:
http://wiki.canny.ru/index.php?title=CA … %D1%80_CAN


Dark-angel пишет:

В данную блок схему - диаграмму попадают ТОЛЬКО сообщения из отборов? или все таки там все сообщения с шин?

Только из отборов, об этом я уже говорил выше: http://forum.canny.ru/viewtopic.php?pid=5105#p5105

29

Re: Программирование CANNY5 DUO

Gvidonovich пишет:

И все совершенно нормально заработало.

Поздравляем вас с успехом!

Gvidonovich пишет:

Вся разница с неудачной попыткой в том, что на выходе фильтра кроме анализатора присутствует штатное устройство автомобиля.

Возможно причина в анализаторе или его настройках.

30 (26-04-2016 16:41:05 отредактировано Dark-angel)

Re: Программирование CANNY5 DUO

Спасибо. Если данные в диаграмму попадают ТОЛЬКО из отбора тогда зачем все первые несколько блоков и тригеров.  Разве вот так не заработает?

http://prntscr.com/ax1slo

UPD смотрю  примеры, в большинстве случаев есть так называемы Регистр    Возвращаемые значения
Регистр наличия принятых данных CAN1
1    =    в буфере приема соответствующего интерфейса драйвера CAN находится полученное сообщение, данное значение появляется в регистре на один цикл выполнения диаграммы сообщая об актуальности данных, находящихся в буфере приема;
0    =    в буфере приема соответствующего интерфейса драйвера CAN нет актуальных данных.

Зачем его везде вставляют объясните пожалуйста, чем чревато его исключение из диаграммы?

31

Re: Программирование CANNY5 DUO

Dark-angel пишет:

Разве вот так не заработает?

Гарантировать не могу, так как:
1. В рассматриваемой в данной теме форума диаграмме было настроено два отбора, и для нее проверка ID принятого сообщения необходима, так  как в диаграмму будут поступать сообщения с двумя разными ID.
2. Значения в регистрах чтения CAN определены тогда и только тогда , когда в "Регистре наличия принятых данных CAN" содержится значение отличное от нуля. Именно в этот момент их и запоминает D-триггер на диаграмме. В остальное время  в регистрах чтения CAN может быть всё что угодно.

32 (26-04-2016 16:52:48 отредактировано Dark-angel)

Re: Программирование CANNY5 DUO

Константин, а можно по русски простым языком для ламеров и нубов объяснить на пальцах ЗАЧЕМ эти 2 параметра нужны
http://prntscr.com/ax27co
Вернее даже зачем нужен Рег.есть данные Can0

прям вообще для пока плохо разбирающихся в программировании.  Ну не понимаю я технический ваш язык...   Вики на этот счет вообще сложный.. Не для нормального человека. Если значения и операции блоков я усвоил то вот регистры и каны нет. Не понимаю.

33

Re: Программирование CANNY5 DUO

Ну давайте так:

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

И вот вы ожидаете курьера у себя дома, настороженно прислушиваясь к звукам на лестничной клетке, так как дверной глазок вам испортили хулиганы.

Курьер уже таскает из Газели коробки к вам на этаж, у него одна накладная и посылку он может отдать только целиком, все семь мест, под вашу подпись, иначе будет уволен с волчьим билетом.

Наконец, все коробки у вас перед дверью и курьер нажимает кнопку вашего звонка, чудом не пострадавшую от рук хулиганов. Вы слышите звонок ("Регистр наличия принятых данных CAN" = 1), нетерпеливо распахиваете дверь и получаете все семь коробок разом:

кабину из коробки         "Регистр принятого сообщения CAN IDH"
багажник из коробки     "Регистр принятого сообщения CAN IDL
пульт из коробки            "Регистр принятого сообщения CAN ERL
одно колесо из коробки "Регистр принятого сообщения CAN D1:D0
одно колесо из коробки "Регистр принятого сообщения CAN D3:D2
одно колесо из коробки "Регистр принятого сообщения CAN D5:D4
одно колесо из коробки "Регистр принятого сообщения CAN D7:D6

Вы получили подарок своей мечты, курьер получил вашу подпись и чаевые, все довольны, все смеются, все идут обедать.

Но что будет, если вы откроете дверь не дождавшись звонка курьера?
(используете содержимое регистров принятого сообщения при "Регистр наличия принятых данных CAN1" = 0)

За дверью могут оказаться коробки предназначенные вашему соседу по лестничной клетке. Вы их заберете. Вы же не сможете их не забрать. Это обязательно вскроется и ваша репутация пострадает.

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

Ну и наконец - хулиганы. В момент, когда вы неожиданно откроете дверь, за дверью могут оказаться они и внезапно попросить у вас закурить.

Да мало ли что еще может случиться, когда вы попытаетесь использовать данные из регистров принятого сообщения CAN при "Регистр наличия принятых данных CAN" = 0.

34 (26-04-2016 18:33:11 отредактировано Dark-angel)

Re: Программирование CANNY5 DUO

резюме.
Регистр наличия принятых данных CAN" = 1
говорит о том что цикл Активации отбора в диаграмму одного пакета отработал по всем параметрам и все значения по которым мы ищем пакет полностью в наличии по списку из накладной (отбору) 
Каждый раз открывая дверь мы должны получить 1 полный набор выставленных условий.......
спасибо.

35

Re: Программирование CANNY5 DUO

Возникла необходимость сделать постоянное питание для контроллера.
Правильно понимаю, для реализации перехода в режим энергосбережения при отсутствии обмена по CAN достаточно в диаграмме добавить такой фрагмент?

Вложений в сообщении

Иконка вложения Sleep_mode.cfd 699 б, скачивался 309 раз, последний раз 2016-06-01 

36

Re: Программирование CANNY5 DUO

Gvidonovich пишет:

Возникла необходимость сделать постоянное питание для контроллера.

Актуальное описание режима пониженного энергопотребления CANNY5 duo можно найти на wiki.canny.ru.

37

Re: Программирование CANNY5 DUO

Еще раз посмотрел доку) Явных ляпов не вижу.
Если правильно понимаю, то диаграмма во вложении должна перевести контроллер в сон со второго цикла выполнения. Спать он будет 1024мсек, потом "проснется" по активации драйвера CAN в начале диаграммы и последним шагом снова уснет на 1024 мсек. И далее в цикле. Так?

Вложений в сообщении

Иконка вложения filter_trigger_with_sleep.cfd 3.02 кб, скачивался 304 раз, последний раз 2016-06-02 

38

Re: Программирование CANNY5 DUO

Gvidonovich пишет:

Еще раз посмотрел доку) Явных ляпов не вижу...

Явных ляпов нет. Но по ссылке из моего предыдущего ответа для корректной работы с режимом пониженного энергопотребления рекомендуется использовать регистр активности интерфейсов контроллера - он является универсальным и лучше подходит для этого.

Gvidonovich пишет:

...Если правильно понимаю, то диаграмма во вложении должна перевести контроллер в сон со второго цикла выполнения...

После подачи питания, контроллер уснет только через 60с при условии, что CAN бездействует. Если CAN активен, то переход в режим пониженного энергопотребления выполнен не будет.

Gvidonovich пишет:

...Спать он будет 1024мсек, потом "проснется" по активации драйвера CAN в начале диаграммы и последним шагом снова уснет на 1024 мсек. И далее в цикле...

Спать контроллер будет до появления активности CAN, периодически просыпаясь, с интервалом ~1024мс, на 1 цикл выполнения диаграммы.
При появлении активности CAN контроллер немедленно выходит из режима сна и переходит в рабочий режим. Следующее засыпание произойдет только по истечении 60с после завершения активности CAN.

ВНИМАНИЕ! Для работы с контроллером CANNY5 duo используйте актуальное системное программное обеспечение (ccx) из темы http://forum.canny.ru/viewtopic.php?id=233

39

Re: Программирование CANNY5 DUO

Просто регистр активности интерфейсов воспринял как контроль активности физических интерфейсов (проводных выводов контроллера), а их состояние в данном контексте может быть любым, поэтому проверяю только активность can0.
И вопрос по системному ПО. Сейчас контроллер работает с ПО из комплекта КанниЛаб 1.19. Диаграмма используется та что вложении, кроме фрагмента энергосбережения. Все работает нормально. Насколько необходимо обновлять программу?

40

Re: Программирование CANNY5 DUO

Gvidonovich пишет:

...Насколько необходимо обновлять программу?

Рекомендуется всегда использовать самые актуальные версии ПО, т.к. его доработка происходит постоянно.
Информация о изменениях в системном ПО отражается в специальных файлах, которые находятся в соответствующих папках среды разработки CannyLab.
Например для CANNY5 duo: ..\cannylab_v1_21\ccx\canny5duo\c5duoccx_readme.pdf

41 (25-07-2016 10:19:10 отредактировано Gvidonovich)

Re: Программирование CANNY5 DUO

Все есть вопрос по диаграмме с энергосбережением.
Основная функциональная часть работает ок, она и не менялась. А вот в энергосберегающий режим устройство не переходит. Это видно по светодиоду. Он остается гореть даже спустя час неактивности CAN.
Диаграмма во вложении.
PS Системное ПО последняя актуальная версия.

Вложений в сообщении

Иконка вложения filter_trigger_with_sleep(1).cfd 3.02 кб, скачивался 307 раз, последний раз 2016-07-25 

42

Re: Программирование CANNY5 DUO

Gvidonovich пишет:

Все есть вопрос по диаграмме с энергосбережением.
Основная функциональная часть работает ок, она и не менялась. А вот в энергосберегающий режим устройство не переходит. Это видно по светодиоду. Он остается гореть даже спустя час неактивности CAN.
Диаграмма во вложении.
PS Системное ПО последняя актуальная версия.

В диаграмме работа контрольного светодиода контроллера никак не связана с режимом энергопотребления. Он будет гореть пока выполняется условие "Меньше" (блок №5). Переход в сон должен осуществляться нормально.
Проверить переход в спящий режим дополнительно можно с помощью мультиметра по потреблению контролера, при отключенном CAN (только под питанием).

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

43

Re: Программирование CANNY5 DUO

Те режим энергосбережения не распространяется на индикацию? Только на процессор?

44

Re: Программирование CANNY5 DUO

Денис, еще вопрос.
Внес изменение в диаграмму, чтоб по светодиоду было видно спит/не спит контроллер.
Не могли бы глянуть? Все нормально будет работать?

Вложений в сообщении

Иконка вложения filter_trigger_with_sleep(2).cfd 3.37 кб, скачивался 298 раз, последний раз 2016-07-25 

45

Re: Программирование CANNY5 DUO

Gvidonovich пишет:

Те режим энергосбережения не распространяется на индикацию? Только на процессор?

Индикацией управляет пользователь из диаграммы. Пока в регистре включения светодиода "1" - он будет включен. Если требуется выключить индикацию при переходе в сон, следует добавить соответствующее условие, используя регистр контроля режима пониженного энергопотребления.

46

Re: Программирование CANNY5 DUO

Gvidonovich пишет:

Денис, еще вопрос.
Внес изменение в диаграмму, чтоб по светодиоду было видно спит/не спит контроллер.
Не могли бы глянуть? Все нормально будет работать?

В таком варианте при переходе в сон будет выключен и канал №8.
Блок №11 не обязателен, достаточно было бы просто поставить инверсию на вход "Значение X" блока №10.
Переключите регистр выходного значения канала №8 на выход блока №5, а регистр светодиода оставьте на выходе блока №10 - получите ожидаемый результат - светодиод будет включен только в неспящем режиме, при выполнении условия блока №5.

47

Re: Программирование CANNY5 DUO

Спасибо!

48

Re: Программирование CANNY5 DUO

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

49

Re: Программирование CANNY5 DUO

Gvidonovich пишет:

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

Потребление в режиме сна отличаться будет. При "1" в регистре выходного значения канала №8 потребление будет больше. На сколько больше, зависит от характеристик подключенной к каналу нагрузки.

50 (16-11-2016 18:27:58 отредактировано Dark-angel)

Re: Программирование CANNY5 DUO

Добрый день
подскажите пожалуйста что не так?

Вложений в сообщении

упрощенка.png, 27.41 кб, 559 x 406
упрощенка.png 27.41 кб, скачивался 328 раз, последний раз 2016-11-16