В данной статье подробно разбирается проблематика потери потока данных при классической настройке и приводится пошаговое руководство по правильной конфигурации системы на примере протокола Modbus TCP. При классической настройке проекта в Alpha.DevStudio все серверы и ПЛК объединяются в одну общую логическую сеть (элемент Сеть Ethernet). Однако на практике часто используются контроллеры с ограниченным количеством одновременных подключений. Аппаратная и программная архитектура таких ПЛК устроена так, что по одному физическому коммуникационному порту они способны передавать строго один поток данных строго одному получателю. Из-за этого возникает следующая ситуация: первый подключившийся Alpha.Server забирает на себя все данные, а на второй (и последующие) серверы они попросту не попадают. Для решения этой задачи в Альфа платформе предусмотрено несколько архитектурных и программных механизмов. Способ 1: изоляция сетей и дублирование адаптеров (прямой опрос)Чтобы обойти аппаратное ограничение ПЛК и обеспечить параллельный сбор данных напрямую, необходимо использовать метод разделения потоков путем дублирования сетей и адаптеров. Среда Alpha.DevStudio обладает важным свойством: при построении решения логические адаптеры с одинаковым IP-адресом, подключенные к разным сетям, не вызывают конфликтов при компиляции. Разнося сетевые интерфейсы по разным изолированным веткам, мы искусственно создаем для каждого сервера-получателя свой собственный выделенный логический канал связи до одного и того же физического ПЛК. Пошаговое руководство по настройке (Modbus TCP)Рассмотрим процесс конфигурации детально. Обмен данными будет настроен с использованием коммуникационных модулей Опросчик Modbus TCP (со стороны сервера) и Станция Modbus TCP (со стороны ПЛК). Шаг 1. Создание независимых сетей (уровень Alpha.Domain) Вместо использования единой сети необходимо создать отдельные изолированные маршруты для каждого АРМа:
Шаг 2. Настройка адаптеров на стороне ПЛК Далее необходимо сымитировать наличие нескольких независимых интерфейсов у самого контроллера:
Схема топологии в Alpha.Domain со связями контроллера N1 с изолированными сетями Ethernet1 и Ethernet2 Шаг 3. Привязка логических станций к адаптерам
Окно конфигурации модуля ЦП с графической привязкой станций Modbus к адаптерам Eth1 и Eth2 Результат: После компиляции проекта, в обработчике опроса (Опросчик Modbus TCP) на ARM1 будет доступна только одна станция — ModbusTcpSlave_503. А на ARM2 — только ModbusTcpSlave_504. Каждый Alpha.Server установит собственную независимую сессию с контроллером. Способ 2: использование шлюза данных (проксирование)Если ПЛК аппаратно слаб и не способен поддерживать изолированные логические сессии (или компоненты находятся в разных физических сетях), прямое подключение нескольких серверов к ПЛК не рекомендуется. В этом случае используется паттерн маршрутизации через шлюз. Принцип работы: на компьютер, подключенный к сети ПЛК, добавляется Alpha.Server, который выступает в качестве шлюза данных (Proxy). Передача данных организуется по схеме Источник данных → Шлюз данных → Получатель данных.
Способ 3: применение Alpha.AccessPointВ случае, когда под несколькими серверами подразумеваются клиентские АРМы операторов, установка полноценного Alpha.Server на каждый АРМ с прямым опросом ПЛК является избыточной и архитектурно неоптимальной мерой. Для этих задач в Альфа платформе создан специальный компонент — Alpha.AccessPoint. Принцип работы: Alpha.AccessPoint выполняет роль сервера приложений и межуровневого транспорта. Он специально предназначен для того, чтобы ограничивать нагрузку, создаваемую множеством клиентов при прямых подключениях к серверам ввода/вывода. ✓ Примечание Подробнее можно ознакомиться в документации: Схема реализации:
Категоризация данных и защита ПЛКНезависимо от выбранного способа, Alpha.DevStudio предоставляет дополнительные инструменты защиты контроллеров от перегрузок и разделения потоков. Логическое разделение потоков (категоризация)Потоки данных можно разделять не только по разным физическим серверам, но и логически внутри одного соединения. Механизм категоризации данных позволяет разделить параметры одного ПЛК (например, «Давление» и «Температура») на разные группы. Добавив атрибут Категория данных к сигналам, вы можете пустить эти группы через разные логические адаптеры (коммуникационные модули, выступающие в роли опросчиков или клиентов) с разными периодами опроса, что позволяет реже опрашивать некритичные параметры и разгрузить ПЛК. ✓ Примечание Подробности в документации: Настройка очередей в Modbus TCP MasterПри работе с ПЛК важно правильно настроить параметры опросчика Modbus TCP Master на сервере:
|

