Вход

Просмотр полной версии : Токовые выходы ПЛК73



Дмитрий_Н
03.08.2016, 09:54
Здравствуйте, уважаемые форумчане.
Подскажите, пожалуйста, как правильно задействовать токовые выходы ПЛК73.

Имеется ПЛК73-ККККРРИИ-L
Разрабатываю код на ST.

Присвоил 1-му аналоговому входу переменную, допустим Temp (термопара 100П)
Присвоил 6-у выходу переменную Reg (для управления регулятором мощности 4-20мА, типа RN1F48I50)

Необходимо регулировать нагрев от 0 до 100 градусов с помощью регулятора мощности.

Я правильно понимаю, что необходимо использовать блок LIN_TRAFO? Этот блок будет сам высчитывать необходимую мощность от -1 до 1?
Типа должно быть написано LIN_TRAFO(Temp,0.0,0.100,-1.0,1.0,Reg,Err);

Переменные Temp и Reg - вещественные. Err - логическая.
Если reg=-1 это вход полностью выключен, а 1 - полностью включен, то 0 должен соответствовать выходному току 8мА (50% мощности) я правильно понимаю?


P.S. Не судите, строго, изучаю кодесис только 3 дня))))
Разобрался с выводами на экран, релейными выходами.

Гарчев Евгений
03.08.2016, 13:01
Я правильно понимаю, что необходимо использовать блок LIN_TRAFO? Этот блок будет сам высчитывать необходимую мощность от -1 до 1?
Типа должно быть написано LIN_TRAFO(Temp,0.0,0.100,-1.0,1.0,Reg,Err);

Переменные Temp и Reg - вещественные. Err - логическая.
Если reg=-1 это вход полностью выключен, а 1 - полностью включен, то 0 должен соответствовать выходному току 8мА (50% мощности) я правильно понимаю?


P.S. Не судите, строго, изучаю кодесис только 3 дня))))
Разобрался с выводами на экран, релейными выходами.
Здравствуйте!
Почти правильно все поняли, только выходной сигнал лежит в диапазоне от 0 до 1, а не от -1 до 1.

Гарчев Евгений
03.08.2016, 13:08
Необходимо регулировать нагрев от 0 до 100 градусов с помощью регулятора мощности.


Если хотите сделать обратную зависимость, то тогда так: LIN_TRAFO(Temp,0.0,100.0,1.0,0.0,Reg,Err);
Исходя из условий задачи и от динамики системы, может потребоваться реализация П- или ПИ-регулятора.

Дмитрий_Н
03.08.2016, 15:13
Странно, пытаюсь воспользоваться данной функцией и выдает ошибку "LIN_TRAFO не является функцией."
Библиотека Util.lib добавлена

Гарчев Евгений
03.08.2016, 16:09
lin_trafo - это функциональный блок, необходимо объявить его экземпляр.

Eugene.A
03.08.2016, 17:51
А что, собственно, вы собираетесь регулировать? Вот у вас с термодатчика через LIN_TRAFO подается на регулятор мощности, вам нужно поддерживать температуру? А какую? Я что-то ее не вижу. Или мощность? А где она у вас фигурирует? У вас термодатчик является задатчиком? И какую именно величину задает? Как ее изменить?
Или термодатчик является сигналом обратной связи? Тогда кто является задатчиком?
Вам нужен ПИД-регулятор. На один его вход подаете задание, на другой - обратную связь с термодатчика. А уж он их кожи вон лезет, чтобы они сравнялись.

Дмитрий_Н
03.08.2016, 18:16
А что, собственно, вы собираетесь регулировать? Вам нужно поддерживать температуру? А какую?
Собираюсь регулировать температуру. От 0 до 100 градусов. Фигурирует она в функции LIN_TRAFO(Temp,0.0,100.0,0.0,1.0,Reg,Err);
Измеряется температура в переменной Temp термопарой.
Мне ПИД не нужен, при достижении температуры к максимальной, семисторный регулятор (4-20мА) будет будет прикрываться и на выходе при подходе к 100 градусам будет 0% мощности тенов и нагрев не будет осуществляться.
Как то так думаю.

Eugene.A
03.08.2016, 18:27
И какую же именно температуру вы получите? В LIN_TRAFO есть границы изменения входной величины и привязанные к ним границы выходной величины. Где, собственно, та температура, которую вы хотите получить? А вам известна зависимость температуры от мощности? А ничего, что при увеличении температуры мощность будет снижаться, что приведет к очень длительному процессу установления? Это будет продолжаться вечно.
Все эти задачи и выполняет ПИД, от которого вы открещиваетесь. Собственно, почему? Вы что-то недоговариваете?

Гарчев Евгений
03.08.2016, 18:57
По идее можно и с помощью Lin_trafo добиться приемлемых результатов, если задача не требует высокой точности поддержания температуры. Но для этого необходимо будет экспериментальным путем подобрать входные границы. Мощность необходимо уменьшать не от нуля градусов, а гораздо позже, и выключать нагреватель не при 100 градусах, а чуть раньше. По сути, это будет П-регулятор.

Eugene.A
03.08.2016, 19:14
Так вы будете убивать массу времени, подбирая границы, при каждой необходимости сменить температуру. Это будет нечто вроде лабораторной работы. И точности вы не получите, и время достижения требуемой температуры будет большим. А главное, непонятно, ради чего такие извращения.

Гарчев Евгений
03.08.2016, 19:27
Ну так подобрать коэф-ты ПИД-регулятора дело тоже не быстрое (если не пользоваться автонастройкой). Время выхода на уставку будет не оптимальным, но по этому критерию добиться удовлетворительных результатов можно. А на счет точности - полностью согласен с Вами.

Eugene.A
03.08.2016, 19:46
Ну так подобрать коэф-ты ПИД-регулятора дело тоже не быстрое (если не пользоваться автонастройкой). Время выхода на уставку будет не оптимальным, но по этому критерию добиться удовлетворительных результатов можно. А на счет точности - полностью согласен с Вами.
Ну так коэффициенты ПИДа подбирабтся один раз, а не при каждой смене уставки. И сложности бывают при сложном объекте регулирования, с большой инерцией, с резкими перепадами теплоотдачи и т.п. В большинстве случаев при некоторой сноровке это не преставляет таких уж проблем.

Дмитрий_Н
03.08.2016, 22:37
Точность по температуре +-2 градуса
Температуры в основном 35,55,100 градусов
Камера хорошо теплоизолирована и даже просто включенное освещение 40Вт камеры за час при нерабочих тэнах поднимает температуру на 2 градуса
Пока просто изучаю контроллер, ничего не мешает замерить один фб на другой.
Но камера работает именно так как я написал, с регулятором мощности и том от овна.
Просто хотел выяснить как работает токовый выход на плк.
Ничто не мешает использовать регулятор мощности как твердотельное реле, например, с половинной мощностью или четвертью.

Eugene.A
03.08.2016, 23:30
Тогда вообще непонятно, зачем вам ПЛК, с этим легко справится обычный ТРМ-1.

Дмитрий_Н
04.08.2016, 10:04
Там стоит ТРМ136, т.к. в камере нагрев и влага и нормально справляется со своей задачей.
Просто взяли у ОВНА ПЛК на изучение на 1 месяц и если получится написать для него программу, будет куплен для другого проекта. Вот сижу и изучаю.
Просто задал вопрос про токовые выходы: ПЛК сам их будет обрабатывать, как скажем ТРМ, или надо писать обработку через ФБ. Это ведь не релейные, где 0-выкл, а 1-вкл., а токовые где, 0-4мА, 0,5 приблизиельно 12мА, 1-20мА и т.д.
А какими блоками воспользоваться для достижения заданной цели по моему решает каждый сам.

Гарчев Евгений
04.08.2016, 13:18
Ну так коэффициенты ПИДа подбирабтся один раз, а не при каждой смене уставки. И сложности бывают при сложном объекте регулирования, с большой инерцией, с резкими перепадами теплоотдачи и т.п. В большинстве случаев при некоторой сноровке это не преставляет таких уж проблем.

По хорошему, для разных уставок должны быть разные коэф-ты ПИДа, т.к. при изменении уставки меняется динамика всей системы.
Просто если человек хочет попробовать реализовать задачу через LinTrafo, то почему бы и не попробовать, пусть это и не стандартное решение задачи.
Да и ПИД для такой системы избыточен, достаточно стандартного П-регулятора, ну или максимум ПИ.

Валенок
25.08.2016, 21:52
А ТС и пытается через LIN_TRAFO делать выходной сигнал пропорциональным входной темп-ре. Ничего не напоминает ?

Валенок
25.08.2016, 21:56
.. для разных уставок должны быть разные коэф-ты ПИДа, т.к. при изменении уставки меняется динамика всей системы
Можно поправлю ?
"для разных уставок должны быть разные коэф-ты ПИДа, если при изменении уставки меняется динамика всей системы"