1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Нагрузочный расчет процессора ПЛК

Обсуждение вопросов, не относящихся ни к одному из других подразделов

Модератор: kirillio

Ответить

Автор темы
Belyash_k
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 17 янв 2020, 14:11
Имя: Камиль
Страна: Россия
город/регион: Казань
Благодарил (а): 7 раз

Нагрузочный расчет процессора ПЛК

Сообщение Belyash_k »

Добрый день, уважаемые коллеги!
Имеется задача составить документ: "Нагрузочный расчет, подтверждающий способность центрального процессора (ЦП) контроллера обеспечить выполнение всех функций ПТК при максимальной загрузке не более 70%, при средней загрузке ЦП 60% и менее".
Проблема в том, что не понятно за что хвататься и с чего начинать сам расчет.
Прошу подсказать, может есть какие-либо формулы, по которым можно провести расчет, либо указать на иные реурсы которые могут помочь. :ges_help:
Вообще была идея запускать по одному програмному блоку на ПЛК, смотреть на сколько он нагружает CPU, а далее, при полностью написанной конфигурации, просто умножать полученное значение на количество используемых тех или иных программных блоков.
:ges_help: :ges_help: :ges_help: :ges_help:

UNTK_RAA
здесь недавно
здесь недавно
Сообщения: 81
Зарегистрирован: 01 мар 2010, 17:37
Имя: Алексей Алексеевич
Страна: Россия
город/регион: Нижний Тагил
Благодарил (а): 14 раз
Поблагодарили: 9 раз

Нагрузочный расчет процессора ПЛК

Сообщение UNTK_RAA »

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

Как в программе подсчитать количество операций? Если операций много? Если циклы?

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3576
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 271 раз

Нагрузочный расчет процессора ПЛК

Сообщение Михайло »

Ну так если процессор нагружен нагрузкой не более 100%, то он свою задачу выполняет. Может он чужие задачи еще должен выполнять или не выполнять?.. Коммуникационные процессоры, например, аппаратные обработчики еще... Про что расчет?

Sergy6661
read only
read only
Сообщения: 577
Зарегистрирован: 19 фев 2019, 22:38
Имя: Сергей
Страна: Россия
город/регион: Краснодар
Благодарил (а): 17 раз
Поблагодарили: 77 раз

Нагрузочный расчет процессора ПЛК

Сообщение Sergy6661 »

Belyash_k писал(а): 21 ноя 2021, 14:17 обеспечить выполнение всех функций ПТК при максимальной загрузке не более 70%, при средней загрузке ЦП 60% и менее".
Проблема в том, что не понятно за что хвататься и с чего начинать сам расчет.
Соболезную. Тоже попадались подобные полнобредовые требования по подбору платформы ПЛК, но расчет не потребовался, т.к по другим требованиям "резервирование ЦП и модулей ввода-вывода" ставим Семена S7-400H+резервированная периферия и...все, все довольны, верещат от восторга.
UNTK_RAA писал(а): 22 ноя 2021, 05:51 В характеристиках контроллера указывается время выполнения логической операции. Время выполнения напрямую зависит от типа переменных.
Ну...время, длительность цикла увеличить и все, ЦП справляется, соответственно этим параметром (длительность цикла) можно регулировать загрузку ЦП, я так делаю при тестировании, при помощи цикла с изменяемым количеством повторов подгружаю ЦП ПЛК.

З.Ы Могу предложить только придумать какую-нибудь бредовую формулу, в которой будет кол-во сигналов ввода-вывода, какой-нибудь коэффициент сложности и как-то это перемножить-поделить, получить какую-нибудь хрень и написать- "В связи с вышеизложенным загрузка ЦП не превышает 45%, бла-бла-бла" :lol: . Бредовым требованиям зачастую может соответствовать только бред.

Так вот в учебниках для высшей школы формула какая-нибудь какого-нибудь Лапника-Шляйхера, а в ней несколько этажей и пара-тройка коэффициентов, которые "подбираются" и подобрать можно все, что угодно и для чего угодно и ценность этого стремится к 0.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2340
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1998 раз
Поблагодарили: 176 раз

Нагрузочный расчет процессора ПЛК

Сообщение keysansa »

Михайло писал(а): 22 ноя 2021, 06:56 Ну так если процессор нагружен нагрузкой не более 100%, то он свою задачу выполняет. Может он чужие задачи еще должен выполнять или не выполнять?.. Коммуникационные процессоры, например, аппаратные обработчики еще... Про что расчет?
Нагрузка. близкая к 100%. при использовании ST, LD, например, не является допустимой, так как в некоторых случаях может привести к превышению времени выполнения.

Отправлено спустя 2 минуты 21 секунду:
Belyash_k писал(а): 21 ноя 2021, 14:17 Имеется задача составить документ: "Нагрузочный расчет, подтверждающий способность центрального процессора (ЦП) контроллера обеспечить выполнение всех функций ПТК при максимальной загрузке не более 70%, при средней загрузке ЦП 60% и менее".
Проблема в том, что не понятно за что хвататься и с чего начинать сам расчет.
Прошу подсказать, может есть какие-либо формулы, по которым можно провести расчет, либо указать на иные реурсы которые могут помочь.
Такой документ, должен формироватся исходя из хорошего ТЗ.
Belyash_k писал(а): 21 ноя 2021, 14:17 Вообще была идея запускать по одному програмному блоку на ПЛК, смотреть на сколько он нагружает CPU
Ну, раз у вас есть все модули, и все работоспособно, то, по моему, это быстрее считается, чем пишется на форуме )
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

VADR
администратор
администратор
Сообщения: 4734
Зарегистрирован: 25 июл 2008, 07:12
Имя: Диев Александр Васильевич
Страна: Россия
город/регион: г. Сегежа, Карелия
Благодарил (а): 225 раз
Поблагодарили: 396 раз

Нагрузочный расчет процессора ПЛК

Сообщение VADR »

А что за контроллер имеется в виду? Вот, к примеру, взял наугад сименсовский SIMATIC S7-1500, CPU 1511-1 PN. Со страницы описания на сайте: ссылка на лист технических данных. В нём - такой вот пункт:
Время обработки ЦП
нормальное время операций побитовой обработки 60 ns
нормальное время операций со словами 72 ns
нормальное время выполнения операций арифметики с фиксированной точкой 96 ns
нормальное время выполнения операций с плавающей точкой 384 ns
Берём программу, конвертим в ST (конвертится оно вообще в этих контроллерах?), подсчитываем количество операций разных типов, дальше - арифметика (и тут очень хорошо, если в программе нет циклов, условных переходов и прочих конструкций, меняющих ход алгоритма и количество операций за цикл). Муторно, да. Но если это требуется по ТЗ и оплачивается по договору - значит, надо сделать.
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2340
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1998 раз
Поблагодарили: 176 раз

Нагрузочный расчет процессора ПЛК

Сообщение keysansa »

VADR писал(а): 22 ноя 2021, 14:28 если в программе нет циклов, условных переходов и прочих конструкций, меняющих ход алгоритма и количество операций за цикл
Это заложено в условии у ТС (70%) ИМХО.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

yoos86
здесь недавно
здесь недавно
Сообщения: 51
Зарегистрирован: 20 дек 2019, 10:54
Имя: Денис
Страна: UA
Благодарил (а): 5 раз

Нагрузочный расчет процессора ПЛК

Сообщение yoos86 »

Что то постановка задачи звучит как дичь какая то. ПЛК это же не винда на ПК и даже не линукс, это как бы устройство реального времени, у него CPU при любом раскладе молотит 100%. А нагрузка это сколько времени занимает выполнение кода (т.е.) вбитого в "main" функцию за рабочий цикл, и по идее - превышение определённого лимита этого времени должно вообще вызывать исключение (если уж сильно надо % ,этот временной предел можно взять за 100%).
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2340
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1998 раз
Поблагодарили: 176 раз

Нагрузочный расчет процессора ПЛК

Сообщение keysansa »

yoos86 писал(а): 24 ноя 2021, 16:36 это как бы устройство реального времени, у него CPU при любом раскладе молотит 100%.
Это почему? У вас есть 10 задач с циклом 100мс. В каждой из них:
INT A:= A +1;
В нормальном контроллере 10 шт А, будут каждые 100мс увеличиваться на 1.
Что делать контроллеру все остальное время, что бы быть загруженным на 100%?
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

yoos86
здесь недавно
здесь недавно
Сообщения: 51
Зарегистрирован: 20 дек 2019, 10:54
Имя: Денис
Страна: UA
Благодарил (а): 5 раз

Нагрузочный расчет процессора ПЛК

Сообщение yoos86 »

keysansa писал(а): 24 ноя 2021, 16:42
yoos86 писал(а): 24 ноя 2021, 16:36 это как бы устройство реального времени, у него CPU при любом раскладе молотит 100%.
Это почему? У вас есть 10 задач с циклом 100мс. В каждой из них:
INT A:= A +1;
В нормальном контроллере 10 шт А, будут каждые 100мс увеличиваться на 1.
Что делать контроллеру все остальное время, что бы быть загруженным на 100%?
Почему 100мс ? Насколько я знаю системы реального времени не делают sleep, а только сверяют значение таймера. Значит все задачи на 100мс, будут сделаны за 1мс, а результат возвращен еще через 99мс.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2340
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1998 раз
Поблагодарили: 176 раз

Нагрузочный расчет процессора ПЛК

Сообщение keysansa »

yoos86 писал(а): 25 ноя 2021, 12:42реального
yoos86 писал(а): 25 ноя 2021, 12:42 Почему 100мс ? Насколько я знаю системы реального времени не делают sleep, а только сверяют значение таймера. Значит все задачи на 100мс, будут сделаны за 1мс, а результат возвращен еще через 99мс.
100мс были выбраны для примера
Да, вы почти правы. sleep() в С на разных реализациях разные (прошу прощения, перечитывал, лучше фраза не получилась).
Я не скажу, что, например, Mitsubishi FX, или OMRON C1P "засыпают" в "свободное" время, но точно знаю, что контроллеры, использующие RtOs и прочие контроллеры на ядре *nix используют эту функцию после обмена с менеджером В/В.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17577
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1652 раза

Нагрузочный расчет процессора ПЛК

Сообщение Jackson »

yoos86 писал(а): 25 ноя 2021, 12:42 начит все задачи на 100мс, будут сделаны за 1мс, а результат возвращен еще через 99мс
keysansa писал(а): 27 ноя 2021, 13:01 100мс были выбраны для примера
Как и 1 мс. И именно эти 1 мс и надо рассчитать.
Как делать - не представляю, потому то есть ещё ОС, которая тоже загружает проц, и загрузка эта зависит от выполняемой задачи.
Да и не считает это по факту так серьёзно никто, а в готовых ПЛК есть готовый софт, который сам оценит Ваш код и расскажет, за какое время он выполнится, а насколько при этом бует загружен проц - никому неинтересно, потому что главное задачу выполнить вовремя, а не проц загрузить/разгрузить.
А если это не ПЛК с таким софтом, то этот вопрос надо задавать уже не здесь, а производителю железа и ОС под него, а может и автора компилятора под эту ОС. Ибо зависит от них и отфонарно не считается.

В задаче как говорится:
Belyash_k писал(а): 21 ноя 2021, 14:17"Нагрузочный расчет, подтверждающий способность центрального процессора (ЦП) контроллера обеспечить выполнение всех функций ПТК при максимальной загрузке не более 70%, при средней загрузке ЦП 60% и менее"
Скажите пожалуйста, Вы не из военной конторы случайно? Что за железо? ОС какая? Прикладной код на чём написан? Написан ли он вообще? Что за изделие где это столь критично?

И в общем задание это мне кажется бредовым, потому что проц обычно и так загружен на 100% всё время пока включен, но нужно зачем-то это ограничить до 70%. Зачем? И главное - как? Напряжение питания ему понизить на 30%? И не менее интересный вопрос: а что такое эти 60% и 70%, это проценты чего? Если кто-то насмотрелся диаграмм в диспетчере задач, то там хоть и написано "загрузка ЦП", но коротко, а полностью это звучит как "использование вычислительных ресурсов операционной системой", то есть ОС сама оценила свои возможности и сообщает, какую часть из них она по милости всех выполняемых в ней задач (в том числе и своих собственных) сожрала. И сами эти возможности непостоянны.

А ответы на все эти вопросы сильно зависят от железа, от ОС, от кода, от самой задачи.

Короче, нет готовых формул. От железа и ОС надо плясать, а про них лучше всего знают их производители.
UNTK_RAA писал(а): 22 ноя 2021, 05:51 В характеристиках контроллера указывается время выполнения логической операции
Это если ПЛК. А если нет?

Всё это выше - риторическое для меня, специально ответ давать не надо.
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2340
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1998 раз
Поблагодарили: 176 раз

Нагрузочный расчет процессора ПЛК

Сообщение keysansa »

Jackson писал(а): 01 дек 2021, 21:08 Как делать - не представляю, потому то есть ещё ОС, которая тоже загружает проц, и загрузка эта зависит от выполняемой задачи.
Да и не считает это по факту так серьёзно никто, а в готовых ПЛК есть готовый софт, который сам оценит Ваш код и расскажет, за какое время он выполнится, а насколько при этом бует загружен проц - никому неинтересно, потому что главное задачу выполнить вовремя, а не проц загрузить/разгрузить.
Вы не представляете себе концепцию rtos. Есть ОС. Есть задачи PLC. Их надо разделить во времени, но PLC отдать жесткий тайминг.
Системы по разному решают эту задачу.
Некоторые отказываются от ОС. И все отдают PLC (Mitsubishi, Omron, Siemens 200).
Некоторые создают ядро, которое отдают PLC все время, остатки отдают ОС (B&R, rtos в Windows, UNIX).
Особо требовательные задачи обрабатываются HW прерываниями.

Отправлено спустя 8 минут 47 секунд:
Jackson писал(а): 01 дек 2021, 21:08 Скажите пожалуйста, Вы не из военной конторы случайно? Что за железо? ОС какая? Прикладной код на чём написан? Написан ли он вообще? Что за изделие где это столь критично?
Задача выбора контроллера под техпроцесс. Вы сами как выбираете? Как обосновываете?
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17577
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1652 раза

Нагрузочный расчет процессора ПЛК

Сообщение Jackson »

keysansa писал(а): 02 дек 2021, 21:19 Вы не представляете себе концепцию rtos
Прекрасно представляю.
А с чего Вы взяли что речь идёт о RTOS ? Речь вообще ни о чём не идёт, потому что автор ничего не уточнил до сих пор и даже не объявился. Смысл в этой дискуссии?
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2340
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1998 раз
Поблагодарили: 176 раз

Нагрузочный расчет процессора ПЛК

Сообщение keysansa »

Jackson писал(а): 03 дек 2021, 10:02
keysansa писал(а): 02 дек 2021, 21:19 Вы не представляете себе концепцию rtos
Прекрасно представляю.
А с чего Вы взяли что речь идёт о RTOS ? Речь вообще ни о чём не идёт, потому что автор ничего не уточнил до сих пор и даже не объявился. Смысл в этой дискуссии?
ИЗ ТЗ автора. У него есть % времени. Это только с помощью RTOS можно гарантировать.

ЗЫ. Но в целом - согласен, автор пропал и конкретики нет.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17577
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1652 раза

Нагрузочный расчет процессора ПЛК

Сообщение Jackson »

keysansa писал(а): 06 дек 2021, 19:39 ИЗ ТЗ автора. У него есть % времени. Это только с помощью RTOS можно гарантировать.
И не факт что в ПО автора это как-то гарантировано. :) Я ж не зря про войну спросил, там многого и не спросишь - секретность же. Как раз на это и похоже.
[+] бывает
таких запросов порой много получаю, типа "как работает ваше вот это", причем очень глубоко копают, начинаешь уточнять а как включено, в каком режиме, что за объект вообще - в ответ тишина, но на исходный вопрос им ответ дай.
Belyash_k писал(а): 21 ноя 2021, 14:17 Вообще была идея запускать по одному програмному блоку на ПЛК, смотреть на сколько он нагружает CPU, а далее, при полностью написанной конфигурации, просто умножать полученное значение на количество используемых тех или иных программных блоков.
У автора вообще с конкретикой сложно. Ибо по частям он загрузку ЦП замерит (каким инструментом, хотелось бы знать), а если два программных блока параллельно а не последовательно - загрузка не будет равна сумме двух отдельных загрузок. :) И надо точно знать, как компилятор соберёт код, где он решит процессы запустить параллельно, где последовательно. Ибо при таком подходе автор поделит ПО на свои блоки по-своему, а компилятор потом решит совсем по-другому, и всей этой затее грош-цена получится. Слишком много неизвестных.

Раз сразу готовых ответов не нашлось - значит искать надо не здесь.
По вопросам работы Форума можно обратиться по этим контактам.
Ответить

Вернуться в «Общие вопросы»