PDA

Просмотр полной версии : Сколько отжирает Task ?



rapucha
19.12.2015, 13:36
Нет ли оценки -- сколько накладных расходов случается при вызове задачи? ПЛК73 у меня.

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

Николаев Андрей
19.12.2015, 13:38
Задача теоретическиая или можно изложить, чтобы можно было понять цель мероприятия?

rapucha
19.12.2015, 14:16
Задача теоретическиая или можно изложить, чтобы можно было понять цель мероприятия?

У меня есть развеситый алгоритм, работу которого хочется логгировать в посл. порт. Хочу прикинуть осмысленность такого подхода -- логи складываются в буфер, а задача, запускаемая по таймеру, вычитывает буфер в порт.

Валенок
19.12.2015, 15:45
сколько накладных расходов случается при вызове задачи
Абсолютно столько же сколько обычный поу с таймером.
Камень - один.

rapucha
19.12.2015, 15:57
Проще померить оказалось)

Короче, на 115200-8N1 строка в 50 символов успевает отправиться при интервале между задачами ровно 10 мс. При 8 мс строки стабильно выпадают, при 9 -- иногда.

За 10 мс в идеале мы отослали бы примерно 115 байт. Ну, еще в коде у меня конкатенация строк, тоже что-то жрет.. но грубо -- какие-то единицы мс на вызов задачи и возврат уходят.

Пожалуй, не стоит оно того, проще слать строку прямо по месту.

Всем спасибо )

Валенок
19.12.2015, 16:04
За 10 мс в идеале мы отослали бы примерно 115 байт.
115 ? Сильно сказано ))

rapucha
19.12.2015, 16:06
Абсолютно столько же сколько обычный поу с таймером.
Камень - один.

У текущей задачи нет контекста, который надо сохранять?

rapucha
19.12.2015, 16:07
115 ? Сильно сказано ))

какие возражения?

Валенок
19.12.2015, 16:09
У текущей задачи нет контекста, который надо сохранять?
Какой ? Обычная подпрограмма со static-переменными.

Валенок
19.12.2015, 16:11
какие возражения?
Заявленная скорость (115200) в недоумении 8(
А в сочетании с протоколом (RTU - ?) - тем паче.

rapucha
19.12.2015, 16:25
протокола нет, голая строка в порт без подтверждения

115200 бод, 8N1. старт-бит и один стоп-бит, итого вся посылка 10. 11520 байт/сек. За 10 мс получается 115, не?

А с переключением -- а разве текущую задачу не могут прервать?

Валенок
19.12.2015, 16:33
.. голая строка в порт без подтверждения
А накой такой сферический конь в ваккуме ?

.., не?
Не. Коня этого в реальной задаче так не разгоните. Спотыкатся будет. О землю.

.. а разве текущую задачу не могут прервать?
Кто ?

rapucha
19.12.2015, 16:37
Конь -- логи в терминал

Про переключения -- а, точно, там (тут) же задачи не прерываются.

Валенок
19.12.2015, 16:40
Протокола нет, голая строка в порт без подтверждения.
Канальный уровень. Приложения с этим работают ?
Вы в натуре - спытайте.

а, точно, там же задачи не прерываются.
Таски тут - ни разу не прерывания. А в таком виде они на.. не нужны.

rapucha
19.12.2015, 16:54
Канальный уровень. Приложения с этим работают ?
Вы в натуре - спытайте.

Конечно, любая терминалка, тот же PUTTY


Таски тут - ни разу не прерывания. А в таком виде они на.. не нужны.

Пожалуй. Хотя, возможно, что-то будет проще читаться, если отдать выполнение системному шедулеру, а не самому его писать.

Валенок
19.12.2015, 17:11
возможно, что-то будет проще читаться, если отдать выполнение системному шедулеру, а не самому его писать.
Для квадратиков CFC наглядно - внешний таймер с выходом на EN подпрограммы.
Насчет проще читаться - это бабушка на двое сказала. Мне вот на поле plc_prg лучше видно кто, когда и за кем вызывается


Конечно, любая терминалка, тот же PUTTY
Я не зря подчеркнул приложения. Обойти сетевой/транспортный уровень - можно. Но это как вызов врача-соседа. Не показатель скорости реагирования неотложки.Не масштабируемо и привязано к конктерному месту. И у Вас же

.. развеситый алгоритм..
Вот и спытайте с ним на натуре ))

rapucha
19.12.2015, 17:49
мы изрядно отвлеклись. Я по прежнему считаю, что за 10 мс максимальный поток данных в порт -- 115 байт)) То, что я этим потоком не смогу работать с Modbus - несомненно. Эти логи мне нужны для отладки, собственно, тормозить брейк-пойнтом работу установки может быть неправильно.

Валенок
19.12.2015, 18:35
Скажем так. 115 байт без гарантий целостности и отсутствия потерь. В соседней ветке творцы хотели разбирать по этому аварии. Разберутъ .. )
По теме - пост №4

rapucha
19.12.2015, 18:42
какие ошибки и потери на двухметровом кабеле до ноутбука?!

PS в полях -- нет никакого ноутбука, конечно. Все планируется на МСД-200 сбрасывать. Но текст на экране по ходу отладки программы -- куда удобнее.

Валенок
19.12.2015, 18:55
Тут не 2м. Тут нужно гарантированно генерить медленней реальной отправки. Или тормозим генерацию - теряем данные у себя, или "бассейн 3 литра втекло/ 2 литра вытекло" и теряем данные в системе.

Yegor
19.12.2015, 19:23
Кодесис, например, не просто так вместо текстовой консоли для отладки имеет систему мониторинга значений переменных. Для ПЛК несвойственно генерить сиюминутные тексты. Там, где на Андроиде при разработке приложения можно плюнуть сотню-другую сообщений в отладчик и потом отфильтровать ненужное, на ПЛК надо кропотливо отслеживать разность между состояниями.