УкраїнськаEnglishmRussian
Вхід/Новий
У темі немає нових постів

Как правильно отдать архив значений во внешнюю систему?


Автор Повідомлення
Повідомлення створено: 21. 12. 2021 [07:23]
andrey-sw
Андрей Сычев
Автор теми
Зареєстрован(а) с: 10.12.2008
Повідомлення: 32
При интеграции с внешней системой возник ряд вопросов

Как правильно отдавать архив значений за указанный период во внешнюю систему?
Как правильно отдавать в режиме максимально приближенном к runtime?

В случае с архивированием на БД, ответ вроде очевиден, можно значения брать напрямую из базы, но как то не красиво...
И как быть с архивами на ФС?

Первое что приходит в голову это Пользовательский протокол и входной транспорт... Правда пока не понял как быть с аутентификацией...
Да и реализация довольно сложная получится, может есть решения попроще.
В идеале хотелось бы получить что то вроде REST API к архивам OpenScada.
Повідомлення створено: 22. 12. 2021 [01:02]
walhi
Sergey Karpesh
Зареєстрован(а) с: 26.01.2016
Повідомлення: 29
"andrey-sw" wrote:

Как правильно отдавать в режиме максимально приближенном к runtime?

Отдавать что? Текущие значения с датчиков? Так OpenSCADA же умеет в режим Slave.

"andrey-sw" wrote:

Первое что приходит в голову это Пользовательский протокол и входной транспорт... Правда пока не понял как быть с аутентификацией...

Если это связано с предыдущим вопросом, то подобрать то, что оно умеет из коробки. Можно хоть по http выдавать json. Никто не запрещает. По поводу аутентификации. Можно работать туннелями (входящий транспорт на localhost или VPN интерфейс) или просто настройками firewall ограничить доступ. Сам ещё не пробовал, но сокеты в OpenSCADA умеют в SSL.

"andrey-sw" wrote:

В случае с архивированием на БД, ответ вроде очевиден, можно значения брать напрямую из базы, но как то не красиво...
И как быть с архивами на ФС?

На странице http://oscada.org/wiki/Modules/FSArch/ru есть описание формата архиватора на файловую систему. Думаю, что вам проще будет все же через базы данных работать. А там уж любым удобным способом. Хоть PHP.

Повідомлення створено: 22. 12. 2021 [03:46]
andrey-sw
Андрей Сычев
Автор теми
Зареєстрован(а) с: 10.12.2008
Повідомлення: 32
"walhi" wrote:

"andrey-sw" wrote:

Как правильно отдавать в режиме максимально приближенном к runtime?

Отдавать что? Текущие значения с датчиков? Так OpenSCADA же умеет в режим Slave.


Имелся в виду следующий момент. Допустим я хочу рисовать график значений за последние 10мин, Данные пишутся каждые 5сек, а архивируются каждую мин. Соответственно будут моменты что данные получены, находятся в буфере но в архив еще не записались. Вот и спросил как избежать таких потерь.

"walhi" wrote:

"andrey-sw" wrote:

Первое что приходит в голову это Пользовательский протокол и входной транспорт... Правда пока не понял как быть с аутентификацией...

Если это связано с предыдущим вопросом, то подобрать то, что оно умеет из коробки. Можно хоть по http выдавать json. Никто не запрещает. По поводу аутентификации. Можно работать туннелями (входящий транспорт на localhost или VPN интерфейс) или просто настройками firewall ограничить доступ. Сам ещё не пробовал, но сокеты в OpenSCADA умеют в SSL.

Имеется ввиду стандартный http транспорт или реализованный через пользовательский протокол?

"walhi" wrote:

"andrey-sw" wrote:

В случае с архивированием на БД, ответ вроде очевиден, можно значения брать напрямую из базы, но как то не красиво...
И как быть с архивами на ФС?

На странице http://oscada.org/wiki/Modules/FSArch/ru есть описание формата архиватора на файловую систему. Думаю, что вам проще будет все же через базы данных работать. А там уж любым удобным способом. Хоть PHP.


С форматами архива сообщений понятно - он хорошо описан, но формат архива значений намного сложнее, описаны лишь принципы и его реализация не совсем тривиальная задача.
А что касается прямого доступа к БД я уже писал, к тому же архивация на ФС все таки более производительна и может случится что писать в БД невыгодно с точки зрения быстродействия, но данные отдавать на внешку для построения например отчетов или другой аналитики нужно...
Повідомлення створено: 22. 12. 2021 [04:31]
IrmIngeneer
Константин \m/
Contributor
Sponsor
Зареєстрован(а) с: 16.09.2010
Повідомлення: 185
Вертикальное резервирование. В документации описано.
Повідомлення створено: 27. 12. 2021 [07:25]
almaz
Almaz Karimov
Contributor
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
"andrey-sw" wrote:

При интеграции с внешней системой возник ряд вопросов

Как правильно отдавать архив значений за указанный период во внешнюю систему?
Как правильно отдавать в режиме максимально приближенном к runtime?

Забирать данные в реальном времени по MODBUS/TCP и выполнять архивацию средствами внешней системы.

21 век - век повсеместной автоматизации. Главное - во благо всем людям.



10256