Справка

 Содержание

 Редактор пользовательских блоков
   Редактор Professional
    Основное окно, общие термины и понятия.

Редактор пользовательских блоков на С (Professional).
Общие термины и понятия.


Редактор предназначен для создания пользовательских блоков на языке С. В отличие от редактора Basic, он имеет расширенный функционал, и дополнительные возможности. Редактор доступен в программе FLProg, начиная с версии 7.0.


Основное окно редактора.



Блок, созданный в редакторе, может представлять собой как один блок, так и пакет блоков объединённых общим функционалом. В случае если в пакете содержится один блок, то в библиотеке пользовательских блоков он и представляется как один блок. Если в пакете содержится несколько блоков, то в библиотеке они представляются как папка. Порядок блоков в этой папке, названия, разбивка по подпапкам задается на соответствующей ветке в дереве редактора блока.

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

Блоки входящие в мультиблок могут группироваться в папки (исключительно визуальное разделение для удобства), или группы (логическое разделение).

Блоки перенесённые на схему проекта называются экземплярами блока

Общий принцип построения мультиблока








При создании блока можно использовать параметры – задаваемые пользователем значения, которые можно изменять в процессе создания проекта в FLProg. Параметры разделяются на общие параметры и параметры экземпляра. Существуют общие параметры мультиблока, общие параметры группы, общие параметры блока.

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




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




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




Параметры экземпляра, как и общие параметры блока показываются во всех экземплярах блока. Но при изменении данного параметра он изменяется только в конкретном экземпляре.




При компиляции проекта, для мультиблока формируется два вида вставляемого кода. Общий код, и код каждого экземпляра

Общий код вставляется в скетчь ОДИН раз вне зависимости от количества применённых в проекте экземпляров блоков.

Код каждого экземпляра вставляется в скетчь для каждого экземпляра блока.

Как и в случае параметров, существует общий код мультиблока, общий код группы, общий код экземпляра.

Общий код мультиблока вставляется в код скетча один раз при использовании в проекте любого экземпляра блока входящего в пакет блоков.




Общий код группы вставляется в скетч один раз при использовании в проекте любого из экземпляров блоков входящих в данную группу.




Общий код блока вставляется в скетч один раз при использовании экземпляров данного блока в проекте.




Код каждого экземпляра вставляется в скетч для каждого экземпляра блока, применяемого в проекте




Каждый из этих видов кода разделяется на секции, в соответствии с местом вставки в скетчь

Это секции “Declare”, “Setup”, “Loop”, “Functions”. Они соответствуют секциям в скетче в Arduino IDE.




Каждая секция разбита на участки в соответствии с местом вставки кода в секцию.




Код из Начала секции вставляется в соответствующую секцию скетча до кода, который вставляется компилятором программы FLProg для стандартных блоков.

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

Код секции “Functions” вставляется всегда в конец скетча.

Для кода каждого инстанса в секции “Loop” существует дополнительный участок Место вставки блока. Код из этого участка вставляется в секции Loop скетча в месте вставки конкретного экземпляра блока.




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




Для управления видимостью параметров блока в проекте, наличием входов и выходов у блока в проекте, а также вставкой элементов кода в скетчь используются Условия.

Для создания условий применяются как значения параметров, так и некоторые системные значения проекта. Как и параметры, условия разбиваются на общие условия, и условия каждого экземпляра.

Общие условия мультиблока могут использовать только общие параметры мультиблока, и системные значения проекта. Эти условия могут использоваться для управления в любом инстансе, и для любого элемента кода.




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




Общие условия экземпляра могут использовать системные значения, значения общих параметров данного блока, значения общих параметров всех групп в которые данный инстанс входит, а так же значения общих параметров мультиблока. Эти условия могут применятся для управления в данном блоке.




Условия каждого экземпляра могут использовать системные значения, значение параметров данного экземпляров данного блока, значения общих параметров данного блока, значения общих параметров всех групп в которые данный блок входит, а так же значения общих параметров мультиблока. Эти условия могут применятся для управления в данном экземпляре блока.




Все используемые инстансами библиотеки загружаются в мультиблок.




А в каждом конкретном блоке, указывается, какую библиотеку блок использует. При компиляции проекта выгружаются только те библиотеки, которые используются экземплярами блоков применёнными в проекте.









10

Автор публикации

не в сети 1 неделя

Сергей Глушенко

758
Комментарии: 15Публикации: 389Регистрация: 04-02-2018

53 комментария к “Справка”

  1. ошибка в описании блока «Блок обнаружения изменения числа»

    «Блок служит для обнаружения изменения числа подаваемого на вход «EN» . При изменении значении на выходе»Q» формируется импульс длительностью в один цикл программы. Для блока возможно задание зоны нечувствительности раздельно для каждого направления изменения числа. Эти параметры задаются в редакторе блока.»

    вместо первого «EN»  должно быть  «Value»

    0
  2. что то не так с массивами.
    скетч использовал данные из той же строки другого массива.  менял названия (ставил не совпадающие цифры), удалял/ ставил блоки — (не копировал а притаскивал новый), проверял / менял настройки. есть 3 разных массива. заполненных.  но берёт почему то  из одного … созданного первым.
    костыль  — использование не повторяющихся номеров строк (индексов) .  (помогает)
    ардуино uno. версия FLP- актуал.

    0
  3. Здравствуйте ! Спасибо огромное всем кто внес свой вклад в этот проект! Программа сделана интуитивно понятно и за месяц я дошел до коммуникаций но с протоколом Modbus остановился на ошибке 244 . Scada мастер, Uno слейв  соединены через Max485. Задача кнопкой на Scada включать диод на Uno и на оборот. Подскажите пожалуйста возможные решения этой проблемы и еще в каких случаях назначать пин pe-de ?

    С уважением Влад!

    0
  4. Добрый день!

    В справке по блоку SVCM (отправка переменной через коммуникации) показаны активными два устройства: Arduino Ethernet Wiznet 5100  и ESP8266 WiFi Module. В версии программы 4.3.4 можно выбрать только Arduino Ethernet Wiznet 5100.

    В обновлении 6.3.1 ESP8266 WiFi Module также недоступен для выбора.

    Подскажите пожалуйста, может нужно что-то доустановить или настроить?

    3
  5. Добрый день.

    Параметр “Time” – на этот вход подаётся время регулирования (в миллисекундах).» — так и не смог понять на что именно он влияет… Можно где то узнать что это за параметр?

    0
  6. Добрый день! Мне требуется отправка по UART данных для MIDI протокола. Нашёл на просторах интернета готовый скетч, там отправка происходит вот таким образом


    1. void noteOn(int chan, int note, int velocity) {
          Serial.write( (0x90 | chan) );
          Serial.write(note);
          Serial.write(velocity);
      }

    2. Всю голову сломал как сделать это в данной программе, ничего не получается. Подскажите плиз какие есть варианты.
    3. получается там из массива подставляются переменные и пакетом отсылаются на порт
    4. вообщем вот от сюда брал скетч http://forum.amperka.ru/threads/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5-%D0%B1%D0%B0%D1%80%D0%B0%D0%B1%D0%B0%D0%BD%D1%8B-%D0%BD%D0%B0-arduino-%D0%BA%D1%80%D0%B8%D0%B2%D1%8B%D0%BC%D0%B8-%D1%80%D1%83%D0%BA%D0%B0%D0%BC%D0%B8.15477/
    0
  7. Вопрос: плата Arduino Nano strong (т.е. плата и шилд сразу) при использовании блока матричная клавиатура подключение 2 пин основной 3,4,5,6,7 уже исполняющие
    так вот при такой раскладке после прошивки на 4 пине появляется сигнал и ничего с этим не сделать если-же подключать так-же с 8 по 13 то на 10 он наоборот пропадает и ничем его не получить.
    Flprog стоит 5.3.0 для 64 виндовс, это можно как-то решить т.к. проект готов и затык только в этом (не резать-же шлейф да сейчас такие шлейфы что :)))   )
    спасибо

    0
  8. Вопрос: плата Arduino Nano strong (т.е. плата и шилд сразу) при подключении 2 пин основной 3,4,5,6,7 уже исполняющие
    так вот при такой раскладке после прошивки на 4 пине появляется сигнал и ничего с этим не сделать если-же подключать так-же с 8 по 13 то на 10 он наоборот пропадает и ничем его не получить.
    Flprog стоит 5.3.0 для 64 виндовс, это можно как-то решить т.к. проект готов и затык только в этом (не резать-же шлейф да сейчас такие шлейфы что :)))   )
    спасибо

    0
  9. Приветствую! Подскажите пожалуйста, какова длина/(время) импульса на выходе блока «Установка события по часам реального времени» и минимальная длина/(время) импульса на входе для срабатывания блоков типа «Триггер»? Плата, Arduino UNO.  (Осциллографа нет, а монитором COM порта эти величины с нужной точностью замерять затруднительно.) Или существует формула для этих расчетов?

    0
  10. xatabmail250986

    Здравствуйте, у меня такой вопрос, я хочу запрограммировать Ардуинку на определенный алгоритм вращения шагового двигателя. У меня есть шаговик Nema23 и Драйвер DM556. Я столкнулся с проблемой: В вашей программе для управления шаговиком используется 4 вывода а у меня от драйвера на Ардуино только 2

     2019-11-10 12:23:12

    Аватар

    xatabmail250986

    (PUL, DIR) и земля. Подскажите как я могу реализовать мое подключение с вашей программой?

    0
  11. Здравствуйте уважаемый Сергей Глушенко.

    У меня такой вопрос.

    Есть ли способ понизить скорость мне случайных чисел в данном блоке, как например в блоке «Generator», с функцией «Несимметричный мультивибратор»…? А то данный блок «RANDOM», меняет случайные числа с бешеной скоростью, из-за чего на дисплее не успеваешь разглядеть эти числа…

    0
  12. Здравствуйте, Сергей!

    Прежде всего хочу поблагодарить Вас за прекрасную программу. Мне, как в пошлом,инженеру, очень комфортно создавать свой проект в Вашей среде.

    Но у меня вопрос, на который не нашел ответа: Я создаю проект с участием нескольких контроллеров ESP8266 NodeMCU с OLED дисплеем. Очень не хватает такого модуля и модуля ESP32 WiFi LoRa с OLED дисплеем в предустановке.Мои контроллеры должны выполнять некоторые действия, и обмениваться между собой данными и информацией по WiFi в реальном времени. Причем, радиус действия  WIFI сети каждого из модулей не должен влиять на передачу данных между конечными контроллерами. Поэтому контроллеры самонастраиваются, и записывают данные для входа всех контроллеров WIFI сети в память для постоянного коннекта по цепи (от начального до конечного).  Вопрос: Можно ли в Вашей среде создать подобный алгоритм взаимодействия между контроллерами сети?

    С уважением, Аркадий

    0
  13. Здравствуйте! Не могу понять в чём причина. В счётчике на уменьшение, при подключении переменных к входу R и выходу <L он не считает вниз, а если убрать с R то счёт идёт но, не совсем правильно(на ноль не сбрасывается). Подскажите, в чём может быть причина?

     

    0
  14. Здравствуйте, На сериал порт приходит сообщение 18 байт, мне нужно использовать несколько байт из него. Какой функцией выделить (извлечь) например 5-й байт? Или присвоить переменной значение 5-го байта из сообщения? Спасибо.

    0
  15. Здравствуйте.

    Скажите как сделать так что бы при достижении времени установленного в настройках блока на выходе установится высокий уровень не на 1 минуту, а до времени отключения будильник?

    В данной версии блока будильника высокий сигнал на выходе пропадает через 1 минуту.

    0
  16. Здравствуйте!

    В FLProg есть блок MCP23017.

    Но ка только в «FLProg» начинает компилировать в «IDE» программа ругается и пишет, что нужны библиотеки MCP23x17.h и MCP23017.h.  Без этой библиотеки блок не рабочий.

    Где их можно скачать?

    0
  17. Здравствуйте.  Не могу запустить версию 5.00

    —————————

    flp.exe — Системная ошибка

    —————————

    Запуск программы невозможен, так как на компьютере отсутствует api-ms-win-crt-runtime-l1-1-0.dll. Попробуйте переустановить программу.

    —————————

    ОК

    —————————

    Что делать.

    1
  18. Доброго времени суток! Скажите пожалуйста, какова максимальная частота счета для этого счетчика? При превышении какой частоты счета, следует выбирать «Скоростной счетчик»? Заранее спасибо.

    0

Оставьте комментарий

Войти с помощью: