Произвольный аналоговый и дискретный датчики
Произвольный аналоговый датчик (ПАД) и Произвольный дискретный датчик (ПДД) позволяют выводить в таблицу текущих данных и в сообщения от объекта преобразованные с помощью формул данные от физических аналоговых и дискретных датчиков.
ПДД может выводить только одно из двух состояний (0 или 1, т.е. активно/пассивно или включено/выключено), а ПАД - может выводить любое числовое значение.
ПАД и ПДД находятся в группе Специальных логических датчиков:
При создании ПАД/ПДД обязательными для заполнения полями являются только его Индивидуальное название и Формула (без семантических ошибок).
Введенные Индивидуальное название, Единицы измерения (для ПАД) и Имена для активного/пассивного состояний (у ПДД) будут отображаться в таблице текущих данных в формате "Значение <Ед. Измерения> [<Инд. название>]", а в названии колонки в сообщениях от объекта будет указываться только Индивидуальное название.
Для задания формул есть следующие правила:
1. Можно задавать константы обычным числом, например, 5. Для дробных чисел разделителем должна быть точка, пример 4.5.
Есть особая константа null, она позволяет отображать в таблице текущих данных последнее полученное валидное (см. п. 9 ниже) значение от ПАД/ПДД в случае, если текущее значение невалидное.
2. Переменные в формуле задаются в квадратных скобках буквами и/или числами, например [Var_01] или [3]. При создании датчика, по умолчанию, добавляется переменная x, но её можно изменить на своё усмотрение.
Как только ПАД/ПДД находит корректную переменную в поле Формула, то автоматически внизу пополняется список этих переменных, где можно в выпадающем списке задать источник данных. Источником данных может выступать аналоговый/дискретный физический датчик или аналоговый/дискретный логический датчик. При этом, в расчетах будет учитываться внесенная таблица калибровки в аналоговом датчике, а также инверсия в дискретном датчике.
3. Максимальная длина формулы - 500 символов, а имени переменной - 20 символов. В названии переменной можно использовать латиницу, кириллицу, цифры, пробел, нижнее подчеркивание '_' . В формуле можно использовать пробел. Любые другие символы в формуле (кроме тех, что входят в конструкции операторов и функций) будут восприниматься ошибочными.
4. В формулах можно использовать операторы: + (сложение), - (вычитание), * (умножение), / (деление), ^ (возведение в степень).
5. Логические операторы: < (меньше), > (больше), >= (больше или равно), <= (меньше или равно), <> (не равно), = (равно), and (логическое И), or (логическое ИЛИ). При этом, если значение операнда логического оператора равно не 0 (ЛОЖЬ) и не 1 (ИСТИНА), то результат будет null. Доступно сравнение значений операндов не только с константами, но и с другими операндами, например: ([x]+[y]) >= [z].
Если результат расчета формулы в ПДД - 0 (ЛОЖЬ), то он принимает Пассивное состояние, а если результат формулы - 1 (ИСТИНА), то Активное состояние. Если результат не 0 и не 1, то значение ПДД будет null.
6. Можно задавать скобки '(' ')' любой степени вложенности, чтобы контролировать приоритет выполнения операций. Например, -2^2 даст результат -4. А выражение (-2)^2 даст результат 4.
7. В формуле можно добавлять функции max, MIN, Average (регистр букв в названии функции не важен). Max вернет наибольшее значение; Min вернет наименьшее значение; Average вернет среднее арифметическое. У этих функций должно использоваться больше одного параметра. Параметры разделяются символом ';' (точка с запятой). Примеры:
- Max(1;2)
- min([x]+5;[y];[var])
- AVERAGE(4;max(2;3);[x];[y])
8. Функция If( ; ; ) требует 3 аргумента. Если значение первого аргумента ИСТИНА, то возвращает второй аргумент, а если ЛОЖЬ - возвращает третий аргумент. Если значение первого аргумента не ИСТИНА и не ЛОЖЬ, то возвращает null.
Функция Not() ожидает 1 аргумент и возвращает логическое отрицание аргумента. Если значение аргумента не 1 (ИСТИНА) и не 0 (ЛОЖЬ), то возвращает null. Примеры:
- If( [x]>0; [y]; [z]*2 )
- Not( [y]=0 )
9. Чтобы формула вычислила результат, необходимо чтобы у всех её переменных были определены входные значения. Если хотя бы по одной переменной значения нет (например, датчик еще не присылал данные), то результатом будет null.
10. Значение null не перетирает собой предыдущее валидное значение, отображаемое в текущих данных (т.е. в них всегда будет отображаться последнее валидное значение ПАД/ПДД).
Добавить столбец с ПАД/ПДД в таблицу текущих данных можно из её настроек, по аналогии с любым другим столбцом:
Для вывода значений ПАД/ПДД на графики или в сообщения от объекта, необходимо выбрать их в списке датчиков:
В таблице сообщений от объекта к столбцам ПАД/ПДД можно также применять фильтры и сортировку, а затем полученное содержимое таблицы выгружать в Excel файл.