Оптимізація застосування

Кожен розрахунок вимагає певного часу обчислення. Це може призвести до проблем, якщо реалізовуються дуже великі проекти або більші операції. Загальний час циклу можна відобразити за допомогою перемикання системного монітора в правому верхньому куті.

Зверніть увагу на чергу носіїв даних. Черга використовується лише тоді, коли дані більше не можуть одночасно читатися та записуватися. Це особливо помітно у великих проектах або при неправильному обладнанні. Черга ніколи не повинна перевищувати 1 % під час нормальної роботи.

Дія застосування

Щоб зрозуміти тестування продуктивності, спочатку потрібно пояснити дії застосування. Крім основ ПЛК, існують розширені методи, які реалізовано лише в SPS Antcas:

  • Якщо зміни в елементі не виявлено, весь елемент паркується та більше не обчислюється.
  • При зміні глобальних значень виконується подвійний цикл. Потім SPS чекає лише одну мілісекунду.
  • Для розрахунку критичних за часом значень встановлюються тайм-аути.
  • Вихідна комунікація (відправлення значень або збереження) відбувається асинхронно та не після завершення обчислень.
  • Кожна змінна є реманентною та зберігається перед паркуванням або найпізніше через дві секунди.

Аналіз проекту

Щоб визначити, які елементи застосування потребують дуже високої обчислювальної потужності, можна використати тестування продуктивності.

Пориди щодо оптимізації

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