Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Визуальная среда для AVR микроконтроллеров.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Lihiuzov
Horizont Configurator визуальная среда построения алгоритмов работы устройств, в том числе и микроконтроллеров. В качестве языка программирования среда использует язык функциональных блоков (FBD Function Block Diagram). Алгоритм создается путем формирования блок-схемы из библиотечных блоков, которые объединяются друг с другом непосредственно линиями связи – графическими связями. При компилировании проекта Configurator формирует исполняемый программный код, в него закладывается ядро программы, кода используемых FBD блоков и сам алгоритм. После сборки кода запускается компилятор, для соответствующего микроконтроллера. В итоге после сборки проекта получается исполняемый микроконтроллерный код.



Установка: HorizontConfigurator

Примеры работы:
управление нагрузкой
индикатор
кодовый замок

Интересно ваше мнение по проекту, пожелание, предложение, критика. Если есть желание, можете принять участие в проекте.

Molotov
Это для лохов. Настоящие мужики пишут на IAR для AVR(вариант на С) или на AVR Studio(вариант на ассемблере). Эти блоки не нужны, поттому что там надо каждый битик настраивать в регистрах.
Lihiuzov
Цитата(Molotov @ Jun 24 2016, 12:00) *
Это для лохов. Настоящие мужики пишут на IAR для AVR(вариант на С) или на AVR Studio(вариант на ассемблере). Эти блоки не нужны, поттому что там надо каждый битик настраивать в регистрах.


Это вариант реализации промышленного языка программирования FBD для микроконтроллеров AVR. Вы знаете почему для промышленной автоматики редко используют С, Pascal итп?
Дополнительное знания языка FBD никогда не повредит, а может кому и поможет в будущем.

Я знаю очень много языков программирования, кстати первым был AVRASM, и этот проект это попытка перенести язык FBD, поддерживаемый промышленными контроллерами стоимостью тысячи долларов, на микроконтроллеры AVR стоимостью сотни рублей.

Посмотрите примеры использования языка FBD для программы OwenLogic
RadiatoR
Цитата(Molotov @ Jun 24 2016, 07:00) *
AVR Studio(вариант на ассемблере).

Ну не надо, на AVR studio прекрасно пишется на с/с++, более того у нее есть отличный (по сравнению с тем же IAR) редактор, взятый с MSVS. Компилятор вполне нормальный.

Цитата(Lihiuzov @ Jun 24 2016, 07:59) *
Это вариант реализации промышленного языка программирования FBD для микроконтроллеров AVR. Вы знаете почему для промышленной автоматики редко используют С, Pascal итп?

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


1. А кто по вашему будет работать с этими контроллерами на FBD? Я из своих коллег, которые используют промышленные контроллеры не знаю ни одного, кто хотя бы знает слово "микроконтроллер" и "AVR".
2. Те кто пишет на С, Pascal итп итак используют мк и FBD им не нужен.
3. По поводу стоимости в тысячи долларов - плохо искали. Те же самые овены (не реклама) стоят не так уж и дорого. Более того если поискать по китайским конторам можно найти вполне бюджетные решения.

ps. я не критиковал, просто выразил отношение к микроконтроллерам в целом и к промышленным со стороны человека, который изнутри знает как к ним относятся "простые работяги". В моем случае, я как разраб сам делаю такой промышленный контроллер. И да, благодаря конкуренции его цена не зашкаливает.
Obam
На каком языке назван проект? Если на транслите то "Gorizont", если по аглицки то "Horizon". Англо-олбанский?
Это я к тому, что "как вы лодку назовёте…"

Ну и невольно вспомнился Algorythm_Builder (:
Непомнящий Евгений
Цитата(Lihiuzov @ Jun 24 2016, 06:55) *


Это простейшие примеры, которые в легкую пишутся с нуля на си и никаких проблем не вызывают sm.gif

Тут вопрос, что такого хорошего в языке fbd, чем он лучше/удобнее к примеру с++? Я пока вижу только один плюс - будет проще человеку, незнакомому с программированием.

Второй вопрос - для текста есть много разных наработанных приемов работы - поиск и замена, регулярные выражения, копирование и вставка, есть разнообразные редакторы с разным набором функций, есть системы контроля версий, патчи, макропроцессоры, текст легко генерировать скриптом на перле/питоне и т.п. Что из этого есть для вашего графического языка?

Третий вопрос - у вас картинка с несколькими элементами, у каждого - куча свойств. Как понять, какие свойства у каких объектов настроены? Надо протыкать по всем объектам и пролистать свойства. Для аналогичной по функционалу программы на Си весь текст помещается на экран, его без проблем пробежать глазами.
dxp
QUOTE (Lihiuzov @ Jun 24 2016, 10:59) *
Вы знаете почему для промышленной автоматики редко используют С, Pascal итп?

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

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

Работа, конечно, проделана немалая и выглядит всё прилично, за это респект.
demiurg_spb
Если и принимать участие в разработке Open source проекта подобного плана, то имеет смысл работать над Beremiz - он ушёл далеко вперёд и автор НИКОГДА его не догонит...
Оооо да это вообще не Open source..... До свидания!!!
Lihiuzov
Цитата(demiurg_spb @ Jun 24 2016, 16:29) *
Если и принимать участие в разработке Open source проекта подобного плана, то имеет смысл работать над Bereiz - он ушёл далеко вперёд и автор НИКОГДА его не догонит...
Оооо да это вообще не Open source..... До свидания!!!


Все блоки и ядро программы написаны на ассемблере, все тексты открыты, код любого блока доступен даже через меню над блоком.
Что такое Bereiz ?



Цитата(dxp @ Jun 24 2016, 16:25) *
Потому что это сложные языки и для этой области избыточны. Для их успешного использования нужна квалификация и опыт, т.е. стоимость специалистов возрастает, в то время как для описания алгоритмов промавтоматики нужно больше знание техпроцессов, нежели скиллы в программировании. Поэтому и придуманы простые языки, доступные технологам. Но если сами блоки промавтоматики программируется на этих простых языках, то внутренности - программы микропроцессоров/микроконтроллеров, - отнюдь не на этом, а как раз на С/C++ и прочих подобных.


Вы правы, я писал тексты блоков на ассемблере.


Цитата(Непомнящий Евгений @ Jun 24 2016, 15:01) *
Тут вопрос, что такого хорошего в языке fbd, чем он лучше/удобнее к примеру с++? Я пока вижу только один плюс - будет проще человеку, незнакомому с программированием.

Второй вопрос - для текста есть много разных наработанных приемов работы - поиск и замена, регулярные выражения, копирование и вставка, есть разнообразные редакторы с разным набором функций, есть системы контроля версий, патчи, макропроцессоры, текст легко генерировать скриптом на перле/питоне и т.п. Что из этого есть для вашего графического языка?

Третий вопрос - у вас картинка с несколькими элементами, у каждого - куча свойств. Как понять, какие свойства у каких объектов настроены? Надо протыкать по всем объектам и пролистать свойства. Для аналогичной по функционалу программы на Си весь текст помещается на экран, его без проблем пробежать глазами.


Как вы заметили FBD нагляден, меньше ошибок при построении программы (остаются только логические).

По второму вопросу, ничего особого нет.

Большинство свойств относится к оформлению блока, к работе намного меньше. Например у триггера одно- начальное состояние, логическое И- нет свойств итд.


Цитата(RadiatoR @ Jun 24 2016, 13:44) *
1.А кто по вашему будет работать с этими контроллерами на FBD? Я из своих коллег, которые используют промышленные контроллеры не знаю ни одного, кто хотя бы знает слово "микроконтроллер" и "AVR".
2. Те кто пишет на С, Pascal итп итак используют мк и FBD им не нужен.
3. По поводу стоимости в тысячи долларов - плохо искали. Те же самые овены (не реклама) стоят не так уж и дорого. Более того если поискать по китайским конторам можно найти вполне бюджетные решения.

ps. я не критиковал, просто выразил отношение к микроконтроллерам в целом и к промышленным со стороны человека, который изнутри знает как к ним относятся "простые работяги". В моем случае, я как разраб сам делаю такой промышленный контроллер. И да, благодаря конкуренции его цена не зашкаливает.


1. Язык FBD это инженерный язык, ему не надо учится, если логическое мышление работает то через пару часов освоит азы.
2. Язык не заменит С, Pascal итп, если вы создаете серьезное устройство. Но если задача состоит из какой либо несложной автоматизации, то вы очень быстро соберете желаемый проект.
3. Овены

Код
ПЛК63-РРРРРР-L     12 390,00 руб.    
ПЛК63-РРРРРР-М    13 452,00 руб.    
ПЛК63-РИИИИИ-L    14 514,00 руб.    
ПЛК63-РРРРИИ-L    14 514,00 руб.


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

Поделитесь своими наработками.

TSerg
И зачем там соединение с Инет?
demiurg_spb
Цитата(Lihiuzov @ Jun 24 2016, 13:09) *
Все блоки и ядро программы написаны на ассемблере, все тексты открыты, код любого блока доступен даже через меню над блоком.
А что толку? Вы свою лицензию читали?
Цитата
Что такое Bereiz ?
Beremiz.
Непомнящий Евгений
Цитата(Lihiuzov @ Jun 24 2016, 13:09) *
Как вы заметили FBD нагляден, меньше ошибок при построении программы (остаются только логические).

Он нагляден, пока схема простая. Программа из 10 строк на си тоже наглядна. А вот когда есть куча файлов и общий объем - мегабайты, то с наглядностью уже плоховато. Я сильно сомневаюсь, что аналогичная программа на графическом языке будет наглядна...

Цитата
2. Язык не заменит С, Pascal итп, если вы создаете серьезное устройство. Но если задача состоит из какой либо несложной автоматизации, то вы очень быстро соберете желаемый проект.

А с простой автоматизацией для дома вообще нет проблем - берете ардуинку, берете готовый скетч, дорабатываете напильником и вуаля sm.gif


Цитата(Lihiuzov @ Jun 24 2016, 13:09) *
ядро программы написаны на ассемблере


Вы реально писали графический редактор на ассемблере? cranky.gif Стесняюсь спросить, а не проще ли было взять шарп, ну или там куте?
Lihiuzov
Цитата(TSerg @ Jun 24 2016, 18:37) *
И зачем там соединение с Инет?


Интернет нужен для обновления. При запуске проверяется наличие обновлений. Если вы обновите, появятся новые блоки и дополнятся возможности программы.
В перспективе можно сделать функции "поделиться блоком" и "поделиться проектом".




Цитата(demiurg_spb @ Jun 24 2016, 18:38) *
А что толку? Вы свою лицензию читали?


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



Цитата(Непомнящий Евгений @ Jun 24 2016, 18:45) *
Вы реально писали графический редактор на ассемблере? cranky.gif Стесняюсь спросить, а не проще ли было взять шарп, ну или там куте?


Здесь две программы, графическая оболочка вторая программа для микроконтроллера. Последняя написана на ассемблере.
muravei
Цитата(Непомнящий Евгений @ Jun 24 2016, 13:45) *
А с простой автоматизацией для дома вообще нет проблем - берете ардуинку, берете готовый скетч, дорабатываете напильником и вуаля sm.gif

Или Ardublock

И есть подобная хрень.
Molotov
Цитата(Lihiuzov @ Jun 24 2016, 10:59) *
Я знаю очень много языков программирования, кстати первым был AVRASM, и этот проект это попытка перенести язык FBD, поддерживаемый промышленными контроллерами стоимостью тысячи долларов, на микроконтроллеры AVR стоимостью сотни рублей.
- Вы знаете много языков, у меня есть подозрение что Вы все их знаете плохо, т.к. Ваше внимание рассеялось по этим языкам. Я уже говорил что этот Ваш FBD абсолютно не нужен! Знать Си в совершенстве вполне достаточно для реализации хорошего проекта. Ну если еще и ассемблер знать, то вообще хорошо будет!
На скриншоте видно, что программа очень простая. На языке Си это было бы буквально 2 строки. Посмотрите на среду: множество меню и параметров. Зачем мне все это изучать? Я щас сяду, включу IAR и сделаю это за 5 минут. AVR - это не промышленный контроллер, сдается мне что Вы все перепутали.
Промышленный контроллер - это Siemens и еще какие-то не знаю. В общем Вы перепутали AVR с промышленными контроллерами.
Как Вы циклы будете писать в Вашем FBD. Я уже вижу, что это неудобная вещь. А несколько вложенных циклов, а?
AlexandrY
Цитата(Lihiuzov @ Jun 24 2016, 06:55) *
Интересно ваше мнение по проекту, пожелание, предложение, критика. Если есть желание, можете принять участие в проекте.


Пилить вам её ещё и пилить.
Программа глючная предельно.
Взял первый же пример подвигал цепи и зависон. Ошибка кого-то списка. Undo не работает.

Блоки в виде растровых битмапов. Какая-то дремучая древность.
Признайтесь, используете свои наработки 20-и летней давности?
Lihiuzov
Ошибок нет только у того кто ничего не делает. Пересобрал установочный пакет, "ошибки связанные со списком должны уйти", undo/redo надо сделать, вопрос времени. В установочный пакет добавил возможность для внутрисхемного программирования.

Почему дремучая древность, и разработки двадцатилетней давности не понял?

Цитата(Molotov @ Jun 25 2016, 01:06) *
Промышленный контроллер - это Siemens и еще какие-то не знаю. В общем Вы перепутали AVR с промышленными контроллерами.
Как Вы циклы будете писать в Вашем FBD. Я уже вижу, что это неудобная вещь. А несколько вложенных циклов, а?

В FBD циклов нет.




Программа использующая язык FBD Owen logic, в середине документа примеры проектов.
demiurg_spb
Попытка достойна уважения.
Повторюсь, что в 21 веке в IT рулит либо опенсорс либо крупные корпорации с кучей ресурсов.
Если бы я начинал что-то подобное, то обязательно бы взял за основу наиболее передовой опенсорс проект с уже вложенными NN-человеогодами и влился бы в состав разработчиков.
Вас никто не обязывает комитить очень регулярно в основной репозиторий свои наработки. И если хотите зарабатывать на этом, то выдерживаете паузу в год и пиарите новые фишки предлагая свою сборку на коммерческой основе. Именно так всё происходит.
RadiatoR
Цитата(Lihiuzov @ Jun 25 2016, 20:45) *
В FBD циклов нет.


Слабо себе представляю программирование мк, заметьте - мк, а не промышленного контроллера, без циклов. Что же на нем можно сделать?
demiurg_spb
Цитата(RadiatoR @ Jun 26 2016, 09:01) *
Что же на нем можно сделать?
Именно поэтому МЭК 61131-3 содержит 5 языков программирования, дополняющих друг друга.
RadiatoR
это был сарказм wink.gif
Непомнящий Евгений
Цитата(Lihiuzov @ Jun 25 2016, 20:45) *
Ошибок нет только у того кто ничего не делает. Пересобрал установочный пакет, "ошибки связанные со списком должны уйти", undo/redo надо сделать, вопрос времени.


Тут дело не в ошибках, просто не ясно, кто целевая аудитория.

Пользователи промконтроллеров? Но с чего они перейдут на авр?

"Профессиональные" пользователи авр? Но смысл уходить с языка общего назначения вроде Си или плюсов на нечто очень ограниченное? Плюс еще и не имеющее нормальных инструментов

Начинающие энтузиасты? Но у них ардуина...


AlexandrY
Цитата(Непомнящий Евгений @ Jun 27 2016, 08:22) *
Тут дело не в ошибках, просто не ясно, кто целевая аудитория.


А я бы подключился.
Но эта штука вся ! написана на ассемблере.
Имеет даже собственный компилятор ассемблера, и даже программа на PC подозреваю пишется на ассемблере.

Как по мне, то это жирный крест. laughing.gif
Непомнящий Евгений
Цитата(AlexandrY @ Jun 27 2016, 09:44) *
А я бы подключился.
Но эта штука вся ! написана на ассемблере.
Имеет даже собственный компилятор ассемблера, и даже программа на PC подозреваю пишется на ассемблере.


Насчет редактора - вроде как автор утверждал, что нет.

А вообще неясно, зачем такие сложности - можно ж писать блоки на Си и компилять заданным юзером компилятором, а по умолчанию - gccavr. Это еще и модификацию блоков упростит...
RadiatoR
Мне тоже начинает казаться, что это
Цитата(AlexandrY @ Jun 24 2016, 20:41) *
наработки 20-и летней давности

sm.gif
Lihiuzov
Хочу расширить возможности конструктора дополнив новыми блоками. Планирую использовать аппаратные возможности микроконтроллера и сделать блоки ШИМ. Может кто либо захочет совместно сделать данные блоки?












RadiatoR
А планируете ли вы сделать блоки со свободным кодом. Например есть блок с несколькими входами и выходами и в них набросать свой код на асме/си? Это добавило бы гибкости в систему.
А вообще в любом проекте (даже если он бесплатный) нужно ориентироваться на того, кто этим будет пользоваться. Вы определились с этим? На самом деле это серьезный вопрос - стоит ли шкурка выделки. В самом простом случае вы можете потратить очень много времени доделывая эту прогу, а ей никто не будет пользоваться. В случае похуже найдется единомышленник(и), который тоже потратит свое время за зря.
Lihiuzov
Цитата(RadiatoR @ Jun 28 2016, 01:23) *
А планируете ли вы сделать блоки со свободным кодом. Например есть блок с несколькими входами и выходами и в них набросать свой код на асме/си? Это добавило бы гибкости в систему.
А вообще в любом проекте (даже если он бесплатный) нужно ориентироваться на того, кто этим будет пользоваться. Вы определились с этим? На самом деле это серьезный вопрос - стоит ли шкурка выделки. В самом простом случае вы можете потратить очень много времени доделывая эту прогу, а ей никто не будет пользоваться. В случае похуже найдется единомышленник(и), который тоже потратит свое время за зря.


Это практически уже и сделано, если вы откроете код любого блока и измените, то и изменится работа этого блока. Пользоваться будут и новички и опытные. На своем примере мне пару раз приходилось быстро создавать проект и я с удовольствием делал. Пришла партия реле протока воды и установленные временные параметры нас не устраивали, когда разобрали там был контроллер ATtiny13, я разрисовал схему и за пару минут собрал прошивку. Первоначальной задачей программы было конфигурирование промышленных контроллеров icp 7000 и 8000 серии, так что уже не зря. В любом случае если найдется единомышленник(и) они получат большой опыт.
kazan_inform
Цитата(demiurg_spb @ Jun 24 2016, 08:29) *
Если и принимать участие в разработке Open source проекта подобного плана, то имеет смысл работать над Beremiz - он ушёл далеко вперёд и автор НИКОГДА его не догонит...
Оооо да это вообще не Open source..... До свидания!!!


Можете подсказать, в каких модулях beremz реализована связь с целевым процессором? Мы планируем портировать его в наш контроллер на SAM4S. Встал вопрос, какие функции необходимо реализовать на процессоре в режиме "baremetal".
ARV
Лично я воспринимаю этот проект так:
1. Целевая аудитория - "экономные крестьяне", т.е. люди, понимающие, что вырастить огурцы в теплице можно и без автоматики, но с автоматикой оно будет проще (больше времени на сон), но при этом не понимающие, что такое автоматика и с чем ее едят. Например, "если стало жарко - открыть окно теплички для проветривания" - это их уровень алгоритмизации процесса терморегулирования. И точка. Максимум, на что они способны - подключить проводки к клеммнику.
2. Техническая грамотность этой целевой аудитории примерно 2-3 по 10-балльной шкале, уровень компьютерной грамотности - 3-4 (интернет - наше всё), уровень алгоритмических и тем более программистских навыков -5 (минус пять) по той же шкале.

Предполагается, что эти юди смогут взять картиночки, положить их на экране в нужном им порядке, затем взять (где?!) платку с контроллером и реле и "запрограммировать". Потом подключить проводочки к плате и как-то решить свою задачу автоматизации...

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

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

Я утрирую, конечно, но смысл именно таков - гаражная автоматика кустарей-одиночек.

Каюсь: сам предпринимал попытки сделать нечто под эту целевую аудиторию... Предельно упрощал задачу: программирование контроллера без использования компьютера при помощи 4-5 кнопок... Но получалось нечто крайне неюзабельное: 5-ю кнопками нормальную программу не введешь, даже на суперпростом "языке жестов", процесс превращается в мучение... Что получается при этом - можно получить представление по модели в протеусе, вот статья с описанием и файлами для скачивания - а ведь это всего лишь таймер, у него нет входов для реализации логики анализа их состояния и изменения алгоритма поведения! Я делал и со входами вариант, но ввод алгоритма при этом вообще вызывает седину раньше времени...

Так что это тупик: кому надо простую систему автоматизации задешево, те просто ищут умельца, который это сделает из говна и палок. А для остальных этот геморрой с самопальными ПЛК на AVR не нужен - берут ОВЕН или SIEMENS и не горюют.
griabig
Цитата(kazan_inform @ Mar 1 2017, 13:19) *
Можете подсказать, в каких модулях beremz реализована связь с целевым процессором? Мы планируем портировать его в наш контроллер на SAM4S. Встал вопрос, какие функции необходимо реализовать на процессоре в режиме "baremetal".

Добрый день,

для Beremiz есть отдельная тема на форуме.
Вообще с вопросами лучше в список рассылки Beremiy лучше писать. Там ответят.

А по поводу вопроса, то посмотрите для начала презентацию с обзором архитектуры Beremiz, дальше рекомендую посмотреть, как сделана поддержка для уже существующих таргетов Linux, Win32. Это же open source, все исходники открыты. Всё можно посмотреть. :-)
Дальше посмотрете, как это сделано в YaPLC. Это baremetal для STM32 для Beremiz.
Baremetal не проблема для Beremiz, просто он требует несколько больше работы и заботы. :-)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.