Полезный макрос
Нажмите для просмотра прикрепленного файлаОдновременное использование нескольких датчиков температуры наружного воздуха.
Если в системе установлено более одного датчика температуры наружного воздуха. Основная идея в том, что каждый контроллер использует максимальное количество значений температур наружного воздуха (все доступные). Переключение между датчиками каждый контроллер осуществляет самостоятельно, в зависимости от наличия связи с источником (другой контроллер) или исправности показаний. Контроль наличия связи возлагается на принимающую сторону (стандартный флаг для referense точек). Контроль исправности самого сенсора возлагается на передающую сторону: тот контроллер, к которому данный конкретный датчик подключен (через status flags точки). Таким образом, при наличии нескольких источников можно со спокойной душой (безболезненно для системы) перегружать или отключать отдельные контроллеры.
Макрос OaTempAverageSigma
Резервирование температур с автоматическим исключением некорректных показаний. Можно использовать и для других аналоговых сигналов (влажность давление и т.п.) после изменения соответствующих аварийных границ.
Возможно использование небольшого настраиваемого фильтра для сглаживания выходного сигнала.
Значения входных сигналов должны находиться в границах, определяемых параметрами MaxTemp и MinTemp. Любой входной сигнал может быть принудительно отключен соответствующим параметром *_Disable. Если данный вход использовался в качестве основного, то при его отключении или выходе за допустимые границы, будет использоваться следующий за ним вход. Если все входы отключены или вышли за границы допустимых параметров, то на выход будет подано значение параметра AllFaultOaTemp.
OaTempSelect:
1- 1й вход Авто (переключение на следующий вход при отключении данного);
2- 2й вход Авто;
3- 3й вход Авто;
4- 4й вход Авто;
5- 5й вход Авто;
6- 6й вход Авто;
7- Среднее, с учетом среднеквадратического отклонения, значение;
8 - Минимальное значение;
9 - Максимальное значение;
10 - Простое среднее значение;
11- Принудительно 1й вход (без переключения по аварии);
12- принудительно 2ой
13- принудительно 3й
14- принудительно 4й
15- принудительно 5й
16- принудительно 6й
17 - Аварийный вход
Outputs:
OaTemp - выходная величина;
OaAverage - усредненная, с учетом среднеквадратических отклонений, величина;
FaultQuantity - количество неисправных или отключенных входов;
GoodQuantity - количество используемых входов;
OaTempALm - авария, количество исправных входов меньше заданного в параметре OaTmpSMinSet;
Sigma - величина среднеквадратического отклонения;
SimpleAverage - простое усреднения по неотключенным принудительно входам;
----------
1_Used - индикатор использования входа при вычислении среднего значения с учетом среднеквадратического отклонения. 0 - не используется, 1 - используется;
2_Used - индикатор второго входа;
....
аналогичные индикаторы для входов 3,4,5,6
Parameters:
OaTmpSMinSet - минимально допустимое количество "живых" датчиков;
MaxTemp - максимальное допустимое значение входного сигнала. При превышении данной величины вход отключается;
MinTemp - минимальное допустимое значение входного сигнала. Если значение входа меньше данной величины, то вход отключается;
AllFaultOaTemp - значение, которое подается на выход OaTemp, при отключении всех входов;
1_Disable - принудительное отключение входа 1;
2_Disable - принудительное отключение входа 2;
3_Disable - принудительное отключение входа 3;
4_Disable - принудительное отключение входа 4;
5_Disable - принудительное отключение входа 5;
6_Disable - принудительное отключение входа 6;
BadMinValue - значение, используемое для аварийного исключения при минимизации;
BadMaxValue - значение, используемое для аварийного исключения при максимизации;
FilterSteps - количество шагов фильтра;
UseFilter - исользовать (1) или не использовать (0) выходной фильтр;
Ошибки, исправления, предложения и замечания приветствуются.