Здравствуйте. Во время работы, в какой-то момент времени один из выходов ST-программы принимает значение равное 1.#INF, и в таком виде остается до презагрузки МРВ. Уже дважды такое было, видимых причин для этого не нашел. Фрагмент программы выглядит примерно так, все переменные типа real:
Значение 1.#INF получает out_var_3, выходы out_var_1 и out_var_2 при этом продолжают работать правильно. Предполагаю что причина в glabal_var_1, возможно она принимает какое-то недопустимое значение, возможно то-же 1.#INF, и далее происходит зацикливание. В чем может быть причина, и что означает 1.#INF? Значения всех переменных находятся в диапазоне: -10 000.0 ... +20 000.0, версия МРВ 6.07.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Пришлите, поажлуйста, проект на адрес техподдержки.
Posted by Сергей Морозов (Участник № / Member № 2076) on :
Выслал на hotline@adastra.ru На всякий случай уточняю: ошибка возникает редко, такое было дважды в течении месяца.
Posted by Nico (Участник № / Member № 5342) on :
INF потеря точности
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Ошибка в вычислениях “1.#INF” означает чрезмерно большое отрицательное число, выходящее за пределы допустимой шкалы стандартного FLOAT.
Такое число может быть получено от “Источника” или в результате вычислений в Вашей программе – после вычитания и/или умножения на коэффициент меньше 1.
Единожды возникнув, в Вашей программе оно сохраняется в глобальной переменной glabal_var_1 и затем до перезагрузки МРВ не уничтожается.