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

В этом форуме можно обсудить интерфейс программы, работу встроенных блоков, взаимодейсткие с Ардуино IDE и т.д.
Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13 май 2016, 16:37
Откуда: Казань
Имя: Игорь
Благодарил (а): 1 раз

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

Сообщение brig62 »

[ref]eugeneb[/ref], https://www.youtube.com/watch?v=Z12ADr7s6xY&t=6s посмотрите с 11 по 22 минуты.
Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13 май 2016, 16:37
Откуда: Казань
Имя: Игорь
Благодарил (а): 1 раз

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

Сообщение brig62 »

eugeneb писал(а): 04 янв 2018, 18:36смените оставшиеся FreeLog на /XOR
Вы сами это сделать не в состоянии? Мне проще было таблицу состояний поставить, чем думать у какого блока что надо инвертировать. На суть работы это никак не влияет.
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

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

Сообщение eugeneb »

Lisica писал(а): 04 янв 2018, 18:37Видеоурок есть на ютубе
Очень полезный ответ! Очень содержательный! Просто исчерпывающий!

Товарищи, не торопитесь с ответом. Задача не тривиальная. Тут подумать надо.
С уважением,
Евгений Бобков
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

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

Сообщение eugeneb »

[ref]brig62[/ref], Спасибо! А понял, я просто сначала не заметил где записаны значения выходов.
С уважением,
Евгений Бобков
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

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

Сообщение eugeneb »

brig62 писал(а): 04 янв 2018, 18:43Вы сами это сделать не в состоянии? Мне проще было таблицу состояний поставить, чем думать у какого блока что надо инвертировать. На суть работы это никак не влияет.
Вот, сделал это за вас. Разбираюсь дальше.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
С уважением,
Евгений Бобков
Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13 май 2016, 16:37
Откуда: Казань
Имя: Игорь
Благодарил (а): 1 раз

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

Сообщение brig62 »

eugeneb писал(а): 04 янв 2018, 19:01Вот, сделал это за вас
Не за меня, а для того, кому это нужно. Мне без разницы, какие блоки будут стоять. Лишь бы работало правильно.
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

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

Сообщение Олег »

По идее так должно работать на простой логике, может конечно где и ошибся, со временем, как понимаете не очень.
avtomat.JPG
Красным указаны уровни в состоянии готовности перед пуском.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

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

Сообщение eugeneb »

brig62 писал(а): 04 янв 2018, 19:10Мне без разницы, какие блоки будут стоять. Лишь бы работало правильно.
Не-ет, дружище. В условиях задачи было - найти красивое решение. В данном случае применение FreeLog - не красивое решение. Оно очень не наглядное.
brig62 писал(а): 04 янв 2018, 19:10а для того, кому это нужно.
Я встречал такую позицию среди писателей пользовательских блоков.
И она мне ОЧЕНЬ не нравится. Автор должен стремиться к совершенству своих перлов.

А в вашей программе я разобрался. И это решение мне кажется очень красивым. Собственно ради поиска таких решений я и затевал эту тему.
Я ещё попробую её на макете.
Справдливости ради хочу уточнить: на Шаге1 сигнал Н2 и на Шаге 3 сигнал К1 - это описки?
С уважением,
Евгений Бобков
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

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

Сообщение eugeneb »

[ref=#aa0000]Олег[/ref], вообще не ожидал такого решения!
Я ошибок не вижу. ЗдОрово!

Ну, собственно, триггеры это и есть элементы памяти.
Последний раз редактировалось eugeneb 04 янв 2018, 20:16, всего редактировалось 1 раз.
С уважением,
Евгений Бобков
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

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

Сообщение eugeneb »

Подождём несколько дней, может ещё кто-нибудь чего-нибудь предложит. А потом я выложу своё решение, которым пользовался до сих пор.
Не красивое. Но, работает. Но, не красивое.
С уважением,
Евгений Бобков
Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13 май 2016, 16:37
Откуда: Казань
Имя: Игорь
Благодарил (а): 1 раз

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

Сообщение brig62 »

eugeneb писал(а): 04 янв 2018, 19:57на Шаге1 сигнал Н2 и на Шаге 3 сигнал К1 - это описки?
Описок я не исключаю. Но в самом начале предупредил, что концевики переименовал. Для лучшего восприятия. К1 это конечное положение М1. Н1 начальное его же. К2 и Н2 соответственно к М2.
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

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

Сообщение eugeneb »

[ref]brig62[/ref], Я имею ввиду их значения. Мне кажется они оба должны быть True ?
С уважением,
Евгений Бобков
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

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

Сообщение Олег »

eugeneb писал(а): 04 янв 2018, 19:59 вообще не ожидал такого решения!
Я в свое время делал автоматику для станков еще на реле, так что привык идти от простого к сложному. Лет пятнадцать назад делал четырехголовочную фрезу на пневматике с возможностью раздельного управления головками, около 40 реле в нем было, месяц или полтора угробил на разработку и монтаж. Сейчас на контроллере максимум неделя с монтажем ушла-бы, ну на отладку еще может парочку.

Кстати нашел один недочет. При данной реализации если авария промелькнет быстро и цилиндры не успеют вернуться обратно, то после снятия аварии цилиндры опять пойдут вперед. Для того чтобы этого не было аварией надо включить SR триггер, а сброс его делать блоком И на вход которго поданы Н1 и Н2.
Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13 май 2016, 16:37
Откуда: Казань
Имя: Игорь
Благодарил (а): 1 раз

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

Сообщение brig62 »

Олег писал(а): 04 янв 2018, 19:30По идее так должно работать
eugeneb писал(а): 04 янв 2018, 19:59вообще не ожидал такого решения!
В данном случае с двумя выходами не очень тяжело у Олега получилось. А если усложнить задачу до электродвигателей? А если потом еще чего нить навернуть в условие? Схема начнет расти в прогрессии. Но за пример, конечно, большое спасибо. Познавательно.
Олег писал(а): 04 янв 2018, 20:22автоматику для станков еще на реле
Вот и я хотел сказать, что раньше релейные схемы станками управляли. Огромные шкафы стояли и щелкали. И ведь работало!
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

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

Сообщение Олег »

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

Отправлено спустя 4 часа 15 минут 53 секунды:
А по поводу SFC не знаю, не было ни одной задачи которую я не мог сделать с помощю FBD или Ladder. Описание SFC и IL читал, но мне не понравились, скорее всего потому что текстовое программирование не это мое. Но я разговаривал с программистами кто пишет большие программы для контроллеров, так многие из них если есть возможность, используют FBD или Ladder только потому что через какое-то время если надо что-то дополнить или переделать, то в визуальной программе разобраться намного проще чем в текстовой, как ты ее не комментируй.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

А вот и мой, с единственным триггером по "Пуск".
На всех пинах включена подтяжка и анти-дребезг.(немного увеличивает размер)
Скетч использует 1988 байт (6%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 48 байт (2%) динамической памяти, оставляя 2000 байт для локальных переменных.
Без подтяжек и антидребезга:
Скетч использует 1208 байт (3%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 12 байт (0%) динамической памяти, оставляя 2036 байт для локальных переменных.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

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

Сообщение Олег »

О чем я и говорил, ждем еще 96 решений :victory:
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

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

Сообщение eugeneb »

[ref]Sancho[/ref], Спасибо, что приняли участие! Вы предложили как раз тот метод, который я сам использовал с тех пор как появились условные карты.
То есть, разбиваем весь процесс на стадии(шаги), вводим переменную Stage(Step) И дальше каждую стадию выполняет отдельная карта. Такой себе псевдо-SFC.
Только я все исполнения выношу на одну отдельную карту. Типа такого:

[spoiler]
Fig4.png
[/spoiler]

[ref]Sancho[/ref], вы не дописали свой вариант. Скажите, что вы имели ввиду под пятым шагом?


[ref=#aa0000]Олег[/ref], я думаю это всё. Не будет 96 способов.
Если только какая-нибудь извращённая FreeLog с триггерами и счётчиками.
Ну, вдруг кто-то ещё что-нибудь придумает. Подождём денёк-другой. Ещё не все вышли из праздников :)

Итак, пока имеем три варианта:
От [ref]brig62[/ref], на основе Командоаппарата;
от [ref=#aa0000]Олег[/ref], на жёсткой логике;
от [ref]Sancho[/ref] (и от меня), на условных картах.

Для полноты картины здесь конечно не хватает варианта на SFC.
Если кто пишет на CoDeSys, может предложите свой вариант на SFC?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
С уважением,
Евгений Бобков
Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13 май 2016, 16:37
Откуда: Казань
Имя: Игорь
Благодарил (а): 1 раз

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

Сообщение brig62 »

eugeneb писал(а): 06 янв 2018, 16:07Подождём денёк-другой. Ещё не все вышли из праздников
А что потом? Раздача ценных призов и дипломов?
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 486
Зарегистрирован: 15 авг 2016, 11:20
Откуда: Нижний Новгород
Имя: Евгений
Благодарил (а): 1 раз

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

Сообщение eugeneb »

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

Вот и Автор (да продлятся его годы!), взял да и подарил людям такую замечательную программу. Прямо как Прометей подарил огонь :)

Этот раздел форума посвящён обсуждению возможностей FLProg.
Я в самом деле интересуюсь эффективным программированием конечных автоматов. Благодаря вам, я узнал много нового. Кто-то ещё что-то узнает. И сейчас и позже.

Для кого-то это просто трёп. Для кого-то - исследование операций.
Мне, например хочется сравнить предложенные варианты. Для меня пока лучший способ не очевиден. Все кто в этом участвует - помогает мне и всем интересующимся. По-моему это отличное применение форума. А?
С уважением,
Евгений Бобков
Ответить

Вернуться в «Обсуждение программы FLProg (Не багтрекер, и не хотелки. Делимся опытом!!)»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя