PDA

Просмотр полной версии : Ошибка -1.#QNAN в блоке PID-регулятора



Flomaster
16.12.2008, 02:53
Ситуация такая. Есть программа на SFC, в ней в одном из блоков работает PID-регулятор.
Запустили программу, задали с ИП320 необходимые значения для подачи на входы ПИД-регулятора. Сигнал обратной связи есть. Всё работает отлично, регулирование производится. Затем отключаем питание ПЛК минут на 10-15. Снова включаем питание, настройки панели восстанавливаются, сигнал обратной связи нормальный. Регулирования нет.
Если открыть (в он-лайне) блок ПИД-регулятора (того, который из библиотеки ОВЕН), можно увидеть, что значение внутренней переменной INTEGRAL1 = -1.#QNAN. В результате чего и выходное значение OUT_VAL = -1.#QNAN.
После перезагрузки контроллера кнопкой Сброс всё работает нормально, регулирование производится. Но это не выход из ситуации.

В чем может быть проблема и как с этим бороться?

Малышев Олег
16.12.2008, 08:35
1) Чему равны IMIN, IMAX
2) Используете ли Вы DECODE_FLOAT
и
3) Какая версия прошивки
Изменения в прошивках здесь (http://www.owen.ru/forum/showthread.php?t=115)

Flomaster
16.12.2008, 09:14
1) Чему равны IMIN, IMAX
2) Используете ли Вы DECODE_FLOAT
и
3) Какая версия прошивки
Изменения в прошивках здесь (http://www.owen.ru/forum/showthread.php?t=115)

1)
IMIN = -1
IMAX = 1

2) DECODE_FLOAT не использую
3) про версию прошивки пока не скажу, ПЛК под рукой нет

Малышев Олег
16.12.2008, 13:26
1) Да - все правильно
2) Надо использовать что бы не подавать в регулятор нелегитимные значения
3) Надо прошить без ошибки

Flomaster
16.12.2008, 16:58
По пункту 2. Где можно почитать про DECODE_FLOAT (как, где и для чего он используется)?

Филоненко Владислав
16.12.2008, 21:04
Внутри библиотеки ПИДов

sink3d
10.12.2010, 10:24
ПЛК 150 прошивка 2.10.7. При использовании PID регулятора "PID_FUNCTION" вылетает ошибка -1.#QNAN причем заметил ошибка вылетает если Ti поставить 0.Для того чтобы вернуть в нормальную работу PID нужно нажать сброс на контроллере.Это ужасный косяк, который не дает использовать ПЛК в качестве регулятора.В PV заходят нормальные значения без ошибок.Когда исправите ошибку?

Николаев Андрей
10.12.2010, 10:35
ПИД в любом случае можно использовать.
У Вас возникают сложности с нашей библиотекой.
Но можно написать свой, а многие используют ПИД из библиотеки Util.lib

sink3d
10.12.2010, 10:42
ясно, не нужно использовать библиотеку овен, она пока сырая.хорошо спасибо.

николай72
10.12.2010, 22:11
у меня была такая же ситуация в 2х случаях её разрулил:
1) когда коэф пида задаются из внешнего источника(например сп270). при включении питания время загрузки программ разное.пока сп270 грузится плк в коэф-ты записывает 0.лечится кучей способов.
2) попробуй временно из ретайна унести переменные в другое место.

Aplle
13.12.2010, 22:43
решил проблему инициализацией входных величин, значением, отличным от нуля.