Распределённая система управления
РСУ верхнего уровня, встроенная в платформу «Лацерта»
Основные идеи
Базовые идеи, заложенные в РСУ «Лацерта»
Основа РСУ
- Отказоустойчивый кластер и кластерные сервисы
- Эффективный интерконнект
- Единая модель данных и структура объектов
- Реактивная архитектура, механика подписки
- Встроенные сценарии и стиль вычислений
Функции РСУ
- Обслуживание сложной децентрализованной логики
- Дистанционное управление устройствами
- Функционально-групповое управление
- Повышение уровня автоматичности
- Снижение вовлечённости оператора
Что может РСУ верхнего уровня
Координация хостов. РСУ верхнего уровня решает задачи распределённого управления верхнего уровня — прежде всего координацию хостов, то есть клиентов кластера.
Не замена регулятору. Классические задачи автоматического управления, например регуляторы, она не решает — но может управлять второстепенными процессами, где допустима приемлемая задержка.
Совместимость с ПЛК. Прекрасно взаимодействует с модулями удалённого ввода/вывода и позволяет координировать узлы устройств клиентов кластера, например ПЛК, при наличии необходимых интерфейсов и API.
Топология РСУ верхнего уровня
Узлы кластера РСУ (R) верхнего уровня сопрягают хосты (C) с помощью клиентского (относительно кластера) интерконнекта.
Схема сопряжения компонентов РСУ
Как это устроено физически
Как РСУ «Лацерта» сопрягает ПЛК и устройства удалённого ввода/вывода
Уровни РСУ
Двухуровневая РСУ
В качестве хостов (клиентов) РСУ верхнего уровня может быть классическая РСУ.
РСУ верхнего уровня (РСУ ВУ)
- Координация устройств РСУ НУ
- Координация сопряжённых подсистем
- Сложная логика на серверах
- Допускает существенную задержку
РСУ нижнего уровня (РСУ НУ)
- Управление устройствами
- Координация сопряжённых ПЛК
- Умеренная логика на узлах РСУ
- Гарантия низкой задержки
Единая сквозная РСУ
- Координация всех устройств
- Единое пространство имён
- Единый язык программирования
- Сквозная диагностика
Сквозная логика двухуровневой РСУ
Алгоритм распределяется по всем узлам сквозной РСУ. При этом обеспечивается параллелизация, если необходимо.
Прохождение алгоритма по узлам
Распределённый алгоритм
-------------------------------------------- @node C01
src = {AI01_0, AI01_1, AI03_2, AI03_3} -- LIO ×2, LIO C02 ×2
dst = {AO01_0, AO01_1} -- LIO
x = read(src) -- OP01 R
y = {f01(x), f02(x)} -- OP02 C
write(dst, y) -- OP03 W
-------------------------------------------- @node C02
src = {AI03_0, AI03_1, AI01_2, AI01_3} -- LIO ×2, LIO C01 ×2
dst = {AO03_0, AO03_1} -- LIO
x = read(src) -- OP04 R
y = {f03(x), f04(x)} -- OP05 C
write(dst, y) -- OP06 W
-------------------------------------------- @node R01
src = {AI02_0, AI02_1, AI04_2, AI04_3} -- RIO ×2, RIO R02 ×2
dst = {AO02_0, AO02_1, AO04_2, AO04_3} -- RIO
x = read(src) -- OP07 R
y = {f05(x), f06(x), f07(x), f08(x)} -- OP08 C
write(dst, y) -- OP09 W
-------------------------------------------- @node R02
src = {AI04_0, AI04_1, AI02_2, AI02_3} -- RIO ×2, RIO R01 ×2
dst = {AO04_0, AO04_1, AO02_2, AO02_3} -- RIO
x = read(src) -- OP10 R
y = {f09(x), f10(x), f11(x), f12(x)} -- OP11 C
write(dst, y) -- OP12 W
-------------------------------------------- @node C01
src = {AI01_2, AI01_3} -- LIO ×2
dst = {AO01_2, AO01_3} -- LIO
x = read(src) -- OP13 R
z = {R02.ai04_0, R02.ai04_1} -- OP13 R кеш R02
y = {f13(x, z), f14(x, z)} -- OP14 C
write(dst, y) -- OP15 W
-------------------------------------------- @node C02
src = {AI03_2, AI03_3} -- LIO ×2
dst = {AO03_2, AO03_3} -- LIO
x = read(src) -- OP16 R
z = {R01.ai02_0, R01.ai02_1} -- OP16 R кеш R01
y = {f15(x, z), f16(x, z)} -- OP17 C
write(dst, y) -- OP18 W
Управление таймингами
Если логика управления допускает параллельные алгоритмы без блокировок, это вполне можно реализовать.
Тайминги по узлам
Что может двухуровневая РСУ
Многоуровневый алгоритм
- Алгоритм задаётся одним описанием
- Его части обслуживают разные узлы
- Алгоритм разделяется между кластерами
- Распределение логики разного уровня
- Сквозная диагностика
Ввод/вывод любой глубины
- Доступ к вводу/выводу на любом уровне
- Поддержка Remote I/O
- Единый стиль доступа и обработки
- Множественный доступ к чтению
- Защита и блокировка вывода
Две среды, один язык
- РСУ «Лацерта» на серверах
- РСУ Мультиконтроль на контроллерах
- Сквозная среда разработки, единый язык
- Единый язык, универсальный синтаксис
- Перенос логики между узлами
РСУ верхнего уровня «Лацерта» имеет сквозное сопряжение с РСУ нижнего уровня «Мультиконтроль». Запись в реестре ПО Минцифры № 33304.