Аналитический учет потребления ресурса
При описании атрибутов канала 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> устанавливается признак аппаратной недостоверности.