А зачем? Можно же в отчетах это делать.
В принципе если использовать архивацию в СУБД, то можно у прореженного слоя задать формирование интегральный средний.
Но основной слой все равно будет представлять набор исходных значений - без обработок.
Вид для печати
А зачем? Можно же в отчетах это делать.
В принципе если использовать архивацию в СУБД, то можно у прореженного слоя задать формирование интегральный средний.
Но основной слой все равно будет представлять набор исходных значений - без обработок.
Хранить информацию необходимо до 10 лет, и забивать архив ненужными значениями нельзя, ну и по ТЗ.
а во встроенной firebird такое можно будет организовать? А есть какие то механизмы, допустим что то вроде d-trigger для аналоговых значений, что бы каждые 10 минут считать среднее выдавать импульс и в архив писать "по изменению" ?
Можно, но лучше для этого все же использовать MS SQL.
И как раз слои такую проблему и будут решать - вы можете сделать прореженные слой с шагом в 10 минут и обработкой "Интегральное среднее".
ФБ "Повторитель по условию". На вход подавайте сигналы например от пульсатора, а выход архивируйте. Входной сигнал соответственно можете сформировать как угодно.
Но, повторим - лучше использовать стандартный механизм слоев.
БД вообще не вариант к сожалению
А что на счет такой схемы:
команда 1 - генератор синус (0-100)
далее этот сигнал идёт на "Скользящее среднее"
далее выход этого фб идет на "значение" с именем 20
В настройках значения в вкладке опрос ставится нужный интервал (для примера поставил 60 секунд)
в настройках архивирования "по изменению"
На графике видно что сигнал меняется раз в минуту.
Правильно ли я понимаю, что архив значения 20, который меняется раз в минуту, будет содержать не ежесекундные одинаковые значения, а именно измененные?
Вложение 41952Вложение 41953Вложение 41954
Если уж на то пошло, то просто оставьте два слоя - основной и минутный.
В настройках шаблона сделайте обработку Интегральное среднее. Основной слой храните 30 дней, минутный - 2 года.
Для слоев обязательно использовать встроенную firebird, или можно использовать файловый архив?
Единственное непонятно, если я выбираю в шаблоне "интегральное среднее"
То минутный интервал будет считаться из основного слоя, который имеет интервал в 1 такт и интегральное среднее основного слоя = текущему измеренному ?
Получается что срок хранения основного слоя должен быть больше чем минутный ( и остальные) слой ?
Вложение 41956Вложение 41957
Подскажите пожалуйста,
определил для команды 1 сохранение по шаблону.
Но на тренде минутный слой не отображается
Вложение 41964
Вложение 41961Вложение 41962Вложение 41963
А что тогда по вашему у вас отображается?
Добрый день. Столкнулся с такой проблемой:
При долгом простое - данные в отчете пропадают.
Т.е. данные не обновляются (всегда 0), они присутствуют некоторое время, а потом исчезают.
Скриншоты прикладываю.
Что значит "исчезают"? Отчет берет данные из архива, если в архиве данные есть, то и в отчете они будут.
Во вкладе "Архив" по данному значению стоит галочка "По изменению". Т.е. запись происходит только тогда, когда значение изменяется.
Данное значение не изменяется в течении долгого периода времени, почти всегда 0. При формировании отчета на первых страницах значение "0" присутствует, но через некоторое время оно пропадает.
Ну а архиве оно присутсвует на этот момент?
Приложите ваш проект целиком вместе с данными - заархивируйте папку проекта, укажите путь к отчету, а также укажите время за которое вы формируете отчет при котором значение пропадает, а также сформированный отчет (сохраните его в PDF).
Оригинальный проект весит более 3 Гб. Сделал копию и удалил всё лишнее.
Необходимо запустить проект, перейти на окно управления, выставить дату с 27.03.2019 по 29.03.2019 и нажать на кнопку сформировать.
Сформируется отчёт на котором будет видно, что на 3 странице у устр. 4 данные есть, но на 4 стр. у устр.4 данные будут отсутствовать.
Ссылка на проект. В архиве так же находится сформированный отчёт в формате PDF.
Так получается потому, что у вас в указанное время была выключена скада. В этом случае значения будут равны Null, и выходят пустые ячейки (можно сделать чтобы вместо них были нули, но это не совсем правильно). Другой вопрос почему так вышло.
В приложении скриншоты двух параметров, по проблемному видно, что скада в 8.29 выключилась, а следующее значение пришло только в 5 утра 29.
У другого параметра выключение в тоже время, но следующее значение пришло в 9.41 28 числа.
Возможно по проблемному параметру просто не поступало значение от ОРС сервера (имело признак качества Empty).
Так что все работает корректно.
Почему то не прикрепляются рисунки. Вот ссылки
https://yadi.sk/i/SSgYomIQ7ySOqA
https://yadi.sk/i/DnLGcwzqltv3LQ
Проблема остается.
На выходные был запущен проект и он работал без остановки. Так же в отчете отсутствуют значения.
По поводу значений - оно не может быть Empty. Если пришли значения от других устройств (менеджер, устр. 1, устр. 2, устр. 3), то и для устр. 4 значения тоже пришли (значения 0).
Как тогда сделать, чтобы вместо пустых ячеек были 0 ?
Проверяйте значение архива в этот момент времени. Мы вам детально описали в чем проблема.
Сделать чтобы выводилось 0 можно включив настройку
https://yadi.sk/i/G4AiuN1z7eY7WA
Добрый день!
Со слоями разобрался, спасибо за помощь.
Подскажите еще, как правильно рассчитывать размер архива ?
Например для 10 переменных(вещ.дв. точности) которые пишутся ежесекундно( без усреднения) за 10 лет.
Для одной переменной:
8*3600*24*365*10 = 2522880000 байт . ~2.5 ГБ
Итого для 10 переменных 25 ГБ
Плюс метки времени , всякие id и т.п.
Это очень трудно сказать - зависит также от типа БД. В Posgre очень большие базы например.
В MS SQL можно ориентироваться на 60 байт в одну запись.
А в firebird Embedded ?
Я правильно понимаю
PROJECTID INTEGER NOT NULL,
LAYER INTEGER NOT NULL,
ITEMID INTEGER NOT NULL,
"TIME" TIMESTAMP NOT NULL,
"VALUE" DOUBLE PRECISION,
QUALITY INTEGER,
FLAGS INTEGER
5 int (10 байт) + dbl (8 байт) + time (8 байт) итого 26 байт ?
Можно смело умножить на 2-3, как именно хранит данные Firebird нам неведомо.
Как считаете, есть ли смысл разделять архивы?
Например :
один и тот же параметр архивировать в две(или более) БД (два или более бд коннектора)
1 БД - для ежесекундной записи и отображении на трендах со сроком хранения допустим месяц.
2 БД - для усредненных часовых интервалов для построения отчетов и т.п.
Вопрос возник от того, что если я правильно понимаю, в одной БД MS3 пишет все в одну таблицу, и старые записи будут удаляться(цикл хранения которых месяц ) и будет происходить перестроение БД( или что там происходит при удалении старых и записи новых данных)
Речь идет о Firebird Embedded
Не имеет смысла.
Здравствуйте, подскажите пожалуйста,
стоит задача построить систему на одном ПЛК (VIPA) и двух ПК c МастерСКАДА (ПК - взаимозаменяемые), опрос ПЛК через ОPC-сервер(VIPA).
Работа подобной системы но с одним ПК уже проверена не раз - все отлично.
Почитал мануал "Разработка сетевых проектов" и есть ряд вопросов:
1. Если количество тегов 2000 то нужно заказать МастерСКАДА - MSRT2,5K-Net-RED сразу на два ПК, или две MSRT2,5K-Net на каждый ПК?
2. Архитектура проекта у меня должна быть сервер-серверная или лучше резервированная система?
3. Выбор места исполнения объекта "На всех компьютерах"?
Так вам нужно резервирование? Или простой сетевой проект.
Обратитесь в отдел продаж - они вам детально опишут что нужно приобрести.
Нет. Подробнее тут:
https://insat.ru/blog/naznachenie-is...ykh-proektakh/
Мне нужно одновременное управление тех процессом с двух ПК или одного если второй выключен.
То есть будет два ПК и на каждом свой OPC-сервер которые будут опрашивать один ПЛК. Проекты ОРС-сервера и скады идентичны. Как тут быть?
Я пробовал запускать один и тот же проект на двух ПК - нужна синхронизация
Вообще это резервирование.
Каждый оператор будет сидеть за своим компьютером? Или будет один оператор?
Тогда нужна RED версия.
Вы можете обратится в отдел продаж - они все опишут.
Вопрос по типизации.
В объекте есть Событие дискретное, настройки восстановление при рестарте и значение до опроса - истина.
Работает как требуется - при старте РТ должно быть истина и потом восстанавливаться.
Делаю типизацию этого объекта и Событие в состоянии Ложь (текущее значение)... и при старте и после восстановлении Ложь (пробовала разные варианты...). Как сделать чтоб в работало как и без типизации?
А какие нибудь другие переменные? Те же команды например?
В формуле у события что? Может само условие при старте в ложь переходит?
В формуле ничего.. чисто резекция на "галку" от пользователя с мнемосхемы (надо чтоб все галки изначально стояли)
Подскажите пожалуйста, как сделать счетчик ?
есть расход в г/с,
на выходе надо получать тонны. с момента запуска.
Подойдет ли такая формула в расчетахНо мне кажется что надо каждый такт прибавлять к текущей сумме, а не рассчитывать из архива, и сохранять в периодическом слое раз в час.Код:AbsArchIntegral(г_с, Int2DateTime( 01,01,2019, 00,00,00 ),Time( ) ,1)
Еще вопрос.
Можно ли сделать так что бы из фб "блок параметров" или "поля выбора"
Заранее выставленные значения сразу подавались на вход команды? при режиме опроса по изменению ?
Вложение 42072
Значение в ФБ поля "выбора предопределено заранее" но после запуска скады в команду значение "1" не приходит, что логично, ведь опрос стоит по изменению. Но если это допустим уставки, то надо что бы они сразу шли в команду.
Вложение 42080Вложение 42081
Тогда нужно включать у команды восстановление при рестарте.
Также посмотрите справку
Графический редактор > Элементы палитры графического редактора > Элементы диалога >Пример использования