Сергей Морозов
Active Forum Member / Активный участник форума
Участник № / Member № 2076
отправлено / posted
Здравствуйте. Во время работы, в какой-то момент времени один из выходов 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.
Сообщения / Posts 98 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Сергей Морозов
Active Forum Member / Активный участник форума
Участник № / Member № 2076
отправлено / posted
Выслал на hotline@adastra.ru На всякий случай уточняю: ошибка возникает редко, такое было дважды в течении месяца.
Сообщения / Posts 98 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
Ошибка в вычислениях “1.#INF” означает чрезмерно большое отрицательное число, выходящее за пределы допустимой шкалы стандартного FLOAT.
Такое число может быть получено от “Источника” или в результате вычислений в Вашей программе – после вычитания и/или умножения на коэффициент меньше 1.
Единожды возникнув, в Вашей программе оно сохраняется в глобальной переменной glabal_var_1 и затем до перезагрузки МРВ не уничтожается.
Сообщения / Posts 17314 | Из / From: Россия
| IP / IP: IP адрес / IP address |