Thread Content
Последнее редактирование сделал пользователь pe2 01.07.2015 в 21:32. Если имеются значения PV для A и B, то необходимо срабатывание сигнала тревоги C, когда разница между A и B больше или равна 0,1. В блоке CALCU я написал следующее: ALIAS A A.PV; ALIAS B B.PV; CPV=A-B; IF(CPV>=0,1) THEN C.PV=1; END IF. Однако на практике при A=1,1 и B=1 значение CPV равно 0,1, но сигнал тревоги C не срабатывает. То есть, если целая часть значения CPV равна 1, сигнал не срабатывает. В чем же проблема? Прошу объяснить
Вы неправильно используете этот оператор IF. ЕСЛИ(CPV>=0,1) ТО C.PV=1 ИНАЧЕ C.PV=0 КОНЕЦ ЕСЛИ
Здесь написано: пока не обращаем внимания на возврат к значению 0. Сейчас, при A=1,1 и B=1, условие для активации C=1 не выполняется, если все значения являются целыми числами. Подойдут такие пары, как (2,1; 2) и (1,0; 0,9).
На самом деле разница не равна 0,1; для удобства описания процесса замедления я назвал это значение 0,1. На самом деле у меня получается 0,012. Я могу установить любое значение — 0,1, 0,001 или 0,003. Однако значения 0,002, 0,2, 0,3 и 0,004 не подходят. Я совершенно не могу найти какую-либо закономерность. Это просто сводит с ума
Увы, теперь выяснилось, что когда разность равна 0,012, целая часть равна 1, и это не подходит. При других значениях разности, когда целая часть равна какому-либо целому числу, условие также не выполняется. Не понимаю, в чём дело