DRAKON.SU

Текущее время: Понедельник, 02 Декабрь, 2024 13:21

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




Начать новую тему Ответить на тему  [ Сообщений: 33 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: Среда, 28 Июнь, 2023 17:56 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5944
Откуда: Москва
LKom писал(а):
следующее заключение:
Это не заключение, а частное мнение.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 28 Июнь, 2023 20:05 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1360
LKom писал(а):
В указанной теме сделано следующее заключение:
Alexey_Donskoy писал(а):
LKom писал(а):
Необходимости в иконе "Циклический заголовок" нет.
Согласен, необходимости нет.
...

Ну и где же теперь в "указанной теме" сообщения уважаемых LKom и Alexey_Donskoy?
Их, что ли корова слизала?

Однако. в сообщениях мнения были авторитетно аргументированы.


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

Зарегистрирован: Понедельник, 18 Июль, 2022 10:02
Сообщения: 29
Владимир Паронджанов писал(а):
Франц Лещенко писал(а):
Хотелось бы подробнее узнать о Заголовок циклический.

Подробный ответ дан в теме Алексей Муравицкий и программирование бортовых компьютеров для космоса

Прочитал. Если к алгоритму с Заголовок циклический предъявляются только такие требования, а именно требование выполнения за заданное время... то... нужно подумать.
Мой опыт работы с ПЛК довольно скромный. Работать приходится с довольно тривиальными программами (алгоритмами). Бывает, что и прерывания приходится использовать.
Но не встречается такого требования к программе, или части программы, работать именно такой вот промежуток времени.
Основная программа работает с циклом какой получится, главное не превысить контрольное время из настроек железа.
Прерывание же вызывается просто с определенным заданным периодом.
Для основного цикла в настройках железа есть контрольное время, которое не должно превышаться, иначе будет аларм и стоп ПЛК.
Для прерываний, так же контролируется (системой) длительность работы. И когда прерывание начинает "видеть" своё начало в каком-то количестве раз (точно не могу сказать),
либо аларм либо аларм и стоп.
То есть, контроль длительности возложен на низкий уровень, прикладному этим не приходилось заниматься.
Но это ведь только контроль! Но не требование к задаче. Специфика задач не такая.
И вот эти мысли приводят к мысли, что к моей обычной задаче, хотя она и циклическая, икона Заголовок циклический не подходит.
Она (икона) слишком "строгая" для этого случая.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 29 Июнь, 2023 08:51 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5944
Откуда: Москва
Франц Лещенко писал(а):
Она (икона) слишком "строгая" для этого случая.
Решать этот вопрос должны вы и другие специалисты по ПЛК. Не нужна, значит, не нужна. Вам виднее.

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

Цель — убедиться, что программа даже по самому длинному (времязатратному) пути не превышает заданное время. Кроме того, предел времени контролировался при многочисленных испытаниях. Это связано с тем, что превышение заданного времени приводило к отклонению ракеты от курса и гибели космической ракеты.

Франц Лещенко писал(а):
Основная программа работает с циклом какой получится, главное не превысить контрольное время из настроек железа.
Здесь я не понял. Ведь указанное "космическое" ограничение подобно контрольному времени из настроек железа, разве нет?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 29 Июнь, 2023 15:32 

Зарегистрирован: Понедельник, 18 Июль, 2022 10:02
Сообщения: 29
Владимир Паронджанов писал(а):
Франц Лещенко писал(а):
Она (икона) слишком "строгая" для этого случая.
Решать этот вопрос должны вы и другие специалисты по ПЛК. Не нужна, значит, не нужна. Вам виднее.

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

Цель — убедиться, что программа даже по самому длинному (времязатратному) пути не превышает заданное время. Кроме того, предел времени контролировался при многочисленных испытаниях. Это связано с тем, что превышение заданного времени приводило к отклонению ракеты от курса и гибели космической ракеты.

Франц Лещенко писал(а):
Основная программа работает с циклом какой получится, главное не превысить контрольное время из настроек железа.
Здесь я не понял. Ведь указанное "космическое" ограничение подобно контрольному времени из настроек железа, разве нет?

Возможно, недопонимание (моё в том числе), отчасти возникает из-за неточности человеческого языка (человеческой речи) для выражения мысли, ну или не те слова взяты, или просто можно... не так понять (по своему).
В общем, читая про "космические ПЛК" (можно даже применить аббревиатуру КПЛК), про ПО, я понял вот что.
Работа происходит в рамках основного цикла (50 мс например).
Цикл поделен на части для задач.
Каждая часть имеет определённую длительность.
Длительность выполнения задачи не может (не должна) быть превышена.
Задачи выполняются по очереди, порядок следования задач так же определён (задан).
Вопрос. Вызов задач выполняется как прерывание, или они просто последовательно вызываются, так сказать, из списка,
с последующим контролем времени исполнения. Если задача потратила меньше отведённого времени на 1 мс (такое возможно?),
будет ли это экономией для основного цикла и он станет 49 мс?
---
Что я вижу у "обычного" ПЛК.
Есть главная (основная программа).
Время исполнения основной программы не нормируется, задано только контрольное время, которое нельзя превысить.
Время основного цикла не постоянно, оно колеблется. Если включить мониторинг состояния ЦПУ,
то увидим статистику "минимальное время цикла", "максимальное время цикла", "среднее время цикла".
Это понятно, потому что в программе имеется множество "путей" разных по времязатратам.
Видимо, основной цикл не задаётся неким тактовым генератором, а инициируется каждый раз после того
как все задачи отработали (наверное, и это одно из главных отличий).
Если добавить несколько циклических прерываний, то они будут вызываться с заданным циклом (например, 5 мс, 10, мс, 25 мс).
Очереди здесь нет (и это одно из главных отличий, как я думаю), как в случае с КПЛК. Кроме того, прерывание можно "поставить на паузу",
потом снова разрешить. Одним словом, если задаться целью, то такого порядка и строгости исполнения добиться будет сложно (и возможно ли?).
Единственное, что исполняется по очереди, это вызовы подпрограмм из основной программы или другой подпрограммы.
---
В общем, похоже на то, что архитектура железа и ПО "обычного" и "космического" ПЛК не совпадают.
Моих знаний явно недостаточно чтобы дискутировать этот вопрос, прошу извинить, я уклонюсь от этой темы.
---
Владимир Данилович, благодарю Вас за помощь с блок-схемой, для меня это было более важно, преодолеть некий барьер... в мышлении, что ли.
Спасибо всем, кто принял участие в обсуждении!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 29 Июнь, 2023 18:03 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5944
Откуда: Москва
Франц, в вашей схеме viewtopic.php?p=107122#p107122 в нижней части иконы Полка было
Цитата:
:= true или := false

Правило

В языке ДРАКОН не рекомендуется употребление слов true, false, истина, ложь. Вместо них рекомендуется использовать икону Полка: сверху Установить или Снять (Сбросить); внизу логическая переменная.

Вы выполнили это правило в схеме
Вложение:
how_to_timer_3_2.png
how_to_timer_3_2.png [ 59.93 КБ | Просмотров: 273581 ]

Это хорошо.
Но.
В самом низу с оператором "присвоить" получилось неудачно.
Здесь икона Полка не нужна; вместо нее надо использовать икону Действие с обычным оператором присвоить
Цитата:
#motor.swon := #q_kv


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 29 Июнь, 2023 21:05 

Зарегистрирован: Понедельник, 18 Июль, 2022 10:02
Сообщения: 29
Владимир Паронджанов писал(а):
Франц, в вашей схеме viewtopic.php?p=107122#p107122 в нижней части иконы Полка было
Цитата:
:= true или := false

Правило

В языке ДРАКОН не рекомендуется употребление слов true, false, истина, ложь. Вместо них рекомендуется использовать икону Полка: сверху Установить или Снять (Сбросить); внизу логическая переменная.

Вы выполнили это правило в схеме
Вложение:
how_to_timer_3_2.png

Это хорошо.
Но.
В самом низу с оператором "присвоить" получилось неудачно.
Здесь икона Полка не нужна; вместо нее надо использовать икону Действие с обычным оператором присвоить
Цитата:
#motor.swon := #q_kv

Спасибо! Понял.
Хотелось бы сказать ещё вот о чём. Хотя, может быть, это уже другая тема.
Когда мне встретилась информация о языке Дракон и я познакомился с ним читая Ваши книги,
то решил попробовать описать на этом языке алгоритм управления электродвигателем. Мне хотелось еще и оптимизировать его работу.
Алгоритм довольно простой, состоящий из нескольких частей. Проверка готовности к запуску, обработка команд пуска, подготовка битовых полей алармов
к журналированию, активация управления, контроль причин останова, формирование статуса процесса для индикации.
В общем, поле деятельности - нашлось! Здесь было из чего сделать силуэт и что разложить по веткам!
Когда после нескольких переделок было всё готово, решил, что хорошо было бы сделать обратный перевод на язык программирования.
В общем, я понял, что полученная программа не взлетит.
Поразмыслив, я понял в чём причина.
В исходном виде моя программка исполнялась циклически, от первой до последней команды без использования переходов.
Когда я начал реализовывать новый алгоритм (с ветками), мне пришлось организовывать переходы.
Из-за этого, в программе образовались участки кода, которые процесс обходит своим "вниманием".
Это было верно с точки логики, потому что, зачем обрабатывать цепь готовности или команды пуска, когда привод уже включён?
Это привело к тому, что некоторые флаги "зависли" (они ведь уже не обрабатываются!). В исходном варианте они всегда обрабатывались,
а сейчас этого не происходило. Стало ясно, что на практике для реального двигателя мне не стоит переделывать алгоритм
пока есть недопонимание теории.
Да и дело-то серьёзное!
Потеря управления двигателем, несформированный (или не вовремя сформированный) флаг - это не шуточная ситуация.
Попыток больше я не делал.
Но вот сейчас задумался, наверное не всякий алгоритм годится для силуэта?
Может быть, моя подпрограмма управления носит атомарный характер,
и её не стоит делить на ветки?
Циклический характер исполнения вносит что-то особенное в понимание алгоритма.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Июнь, 2023 08:26 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5944
Откуда: Москва
Франц Лещенко писал(а):
сейчас задумался, наверное не всякий алгоритм годится для силуэта?
Нет, это не так.
Силуэт универсален. С помощью силуэта можно описать любой алгоритм. Исключения мне неизвестны.

Франц Лещенко писал(а):
Может быть, моя подпрограмма управления носит атомарный характер, и её не стоит делить на ветки?
Делить на ветки полезно. Это один из видов декомпозиции.

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

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


Франц, в своем последнем сообщении вы подробно перечислили свои ошибки. У вас получилось руководство по правильной работе.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Июнь, 2023 08:40 

Зарегистрирован: Понедельник, 18 Июль, 2022 10:02
Сообщения: 29
Владимир Паронджанов писал(а):
Франц Лещенко писал(а):
сейчас задумался, наверное не всякий алгоритм годится для силуэта?
Нет, это не так.
Силуэт универсален. С помощью силуэта можно описать любой алгоритм. Исключения мне неизвестны.

Франц Лещенко писал(а):
Может быть, моя подпрограмма управления носит атомарный характер, и её не стоит делить на ветки?
Делить на ветки полезно. Это один из видов декомпозиции.

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

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

Согласен. Инструментом нужно уметь пользоваться, умение нужно нарабатывать. Думаю, будет время посвободнее, ещё раз попробую. Интересно всё-таки.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Июнь, 2023 08:47 

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

Это я не понял. Программа ИС Дракон автоматически ставит все переходы. Пользователь не должен "организовывать переходы".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 30 Июнь, 2023 09:40 

Зарегистрирован: Понедельник, 18 Июль, 2022 10:02
Сообщения: 29
Владимир Паронджанов писал(а):
Цитата:
Когда я начал реализовывать новый алгоритм (с ветками), мне пришлось организовывать переходы.

Это я не понял. Программа ИС Дракон автоматически ставит все переходы. Пользователь не должен "организовывать переходы".

Прошу простить за неточность. Дело в том, что у меня нет программы ИС Дракон. Я выполнял "перевод" вручную, под свой ПЛК на язык LAD (LD). Ну... Я не знал, стану ли погружаться в эту тему, нужно было присмотреться. В то же время, было интересно сделать самому.
Да, получились каляки-маляки - декомпозицию надо суметь сделать.
Прошло время, и сейчас вот опять присматриваюсь.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 01 Июль, 2023 10:23 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5944
Откуда: Москва
Для Франца Лещенко.
Степан Митькин настоятельно рекомендует drakon.pro вместо DrakonHub


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 01 Июль, 2023 19:07 

Зарегистрирован: Понедельник, 18 Июль, 2022 10:02
Сообщения: 29
Владимир Паронджанов писал(а):
Для Франца Лещенко.
Степан Митькин настоятельно рекомендует drakon.pro вместо DrakonHub

Спасибо за подсказку! Ознакомлюсь!


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

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


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

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


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

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