Просмотр полной версии : PID_FUNCTION
После длительного отключения питания не запускается пид функция, (пишит -1#QNAN) как можно запустить без компа. Кто нибудь сталкивался с подобной промблемой? B как удалось решить?
Николаев Андрей
15.01.2012, 14:01
Скорее всего какая-то внутренняя переменная ПИД переполнилась.
В программе необходимо предусмотреть возможность вызова ПИД с нулевыми коэффициентами, а потом снова задать рабочие значения.
Вопрос какая, установка decode_float на входе PV после перезаписи проги помогла, но и прога была перезагружена заново. Проверить не успел корпус загазировали. Туды щас не войдёшь. Придётся подождать до завтра чтобы проверить.:confused:
Проверка закончилась с теми же результатами с какими и началась. Прошу помощи.
Проблема осталась открытой.:mad:
Проверка закончилась с теми же результатами с какими и началась. Прошу помощи.
Проблема осталась открытой.:mad:
Сталкивались с такой проблемой, только через CoDeSys получилось решить. Есть переменная в PID_Function - .INTEGRAL1 и .INTEGRAL2, при их обнулении в процессе работы #QNAN пропал, все заработало.
Это понятно, как запускать без КДС. Как обнулять интегралы без применения КДС. Может обнулять сис. время или при отсутствии подачи данных из МВА? Что бы не было накопления интегральной составляющей?:confused:
Малышев Олег
19.01.2012, 09:04
1) Запустить без КДС и контроллера не получится.
2) Обнулить интеграл pReal:=pointer to real; pReal:=Adr(myreg^.INTEGRAL1); pReal^:=0;
3) Что бы не было накопления интегр. сост ставьте к-т TI=0
[QUOTE=Малышев Олег;75849]1) Запустить без КДС и контроллера не получится.
2) Обнулить интеграл pReal:=pointer to real; pReal:=Adr(myreg^.INTEGRAL1); pReal^:=0;
Это куда вписать?
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot