Критические замечания участника tonyk о реализации языка ДРАКОН для ПЛК tonyk писал(а):
Дракон — штука хорошая, правильная. Я сравниваю её с позиций ПЛК. Но есть одно "но", которое обнуляет ценность сегодняшней реализации Дракона.
Дракон- это графический язык программирования. А где графическая отладка? Я её не заметил. Ведь если вы можете по графической схеме построить исполняемый код, так постройте его для виртуальной Дракон-машины, чтобы можно было его тут же, в среде программирования, запустить и отладить.
Естественно, что в процессе отладки значения всех переменных должны отображаться прямо на схеме программы. Даже не говорю о том, что необходимо иметь возможность отладки и на "железном" контроллере, наблюдая значения переменных и имея возможность их изменять.
Как это выглядит и работает, можно посмотреть в любой среде разработки для ПЛК на примере графических языков FBD, LD, SFC.
То, что показано в роликах после генерации кода со словами "проверим работу программы" просто перечёркивает всю ценность Дракона как инструмента для серьёзной работы.
Будь симулятор и графическая отладка, Дракон можно было бы встраивать в МК, получая полноценный ПЛК.
tonyk писал(а):
За питьём кофе полистал сайт. Ребята, вы в тупике. И будете в нём до тех пор, пока не появится текстовый формат языка Дракона.
Создание эргономичной среды программирования для Дракона- это весьма непростая задача. Сейчас и программирование, и кодогенерация под целевую платформу собраны в одном месте.
Зачем? Среда программирования на Драконе должна выдавать программу на Драконе.
Во-первых, так получится передавать программу между разными среда программирования.
Во-вторых, получится разделить работу между несколькими людьми, один из которых занят рисованием программы на Драконе, а второй кодогенерацией для платформы, на которой исполняется нарисованная программа.
При таком подходе станет возможным распараллелить работу между несколькими людьми, что должно существенно увеличить количество платформ, на которых исполняется Дракон.
Обязательно нужен формат обмена отладочной информацией между средой программирования и исполнения.
Обязательно нужны расширения языка для взаимодействия с оборудованием целевой платформы, например, обработчики прерываний, запись-чтение в регистры управления периферийными устройствами и т.п.
Пока сделайте главное, дайте описание текстового формата Дракона в БНФ.
tonyk писал(а):
Наличие текстового синтаксиса позволит выгружать схему в виде текстового описания алгоритма, который можно обратно загрузить в редактор.
Если в синтаксисе текстового языка предусмотреть команды позиционирования блоков, то можно более эргономично размещать графические блоки.
Без команд позиционирования придётся размещать блоки автоматически, что, судя по графическим языкам ПЛК, получается вполне хорошо.
А самое главное- это отделение мух от котлет. В редакторе рисуется схема алгоритма, которая выгружается в виде текста, который уже можно транслировать в любой прикладной язык.
Даёшь Дракон в БНФ!
tonyk писал(а):
У меня есть свой проект по созданию ПЛК по стандарту ГОСТ Р МЭК 61131.
Свои мысли я тут высказываю с позиций разработчика ПЛК, по мнению которого проект "Дракон" уходит далеко от того, что нужно инженерам-практикам.
Более того, исходя из своего скромного опыта, я сильно сомневаюсь, что с нынешним подходом к разработке Дракон будет доведён до состояния, когда он будет массово использоваться, например, в ПЛК.
Глядя на происходящее, думаю, что если ничего не менять в вашей работе, то Дракон так и останется игрушкой для разума энтузиастов.
Повторюсь, я смотрю на Дракон с позиций разработчика ПЛК. Мне нравится концепция Дракона, будь у Дракона то, о чём я написал (текстовый формат, протокол обмена с рантаймом и т.п.), с удовольствием занялся бы переносом его на ПЛК.
Дракон и МЭК для меня- не конкуренты, это разные способы решения практических задач, поэтому я и делюсь своими мыслями и опытом.
tonyk писал(а):
Чему меня может научить Алексей Муравицкий, как ковылять на костылях с шильдиком "Дракон"? Я знаком со способом, который использует Алексей в работе с ПЛК.
Дабы прибить все споры на корню, просто ответьте на вопрос, почему кроме Алексея никто не использует Дракон на ПЛК?
почему тогда языки, созданные по такому "отсталому" стандарту, как ГОСТ Р МЭК 61131-3 существуют, развиваются и кормят их создателей, а чудо по названием "Дракон" за столько лет так и не доросло до уровня стандарта и остаётся игрушкой горстки энтузиастов?
tonyk писал(а):
Дракон ооочень коммерческий проект. Без открытой IDE, генерирующей на выходе что-то, пригодное для переваривания в МК, ИМХО, Дракон нафиг не нужен.
Не буду спорить с вашими маркетологами, которые выбрали такую стратегию продвижения Дракона, просто предложу обдумать, почему так популярны C, Codesys, Altium Designer и далее по списку.
Не потому ли, что их преподают в институтах? Не потому ли, что более-менее грамотный человек, легально или с помощью таблеток от жадности для программ может запустить их на своём домашнем компе и делать с их помощью что-нибудь для себя?
Одним из преимуществ любого ПЛК является его массовость, которая позволяет всесторонне протестировать, в первую очередь, компиляторы и среду выполнения программ пользователя на целевом контроллере.
Ну, и по технике оказалось, что на Дракон вообще не предусмотрена работа с периферией контроллеров.
Нет даже упоминаний о низкоуровневой работе с регистрами периферии целевого контроллера, нет понятия "функциональный блок".
Не заметил возможности написания фрагментов программы на языках низкого уровня, например, С/С++ или ассемблер. Да много чего нет, без чего эффективное использование Дракона вряд ли возможно.
Сложилось стойкое ощущение, что все эти бузупречные алгоритмы, которые создаются в Драконе, просто висят в воздухе без привязки к реальному миру. Все эти привязки, которые показаны в роликах, это, пардон, скрученные синей изолентой костыли.