Просмотр полной версии : Суточный счетчик наработки
Доброго времени суток! Подскажите пожалуйста, как организовать 3 счетчика
(суточный, месячный и общий) времени работы в клиенте Master SCADA 3. Вроде бы понимание есть - создаем Команду или Событие, которое при запуске программы запускает Script#. В нем мы сравниваем восстановленную напр. Дату с текущей и если не совпадают - сбрасываем Суточный счетчик. Не получается написать Скрипт. Может есть у кого подобный пример проекта или Скрипта? Буду очень благодарен! Спасибо.
SCADAMaster
21.01.2021, 10:01
А что вы хотите скриптом сделать?
Самый простой вариант - ФБ "Пульсатор", генерируете им импульс раз в минуту. Выход архивируете.
Затем в расчете с помощью функции AbsArchDiscreteCounter делаете подсчет количества минут за нужный вам интервал. Делите 60 - вот наработка в часах.
ТОлько с такими расчетами нужно быть аккуратнее - нельзя каждый цикл опроса пересчитывать пробег за месяц, вы будете грузить систему.
Положите расчет в отдельный объект, в него на вкладке Опрос есть поле "Условие выполнения" - используйте его. Например выполняйте опрос по импульсу от кнопки - по команде оператора, или по расписанию раз в сутки и т.д.
Можно в отчете также сделать.
Спасибо за ответ. Я наверное не совсем ясно описал проблему.
Мне нужно получить следующую картинку. На мнемосхеме у Оператора вынесено 3 поля счетчиков:
суточного, месячного и общего времени наработки, в формате ЧЧЧЧЧЧЧЧЧЧ:ММ:СС (с максимальным
количеством часов!). При старте программы (перезапуска) счетчики должны продолжать свой счет.
Я пробовал использовать ФБ Счетчик пробега, заводил на него Расчет,
где преобразовывал формулой Sec2Time( Пробег_времени ) и выводил на мнемосхему.
Но значение Часов сбрасываются в 0 после 24 часов. Это - первая проблема.
И еще мне надо где-то сохранять текущую на данный момент Дату-Время, чтобы при рестарте
сравнивать ее с новой и при несовпадении Даты - сбрасывать суточный счетчик,
при несовпадении Месяца - сбрасывать месячный счетчик. Для этого, думаю, и нужен будет ФК Скрит.
SCADAMaster
22.01.2021, 09:06
Тогда да, лучше всего скрипт C#.
Делаете у него периодический опрос, раз в минуту например. Каждый цикл сохраняете время вызова, вычитаете прошлое время вызова. Это время прибавляете к уже накопленному.
Извлекаете часы и минуты и выводите на мнемосхему.
Доброго времени суток.
Бьюсь уже несколько дней - никак не получается реализовать задуманное.
Может поможет кто? Проект прикладываю. Трудности следующие.
1. Счет от ФБ Пульсатор. Он генерирует ипульсы с минимальным периодом 1 Сек,
при счете которых рост счета происходит через 2 Сек (Объект 3. Счет от Пульсатора).
На меньший период я не смог настроить Пульсатор.
2. Счет на ФБ С# "Скрипт импульс 1Сек" (Объект 2 Счет пробега). Не могу настроить сброс счетчика. Должен сбрасываться при наступлении нового Месяца от скрипта "Старт"
(Объект 1 Запуск проекта).
3. Не получается индикация значения счетчика в формате ("hh:mm:ss"),где hh должно быть больше 24 часов.
Буду ОЧЕНЬ благодарен за любую посильную помощь!
SCADAMaster
27.01.2021, 10:18
Посмотрите пример в приложении. Там для часа, по аналогии переделайте на сутки и месяц
Спасибо ОГРОМНОЕ! Завтра буду разбираться.
Скрипт не работает должным образом.
Сброс счетчика при наступлении нового часа не происходит.
Поменял конструкцию (с Часа - на Минуту):
if (LastTime.Value.Minute!=DateTime.Now.Minute)
{
LastTime=new DateTime(DateTime.Now.Year,DateTime.Now.Month,Date Time.Now.Day,DateTime.Now.Hour,DateTime.Now.Minute ,0);
}
Скрипт вообще не работает.
И еще попутный вопрос. Можно ли менять масштаб отображения мнемосхемы при редактировании?
Крайне не удобно расставлять элементы в масштабе по умолчанию - очень мелко.
Спасибо.
SCADAMaster
29.01.2021, 10:14
Исправленный пример в приложении.
Масштабирования на мнемосхеме нет.
Спасибо. Все отлично работает. И еще такой вопрос. Помимо счетчика Времени работы (например суточного) мне нужно организовать такой же суточный счетчик включения оборудования. Если использовать ФБ Счетчик дискретных импульсов и в этом же скрипте устанавливать вход Сброс этого ФБ в состояние Вкл (те сбрасывать счетчик по истечении суток), то когда и где надо снимать этот сигнал?
Или организовать этот Счетчик на элементах Событие или Расчет и тогда в скрипте можно будет сразу 0 записывать в сам Счетчик. Но как это реализовать?
SCADAMaster
30.01.2021, 08:49
Если просто суточный, то используйте обычный счетчик пробега, просто раз в сутки (с помощью вкладки ОБъекта расписание) сбрасывайте его
Спасибо ОГРОМНОЕ - все получилось! Тема закрыта
Добрый день. Интересует вопрос, как мне реализовать счетчик наработки только чтобы был счет по входу с переменной от OPC? На аппаратном уровне не могу реализовать.
SCADAMaster
10.01.2022, 13:25
От ОРС у вас идет что? Дискретный импульс, определенного веса?
C OPC приходит значение 0,1,2,3, и хочу чтобы счетчик считал когда значение на входе 1,2 или 3. Не импульс.
SCADAMaster
17.01.2022, 09:57
Считаем что? Пришло 1 прибавляем к накопленному 1, пришло 2 прибавляем к накопленному 2?
Необходимо считать всегда 1 при входе 2 или 3 типа: ЧЧЧЧЧЧЧЧ.ММ
SCADAMaster
17.01.2022, 16:18
Вот теперь вообще ничего не понятно.
Вот теперь вообще ничего не понятно.
=))
На OPC приходит значение 2 или 3 с МВ210 от дискретного входа, и хочу считать моточасы в формате ЧЧЧЧЧЧЧ:ММ, т.е. без счета секунд а сразу начинать с минут и при достижении 60 минут до двоеточия был час (0000000:59 -> 0000001:00) и т.д., без сброса. Чтобы счет был нарастающим итогом.
SCADAMaster
17.01.2022, 16:39
А значения 2 и 3 как с этим соотносятся?
2 = машина работает в автомате без ошибок, 3 = машина работает в автомате с ошибкой
SCADAMaster
17.01.2022, 17:36
Посмотрите пример в приложении
Очень похоже на то что надо =) еще несколько уточняющих вопросов. Для корректного старта счета времени в формуле я должен ее настроить на 2 и 3, могу ли я это реализовать в одной формуле, сразу для 2 и 3? И то что в ФБ "Счетчик пробега" в функции "Пробег времени" там корректно считаются секунды чтобы не было запаздывания или счета быстрее. А так всё супер!! Благодарю Вас за помощь!
SCADAMaster
17.01.2022, 18:23
Нет, вам нужно будет два набора элементов сделать - 2 события, 2 ФБ, 2 набора расчетов для вычисления минут и часов.
Посмотрите пример в приложении
Подскажите пожалуйста, как на базе данного счетчика еще реализовать подсчет каждые 200 часов с задержкой выключения 8 часов?
Т.е. сам счетчик должен считать без сброса но каждые 200 часов подавался сигнал на вывод индикатора на мнемосхеме на 8 часов
Нет, вам нужно будет два набора элементов сделать - 2 события, 2 ФБ, 2 набора расчетов для вычисления минут и часов.
Это всё реализовал, благодарю за помощь!
Вот так реализовал подсчет при значении 2 и 3
Подскажите пожалуйста, как на базе данного счетчика еще реализовать подсчет каждые 200 часов с задержкой выключения 8 часов?
Т.е. сам счетчик должен считать без сброса но каждые 200 часов подавался сигнал на вывод индикатора на мнемосхеме на 8 часов
Что-то типа "Импульс по времени" но не могу понять как его реализовать.
SCADAMaster
21.01.2022, 09:28
В разделе палитры "Работа со временем" есть ФБ "Выдержка времени" - можно им реализовать.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot