PDA

Просмотр полной версии : Счетчик событий



Dzherenov
31.07.2022, 18:45
Подскажите, как лучше реализовать подсчет событий за месяц. Например количество остановок оборудования за текущий месяц. Так чтоб они не пропадали после перезагрузки клиента.

Задам, тут еще один вопрос. У меня не получается добавить в библиотеку созданный объект, перетаскиваю в библиотеку он теряет все связи и визуализации, а потом источник тоже переписывается на неверный из библиотеки. Так же если я создаю объект в библиотеке и переношу его в проект начинаются глюки типа потеря связи и прочие зависания.

kondor3000
31.07.2022, 21:46
Подскажите, как лучше реализовать подсчет событий за месяц. Например количество остановок оборудования за текущий месяц. Так чтоб они не пропадали после перезагрузки клиента.

Задам, тут еще один вопрос. У меня не получается добавить в библиотеку созданный объект, перетаскиваю в библиотеку он теряет все связи и визуализации, а потом источник тоже переписывается на неверный из библиотеки. Так же если я создаю объект в библиотеке и переношу его в проект начинаются глюки типа потеря связи и прочие зависания.

У вас же ПЛК есть, зачем вам события в скаде считать, когда их можно в ПЛК обработать.
Все переменные в слейве ПЛК и так энергонезависимые, а те которые не слейве можно в ретайн добавить.

Dzherenov
31.07.2022, 22:50
Разве значения счетчиков при выключении питание не обнуляются в ПЛК? Так то я в основном для изучения возможностей, остановился вот на симпл скаде и масрет скаде 4.

kondor3000
01.08.2022, 09:08
Разве значения счетчиков при выключении питание не обнуляются в ПЛК? Так то я в основном для изучения возможностей, остановился вот на симпл скаде и масрет скаде 4.

Считать можно не только счётчиком. Например есть событие X1 (Bool) и переменная Count (WORD) в слейве, которая и будет сохранена. Через R_TRIG
Х1 включает Х2 на один цикл

R_TRIG1(CLK:=X1 , Q=>X2 );

IF X2 THEN
Count:=Count+1;
END_IF

Таким же образом считают например и часы наработки.

VladGC
01.08.2022, 10:08
Подскажите, как лучше реализовать подсчет событий за месяц. Например количество остановок оборудования за текущий месяц. Так чтоб они не пропадали после перезагрузки клиента.



Если событие пишется в журнал событий, то можно воспользоваться ФБ EventsCounter, на его входе задать правильный фильтр, с нужными ограничениями ( тип события, период дат и т.п.)
После уже получать необходимой количество событий за любой период времени

Dzherenov
01.08.2022, 11:59
Спасибо за ответы, а что насчет глюков с библиотеками? Никто не сталкивался?

VladGC
01.08.2022, 12:42
Спасибо за ответы, а что насчет глюков с библиотеками? Никто не сталкивался?

Возможно стоит создавать окна визуализации в библиотеке hmi,
затем уже экземпляры вставлять в библиотечный объект

Да и без примера, как куда что добавлено и связано не понятно о чем речь.
Проблемы могут быть как с некорректной компоновкой вашего объекта, так и с какими то недокументированными особенностями :)

Dzherenov
01.08.2022, 22:44
Да я сам не знаю, делаю тоже самое все не в библиотеке все работает четко, приношу в библиотеку в объекте создается куча новых пустых папок, если в проекте просто по объекту щелкну добавить еще один создается его копия которая работает как надо. может криво скада встала, может с другими конфликтует. Если б это было основной работой было бы критично, а так на заводе проект сделать можно и с текущими глюками) может и бесплатной версии на 32 тега хватит на первое время. Симпл скада в этом плане мне больше понравилась, работает быстро и четко, если что-то не работает то это 100% мой косяк, но эти скрипты, без справочника ничего не сделать)) Если заниматься профессионально этим то конечно симпл скада неплоха, но ради 1-2 проектов слишком много новой информации.

Dzherenov
08.08.2022, 15:27
Возник еще вопрос по теме, я создал блок CTU и назначил на него переменную Counter с пометкой RETAIN, и вроде значения счетчика сохраняются (во всяком случае пока не изменю и не перезапишу программу). Теперь я хочу его сбрасывать например 1 числа каждого месяца, в ПЛК 110 есть встроенные часы или только блок RTU? И если только RTU то как то можно сделать что б после перепрошивки контроллера в него автоматически заливалось текущая дата и время. И как выцепить из полной даты только месяц?

Александр Пинэко-Скворцов
09.08.2022, 14:23
Возник еще вопрос по теме, я создал блок CTU и назначил на него переменную Counter с пометкой RETAIN, и вроде значения счетчика сохраняются (во всяком случае пока не изменю и не перезапишу программу). Теперь я хочу его сбрасывать например 1 числа каждого месяца, в ПЛК 110 есть встроенные часы или только блок RTU? И если только RTU то как то можно сделать что б после перепрошивки контроллера в него автоматически заливалось текущая дата и время. И как выцепить из полной даты только месяц?


Добрый день!

Встроенные часы в ПЛК есть. Получить текущее системное время можно при помощи блока GET_UTC_TIME. Чтобы разобрать его на составляющие, используйте блок SPLIT_DT.
Оба блока присутствуют в стандартной библиотеке в группе Функции работы с датой и временем.
6207162071

Dzherenov
10.08.2022, 15:08
Добрый день!

Встроенные часы в ПЛК есть. Получить текущее системное время можно при помощи блока GET_UTC_TIME. Чтобы разобрать его на составляющие, используйте блок SPLIT_DT.
Оба блока присутствуют в стандартной библиотеке в группе Функции работы с датой и временем.
6207162071

о спасибо большое всю справку перерыл не нашел))

AlexZ
17.08.2022, 16:23
Если событие пишется в журнал событий, то можно воспользоваться ФБ EventsCounter, на его входе задать правильный фильтр, с нужными ограничениями ( тип события, период дат и т.п.)
После уже получать необходимой количество событий за любой период времени

Не могу понять, как задавать этот фильтр! В help вообще неправильно написано! Мне нужно активные с приоритетом = 1. Как задать?