DRAKON.SU

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

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




Начать новую тему Ответить на тему  [ Сообщений: 276 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 14  След.
Автор Сообщение
СообщениеДобавлено: Суббота, 29 Декабрь, 2018 09:56 

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


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

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
А_МУР писал(а):
Если в синхронизаторе написано строго А= 10 с, то синхронизатор мало вероятно сработает, так как цикличность обращения к таймеру у каждого устройства своя: на ПЛК состовляет от 50наносекунд до 1с. Жизнь такова что" А " никогда не будет равно 10 с. "А" может быть равно 10.000001 с или 10.1 с. Поэтому со временем игрушки плохи. Это приводит к выходу из строя оборудования
При работе со временем можно использовать только сравнение больше или равно. Отсюда все вытекающие последствия

В вашем случае (случае ПЛК) запись А = 10 с в иконе Синхронизатор следует понимать так: больше или равно 10 с.
Можно и по-другому: А >= 10 c

Я не вижу никаких проблем.


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

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Если наствпает А>=10 с то команда будет выполняться все время, про что я и писал вчера!!


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

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Алгоритм подачи топлива не дееспособен не только по этой причине!


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

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

Что значит "все время"? Синхронизатор срабатывает один раз, а не все время.

Если в вашем случае возникает ошибка, то ее, разумеется, надо предотвратить и устранить. Синхронизатор здесь ни при чем.

А что вы писали вчера? Я не нашел.


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

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


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

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Владимир Паронджанов писал(а):
А_МУР писал(а):
Если наступает А>=10 с то команда будет выполняться все время, про что я и писал вчера!!

Что значит "все время"? Синхронизатор срабатывает один раз, а не все время.

Если в вашем случае возникает ошибка, то ее, разумеется, надо предотвратить и устранить. Синхронизатор здесь ни при чем.

А что вы писали вчера? Я не нашел.


Это значит что команда будет выполнятся пока А> 10 и таймер не обнулен. Это касается всех устройств не только ПЛК


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

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

Читаем алгоритм:
1. икона с надписью А:=0 -обнуляет и запускает таймер
2. переход
3. икона "включить насос, открыть заслонку" выполняется через 2 мин - проходим мимо (2 минуты еще не прошло).
4. переход
5. икона "подача топлива" выполняется через 2 мин 45 с- проходим мимо (2 минуты 45 еще не прошло).
6. переход
7. икона "пуск агрегата" выполняется через 5 мин 45 с- проходим мимо (5 минуты 45 еще не прошло).
8. переход
9. конец

Результат Котел отопления не запустился детский садик замерз!

Предположим что алгоритм замкнут:
Читаем алгоритм:
1. икона с надписью А:=0 -обнуляет и запускает таймер
2. переход
3. икона "включить насос, открыть заслонку" выполняется через 2 мин - проходим мимо (2 минуты еще не прошло).
4. переход
5. икона "подача топлива" выполняется через 2 мин 45 с- проходим мимо (2 минуты 45 еще не прошло).
6. переход
7. икона "пуск агрегата" выполняется через 5 мин 45 с- проходим мимо (5 минуты 45 еще не прошло).
8. переход
9. переход на начало
10. икона с надписью А:=0 -обнуляет и запускает таймер
.
.
и тд

Результат Котел отопления не запустился детский садик замерз!

Смысл такого алгоритма?????


Вложения:
Рис. 115%2C 116 Упр подачей топлива .png
Рис. 115%2C 116 Упр подачей топлива .png [ 133.56 КБ | Просмотров: 6536 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 29 Декабрь, 2018 12:18 

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


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

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
А_МУР писал(а):
3. икона "включить насос, открыть заслонку" выполняется через 2 мин - проходим мимо (2 минуты еще не прошло).
Как это проходим мимо? Неправильно.
Не проходим мимо, а останавливаемся и ждем появления метки "2 мин"

Алексей, вы предложили неработоспособную программу, искажающую смысл икон Пуск таймера и Синхронизатор.

Ошибка в вашей программе, а не в дракон-схеме.
Дракон-схема правильная.

А_МУР писал(а):
5. икона "подача топлива" выполняется через 2 мин 45 с- проходим мимо (2 минуты 45 еще не прошло).
Нельзя проходить мимо. Та же самая ошибка в вашей программе.
В вашей программе, а не в алгоритме.

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

Повторяю: алгоритм правильный, а предложенная вами программная реализация не удовлетворительна.

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

Таких ошибочных алгоритмов можно придумать десятки. Но смысла в этом нет.


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

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
А_МУР писал(а):
Таймер не может сам думать и запускаться .
Наверное чего-то не хватает
В иконе Пуск таймера указана инструкция присваивания А := 0
говорящая о том, что переменная таймера А принимает значение 0


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

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Получается что разницы между пауза и синхранизатор отсутствует вообще?
Раз мы бросив все останавливаемся и ждем?
Моей программы - нет такого понятия
Есть понятие - программа на драконе без промежуточных звеньев


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

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


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

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Алексей, следует различать две задачи.

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

2. Сложную задачу, которую пытаетесь решить вы применительно к ПЛК, который работает в цикле.

Это РАЗНЫЕ задачи. В моих книгах проблема ПЛК не затрагивается. Читая мои книги, вы не найдете решения для ПЛК.
Это отдельная задача, и я уверен, что вы с ней успешно справитесь.

Я приветствую вашу работу и поддерживаю ее.

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


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

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
Владимир Данилович в споре рождается истина!
Поэтому я и пишу


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

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
Программирование МК тоже может требовать временной передачи управления, при ожидании срабатывания таймера, например.
Если основная программа ожидает срабатывание синхронизатора, в это время может отображаться информация на индикаторах, или опрашиваться клавиатура, или приниматься сообщение.
Мы пока обходились без указаний на конкретный обработчик в схеме на Драконе, исправляя непосредственно текст, но это, конечно, не удобно.

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

Например, можно опрашивать порты и выставлять флаги, или даже продолжить выполнение программы, доустановив значение таймера до значения синхронизатора. Таким образом можно определять все синхронизаторы, срабатывающие по данному таймеру.
Вложение:
Комментарий к файлу: Синхронизация по таймеру с опросом клавиатуры
Снимок4.GIF
Снимок4.GIF [ 20.21 КБ | Просмотров: 6476 ]

Чтобы не было путаницы с прямой линией, можно "Вставку" к "Таймеру" присоединять пунктиром.
Вложение:
Комментарий к файлу: "Вставка" с пунктиром
Снимок4_2.gif
Снимок4_2.gif [ 20.19 КБ | Просмотров: 6475 ]


Возможен еще вариант, когда мы явно задаем псевдо-ветку для синхронизатора.
Вложение:
Комментарий к файлу: Синхронизатор с псевдо-веткой
Снимок5.GIF
Снимок5.GIF [ 31.82 КБ | Просмотров: 6475 ]

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

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


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

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
В продолжение идеи:

Добавление "Временной вставки" справа от ожидающего Синхронизатора-Вставки, или Синхронизатора-Вывода, или Паузы, и т.п., выглядит предпочтительней, т.к. картинка единообразна:
Вложение:
Комментарий к файлу: Определение общей подпрограммы (Вставки) для всех синхронизаторов заданного таймера, которая будет циклично вызываться до момента отсчета каждого Синхронизатора.
Снимок6.GIF
Снимок6.GIF [ 10.57 КБ | Просмотров: 6460 ]

Вложение:
Комментарий к файлу: Определение подпрограммы для одиночного синхронизатора, которая будет циклично вызываться до старта основной Вставки.
Снимок7.GIF
Снимок7.GIF [ 10.86 КБ | Просмотров: 6460 ]

Вложение:
Комментарий к файлу: Определение подпрограммы для паузы, которая будет циклично вызываться до момента окончания времени.
Снимок8.GIF
Снимок8.GIF [ 10.01 КБ | Просмотров: 6460 ]

Вложение:
Комментарий к файлу: Вариант применения сторонней подпрограммы для одиночного синхронизатора, которая будет циклично вызываться до старта Вывода.
Снимок9.GIF
Снимок9.GIF [ 14 КБ | Просмотров: 6460 ]


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

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

Для запоминания в таком случае параллельный шампур можно представить как две горизонтальные линии, по которым Исполнитель временно переходит к "Временной вставке" и возвращается назад. Движение назад, к слову, уже допускалось в графических элементах Дракона, например в Стрелке.
Вложение:
Комментарий к файлу: Вариант определение "Временной вставки" для паузы, которая будет циклично вызываться до момента окончания времени.
Снимок7-1.GIF
Снимок7-1.GIF [ 9.94 КБ | Просмотров: 6459 ]


Для общебытового применения такой подход тоже допустим. Например, если при варке варенья ждем 30 минут, можем одновременно помешивать его ложкой.
Вложение:
Комментарий к файлу: Фрагмент диаграммы "Варить варенье"
Снимок10.GIF
Снимок10.GIF [ 11.43 КБ | Просмотров: 6459 ]


Последний раз редактировалось Дмитрий Бардынин Воскресенье, 30 Декабрь, 2018 19:48, всего редактировалось 2 раз(а).

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

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Не понятно: - зачем нужно вызывать общую подпрограмму (Вставка - опросить клавиатуру) для всех синхронизаторов заданного таймера, которая будет циклично вызываться до момента отсчета каждого Синхронизатора? Что будет с вызовами, если с иконой "Пуск таймера" связано несколько икон "Синхронизатор"?

Что такое "Временная вставка"?

Какой смысл в пунктирных линиях связи?

Можно ли обойтись без частных и не очевидных расширений языка Дракон? В соответствии с ГОСТов все специальные требования нужно писать на поле чертежа в комментариях.


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

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
LKom писал(а):
Не понятно: - зачем нужно вызывать общую подпрограмму (Вставка - опросить клавиатуру) для всех синхронизаторов заданного таймера, которая будет циклично вызываться до момента отсчета каждого Синхронизатора?

Например, если это общая подпрограмма для всех синхронизаторов. Зачем несколько раз её объявлять у каждого Синхронизатора, если можно сделать это один раз у соответствующего Таймера?

LKom писал(а):
Что будет с вызовами, если с иконой "Пуск таймера" связано несколько икон "Синхронизатор"?
Каждый Синхронизатор будет до момента своего срабатывания вызывать объявленную с Таймером подпрограмму, "Временную вставку".

LKom писал(а):
Что такое "Временная вставка"?
Это так я назвал икону "Вставка", которую присоединяю к Таймеру, или к Синхронизатору, или к Паузе, и т.д.

LKom писал(а):
Какой смысл в пунктирных линиях?
Думается, что так лучше понятна идея, что "Временная вставка" срабатывает неизвестное число раз, ведь ожидание может и не состояться вовсе, если Синхронизатор сработал мгновенно.


Последний раз редактировалось Дмитрий Бардынин Воскресенье, 30 Декабрь, 2018 20:12, всего редактировалось 1 раз.

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

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
LKom писал(а):
Можно ли обойтись без частных и не очевидных расширений языка Дракон? В соответствии с ГОСТов все специальные требования нужно писать на поле чертежа в комментариях.

"Если ГОСТ устарел, его нужно менять" (с)
Предлагаю Вам описать в ГОСТовском варианте ситуацию, когда во время Паузы нужно провести опрос клавиатуры. Давайте сравним лаконичность и понятность Вашей ГОСТовской диаграммы и "частной и не очевидной" моей.


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

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


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

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


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

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