|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
Доброго времени суток!:) Возникла проблема: Имеется таблица Счетчики, в ней содержится информация о всех счетчиках предприятия. На предприятии есть несколько объектов, например 3 штуки. Объект №2 питается от двух вводов, соответственно на каждом вводе стоит счетчик - Счетчик1 и Счетчик 2. Под Счетчиком 1 установлены еще 3 счетчика - Счетчик 1.1, Счетчик 1.2, Счетчик 1.3. В свою очередь под Счетчиком 1.1 установлены еще 2 счетчика - Счетчик 1.1.1 и Счетчик 1.1.2 Например за ноябрь месяц расходы счетчиков составили: Счетчик1=1200 кВт , Счетчик2=900 кВт Счетчик 1.1=600 кВт , Счетчик 1.2=100 кВт, Счетчик 1.3=200 кВт Счетчик 1.1.1 =200 кВт, Счетчик 1.1.2=300 кВт В отчете должно быть так: Расход по Объекту 2 Счетчик 1 расход = 300 (1200-(600+100+200)) Счетчик 2 расход = 900 Счетчик 1.1 расход = 100 (600-(200+300)) Счетчик 1.2 расход = 100 Счетчик 1.3 расход = 200 Счетчик 1.1.1 расход = 200 Счетчик 1.1.2 расход = 300 Итого по объекту 2 расход = 2100 Вопрос, как реализовать это? В данный момент в запросе получается, что каждому счетчику соотвествует свой расход, но как их обработать, чтобы получился такой запрос и на его основе-отчет (см. Выше). Второй путь - Разбить на 3 таблицы (Главная, Второстепенная, Третьестепенная) - но ведь счетчики обладают одними и теми же свойствами (тип счетчика, номер счетчика, показания на начало, показания на конец), сделав это мы нарушим правило нормализации, и как в этом случае получить нужный отчет. Вобщем сломал голову :). Помогите, пожалуйста. Прикрепил схему в jpeg ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2006, 18:21 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
Похоже, мы становимся свидетелями начального этапа разработки нормальной коммерческой системы учета для РАО ЕЭС. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2006, 21:34 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
id, тип счетчика, номер счетчика, уровень счетчика, id счетчика предыдущего уровня. добавь эти поля при внесении нового счетчика эти поля вводятся вручную из схемы id счетчика предыдущего уровня - берётся из этойте таблицы новая таблица id, id счетчика, показания , дата показаний при таком можно и уровни добавлять и вычислять что угодно ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2006, 21:59 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
Id в первой таблице тип счетчик , вручную не вводятся ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2006, 22:00 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
давай в Ебурге напишу такое. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2006, 22:05 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
ЗЫ только схема на рисунке составлена не верно вводы не могут объединяться , хоть и должна существовать возможность их переключения нада либо учитывать /снимать показания на момент переключения и соответственно на этоже время менять и учитывать это в ид счетчиках верхнего уровня , либо учитывать показания счетчиков на вводах как один. иначе будет путанца второй вариант предпочтительней ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2006, 22:14 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
PS так же нада учесть возможность смены счетчика, дата , показания. старого и нового иначе смена счетчика приведет к бесполезности этого софта ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2006, 22:34 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
вадяЗЫ только схема на рисунке составлена не верно вводы не могут объединяться , хоть и должна существовать возможность их переключения нада либо учитывать /снимать показания на момент переключения и соответственно на этоже время менять и учитывать это в ид счетчиках верхнего уровня , либо учитывать показания счетчиков на вводах как один. иначе будет путанца второй вариант предпочтительней Привет, земляк :)! Схема составлена соотвествии с тем, как это делается в Свердловэнерго. Я это сейчас считаю в Excel - Ввод1+Ввод2 минус все остальное под ними. Главный вопрос - сколько энергии потребил объект, второстепенный по какому вводу :). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2006, 04:35 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
2 вадя с тебя халявные зажыгалки от гаспрома ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2006, 04:41 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
2 вадя Вот прикрепил по твоему сценарию 2 таблицы. Мне непонятно, как правильно создать запрос, учитывая уровни счетчиков. уровень1 - это два ввода - счетчик 1 и счетчик 2 - они суммируются уровень2 - это под счетчиком 1 установлены 2 счетчика - счетчик 1.1 и счетчик 1.2 уровень3 - это под счетчиком 1.1 установлен счетчик 1.1.1 В таблице, которую приложил, на втором уровне расход будет суммарный по счетчику 1.1 и счетчику 1.2, и от него будет вычитаться расход счетчика 1.1.1, что не правильно. Так как расход счетчика 1.2 не должен добавляться к счетчику 1.1. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2006, 06:09 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
обрати внимание на изменения в таблице счетчики (последний столбец) таблица исправлена в соответсвии с твоим рисунком, чтоб было нагляднее создай заполни таблицу показания для приведенного рисунка. лучше дляя 3 произведенных снятий показаний (для каждого счетчика 4 записи в таблице показаний, 3 снятия + 1 начальное) поставь задачу что нужно посчитать, вывести и т.д. условность: все показания снимаются одновременно (т.е. сумма показаний нижнего уровн равна показаниям счетчика на уровень выше) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2006, 20:54 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
вадя условность: все показания снимаются одновременно (т.е. сумма показаний нижнего уровн равна показаниям счетчика на уровень выше) В том то и дело, что например на счетчике 1.1- 600 кВт это суммарный расход по всем трем счетчикам - Счетчик 1.1.1 (200 кВт) + Счетчик 1.1.2 (300 кВт)=500 кВт, а 100 кВт - это расход по Счетчику 1.1 (600-500). Например, ситуация из жизни - есть головная подстанция (Счетчик 1 и Счетчик 2) -они считают общий расход по подстанции. От подстанции запитаны два завода, которые не принадлежат нашему предприятию (Счетчик 1.1 и Счетчик 1.2.). Этим заводам надо предъявить счет за ИХ электроэнергию (600 и 100 кВт). Но у завода 1 (счетчик 1.1) есть еще два предприятия, которым тоже надо выставить свой счет (на 200 и 300 кВт). Вот посчитав весь "левый расход" и отняв его от головного, узнаем - сколько же потребила наша подстанция на свои нужды. Поэтому утверждение (т.е. сумма РАСХОДОВ нижнего уровня равна РАСХОДУ счетчика на уровень выше) неверно, так как разность расхода головных счетчиков минус расход подиненных- это собственный расход энергии на подстанции. У меня на предприятии всего таких объектов 4 штуки, из них 3 штуки - имеют два уровня, и только один - 3 уровня, по которому я нарисовал схему. Просто хочу сделать сразу такую стуктуру, которая бы учитывала все возможные варианты схем - универсальную. Если , допустим возникнет новый объект с несколькими уровнями вложения счетчиков, то просто в форме это было бы учтено. У меня была мысль разбить на 2 или 3 базы, и просто считать каждый уровень в своей базе (в одной - только главные счетчики, во второй - второстепенные), но решил спросить у спецов, реально ли все это осуществить в одной базе ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2006, 21:35 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
тогда возникаеи вопрос времкни снития показанийесли одновременно то так можно поступить если с разницей внесколько часов - то показания не верны тогда на рисунке нада показать ещё одну ветку пустую и для неё сформулировать метод получения показаний первоначпльно из рисунка этого не видно пожалуйста отобразите такой рисунок и продолжем дальше ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2006, 08:34 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
Показания снимаются одновременно во всех случаях ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2006, 12:06 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
это уже легче с аськой как? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2006, 12:37 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
вадято показания не верны если идти от верхнего счетчика к нижним последовательно по узлам, то разночтения можно нивилировать до не существенных значений ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2006, 12:39 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
BULK INSERT вадято показания не верны если идти от верхнего счетчика к нижним последовательно по узлам, то разночтения можно нивилировать до не существенных значений ну это нада будет придумывать алгоритм, учитывать точность измерений счетчиков, и т.д. на первом этапе нада построить работающую модель, причем с возможностью (пока только на уровне мыслей) рашеня дальнейших задач ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2006, 13:17 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
Ася 299442102, я тебе писал на аську в профиле, но она видимо не работает. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2006, 14:01 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
работает, но только в рабочее время, я получил. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2006, 18:42 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
Как Вы показали в демо-таблице насчет записи ввода 1 и ввода 2 в одну запись - так не получится - надо вести учет расхода по всем физическим счетчикам, просто программно разделять их по уровням и, исходя из этого высчитывать расход косвенным методом с помощью запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2006, 20:24 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
тогда у тебя должно быть два дерева - для каждого ввода как утебя показано на рисунке - выходы счетчиков соединены - это не правильно тогда в случае (если такое физически возможно) при переключении всего хозяйства на один ввод (аварийная ситуация) ты потеряешь все данные . т.к. на момент перекючения не будут сняты показания. или кто-то будет фиксировать показания счетчиков? а то что у меня показано - вариант. Для облегчения (но это уже избыточность) можно ввести поле номер ввода, избыточным также является и хранение данных в поле расход - это поле вычисляемое по значениям в поле показания счетчиков. я еще раз прошу : нарисуй новый рисунок, где будет присутствовать два дерева, пустая ветка имитирующая вертуальный счетчик (т.е. счетчик показания которого получаются вычислением) тогда задача будет более формализована вопросы - возможны ли переключения с одного ввода на другой и обратно? если да - как при этом будут учитываться показания? - как учитывается точность при измерениях? с большей степенью вероятности можно сказать что сумма счетиков нижнего уровня не будет равна показаниям счетчика верхнего уровня (не считая варианта с виртуальным счетчиком) - как планируется вести учет смены счетчиков? у тебя аська в рабочее время фунциклирует? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2006, 21:20 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
вадятогда у тебя должно быть два дерева - для каждого ввода как утебя показано на рисунке - выходы счетчиков соединены - это не правильно тогда в случае (если такое физически возможно) при переключении всего хозяйства на один ввод (аварийная ситуация) ты потеряешь все данные . т.к. на момент перекючения не будут сняты показания. или кто-то будет фиксировать показания счетчиков? В учете электроэнергии такое соединение является ПРАВИЛЬНЫМ, так как энергосбыту по барабану с какого ввода ты потребил, в документах эти ввода проходят как одная точка и расход по двум счетчикам суммируется, т.е. в отчете ты показываешь расход обоих вводов, допустим, если один ввод не работает, то расход будет равен Ввод1+Ввод2 (0). а то что у меня показано - вариант. Для облегчения (но это уже избыточность) можно ввести поле номер ввода, избыточным также является и хранение данных в поле расход - это поле вычисляемое по значениям в поле показания счетчиков. я еще раз прошу : нарисуй новый рисунок, где будет присутствовать два дерева, пустая ветка имитирующая вертуальный счетчик (т.е. счетчик показания которого получаются вычислением) тогда задача будет более формализована вадявопросы - возможны ли переключения с одного ввода на другой и обратно? если да - как при этом будут учитываться показания? - как учитывается точность при измерениях? с большей степенью вероятности можно сказать что сумма счетиков нижнего уровня не будет равна показаниям счетчика верхнего уровня (не считая варианта с виртуальным счетчиком) - как планируется вести учет смены счетчиков? Ответы: - переключения возможны, но это неважно - показания снимаются один раз в месяц, и без разницы по какому вводу ты потребил - они суммируются, в таблицах счетчиков надо ввести такое поле, чтобы запрос при обработке видел, какие счетчики работаю в паре на первом уровне(ввод1 и ввод2), суммировал их и вычитал подчиненные счетчики. Например запрос считающий первый уровень - он просмотрел все записи и увидел, что счетчиков первого уровня 6 штук, допустим ОБЪЕКТ 1 (ввод1 +ввод2), ОБЪЕКТ 2 (ввод 1, второго ввода нет), Объект3 (ввод1 второго ввода нет), ОБЪЕКТ 4 (ввод1 +ввод2). Далее этот же запрос, или другой запрос подсчитал сколько счетчиков в подчинении есть у каждого из этих объектов и какие из них принадлежат каждому объекту - вычислил их расход. Третий запрос подсчитал сколько счетчиков третьего уровня и какие из них относятся к счетчикам второго уровня. Четвертый запрос(Расход) = Запрос первого уровня - Запрос второго уровня -Запрос третьего уровня. 2. Точность такая, расход нижнего уровня почти всегда меньше расхода первого уровня, поэтому разница между первым и вторым уровнем является расходом певого уровня, посчитанным косвенным методом. 3. Допустим имеет место замены счетчика (любого), допустим в середине ноября месяца. Просто пишем ему показания на ноябрь месяц как конечные (начальные за октябрь у нас есть). Далее вводим новый счетчик (пишем ему имя ввод3), пишем ему его начальные показания как начальные показания на октябрь и также конечные показания на ноябрь. вводится новый счетчик вадяу тебя аська в рабочее время фунциклирует? Да уже включена:) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2006, 06:41 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
rus_75Спасибо, большое, привет передам, тока я работаю в Газпроме, и не могут мне дать нормального программера для написания проги по учету электроэнергии - вот сам взялся, тока VBA - пока темный лес. Да-уж Я вот BP работаю - такая ж история:)) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2006, 10:17 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
Есть очень хорошая программа по учету эл.энергии сдаланная в Access и выложеная и инете как пример. Правда не помню где она лежит. Это классный пример для учебы. Если нужно то она у меня есть, могу переслать как образец. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2006, 10:27 |
|
Период в базе учета эл.энергии
|
|||
---|---|---|---|
#18+
SNiL, доброго времени суток! Если есть возможность помогите пожалуйста :) В продолжение этой темы... Подобная база данных с показаниями счетчиков показания со счетчиков пишутся в базу каждую минуту. Необходимы запросы: 1. с выборкой по датам, например, с 03.12.2015 по 24.12.2015 Дата (в нашем случае каждая дата из диапазона) | Начальные показания на эту дату | Конечные показания на эту дату | Количество(конечн. - нач.) Вся загвоздка в том, что между датами получается перелет по показаниям... :( а нужно, чтобы начальные показания "становились"(были) конечными из предыдущей даты. 2. Подобный запрос за сутки в разрезе по часам, то есть с 0 до 23 Номер часа | Начальные показания на этот час | Конечные показания на этот час | Количество (Конечн. - начальн) Тут все тоже самое... :( получается перелет и нужно тоже самое, чтобы начальные становились конечными из прошлого часа В чем заключается "перелет": Показания в базу пишутся с интервалом в минуту (пишутся в 5-ю секунду каждой минуты, но не в этом суть :) ) это выглядит так: 23.12.2015 23:59:05 | 57849 24.12.2015 00:00:05 | 57855 и т.д. и получается что если в запросе брать максимум на 23.12.2015 то это будет 57849, а минимум на 24.12.2015 будет 57855 и в связи с этим не будет учитываться уже целых 6 единиц в итоговой сумме запроса... тоже самое в запросе за сутки по часам... Тут в этой теме есть код запроса...с примерно похожей ситуацией... но как то не получается у меня применить этот код и адаптировать под себя... Будьте добры... разъясните пожалуйста или помогите разобраться на нашем примере... К сожалению файлы прикрепить не могу тут... т.к. размер баз около чуть меньше 10 мб. (базы могу переслать на почту). ЗАРАНЕЕ ОЧЕНЬ БЛАГОДАРЕН!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2015, 05:23 |
|
|
start [/forum/topic.php?fid=45&msg=34131698&tid=1614121]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 319ms |
total: | 463ms |
0 / 0 |