Домашняя автоматика с поддержкой промышленных языков программирования, или BluePill x405

Начало обзора


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

Домашняя автоматика — области применения


Дом, милый дом… Так ли тебе нужен контроллер? Ответ прост — всё зависит от того, что в таком доме имеется. Конечно, если у вас просто квартира, и автоматика заключается в управлении домашним медиацентром и кондиционерами летом — всё, что написано далее, может быть совсем неинтересным. Но если ваше хобби заключается не только в продавливании дивана( что уж тут таить, я сам иногда в этом был замечен), то статья может оказаться весьма полезной.

Итак, давайте попробуем понять, как же подручными средствами можно упростить нашу нелёгкую жизнь. В качестве примера используем реальную ситуацию- один насос в скважине глубиной 70 метров, который поставили в складчину два соседа. Установили они его весной, когда воды в скважине было много и вообще, было просто тепло и хорошо. Но проходит время, и начинаются вопросы — для поднятия воды с такой глубины нужна электроэнергия, за которую надо платить. Несколько раз был затоплен подвал и технический этаж — просто забыли выключить насос… Да и не очень удобно вручную управлять — надо закрыть один кран, открыть другой, потом включить насос и смотреть за уровнем воды в баке.

А стоит ли тратить на это своё время, которого и так не хватает? Пытливый ум начинает искать решения и конечно же, находит его! Рождается список задач к реализации.

  1. Оплата за потреблённую электроэнергию не должна быть общей — значит, установим два пускателя, каждый из которых подключён к своему электрическому счётчику.
  2. Насос не должен выйти из строя из-за отсутствия воды — значит, установим датчик «сухого» хода насоса. Если нет воды — просто не запускаем насос, а если он работает — аварийно останавливаем.
  3. Насос не должен работать слишком долго — например, больше 25 минут. Превышение этого времени показывает, что система выходит из штатного режима работы.
  4. Заполнение емкостей должно происходить без участия человека, то есть автоматически.А это значит и запуск по нижнему уровню, и остановка по верхнему уровню.
  5. Заполняться должен только один бак, то есть устанавливаем два клапана — на подачу воды для набора в каждую ёмкость.
  6. Пауза между включениями насоса должна быть не менее 30 минут.
  7. Перерыв в электропитании не должен повлиять на алгоритм работы, если он был активен. Несмотря ни на что, алгоритм должен быть завершён.

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

Как работает промышленный контроллер?


Конечно же, сразу уточним — речь идёт о так называемых программируемых логических контроллерах, или сокращённо ПЛК. Что же скрывается под этой аббревиатурой? А скрывается вот что — невероятное разнообразие аппаратных решений, огромное количество программных продуктов и утилит. Сразу возникает резонный вопрос — а как же тогда использовать всё это добро? Неужели придётся с нуля изучать материальную часть и для каждого нового устройства находить время и деньги, чтобы пройти обучающие курсы и получить навыки, необходимые для работы с каждым устройством?

Ответ — нет, не надо. Всё уже сделано до нас. Осталось только изучить и научиться использовать. Именно этим я предлагаю заняться далее — немного погрузиться в стандарт IEC 61131. Давайте раскроем, какие части содержит этот стандарт.

  • IEC 61131-1: Общая информация.
  • IEC 61131-2: Требования к оборудованию и испытания.
  • IEC 61131-3: Языки программирования.
  • IEC 61131-4: Руководство пользователя.
  • IEC 61131-5: Коммуникации.
  • IEC 61131-6: Функциональная безопасность.
  • IEC 61131-7: Нечеткое программирование управления.
  • IEC 61131-8: Руководящие указания по применению и реализации языков программирования.
  • IEC 61131-9: Одноточечный интерфейс цифровой связи для небольших датчиков и исполнительных устройств.
  • IEC 61131-10: Формат обмена на основе PLC open XML.

Но углубляться в тему стандартов не будем, а говоря просто, контроллер в общем виде работает циклически — опрос состояния входов, выполнение интерпретатором программы управления, установление состояния выходов, выполнение задач внутреннего обслуживания и опять возврат к опросу состояния входов. Достаточно скучно, но зато действенно и эффективно. Программа управления представляет собой псевдокод, который создаётся при помощи среды программирования.Обычно такой псевдокод представляет собой двоично- кодированную последовательность, и ничего общего не имеющего с привычными нам языками программирования. Хотя для пользователя она представлена в виде, доступном для понимания — для контроллера же применяется совершенно другое представление. Хороший пример — небольшая программа, представленная в виде IL, LD и в виде двоичного кодирования для контроллера ( хм, даже термина специального нет). Ниже под спойлером показан небольшой пример.

Варианты отображения программы


Так что же делает эта программа полезного? Да ничего она не делает — если значение меркера М8010 равно 1, то в выход с адресом Y377 будет записана 1. Соответственно, то же самое для 0.
Одно из самых больших преимуществ такой реализации — это возможность выгрузить программу из памяти контроллера, открыть её для редактирования в редакторе в понятном для человека виде, скомпилировать( тут этот термин условен) и загрузить обратно в память контроллера. Причём некоторые контроллеры сохраняют даже комментарии и имена переменных.

Как запрограммировать контроллер?


Конечно же, необходимо специализированное программное обеспечение. После длительных поисков и экспериментов была выбрана программа Autoshop v3.02 от Inovance Control. Она замечательна тем, что бесплатна, доступна для свободного скачивания и она поддерживает контроллеры, совместимые с контроллерами Mitsubishi. А ещё она поддерживает работу не только через последовательные порты, но и через Ethernet. Ссылка на версию, использованную нами, под спойлером.

Ссылка на скачивание с Yandex Disk

Хорошо, мы установили программу и теперь другой вопрос — а как записать программу в наш контроллер? Так как мы будем работать с конкретным устройством, то и поставим конкретные драйвера виртуального COM порта. Для экономии выводов, да и для упрощения я решил использовать USB порт платы для подключения. Драйвера под спойлером.

Драйвера на Yandex Disk

После установки драйверов и подключения платы через mini-USB вы можете проверить, всё ли у вас успешно. Для этого правой кнопкой мыши откройте Мой компьютер- Управление-Диспетчер устройств-Порты( COM и LPT). У вас должно показаться вот такое окно, как под спойлером. Номер СОМ-порта в вашей системе может отличаться.

Диспетчер устройств


Теперь вы можете в меню программы AutoShop выбрать Tools-Communication Setting, в появившимся окне выбрать Serial, указать номер порта и нажать кнопку Test. У вас должно появиться вот такое окно, как под спойлером.

Успешное подключение к плате


Но если у вас что — то не получается, пишите либо в личку, либо в комментарии. Поможем обязательно.

Элементы программы, без которых будет грустно


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

  • Входы и выходы дискретные. Обозначаются как X и Y. Предназначены для получения и выдачи дискретных сигналов.
  • Область памяти меркеров М. Может принимать два состояния — включен и выключен.
  • Таймеры имеют обозначение Т. Предназначены для отсчёта времени от 0.1 до 3276.7 секунд.
  • Область регистров D. Имеет размерность ячейки 16 бит, но может также адресоваться и как 32 битная ячейка.

Сферический конь в вакууме, или регистры косвенной адресации


Регистры косвенной адресации имеют обозначение V и Z и могут быть адресованы от V0 до V7 и от Z0 до Z7. Для чего же их можно применить? Давайте рассмотрим, как вообще они работают. Вот такая с виду безумная запись D1000V0 подразумевает, что будет использоваться адрес ячейки, вычисленный как адрес D1000 плюс значение, записанное в регистр косвенной адресации. Если там будет 15, то будем использовать адрес ячейки D1015. Весьма удобно при работе с массивами данных или при табличном управлении — нам достаточно изменять значение индексного регистра, и мы получаем значения из тех ячеек памяти, которые были адресованы. Но пока мы не будем их применять — этого уже коснёмся в следующей публикации.

Немного о визуализации работы программы, или онлайн — отладка


Если вы программист и только что завершили написание программы, следующим этапом будет отладка. И вот тут и возникает вопрос — как это делать. Опять же, очень много вариантов, но я расскажу про тот, который мы далее будем использовать. Редактор среды программирования позволяет путём нажатия одной кнопки визуально показать, какие значения битов и переменных сейчас в памяти контроллера. Весьма показательным будет пример — ниже под спойлерами оффлайн и онлайн отображение программы в редакторе.

Кнопка перехода в режим просмотра переменных


Вид программы в режиме просмотра значений переменных


Вид программы в режиме редактирования


Немного подробнее о процессах, происходящих при нажатии кнопки Online. Программа быстро составляет список видимых переменных, и по завершении записывает его в определённый буфер контроллера. После этого уже контроллер по этому списку готовит данные и помещает его в другой буфер. Программа считывает значения из этого буфера и показывает их в виде значений на мнемосхеме. Если вы прокрутите немного программу в окне отображения и измените видимые переменные, данный цикл снова повторится…

Кто Гамлета зовёт, или на сцене BluePill x405


А вы обратили внимание, что на рынке не попадаются простенькие платы типа синей таблетки, но оборудованные процессорами типа F405 и выше? Мне лично попадались только с камнями F401, но это немного другой уровень… На подъём я лёгкий, и для своих экспериментов, недолго думая, сделал плату в старом добром P-CAD 2006 и заказал у китайцев на одном из сайтов быстрого заказа. Конечно, по цвету это зеленая таблетка, но по смыслу решил оставить название BluePill, но с указанием, что она уже x405. Результат под спойлерами — фото платы BluePill x405.

Вид сверху


Вид снизу


Принципиальная схема и gerber на github

Немного о том, чем же так примечательна эта плата? Ведь попыток создания клонов bluepill были просто тысячи! А отличие вот в чём — к этой платке я прилагаю прошивку, которая позволит превратить её в ядро, выполняющее программу, совместимую по системе команд с промышленными контроллерами Mitsubishi. Рассчитано сие чудо на 16 входов, 16 выходов, 2 входа аналоговых, 3 UART с поддержкой DE для RS485, 1 мастер шины onewire. UART могут работать как мастер шины modbus RTU, так и как слейв. Причём могут работать совершенно независимо.
Но и это ещё не всё — если вы подключите 3В батарейку к выводу VBAT, то сохранять свои значения будут не только часы, но и таймера, счётчики, меркеры и первая 1000 регистров общего назначения D. И регистров тут 8000.

Предвосхищая вопросы, скажу сразу — да, программное обеспечение построено на основе операционной системы реального времени. Да, DMA используется везде, где только возможно. Эти особенности позволяют без значительного изменения времени цикла работать при больших коммуникационных нагрузках. Данная версия уже вторая ревизия, переработанная и дополненная.

Эту плату вполне можно программировать как GX FXDeveloper-ом, так и IEC Developer и GX Works.

Судьба насоса и двух баков


Давайте теперь решим вот эту задачу — тем более, что все инструменты для этого имеются. Чтобы сильно не затягивать, я написал программу, разбил её на части( так называемые нетворки, или рабочие цепочки), и каждую из них здесь покажу и дам комментарии.

Net 1 - первое исполнение программы


В регистре D1000 хранится время, необходимое для подавления дребезга контактов. На самом деле, в программе это уже имеется — но мне хочется показать это более наглядно. Регистр D1001 отвечает за время защиты насоса. В него мы пишем 15000, или 1500 секунд. Далее у нас есть цепочка резервного сброса — если что-то пойдёт не так, можно подать на вход X14 сигнал 1 и перезапустить плату. В этом случае в регистры D0 и D1 запишется 0, и сбросятся меркера М98 и М99.

Net 2 - обработка сигналов входов


Здесь при помощи таймеров мы избавляемся от дребезга контактов. Для этого используем задержку в 200 миллисекунд. Для того, чтобы в дальнейшей программе при изменении адреса входа контакта не надо было переписывать много цепочек, я использую промежуточные меркеры( например, М102). Также примечательно, что тут используется системный меркер М8003 — он включается после того, как прошёл первый цикл исполнения программы. А вот меркер М8002 активен только в первый цикл программы, и это можно и нужно использовать для установки начальных значений.

Net 3 - наполнение бака 1.


Наполнение бака 1 совершенно идентично наполнению бака 2 за исключением адресов. Немного не поместился рисунок — но вы лучше его посмотрите, просто открыв проект. Что же примечательного в этом блоке управления? Наличие защит и взаимных блокировок, которые позволяют безударно запускать и останавливать механизмы. Например, после открытия клапана 1 только через 700 мсек будет подана команда на запуск пускателя, включающего насос.

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

Net 5-6 -Управление выходами


А вот тут мы управляем выходами с соблюдением блокировок.

Из задач осталось невыполненным только подключение 30 минутного интервала защиты перед повторным включением. Сразу скажу — в данной версии реализованы только входа X0-X3 и выхода Y0-Y3, чего вполне достаточно для тестирования материала данной статьи. Привязка такая PA4-X0,PA5-X1,PA6-X2,PA7-X3 и PB4-Y0,PB5-Y1,PB6-Y2,PB7-Y3.

Скорость выполнения цикла программы — дедовские методы измерения


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

7995 шагов - 2.6 миллисекунды

Здесь каждый шаг — это одна команда, и получаем, что 2.6/7995=0.325 микросекунды. Не очень быстро, но неплохо.

FPU -быть или не быть?


А теперь определим, как быстро работают в нашей прошивке инструкции с плавающей запятой. Имеются две прошивки — одна с использованием встроенного FPU, а другая — с программной эмуляцией. Программа ниже:

Программа для вычисления времени выполнения инструкции

Прошивки ниже под спойлером, и они не имеет никаких ограничений

Две прошивки

При использовании аппаратного FPU время выполнения программы получается 1.8 мсек, или 1.8/600=0.003 мсек, или 3 микросекунды.

Теперь заменим прошивку — используем программную эмуляцию. Результат уже получается другой — 2.5 мсек, или 2.5/600=0.0041 мсек, или 4.1 микросекунды. Неплохо, но разница довольно ощутимая.

Заключение


Несмотря на большой объём статьи, осталось ещё немало материалов, которые было бы хорошо осветить. Так что если данная статья окажется вам интересной, то за этой статьёй последует ещё и ещё одна. Но мне бы хотелось найти единомышленников, кто желает приобщиться к скрещиванию промышленного и домашнего с только одной целью — чтобы эти инструменты оказались доступными простому обывателю.

Комментарии 33

    0
    На али встречаются платы с STM32F405 и 407, так и с более мощными.

    ru.aliexpress.com/item/4000094075769.html
    ru.aliexpress.com/item/33022702116.html
      0
      Большое спасибо за ссылки. Обратите внимание на форм-фактор и на то, что уже на них и держатель для батареи, и память всякую и разных форматов, плюс SD коннектор, и отладочный порт для стандартного коннектора. А в этой плате смысл такой, чтобы подхватить падающий флаг BluePill и поддержать именно такой, минималистичный, форм-фактор. И хочу заметить, если на плате у вас будет процессор F405RGT6, и кварцы будут 8 МГц и 32.768кГц, то прошивка легко запустится. Другие камни я не пробовал — нет в наличии. Хотя, признаюсь, просто чешется попробовать F765 — как на нём себя поведёт интерпретатор.
      0
      Хорошее решение, но к вашей плате ещё нужен целый колхоз из входов-выходов. А не это ли самое, только всё в одном, уже сделали китайцы ru.aliexpress.com/item/33021250022.html
      И таких плат там сотни разных разновидностей.
        0
        Никто и не говорил, что будет легко. Зато какой размах для творчества — можно сделать то, что тебе хочется. А если нет желания ничего делать — тут можно и у китайцев прикупить платку вот такую. Она и недорого выйдет.
            Я лично таких плат не имею, но мои коллеги утверждают, что довольно надёжное решение. Насчёт программирования — по умолчанию для них применяют GX Developer- FX. Конечно, провести бы тесты с интенсивной коммуникацией…
        0

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


        Я в своих домашних проектах, где это требуется, использую Raspberry PI с установленным Codesys Runtime и ихней же средой проектирования IEC 61131-3. Получается куча возможностей, начиная от удобной современной среды разработки и отладки и заканчивая доступными коммуникационными протоколами и визуализацией. И все это за стоимость RPi + лицензии за 50 евро.


        Так как среда поддерживает кучу контроллеров начиная от Овна и заканчивая Wago — можно спокойно выбрать себе нужный контроллер под свои нужды.


        ПС Что-то не нашел у вас в статье собственно I/O интерфейсов для контакторов и датчиков. Это и есть основная стоимость и сложность ПЛК, а не той платы, что вы показали.

          0
             Интересно будет посмотреть на задачу, которая требует быстродействия больше, чем 3 миллисекунды на 8000 шагов программы, вот честно. Этой средой программирования поддерживается ещё и SFC — тоже классная штука. Я и о ней расскажу.
             Я знаком с рантаймом Codesys для малины. Вопросы, которые у меня возникали, были тривиальны — нагрев, сохраняемые переменные при отключении питания.
              А вот эта мелкая платка — не греется, потому что не кушает много, имеет 4 килобайта аппаратно сохраняемой памяти, причём быстрой. И часы есть аппаратные кстати) А ценник у неё для меня получился 270 рублей полностью, вместе с платой. Да, детали из Китая.
              А разработка для этой платки тоже не менее удобна, среда программирования достаточно продумана. Я бы конечно, немного поднастроил горячие клавиши — но это уже сила привычки.
            0
                Когда платы заказывал, а их заказывать надо не менее 5 штук, решил сделать их побольше. Ниже под спойлером результат —
            Печатки, как они есть


                Я человек не жадный, и если надо кому — пишите, отломаю сколько надо. Только доставку уж за ваш счёт. Пишите в личку, либо тут. В общем, как удобно.
            0
            ПС Что-то не нашел у вас в статье собственно I/O интерфейсов для контакторов и датчиков. Это и есть основная стоимость и сложность ПЛК, а не той платы, что вы показали.

                Разумеется, статья этого не описывает, потому что предметно рассматривается вот такая плата и среда для её программирования. Я могу показать IO, но это уже тема для обсуждения не здесь.
              0
              Интересно будет посмотреть на задачу, которая требует быстродействия больше, чем 3 миллисекунды на 8000 шагов программы, вот честно.

              Ну у вас чисто логика, нету аналога. А добавите какой-нибудь простенький ПИД регулятор и плавающую точку и быстродействие вам сразу же понадобится.


              сохраняемые переменные при отключении питания.

              Не помню, чтобы там были проблемы с этим.


              Разумеется, статья этого не описывает, потому что предметно рассматривается вот такая плата и среда для её программирования. Я могу показать IO, но это уже тема для обсуждения не здесь.

              Я бы сказал, что не стоит это отрывать. Потому что на фоне I/O все эти вопросы по потреблению, сохраняемой памяти или стоимости в 270 рублей очень быстро померкнут.

              0
              Сделали проект на сенсорном овеновском ПЛК Codesys — прокляли тот день, когда связались с этой платформой! Сплошные ограничения среды без шансов обхода. Начиная от невозможности убрать овеновскую стартовую заставку и далее по всем кочкам — куцые функции масштабирования графиков, невозможность переименования кнопок, самодурство системы при сохранении файлов итд итп Для совсем не умеющего в программирование — пойдёт, а так — нет.
              0
              Ну у вас чисто логика, нету аналога.
              Это собственно как так? А кому я распинался про работу с плавающей запятой? А два аналоговых входа на борту для кого? Да пожалуйста — пид реализован, пользуйтесь. Даже визард в среде программирования к вашим услугам. Три порта UART, причём аппаратные, с выходом DE, имеются. Я их качал до скорости 1 500 000 mbps — тянут как миленькие.
              Для работы ПИД регулятора надо 25 регистров плюс ещё 10 для вспомогательных целей. В эту плату можно запихать 8000/35 =228 регуляторов, и быстродействие будет на уровне 3.2 миллисекунды. Я делал только 170 регуляторов, больше было лень. Сейчас сделаю проект и чуть позднее скажу реальные цифры.
              Я бы сказал, что не стоит это отрывать. Потому что на фоне I/O все эти вопросы по потреблению, сохраняемой памяти или стоимости в 270 рублей очень быстро померкнут.

              А я бы сказал, что стоит. Потому что малина для такого решения будет стоить сколько? Считаем — малина(2358)+лицуха( 3500)+норм.карточка(1000) = 6858 рублей. И точно так же нужна добротная обвязка!!! То есть по цене одного вашего решения можно взять 25 плат, таких, как я показал.
                0
                   Я не стал мудрить и сразу сделал тестовый проект со 100 пид регуляторами и выложил его на github. Ниже результаты —
                Результаты замера наглядно


                Программа тут — Github
                    Так что эта мелкая плата ещё и не такая уж и мелкая.
                    А вообще, сравнивать надо системы из одной весовой категории. Давайте я соберу плату на STM32H743, который на 480 МГц, прикручу к нему физику Ethernet, и применю то же ядро интерпретатора. Вот это будет уже интересно. Не забывайте, у меня аппаратно-отточенная операционная система реального времени, у вас её нет.
                  0
                   А вообще, дома у меня Raspberry Pi второй модели применяется как домашний медиацентр KODI, и её работой я весьма доволен. Было совсем недавно одно омрачение — начал мигать красный диод и на экране появилась характерная жёлтая молния. Замена блока питания и кабеля ничего не дала. Помог только прогрев паяльным феном… Сложная это плата всё-таки.
                    0
                    Я их качал до скорости 1 500 000 mbps — тянут как миленькие.

                    Упс… ошибочка вышла. Конечно же 1 500 000 bps, или 1,5 мегабита в секунду. Протокол — Modbus RTU.
                      0
                      Предлагаю дать этой плате другое название. «Blue Pill» для зелёной платы… Может, «по аналогии, „Green Pill“? Ведь известно, что „как вы яхту назовёте, так она и поплывёт“.

                      По-моему, STM32F405 — не очень удачный выбор для такой платы. Нет массовости как у Blue Pill. У меня есть Nucleo 103, 091, 401, 411, 446, 746. И ни на одной я не могу опробовать работу Greeds74. Жаль…

                      Философский вопрос: а что думает юридический отдел Мицубиси об этой разработке?
                        0
                        По-моему, STM32F405 — не очень удачный выбор для такой платы. Нет массовости как у Blue Pill. У меня есть Nucleo 103, 091, 401, 411, 446, 746. И ни на одной я не могу опробовать работу Greeds74. Жаль…

                          Спасибо за интерес к проекту. Дело в том, что три года назад я поддался всеобщему энтузиазму и сделал свою плату, но под STM32F103RET6. Конечно же, после проведения всех работ она теперь просто лежит на полке. Но вот буквально месяц назад мне потребовался максимально недорогой подопытный с процем из F4 серии, который будет не жалко использовать в тестах на живучесть. Полчаса работы — и уже плата готова. Вообще целевая аудитория интерпретатора обширна — F427, F765 и Н743. Вообще, Крайний камень из этого списка жду с нетерпением — интересны результаты…
                          А насчёт юридического отдела… Вопрос хороший, но можно спросить и так — что скажет BMW, если кто-то сделает машину, которая и управляется также, и ездит также, но выглядит по другому?
                          Мне кажется, что через пару месяцев на али можно будет искать эту плату. Китайцы работают на удивление слаженно и быстро.
                        0
                        А откуда взялась эта прошивка? Это какое-то наследие FX1/FX2 от mitsubishi?
                        Насколько она совместима с контроллерами от mitsubishi?
                        Шаговыми двигателями управлять можно?
                          0
                          День добрый. Это результат развития проекта FX2N. В проекте нет ни одной строчки китайского кода — если вы про это. Плату с этой прошивкой можно программировать всеми доступными инструментами — но для тестирования лучше брать прошивку с github из папки Update_1. Шаговыми двигателями можно управлять, но конкретно в той, что вы можете скачать, эта функция пока не реализована.
                          Ссылка на видео с предыдущей версией —
                            0
                            Плату с этой прошивкой можно программировать всеми доступными инструментами

                            Вы про Autoshop v3.02 от Inovance Control? В каких средах программирования можно писать код для вашей прошивки?

                              0
                              Я периодически сталкиваюсь с задачами автоматизировать какую-нибудь мелочь. Использовал FX1N, FX2N. Потому, что они были в наличии. Посмотрел, чем вы занимаетесь, но так и не понял чем ваш проект может быть мне полезен. На гитхабе только .bin и исходников, я так понимаю, не будет. Чем ваш вариант лучше готовых китайских плат с али за 1-2 т.р.?
                                0
                                На гитхабе только .bin и исходников, я так понимаю, не будет. Чем ваш вариант лучше готовых китайских плат с али за 1-2 т.р.?

                                  Понимаете правильно. То, что имеется на github — это тестовые версии отладки ядра. И поэтому выбран проц 405, а не 401 или 411. Я делюсь тем, что имею.
                                  Мне кажется, если вас устраивают платы из Китая за 1-2 т.р — да пожалуйста, используйте их. Мои же платы имеют что- гарантированное быстродействие, аппаратно-ориентированную ОСРВ, мощный запас по коммуникациям. Но всё это обычно и не требуется!
                                 Вот сколько раз в своих программах вы применяли обработку таймерных прерываний — например, с индексом I750 (то есть с периодом 50 мсек)? Эта особенность редко бывает востребована…
                              0
                              Вы про Autoshop v3.02 от Inovance Control? В каких средах программирования можно писать код для вашей прошивки?

                              Можно использовать GX Developer FX,IEC Developer и GX Works. С последним я правда давненько не работал… Выбирать модель FX2N и 8000 шагов.
                               Но я в основном использую Autoshop.
                                0
                                Но я в основном использую Autoshop.

                                Потому что он бесплатен? Я так понимаю, что ПО Mitsubishi платное и лицензии начинаются от 400 баксов — по-моему дороговато для домашней автоматики. Другие варианты есть?

                                  0
                                  Потому что он бесплатен? Я так понимаю, что ПО Mitsubishi платное и лицензии начинаются от 400 баксов — по-моему дороговато для домашней автоматики. Другие варианты есть?

                                    Так меня вполне устраивает Autoshop. Тем более, что бесплатен. Есть ещё одно семейство контроллеров — и программируется оно при помощи Wecon PLC Editor V1.3.5. Но с ним я не пробовал работать. А так конечно — чтобы использовать ПО, оно должно быть либо заранее бесплатным, либо купленным.
                                    0
                                    Так меня вполне устраивает Autoshop.

                                    Ну так значит у вас в системе используется китайский код. А иначе надо покупать систему разработки за 400 баксов.

                                      0
                                      А если бы не использовался, то не надо было бы покупать? Странная логика, однако.
                                        0
                                        Ну так значит у вас в системе используется китайский код. А иначе надо покупать систему разработки за 400 баксов.

                                          Китайского кода ни единой строчки в ядре исполнения.
                                          А исполняемый код для ядра одинаково генерируется как программой за пару тысяч баксов, так и бесплатной. Я проверял)))
                                  0
                                  А в Linux как с этим железом работать?
                                    0
                                    А в Linux как с этим железом работать?

                                      Я где-то с год назад запустил GX Developer под Linux Mint 17 версии. Драйвер для платы ставится автоматом, единственно что сделал — настроил алиас(вроде так называется) портов Windows. И весьма бодро работал кстати.
                                      Сегодня вечером поищу — может, мануал какой сделаю…
                                    0
                                    А вот кстати нашёл интересную штуку — плату обвязки под Raspberry PI. Гальваника на RS485, гальваника на 1-wire, стандартные входы- выходы расширены ещё на 16 входов или выходов через I2C. Плюс внешние аппаратные часы на той же шине I2C. Питание только без изоляции… Почти полная поддержка со стороны Codesys — вывод DE для переключения микрухи драйвера пришлось колхозить. Есть две платы кстати…
                                    Материнка под малину


                                      А вот тут эти пресловутые две платы в режиме теста — мастер на STM32 через развязку на платах опрашивает слейва на ардуине нано. Под ардуино у меня порт операционки для 8 битных AVR, но программировал в Atmel Studio на С, шил через avrdude. Портом могу поделиться — правда, он старый довольно…
                                    Тест обмена данными


                                    Так что месье знает толк в извращениях…
                                    Кому нужна такая плата готовая — пишите, а то я уже начал их на запчасти потихоньку пускать. Может, у кого и поработает ещё. Могу и корпус в придачу)
                                      0
                                      К вопросу о законности этой и подобных разработок. Ответ Мицубиси.

                                      — Добрый день

                                      Спасибо за обращение в компанию Мицубиси Электрик

                                      Ответы на вопросы:

                                      1) что я нарушаю (если нарушаю, конечно), создавая программное обеспечение для своего контроллера, которое определяется программным обеспечением от Мицубиси как контроллер Мицубиси FX2N?

                                      Вы ничего не нарушаете, но Вы используете ПО от Mitsubishi Electric не по прямому назначению, указанному в документации.

                                      2) могу ли я использовать свой контроллер для решения своих задач, программируя его в лицензионной программе MELSEC GX Works?

                                      Конечно можете. Мы не можем Вам это запретить. Но и рекомендовать так же не можем.

                                      3) могу ли я продавать свой контроллер с моей программой, определяемой как FX2N, чтобы покупатели могли использовать GX Works?

                                      Это Ваше право продавать или нет. Но Вы не имеете право упоминать наименования программного обеспечения GX-Works, GX-Developer и т.д. или наименования моделей контроллеров FX/FX0/FX1/FX2/FX3/FX5 или наименование бренда Мицубиси. Т.к. это все зарегистрированные торговые марки.

                                      С уважением,
                                      Андрей Воробьев

                                      Руководитель отдела по продвижению продукции
                                      Подразделение промышленной автоматизации
                                      ООО «Мицубиси Электрик (РУС)»

                                      Россия, 115114, Москва, ул. Летниковская д.2 стр.1
                                      Тел.: +7 495 721-2070 (доб. 127)
                                      Факс: +7 499 721-2071
                                      Моб.: +7 985 490 29 81

                                      E-mail: andrey.vorobyev@mer.mee.com
                                      Internet: ru3a.mitsubishielectric.com/fa/ru
                                      Онлайн обучение: E-Learning Rus
                                        0
                                        Спасибо за интересную статью! Приятно читать человека, увлеченного своей работой.
                                          0
                                          Спасибо за оценку! Это скорее хобби, домашнее применение так сказать…

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

                                        Самое читаемое