| Модуль | Имя | Версия | Лицензия | Источник | Языки | Платформы | Тип | Автор | 
| DAQGate | Шлюз источников данных | 2.14 | GPL2 | daq_DAQGate.so | en,uk,ru,de | x86,x86_64,ARM | DAQ | Роман Савоченко | 
| Описание | 
| Позволяет выполнять шлюзование источников данных удалённых OpenSCADA станций в локальные.  Спонсировано, асинхронной записи, усовершенствование в целом и в сообщениях с нарушениями и действий на 1.5 ЧД[!]: INSERTEC LTDA, Винницкая Птицефабрика
 | 
Основной функцией данного модуля является отражение данных подсистемы "Сбор данных" удалённых OpenSCADA станций на локальные. В своей работе модуль использует Собственный Протокол OpenSCADA и сервисные функции подсистемы "Сбор данных".
Модулем реализуются следующие функции:
-  Отражение структуры параметров подсистемы "Сбор данных" удалённой станции. Эта структура может периодически синхронизироваться при работе.
-  Доступ к конфигурации параметров. Конфигурация параметров контроллеров удалённых станций прозрачно отражается, что позволяет менять её удалённо.
-  Доступ к текущим значениям атрибутов параметров и возможность их модификации. Значения атрибутов параметров обновляются с периодичностью исполнения локального объекта контроллера. Запросы на модификацию атрибутов транслируются на удалённую станцию.
-  Отражение архивов значений отдельных атрибутов параметров. Реализовано отражение архивов двумя способами:
-  предусматривает создание локального архива для атрибута и его синхронизацию с удалённым, при этом поддерживается восстановление архива на время недоступности удалённой станции;
-  предусматривает трансляцию запросов локального архива к архиву удалённой станции.
 
-  Отражение сообщений выбранных источников данных удалённой станции в локальном архиве сообщений с префиксом "{Станция}:", включая и нарушения (отрицательный уровень). Процедура первичной синхронизации в целом предусматривает:
-  запрос всех активных нарушений;
-  запрос сообщений определённых источников на глубину, указанную параметром "Максимальная глубина данных архива значений и сообщений для восстановления при запуске", и по время предыдущего запроса, т.е. когда новые активные нарушения точно не появятся;
-  переход в нормальный режим отслеживания новых сообщений и нарушений определённых источников.
 
-  Предоставление реализации механизма вертикального резервирования, а именно возможность отражения данных с нескольких станций одного уровня.
-  Реализация функции горизонтального резервирования, а именно совместной работы с удалённой станцией этого же уровня.
Использование доступных схем резервирования наглядно представлено на рисунке 1.
 
  Рис.1. Горизонтальное и вертикальное резервирование.
1 Объект контроллера
Для добавления источника данных создаётся и конфигурируется объект контроллера OpenSCADA. Пример вкладки конфигурации объекта контроллера данного типа изображен на рисунке 2.
 
  Рис.2. Вкладка конфигурации объекта контроллера.
With this tab you can set:
-  State of the controller object, that is: status, "Enabled", "Running" and the storage name containing the configuration.
 Manual restart of the enabled controller object causes the force resync at the sync period >= 0. Manual restart of the enabled controller object causes the force resync at the sync period >= 0.
-  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. 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.
 In the production mode, it's better to turn this off! In the production mode, it's better to turn this off!
-  Placing different controllers to the different virtual parameters.
2 Параметры
Модуль хотя и предоставляет возможность создания параметров вручную, однако это лишено смысла, поскольку такой параметр, при отсутствии его на удалённой станции, будет пустым. Все параметры создаются автоматически с учётом списка отражаемых объектов контроллеров и параметров. Параметры могут быть сохранёны в кеш для последующего их создания даже при отсутствии связи с удалённой станцией. Пример отраженного параметра приведён на рисунке 3.
 
  Рис.3. Вкладка конфигурации отражённого параметра.
3 Замечания
В работе с этим модулем в целом рекомендуется следующий порядок:
-  На время активной разработки, а соответственно и изменения структуры параметров удалённой станции, нужно включить синхронизацию с периодичностью секунд 60 и разрешить удаление параметров и атрибутов.
-  Перед запуском в производство нужно: выключить периодическую синхронизацию (периодичностью 0) или даже при старте (периодичностью -1), запретить удаление параметров и атрибутов и сохранить текущую структуру параметров через сохранение объекта контролера. Это нужно для минимизации трафика и нагрузки удалённой станции обменом, что особенно важно для высоко-нагруженных ПЛК, поскольку синхронизация, хотя и распределяет синхронизацию отдельных параметров по тактами цикла обмену, все-же является ресурсоёмкой функцией.
-  Выполнение сервисных изменений структуры нужно осуществлять следующим образом:
-  изменяется структура параметров удалённой станции;
-  периодичность синхронизации устанавливается в 0, если стояло -1;
-  объект контроллера перезапускается, т.е. переключается состояние "Исполняется";
-  ожидается завершение синхронизации, т.е. исчезновение из состояния объекта контроллера "Синхронизация".
-  периодичность синхронизации возвращается в предыдущее значение;
-  сохраняется структура отражённый параметров через сохранение объекта контроллера шлюза.
 
4 Ссылки