Страница 4 из 4

FLProg для конечных автоматов, учебная задача

Добавлено: 06.01.2018{, 18:39}
Олег
eugeneb писал(а):
06.01.2018{, 18:05}
Для меня пока лучший способ не очевиден
Тут как подходить. С точки зрения заказчика все способы равнозначны, так-как прошитый любым решением контроллер удовлетворяет ТЗ. Для заказчика лучшим будет более дешевый.
Если подходить сточки зрения экономии места, то это важно только в больших проектах когда не хватает ресурсов контроллера, И в этом случае мой вариант может быть будет выигрышнее (а может и нет), потому что обычно не хватает памяти переменных, хотя это и от используемых блоков зависит.
И вообще в программировании нет лучшего решения, всегда можно сделать немного по другому и чуть улучшить и это может растянуться на годы.

FLProg для конечных автоматов, учебная задача

Добавлено: 06.01.2018{, 18:39}
brig62
eugeneb, Тогда непонятна фраза
eugeneb писал(а):
06.01.2018{, 16:07}
Подождём денёк-другой.
Как будто что то потом произойдет значительное. Или
eugeneb писал(а):
06.01.2018{, 18:05}
хочется сравнить предложенные варианты.
Это оно и есть? Тогда по каким критериям судить? Для каждого лучший тот вариант, которые ему удобнее.
Вот Sancho, горд тем, что его код
Sancho писал(а):
05.01.2018{, 10:42}
(3%) памяти устройства.
Спорить трудно. В больших проектах это важно. Но мне лично проще Мегу поставить и не думать об этом. Да и проетов больших у меня не ожидается.

FLProg для конечных автоматов, учебная задача

Добавлено: 06.01.2018{, 18:54}
Олег
Не везде Мега физически влезет туда куда встанет Уно, Про мини или Нано. Так что иногда приходится поджиматься и на это уходит значительное котичество времени. Один раз вообще проект по новой пришлось переписывать.

FLProg для конечных автоматов, учебная задача

Добавлено: 06.01.2018{, 20:05}
eugeneb
brig62 писал(а):
06.01.2018{, 18:39}
eugeneb писал(а): ↑Сегодня{, 18:05}
хочется сравнить предложенные варианты.
Это оно и есть? Тогда по каким критериям судить? Для каждого лучший тот вариант, которые ему удобнее.
А, я понял. Хочется как-бы логически завершить этап (условный, конечно) сбора вариантов, а потом перейти к этапу тестирования или сравнения. У меня нет готового плана. Я не программист и тем более не тестировщик. Сообща что-нибудь придумаем.

Например, я хотел бы дать пару усложнений алгоритма и посмотреть насколько легко их можно внедрить в предложенные варианты.
Уже предлагается сравнивать требуемые ресурсы. Можно смотреть на удбство и наглядность программы, что даёт надёжность и скорость программирования или модификации.

Если удастся выработать хороший подход к автоматам, то и SFC не нужен будет.
Вобщем, мы сами себе хозяева...

Да и просто, мне нравится наш неспешный разговор специалистов.

FLProg для конечных автоматов, учебная задача

Добавлено: 06.01.2018{, 20:30}
Axelforce
Олег, обратите внимание на сие чудо китайских технологий, место экономит.

FLProg для конечных автоматов, учебная задача

Добавлено: 06.01.2018{, 20:43}
Олег
Тогда такая Мега стоила раз в пять дороже Про Мини, как сайчас не знаю.

Конечный автомат на командоаппарате

Добавлено: 07.01.2018{, 19:15}
ksandr13
Хочу поделиться своими мыслями.
Когда то давным давно, когда я не знал что в природе существуют микроконтроллеры, мы с друзьями делали достаточно сложные штуки на так называемых микропрограмных автоматах на ПЗУ. Выглядит он примерно вот так:
image031.gif
image031.gif (10.09 КБ) 1249 просмотров
Суть работы в том, что часть битов шины данных используется для хранения адреса перехода к следующему шагу. Свободная часть шины данных используется для нужд устройства.

В командоаппарате легко реализовать тот же принцип:
pic1.png
pic1.png (5.58 КБ) 1249 просмотров
pic.gif
В данном случае программа выполняется последовательно, но возможно сделать практически любой алгоритм (переходы и циклы).

FLProg для конечных автоматов, учебная задача

Добавлено: 09.01.2018{, 09:41}
Sancho
Олег писал(а):
06.01.2018{, 18:54}
Не везде Мега физически влезет туда куда встанет Уно, Про мини или Нано. Так что иногда приходится поджиматься и на это уходит значительное котичество времени. Один раз вообще проект по новой пришлось переписывать.
Полностью согласен. На одном дачном посёлке видел систему управления насосами водоснабжения в которой была установлена ATtiny в корпусе от промежуточного реле Finder 55.34, вставлена в цоколь (релейную базу) и благополучно всем управляла.
А памяти в ATtiny не особо, поэтому изначально просчитываешь минимальные размеры кода.
Кстати, обновлённый вариант :) Даже триггер был лишним ( праздники кончились, мозг ожил :haha: )
Скетч использует 1170 байт (3%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 10 байт (0%) динамической памяти, оставляя 2038 байт для локальных переменных.
Можно ещё немного переделать, но FLProg не хочет при компиляции выполнять по одному условию if сразу два действия. Править ручками. Результатом будет меньшее время цикла программы.
eugeneb писал(а):
06.01.2018{, 16:07}
Sancho, вы не дописали свой вариант. Скажите, что вы имели ввиду под пятым шагом?
Пункты из условия
ПунктыПоказать
Алгоритм работы автомата следующий:
1. При включении, оба механизма отвести в начало.
2. При нажатии кнопки ПУСК, механизм М1 двинуть вперёд.
3. Когда М1 дойдёт до конца, механизм М2 двинуть вперёд.
4. Когда М2 дойдёт до конца, вернуть М2 в начало.
5. Когда механизм М2 вернётся в начало, механизм М1 вернуть в начало.
6. Ждать следующего нажатия кнопки ПУСК (перейти к пункту 2).
7. При появлении сигнала АВАРИЯ на любом этапе - немедленно отвести механизмы в начало и больше не двигаться до изчезновения аварийного сигнала.