Показать сообщение отдельно
Старый 24.10.2019, 12:19   #51
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Функционал

Цитата:
Сообщение от Gel Посмотреть сообщение
Во первых, это типовой пример, как не надо делать. Потому что подключаться кому угодно к БД сбора информации нельзя, т.к. это может привести к значительному влиянию на сбор информации.
Согласен. Решение: У PostgreSQL сервера приоритет по умолчанию ниже чем у управляющей программы. Редактируем параметры postgresql.conf listen_addresses = (список адресов)
max_connections = 1 (2).
Все так работает без влияния на управляющую программу. Проверено.
Цитата:
Сообщение от Gel Посмотреть сообщение
Во вторых, как вы заметили ранее, информация может храниться в упакованном виде, а схема базы данных может быть оптимизирована для процесса сохранения данных, а не извлечения прикладными функциями.
Согласен. Решение: вводим ограничение на количество аналоговых входов в системе 1200. Размещаем в одной таблице. Вводим ограничение на количество дискретных входов в системе 1200 размещаем в другой таблице. Вводим периодическое стирание старых данных. Вводим ограничение на периодичность записи не чаще чем раз в секунду.
Получаем на диске объем двух таблиц (неточно) 15 ГБ = месяц секундных значений без упаковки. При этом не уходим в большие системы и остаемся в рамках одного контроллера.
Цитата:
Сообщение от Gel Посмотреть сообщение
Первичные данные с точки сбора переливаются во вторичные данные, конвертируются, агрегируются, потом могут реплицироваться в необходимое число копий, обращение к которым точно не загубит критичные части системы.
Согласен. Но решение выходит за рамки средней системы. Это уже уровень Data Historian сервера.
МастерСкада опять получается. Тогда уж поставьте Run-Time от мастерскады. Сразу все вопросы отпадут.
Цитата:
Сообщение от Gel Посмотреть сообщение
Ну не хорошо это делать на контроллере, потому что там работает задача, критичная к доступным вычислительным ресурсам.
Так можно делать или из-за незнания, как правильно построить систему, или из-за каких-то жестких ограничений по бюджету с игнорированием возможных последствий.
Правильно организуете систему и читаете без проблем.
Выгрузка прямо в Excel из БД контроллера -- это неправильное решение.
Я так сделал. Работает, сбоев нет. Допустим это неправильно. Выберем самый плохой вариант - от недостатка бюджета плюс от незнания.
На сегодняшний день нам достаточно докупить модуль LabVIEW Datalogging and Supervisory Control и все будет правильно и с Вашей точки зрения.
Дайте ссылку на Вашу документацию с использованием матрикс где Вы покажете правильное и протестированное решение.
Готов рассмотреть любой Ваш опыт из вышеперечисленного опробованный на Ваших контроллерах. Мастерскаду видел.


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...

Последний раз редактировалось ujin, 24.10.2019 в 12:33
ujin вне форума   Ответить с цитированием