Справка

 Содержание

 Библиотека блоков
   FBD
    Другие
     Командоаппарат
      Командоаппарат

Основной блок командоаппарата





Видеоурок на канале "Ключь к Ардуино"





Блок предназначен для имитации работы ручного/автоматического командоаппарата.


Коммандоаппарат. Принцип работы




Примеры.








Механический командоаппарат - самый простой способ устроить программное управление. Программное управление подразумевает что регулятор не имеет обратной связи с объектом и принудительно выводит его в определенный режим "грубой силой". Простой пример - включение и выключение лампы по таймеру. Контроллер не знает горит или не горит лампа, он просто подает на нее напряжение.

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




Углом поворота ручки выбирают нужное место циклограммы (от "цикл" и "программа") с которого нужно начинать. Ручка жестко связана с барабаном, на котором выступами записана программа. Барабан вращается мотором через редуктор с небольшой скоростью. Один оборот ручки - полный цикл.




Барабан, пластиковые щупы с контактными парами. Каждая окружность с выступами на барабане - это одно устройство. Например насос.




Барабан с "программой" стирки.




Собственно пример развернутой циклограммы стирки:




Фото из старой книги для пионеров. Простой командоаппарат например для последовательного зажигания огней на макете:




Недостатков у механического командоаппарата полно - низкая надежность, сложность в изготовлении, нет унификации. Поэтому практически повсеместно они заменены на электронные блоки с использованием микроконтроллеров.



Настройки блока


Основные




“Имя” – задаётся имя для идентификации данного командоапарата. В проекте может присутствовать неограниченное количество командоаппаратов.

“Комментарий” – комментарий к данному командоаппарату.

“Вход En” - при установке данного чек бокса у блока формируется вход “En”, и блок производит какие – либо действия только при наличии высокого логического уровня на нём.

“Вход “Следующий шаг” (NS)” – при установке этого чек бокса у блока формируется вход “NS”. По переднему фронту импульса на этом входе командоаппарат переходит на следующий шаг. В режиме автоматического переключения шагов переход происходит немедленно, не дожидаясь окончания работы таймера.

“Вход “Предыдущий шаг” (PS)” – при установке этого чек бокса у блока формируется вход “PS”. По переднему фронту импульса на этом входе командоаппарат переходит на предыдущий шаг. В режиме автоматического переключения шагов переход происходит немедленно, не дожидаясь окончания работы таймера.

“Вход “Reset”” - при установке этого чек бокса у блока формируется вход “Reset ”. По переднему фронту импульса на этом входе командоаппарат переходит на нулевой шаг. В режиме автоматического переключения шагов переход происходит немедленно, не дожидаясь окончания работы таймера.

“Вход непосредственной установки шага” - при установке этого чек бокса у блока формируются входы “DSS” и “DSSV”. По переднему фронту импульса на входе “DSS” командоаппарат переходит на шаг номер, которого задан на входе “DSSV”. В режиме автоматического переключения шагов переход происходит немедленно, не дожидаясь окончания работы таймера.

“После последнего шага, перейти к шагу 0” - при установке этого чек бокса командоаппарат после отработки последнего шага (при прямом движении) следующим шагом перейдёт к шагу 0. В противном случае командоаппарат остановится в прямом движении.

“При обратном движении после шага 0, перейти к последнему шагу” - при установке этого чек бокса командоаппарат после отработки нулевого шага (при обратном движении) следующим шагом перейдёт к последнему шагу. В противном случае командоаппарат остановится в обратном движении.

“Автоматическое переключение шагов” – установка этого чек бокса включает имитацию электродвигателя привода командоаппарата. При этом у блока формируется вход “AS”. Высокий логический уровень на этом входе включает двигатель, а низкий – выключает.


“Направление шага”


“Вход” - при выборе этого режима у блока формируется вход “ASD”. При наличии на нем высокого логического уровня командоаппарат переключается в направлении от нулевого шага к последнему, а при низком логическом уровне на этом входе – в обратном направлении.

“0 -> Последний” - при выборе этого режима командоаппарат переключается в направлении от нулевого шага к последнему.

“Последний -> 0” - при выборе этого режима командоаппарат переключается в направлении от последнего шага к нулевому.


“Продолжительность шага”


“Вход” - при выборе этого режима у блока формируется вход “ST”. Продолжительность текущего шага будет равна значению, подаваемому на этот вход в миллисекундах.

“Константа” - при выборе этого режима длительность всех шагов равна и задается непосредственно в настройках блока в виде константы.

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


“При останове таймер шага”


“Сбрасывается в 0” – в момент появления на входе “AS” низкого логического уровня таймер шага сбрасывается в 0 и останавливается до момента появления на входе “AS” высокого логического уровня.

“Останавливается” – в момент появления на входе “AS” низкого логического уровня таймер шага останавливается до момента появления на входе “AS” высокого логического уровня.

“Продолжает работу” – в момент появления на входе “AS” низкого логического уровня таймер шага продолжает работу, но переключения на следующий шаг не происходит до момента появления на входе “AS” высокого логического уровня.


Выходы




На закладке “Выходы” задаются выходы блока. Каждый выход представляет как бы отображение отдельного барабана командоаппарата.

“Выход текущего шага” – при установке данного чек бокса, у блока сформируется дополнительный выход “CS” на который будет выводиться номер текущего шага.

При нажатии кнопки открывается окно создания нового выхода.




В этом окне задаём имя выхода, его тип, и при необходимости – комментарий к выходу.

Кнопка служит для вызова диалога редактирования выхода, который аналогичен диалогу создания выхода.

Кнопками и изменяется последовательность расположения выходов.

Кнопка служит для удаления выхода.


“Значения”




На этой закладке создаются шаги командоаппарата и задаются значения, выдаваемые на ранее созданные выходы, для каждого конкретного шага.

Раздел “Шаги”

При нажатии кнопки открывается окно создания нового шага.




В этом окне задаём имя шага, и при необходимости – комментарий к нему.

Кнопка служит для вызова диалога редактирования шага, который аналогичен диалогу создания шага.

Кнопками и изменяется последовательность выполнения шагов.

Кнопка служит для удаления шага.

Раздел “Значения”

При выборе шага в разделе “Шаги” в этом разделе показываются значения заданные для выходов для данного шага. Эти значения при необходимости можно изменить непосредственно в таблице.


“Файловая загрузка/выгрузка”




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

Данные сохраняются в файл в формате “.csv” и при необходимости могут быть отредактированы в программе “Exel”.

Настройки с закладки “Основные” в файл не сохраняются и при загрузке данных из файла не изменяются.





10

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

не в сети 4 дня

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

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

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

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