Если у ПЛК есть вход 0-10В то нафига вам какие-то преобразователи сдались? Просто в настройках входа ставите масштабирование 0-10В. На датчик кидаете экранированный кабель с сечение жилы потолще и масштабирование делаете програмно.
0-1,3В попадают в диапазон 0-10В.
Я так на ПР200 использую датчик температуры LM335 у которого диапазон напряжения вообще в пределаз 2,15 - 3,7В всего на всю шталу температур.
нашли блин проблему... основная тут это потери в кабеле, но думаю если погрешность в пару % вас никак не убивает, то можно пробовать.
если проще сказать, пофигу какую лямбду вы используете, лишь бы выходное напряжение у него было в пределах 0-10В а не обязательно строго таким же.
И даже если у него не линейная характеристика а ступенями, это тоже обходится через else if и скалированием каждой ступеньки.
Вот пример формулы, когда характеристика датчика не линейна. Ставили нам тут на генератор датчик и тарировали по 5 литров.
думаю смысл понятен. Scaler это линейная формула масштабирования где входная переменная. 0 и макс значения датчика и 0 и макс литража. и в зависимости от ступеньки нули смещаются... Для нелинейных датчиков тоже можно применить что-то подобноеКод: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; }




Ответить с цитированием