Помощь - Поиск - Пользователи - Календарь
Перейти к полной версии этой страницы на форумах сайта Электрик: ADDAX(матрица) v.6 SQL запросы
Форумы сайта ЭЛЕКТРИК > Электроснабжение и Оборудование > Счетчики электрической энергии


Alexisss
Запрос для определения "сдохших" счетчиков


Запрос для вывода показаний за указанный интервал для счетчиков 5 и 7 серии

Тут вставляете период
Код
and( [RW_ReceivedData].[Time]>='11.01.2016' and [RW_ReceivedData].[Time]<='11.01.2016')

Добавляйте свое...
yuoras
Сдохших счетчиков- это которые просто данные не передают?
Судя с запроса это так.
Так могут быть и шумы в линии, а счетчики нормальны.
Мой любимый скрипт
Alexisss
Цитата(yuoras @ 13.1.2016, 8:56) *
Сдохших счетчиков- это которые просто данные не передают?

"Сдохшие" - это счетчики, которые были зарегистрированы в системе, а теперь отсутствуют в таблице маршрутизации роутера (NMS)

А что делает "любимый скрипт" ???
yuoras
Цитата(Alexisss @ 13.1.2016, 14:32) *
А что делает "любимый скрипт" ???

Скрипт по обновлению статистики
Позволяет ускорить работу SQL и Sims при выполнении запросов к базе данных
Tu160
Использую этот код

для проверки счетчиков ушедших со связи. Получаем список номеров счётчиков в одном столбце, и кол-во мастеров (кол-во маршрутизаторов на деле, которые видят данный счётчик) в другом столбце. Если кол-во мастеров >0 то устройство считается на связи. Если нужного нам счётчика/маршрутизатора/дисплея (короче любого матричного устройства, видимого в NMS) нет в этом списке, то он никогда не регистрировался.
Минусы:
- если счётчик был физически отключен, то об этом мы узнаем через 3 дня (это так ПО матрицы оперативно обновляет маршрутную карту). Скрипт этот используется как представление (View) в MS SQL (база NMS).
- даже если счётчик на связи, не факт что передача данных с него идёт успешно. Возможно что с устройства ещё даже паспорт не пришёл.

Используется для отображения на картах населённых пунктов в MS Visio. Прихожу с утра, открываю файл с картами, жму обновить данные и Visio сам подтянет данные из MS SQL и "разрисует" узлы учёта:
красный: нет связи
зелёный: на связи
желтый: если мы запрашиваем данные по счётчику, а он в NMS ни разу не появлялся.

Ну и пример для наглядности:


Ещё использую при анализе подключения новых узлов (в excel список номеров счётчиков так же раскрашивает тремя цветами).
yuoras
Tu160, Да , с Визио хорошо.
Актуально при не больших обьемах счётчиков , а вот у кого за 10000 играться с привязками не особо хочется ))

Я тут более углублённей решил промониторить .
Делаю выводы , все скрипты имеют право на жизнь ,но как по мне
1. Alexisss,
Запрос для определения "сдохших" счетчиков.
Лучше было бы и информативнее было б выводить последние данные от этого счётчика (к примеру только сумму (0x01000F0800FF) ) , а не StatusDate.
Я понимаю , времени это заняло б на порядки больше.
В принципе я согласен , скрипт выполняет свою работу.

2.Tu160,
Наверное ,лучше не выводить значение равные 0.


Кстати , информативнее смотреть про мультимастерность .
P.S. Это лично моё мнение, каждый преследовал свою цель в процессе написания.
За труды всем СПАСИБО.
Надеюсь на этом не остановимся
Tu160
Цитата(yuoras @ 14.1.2016, 16:20) *
Наверное ,лучше не выводить значение равные 0.


Отчего же? 0 - значит наш прибор никто не видит, значит он NoRoute.
yuoras
Цитата(Tu160 @ 18.1.2016, 5:59) *
Отчего же? 0 - значит наш прибор никто не видит, значит он NoRoute.

Ввел в заблуждение .
Имелось введу не выводить значения больше нуля, а не выводить все устройства
Ниже в своем сообщении я описал , что так лучше смотреть мультимастерность
d3frag
Цитата(Tu160 @ 14.1.2016, 12:27) *
Используется для отображения на картах населённых пунктов в MS Visio.

Уважаемый, а можно посмотреть один из примеров MS Visio ваш? Тестовый хотя бы скинуть не могли бы на мыло?
Kind
Я бы тоже посмотрел пример visio.
Tu160
По просьбам трудящихся

1) в архиве папка test, которую нужно распаковать в C:\ (и только туда, пояснение ниже)
2) файл test\source.xlsx - источник наших данных.
3) файл test\test.vsd - наша "анимированная" схема.

Для вас я связал визио с файлом экселя, куда помести буквально десяток значений. Минус в том, что при создании источника данных в визио, он не понимает относительные пути, поэтому файл экселя должен лежать именно в C:\test\source.xlsx. Файл визио в принципе может быть в любой другой директории на этом компе.
Цитата
В моей версии источником данных является View в SQL Express, база NMS (SQL-код этой вьюшки я писал в предыдущем сообщении).

Думаю вы сами прекрасно разберётесь, как вместо экселя с помощью мастера в визио изменить источник данных с экселя на SQL-сервер. При замене источника данных, если наименование "столбцов" NMSDevice_ID, Status не изменятся, то все данные прекрасно подтянутся.

Теперь о приложенной тестовой версии:
Открываем оба файла. В визио на вкладке "данные" (у меня 2010, в своих ищите сами) включаем обе галки (в русской: Окно данных фигуры, окно внешних данных) для удобства. В экселе вы можете менять значения в столбце Status. В визио на вкладке данные, после изменений и сохранения в экселе, жмите кнопку "обновить все" и схема окрасится согласно новым значениям.

При связи с SQL значения обновляются автоматом, остается только настроить автообновление данных в визио (раз в час, там можно выбрать любое удобное значение). Только учитывайте в момент обновления визио запрашивает ВЕСЬ объём данных, а не только связанных. Связанные данные видно в визио в окне внешних данных. При привязке там появляется значек, мол привязано. Нужны новые объекты? Берём, копируем существующий (зажимая контрол и перетаскиваем мышкой). При попытке копировать/вставить визио запрашивает обновление данных, если у вас связь с SQL это ппц как напрягает, так что рекомендую через Ctrl+мышкой. Короче создали копию объекта, потом из окна внешних данных мышкой перетаскиваем строку с данными и отпускаем над нашей новой фугурой. Если брали за основу мои фигуры, то номер нашего устройства автоматом изменится на вновь привязанный.

Надеюсь понятно, ньюансов много, и писатель я ещё тот, так что спрашивайте, что не ясно, но сначала методом тыка поиграйтесь день-два, много вопросов сами решите icon_smile.gif
d3frag
Цитата(Tu160 @ 20.1.2016, 12:01) *
По просьбам трудящихся

...тут текст...

Надеюсь понятно, ньюансов много, и писатель я ещё тот, так что спрашивайте, что не ясно, но сначала методом тыка поиграйтесь день-два, много вопросов сами решите icon_smile.gif

Благодарю Вас. Все в принципе ясно. Рисовать только накладно icon_smile.gif статусы в базе хранятся аналогично в 0,1,2,3 ? А за что отвечает каждая из них? 0 - это сколько он молчит? Можно немножко комментариев icon_smile.gif
yuoras
0- молчит более двух суток.
Из инструкции к рутроутеру
Tu160
Цитата(d3frag @ 21.1.2016, 7:27) *
Можно немножко комментариев icon_smile.gif

Рисование - да, занимает большую часть времени.

Число, Status, это кол-во устройств-мастеров, которые видят наше устройство. Например, если два маршрутизатора видят счётчик с номером 123456, то в нашей таблице будет строчка: "123456","2".

0 - как верно заметили выше - нет связи более 2 суток
>0 - значит устройство на связи (или было на связи в течении 2-х прошедших суток)

---
Всё что ниже ТОЛЬКО для маршрутизаторов.
Подумал, что стоит написать подобный скрипт для маршрутизаторов отдельно, по признаку NoData (в авариях можно увидеть). Т.е. по идеи стоит считать маршрутизатор ушедшим со связи уже тогда, когда у него статус NoData допустим после 6 часов утра (ночью по GPRS все данные скинут, и ночью допустим обзвон по GSM стоит. Так вот если после обзвона остались марш-ы со статусом NoData - это уже подозрительно).
Возможно перепишу скрипт. Тестовая версия для себя уже есть, проблемно пока получить список всех маршрутизаторов и только маршрутизаторов.
Для себя сделал просто: у меня у каждого маршрутизатора заполнено поле Description. Т.е. все устройства, у которых есть дискрипшн являются маршрутизаторами.
---
Забавно, что в Alarm есть тип NoData, но в alarm_log он ни разу не появляется. Видимо считается, что если с начала текущих суток не поступило допустим сообщения "Restart counter", то отображается NoData.
РоманК
Привет всем!

Подскажите как у себя Вы делаете выборку конфигурации (действующий тарифный план) для версии NP7.
Раньше для NP-06, выбирали тарифный план нормально, а в 7-ки конфигурация сложная.
С показателем понятно, в Profile2 есть logical name=0х01000F0800FF, 0х01000F0801FF, 0х01000F0802FF
Интересует как узнать какой счетчик 2-х или 3-х тарифный?
В разделе TariffPlanPassive_DayProfile есть точки переключения по времени Tariff2, Tariff1,
для всех одинаковое Logical name = 0х00000A0164FF.
Как у Вас идет выборка по тарифному плану для NP7?

Tu160
Цитата(РоманК @ 29.3.2016, 8:43) *
Как у Вас идет выборка по тарифному плану для NP7?

Не понял вопроса. По тарифному плану выборка чего? показаний?

* Profile2, Profile3, Profile4 - по сути своей не отличаются. Отличия в кол-ве накопленных данных (в руководстве пользователя SIMS об этом детально расписано).
* logical name в профилях (Profile 2/3/4) это, как я понимаю, некоторое уникально имя показаний (активка, реактивка, время, ток, напряжение...) получаемое с узла учёта. В разделе TariffPlanPassive_DayProfile есть script logical name - тоже некоторое уникальное имя параметра конфигурации. Если выполнить GET запрос для TariffPlanPassive_DayProfile, то данный параметр в базе в таблицу RW_ReceivedData не придёт (проверено экспериментально сегодня). Т.е. другими словами, искать что-то общее между этими именами врятли стоит.
Alexisss
Большая чистка от старых данных
Код
delete from [ADDAXDB_APPSERVER].[dbo].[RW_ReceivedData] where [ReceivedTime]<'01.01.2016';
delete from [ADDAXDB_APPSERVER].[dbo].[cfg_history] where [SetTime]<'01.01.2016';
delete from [ADDAXDB_APPSERVER].[Security].[tEventHistory] where [date_create]<'01.01.2016';
delete FROM [ADDAXDB_APPSERVER].[dbo].[SM_States] where [Time]<'01.01.2016';
delete  FROM [ADDAXDB_APPSERVER].[dbo].[SM_AlarmsStatistics];
delete FROM [ADDAXDB_APPSERVER].[dbo].[rm_ReqData];
delete  FROM [ADDAXDB_APPSERVER].[dbo].[rm_Request];
Tu160
Цитата
delete from [ADDAXDB_APPSERVER].[dbo].[RW_ReceivedData] where [ReceivedTime]<'01.01.2016';

удалить все принятые данные с узлов до 1 января 2016? Чистка под самый корешок icon_biggrin.gif

Вдогонку подчищаем NMS


Цитата(Alexisss @ 5.4.2016, 0:08) *
delete FROM [ADDAXDB_APPSERVER].[dbo].[rm_Request];

а что Вы удаляете этой строкой? (что хранится в таблице rm_Request)
Alexisss
Цитата(Tu160 @ 5.4.2016, 5:46) *
а что Вы удаляете этой строкой? (что хранится в таблице rm_Request)

Там валяются не отработанные запросы к счетчикам.
Смысла их хранить нет...
РоманК
Цитата(Tu160 @ 29.3.2016, 13:08) *
Не понял вопроса. По тарифному плану выборка чего? показаний?


Мой вопрос в том, как выборкой узнать тарифный план (2 или 3 тарифа)?
Tu160
Цитата(РоманК @ 5.4.2016, 23:16) *
Мой вопрос в том, как выборкой узнать тарифный план (2 или 3 тарифа)?

По номеру узла узнать его тарифное расписание через SQL-запрос к базе? Тут я не знаю. Результатов GET-запросов в таблице принятых данных не нашёл, дальше копать было лень, этот функционал мне не требовался.

Могу подсказать только ручками, по каждому узлу отправлять запрос GET через SIMS (окно конфигурации счётчика). Через некоторое время (десяток минут/день/неделька - зависит от ваших каналов связи) смотреть результат ответа.
РоманК
Цитата(Tu160 @ 6.4.2016, 5:15) *
Результатов GET-запросов в таблице принятых данных не нашёл, дальше копать было лень, этот функционал мне не требовался.


Пробовал ли кто искать sql данные get-запросов для счетчиков NP-07?
У меня для NP-06 искали по критерию "Тариф для рабочих дней 2 зони"
(как на фото).
Нажмите для просмотра прикрепленного файла

Как у Вы у себя делаете выборку тарифников по NP-07?
Tu160
Цитата(РоманК @ 18.1.2017, 13:41) *
У меня для NP-06 искали по критерию "Тариф для рабочих дней 2 зони"
Как у Вы у себя делаете выборку тарифников по NP-07?

Не понимаю, что за NP-06, NP-07. У вас на фото счётчик NP-515, т.е. NP 5-ой серии.
Выборку, как Вы пишите "тарифников" я НЕ делал, т.к. не нашёл в таблице принятых данных ответы на get-запросы, да и задач у меня таких пока не стояло).

Искать в SQL-базе что-то по ключевым словам "Тариф для рабочих дней 2 зони" не имеет смысла. Все эти слова находятся в файле локализации на ваш язык (для английского - один файл, для немецкого - другой, для руссского - третий и т.д.). В базе всё может храниться совсем по другому.
yuoras
может проще просто в редакторе шаблонов порыться и создать как нужно? Я не знаю задачи,что именно нужно
yuoras
РоманК, Я тебе кинул на почту , что обещал. Если будет что то не ясно ,звони
feren
А не подскажите SQL запрос на изменение привязки адреса счетчика. Скажем, есть 10 счетчиков привязанные к адресу - город Бобруйск улица Сосновая дом 2 квартира 1, нужно перепривязать к адресу - город Бобруйск улица Еловая дом 3 квартира 2. Не силен в SQLки, максимум могу посмотреть содержимое таблицы, удалить строку по условию и пару других простых действий. Нашел табицу, где сидят IDишки адресных единиц, но где к ним привязываются номера счетчиков не могу понять. Через SIMS перепривязывать по одному счетчику не вариант, очень долго.
Буду благодарен за помощь.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
   Rambler's Top100      
Электрик © 2002-2008 Oleg Kuznetsov     
  Русская версия IP.Board © 2001-2025 IPS, Inc.