Народ, я всё понимаю, что вы опытные, занятые и прочее...
Но прошу подмогните, сам не ожидал, что с этим столкнусь.
Исходная комплектация:
WinCC v7.5 (WinCC Explorer)
Рисую в Graphic Designer.
Задача:
Вывести данные по сигналу (скажем давление) за день, неделю, месяц, в цифровом виде, наверное в окошках I\O Field (я предполагаю).
При чем, данные за день, это начало смены с 00:00 часов и до полных 24 часов, т.е. накопительного типа.
Вопрос 1. Как по шагам с нуля до реализации это организовать, что мне нужно задействовать (alarm loggin, tag logging, user archive)?
Вопрос 2. Можно ли обойтись без VBS, штатной библиотекой редактора?
Вопрос 3. Может кто кинет толковую ссылку на мануал, или же готовое решение, хотя бы приближенное?
Спасибо заранее.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Вывод архивных значений по периодам
-
- осмотрелся
- Сообщения: 194
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 34 раза
Вывод архивных значений по периодам
Я такие задачи обычно решаю глобальным часовым скриптом, который по времени делает запись значения нужного тега в файл экселя. Но есть и более сложный вариант. Поставить wincc connectivity pack, и VBSным скриптом запрашивать SQL о значении сохраненного тега в графиках.
WinCC 7.4 SP1 Upd15, Step5.6
-
- освоился
- Сообщения: 290
- Зарегистрирован: 09 авг 2016, 13:49
- Имя: Чистилин Андрей Анатольевич
- Страна: Россия
- город/регион: Малоярославец
- Благодарил (а): 31 раз
- Поблагодарили: 35 раз
Вывод архивных значений по периодам
А вы хотите на экран выводить эти значения? В виде таблицы скажем за месяц по дням на пример?
-
- осмотрелся
- Сообщения: 192
- Зарегистрирован: 16 дек 2011, 15:13
- Имя: Алексей
- Страна: Россия
- Благодарил (а): 65 раз
- Поблагодарили: 46 раз
Вывод архивных значений по периодам
Решается TagLogging и (если нужно) скриптами.
Например. Есть тег - "input" - float32. Создаете еще один тег - input_1h_avg (также float) - для отображения в IO field среднего значения за час.
Открываете TagLogging. Создаете ProcessValue Archive.
А дальше на рисунке расписал. Учтите, что тег "input_1h_avg" будет изменяться только каждый час. Т.е. если вы запустили Runtime в 10:20, то тег изменится в 11:20, 12:20, 13:20 и так далее (т.е. не ровно в хх:00 часов). И если оператор смотрит на экран в 11:40, на котором отображен тег "input_1h_avg", то ему надо объяснить, что это - значение за предыдущий час от 10:20 до 11:20.
Для суммы аналогично, только на вкладке Parameters указываете Sum. Будет сумма всех значений, полученных за час.
Еще вариант - например Вам необходимо показывать сумму за сутки. Можно воспользоваться вариантом выше (Archiving - Factor = 1, Cycle = 1 day), то тогда значение будет меняться, как уже сказал, раз в сутки.
А можно вместо указания Sum, воспользоваться скриптом. Например, у вас есть уже архивирование каждый час суммы (см. выше).
На вкладке Parameters указываете Action. Этот Action создаете в GlobalScript ProjectFunction. обязательно соблюдение сигнатуры метода!!! Тег input_sum_shift будет прибавляться каждый час. типа это данные за смену.
Создаете еще один скрипт, который срабатывает например, каждый день в 00:00:10 и обнуляет тег input_sum_shift для того, чтобы подсчет начинался заново для новой смены.
Например. Есть тег - "input" - float32. Создаете еще один тег - input_1h_avg (также float) - для отображения в IO field среднего значения за час.
Открываете TagLogging. Создаете ProcessValue Archive.
А дальше на рисунке расписал. Учтите, что тег "input_1h_avg" будет изменяться только каждый час. Т.е. если вы запустили Runtime в 10:20, то тег изменится в 11:20, 12:20, 13:20 и так далее (т.е. не ровно в хх:00 часов). И если оператор смотрит на экран в 11:40, на котором отображен тег "input_1h_avg", то ему надо объяснить, что это - значение за предыдущий час от 10:20 до 11:20.
Для суммы аналогично, только на вкладке Parameters указываете Sum. Будет сумма всех значений, полученных за час.
Еще вариант - например Вам необходимо показывать сумму за сутки. Можно воспользоваться вариантом выше (Archiving - Factor = 1, Cycle = 1 day), то тогда значение будет меняться, как уже сказал, раз в сутки.
А можно вместо указания Sum, воспользоваться скриптом. Например, у вас есть уже архивирование каждый час суммы (см. выше).
На вкладке Parameters указываете Action. Этот Action создаете в GlobalScript ProjectFunction. обязательно соблюдение сигнатуры метода!!! Тег input_sum_shift будет прибавляться каждый час. типа это данные за смену.
Создаете еще один скрипт, который срабатывает например, каждый день в 00:00:10 и обнуляет тег input_sum_shift для того, чтобы подсчет начинался заново для новой смены.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 36
- Зарегистрирован: 27 июл 2020, 12:40
- Имя: Илья
- Страна: Узбекистан
- город/регион: Ташкент
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
Вывод архивных значений по периодам
Вооот, дружище, всем бы такого сердца, как у тебя !
Спасибо.
Отправлено спустя 3 минуты 5 секунд:
Спасибо.
Отправлено спустя 3 минуты 5 секунд:
См. вложение.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- освоился
- Сообщения: 290
- Зарегистрирован: 09 авг 2016, 13:49
- Имя: Чистилин Андрей Анатольевич
- Страна: Россия
- город/регион: Малоярославец
- Благодарил (а): 31 раз
- Поблагодарили: 35 раз
Вывод архивных значений по периодам
В вашем случае я бы все в ПЛК посчитал и не морочился ни с какими архивами. Я у себя счетчики воды запоминаю посуточно в блоке данных сриптом в панели. По силам любой панельке. 31 значение в месяц не много для ПЛК. Это самый простой вариант. Но я хочу и функцию записи из панели тоже убрать, руки не доходят, установка сама автономно пусть подсчет ведет в разумных пределах. А ВинСиси пусть архив ведет уже подсчитанных значений да репорты делает.
-
- здесь недавно
- Сообщения: 36
- Зарегистрирован: 27 июл 2020, 12:40
- Имя: Илья
- Страна: Узбекистан
- город/регион: Ташкент
- Благодарил (а): 1 раз
- Поблагодарили: 7 раз
Вывод архивных значений по периодам
Согласен, это тоже метод. Я о нем думал с самого начала, но меня насторожила емкость памяти ЦПУ, какую историю и за какой период он сможет безболезненно хранить. Поэтому в сторону WinCC смотрю.ZuElecRu писал(а): ↑08 ноя 2021, 10:14 В вашем случае я бы все в ПЛК посчитал и не морочился ни с какими архивами. Я у себя счетчики воды запоминаю посуточно в блоке данных сриптом в панели. По силам любой панельке. 31 значение в месяц не много для ПЛК. Это самый простой вариант. Но я хочу и функцию записи из панели тоже убрать, руки не доходят, установка сама автономно пусть подсчет ведет в разумных пределах. А ВинСиси пусть архив ведет уже подсчитанных значений да репорты делает.