PDA

Просмотр полной версии : Проблемы в работе ФБ APID_VALVE библиотеки Pid_reg2 (ПЛК-73L)



Виктор БПСЗ
21.09.2018, 16:57
Здравствуйте. Возникла проблема которую никак не могу разрешить.

Дело вот в чем.
1. Создал простой проект для ПЛК-73L. Один программный модуль - ПИД регулятор с ФБ APID_VALVE из библиотеки Pid_reg2. За основу взял пример с диска.
На экран выводится только текущая температура в трубе. Запустили - заработало отлично. Подобрал ПИД коэффициенты. Почти идеальный график температуры.
Чуть доработал - добавил опять же из примера запуск в режиме АНР. Тоже все отлично работало.
2. После этого сделал рабочий вариант для двух отдельных объектов, добавил обвязку - вывод на экран, выявление аварий, работа с клавиатурой, изменение режимов работы. Прибавилось функций, подпрограмм, переменных в т.ч. конфигурационных.
Тут началась мистика: загружаю проект в ПЛК - не работает ПИД регулятор! Т.е. при отладке видно, что по таймеру попадаю в блок вызова ПИД регулятора, но он ничего не возвращает. Правда один или два раза было, что он открывает кран на полную и больше не регулирует. Хоть ты тресни! Че токо не делал - менял интервалы вызова ФБ APID_VALVE, делал полностью новый проект (думал - мож где че накосячил). В конце концов урезал его до у ровня начального - пробного (практически один в один с тем который работает хорошо), только названия переменных отличаются (конфигурационные переменные тоже сделал как в работающем проекте). Не работает!

3. Сегодня поменял в нерабочем проекте имя переменной использующей ФБ ПИД-регулятора.

Было в объявлении глобальных переменных проекта:
APID_DS1: APID_VALVE;

стало:
APID_TV: APID_VALVE; (как в работающей программе)

Заработало! Можно бы оставить так и забыть, но в этом проекте должны быть два ПИД-регулятора для двух разных объектов.
Подскажите пожалуйста что не так делаю? Или может есть какие-то особенности ПЛК-73 о которых я не знаю - т.е. этот ФБ можно использовать только один раз и перовое имя переменной гдето запоминается и в дальнейшем можно использовать только его?

Newcomer
21.09.2018, 17:45
Не работающий проект с одним ПИД представьте.

Виктор БПСЗ
21.09.2018, 19:27
К сожалению, дома уже. Теперь до понедельника... Хотел сразу выложить, но не успел бы - рабочий день закончился. Кабинет закрыли. Успел только текст наскоряк набрать.

Виктор БПСЗ
24.09.2018, 08:42
Выкладываю проекты которые тестил.
Рабочий:
38845

и нерабочий:
38846

В нерабочем, если поменять имя переменной ПИД регулятора на такое как в первом(рабочем) проекте - то и этот работает. Вот надо еще в рабочем поменять попробовать имя ПИД регулятора и посмотреть че получиться. Пойду сейчас протестирую этот вариант.

... Попробовал сделать из рабочего нерабочий - не получилось. Название переменной менял - все равно работало отлично.