Вы находитесь на странице: 1из 15

Инструкция по формированию новых отчѐтных форм

Инструкция №5

ИНФОРМАЦИОННЫЕ ДАННЫЕ
1. РАЗРАБОТАНА: предприятием со 100% иностранным капиталом
"Лэндис энд Гир (Юкрейн)".
2. АВТОР: Кабак В.В., Шестеренко А.В., Слободенюк С.А.
3. УТВЕРЖДЕНА: ПИК "Лэндис энд Гир (Юкрейн)" 1 мая 2006 г.
4. ЗАРЕГИСТРИРОВАНА: ПИК "Лэндис энд Гир (Юкрейн)" 1 мая 2006 г.

Формат хранения 1. Описание ID-кодов устройств С300 Dialog


определений Center.
Файл RTU_Def.xml содержит коды идентификации (ID-
кодырегистров), описание устройств и параметров для
установки связи. Данные коды необходимы для
распознавания и распределения данных, полученных с
различных счетчиков различных типов и сохранения их
значений в базе данных.
Пример:
- отображение в визуальной оболочке системы:

- отображение в текстовом виде:


<?xml version="1.0" ?>
- <RTUDefinitions>
- <RTUGroup ID="1" Name="ОАО "Малинская
бумажная фабрика"" INN="">
- <RTUGroup ID="2" Name="Секция 1 6кВ" INN="">

1фы 1
- <Connection Protocol="IEC"
ChannelID="MMS.SerialChannel">
<Param Name="Name" Value="COM1" />
<Param Name="BaudRate" Value="9600" />
<Param Name="Mode" Value="0" />
<Param Name="InqTimeout" Value="1000" />
<Param Name="AckTimeout" Value="100" />
<Param Name="CmdTimeout" Value="100" />
<Param Name="MsgTimeout" Value="3500" />
<Param Name="RTSSetTimeout" Value="100"
/>
<Param Name="RTSDropTimeout" Value="100"
/>
<Param Name="HalfDuplexMode" Value="0" />
</Connection>
<RTU ID="1" Type="ZD" Name="1Ввод-6кВ"
Number="84484252"
ReadPassword="00000000"
WritePassword="00000000" Ku="100" Kt="200"
MeterType="ZMD405CR.44.0007"
MeterClass="0.5" IntegrationPeriod="3"
GosPovDate="13.12.2005"
InstDate="13.12.2005" Code="" ToCalc="1"
ATSType="" />
<RTU ID="2" Type="ZD" Name="РУ-5"
Number="84484252"
ReadPassword="00000000"
WritePassword="00000000" Ku="100" Kt="150"
MeterType="ZxD" MeterClass="0.5"
IntegrationPeriod="3"
GosPovDate="13.12.2005"
InstDate="13.12.2005" Code="" ATSType=""
ToCalc="1" />

Формат хранения 2. Описание ID-кодов регистров.


определений Каждое считываемое устройство имеет свой набор
ID-кодов регистров. Для распознавания данных,
полученных с различных счетчиков различных типов и
сохранения их значений в базе данных, необходимо
описать набор ID-кодов для обработки. Описание кодов
производится во вспомогательных файлах программы
С300 CodeNames.xml и ValueCodes.xml.
Файл CodeNames.xml содержит типов данных,
получаемых от устройств. Файл содержит пары «Код
значения» - «Наименование значения». Прописанные в
файле коды значений используются в таблицах БД.
Например:
<?xml version="1.0"?>
<CodeNames>
<Code Id="1" Name="Энергия А+ тариф 1"/>
<Code Id="2" Name="Энергия А+ тариф 2"/>
…………………………………………….
<Code Id="55" Name="Мощность VA-"/>
</CodeNames>

2фы 2
Файл ValueCodes.xml соответствия идентификационных
кодов регистров разных типов счетчиков, кодам,
заданным в файле CodeNames.xml. Файл содержит пары
«Индекс» - «Код значения». По идентификационным
кодам регистров, приходящим от устройств при запросе
платежных данных или данных профиля, определяются
ID коды передаваемых данных и производится их
сохранение в БД.
Например:
<?xml version="1.0"?>

<ValueCodes>
<ValueCode Name="1.8.0" TypeID="13"/>
<ValueCode Name="1.8.1" TypeID="1"/>
…………………………………………….
<ValueCode Name="10.5.0" TypeID="55"/>
</ValueCodes>
Список кодов регистров устройств для C300 Dialog
Center версии 1.1
Код Название
1 Энергия А+ тариф 1
2 Энергия А+ тариф 2
3 Энергия А+ тариф 3
4 Энергия R+ тариф 1
5 Энергия R+ тариф 2
6 Энергия R+ тариф 3
7 Энергия А- тариф 1
8 Энергия А- тариф 2
9 Энергия А- тариф 3
10 Энергия R- тариф 1
11 Энергия R- тариф 2
12 Энергия R- тариф 3
13 Энергия сумма A+
14 Энергия сумма A-
15 Энергия сумма R+
16 Энергия сумма R-
17 Энергия сумма Ri+
18 Энергия сумма Rc+
19 Энергия сумма Ri-
20 Энергия сумма Rc-
21 Энергия сумма VA+
22 Энергия сумма VA-
23 Энергия сумма вх1 A+
24 Энергия сумма вх1 A-
25 Энергия сумма вх2 A+
26 Энергия сумма вх2 A-
27 Энергия дельта A+
28 Энергия дельта A-
29 Энергия дельта R+
30 Энергия дельта R-
31 Энергия дельта Ri+
32 Энергия дельта Rc+
33 Энергия дельта Ri-
34 Энергия дельта Rc-
35 Энергия дельта VA+

3фы 3
Код Название
36 Энергия дельта VA-
37 Напряжение фазы L1
38 Напряжение фазы L2
39 Напряжение фазы L3
40 Ток фазы L1
41 Ток фазы L2
42 Ток фазы L3
43 Ток нейтрали N
44 Частота сети
45 Коэффициент мощности
46 Мощность А+
47 Мощность А-
48 Мощность R+
49 Мощность R-
50 Мощность Ri+
51 Мощность Rc+
52 Мощность Ri-
53 Мощность Rc-
54 Мощность VA+
55 Мощность VA-

Таблица соответствия идентификационных кодов


регистров счетчиков ZB и ZD кодам сканера.
Идентификационный код счетчика Код
1.8.0 13
1.8.1 1
1.8.2 2
1.8.3 3
2.8.0 14
2.8.1 7
2.8.2 8
2.8.3 9
20 13
21 14
22 15
24 16
3.8.0 15
3.8.1 4
3.8.2 5
3.8.3 6
4.8.0 16
4.8.1 10
4.8.2 11
4.8.3 12
8.1 1
8.2 2
8.3 3
9.1 7
9.2 8
9.3 9
38 15

4фы 4
Идентификационный код счетчика Код
38.1 4
38.2 5
38.3 6
48 16
48.1 10
48.2 11
48.3 12
5.8.0 17
6.8.0 18
7.8.0 19
8.8.0 20
9.8.0 21
10.8.0 22
2:1.8.0 23
2:2.8.0 24
3.1.8.0 25
3:2.8.0 26
1.9.0 27
2.9.0 28
3.9.0 29
4.9.0 30
5.9.0 31
6.9.0 32
7.9.0 33
8.9.0 34
9.9.0 35
10.9.0 36
32.7 37
52.7 38
72.7 39
31.7 40
51.7 41
71.7 42
91.7 43
14.7 44
13.5.0 45
1.5.0 46
2.5.0 47
3.5.0 48
4.5.0 49
5.5.0 50
6.5.0 51
7.5.0 52
8.5.0 53
9.5.0 54
10.5.0 55

5фы 5
3. Описание формата функций для построения
отчетов

Формат функций  Функция GetPayDayValue


С300 Dilalog Center Эта функция позволяет получить сохраненное за отчетный период
показание счетчика. Ее аргументы описаны в таблице 3.1.
Таблица 3.1
№ Имя Тип Назначение
1 StrNumber Строка ID внутренний идентификационный
номер счетчика в С300 Dialog Center

2 StrBaseDate Дата и время Метка отчетного периода. В качестве


метки служит дата первого дня этого
периода (то есть, если период
длится месяц, начиная с 20-го числа,
то период за май «20 апреля» - «19
мая» будет помечен 20-м апреля)
3 NValueType Целое Код типа параметра, см. раздел 4.3
Список кодов регистров устройств.

 Функция GetRealTimeValue

Эта функция позволяет получить текущее показание регистра на


указанный момент времени. Ее аргументы описаны в таблице 3.2.

Таблица 3.2
№ Имя Тип Назначение
1 StrSerNum Строка ID внутренний идентификационный
номер счетчика в С300 Dialog
Center
2 NValueType Целое Код типа параметра, см. раздел 4.3
Список кодов регистров устройств.
3 BaseDate Дата и время Дата, по которой выбирается
значение. Берется ближайшее к
указанной дате значение в
интервале, указанном последними
двумя параметрами. По умолчанию
интервал принимается равным 5
минутам (от минус 5 минут до плюс
5 минут).
4 NInterval Целое Величина интервала, в котором
ищется значение. Необязательный
параметр, по умолчанию равен 5-и.
5 NIntervalType Строка Тип интервала (минуты, часы, дни
и т.д.). Возможные значения
приведены в таблице 4.10.
Необязательный параметр, по
умолчанию равен «n» - минуты
Таблица 3.3
Значение Описание
d День
h Час
n Минута
s Секунда

 Функция GetRealTimeDate

Эта функция позволяет узнать в какой точно момент времени


сохранялись данные, полученные в результате вызова
предыдущей функции «GetRealTimeValue». Поскольку функция

6фы 6
«GetRealTimeValue» возвращает значение, сохраненное не в
запрошенный момент, а в запрошенном диапазоне, который
может быть достаточно большим, есть необходимость в
указании точного момента считывания полученных данных. Ее
аргументы описаны в таблице 3.4.

Таблица 3.4
№ Имя Тип Назначение
1 strSerNum Строка ID внутренний
идентификационный номер
счетчика в С300 Dialog Center
2 BaseDate Дата и время Дата, по которой выбирается
значение. Берется ближайшее к
указанной дате значение в
интервале, указанном последними
двумя параметрами. По
умолчанию интервал принимается
равным 5 минутам (от минус 5
минут до плюс 5 минут).
3 nInterval Целое Величина интервала, в котором
ищется значение. Необязательный
параметр, по умолчанию равен 5-
и.
4 nIntervalType Строка Тип интервала (минуты, часы, дни
и т.д.). Возможные значения
приведены в таблице 4.10.
Необязательный параметр, по
умолчанию равен «n» - минуты.

 Функция GetRatingValue
Эта функция позволяет получать значения профиля данных
счетчика.
Ее аргументы описаны в таблице 3.5.
Таблица 3.5
№ Имя Тип Назначение
1 strNumber Строка ID внутренний
идентификационный номер
счетчика в С300 Dialog Center
2 strBaseDate Дата и время Дата и время интересуемого
значения
3 nValueType Целое Код типа параметра, см. раздел
4.3 Список кодов регистров
устройств.

 Функция GetSumValue

Эта функция позволяет просуммировать значения профиля


данных счетчика. Функция позволяет производить расчет
потребленной энергии из данных мощности графика нагрузки
счетчика. Ее аргументы описаны в таблице 3.6.

Таблица 3.6
№ Имя Тип Назначение
1 strNumber Строка ID внутренний
идентификационный номер
счетчика в С300 Dialog Center
2 nValueType Целое Код типа параметра, см. раздел
4.3 Список кодов регистров
устройств.
3 dtStartDate Дата и время Дата и время начала интервала
4 dtEndDate Дата и время Дата и время окончания интервала

7фы 7
 Функция GetSumCountValue

Эта функция позволяет подсчитать число записей профиля


данных счетчика. Функция может использоваться совместно с
предыдущей функцией GetSumValue для расчета среднего
значения параметра за указанный период времени. Ее
аргументы описаны в таблице 3.7.
Таблица 3.7

№ Имя Тип Назначение


1 strNumber Строка ID внутренний
идентификационный номер
счетчика в С300 Dialog Center
2 nValueType Целое Код типа параметра, см. раздел
4.3 Список кодов регистров
устройств.
3 dtStartDate Дата и время Дата и время начала интервала
4 dtEndDate Дата и время Дата и время окончания интервала

 Функция GetZeroPeriod

Эта функция позволяет подсчитать число ненулевых записей


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

Таблица 3.7

№ Имя Тип Назначение


1 strNumber Строка ID внутренний
идентификационный номер
счетчика в С300 Dialog Center
2 nValueType Целое Код типа параметра, см. раздел
4.3 Список кодов регистров
устройств. Определяется по
мощности.
3 dtStartDate Дата и время Дата и время начала интервала
4 dtEndDate Дата и время Дата и время окончания интервала

 Вспомогательные функции
Также в состав модуля включены две вспомогательные
функции, которые могут быть полезными при формировании
отчетов:
GetMonthName – возвращает русское название месяца
(т.е GetMonthName(1) возвращает «январь», … ,
GetMonthName(12) возвращает «декабрь»).
GetMonthName2 – возвращает русское название
месяца в непрямом падеже (т.е GetMonthName2(1) возвращает
«январе», … , GetMonthName2(12) возвращает «декабре»).

8фы 8
4. Разработка отчѐтной формы
Для создания отчѐтной формы используются
шаблоны MSExcel.
Рассмотрим пример – отчѐт Акт.
В данном отчѐте автоматически, в соответствии
выбранному количеству присоединений происходит
заполнение следующих полей:
- № ТП, назва об'єкта ;
- № лічильників;
- Показання (Попередні, Наступні);
- Різниця Активна – разница между конечными и начальными
показаниями счѐтчика;
- Коефіціент трансформации – произведение коэффициентов
трансформаторов тока и напряжения;
- Всього Активна – разница показаний с учѐтом
коэффициента трансформации;
- Разом;
- Всього по абоненту – сумма потребления энергии по всех
присоединениях.

Для того чтобы посмотреть текст макроса, с


помощью которого заполняется данный отчѐт,
необходимо загрузить Редактор Visual Basic. Находясь в
приложении MSExcel с помощью команды Сервис
Макрос Редактор Visual Basic (Alt+F11).

9фы 9
В правой части окна Редактора Visual Basic
представлено дерево VBA проектов. В компоненте
Modules находятся модули в которых хранится код. В
модуле MeterigLib – написаны стандартные функции, с
помощью которых производиться взаимодействие ПО
С300 и БД. Описание этих функций приводится в п.3. В
модуле Module1 – в текстовом виде пишется код данного
шаблона.

Module1 имеет такой вид:

Начало кода с указанием процедуры, еѐ переменных и их типов

Sub GenerateReport(RtuArray As Variant, _


dtStartTime As Date, _
dtStopTime As Date, _
strConnectionString As String, param4 As Object, param5 As Object, _
param6 As Object, param7 As Object, param8 As Object, param9 As Object, param10
As Object, _
param11 As Object, param12 As Object, param13 As Object, param14 As Object,
param15 As Object, _
param16 As Object, param17 As Object, param18 As Object, param19 As Object,
param20 As Object, _
param21 As Object, param22 As Object, param23 As Object, param24 As Object,
param25 As Object, _
param26 As Object, param27 As Object, param28 As Object, param29 As Object)

Запуск функции Auto_Open

10фы 10
Auto_Open (strConnectionString)

'********************** «Заполнение листа Акт» **********************

Выбор и заполнение нужного листа в рабочей книге MS Excel

Sheets("Àêòèâíà åíåðãіÿ (ðïîæèâàííÿ)").Select

nFooter = 14
Ku = 1
Kt = 1

Dim RtuID As String


Range("K8").Select
ActiveCell.FormulaR1C1 = Date

dtStartTime, dtStopTime – время периода (временные границы отчѐтного периода)


указанного в программе С300 Monitor Center
' Времена начала и конца отчѐиного периода

Range("E6").Select
ActiveCell.FormulaR1C1 = dtStartTime
Range("H6").Select
ActiveCell.FormulaR1C1 = dtStopTime

Путь к файлам хранящим настройки и описания устройств C300 Dialog Center

Dim objDataProfiler
Set objDataProfiler = CreateObject("MMS.DataProfiler")
objDataProfiler.Path = "C:\Program Files\Landis+Gyr\C300 Dialog Center\XML"

RtuArray – массив присоединений участвующих в заполнении отчѐтной форме,


указываются при создании при настройке отчѐта ( C300 Dialog Center Инструкция
пользователя п.2.9 ) .

' Добавить строк до таблицы столько сколько нужно


For i = LBound(RtuArray) To UBound(RtuArray)
Rows("14:14").Select
Selection.Insert Shift:=xlDown
Next
TotalSum = 0#

For i = LBound(RtuArray) To UBound(RtuArray)


RtuID = RtuArray(i)

Range("B" & (i + nFooter)).Select


ActiveCell.FormulaR1C1 = i + 1

arValues = objDataProfiler.GetRtuData(RtuID)
For J = LBound(arValues, 1) To UBound(arValues, 1)
If arValues(J, 0) = "Name" Then
Range("C" & (i + nFooter)).Select
ActiveCell.FormulaR1C1 = arValues(J, 1)
End If
If arValues(J, 0) = "Number" Then
Range("D" & (i + nFooter)).Select
ActiveCell.FormulaR1C1 = arValues(J, 1)
End If
If arValues(J, 0) = "Kt" Then
Kt = arValues(J, 1)
End If
If arValues(J, 0) = "Ku" Then

11фы 11
Ku = arValues(J, 1)
End If
Next
Указание необходимой функции и адресаразмещения результата, после
выполнения указанной функции
Range("F" & (i + nFooter)).Select
ActiveCell.FormulaR1C1 = GetRatingValue(RtuID, dtStartTime, 14)
Range("G" & (i + nFooter)).Select
ActiveCell.FormulaR1C1 = GetRatingValue(RtuID, dtStopTime, 14)
Range("H" & (i + nFooter)).Select
ActiveCell.FormulaR1C1 = "=RC[-1]-RC[-2]"
Range("I" & (i + nFooter)).Select
ActiveCell.FormulaR1C1 = Ku * Kt
Range("J" & (i + nFooter)).Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
Next
Range("E" & (i + nFooter + 3)).Select
ActiveCell.FormulaR1C1 = "=SUM(R[" & -(i + 3) & "]C[5]:R[-4]C[5])"
Конец кода процедуры
' The End
End Sub
5. Подключение к ПО С300 готовых
шаблонов

Поскольку отчѐтные формы выполняются в виде


заготовок формата xlt (шаблонов), то их необходимо
расположить в определѐнном месте. Готовые шаблоны
хранятся в папке ReportTemplates. Папка
ReportTemplates располагается: …:\Program
Files\Landis+Gyr\C300 Dialog Center\ReportTemplates
При необходимости в данную папку можно добавить или
удалить шаблон.
Добавление шаблонов При получение новой формы шаблона от разработчика
или при создании шаблона своими силами, разместите его в
папке ReportTemplates.
После этого он будет доступен в перечне Шаблонов:, в
настройках отчѐтных форм.

6. Определения отчетных форм

12фы 12
Для конфигурирования отчѐтов в ПО C300 Dialog Center предусмотрен
пункт меню «Отчѐты».

Создание отчѐтов Определения отчетных форм включают настройку групп


отчетов и, собственно, самих отчетов.
Чтобы создать группу отчѐтов необходимо:

- На чистом поле нажать правую кнопку «мыши» и в


выпадающем меню выбрать пункт «Новая группа»;
- ввести название группы;
- На чистом поле или на созданной группе нажать правую
кнопку «мыши» и в выпадающем меню выбрать пункт
«Новая отчѐт»;
- Подтвердите ввод нажатием кнопки ОК.

П
р
о
ц
е
д
у
р
а

13фы 13
Назначение пунктов выпадающего меню

 Новая группа – создание новой группы


отчетов;
 Новый отчет – создание нового отчета в
группе;
 Сгенерировать отчет – сгенерировать
отчет без вывода на экран;
 Показать отчет – сгенерировать отчет с
выводом на экран;
 Удалить – удалить отчет или группу
отчетов;
 Свойства – просмотр и изменение
существующих определений отчета.

При выборе пункта подменю Новый отчет откроется


окно Настройки отчета.

14фы 14
Пункт меню Новый отчет позволяет задать
определения отчетной формы, такие как:
 Название;
 Период открытия С … По;
 Шаблон Excel, используемый при
открытии отчета;
 Произвести Выбор присоединений.

Для подтверждения выбора нажмите ОК.


После чего подтвердите нажатием ОК
введенные Настройки отчета.

15фы 15

Вам также может понравиться