DRAKON.SU

Текущее время: Пятница, 29 Март, 2024 01:13

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




Начать новую тему Ответить на тему  [ Сообщений: 68 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: Воскресенье, 28 Октябрь, 2018 19:02 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
код сгенерированный для окна программы:
L:=1;
WHILE TRUE DO
CASE L OF

1: L:=3; (*1.1.1-Заголовок | |FUNCTION_BLOCK EMUL_BOILER | *)

3: (*1.1.3-Ветка | |подпрограммы | *)
(*1.1.4-Комментарий | |Чисто техническая ветка.... Смысл ее заключается в следующем: под экземпляр в контролере выделяется память все пременнные в экземпляре сохраняются Если не обращатся к подпрограме то состояние переменых в подпрограмме много....Много циклов контролера ОСТАЮТСЯ БЕЗ ИЗМЕНЕНИЯ Это приводит к "зависанию" пременных ЭТО вопрос к Владимиру Даниловичу- КАК ГРАФИЧЕСКИ ВСЕ ЭТО ПРЕДСТАВЛЯТЬ??? | *)
TP_1
(
IN:=NOT(TP_1.Q),
PT:=t#1s,
Q=>,
ET=>
); (*1.1.5-Полка |Функциональный блок |Т_П_1 |Вход Пуск:=НЕ (ВЫХ), Вр_ИМП:=1 сек, Выходы ВЫХ=>, Вр_ОТЧ=>, *)
TON_1
(
IN:=,
PT:=t#10s,
Q=>,
ET=>
); (*1.1.7-Полка |Функциональный блок |Т_ВКЛ_1 |Вход Пуск:=, Вр_ВКЛ:=10 сек, Выходы ВЫХ=>, Вр_ОТЧ=>, *)
TON_2
(
IN:=,
PT:=t#1s,
Q=>,
ET=>
); (*1.1.9-Полка |Функциональный блок |Т_ВКЛ_2 |Вход Пуск:=, Вр_ВКЛ:=1 сек, Выходы ВЫХ=>, Вр_ОТЧ=>, *)
TOF_1
(
IN:=,
PT:=t#1s,
Q=>,
ET=>
); (*1.1.11-Полка |Функциональный блок |Т_ВЫКЛ_1 |Вход Пуск:=, Вр_ВЫКЛ:=1 сек, Выходы ВЫХ=>, Вр_ОТЧ=>, *)
L:=14; (*1.1.13-Адрес | |Эмитация обратной связи | *)

14: (*1.1.14-Ветка | |Эмитация обратной связи | *)
IF START THEN L:=23; ELSE L:=18; END_IF; (*1.1.15-Вопрос | |ПУСК? | *)

18: TON_1
(IN:=FALSE); (*1.1.18-Действие | |Т_ВКЛ_1 ПУСК:=ЛОЖЬ | *)
FIRE:=FALSE; L:=29; (*1.1.20-Действие | |ПЛАМЯ:=ЛОЖЬ | *)

23: TON_1
(IN:=TRUE); (*1.1.23-Действие | |Т_ВКЛ_1 ПУСК:=ИСТИНА | *)
IF TON_1.Q THEN L:=27; ELSE L:=29; END_IF; (*1.1.25-Вопрос | |Т_ВКЛ_1.ВЫХ? | *)

27: FIRE:=TRUE; L:=29; (*1.1.27-Действие | |ПЛАМЯ:=ИСТИНА | *)

29: (*1.1.29-Ветка | |Эмуляция температуры | *)
IF FIRE THEN L:=57; ELSE L:=32; END_IF; (*1.1.30-Вопрос | |ПЛАМЯ? | *)

32: (*1.1.32-Комментарий | |нет пламени температура должна начать падать с задержкой | *)
TON_2
(IN:=FALSE); (*1.1.33-Действие | |Т_ВКЛ_2 ПУСК:=ЛОЖЬ | *)
TOF_1
(IN:=FALSE); (*1.1.34-Действие | |Т_ВЫКЛ_1 ПУСК:=ЛОЖЬ | *)
IF TOF_1.Q THEN L:=38; ELSE L:=48; END_IF; (*1.1.36-Вопрос | |Т_ВЫКЛ_1.ВЫХ? | *)

38: FLAG_TRIG_3:=FALSE; L:=40; (*1.1.38-Действие | |Флаг_ТРИГ_3:=ЛОЖЬ | *)

40: FLAG_TRIG_2:=FALSE; L:=42; (*1.1.40-Действие | |Флаг_ТРИГ_2:=ЛОЖЬ | *)

42: IF TP_1.Q THEN L:=44; ELSE L:=46; END_IF; (*1.1.42-Вопрос | |Т_П_1.ВЫХ? | *)

44: L:=103; (*1.1.44-Комментарий | |Эта ветка импульса | *)

46: (*1.1.46-Комментарий | |Эта ветка между импульсом Время исполнения ветки один цикл контроллера | *)
T_OUT:=T_OUT+U_TEMP*K_TEMP; L:=103; (*1.1.47-Действие | |Т_Вых:=Т_Вых+СКОР_ТЕМП х К_ТЕМП | *)

48: K_TEMP:=-1; (*1.1.48-Действие | |К_ТЕМП:=-1 | *)
IF FLAG_TRIG_4 THEN L:=38; ELSE L:=52; END_IF; (*1.1.50-Вопрос | |Флаг_ТРИГ_4 | *)

52: U_TEMP:=RDM(0); (*1.1.52-Полка |Функция |СКОР_ТЕМП:=СЛ_ЧИСЛО |Вход: Нач_Знач:=0 *)
FLAG_TRIG_4:=TRUE; L:=38; (*1.1.55-Действие | |Флаг_ТРИГ_4:=ИСТИНА | *)

57: TOF_1
(IN:=TRUE); (*1.1.57-Действие | |Т_ВЫКЛ_1 ПУСК:=ИСТИНА | *)
TON_2
(IN:=TRUE); (*1.1.59-Действие | |Т_ВКЛ_2 ПУСК:=ИСТИНА | *)
IF TON_2.Q THEN L:=68; ELSE L:=63; END_IF; (*1.1.61-Вопрос | |Т_ВКЛ_2.ВЫХ? | *)

63: FLAG_TRIG_3:=FALSE; L:=64; (*1.1.63-Действие | |Флаг_ТРИГ_3:=ЛОЖЬ | *)

64: FLAG_TRIG_1:=FALSE; (*1.1.64-Действие | |Флаг_ТРИГ_1:=ЛОЖЬ | *)
FLAG_TRIG_4:=FALSE; L:=40; (*1.1.66-Действие | |Флаг_ТРИГ_4:=ЛОЖЬ | *)

68: IF POWER THEN L:=69; ELSE L:=79; END_IF; (*1.1.68-Вопрос | |МОЩНОСТЬ | *)

69: (*1.1.69-Комментарий | |полная мощность | *)
K_TEMP:=1; (*1.1.70-Действие | |К_ТЕМП:=1 | *)
IF FLAG_TRIG_3 THEN L:=64; ELSE L:=74; END_IF; (*1.1.72-Вопрос | |Флаг_ТРИГ_3 | *)

74: U_TEMP:=RDM(0); (*1.1.74-Полка |Функция |СКОР_ТЕМП:=СЛ_ЧИСЛО |Вход: Нач_Знач:=0 *)
FLAG_TRIG_3:=TRUE; L:=64; (*1.1.77-Действие | |Флаг_ТРИГ_3:=ИСТИНА | *)

79: (*1.1.79-Комментарий | |Малая мощность Случайный выбор роста или падения температуры | *)
IF FLAG_TRIG_1 THEN L:=82; ELSE L:=92; END_IF; (*1.1.80-Вопрос | |Флаг_ТРИГ_1 | *)

82: IF FLAG_TRIG_2 THEN L:=83; ELSE L:=87; END_IF; (*1.1.82-Вопрос | |Флаг_ТРИГ_2 | *)

83: FLAG_TRIG_3:=FALSE; (*1.1.83-Действие | |Флаг_ТРИГ_3:=ЛОЖЬ | *)
FLAG_TRIG_4:=FALSE; L:=42; (*1.1.85-Действие | |Флаг_ТРИГ_4:=ЛОЖЬ | *)

87: U_TEMP:=RDM(0); (*1.1.87-Полка |Функция |СКОР_ТЕМП:=СЛ_ЧИСЛО |Вход: Нач_Знач:=0 *)
FLAG_TRIG_2:=TRUE; L:=42; (*1.1.90-Действие | |Флаг_ТРИГ_2:=ИСТИНА | *)

92: VAR_1:=RDM(0); (*1.1.92-Полка |Функция |ЧИСЛО_1:=СЛ_ЧИСЛО |Вход: Нач_Знач:=0 *)
IF VAR_1>0.5 THEN L:=97; ELSE L:=101; END_IF; (*1.1.95-Вопрос | |ЧИСЛО_1>0.5? | *)

97: K_TEMP:=-1; L:=99; (*1.1.97-Действие | |К_ТЕМП:=-1 | *)

99: FLAG_TRIG_1:=TRUE; L:=42; (*1.1.99-Действие | |Флаг_ТРИГ_1:=ИСТИНА | *)

101: K_TEMP:=1; L:=99; (*1.1.101-Действие | |К_ТЕМП:=1 | *)

103: (*1.1.103-Ветка | |Завершение | *)
EXIT; (*1.1.104-Конец | |Конец | *)

END_CASE;
END_WHILE;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 28 Октябрь, 2018 19:05 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Для использования функционального блока в КДС 2 и 3 необходимо использовать библиотеку OSCAT


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 28 Октябрь, 2018 19:07 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
шаг 4 проверка модуля
создаем ФБ и копируем листинг переменных и программы в необходимое окно


Вложения:
шаг 4_1 проверка модуля.png
шаг 4_1 проверка модуля.png [ 160.52 КБ | Просмотров: 8853 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 28 Октябрь, 2018 19:08 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Сегодня делаю просто проверку в режиме эмуляции:


Вложения:
шаг 4 проверка модуля.png
шаг 4 проверка модуля.png [ 108.17 КБ | Просмотров: 8853 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 28 Октябрь, 2018 19:13 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Блок ведет себя как мы и задали в алгоритме!
Немного необходимо добавить инерции после отключения пламени


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 28 Октябрь, 2018 21:29 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
А_МУР писал(а):
код сгенерированный Драконом для окна переменных:
............................................
лично я предпочитаю работать с милисекундами 1х10-3 степени сек)
будем использовать готовые Функциональные блоки из библиотеки STANDART

Таким образом мы получим универсальный ФБ который будет работать в КдС 2.3 и КДС 3.5


На самом деле очень точные вычисления с интегралами по миллисекундам делаются на библиотеках
SISTIME.lib но тогда блок нужно будет редактировать под каждый КДС так как различна работа с
системным временем
Мало того нам не интересна высокая точность вычисления интеграла.

Алексей, меня заинтересовали фразы:
Цитата:
будем использовать готовые Функциональные блоки из библиотеки STANDART

Таким образом мы получим универсальный ФБ который будет работать в КдС 2.3 и КДС 3.5

1. Кто является разработчиком готовых Функциональных блоков из библиотеки STANDART ?

2. Кто является разработчиком универсального Функционального блока ?

3. Чем отличается универсальный функциональный блок от готового функционального блока ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 28 Октябрь, 2018 22:26 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Для начала разберемся что такое функции, функциональные блоки
Функция это некая подпрограмма под хранения перменных в контроллере память не выделяется
Как правило это математические выражения типа корен квадратный, битовае перестановки и т.д
Функциональный блок (в нашем случае функциональная схема) это подпрограмма под которую в контроллере выделяются ячейки памяти для хранения переменных. Кроме того функциональные блоки могут иметь экземпляры с уникальными номерами
Программа это тоже что и функциональный блок только использоваться в програме может только один экземпляр программы
Самая главная программа в контроллере PLC_PRG . без этой программы контроллер работать не будет
Все остальные программы функциональные блоки и функции находятся внутри главной программы контроллера.
Библиотека Стандарт в строена в КДС
В состав библиотеки входят
функциональные блоки
Таймеры
- таймер задержки включения
- таймер задержки выключения
- таймер импульса
- таймер реального времени
Счетчики:
- счетчик инкрементный
-счетчик декрементный
-счетчик универсальный
Детекторы импульсов
- детектор переднего фронта
- детектор заднего фронта
Переключатели и строковые функции


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 28 Октябрь, 2018 22:39 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Так как наличие библиотеки типа Стандарт в любой среде разработки и языке для контроллеров - это уже исторически сложившийся стандарт.
В драконе тоже должна быть идеология использования готовых языковых часто используемых комбинаций.
Например предложил бы продумать идеологию маркеров исполнения маршрутов - системные переменные

Кроме того необходимо продумать эмулятор алгоритма - утилита языка дракон которая сможет выполнить алгоритм в режиме исполнения
Ну и режим отладки, на первое время возможность тестирования программы с контроллера хотя бы через OPC-сервер- такая конфигурация может оживить дракон и перевести его из разряда текстово графического редактора, действительно в среду разработки ПО для ПЛК


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Октябрь, 2018 22:00 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Думаю не стоит тратить время на дальнейшее развитие темы. Заинтересованных лиц в процессе я не увидел!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 30 Октябрь, 2018 14:27 

Зарегистрирован: Среда, 03 Май, 2017 09:55
Сообщения: 200
А_МУР писал(а):
Думаю не стоит тратить время на дальнейшее развитие темы. Заинтересованных лиц в процессе я не увидел!

Сама тема-то нормальная.

Но с ИС Дракон нужно завязывать. Нужна реальная среда разработки (с возможностью симуляции и отладки), а не инструмент для рисования картинок.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 30 Октябрь, 2018 15:07 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Такой странный В. Ситников.
Владимир Ситников писал(а):
Но с ИС Дракон нужно завязывать.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 30 Октябрь, 2018 19:39 

Зарегистрирован: Среда, 03 Май, 2017 09:55
Сообщения: 200
LKom писал(а):
Предлагает уже завязывать с ИС Драконом

ИС Дракон годится разве что для рисования картинок с гуманитарным уклоном.

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

Понятное дело, что ещё десяток лет эта самая ИС Дракон просуществует (1-ая версия выпущена в 2008-ом? как раз 10 лет назад), и в ней мало что изменится.

Нужна ли рынку интегрированная среда разработки (IDE) с поддержкой Дракон языка -- вопрос открытый.
Но, если и делать эту самую IDE, то уж точно, не на базе ИС Дракон, а на базе JetBrains platform или Visual Studio Code.

LKom писал(а):
но при этом не имеет альтернативы.

Я давно озвучивал вариант -- создание языка Дракон в среде https://hardella.com/
Так что ИС Дракон не является единственно возможным вариантом развития событий. Наоборот, ИС Дракон может служить разве что отправной точкой.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 30 Октябрь, 2018 20:19 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Ну вот докатились до опасной Ситуации:
Верха - не могут, Низы - не хотят
Владимир с " броневика" объявил революцию на форуме( кстати еще и октябрьскую)
Теперь осталось найти "Иосифа Висарионовича"- что бы мобилизовал всех форумчан и в кратчайшие сроки индустриализировал Дракон. Всех несогласных "расстрелять" прямо здесь на форуме :D


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 31 Октябрь, 2018 06:13 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
смог сжать что бы выложить


Вложения:
20181030_185522 (1) (convert-video-online.com) (1).gif
20181030_185522 (1) (convert-video-online.com) (1).gif [ 9.58 МБ | Просмотров: 8767 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 31 Октябрь, 2018 06:37 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Это те котлы которые нужно было эмулировать.
Эмулятор нужен для проверки программы управления и регулирования котла.
Изначально был сделан летний режим. Небольшой блок регулятора включал в себя специальный ПИ с подключаемой интегральной частью на Драконе.
Летний режим сократил расход газа в 2.3 раза против штатной автоматики, точности поддержания заданой уставки 1 гр против дельты 8 грдусов на штатной автоматике. Заказчик обратился за Зимним режимом. Через месяц будет ясно какая экономия. В зимнем режиме работают два котла по погодозависимой уставке
Более качественное видео размещу на сайте ОКБ


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 31 Октябрь, 2018 08:43 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
А_МУР писал(а):
Это те котлы которые нужно было эмулировать.

Более качественное видео размещу на сайте ОКБ

Алексей, вы делаете важные вещи. Новые вещи. О которых почти никто не знает.

Чтобы люди узнали о ваших разработках, ваши видео надо обязательно размещать на YouTube.

А здесь на форуме, надо давать ссылки, как это делает Степан Митькин, Сергей Ефанов, Альгирдас Каралюс и др.

Видео. Использование языка ДРАКОН для программирования микроконтроллеров. Часть 1. Разработка программы управления автоматическим дверным замком.
https://www.youtube.com/watch?v=Ua9dUUO ... e=youtu.be

https://www.youtube.com/watch?v=Q0YBdX9xazw


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 31 Октябрь, 2018 09:37 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Дракон несомненно имеет много талантов.

Без наличия простейшего эмулятора его таланты останутся скрытыми навсегда.

Например:
При эксплуатации Дракона выявилось некое качество для ПЛК, основанное на специфике языка. Оказалось что при определенной языковой конструкции и цикличной особенности ПЛК начинает выполнять цикл за 50-10 наносекунд против 3-8 миллисекунд.

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

По совету инженера ОВЕН, я вручную методом несложных перестроений, перестроил текст сформированный Дракон-редактором Геннадия Николаевича для КДС.
И получил средний цикл 50-90 наносекунд.

Много-много интересных вещей позволяет делать Дракон.
Для дальнейшего развития (этап 1) языка необходимо пересмотреть теорию.

А именно:
Владимир Данилович! Почему в ваших трудах нет понятия переменных.
Я например не смогу объяснить контроллеру "зажечь красный свет"
Он у меня спросит: а чего такое "зажечь" , чего такое "красный " и чего еще за "свет"? Где они сидят и чего им от контроллера нужно?

Был в Сколково — видел полностью автоматизированный хирургический стол. Это творение Сколковчан делает пока не сложные операции без человека

Не поверите — зарождается новая профессия хирург-программист! Он не пишет устройству возьми скальпель и сделай надрез 10 см.
Он работает с массивами, а именно скальпель ланцет #6 - это переменная из массива "инструмент" со значением 39.

А где же теория и инструменты по работе с массивами в драконе?

Проблема и обсуждения работы со временем

Если бы Владимир Данилович продумал теорию синхронизаторов с точки зрения переменных, то синхронизатор становится почти универсальным таймером!

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 31 Октябрь, 2018 10:08 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Владимир Ситников !
10 раз просматриваю харделлу и пока ни как не могу сообразить с чего начинать
А именно где графический интерфейс дракон схем делать надо?
Вы видимо работали с нею?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 31 Октябрь, 2018 10:36 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
А_МУР писал(а):
Владимир Данилович! Почему в ваших трудах нет понятия переменных.
Я например не смогу объяснить контроллеру "зажечь красный свет"
Он у меня спросит: а чего такое "зажечь" , чего такое "красный " и чего еще за "свет"? Где они сидят и чего им от контроллера нужно?
Алексей, тут какое-то недоразумение.
Я сейчас послал вам книгу "Учись..."
наберите в поиске
Цитата:
переменн

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

Поэтому желательно поточнее указать, чего, на ваш взгляд, не хватает.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 31 Октябрь, 2018 11:18 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
А_МУР писал(а):
Владимир Ситников !
10 раз просматриваю харделлу и пока ни как не могу сообразить с чего начинать
А именно где графический интерфейс дракон схем делать надо?
Вы видимо работали с нею?

Хорошо
Ситуация следующая собрались все заинтересованые люди все в месте и решили написать программы для компьютера. В теории есть только графопостроение.
А теперь давайте попробуем любой из ваших примеров натянуть на машину?


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

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


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

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


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

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