1 (09-05-2022 22:20:51 отредактировано dimamir64)

Тема: Эмулятор дизельного двигателя Perkins

Доброго времени суток
Для отладки разрабатываемого контроллера управления гидравлической станцией
пришлось написать эмулятор дизельного двигателя Perkins
Переписываю систему с контроллера Bosch - импортозамещение smile
Может идея пригодится кому-то smile
Логику приема команд по CAN выделил в составной блок
Ловит простые и Ext пакеты. На выходе индикатор приема команды, длина пакета и данные.
Сделал выход Led. К нему можно подключить светодиод или один из выходов контроллера, а внутри блока подключить к нужной точке. Удобно для отладки...
Режим эмуляции включается/выключается командой по CAN и записывается в энергонезависимую память.
Старт/Стоп производится CAN командой
В состоянии Старт ловим команды по CAN на установку оборотов и с периодом 200 мс отправляем 6 CAN пакетов с состоянием двигателя. Пакеты отправляются с помощью драйвера асинхронной передачи CAN.
Команды на установку оборотов сыпятся постоянно от контроллера гидростанции. После запуска - прогрев, снижение до холостых, в рабочем режиме - изменение оборотов PID регулятором для управления производительностью гидро насосов.
Обороты меняем не чаще чем 1 раз в 500 мс.
Динамичными сделал пока только установку оборотов. Остальные параметры в статике, но легко можно добавить.
Не судите строго, первый проект на таком контроллере.
Очень непривычно программировать - нет скриптов  и мониторинга состояния sad
У большинства конкурентов такие возможности есть...

Модераторское: вынесено в отдельную тему

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

Иконка вложения 7duo Эмулятор дизеля2.cfd 28.1 кб, скачивался 115 раз, последний раз 2022-05-09 

2

Re: Эмулятор дизельного двигателя Perkins

Отличная работа! Спасибо что делитесь своими успехами!

3

Re: Эмулятор дизельного двигателя Perkins

Я сторонник OpenSource...
Очень не хватает возможности создания библиотечных элементов.
В этом простом проекте у меня уже 3 составных блока. А будет намного больше sad
И нет возможности изменения в в блок без удаления остальных. Переименовывать  - не вариант.
Должно изменяться поведение всех блоков...
Очень муторно потом восстанавливать все связи.
Так как сделано у вас невозможно повторное использование.
Думаю добавить библиотечные элементы совсем не трудно