Если у ПЛК есть вход 0-10В то нафига вам какие-то преобразователи сдались? Просто в настройках входа ставите масштабирование 0-10В. На датчик кидаете экранированный кабель с сечение жилы потолще и масштабирование делаете програмно.
0-1,3В попадают в диапазон 0-10В.
Я так на ПР200 использую датчик температуры LM335 у которого диапазон напряжения вообще в пределаз 2,15 - 3,7В всего на всю шталу температур.
нашли блин проблему... основная тут это потери в кабеле, но думаю если погрешность в пару % вас никак не убивает, то можно пробовать.
если проще сказать, пофигу какую лямбду вы используете, лишь бы выходное напряжение у него было в пределах 0-10В а не обязательно строго таким же.
И даже если у него не линейная характеристика а ступенями, это тоже обходится через else if и скалированием каждой ступеньки.
Вот пример формулы, когда характеристика датчика не линейна. Ставили нам тут на генератор датчик и тарировали по 5 литров.
Код:
double Benzscale (double inp)
{
double res = 0;
if (inp > 0 & inp < 773) res = Scaler (inp, 53, 773, 0, 5);
else if (inp > 773 & inp < 1468) res = Scaler (inp, 774, 1467, 5, 10);
else if (inp > 1467 & inp < 2061) res = Scaler (inp, 1468, 2060, 10, 15);
else if (inp > 2060 & inp < 2452) res = Scaler (inp, 2061, 2451, 15, 20);
else if (inp > 2451 & inp < 2870) res = Scaler (inp, 2452, 2869, 20, 25);
else if (inp > 2869 & inp < 3278) res = Scaler (inp, 2870, 3277, 25, 30);
else if (inp > 3277 & inp < 3700) res = Scaler (inp, 3278, 3699, 30, 35);
else if (inp > 3699 & inp < 4096) res = Scaler (inp, 3700, 4095, 35, 36);
return res;
}
думаю смысл понятен. Scaler это линейная формула масштабирования где входная переменная. 0 и макс значения датчика и 0 и макс литража. и в зависимости от ступеньки нули смещаются... Для нелинейных датчиков тоже можно применить что-то подобное