Таблица расчета имеет ключевое значение для настройки датчика (см. свойства датчика). Согласно таблице расчета сырые данные, приходящие в параметре, преобразуются в значения датчика, например, некоторое абстрактное 86 преобразуется в 10,5 литров топлива.
Таблица расчета нужна не всегда. Например, если датчик цифровой и присылает только 1 или 0, которые соответствуют состояниям включен/выключен, в таблице расчета значений для такого датчика нужды нет.
Заполненная таблица расчета необходима для аналогового датчика зажигания, поскольку необходимо определить, по какому принципу все возможные аналоговые значения будут преобразованы в два возможных состояния — Вкл/Выкл.
Таблица расчета пересчитывает полученные данные согласно уравнению прямой Y = a×X + b, где
X — входное значение — значение, которое поступает от оборудования;
Y — выходное значение — значение, которое должно попадать в отчет;
a — коэффициент наклона прямой (тангенс угла наклона к оси X, или отношение противолежащего катета к прилежащему);
b — смещение прямой по оси Y.
По приходу значения (т. е. Х) оно будет подставлено в таблицу расчета, a и b будут рассчитаны автоматически, а на выходе будет получено конечное значение, т. е. Y (оно и попадет в отчеты, графики, всплывающие подсказки и т.п.).
Каждая строка в таблице расчета работает только на своем промежутке, т. е. до значения Х в следующей строке. Поэтому значения по оси Х повторяться не могут.
Получить тангенс угла и подставить его в коэффициент а можно без таблицы тангенсов, а с помощью математических расчетов. Для этого по осям Х и Y необходимо найти дельты — интервалы действия значений (т. е. от Х1 до Х2, от Х2 до Х3 и т.д.). Далее остается только поделить дельты друг на друга: ∆y/∆x. Полученное значение и является тангенсом угла.
Используйте поля Нижняя/Верхняя граница, чтобы задать рамки входящих значений. Следует отметить, что данные границы представляют собой полуоткрытый интервал. Другими словами, нижняя граница включена в интервал валидных значений датчика, а верхняя нет. В случае прихода каких-либо значений, выходящих за эти пределы, они будут считаться невалидными. Кроме того, от наличия/отсутствия флага Применять после расчета зависит, будут ли применяться указанные границы к сырым значениям Х (флаг не выставлен) или к обработанным значениям Y (флаг выставлен).
После введения каждой пары значений, нажимайте Добавить. Неверно введенные значения можно удалить при помощи кнопки . Также можно удалить все строки сразу — при помощи кнопки Очистить таблицу.
Чтобы визуально оценить результат настройки таблицы расчета, перейдите к просмотру графика, кликнув соответствующую иконку вверху.
Способы заполнения таблицы
- Заполняются все доступные поля: значения Х-ов, коэффициента а (тангенса угла) и смещения b. Способ пригоден для получения таблицы пересчета под полным Вашим контролем.
- Заполняются только X и b, а коэффициент а выставляется нулевым. Этот способ удобен, если необходимо преобразовать аналоговый сигнал в цифровой.
- Заполняются только X и a. Этот способ удобен, если необходимо получить кривую, зная углы, но без пересчета смещения по Y.
- В некоторых случаях возможно настроить таблицу расчета, зная X и Y. Для этого воспользуйтесь мастером таблицы расчета (правая часть диалогового окна).
Управление графиком
Для работы с графиком используются следующие кнопки:
| При активации данной кнопки появляется возможность масштабирования (увеличения) произвольной области графика. Для этого необходимо выделить соответствующую область, удерживая левую кнопку мыши. Процедуру можно повторить любое количество раз. |
| Возврат к исходному масштабу графика. |
/ | Кнопки увеличения и уменьшения графика изменяют масштаб графика вдвое относительно видимой зоны. При этом центр графика остается зафиксированным. |
| Клик по данной кнопке позволяет сохранить видимую область графика вместе с осями координат в формате PNG. |
Пример 1: датчик температуры
Создадим таблицу преобразования для датчика температуры. Допустим, данные будут поступать в дополнительном коде, т. е. положительные значения — от 0 до 127, а отрицательные — от 128 (что соответствует -128 градусам) до 255 (что соответствует -1 градусу).
Полученный результат создания таблицы преобразования можно оценить на графике расчета.
График расчета всегда имеет несколько расширенный вид — по оси Х он растягивается вправо и влево. Это связано с тем, что на первом интервале функция действует в том числе и в обратную сторону — до минус бесконечности, а на последнем интервале — до плюс бесконечности.
Пример 2: датчик зажигания
Рассмотрим пример настройки нецифрового датчика зажигания, когда активация зажигания определяется по параметру, передающему напряжение. Например, напряжение до 0.5В будет расцениваться как зажигание выключено, свыше 0.5В — зажигание включено. Для такого датчика требуется создать таблицу преобразований, как показано на рисунке ниже.
На графике расчета посмотрите, соответствует ли результат ожиданиям.
Мастер таблицы расчета
Мастер таблицы расчета — это инструмент, который упрощает процесс создания таблицы преобразования значений для датчика. Здесь достаточно ввести входные значения X и соответствующие им выходные значения Y. Мастер таблицы расчета располагается в правой части диалогового окна. По умолчанию он неактивен. Чтобы воспользоваться данным инструментом, необходимо активировать флаг Пары XY.
Мастер таблицы расчета целесообразно применять, когда тарировка значений датчика выясняется опытным путем. Например, заливается разный объем топлива и с датчика снимаются значения, соответствующие разным объемам.
После введения всех пар значений нажмите кнопку Генерировать, чтобы программа обработала введенные данные. Результат можно оценить в таблице расчета, где по введенным данным будут получены коэффициент а и смещение b, а также графике (кликнуть соответствующую иконку).
Коэффициент a и смещение b вычисляется программой по следующей схеме:
- a вычисляется по формуле ∆Y/∆X. На каждом отдельно взятом интервале вычисляется смещение по оси Х и смещение по оси Y, затем смещение по Y делится на смещение по Х, т. е. ∆Y/∆X.
- b вычисляется по формуле b = Y — a × X.
В правом верхнем углу мастера таблицы расчета предусмотрены кнопки для экспорта введенных пар XY в файл CSV, а также импорта готовых значений из файлов CSV или TXT.
Пример 1: датчик уровня топлива
Допустим, было залито 10 литров топлива, и датчик прислал значение 86, потом было залито 20 литров, и датчик показал 173, и т.д. В конце концов, мы получаем некоторую табличку типа:
Входное значение (X) | Выходное значение (Y) |
---|---|
0 | 0 |
86 | 10 |
173 | 20 |
252 | 30 |
330 | 40 |
405 | 50 |
477 | 60 |
546 | 70 |
618 | 80 |
686 | 90 |
749 | 100 |
Пары значений внести в мастер таблицы расчета, кликнуть Генерировать. На основании введенных значений будет сгенерирована таблица расчета (слева).
График можно просмотреть, кликнув соответствующую иконку.
Все данные, введенные и сохраненные на этой вкладке, будут доступны и при последующем открытии диалога. Любые изменения в таблице расчета не влияют на мастер. Другими словами, мастер только показывает введенные значения, но не отражает текущей ситуации.
Теперь проследим, как произошел расчет коэффициента a и смещения b. Первый интервал начитается в нуле, действует по входящим значениям до 86, при этом в самой последней точке на выходе должно быть значение 10. Рассчитываем смещение по Х, т. е. ∆Х = 86 — 0 = 86. Точно так же рассчитываем смещение по Y, т. е. ∆Y = 10 — 0 = 10. Теперь нам необходимо получить коэффициент a, который является тангенсом угла в начале осей координат, т. е. нужно ∆Y разделить на ∆X (∆Y/∆X): a = 10 / 86 = 0,11627906976744186 (калькулятор).
Для остальных интервалов применяем ту же схему расчета (интервалов будет на один меньше, чем строк в мастере расчета):
Интервал | X | Y | a | b |
---|---|---|---|---|
N | X | Y | (Y(i+1) — Y(i)) / (X(i+1) — X(i)) | Y — a × X |
1 | 0 | 0 | (10 — 0) / (86 — 0) | 0 — a×0 |
2 | 86 | 10 | (20 — 10) / (173 — 86) | 10 — a×86 |
3 | 173 | 20 | (30 — 20) / (252 — 173) | 20 — a×173 |
4 | 252 | 30 | (40 — 30) / (330 — 252) | 30 — a×252 |
5 | 330 | 40 | (50 — 40) / (405 — 330) | 40 — a×330 |
6 | 405 | 50 | (60 — 50) / (477 — 405) | 50 — a×405 |
7 | 477 | 60 | (70 — 60) / (546 — 477) | 60 — a×477 |
8 | 546 | 70 | (80 — 70) / (618 — 546) | 70 — a×546 |
9 | 618 | 80 | (90 — 80) / (686 — 618) | 80 — a×618 |
10 | 686 | 90 | (100 — 90) / (749 — 686) | 90 — a×686 |
11 | 749 | 100 | (110 — 100) / (812 — 749) | 100 — a×749 |
Информацию о том, как провести тарировку бака, можно найти здесь.
Пример 2: датчик уровня топлива
В данном примере входные значения Х идут по убывающей при возрастании значений Y. Однако при введении пар значений в мастер таблицы расчета они будут автоматически расположены в нужном порядке.
Исходные данные:
Входное значение (X) | Выходное значение (Y) |
---|---|
2,8 | 0 |
2,58 | 10 |
2,18 | 20 |
2,0 | 30 |
1,65 | 40 |
1,3 | 50 |
1,25 | 60 |
1,1 | 70 |
0,96 | 80 |
0,6 | 90 |
0,32 | 100 |
Соответственно, вносим данные в мастер таблицы расчета и затем генерируем саму таблицу расчета и получаем график расчета:
Таблица интервалов для данного датчика будет такой:
Интервал | X | Y | a | b |
---|---|---|---|---|
N | X | Y | (Y(i+1) — Y(i)) / (X(i+1) — X(i)) | Y — a × X |
1 | 0,32 | 100 | (90 — 100) / (0,6 — 0,32) | 100 — a×0,32 |
2 | 0,6 | 90 | (80 — 90) / (0,96 — 0,6) | 90 — a×0.6 |
3 | 0,96 | 80 | (70 — 80) / (1,1 — 0,96) | 80 — a×0.96 |
4 | 1,1 | 70 | (60 — 70) / (1,25 — 1,1) | 70 — a×1.1 |
5 | 1,25 | 60 | (50 — 60) / (1,3 — 1,25) | 60 — a×1.25 |
6 | 1,3 | 50 | (40 — 50) / (1,65 — 1,3) | 50 — a×1.3 |
7 | 1,65 | 40 | (30 — 40) / (2,0 — 1,65) | 40 — a×1.65 |
8 | 2,0 | 30 | (20 — 30) / (2,18 — 2,0) | 30 — a×2 |
9 | 2,18 | 20 | (10 — 20) / (2,58 — 2,18) | 20 — a×2.18 |
10 | 2,58 | 10 | (0 — 10) / (2,8 — 2,58) | 10 — a×2.58 |
Информацию о том, как провести тарировку бака, можно найти здесь.