1 (12-02-2021 14:19:00 отредактировано yurka_)

Тема: Эмулятор блока

Задача:
1) принимать несколько сообщений с разными ID1, ID2 и т.д.
2) разбирать данные из этих сообщений (структура известна)
3) на основании разобранных значений формировать и отправлять 5 сообщении с ID10...ID13 (каждые 10 мс) и с ID14 (каждые 50 мс)

Задача казалась простой. Но в CANNYLab при отсутствии переменных для хранения расчетных значений выходит такой огород...

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

Попытка использовать регистры энергонезависимой памяти тоже безуспешна. При попытке в разных ветках логики записать в один регистр энергонезависимой памяти - ОШИБКА.. Пока придумать какой-либо выход не могу.

Я сильно огорошен примитивностью девайса, вернее примитивностью среды разработки. Описанная задача при программировании на C/C++ решается очень просто...

Может я что-то неправильно понимаю? Или подобные задачи не для CANNY, а для STM32?

2

Re: Эмулятор блока

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

при отсутствии переменных

Аргументом и возвращаемым значением функции/блока является сеть: https://canny.ru/docs/fbd/cfd/#sec--fbd-cfd-set

Зафиксировать значение можно например с помощью функционального блока Триггер-D: https://canny.ru/docs/fbd/triggers/d_flip-flop/

Попытка использовать регистры энергонезависимой памяти тоже безуспешна

Пример использования ЭНП можно найти здесь: https://canny.ru/docs/c7/eeprom/#sec--c7-eeprom-primery

При попытке в разных ветках логики записать в один регистр энергонезависимой памяти - ОШИБКА

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

Похожая на вашу задача разбиралась здесь: https://forum.canny.ru/viewtopic.php?pid=8054#p8054
В теме по ссылке выше много и других примеров отправки сообщений CAN.

Если у вас возникнут затруднения при решении вашей задачи - спрашивайте и прикладывайте к сообщению диаграмму, разберемся.

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

sc.png, 13.49 кб, 633 x 225
sc.png 13.49 кб, скачивался 127 раз, последний раз 2021-02-12