Модуль | Имя | Версия | Лицензия | Источник | Языки | Платформы | Тип | Автор |
---|---|---|---|---|---|---|---|---|
DAQGate | Шлюз источников данных | 2.13 | GPL2 | daq_DAQGate.so | en,uk,ru,de | x86,x86_64,ARM | DAQ | Роман Савоченко |
Описание | ||||||||
Позволяет выполнять шлюзование источников данных удалённых OpenSCADA станций в локальные.
|
Основной функцией данного модуля является отражение данных подсистемы "Сбор данных" удалённых OpenSCADA станций на локальные. В своей работе модуль использует Собственный Протокол OpenSCADA и сервисные функции подсистемы "Сбор данных".
Модулем реализуются следующие функции:
- Отражение структуры параметров подсистемы "Сбор данных" удалённой станции. Эта структура может периодически синхронизироваться при работе.
- Доступ к конфигурации параметров. Конфигурация параметров контроллеров удалённых станций прозрачно отражается, что позволяет менять её удалённо.
- Доступ к текущим значениям атрибутов параметров и возможность их модификации. Значения атрибутов параметров обновляются с периодичностью исполнения локального объекта контроллера. Запросы на модификацию атрибутов транслируются на удалённую станцию.
- Отражение архивов значений отдельных атрибутов параметров. Реализовано отражение архивов двумя способами:
- предусматривает создание локального архива для атрибута и его синхронизацию с удалённым, при этом поддерживается восстановление архива на время недоступности удалённой станции;
- предусматривает трансляцию запросов локального архива к архиву удалённой станции.
- Отражение сообщений выбранных источников данных удалённой станции в локальном архиве сообщений с префиксом "{Станция}:", включая и нарушения (отрицательный уровень). Процедура первичной синхронизации в целом предусматривает:
- запрос всех активных нарушений;
- запрос сообщений определённых источников на глубину, указанную параметром "Максимальная глубина данных архива значений и сообщений для восстановления при запуске", и по время предыдущего запроса, т.е. когда новые активные нарушения точно не появятся;
- переход в нормальный режим отслеживания новых сообщений и нарушений определённых источников.
- Предоставление реализации механизма вертикального резервирования, а именно возможность отражения данных с нескольких станций одного уровня.
- Реализация функции горизонтального резервирования, а именно совместной работы с удалённой станцией этого же уровня.
Использование доступных схем резервирования наглядно представлено на рисунке 1.
1 Объект контроллера
Для добавления источника данных создаётся и конфигурируется объект контроллера OpenSCADA. Пример вкладки конфигурации объекта контроллера данного типа изображен на рисунке 2.
With this tab you can set:
- State of the controller object, that is: status, "Enabled", "Running" and the storage name containing the configuration.
- Identifier, name and description of the controller.
- The state "Enabled" and "Running" in which the controller object must be translated at start up.
- Acquisition schedule policy and priority of the data acquisition task.
- Time interval of repetition attempts to restore communication with the lost station, in seconds.
- Maximum depth of data of the archive values and messages to restore when start, in the hours. Zero for disable the remote archive access.
- Asynchronous writing. Enables of writing in the common acquisition cycle for the buffer of accumulated values, by one request.
- Useful for slow and not reliable networks-connections since the writing buffer stores data before the connection restore and the real writing.
- Level of requested messages of the data sources. Also enables the DAQ-messages of the User API function messSet() transferring to the lower stations.
- Synchronization time with the remote station in seconds. Zero to disable the periodic sync and -1 for the sync disabling at the start also.
- Remote OpenSCADA station of the reflected data. Several stations in the list enable the vertical redundancy mechanism.
- List of the reflected controller objects and parameters. The list can be used as for controller objects for the reflection of all their parameters, and for individual parameters too.
- Command to go to configuration of the OpenSCADA remote stations list.
- Allow the automatic removal of parameters and attributes to update to the actual state.
- Placing different controllers to the different virtual parameters.
2 Параметры
Модуль хотя и предоставляет возможность создания параметров вручную, однако это лишено смысла, поскольку такой параметр, при отсутствии его на удалённой станции, будет пустым. Все параметры создаются автоматически с учётом списка отражаемых объектов контроллеров и параметров. Параметры могут быть сохранёны в кеш для последующего их создания даже при отсутствии связи с удалённой станцией. Пример отраженного параметра приведён на рисунке 3.
3 Замечания
В работе с этим модулем в целом рекомендуется следующий порядок:
- На время активной разработки, а соответственно и изменения структуры параметров удалённой станции, нужно включить синхронизацию с периодичностью секунд 60 и разрешить удаление параметров и атрибутов.
- Перед запуском в производство нужно: выключить периодическую синхронизацию (периодичностью 0) или даже при старте (периодичностью -1), запретить удаление параметров и атрибутов и сохранить текущую структуру параметров через сохранение объекта контролера. Это нужно для минимизации трафика и нагрузки удалённой станции обменом, что особенно важно для высоко-нагруженных ПЛК, поскольку синхронизация, хотя и распределяет синхронизацию отдельных параметров по тактами цикла обмену, все-же является ресурсоёмкой функцией.
- Выполнение сервисных изменений структуры нужно осуществлять следующим образом:
- изменяется структура параметров удалённой станции;
- периодичность синхронизации устанавливается в 0, если стояло -1;
- объект контроллера перезапускается, т.е. переключается состояние "Исполняется";
- ожидается завершение синхронизации, т.е. исчезновение из состояния объекта контроллера "Синхронизация".
- периодичность синхронизации возвращается в предыдущее значение;
- сохраняется структура отражённый параметров через сохранение объекта контроллера шлюза.