1 (31-05-2016 11:17:48 отредактировано grantik.s)

Тема: Датчик положения руля

Добрый день! Практически изучил наизусть руководство пользователя и так не получается решить несложную задачу.
По ID 025 транслируются данные датчика. Необходимо, чтобы при значении датчика в диапазоне от 0х003С до 0х0190 активировался выход 2, но при условии что на входе 0 низкий уровень. И тоже самое когда в диапазоне от0х0FC4 до 0х0Е70 активировался выход 3 при наличии низкого уровня на входе 1.

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

Иконка вложения #1.cfd 1.96 кб, скачивался 347 раз, последний раз 2016-05-31 

2

Re: Датчик положения руля

Прежде всего обратите внимание на порядок байт данных в регистре чтения CAN. В нем они записываются в обратном порядке - D1 : D0. Соответственно, при их сравнении (блоки 4,5 и 9,10) байты констант (Значение Y) нужно указывать в таком же порядке.
Каналы 0 и 1 сконфигурированы как стандартные отрицательные входы, т.е. если на них установится потенциал GND в регистре входного значения каналов будет выставлено значение "1". Тогда, если требуется выдавать управляющий сигнал при выполнении условия попадания значения из CAN в нужный диапазон и наличии низкого уровня на нужном входе, то блоки 7 и 9 (Логическое не), не нужны, их можно убрать и регистры входных значений канала 0 и 1 подключить к блокам 8 и 13, соответственно, напрямую.
А в остальном диаграмма составлена корректно.

3

Re: Датчик положения руля

Спасибо за пояснения и скорый ответ. Буду пробывать.

4

Re: Датчик положения руля

Не заметил сразу.
На выходах блоков №8 и №13 нужно заменить регистры конфигурации каналов на регистры выходных значений этих каналов.

5

Re: Датчик положения руля

Спасибо. Понял.

6

Re: Датчик положения руля

Денис, спасибо Вам за подсказку. Схема начала подавать признаки жизни, но пока работает не правильно. Проверьте пожалуйста второй вариант. Может пнете в нужном направлении.

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

Иконка вложения #2.cfd 1.85 кб, скачивался 331 раз, последний раз 2016-05-31 

7

Re: Датчик положения руля

Поскольку диаграмма работает с диапазонами значений, то и задавать их нужно в нормальном виде, а полученные из CAN данные привести к такому же виду.
Нужно выходное значение блока 4 (триггер D) модифицировать с помощью циклического сдвига, например вправо, на 8 бит, поменяв местами байты D1 и D0 и получив таким образом значение в виде D0 : D1. И это значение сравнивать с константами в исходном виде, т.е. от 0х003С до 0х0190 и от0х0FC4 до 0х0Е70.

8

Re: Датчик положения руля

Еще раз спасибо. Разобрался. Все работает. Правда немного подправил диапазон. Прошу строго не судить это мой первый опыт.

9

Re: Датчик положения руля

Для 1 раза очень неплохо.
Успехов в дальнейшем освоении!