В ячейке бэнда "Итог данных"
Значение счетчика у вас будет идти нарастающим итогом?
Можно воспользоваться модулем "расчет" - у него есть функции для работы с архивом. В том числе, можно найти значение времени в определенный момент времени
Вид для печати
Используйте функцию расчета AbsArchMomentValue( )
Смотрите сами исходя из вашей задачи.
Добрый вечер.
Я опять возвращаюсь к функции расчета AbsArchMomentValue( ). Объясните пожалуйста, как правильно истолковать объяснение в справке: Тип поиска может иметь значения: 0 - ближайшее по времени сверху, 1 - ближайшее снизу, 2 - ближайшее. Что значит "ближайшее по времени сверху, снизу, ближайшее?
Спасибо.
Время которое вы указываете может не совпадать со временем точки в архиве.
Например вы запрашиваете значение в момент времени 12:00. Но в архиве значения с такой меткой времени нет. Есть 12:01 и 11:58.
Если выберете режим "Ближайшее сверху", то вернется 12:01, снизу - 11:58, ближайшее - 12:01
Подскажите как можно реализовать всплывающую подсказку для текста? У меня есть динамическая область с меняющимся текстом. Необходимо сделать всплывающую подсказку для оператора что это за текст и о чём сигнализирует. Спасибо.
У некоторых компонентов есть вход динамизации "Текст подсказки" - его можно использовать для данной задачи.
Добрый день. Извините за простые вопросы, но век живи, век учись.
Мме нужно, что бы отображение количества импульсов за сутки автоматически менялось на мнемосхеме. Я сделал два варианта:
Вариант 1: Создал в дереве объектов три расчёта."Конец суток" с формулой CurDay( ), "Начало суток" с формулой CurDay( )-24*60*60 и расчет с формулой мгновенного значения: AbsArchMomentValue( Число_импульсов,Конец_суток,0) - AbsArchMomentValue( Число_импульсов,Начало_суток,1 ), который отображается на мнемосхеме.
Вариант 2: Создал в дереве объектов один расчёт с формулой мгновенного значения: ArchMomentValue( Число_импульсов,CurDay( ),1 ) - ArchMomentValue( Число_импульсов,CurDay( )-24 * 60 * 60,1 ), который отображается на мнемосхеме.
Вопроса два. Скажите правильно ли написаны формулы, и каким образом это можно проверить. У меня для проектирования демо версия и при переводе времени на компьютере, останавливается режим исполнения. В итоге при повторном запуске Скады, результат выводится, но правильный или нет, я не знаю как проверить.
Спасибо.
Написаны правильно, но проверить без архива не получится.
Добрый день.
Остался один вопрос по отчётам.
Т.Е. Архив отчёта формируется в течение суток. У меня работает счётчик, допустим 30 минут, а затем останавливается на какое то время. Затем опять запускается. Пока счётчик стоит в архив сбрасывается одно и то-же значение. В итоге из-за этого в отчёте создаётся огромное количество не нужных строк с одинаковым значением.(1,2,3,4,5,5,5,5,5,5,5,5,5,5,5,6 и т.д).
Скажите пожалуйста, как в отчёте убрать повторяющиеся значения?
Спасибо
Не совсем понятно - в архив или же в отчет?
Если в архив, то какой способ архивации у вас стоит? Если стоит по изменению, то такого быть не должно.
То что у вас ничего не отображалось при формировании по изменению вероятно связано с тем, что у вас у переменной была выключена настройка "Основной".
Что вам в конечном счете нужно от отчета? Какой формы он должен быть? Вам нужно вывести показаний каждый час (то есть разницу за час)?
Я интервал времени отчёта задаю двумя кнопками с мнемосхемы. При нажатии третьей кнопки, открывается отчёт. Мне надо, что бы в отчёте отображались данные счётчика за выбранный промежуток времени с результатом "мгновенное значение" в конце. Для этого я формулу вписывал в ячейку бэнда "Итог данных". Я делал всё на основании Вашего третьего видеопримера. Да, Вы правы. Почему то при изменении способа форматирования в дереве отчётов в "ИСТОЧНИКЕ" у меня в переменной "основной" присваивалось значение "False". По этому я и не видел ничего в отчёте. Сейчас вроде всё получилось. Правда в строках всё равно идут по два одинаковых значения. Или это правильно? Вложение 23356 Завтра ещё раз на работе попробую.
P.S. Похоже так и должно быть. Попробовал увеличить длительность импульса счётчика, затем совсем остановил. Получается одинаковые значения пишутся после предыдущего и перед последующим значениями. Причём время между одинаковыми значениями зависело от времени между предыдущим и последующим значениями.
Спасибо.
Отчёт показывает, что происходило за выбранный промежуток времени. В какое время происходил разбор и в каком количестве. А в итогах высчитывается разница между последним и первым значением за этот период.(расход за выбранный промежуток времени).
Время и переменная выход счётчика. Он мне и считает расход. На картинке выше это видно.(пост 2898)
"Моделирование ступеньки" не включено. Включено только "По изменению".
Спасибо.
Добрый день.
Мне надо,что-бы значение переменной из архива обновлялось один раз в сутки в 8.00. Я создал расчёт с формулой:
ArchMomentValue( Число_импульсов,CurDay( )+8*60*60,0 ) - ArchMomentValue( Число_импульсов,CurDay( )-24 * 60 * 60,1 )
Но номер не прошёл. Переменная поменяла значение в 00.00 часов, а в 8.00 на месте значения переменной на мнемосхеме появился вопросительный знак и вышло сообщение, что пропала связь с переменной. Посмотрел в дереве объектов значение расчёта - там стало отрицательное значение.
Скажите, как правильно это сделать?
Спасибо.
Вы знаете, наверно Вы правы. Так будет и лучше и правильнее. Буду пробовать.
Я, как понял, для реализации забора каждый час, мне нужно в свойствах данных вернуть способ форматирования на "ПЕРЕОДИЧЕСКИЙ", а в свойствах интервала поставить значение (60*60) или просто 3600?
Спасибо.
Да, все верно.
Таже проблема. Только по старой формуле "ArchMomentValue( Число_импульсов,CurDay( )+8*60*60,0 ) - ArchMomentValue( Число_импульсов,CurDay( )-24 * 60 * 60,1 )" значение обновлялось в 00.00 часов, а в 8.00 выдавало ошибку. А в Вашем варианте в 00.00 часов выдало ошибку и всё-дальше не работает.
Скажите, а в "Расчёте" в закладке "Опрос выхода" надо ставить галочку "Значение до опроса"? Может из-за этого вся проблема?
Спасибо.
Так как она будет у вас работать, если вы пытаетесь найти значение за будущее время (к текущему времени прибавляете 8 часов)?
Так я в посте 2903 задавал по этому поводу вопрос. Мне предложили попробовать этот вариант.
А как тогда правильно? Мне надо,что-бы значение переменной из архива обновлялось один раз в сутки в 8.00. (26.03.8.00-25.03.8.00). Как в формуле AbsArchMomentValue( Число_импульсов,CurDay( ),0 ) - AbsArchMomentValue( Число_импульсов,CurDay( )-24 * 60 * 60,1 ) можно сделать, что-бы сутки начинались ни с 00.00, а с 8.00.
Спасибо.
Вы пытаетесь посчитать значение в будущем времени - это разумеется неправильно.
Вам нужно сделать чтобы если время меньше 8 часов, то расчет шел за прошлый сутки, а если больше - то уже за текущий.
Можно сделать примерно такую формулу:
AbsArchMomentValue(Число_импульсов,ЕСЛИ( Time( )>Int2Time( 8,0,0 ),Date( )+8*60*60,Date( )-16*60*60 ),0)
-
AbsArchMomentValue(Число_импульсов,ЕСЛИ( Time( )>Int2Time( 8,0,0),Date( )+8*60*60,Date( )-16*60*60 )-86400 ,0)
Поскольку вы работаете с архивами, то следует установить у расчета период опроса пореже - раз минуту например.
SCADAMaster
Большое спасибо. Теперь только в понедельник попробую. Сегодня на работающем проекте экспериментировал. Пытался по разному формулы писать и на компьютере время изменял. В итоге у меня на трендах графики стали бред показывать. Пришлось чистый новый проект ставить.
Вы имеете ввиду у расчёта в закладке "опрос" поставить опрос "периодический" и 60 тактов? ( у меня сейчас стоит "по изменению).
Спасибо.
Подскажите, как можно запаролить конкретный экран, а именно экран "Замена уставок"? Ну чтобы уставки мог менять человек определённой должности.И как с помощью кнопки вызвать окно смены операторов? Спасибо.
Это делается через права доступа. Компьютер (объект) - права доступа - снимаете галочки на открытие нужных документов у нужных пользователей.
Для того чтобы из кнопки вызвать смену оператора, нужно добавить команду, типа "Дискретный", на закладке "ДЕйствия" - системное - завершение сеанса
Подскажите, как лучше реализовать функцию замены уставок. Необходимо менять уставки с экрана оператора, но по факту должны отображаться уставки установленные на контроллере после замены, а не те которые висят в команде. Спасибо.
Нужно использовать обратную связь.
У команды, на закладке "Опрос выхода" есть поле "Обратная связь" перетащите в него ОРС переменную или выход ФБ "Повторитель", который получает данные из прибора. Тогда контрол команды будет отображать то что приходит по обратной связи, а вводимые значения будут записываться на выход команды.
необходимо чтобы в режиме исполнения оператор мог изменить текстовое поле. Те кликнув по нему, ввести новый текст. Как такое реализовать?
Создаете команду, типа "Строковый" и вытаскиваете на мнемосхему. При щелчке появится окно ввода.
Подскажите, возможно ли сделать индикацию уровня заполнения произвольного элемента, например просто прямоугольника? или только цистерны ?
Вы знаете, я из этого положения выходил так: В "палитре" в закладке "Управление" есть элемент "Индикатор". Перетещите его на мнемосхему, а в его свойствах установите галочку "Только столбик". И крутите его, как хотите.
Возможно есть ещё какой вариант.....
Спасибо.
P.S. Так и в настройках ёмкости можно сделать, что бы получился обычный прямоугольник.
Добрый день. Имеется порядка трехсот объектов, для каждого есть "окно объекта". Необходимо в каждом окне добавить кнопку (которая связана со своим объектом). Как лучше поступить, чтобы сделать это быстрее.
И еще вопрос так и не понял как сделать, чтобы изображение объекта автоматически обновлялось на мнемосхеме после его изменения.
Объекты однотипные? Тогда можно через механизм "Шаблон-экземпляр" (в видеопримерах про него рассказывалось), но если вы изначально не включили этот механизм перед дублированием то сперва нужно будет его включить и связать шаблон и его экземпляры
Автоматически нельзя - это делается с помощью команд:
в текущей мнемосхеме - Сервис - Обновить изображения проектов.
во всем проекте - Сервис - Проект - Обновить изображения проектов.