Оптимизация Приложения

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

Обратите внимание на очередь носителей данных. Очередь используется только в том случае, если данные больше не могут одновременно читаться и записываться. Это особенно заметно при больших проектах или неправильном оборудовании. Очередь никогда не должна превышать 1% в нормальном режиме работы.

Принцип Работы Приложения

Чтобы понять проверку производительности, сначала необходимо объяснить принцип работы приложения. Помимо основ программирования ПЛК, существуют расширенные методы, которые реализованы только в ПЛК Antcas:

  • Если изменения в элементе не обнаружены, весь элемент паркуется и больше не вычисляется.
  • При изменении глобальных значений выполняется двойной цикл. Затем ПЛК ждет одну миллисекунду.
  • Для расчета временно-критических значений устанавливаются тайм-ауты.
  • Исходящая коммуникация (отправка или сохранение значений) выполняется асинхронно и не после завершения вычислений.
  • Каждая переменная является реманентной и сохраняется перед парковкой или, в крайнем случае, через две секунды.

Анализ Проекта

Чтобы определить, какие элементы приложения требуют очень высокой вычислительной мощности, можно использовать Проверку Производительности.

Советы По Оптимизации

  • Не используйте выход ET таймера TON, TOF, TP. Вместо этого можно работать с UPTIME.
  • Вход SET от VISUSET и VISUDTSET не должен оставаться одновременно активным на нескольких функциональных блоках.
  • Более крупные или сложные вычисления, если возможно, рассчитывайте в отдельном элементе.
  • Выполняйте математические операции с помощью CALCULATE.
  • Используйте логгеры с максимально возможным интервалом. Десять минут для температуры более чем достаточно. Интервал также можно устанавливать динамически.
  • Используйте более высокие интервалы PT в функциональных блоках CTRL_PID, SHUTTER, DIMMER и т.д.
  • При изменении динамических временных входов убедитесь, что они не меняются постоянно. Это может происходить, например, при RGB-последовательностях с функциональным блоком FADE.
  • Упрощайте более сложные задачи. Особенно поиск в строках очень ресурсоемок. Вместо FIND и SUBSTR используйте функциональный блок EXPLODE или PREG_SPLIT. Значения соответствующим образом сохраняются во временном хранилище.
  • Обработка HTTP-запросов может потребовать много памяти.
  • Уменьшите количество полученных телеграмм. Например, при изменении яркости значения в зависимости от шины обратная связь может быть задержана.
  • Увеличьте Время Цикла ПЛК.