Аналитический учет потребления ресурса
При описании атрибутов канала M-Ресурс указаны соответствующие поля редактора (см. Редактор канала M-РЕСУРС ):
(000) R – остаток
ресурса (количество). Начальное значение этого атрибута задается на
вкладке Параметры ресурса редактора (поле
Остаток). В дальнейшем значение атрибута вычисляется
автоматически:
в неинтегрирующем канале:
R=R+In-Q;
в интегрирующем канале c
(085) dTOff=0:
R=R+In*T-Q
(T – период пересчета канала в секундах, перевод периода в
секунды выполняется автоматически);
в интегрирующем канале c
(085) dTOff=1:
R=R+In*T/3600-Q;
Приведенные формулы справедливы для такта пересчета, на котором в Q подано значение (в том числе и равное предыдущему), в противном случае эту величину из формул нужно убрать;
(001) A – не
используется;
(002) In – в
этот атрибут подается количество пришедшего ресурса (положительное
число) в случае неинтегрирующего канала или величина производной
количества – в случае интегрирующего канала;
(003-008) – эти
атрибуты имеют стандартное назначение (см. Общие атрибуты каналов ).
Атрибут (006, D) Тенденция не вычисляется.
Атрибут (007, P) указывает интервал, в котором находится значение атрибута R:
P=1, если
R>=HA;
P=0, если
LA<R<=HA;
P=2, если
R<=LA;
(009) Q – в этот
атрибут подается положительное значение, интерпретируемое как
запрос на выдачу ресурса (количество). Если
Q<=R, запрос выполняется (уменьшается
остаток, его стоимость и т.д.), в противном случае запрос не
выполняется (параметры ресурса не изменяются);
(010) In2 – этот
атрибут хранит значение прихода ресурса;
(026)
Price_In – в этот атрибут подается значение,
соответствующее цене поступившего ресурса. Если эта цена задана,
стоимость поступившего ресурса рассчитывается по ней (если в канале
не используется тарифная сетка);
(027)
Price_Def – типовая цена ресурса
(Параметры ресурса / Типовая цена).
Если не задана цена Price_In, стоимость
поступившего ресурса рассчитывается по
Price_Def (если в канале не используется
тарифная сетка);
(028) HA – максимально
допустимое количество ресурса (Параметры ресурса /
Верхний предел). Если R>HA,
соответствующее сообщение заносится в отчет тревог;
Сообщения по каналу M-РЕСУРС заносятся в ОТ также в некоторых других случаях (см. Сообщения по каналу M-РЕСУРС ).
(029) LA – минимально
допустимое количество ресурса (Параметры ресурса /
Нижний предел). Если R<LA,
соответствующее сообщение заносится в отчет тревог;
(030)
COST_is – стоимость остатка ресурса. Начальное
значение этого атрибута задается на вкладке Параметры
ресурса редактора (поле Стоимость остатка), в
дальнейшем вычисляется автоматически;
(031)
PH_is
R;
(032)
Cost_Out – стоимость выданного количества
ресурса, вычисляется автоматически при выполнении запроса на
выдачу:
в канале без учета партий (атрибут 084,
Qio равен 1) выдача ресурса производится по средней цене,
т.е. Cost_Out
=(Cost_is/R)*Q;
в канале с учетом партий (Qio = 0)
запрошенное количество ресурса формируется из партий по алгоритму
FIFO по цене партий;
(033) ResID –
идентификатор (номер) ресурса (Параметры ресурса /
Идентификатор);
(035)
Q_of_in – автоматически
вычисляемый атрибут. Если значение атрибута (084,
Qio) равно 0 (т.е. учет партий ведется),
Q_of_in равно числу оставшихся в
наличии партий ресурса (другими словами,
Q_of_in индицирует текущую
глубину стека FIFO, в котором хранятся данные о партиях);
(036)
in_id – в этот атрибут подается значение,
соответствующее ID поставщика ресурса;
(037)
out_id – автоматически вычисляемый атрибут.
Если атрибут 084, Qio равен 0 (учет партий ведется),
при выдаче ресурса out_id индицирует ID
поставщика последней партии, которая задействована для формирования
запрошенного количества ресурса;
(038, 039) –
эти атрибуты имеют стандартное назначение (см. Общие атрибуты каналов );
(040) IntDif – флаг
Поставка партиями (см. Редактор канала M-РЕСУРС );
(041-049) – эти
атрибуты имеют стандартное назначение (см. Общие атрибуты каналов );
(051) bIO – не
используется;
(052) FS – не
используется;
(053) multdT – флаг
Интегрировать (см. Редактор канала M-РЕСУРС );
(054)
in_POS – вход; значение этого атрибута задает
позицию (начиная с 0) в стеке FIFO, в котором хранятся данные об
оставшихся партиях ресурса (стек инициализируется в канале, если
значение атрибута 084, Qio равно 0). Данные из
указанной с помощью in_POS позиции стека
записываются в атрибуты 128, i_ph
(объем партии); 129, i_price (цена
ресурса в партии); 130, i_time (время
прихода партии). В атрибут 131, o_ph
данная информация записывается в комбинированном виде:
Данные о партиях (кроме ID поставщика) записываются в автоматически создаваемые аргументы канала:
Если (040) IntDif=0 и (084) Qio=0, стек хранит архив значений канала;
(055) tarif – индекс
тарифной сетки (Тарифы / Индекс тарифа),
натуральное число. Если в редакторе Индекс тарифа
= N, в мониторе tarif =
N-1;
(056-061,
078-083) – эти атрибуты имеют
стандартное назначение (см. Общие атрибуты каналов );
(084) Qio – флаг
Отмена учета партий (см. Редактор канала M-РЕСУРС );
(085) dTOff – флаг
Параметры на час (см. Редактор канала M-РЕСУРС );
(086-098) – эти
атрибуты имеют стандартное назначение (см. Общие атрибуты каналов );
(099)
ID_RES_L – этот атрибут
индицирует имя (во внутреннем представлении – ID) канала M-РЕСУРС,
который привязан к данному каналу;
(100)
sPh_in – суммарный приход ресурса
(количество), автоматически вычисляемый атрибут;
(101)
sCost_in – суммарная стоимость поступившего
ресурса, автоматически вычисляемый атрибут.
Если в канале не используется тарифная сетка, стоимость поступившего ресурса рассчитывается по Price_In или Price_Def, в противном случае – по соответствующему тарифу;
(102)
sPh_out – общее количество выданного ресурса,
автоматически вычисляемый атрибут;
(103)
sCost_out – общая стоимость выданного ресурса,
автоматически вычисляемый атрибут;
(118-119) – эти
атрибуты имеют стандартное назначение (см. Общие атрибуты каналов );
(120) ACK – чтобы
принять изменения, внесенные в тарифную сетку в реальном времени, в
этот атрибут нужно подать ненулевое значение;
(123-127) – эти
атрибуты имеют стандартное назначение (см. Общие атрибуты каналов );
(128)
i_ph – в этот атрибут из стека выводится объем
партии, указанной атрибутом (054)
in_POS;
(129)
i_price – в этот атрибут из стека выводится
цена ресурса в партии, указанной атрибутом
(054) in_POS;
(130)
i_time – в этот атрибут из стека выводится
время прихода партии, указанной атрибутом
(054) in_POS;
(131)
o_ph – в этот атрибут из стека в
комбинированном виде выводится информация о партии, указанной
атрибутом (054)
in_POS;
(132)
o_cost – зарезервирован;
(133)
o_time – зарезервирован;
(150-173)
t0-t23 – почасовая тарифная сетка
(Тарифы / 01-24). t0
соответствует тарифу за промежуток 00-01ч.
В профайлере канал M-Ресурс индицируется как C8_M-Resource (атрибут 126, TsT).
Если в узле создано несколько каналов M-РЕСУРС (пусть они имеют имена res<N>), учитывающих ресурс с одним и тем же ID, обобщенную информацию по ресурсу можно получить с помощью дополнительного канала M-РЕСУРС (пусть он имеет имя sum) со следующими начальными настройками:
(027)
Price_Def = (030)
COST_is = -1
(033) ResID =
ID, где ID – идентификатор ресурса, по которому
производится обобщение данных.
Канал-сумматор M-РЕСУРС имеет другой номер подтипа (см. Подтипы каналов ) и работает по следующему алгоритму (вне зависимости от флагов):
Аналитический учет потребления ресурса
Для аналитического учета потребления ресурса нужно создать для каждого потребителя канал M-РЕСУРС (например, unit1, unit2, unit3) и привязать его к каналу M-РЕСУРС (например, spirit), учитывающему ресурс.
В этом случае запрос на выдачу ресурса подается в атрибут (2, In) канала unit<N>. Если запрошенное количество имеется, запрос выполняется. Если запрошенного количества ресурса нет в наличии, каналу unit<N> устанавливается признак аппаратной недостоверности.