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