Здравствуйте.
И хотя опрос тэгов вроде можно производить с нужной скоростью, но в настройках переменных минимальный цикл архивирования - 100 мс.
Работа разных типов архивации
описана здесь. Для типа архивации "По-времени" задаётся интервал времени, например 100 мс. и скада будет игнорировать новое значение, если от предыдущего значения прошло не более 100 мс. (т.е. на каждые 100 мс. будет добавляться (по-возможности) не более одного значения). Под Вашу задачу нужен тип архивации "по-изменению".
Если записывать данные по изменению - похоже, что запись происходит не чаще чем раз в 100 мс. (это так?)
Нет. С типом архивации "по-изменению" запись в архив происходит каждый раз, когда скада получила от OPC-сервера новое значение тега (отличное от предыдущего). Если OPC-сервер будет передавать в скаду изменения с частотой 50 мс., то скада будет добавлять их в архив с той же частотой. OPC-сервер вместе со значением тега передаёт также отметку времени (указывает когда именно изменился тег), скада использует эту отметку времени при архивации. При создании переменной в Редакторе скады, нужно обязательно указать соответствующую частоту опроса (в Вашем случае 50 мс.).
Для записей в архив по изменению, невозможно выбрать период хранения таких данных. Необходимо чтобы они хранились десять дней.
Период хранения архивных данных и тип архивации никак не связаны друг с другом. Можно ограничить время хранения архивных данных в меню "Проект - Настройки - Тренды" , список "Ограничение архива трендов". Тогда скада периодически будет посылать в БД запрос на удаление данных старше указанного срока.
Ко всему прочему нужно вычислять средние и средне-кубические значения за секунду.
Можно в любое время получить среднее значение за произвольный период времени на основе архивных данных пи помощи процедуры
ArchiveAverage. Но если нужно получать такие значения часто, постоянно и за короткие периоды, то это не очень оптимальное решение. К тому же нет архивной функции для вычисления среднего кубического.
Можно сделать отдельный скрипт с типом "По-изменению" и в нём пытаться на ходу вычислять нужные значения, но здесь возникнет большое количество проблем например с определением вершин и их значений на начало и конец интервала и др. проблемы, например с вычислением значения, если переменная долго не менялась. Чаще всего для таких задач используют готовые блоки в программе ПЛК для вычисления средних, готовый результат пишут в переменную, которую и используют в скаде для архивации, получая таблицу средних за прошедшее время.