Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/163: Рейтинг темы: голосов - 163, средняя оценка - 4.93
 Аватар для raxper
10235 / 6613 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1

Графический язык ДРАКОН для программирования микроконтроллеров

19.08.2014, 10:44. Показов 30318. Ответов 51
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Язык ДРАКОН разработан совместными усилиями Российского космического агентства (НПЦ автоматики и приборостроения, г. Москва) и Российской академии наук (Институт прикладной математики им. М.В. Келдыша, г. Москва) как обобщение опыта работ по созданию космического корабля «Буран». На базе ДРАКОНА построена автоматизированная технология проектирования программных систем (CASE-технология) под названием «ГРАФИТ-ФЛОКС». Она успешно используется в ряде крупных космических проектов: «Морской старт», «Фрегат», «Протон-М» и др.
ДРАКОН — визуальный язык, в котором используются два типа элементов: графические фигуры (графоэлементы) и текстовые надписи, расположенные внутри или снаружи графических фигур (текстоэлементы). Следовательно, синтаксис ДРАКОНА распадается на две части. Визуальный синтаксис охватывает алфавит графоэлементов, правила их размещения в поле чертежа и правила связи графоэлементов с помощью соединительных линий. Текстовый синтаксис задает алфавит символов, правила их комбинирования и привязку к графоэлементам (привязка необходима потому, что внутри разных графических фигур используются разные типы выражений). Оператором языка ДРАКОН является графоэлемент или комбинация графоэлементов, взятые вместе с текстовыми надписями.

Первый ИС Дракон выпущен в 2008 году. Программа умеет превращать дракон-схемы в исходные тексты программ на языках семейств 1С, Delphi, C, Oberon, ASM. Отличительной особенностью программы является высокая степень автоматизации ввода графики.

Видеоуроки (на примере управления дверным замком):
Разработка программы управления автоматическим дверным замком
Программирование битовых операций: инициализация процессора, настройка таймера
Проектирование сложного алгоритма реального времени. Проектирование разветвленного алгоритма
Работа с несколькими таймерами


Разработчик: Тышов Геннадий Николаевич.
Офсайт: http://drakon.su/programma_is_drakon
Скачать: тут (последнее обновление в 2013-м)
2
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.08.2014, 10:44
Ответы с готовыми решениями:

Какой язык выбрать для программирования микроконтроллеров
Добрый день, хочу изучить язык программирования микроконтроллеров, опыт небольшой есть. В года 2 назад в университете делал лабораторные на...

Языки программирования для контроллеров, микроконтроллеров и пр.
Извините за нубский вопрос: а собственно на каком языке можно программировать например ПЛИС, и какие среды разработки, для этого существуют...

Дракон - визуальный алгоритмический язык программирования и моделирования
Приветствую Дракон - https://ru.wikipedia.org/wiki/%D0%94%D0%A0%D0%90%D0%9A%D0%9E%D0%9D Захотел найти на вашем форуме информацию...

51
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,720
16.04.2020, 08:04
Author24 — интернет-сервис помощи студентам
Тема на подфоруме Python Как довести до ума код, сгенерированный в Drakon editor?
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,720
05.12.2021, 12:26
Цитата Сообщение от raxp Посмотреть сообщение
Видеоуроки (на примере управления дверным замком)
Здравствуйте. Не сохранилась ли версия программы, по которой построен урок? А то последующие версии устроены по другому.

Добавлено через 52 минуты
Оказывается, взял программу не того автора. Однако архив drakon_2013_09_22.rar всё равно не нашел.
0
Заблокирован
05.12.2021, 12:31
Был у нас один любитель "дракона". После его увольнения с нуля все на С переписывать пришлось!
Ну да ладно, хоть платить за него не нужно, как за лабвью...
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,720
05.12.2021, 12:53
Если схемы Дракон были на бумаге или в похожем не редактируемом или не удобном формате, то это естественно, что пришлось переписывать на С. Если бы сразу делалось в редакторе с возможностью автоматической генерации кода, то наверное было бы проще.
0
Заблокирован
05.12.2021, 16:46
Цитата Сообщение от supmener Посмотреть сообщение
наверное было бы проще
Нет, не проще, т.к. ни у кого нет желания мучиться и пытаться этот ужас переделать!
Проще создать целиком с нуля на нормальном ЯП, чем вникать в "графическое программирование". Для меня это - вообще больная тема. Коллега лет 8 назад загорелся дурацким лабвью и меня просил на курсы походить, поизучать. Ну, я сразу сомневался, а после третьего или четвертого занятия понял, какой это бред - пытаться реализовать алгоритм посредством "рисования". Послал коллегу куда подальше с его лабвью и National Instruments, в общем, так его задумка по созданию спектрографа на железяках от NI канула в /dev/null. История знала подобные нездоровые попытки: на телескоп MMT и его основной спектрограф сначала пытались сделать все управление на NI'шном железе с "программированием" в лабвью. Буквально за год эксплуатации поняли, что эту жесть поддерживать невозможно, да и денег очень много стоят все эти железки и сам лабвью. Выбросили все к чертовой бабушке, и сделали как надо.
0
56 / 20 / 2
Регистрация: 18.06.2018
Сообщений: 199
05.12.2021, 22:10
Eddy_Em, Вы пгосто не умеете его готовить.

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

Конкретно для этого техпроцесса у Тышова и есть "слои комментариев", которые .. вовсе и не комментарии. Ваш "код" это один из слоев..

Ну и кроме этого, кроме самой программы Тышова, в системе Графит-Флокс, как понимаю, (а оно отсюда выросло) есть ещё и глобальная СУБД констант, переменных, пакетов .. с чем всё это и должно использоваться совместно...

Ну и ещё. ДРАКОН ориентирован на автоматическую кодогенерацию. Переписывать код, компилированный с ДРАКОН, это все равно, что переписывать код генерации с какого-нибудь protofiles.. можно, но .. а зачем? Не, я по первости тоже правил код после генератора protofiles .. потом дошло, что этим или не надо пользоваться от слова совсем или забить на всю эту хрень.

Программисту на ЯП знать ДРАКОН - кмк, просто обязательно. А вот работать на нем .. то иная песня.
0
Заблокирован
05.12.2021, 22:21
Цитата Сообщение от Arhat109 Посмотреть сообщение
ориентирован на автоматическую кодогенерацию
Ух, сколько я кодогенераторов видел! И все генерировали такой ужас!..
Ладно, насчет современного "дракона" ничего говорить не буду: я видел его последний раз лет 10 назад, и тогда это был кошмар лютейший.
Мне просто неприятен сам принцип "графического программирования": от тех же сименсов и SEW'ов просто тошнит уже!.. А еще их чертов CANopen вместо вменяемого простого протокола поверх CAN… Вот есть у SEW вроде документация, чтобы разобраться, да написать свой конфигуратор. Ан нет: основная настройка выполняется не по CANopen, а через 485! И по ней документации с гулькин нос.
Ну и еще: у всех этих забугорных фирм почему такой юродивый подход? Просто потому, что считается, будто человек не имеет права "отбирать хлеб у специалистов" (попробуй в США сам себе дома поменяй проводку, да пересобери нормально водяную гребенку: сразу начнут возбухать, мол, не имеешь лицензии — плати штраф!). В России с этим пока все ОК, поэтому не стоит считать инженера дураком, который не может что-то запрограммировать на каком-нибудь ЯП.
0
56 / 20 / 2
Регистрация: 18.06.2018
Сообщений: 199
06.12.2021, 09:34
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Ну и еще: у всех этих забугорных фирм почему такой юродивый подход?
Отчасти и по-вашему, "не имеет права". Там "человек" понятие весьма условное, вернее "потребитель", но это уже "политика", не обсуждаю.

То, что в ИТ всё так убого у мягко-гугло-погромистов (и прочих, кто приседает), ну так .. Р-технологии, откуда вырос ДРАКОН это конец 60-х в СССР, ваще-то. Все эти UML, "визуальное программирование" оно от не понимания рассекреченных технологий в начале 2000-х (по факту утечки) .. как читал (сам не юзал) ГРАФИТ-ФЛОКС это куда продвинутее чем современные ИДЕ, которым до "полной картинки" ещё расти и расти..

Там не про "визуальное программирование", а про единый тех. процесс от бизнес постановщика задачи, который ваще не программист ни разу, до конечной приемки результата в "изделии". Кодер там так .. звено в цепи. Попробуйте посмотреть на Тышовский ДРАКОН с позиции "радиоэлектронщик сваял схему прибора и описал как должен работать алгоритм" .. т.с. "первый слой комментов" на ДРАКОН-схеме.. кому там интересно КАК преобразователь накодил в "итого" ..

Пошукайте, найдете много интересного в Сети, и ДРАКОН вам откроется совсем с иной стороны..

P.S. Кстати, когда игрался с конкретно Тышовским ДРАКОН, делал к нему настройки для прямого переноса "итого" в Ардуино ИДЕ .. вполне. Код конечно страшненький, но .. вполне оптимален. При правильном кодировании блок-схемы на ДРАКОН, оптимизировать в общем-то нечего.
0
 Аватар для COKPOWEHEU
4051 / 2602 / 432
Регистрация: 09.09.2017
Сообщений: 11,577
10.12.2021, 11:13
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Проще создать целиком с нуля на нормальном ЯП, чем вникать в "графическое программирование". Для меня это - вообще больная тема. Коллега лет 8 назад загорелся дурацким лабвью и меня просил на курсы походить, поизучать.
Искренне поддерживаю! У нас в лаборатории когда-то (еще до того, как я сюда устроился работать) решили, что автоматизировать эксперименты на ассемблере, фортране и бейссике слишком сложно (тут я их прекрасно понимаю) и решили перевести все это дело на LabView, якобы в нем даже физик-непрограммист может худо-бедно нарисовать алгоритм. Ну что сказать, в какой-то мере это работает, вот только вносить потом в эту каракулю изменения довольно неприятно: оно встает врастопырку и чтобы хоть что-то добавить приходится двигать одну сторону вправо, вторую вниз и так далее. Мало того, там даже функций нормальных нет!
Как результат я сейчас вяло занимаюсь переводом этого кошмара на Lua, хотя, боюсь, придется переводить на Питон, поскольку больше шанс что рандомный физик будет знать его.
0
10.12.2021, 11:20

Не по теме:


COKPOWEHEU, лучше дать по голове рандомному физику и заставить таки выучить С!
У нас вот многие астрофизики вполне хорошо знают С или С++. Другие на матлабе, MIDAS'е, IRAF'е и т.п. орудуют. Есть и любители змеюки, но я над ними все время издеваюсь :)

0
10.12.2021, 15:17

Не по теме:

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

0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,720
20.02.2022, 07:56
Чтобы было более понятно, в каких целях полезно использовать, можно посмотреть "Алгоритмический язык ДРАКОН. Практика использования ИС ДРАКОН".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.02.2022, 07:56
Помогаю со студенческими работами здесь

Язык Си для микроконтроллеров PIC
хочу выучить программа pic c, не скажете откуда начать?? немного знаю c++.

Настройка QT Creator для программирования микроконтроллеров
Добрый день! Прошу у вас помощи в одном необычном деле. Хочу настроить Qt Creator для программирования микроконтроллеров на Windows 10, в...

Ассемблеры для программирования микроконтроллеров, 8-битных микропроцессоров
В программировании микроконтроллеров и прочего, не связанного с IA-32/Intel 64 не шарю, в связи с чем вопрос: какие есть ассемблеры для...

Как называется язык программирования для программирования на Android?
Как называется язык программирования для программирования на Android?

Какие книги, статьи и материалы необходимо изучить для программирования микроконтроллеров
Нужна подсказка, начал изучать Visual Studio 2013 C++(в текущий момент пишу программу с авторизацией, которая будет производить расчеты для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
52
Ответ Создать тему
Новые блоги и статьи
Работа с объемным DOM в javascript
Htext 04.04.2025
Сегодня прочитал статью тут о расходах памяти в JS, ее утечках и т. п. И вот что вспомнил из своей недавней практики. Может, кому пригодится. Хотя, в той статье об этом тоже есть. Дело в том, что я. . .
Оптимизация производительности Node.js с помощью кластеризации
run.dev 04.04.2025
Масштабирование приложений для обработки тысяч и миллионов запросов — обыденная задача для многих команд. Node. js, благодаря своей асинхронной событийно-ориентированной архитектуре, стал популярной. . .
Управление зависимостями в Python с Poetry
py-thonny 04.04.2025
Стандартный инструмент для установки пакетов в Python - pip - прекрасно справляется с базовыми сценариями: установил пакет командой pip install и используешь его. Но что произойдёт, когда разные. . .
Мониторинг с Prometheus в PHP
Jason-Webb 04.04.2025
Prometheus выделяется среди других систем мониторинга своим подходом к сбору и хранению метрик. В отличие от New Relic, который использует агентный подход и отправляет данные во внешнее хранилище,. . .
Пакет Context в Golang: Управление потоками и ресурсами
golander 04.04.2025
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1. 7 появился пакет context,. . .
Контейнеризация React приложений с Docker
Reangularity 03.04.2025
Контейнеризация позволяет упаковать приложение со всеми его зависимостями в автономный контейнер, который можно запустить на любой платформе с установленным Docker. Это существенно упрощает процессы. . .
Свой попап в SwiftUI
mobDevWorks 03.04.2025
SwiftUI, как декларативный фреймворк от Apple, предоставляет множество инструментов для создания пользовательских интерфейсов. В нашем распоряжении есть такие API как alerts, popovers, action sheets. . .
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер