- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Нагрузочный расчет процессора ПЛК
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 17 янв 2020, 14:11
- Имя: Камиль
- Страна: Россия
- Благодарил (а): 7 раз
Нагрузочный расчет процессора ПЛК
Добрый день, уважаемые коллеги!
Имеется задача составить документ: "Нагрузочный расчет, подтверждающий способность центрального процессора (ЦП) контроллера обеспечить выполнение всех функций ПТК при максимальной загрузке не более 70%, при средней загрузке ЦП 60% и менее".
Проблема в том, что не понятно за что хвататься и с чего начинать сам расчет.
Прошу подсказать, может есть какие-либо формулы, по которым можно провести расчет, либо указать на иные реурсы которые могут помочь.
Вообще была идея запускать по одному програмному блоку на ПЛК, смотреть на сколько он нагружает CPU, а далее, при полностью написанной конфигурации, просто умножать полученное значение на количество используемых тех или иных программных блоков.
Имеется задача составить документ: "Нагрузочный расчет, подтверждающий способность центрального процессора (ЦП) контроллера обеспечить выполнение всех функций ПТК при максимальной загрузке не более 70%, при средней загрузке ЦП 60% и менее".
Проблема в том, что не понятно за что хвататься и с чего начинать сам расчет.
Прошу подсказать, может есть какие-либо формулы, по которым можно провести расчет, либо указать на иные реурсы которые могут помочь.
Вообще была идея запускать по одному програмному блоку на ПЛК, смотреть на сколько он нагружает CPU, а далее, при полностью написанной конфигурации, просто умножать полученное значение на количество используемых тех или иных программных блоков.
-
- здесь недавно
- Сообщения: 89
- Зарегистрирован: 01 мар 2010, 17:37
- Имя: Алексей Алексеевич
- Страна: Россия
- город/регион: Нижний Тагил
- Благодарил (а): 17 раз
- Поблагодарили: 9 раз
Нагрузочный расчет процессора ПЛК
В характеристиках контроллера указывается время выполнения логической операции. Время выполнения напрямую зависит от типа переменных.
Как в программе подсчитать количество операций? Если операций много? Если циклы?
Как в программе подсчитать количество операций? Если операций много? Если циклы?
-
- эксперт
- Сообщения: 3644
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 286 раз
Нагрузочный расчет процессора ПЛК
Ну так если процессор нагружен нагрузкой не более 100%, то он свою задачу выполняет. Может он чужие задачи еще должен выполнять или не выполнять?.. Коммуникационные процессоры, например, аппаратные обработчики еще... Про что расчет?
-
- специалист
- Сообщения: 655
- Зарегистрирован: 19 фев 2019, 22:38
- Имя: Сергей
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 20 раз
- Поблагодарили: 89 раз
Нагрузочный расчет процессора ПЛК
Соболезную. Тоже попадались подобные полнобредовые требования по подбору платформы ПЛК, но расчет не потребовался, т.к по другим требованиям "резервирование ЦП и модулей ввода-вывода" ставим Семена S7-400H+резервированная периферия и...все, все довольны, верещат от восторга.
Ну...время, длительность цикла увеличить и все, ЦП справляется, соответственно этим параметром (длительность цикла) можно регулировать загрузку ЦП, я так делаю при тестировании, при помощи цикла с изменяемым количеством повторов подгружаю ЦП ПЛК.
З.Ы Могу предложить только придумать какую-нибудь бредовую формулу, в которой будет кол-во сигналов ввода-вывода, какой-нибудь коэффициент сложности и как-то это перемножить-поделить, получить какую-нибудь хрень и написать- "В связи с вышеизложенным загрузка ЦП не превышает 45%, бла-бла-бла" . Бредовым требованиям зачастую может соответствовать только бред.
Так вот в учебниках для высшей школы формула какая-нибудь какого-нибудь Лапника-Шляйхера, а в ней несколько этажей и пара-тройка коэффициентов, которые "подбираются" и подобрать можно все, что угодно и для чего угодно и ценность этого стремится к 0.
-
- эксперт
- Сообщения: 2471
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 2121 раз
- Поблагодарили: 208 раз
Нагрузочный расчет процессора ПЛК
Нагрузка. близкая к 100%. при использовании ST, LD, например, не является допустимой, так как в некоторых случаях может привести к превышению времени выполнения.
Отправлено спустя 2 минуты 21 секунду:
Такой документ, должен формироватся исходя из хорошего ТЗ.Belyash_k писал(а): ↑21 ноя 2021, 14:17 Имеется задача составить документ: "Нагрузочный расчет, подтверждающий способность центрального процессора (ЦП) контроллера обеспечить выполнение всех функций ПТК при максимальной загрузке не более 70%, при средней загрузке ЦП 60% и менее".
Проблема в том, что не понятно за что хвататься и с чего начинать сам расчет.
Прошу подсказать, может есть какие-либо формулы, по которым можно провести расчет, либо указать на иные реурсы которые могут помочь.
Ну, раз у вас есть все модули, и все работоспособно, то, по моему, это быстрее считается, чем пишется на форуме )
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
-
- администратор
- Сообщения: 4913
- Зарегистрирован: 25 июл 2008, 07:12
- Имя: Диев Александр Васильевич
- Страна: Россия
- город/регион: г. Сегежа, Карелия
- Благодарил (а): 238 раз
- Поблагодарили: 426 раз
Нагрузочный расчет процессора ПЛК
А что за контроллер имеется в виду? Вот, к примеру, взял наугад сименсовский SIMATIC S7-1500, CPU 1511-1 PN. Со страницы описания на сайте: ссылка на лист технических данных. В нём - такой вот пункт:
Берём программу, конвертим в ST (конвертится оно вообще в этих контроллерах?), подсчитываем количество операций разных типов, дальше - арифметика (и тут очень хорошо, если в программе нет циклов, условных переходов и прочих конструкций, меняющих ход алгоритма и количество операций за цикл). Муторно, да. Но если это требуется по ТЗ и оплачивается по договору - значит, надо сделать.Время обработки ЦП
нормальное время операций побитовой обработки 60 ns
нормальное время операций со словами 72 ns
нормальное время выполнения операций арифметики с фиксированной точкой 96 ns
нормальное время выполнения операций с плавающей точкой 384 ns
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
-
- эксперт
- Сообщения: 2471
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 2121 раз
- Поблагодарили: 208 раз
Нагрузочный расчет процессора ПЛК
Это заложено в условии у ТС (70%) ИМХО.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
-
- здесь недавно
- Сообщения: 52
- Зарегистрирован: 20 дек 2019, 10:54
- Имя: Денис
- Страна: CA
- Благодарил (а): 5 раз
Нагрузочный расчет процессора ПЛК
Что то постановка задачи звучит как дичь какая то. ПЛК это же не винда на ПК и даже не линукс, это как бы устройство реального времени, у него CPU при любом раскладе молотит 100%. А нагрузка это сколько времени занимает выполнение кода (т.е.) вбитого в "main" функцию за рабочий цикл, и по идее - превышение определённого лимита этого времени должно вообще вызывать исключение (если уж сильно надо % ,этот временной предел можно взять за 100%).
-
- эксперт
- Сообщения: 2471
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 2121 раз
- Поблагодарили: 208 раз
Нагрузочный расчет процессора ПЛК
Это почему? У вас есть 10 задач с циклом 100мс. В каждой из них:
INT A:= A +1;
В нормальном контроллере 10 шт А, будут каждые 100мс увеличиваться на 1.
Что делать контроллеру все остальное время, что бы быть загруженным на 100%?
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
-
- здесь недавно
- Сообщения: 52
- Зарегистрирован: 20 дек 2019, 10:54
- Имя: Денис
- Страна: CA
- Благодарил (а): 5 раз
Нагрузочный расчет процессора ПЛК
Почему 100мс ? Насколько я знаю системы реального времени не делают sleep, а только сверяют значение таймера. Значит все задачи на 100мс, будут сделаны за 1мс, а результат возвращен еще через 99мс.
-
- эксперт
- Сообщения: 2471
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 2121 раз
- Поблагодарили: 208 раз
Нагрузочный расчет процессора ПЛК
100мс были выбраны для примера
Да, вы почти правы. sleep() в С на разных реализациях разные (прошу прощения, перечитывал, лучше фраза не получилась).
Я не скажу, что, например, Mitsubishi FX, или OMRON C1P "засыпают" в "свободное" время, но точно знаю, что контроллеры, использующие RtOs и прочие контроллеры на ядре *nix используют эту функцию после обмена с менеджером В/В.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
-
- администратор
- Сообщения: 18777
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 974 раза
- Поблагодарили: 1856 раз
Нагрузочный расчет процессора ПЛК
Как и 1 мс. И именно эти 1 мс и надо рассчитать.
Как делать - не представляю, потому то есть ещё ОС, которая тоже загружает проц, и загрузка эта зависит от выполняемой задачи.
Да и не считает это по факту так серьёзно никто, а в готовых ПЛК есть готовый софт, который сам оценит Ваш код и расскажет, за какое время он выполнится, а насколько при этом бует загружен проц - никому неинтересно, потому что главное задачу выполнить вовремя, а не проц загрузить/разгрузить.
А если это не ПЛК с таким софтом, то этот вопрос надо задавать уже не здесь, а производителю железа и ОС под него, а может и автора компилятора под эту ОС. Ибо зависит от них и отфонарно не считается.
В задаче как говорится:
Скажите пожалуйста, Вы не из военной конторы случайно? Что за железо? ОС какая? Прикладной код на чём написан? Написан ли он вообще? Что за изделие где это столь критично?
И в общем задание это мне кажется бредовым, потому что проц обычно и так загружен на 100% всё время пока включен, но нужно зачем-то это ограничить до 70%. Зачем? И главное - как? Напряжение питания ему понизить на 30%? И не менее интересный вопрос: а что такое эти 60% и 70%, это проценты чего? Если кто-то насмотрелся диаграмм в диспетчере задач, то там хоть и написано "загрузка ЦП", но коротко, а полностью это звучит как "использование вычислительных ресурсов операционной системой", то есть ОС сама оценила свои возможности и сообщает, какую часть из них она по милости всех выполняемых в ней задач (в том числе и своих собственных) сожрала. И сами эти возможности непостоянны.
А ответы на все эти вопросы сильно зависят от железа, от ОС, от кода, от самой задачи.
Короче, нет готовых формул. От железа и ОС надо плясать, а про них лучше всего знают их производители.
Это если ПЛК. А если нет?
Всё это выше - риторическое для меня, специально ответ давать не надо.
По вопросам работы Форума можно обратиться по этим контактам.
-
- эксперт
- Сообщения: 2471
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 2121 раз
- Поблагодарили: 208 раз
Нагрузочный расчет процессора ПЛК
Вы не представляете себе концепцию rtos. Есть ОС. Есть задачи PLC. Их надо разделить во времени, но PLC отдать жесткий тайминг.Jackson писал(а): ↑01 дек 2021, 21:08 Как делать - не представляю, потому то есть ещё ОС, которая тоже загружает проц, и загрузка эта зависит от выполняемой задачи.
Да и не считает это по факту так серьёзно никто, а в готовых ПЛК есть готовый софт, который сам оценит Ваш код и расскажет, за какое время он выполнится, а насколько при этом бует загружен проц - никому неинтересно, потому что главное задачу выполнить вовремя, а не проц загрузить/разгрузить.
Системы по разному решают эту задачу.
Некоторые отказываются от ОС. И все отдают PLC (Mitsubishi, Omron, Siemens 200).
Некоторые создают ядро, которое отдают PLC все время, остатки отдают ОС (B&R, rtos в Windows, UNIX).
Особо требовательные задачи обрабатываются HW прерываниями.
Отправлено спустя 8 минут 47 секунд:
Задача выбора контроллера под техпроцесс. Вы сами как выбираете? Как обосновываете?
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
-
- администратор
- Сообщения: 18777
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 974 раза
- Поблагодарили: 1856 раз
Нагрузочный расчет процессора ПЛК
Прекрасно представляю.
А с чего Вы взяли что речь идёт о RTOS ? Речь вообще ни о чём не идёт, потому что автор ничего не уточнил до сих пор и даже не объявился. Смысл в этой дискуссии?
По вопросам работы Форума можно обратиться по этим контактам.
-
- эксперт
- Сообщения: 2471
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 2121 раз
- Поблагодарили: 208 раз
Нагрузочный расчет процессора ПЛК
ИЗ ТЗ автора. У него есть % времени. Это только с помощью RTOS можно гарантировать.
ЗЫ. Но в целом - согласен, автор пропал и конкретики нет.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
-
- администратор
- Сообщения: 18777
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 974 раза
- Поблагодарили: 1856 раз
Нагрузочный расчет процессора ПЛК
И не факт что в ПО автора это как-то гарантировано. :) Я ж не зря про войну спросил, там многого и не спросишь - секретность же. Как раз на это и похоже.
У автора вообще с конкретикой сложно. Ибо по частям он загрузку ЦП замерит (каким инструментом, хотелось бы знать), а если два программных блока параллельно а не последовательно - загрузка не будет равна сумме двух отдельных загрузок. :) И надо точно знать, как компилятор соберёт код, где он решит процессы запустить параллельно, где последовательно. Ибо при таком подходе автор поделит ПО на свои блоки по-своему, а компилятор потом решит совсем по-другому, и всей этой затее грош-цена получится. Слишком много неизвестных.
Раз сразу готовых ответов не нашлось - значит искать надо не здесь.
По вопросам работы Форума можно обратиться по этим контактам.