Ошибки окна События

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Автор
    Записи
  • #4771
    manjey73
    Участник

    Предположу, что ошибка связана именно с web, но могу и ошибаться.
    Предыстория, при написании драйвера для счетчика электроэнергии при отключении питания передаю вместо данных 0,0 с указанием статуса ошибки.

    Статус ошибки добавил в таблицу Администратора «Тип Событий» под номером 16.
    Реакции не последовало. Начал пробовать передавать данный статус из Генератора сервера.

    Итог, при попытке передачи данных со статусом 16 не происходит генерация события в окне «События», при этом в таблице данных данные меняются на передаваемые, так же меняется цвет на выбранный.
    Использовал окно генератора Данные.
    Если использовать окно генератора События и в нем ввести Статус с соответствующим номером, то в окне Событий отображается событие и подхватывается цвет, выбранный в базе Типы Событий.

    Отсюда вопрос, в окно событий должно генерироваться событие при использовании Генератора Сервера вкладки Данные ?
    А так же при указании в драйвере статуса в команде SetCurData (№ тега, данные, № Статуса) ????

    • Тема изменена 9 лет, 5 месяцев назад пользователем Mikhail.
    #4772
    manjey73
    Участник

    Не зависит, установлена ли галочка «Запись события» на канале, это вообще непонятно к чему, только к расчету получается для значений Нижний Аварийный, Нижний, Верхний, Верхний Аварийный.

    А что же делать с остальными событиями которые хочется добавить ?

    Соответственно SetCurData(тег, данные, свой номер) из драйвера не работают, хотя по логике должны брать событие из базы с номером «свой номер» и отображать в окне событий с меткой времени и так далее…. Так же заносить в базу событий…

    • Ответ изменён 9 лет, 5 месяцев назад пользователем manjey73.
    #4775
    Mikhail
    Модератор

    События можно поделить на 2 вида:
    1. Генерируются Сервером автоматически. Например, события по изменению данных, выходу за границы или по неопределённому состоянию. Статус события берется из статуса входного канала.

    2. Создаются программно. Или из генератора, что то же самое. Все поля события — те, которые Вы явно указали.

    Какой вид событий из перечисленных Вам больше подходит?

    Если событие есть в архиве и его можно увидеть через интерфейс Сервера, то оно может быть отображено в вебе. Если его нет, значит установлен фильтр по представлению, которое не содержит нужного входного канала. Можно переключить фильтр на все события.

    #4777
    manjey73
    Участник

    Я применяю статус события из драйвера по команде SetCurData, при таком использовании в табличном представлении меняется цвет, который я указал в базе Типы событий, но записи в базу событий не происходит, как и отображения в окне Событий. Даже если открыто окно таблицы, где это событие происходит.

    То есть Сервер честно определяет событие, меняет цвет данных в таблице и на этом все.

    А вот с AddEvent я не разобрался, не пойму что туда надо вносить, чтобы выдать нужный мне текст.
    Хотелось бы, чтобы работал простой способ через SetCurData и происходило отображение события в окне а так же событие заносилось в базу.

    #4778
    manjey73
    Участник

    Заработало при установке галочки «По изменению» на канале из драйвера через SetCurData.
    Используется именно изменение только Статуса ? значение при этом не важно если будет тем же самым ?

    Теперь вопрос в догонку, что и как надо прописывать в AddEvent чтобы просто посылать события без учета каналов и т.д. Например отправить событие с текстом «Потеря связи с прибором» ?

    • Ответ изменён 9 лет, 5 месяцев назад пользователем manjey73.
    #4780
    manjey73
    Участник

    Блин, вот опять же та ситуация, о которой говорил ранее. Я хочу выводить только нужные события, а так получается выводятся абсолютно все события.

    #4781
    manjey73
    Участник

    Блин, опять не работает…. 🙁
    Я так понимаю, что работает по изменению как данных так и статуса, то есть по условию И

    Есть возможность сделать так, чтобы событие отображалось только одно ?

    например упало напряжение до 0 (или я его туда записал) и выдалось сообщение в События. Когда значение вернулось в норму или изменилось уже ничего не выводить ?

    • Ответ изменён 9 лет, 5 месяцев назад пользователем manjey73.
    #4784
    manjey73
    Участник

    Ни в какие ворота, скорее всего установлен режим ИЛИ

    достаточно изменения значения без изменения статуса и куча событий валится в лог.
    Так не годится совсем.

    #4786
    Mikhail
    Модератор

    События «по изменению» создаются если значение или статус изменились.
    Если для события не указан номер входного канала, то оно будет отображаться только когда выбран фильтр Все события.

    Что за событие нужно получить (по какому событию)?

    #4790
    manjey73
    Участник

    Да банально, отключение счетчика, то есть пропадание сети.
    Вешаю событие на канал напряжения например, хочу вывести свое и чтобы в канал записывалось значение 0.
    Для этого создал Тип События 16 — Отсутствие сети.
    в драйвере указываю SetCurData (напряжение, 0, 16).

    Стоит галочка в базе на канале «Запись событий» и диапазон Нижн. Аварийный, Нижний, Верхний, Верхний Аварийный.

    Диапазон ослеживается, так как при нормальной работе SetCurData(напряжение, значение, 1)
    Если пишу SetCurData(напряжение, 0, 0) то данные канала — (неопределенное событие) серым цветом. Все как положено. И можно установить галочку Событие на неопределенное состояние, будет работать, так как такой механизм заложен в сервере.
    Если пишу SetCurData (напряжение, 0, 16) созданное мной, выбрал цвет, то меняется только цвет значения согласно выбранному, но НИКАКИХ событий в журнал.

    Я уже понял, что события создаются при ИЛИ, тестировал на рабочем компе без счетчика, перенес на живой ПК со счетчиком и получил события на малейшее изменение напряжения при неизменном событии (точнее в SetCurData 1 указано при нормальном чтении счетчика)

    • Ответ изменён 9 лет, 5 месяцев назад пользователем manjey73.
    #4793
    Mikhail
    Модератор

    SetCurData — установка текущих данных, а не генерация события.

    Простейший способ:
    Создать канал типа Дорасчётчный ТС, назвать его «Связь со счётчиком», и написать формулу Stat(100)>0?1:0, где 100 — номер канала какого-либо тега счётчика. Для этого канала поставить галочки записи событий и событие по изменению.

    #4795
    manjey73
    Участник

    Но так же SetCurData может передать номер статуса и как минимум цвет данных меняется на тот, который прописан в базе Типы Событий.
    Почему бы не добавить туда же параметр true/false — генерировать события или нет, а только изменить цвет и статус ?

    Было бы куда проще…

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Для ответа в этой теме необходимо авторизоваться.