В данном примере рассмотрен случай создания для двух датчиков таблиц перерасчёта значений. Как создать датчики читайте в разделе Датчики.
Таблица расчёта пересчитывает данные согласно следующему уравнению прямой Y = a*X + b, где
В нашем случае мы включим флаг «Продолжить предыдущий отрезок» для автоматического пересчёта смещения b.
Допустим, что нам необходимо получать данные согласно следующей таблицы:
| Входное значение (X) | Выходное значение (Y) |
|---|---|
| 0 | 0 |
| 86 | 10 |
| 173 | 20 |
| 252 | 30 |
| 330 | 40 |
| 405 | 50 |
| 477 | 60 |
| 546 | 70 |
| 618 | 80 |
| 686 | 90 |
| 749 | 100 |
| 812 | 110 |
| 874 | 120 |
| 930 | 130 |
| 989 | 140 |
| 1019 | 150 |
Получаем первый интервал: который начитается в нуле, действует по входящим значениям до 86, при этом в самой последней точке на выходе должно быть значение 10. Рассчитываем смещение по x, т.е. ∆x = 86 - 0 = 86. Точно также рассчитываем ∆y = 10 - 0 = 10. Теперь нам необходимо получить коэффициент a, который является тангенсом угла в начале осей координат, т.е. нужно ∆y разделить на ∆x (∆y/∆x): a = 10 / 86 = 0,11627906976744186046511627906977 (калькулятор).
Если первое входящее значение X не нулевое, то первый интервал необходимо скорректировать, для этого рассчитайте b = Y - a * x, а потом установите флажок «Продолжить предыдущий интервал».
Далее смотрите таблицу, как проводится расчёт всех интервалов. Интервалов будет на 1 меньше, чем строк в таблице, приведенной выше:
| Интервал | X | a | b |
|---|---|---|---|
| X | (Y(i+1) - Y(i) / X(i+1) - X(i) | Y - a * x | |
| 1 | 0 | (10 - 0) / (86 - 0) | |
| 2 | 86 | (20 - 10) / (173 - 86) | |
| 3 | 173 | (30 - 20) / (252 - 173) | |
| 4 | 252 | (40 - 30) / (330 - 252) | |
| 5 | 330 | (50 - 40) / (405 - 330) | |
| 6 | 405 | (60 - 50) / (477 - 405) | |
| 7 | 477 | (70 - 60) / (546 - 477) | |
| 8 | 546 | (80 - 70) / (618 - 546) | |
| 9 | 618 | (90 - 80) / (686 - 618) | |
| 10 | 686 | (100 - 90) / (749 - 686) | |
| 11 | 749 | (110 - 100) / (812 - 749) | |
| 12 | 812 | (120 - 110) / (874 - 812) | |
| 13 | 874 | (130 - 120) / (930 - 874) | |
| 14 | 930 | (140 - 130) / (989 - 930) | |
| 15 | 989 | (150 - 140) / (1019 - 989) |
Ниже смотрите значения, введённые в таблицу:
и график функции:
Если необходимо убрать некорректные входные значения, то установите минимальное и максимальное значения X (нижнюю и верхнюю границы).
Повторяем действия, описанные выше:
Исходные данные:
| Входное значение (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 |
В данном случае при создании таблицы расчёта необходимо будет таблицу исходных данных считать с конца в начало, для того чтоб избежать лишних пересчётов. В первом интервал необходимо будет значение смещения по оси Y скорректировать, т.е. ввести вручную. Это можно сделать двумя способами: 1) снять флажок «Продолжить предыдущий отрезок» и при внесении X и a, также внести b и вернуть флажок на место; или 2) после добавления первого интервала скорректировать его руками.
Таблица интервалов:
| Интервал | X | a | b |
|---|---|---|---|
| 1 | 0,32 | (90 - 100) / (0,6 - 0,32) | Y - a * X, т.е. 100 - 0,32 * (90-100)/(0,6-0,32) |
| 2 | 0,6 | (80 - 90) / (0,96 - 0,6) | авто |
| 3 | 0,96 | (70 - 80) / (1,1 - 0,96) | авто |
| 4 | 1,1 | (60 - 70) / (1,25 - 1,1) | авто |
| 5 | 1,25 | (50 - 60) / (1,3 - 1,25) | авто |
| 6 | 1,3 | (40 - 50) / (1,65 - 1,3) | авто |
| 7 | 1,65 | (30 - 40) / (2,0 - 1,65) | авто |
| 8 | 2,0 | (20 - 30) / (2,18 - 2,0) | авто |
| 9 | 2,18 | (10 - 20) / (2,58 - 2,18) | авто |
| 10 | 2,58 | (0 - 10) / (2,8 - 2,58) | авто |
Таблица расчёта:
и график:
Примечание. Если выходное значение Y не может быть более 100, то можно проще поступить с первым интервалом, т.е.:
В данной ситуации если входное значение X окажется меньше 0,32 в отчёте всегда будет значение 100.