DRAKON.SU

Текущее время: Пятница, 19 Январь, 2018 20:38

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 119 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 14:31 

Зарегистрирован: Пятница, 15 Апрель, 2016 11:38
Сообщения: 118
Откуда: из СССР
Цитата:
Ваши две последние картинки сделаны по этому принципу? Или нет?


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 15:08 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 906
Откуда: Россия, Чебоксары
Arhat109 писал(а):
1. Хочется поиметь визуальный язык (или набор таковых), функционально полных по части программирования (само)управляющих(ся) устройств (роботов) на базе микропроцессоров.
Такую постановку приветствую.
Однако она будет очень сильно завязана на конкретное устройство (тип устройств).
В то время как заявленная задача "прикрутить DDL" гораздо шире такой постановки, и очень хотелось бы действительно как-то её решить (но пока оно представляется утопией).

Самое грустное, что я так и не вижу возможности профессионального применения такой штуки (а мне это бы в первую очередь пригодилось, потому как разработка софта для микроконтроллеров и есть моя работа).
Некоторые проблемы, которые возникают на этом пути, я изложил в теме "Что же такое алгоритм?", и решения удовлетворительного не получено...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 16:59 

Зарегистрирован: Пятница, 15 Апрель, 2016 11:38
Сообщения: 118
Откуда: из СССР
Просмотрел. Там 17 страниц .. почитаю, со временем, но уже на первой в общем-то Вам были даны ответы:
1. Алгоритм не отделим от Исполнителя.
2. "чем-то надо жертвовать" .. в смысле, что "невозможно объять необъятное", в т.ч. и в желании достичь 146% эффективности преобразования абстрактного алгоритма на систему команд конкретного исполнителя.

Вот поэтому, я и не гонюсь за абстрактным решением "прикрутить (универсальный на все 146%) язык DDL" к ДРАКОН.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 18:52 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 906
Откуда: Россия, Чебоксары
Arhat109 писал(а):
1. Алгоритм не отделим от Исполнителя.
Это не мне дан ответ, это я как раз и говорил :)
В противовес тем, кто ратовал за абстракцию "чистого алгоритма" ;)

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

А так да, для конкретной Ардуины вполне можно сделать хорошую конфетку. Если не требовать от неё чего-то большего...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 19:49 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3482
Откуда: Москва
Alexey_Donskoy писал(а):
для конкретной Ардуины вполне можно сделать хорошую конфетку.
Замечательные и очень важные слова.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 20:06 

Зарегистрирован: Пятница, 15 Апрель, 2016 11:38
Сообщения: 118
Откуда: из СССР
Да уж сколько всего придумано со времен "чистого С", а оно как было главным инструментом программирования микроконтроллеров да так и осталося. :)

Собственно, я и рассчитываю получить визуальное средство мощности "чистый С", причем как "туда" так и "взад". :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 20:20 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3482
Откуда: Москва
На меня большое впечатление произвел сайт http://flprog.ru/ посвященный Ардуино.

FLProg - визуальное программирование
Arduino для не программистов


Я там зарегистрировался и даже оставил отзыв-предложение в Гостевой книге.

Вот несколько отзывов оттуда
Цитата:
ГОСТЕВАЯ КНИГА

Цитата:
30. Денис [Denis147] (01.11.2016 14:41)

Отличный проект!!! Автору большое СПАСИБО!!! Не ожидал, что программирование окажется на столь доступном уровне, у проекта большое будущее! Я думаю, что программа как раз подойдет к обучению детей работе с ардуино. Ищё раз спасибо за работу, обязательно Вас поддержу!

Цитата:
29. Алексей (19.10.2016 17:58) E-mail

Давно хотел занятся микроконтроллерами и вот наконец добрался. Осваиваю ардуино неделю. До этого работал только с сименсами. После всех этих С и IDE словно из чужой страны домой вернулся.


Цитата:
28. Паронджанов [parondzhanov] (18.10.2016 18:27)
Глубокоуважаемый автор программы и сайта!

Мне кажется, можно использовать совместно Ардуино и визуальный язык ДРАКОН, который описан в моей книге: http://drakon.su/_media....tmy.pdf

Мне кажется также, что качество Вашего продукта и его популярность заметно можно улучшить, если использовать язык ДРАКОН. Если идея Вам нравится, Вы можете рассчитывать на мою помощь и поддержку.

Я заинтересован в личном контакте с Вами, лучше всего по скайпу.
Вот официальный форум языка ДРАКОН http://forum.oberoncore.ru/viewforum.php?f=77

Я узнал об Ардуино от пользователя Владимира Arhat109:
http://forum.oberoncore.ru/viewtopic.php?f=62&t=5671

С уважением,
Владимир Данилович Паронджанов
8-916-111-91-57
vdp2007@bk.ru
Скайп Владимир Паронджанов

Цитата:
27. Василий [ledsky] (04.10.2016 11:30)

Я в восторге! Особое уважение вызывает пассионарный подход создателя проекта. Эта страна ещё не безнадёжна ))). Если проекты не умрёт, то я уверен, впереди Вас ждёт большое будущее. Удачи в развитии проекта!

Цитата:
26. Наумов Николай Александрович [naum-1975] (04.10.2016 01:28)

Огромное спасибо за программу!!! Занимаемся на работе серьезными промышленными линиями, используем немецкие семены и ваго. Ради развлечения приобрел ардуинку пол года лежала без дела. В виду сложности языка и нехватки времени. После установки вашей проги за пол дня слепил часы с метеостанцией. Практически тот же ваговский кодесис, датчики температуры и часы подключились влет. ВСЕ РАБОТАЕТ!!! По удобству вы по моему переплюнули серьезных отечественных производителей ПЛК а у них целые коллективы. Желаю успехов и развития проекта!

Цитата:
25. svami (15.09.2016 12:59) E-mail

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

Цитата:
24. Максим [rolex_737] (13.08.2016 22:29)
Здравствуйте. Присоединяюсь ко всем положительным отзывам, которые оставили пользователи до меня.
БЕЗУСЛОВНО ваш проект заслуживает большого уважения! В него заложен ОГРОМНЫЙ потенциал для дальнейшего роста.

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

Предложение:
1. Измените ЖИРНЫЕ шрифты с засечками, хотя бы на стандартный Arial.
2. Дайте возможность передвигать блоки.
3. Добавьте сетку в рабочее поле.
4. Добавьте подсветку синтаксиса в "пользовательских блоках".
5. "Слизать" дизайн с Corel/Google/Adobe/MS

Цитата:
23. Mustafa [ckrmustafa] (03.08.2016 20:18)

Hello friend. Many thanks for your project.But I don't know Russian. Please could you make an English version? Many thanks again. cry cry

Цитата:
22. Валерий [RW4HDL] (25.07.2016 12:40)

Здравствуйте. Большое спосибо за вашу программу.
Опубликовал у вас на сайте несколко своих разработок.
Посмотрите пожалуйста, может что то можно в них улучшить.
Очень хотелось бы поддержку HX711, GY-BMP E/P 280 и GSM модулей.
И как реализовать функцию ATAN2.
Есть один вопрос по программе, почему то плохо работают таймеры на малых временах,
может у меня что то не получается?
Сам работаю инженером электроником АСУТП.
С уважением Валерий
RW4HDL@narod.ru

Цитата:
Цитата:
21. Дмитрий [dimkip] (20.06.2016 12:14)
Собрал управление по НС-05 телевизором. Всплыли ошибки.
1) по мотбасу в версии 14 не объявляется
SoftwareSerial Serial100(2, 4);
в 12 версии всё в порядке
надо или компилировать в 12 или в 14 вставить строку объявления.
2) при управлении ИК светодиодом неправильно выставляются номера стандарта
Уменя NEC программа присвоила идентификатор 3 а в проверке это
switch (manufactureCode) {
case 1:
_IR_Sender.sendNEC(code, length);
поэтому вместо NEC передавался сигнал

case 3:
_IR_Sender.sendRC5(code, length);



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 20:41 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3482
Откуда: Москва
Владимир, перечитал ваши слова об участии в создании сложного компилятора с языка АДА и проникся:
Цитата:
"АДА" - это уже "хорошее начало" ..

когда-то давно-давно участвовал в написании компилятора с него.

Остались очень хорошие воспоминания .. позже делал библиотеку "адских задачных примитивов" на С/С++ .. задачи, семейства, входы, очереди ожидания.. получилось прикольно.

Больше всего запомнилась книжка "Язык АДА" с золотым тиснением и в строгом черном переплете .. читал в поезде, народ - шарахался. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 21:06 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3482
Откуда: Москва
Алексей, прошу вас дать отзыв на этот материал.
Оригинал с картинками здесь: http://flprog.ru/index/o_programme_flprog/0-7
Цитата:
FLProg - система визуального программирования плат Arduino

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

С чего всё началось и как развивалось

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

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

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

Как дела обстоят сейчас

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

Кроме того, для такой работы требуется сочетание навыков, которые достаточно редко встречаются вместе. Программисты редко дружат с паяльником, а электронщики не часто являются программистами. Для программистов проблему решили созданием платы Arduino, которая позволяет собирать устройства без использования инструментов.

FLProg - система визуального программирования плат Arduino

Для электронщиков и электриков все хуже. До последнего времени для того, чтобы создать свое устройство с применением микроконтроллера, у них было два пути. Либо самим изучать язык программирования "С", либо просить помощи у программиста. Оба пути не самые лучшие. Для того что бы стать программистом, необходим определенный склад ума, не всегда совместимый с опытом чтения электрических схем. А знакомого программиста может не оказаться под рукой.

В то же время давно существуют среды программирования адаптированные под обычного инженера – электронщика, ну или просто электрика. Я имею в виду среды программирования промышленных контроллеров. ПЛК. Они позволяют создавать программное обеспечение для контроллеров на языках FBD и LAD. Собственно говоря, как таковыми языками они не являются. Это, скорее, графические среды для рисования принципиальных или логических схем.

FBD (Function Block Diagram)

– графический язык программирования стандарта МЭК 61131-3. Программа образуется из списка цепей, выполняемых последовательно сверху вниз. При программировании используются наборы библиотечных блоков.

Блок (элемент) – это подпрограмма, функция или функциональный блок (И, ИЛИ, НЕ, триггеры, таймеры, счётчики, блоки обработки аналогового сигнала, математические операции и др.). Каждая отдельная цепь представляет собой выражение, составленное графически из отдельных элементов.

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

Ladder Diagram (LD, LAD, РКС)

FLProg - система визуального программирования плат Arduino– язык релейной (лестничной) логики. Синтаксис языка удобен для замены логических схем, выполненных на релейной технике.

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

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

Протекание или отсутствие тока в этой цепи соответствует результату логической операции (истина – если ток течет; ложь – если ток не течет).

Основными элементами языка являются контакты, которые можно образно уподобить паре контактов реле или кнопки. Пара контактов отождествляется с логической переменной, а состояние этой пары – со значением переменной. Различаются нормально замкнутые и нормально разомкнутые контактные элементы, которые можно сопоставить с нормально замкнутыми и нормально разомкнутыми кнопками в электрических цепях.

Такой подход оказался очень удобным для легкого вхождения в разработку систем АСУ инженеров-электриков и электронщиков. Разрабатывая проекты установок, они могли легко привязать работу этих установок к алгоритмам работы контроллера.

В обслуживании этих установок на объекте также лучше, когда существующий обслуживающий персонал может легко проверить работу системы АСУ, найти проблему. И при этом нет необходимости вызывать по каждому пустяку программиста из «Центра». И это подход себя оправдал. На сегодняшний день почти все системы промышленной автоматики созданы с помощью таких средств разработки.

Такая среда разработки есть у Siemens, ABB, Schneider Electric… да и практически у всех производителей ПЛК. Казалось бы, идеальное решение для любителей самоделок. Но, как всегда есть «но». Все эти среды программирования привязаны к промышленным контроллерам определённого производителя. И цены на эти контроллеры мало вдохновляют. Очень редко какой семейный бюджет позволит приобрести контроллер ценой в несколько десятков тысяч рублей.

Зато платы Arduino идеально подходят для самодельщиков и кулибиных, на которых наша страна всегда была, есть и будет богата. Но, опять «но». Программируются эти платы на языке C.

Для большинства этих умнейших людей, с очень прямыми руками, растущими из положенного места, язык С. это китайская азбука. Они могут придумать, нарисовать, собрать, отладить и запустить сложнейшие схемы, но If, For, Case, Void и т.п. - это не для них.

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

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

На основании всех этих выкладок и был создан проект FLProg. Основная идея проекта – совместить принципы промышленного программирования с дешевизной и удобством Arduino. Проект предлагает новый уровень абстракции с довольно смелым заявлением –

Чтобы программировать микроконтроллеры не обязательно знать языки программирования!

В результате получился инструмент, позволяющий создавать свои проекты на Arduino любому человеку, знакомому с электротехникой и электроникой, позволяющий создать свое изделие с использованием данных плат.

Проект состоит из двух частей.

Первая часть -это десктоп-приложение FLProg, представляющее собой графическую среду программирования плат Arduino.

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

Начнем по порядку

Программа FLProg позволяет создавать прошивки для плат Arduino с помощью графичес­ких языков FBD и LAD, которые являются стандартом в области программирования промыш­ленных контроллеров. При создании программы я постарался максимально использовать наработки программистов Siemens, ABB, Schneider Electric в их средах программирования.

Я немного расширил классический функционал этих языков, добавив функциональные блоки, отвечающие за работу с внешними устройствами. Они являются «обертками» над библиотеками, предназначенными для работы с ними. Программа работает на компьютере под управлением OS Windows, Linux-32 и Linux-64

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

Со временем, по мере приобретения, планируется поддержка плат основанных на контроллерах STM.

Проект в FLProg представляет собой набор плат, на каждой из которых собран законченный модуль общей схемы. Для удобства работы каждая плата имеет наименование и комментарии. Так же каждую плату можно свернуть (для экономии места в рабочей зоне, когда работа над ней закончена) и развернуть. Красный индикатор в наименовании платы указывает на то, что в схеме платы есть ошибки.

В настоящее время ведется разработка функциональных блоков для работы с трех­осевым гироскопом, люксометром, и другими датчиками и сенсорами. Также ведется работа над организацией обмена данными через , радиоканал, и Wifi. В дальнейших планах. разработка SCADA-системы для организации интерфейса систем, разработанных в программе FLProg на персональном компьютере или графических дисплеях.

FLProg - система визуального программирования плат Arduino

После завершения работы над проектом производится его компиляция. После компиляции автоматически откроется программа "Arduino 1.5.7" с загруженным скетчем вашего проекта. В программе "Arduino IDE 1.5.7" вам необходимо будет указать номер COM ­порта, к которому подключен ваш контроллер, выбрать его тип, и произвести заливку скетча в контроллер. Подробнее о программе "Arduino IDE 1.5.7" можно почитать на сайте Arduino.ru.

Где скачать FLProg?

На странице загрузок.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 22:00 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 906
Откуда: Россия, Чебоксары
Владимир Паронджанов писал(а):
Алексей, прошу вас дать отзыв на этот материал.
Какой именно нужен отзыв?
Подход правильный, реализован вроде вполне хорошо.
Для программирования контроллеров - самое то. Рабочая, пригодная для промышленного применения штука - и под Линукс, бесплатная, если правильно понял.
Интересно бы, конечно, посмотреть эффективность кодогенератора (и вообще про кодогенерацию сведений там не нашёл с первого взгляда - может, и интерпретатор - тогда гораздо хуже).

Какие именно вопросы у вам по этой штуке? Я такие системы во множестве разрабатывал, если что. LD у меня для кучи тоже есть, но по факту не пользуется им никто почти - возможности малы. FBD - самая правильная вещь, самая подходящая технология.

Почему? Потому что контроллеры редко занимаются алгоритмическими задачами. Как правило, они постоянно отрабатывают одну и то же логику (описанную на языке функциональных схем, FBD) и одни и те же контуры регулирования (описанные, естественно, тоже на FBD).
Алгоритмическое программирование пригодно для игрушечных роботов (для целей обучения). А для промышленных роботов вообще как таковые программы никто не пишет - всё управляется данными, то есть программами на специальных языках (DSL), которые на языки-то даже не похожи :)

И ещё для чёткого понимания.
В контроллерах существует разделение на системное ПО и пользовательское (технологическая программа). Все упомянутые инструменты предназначены для разработки ТП пользователем.
Системное ПО (которое тоже мой хлеб) разрабатывается на низком уровне, и как туда прикручивать средства вроде Дракона, не особо ясно (проблемы я тут много раз излагал).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 22:32 

Зарегистрирован: Пятница, 15 Апрель, 2016 11:38
Сообщения: 118
Откуда: из СССР
Попробую вернуть тему к своей "бане" .. :)

Оказывается я был неправ и никто меня не поправил. Икона if-then называется все-таки "Вопрос", а не так как я её тут "окрестил" .. ну да ладно.
Поскольку в ДРАКОН нет выполнения команд по временному условию (работа без пауз), то выкладываю очередную правку рисунка с детальными пояснениями:


Вложения:
drakMoveLine3.jpg
drakMoveLine3.jpg [ 89.33 КБ | Просмотров: 1884 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 22:50 

Зарегистрирован: Пятница, 15 Апрель, 2016 11:38
Сообщения: 118
Откуда: из СССР
Пояснения:
1. по алгоритму:
- Цикл выполняет последовательно все иконы внутри, согласно маршрутам по лианам.
- Икона "ждать" (так кажется) тут использована не для собственно ожидания (ничего не делания), а для указания, что блок икон в её скобке исполняется (также последовательно) но не каждый раз при проходе цикла, а каждые 8 мсек после последнего их исполнения. Возможно было правильнее расписать детально: установить таймер в 0 перед входом в цикл, указать икону "Вопрос" прошло ли 8мсек и если прошло, то выполнить оба действия и переустановить таймер в 0 заново. Но, для меня это "макрос на С", который так и выглядит, как нарисовано тут:
Код:
everyMillis(8, {
  motor.On(LEFT, speedLeft);
  motor.On(RIGHT, speedRight);
});
:)

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

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

- Представлен вариант с выражением "присваивание" со знаком "=". Можно заменить на := в паскалевском стиле. Лично мне - "без разницы", но вдруг есть какое-то глубоко-теоретическое обоснование. Интересен ваш комментарий.
- Все иконы данных оформлены с заливкой (и чем глубже вложение - тем темнее) и пунктирной границей. Это предложение от дизайнеров, посмотревших предыдущий вариант "мельком". На ваш суд;
- По знаковым и беззнаковым отличиям в отрисовке боковин для типов данных - не определился. Предложение выше с закраской боковин "режет глаз", проверил. Нужны идеи..

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


Последний раз редактировалось Arhat109 Понедельник, 14 Ноябрь, 2016 22:59, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 22:54 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 906
Откуда: Россия, Чебоксары
Arhat109 писал(а):
Да, и здесь нет "определения" переменных и констант (Что такое "ЧЕРНОЕ" и т.д.).. только использование.
При визуальном обозначении типов объявление и не обязательно.
А вот инициализация - обязательна!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 23:07 

Зарегистрирован: Пятница, 15 Апрель, 2016 11:38
Сообщения: 118
Откуда: из СССР
Можно и так, но хотелось бы иметь возможность "низкоуровнего управления" - в виде явного указания таких свойств данных как "время жизни" (локальный объект, локально-статический, глобальный и т.д.), ограничения доступа (константный, переменный, приватный и т.д.), область видимости, аппаратную привязку и т.д.

Многое из этого конечно же нужно вынести ИЗ алгоритма ДРАКОН на отдельные листы "определения данных" и возможно со своим набором правил отрисовки, но надо также иметь и механизм вставки определений и в алгоритм: тоже какой-то "спец. иконой". Ибо "подняться и абстрагироваться вверх можно всегда" (перейдя к ДРАКОН-схемам на обычном языке), а вот отсутствие возможности не позволяет "спустится вниз", к тому самому "аппаратному исполнителю".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Понедельник, 14 Ноябрь, 2016 23:14 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 906
Откуда: Россия, Чебоксары
Arhat109 писал(а):
Многое из этого конечно же нужно вынести ИЗ алгоритма ДРАКОН на отдельные листы "определения данных"
Ни в коем случае.
Если речь идёт об определении локальной переменной, то она и должна быть локальной - в пределах своего алгоритма. Иначе - разрыв когнитивной связи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Вторник, 15 Ноябрь, 2016 08:19 

Зарегистрирован: Пятница, 15 Апрель, 2016 11:38
Сообщения: 118
Откуда: из СССР
Ну вот я про тоже самое .. если хотим иметь определение локала, то его надо втыкивать непосредственно в ДРАКОН-схему .. как?

Поковырялся в ГОСТ на блок-схемы и обнаружил там забавную картинку "Запоминаемые данные" .. может как-то её приспособить?

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

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

2. Какой из блоков вызова процедур моторов "красивше" на последней схеме? Или есть смысл оставить оба варианта? Вертикальное указание параметров полезно при большом количестве, но это как-бы и не привествуется в программировании из-за накладных расходов на каждый параметр. Горизонтальное расположение получилось компактнее и по мне так ещё и нагляднее.

3. Аналогично способам размещения параметров в вызове, можно предложить "вертикальную" конструкцию для икон "Выражение" (сложение столбиком), в которой можно использовать "полку" для указания идентификатора куда присваивается результат. Причем результат по-прежнему можно точно также обрамлять боковинами для указания его типа ..
Что-то подобное предлагается в ДРАКОН для сложных логических вычислений .. можно обощить на любые виды вычислений и даже красивше. :)
А если разрешить идентификатор под полкой, а не только сверху, то вообще будет визуальное представление "математика столбиком".

P.S.
Указание времени жизни "глобальное" или static предлагаю сделать рисунком "гвоздик" (черный эллипс с палкой вниз), который будет пришпиливать определение объекта данных к иконе описания .. в этом случае, как раз блок "запоминаемые данные" из ГОСТ удачно имеет боковое отделение для размещения таких гвоздиков..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Вторник, 15 Ноябрь, 2016 09:02 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 906
Откуда: Россия, Чебоксары
Arhat109 писал(а):
Возможно было правильнее расписать детально
Не расписывая детально, а отсылая таким образом к некоему макросу внутри-не-пойми-чего, вы фактически вводите новый синтаксический элемент. В данном случае это явно не оправдано.
То, что касается алгоритма (выполнения части блоков) на текущем уровне, должно быть показано явно.
А вот вопрос можно бы не детализировать, оставить в виде "прошло 8 мс?". Но.
Реализация предполагает наличие сохранённого значения, с которым производится сравнение. И операцию чтения текущего времени тоже.
Если это единственное место в программе, можно и скрыть без детализации. Но очевидно, что таймеров/счётчиков/флагов/моментов отсчёта может быть много - и мы неизбежно приходим к необходимости детализации. Пусть в виде вызова внешней процедуры, пожалуйста. Можно прямо в тексте вопроса, но со всеми необходимыми параметрами.

На самом деле макроподстановки надо и в визуальном языке иметь. Бо удобно и надёжно.

Цитата:
2 способа оформления иконы "вставка" с передачей параметров
Однозначно первый! Надписи сверху - это лютый ад. И если параметров будет хотя бы дюжина, разработчик убьётся об стену.

Цитата:
Можно заменить на := в паскалевском стиле. Лично мне - "без разницы", но вдруг есть какое-то глубоко-теоретическое обоснование.
Обоснование очень простое: надёжность vs. провокация ошибок. Поэтому = есть = (математическое сравнение), а := есть присваивание. Никаких жутких == !
Помнится, три дня искал опечатку перфораторщицы на ПЛ/1: A=B=C; - должен был быть +

Но вопрос ни о чём. Мы же не о тексте, а о визуальном представлении. Стрелка - просто и понятно. Никаких текстовых знаков.

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

Цитата:
Это предложение от дизайнеров
Вот если дизайнер занимался разработкой программных систем хотя бы несколько лет, то его мнение будет иметь какой-то вес. ;)

Цитата:
Каким образом правильно объединять несколько икон в один, общий блок
Исходя из соображений инкапсуляции и экономии места.
Какая разница, что там предусмотрено или нет. Это соображение не должно мешать. Целесообразно - значит, надо.

Цитата:
математика столбиком
Тут не рассуждать надо, а привести рисунки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Вторник, 15 Ноябрь, 2016 09:50 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3482
Откуда: Москва
Alexey_Donskoy писал(а):
Тут не рассуждать надо, а привести рисунки.
Согласен. Золотые слова!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Вторник, 15 Ноябрь, 2016 09:53 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3482
Откуда: Москва
Цитата:
Поскольку в ДРАКОН нет выполнения команд по временному условию (работа без пауз),
Почему нет? Есть.
Почему без пауз? Паузы есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Язык ДРАКОН и Data Definition Language
СообщениеДобавлено: Вторник, 15 Ноябрь, 2016 09:58 

Зарегистрирован: Пятница, 15 Апрель, 2016 11:38
Сообщения: 118
Откуда: из СССР
Алексей, огромное спасибо за содержательные ответы, но рисовать картинки могу практически только по ночам и это "не быстро" ибо делаю в Libre Office Draw .. то ещё чудо.

Конечно, хотелось бы большей активности от остальных читателей темы тоже (я вижу что её читает примерно 8-16 чел.). :)

P.S. В доступе есть только "рекламные дизайнеры" .. те что макетики рекламные на щиты ваяют.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 119 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2017, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB