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