"Первые шаги"

Вопросы от новичков
Evgenich
Рядовой
Сообщения: 4
Зарегистрирован: 24.01.2022{, 08:47}
Репутация: 0
Имя: Евгенич

"Первые шаги"

#301

Сообщение Evgenich » 24.01.2022{, 10:33}

Всем доброго дня. Вот на днях в авто форуме прозвучал вопрос по этой оболочке. Люди ответили, дали рекомендации, но меня заинтриговало данное направление. Сам то я любитель, иногда пишу для себя мелочовку, но тут прям очень интересно стало когда попробовал в флпрог написать. В данной ситуации возникли вопросы. Вроде простые, но нет понимания на них.
1. При компилировании увидел строку генератора. Это что, настройка внешнего тактирования? Ну, как бы можно и так, но уж сильно много команд...
2. При попытке составления блоков не получилось сделать программу в програмие. Получается что такие блоки придется писать в ручную? Ну к примеру, блок сравнения, задано 10 и поступило 11,блок сравнения изменил свое состояние и через переменную мы подали команду на блок исполнения, блок исполнения изменил свое состояние и мы выполнили операцию. Но судя по заданию блок сравнения стоит в начале, блок исполнения в конце. Это получается все что между ними не исполнилось, а исполнется в седующем цикле или программа возвращается к этой строке и продолжает тактовую работу по строкам? Если бы я писал в ручную то исполнительный блок я бы прописал как программа в программе и тогда сравнение изменив свое состояние остановила бы такт перейдя в подпрограмму, управление сработало бы и программа вернулась к строке где прервалась и продолжила бы свою работу.
Я посмотрел не все видео, но основные тезисы усвоил. В принципе нет ни чего сложного, больше похоже на сборку логики, в общей концепции. Создание блоков тоже не вызывает особых сложностей. Если работать в этой среде, в режиме "сваять по быстрому и посмотреть результат" то даже иногда не хочется самому писать, хочется оставить как есть. :smile469: Есть еще вопросы, но буду их смотреть по порядку, дабы не разводить бардак в голове... Спасибо!

evgen123
Рядовой
Сообщения: 93
Зарегистрирован: 23.05.2020{, 13:31}
Репутация: 3
Откуда: Краснодар
Имя: Евгений

"Первые шаги"

#302

Сообщение evgen123 » 24.01.2022{, 10:44}

Evgenich, всегда прикладывайте файл проекта, иначе Вам если и ответят - то на турецкую пасху..

Evgenich
Рядовой
Сообщения: 4
Зарегистрирован: 24.01.2022{, 08:47}
Репутация: 0
Имя: Евгенич

"Первые шаги"

#303

Сообщение Evgenich » 24.01.2022{, 11:38}

evgen123 писал(а):
24.01.2022{, 10:44}
Evgenich, всегда прикладывайте файл проекта, иначе Вам если и ответят - то на турецкую пасху..
Учту, спасибо. Вечером отредактирую и приложу фото и проект.

Naladchik
Лейтенант
Сообщения: 633
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 96
Откуда: Новосибирск
Имя: Павел

"Первые шаги"

#304

Сообщение Naladchik » 24.01.2022{, 12:33}

Evgenich писал(а):
24.01.2022{, 10:33}
... При компилировании увидел строку генератора...
Ну там как бы много чего появляется, вопрос конкретизируйте, о какой строке речь, о каком генераторе.
Evgenich писал(а):
24.01.2022{, 10:33}
...сделать программу в програмие...
В настройках каждой платы есть такие инструменты как "Выполнение по условию", "Выполнять в цикле пока".
Грамотно их используя можно много чего наворотить.
В FLProg весь код можно удобно раскидать на логические блоки (платы) и управлять их работой включая/выключая по необходимости.
Win7-64. FLProg Portable.
Изображение

Аватара пользователя
Dryundel
Полковник
Сообщения: 1674
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 508
Откуда: Ярославль
Имя: Андрей
Контактная информация:

"Первые шаги"

#305

Сообщение Dryundel » 24.01.2022{, 13:09}

Evgenich писал(а):
24.01.2022{, 10:33}
При попытке составления блоков не получилось сделать программу в програмие...
Это получается все что между ними не исполнилось, а исполнется в седующем цикле или программа возвращается к этой строке и продолжает тактовую работу по строкам?
Это возможно.
Когда Вы пишете о подпрограмме, вероятно имеете в виду функцию, которая либо выполняется по какому то условию, либо нет.
Naladchik, рассказал Вам о возможности работы с платами. Это тоже имеет место быть. Плата может выполняться по условию и даже в цикле обусловленном в этой же плате. Однако Вас интересовал немного другой вопрос. На сколько я понял состоит он в том, что бы после выполнения подпрограммы (функции), контроллер должен вернуться в точку с которой ушел в данную функцию, а не продолжил цикл, как это произойдет при работе с платой. Так?

Вот именно для этого есть такая штука как создание пользовательского блока на FBD. Такой блок является именно функцией (подпрограммой). Создается он с помощью тех же штатных блоков. Т.е. в блоке на FBD вы создаете какой то алгоритм и потом используете этот блок в тех местах проекта где это требуется. В скетче же это выглядит как обычная функция(подпрограмма), а отсылки на нее происходят из тех мест где данный блок-FBD вставлен в проект.

Надеюсь доходчиво объяснил.
Evgenich писал(а):
24.01.2022{, 10:33}
Есть еще вопросы, но буду их смотреть по порядку, дабы не разводить бардак в голове...
Вот за это спасибо, ибо из-за сваливания вопросов в кучу, возникает не только в голове но и на форуме. :)
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Evgenich
Рядовой
Сообщения: 4
Зарегистрирован: 24.01.2022{, 08:47}
Репутация: 0
Имя: Евгенич

"Первые шаги"

#306

Сообщение Evgenich » 24.01.2022{, 13:45}

Naladchik, хорошо. По первому вопросу вечером решим, скрин не добавляется.
Посмотрел я платы и условия для них. Ну, не в восторге, честно признаться... Даже незнаю, будет ли это толком работать? Ну одна, ну три, еще может быть. Но допустим с пару десятков условий, ардуинка зависнет же наглухо! Хорошо. Если программа выполнила по условию. К примеру: плата1 и плата5 содержат условия больше или равно, условие совпала на плате1, программа перешла к плате5 по условию, плата5 отработала условие. Далее как будет? Программа перейдет к плате2 или перейдет к плате6?

Отправлено спустя 4 минуты 32 секунды:
Dryundel, вот спасибо! Доходчиво объяснили! Получается что нет. Значит надо самому блок с подпрограммой писать... Жестко и печально. С платами и условиями в принципе, поверхностно понятно... Но как по мне легче блок тогда наверное написать...

Аватара пользователя
Dryundel
Полковник
Сообщения: 1674
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 508
Откуда: Ярославль
Имя: Андрей
Контактная информация:

"Первые шаги"

#307

Сообщение Dryundel » 24.01.2022{, 13:55}

Evgenich писал(а):
24.01.2022{, 13:49}
Значит надо самому блок с подпрограммой писать... Жестко и печально.
Вижу что доходчиво. Но нефига не понятно. :smile171:
В догонку еще раз. Блок на FBD это тот же проект (подпроект) в программе FLProg. Делается он точно так же как и основной проект, из тех же самых штатных блоков FLProg. Ничего писать на C++ не требуется.
Может если попробуете, станет понятней?
Еще доходчивей у меня не получается. Извините.

Отправлено спустя 8 минут 32 секунды:
И еще. Изначально функцией является только блок созданный на FBD. Блоки написанные в Code и Code Pro могут быть функцией только если вы специально их сделаете таковыми. Просто код вставленный в блок Code и Code Pro будет куском кода вставляемым в скетч в каждом месте проекта, где находится этот блок.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Evgenich
Рядовой
Сообщения: 4
Зарегистрирован: 24.01.2022{, 08:47}
Репутация: 0
Имя: Евгенич

"Первые шаги"

#308

Сообщение Evgenich » 24.01.2022{, 14:30}

Dryundel,
Сравнительно понял. Я пробовал для СКАДА накидать простейшую программку, для пробы, получилось частично. Сейчас просмотрел видео и чуть почитал по платам и условию для них, возможно я не дооценил эти возможности... Вечером опробую.
Но честно сказать, да, плохо укладывается в голове такое построение. Как бы привык к более плотной и более логичной структуре. По этому вопросу пока все, надо опробовать.

Еще вопрос, но я сначало в поиске попробую.

Ответить

Вернуться в «Начинающим»