This is topic Управление KLP in forum Языки программирования в TRACE MODE 6 / Algorithm Programming Languages at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/33/t/000030.html

Posted by Виктор_Б (Участник № / Member № 2035) on :
 
Здравствуйте.ТМ6.04. Запутался в трех соснах. Делаю шаблон программы для регулирующих клапанов использую KLP.Упрощенно хотел осуществить следующее: 1)Определяю рассогласования контролируемого параметра с заданием, затем подаю на блок управления по интервалу(большое рассогласование,среднее, малое - определяю приращение которое должен отработать клапан).
2) Затем полученный результат складываю с истиным положением клапана. Затем хочу зафиксировать результат, связываю с аргументом программы, желая, чтоб этот результат был входом CMD KLP, KLP при этом в режиме отслеживания. Клапан должен пойти на отработку - при этом на CMD KLP значение хотелось иметь постоянным пока клапан отработает. затем все повторяется снова, до тех пор пока рассоглассование войдет в заданные пределы. Но..!!! Как зафиксировать результат, который хочу подать на CMD KLP? Или как изменять, аргумент программы связанный с одним из выходов программы, когда хочешь, или в зависимости от времени. А то получается у меня следующее: значение CMD KLP постоянно меняется на каждом такте захода на программу не отработав еще первое задание. Просто хотелось: сделать 1 шаг, система успокоилась, проанализировали-рассогласования, сделали следующий. Или я что то не туда?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вы можете задать тип канала вызова программы как Output. И при каждом изменении входного значения этого канала будет отрабатываться один цикл программы.
 
Posted by Виктор_Б (Участник № / Member № 2035) on :
 
Спасибо. Еще вопрос. 23-11-2005 DreamWeaver (Россия) Задавал вопрос про KLP – поведение клапана когда он отработал отслеживание : …. и тут начинается лихорадочная смена режимов: закрывается, открывается, остановка при открытии. Эти значения в статусе клапана меняются раз 6 в секунду. И при этом, выходы OPN и CLS также постоянно меняют свое значение. Получается, что клапан за секунду должен 3 раза пойти на открытие и столько же на закрытие. У нас используеются безконтактные пускатели, но думаю и они не выдержат такой нагрузки……
Пояснение этой ситуации так и не было. Так как все же ведет себя клапан KLP, когда значение на CDI и CMD совпадают ( в режиме отслеживания)? Ведь входного сигнала зоны не чувствительности на KLP нет.
 
Posted by Виктор_Б (Участник № / Member № 2035) on :
 
Возвращаюсь к первому вопросу, для прояснение для себя ситуации. Если задать тип канала вызова программы как Output,а любое изменение входных значений этого канала( у меня их несколько,основные: контролируемый параметр, обратная связь по положению клапана, режим работы, задание и т.д) приведет к отработке цикла программы. За это время изменяться(должны измениться)входные величины: контролируемый параметр и обратная связь по положению, в результате этого канал снова начнет отрабатываться. Так ли я это понимаю? Второе если в начале, допустим я изменил задание -> канал начал отрабатываться - выдал импульс на закрытие или открытия, но клапан по обратной связи по положению не отреагировал и не изменилась контролируемая величина(например люфт клапана)- то вход на отработку канала больше не будет?
Вопрос, как правильно понимать цикл программы:
1) Программа выполняется полностью зафиксиров входные значения, а потом выполнив их анализирует входные и принимается решение заходить в нее или нет?
2) программа постоянно выполняется анализируя входные значения - положение входного клапана, фиксируя входные сигналы при входе?
3) Или еще как то?
Открытие клапана бывает до 7 секунд, как KLP следит за положением, если ему задали движения в режиме позиционирования и он начал движения на открытие или закрытие(OPN=1 или CLS=1), а период пересчета канала будет например 2-3 секунды?
 
Posted by Виктор_Б (Участник № / Member № 2035) on :
 
ТМ-6.04 Вопрос : Про установленные в 1 биты входа CSC блока KLP:
1) 2 бит – блокирование контроля положения клапана – что имеется ввиду: блокирование вычисленного положения клапана или реального? Или обоих сразу? Работает ли режим отслеживания ( 12 бит=1) при 2 бит=1 ?
2) 7 бит – перевод в режим дистанционного управления. В этом режиме состояние клапана отслеживается по концевым выключателям, аварийные ситуации не контролируются; - При 7 бит=1, 12 бит=1 – Работает ли режим отслеживания?
3) 12 бит - если бит 12 равен 1, клапан переходит в положение, заданное неотрицательным значением CMD (режим отслеживания). Скорость перехода определяется PT – ЧТО ЗА СКОРОСТЬ ?и как ее задавать, в других режимах туда подавалось реальное время открытия и закрытия, для контроля: аварийных ситуаций закрытия/открытия, вычисления процента открытия/закрытия?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Блокирование контроля какого-либо конечника или положения клапана означает, что этот сигнал не контролируется при определении состояния клапана и аварийных ситуаций.
Бит 2 отключает только контроль сигнала CDI.
2. В режиме дистанционного управления (бит 7 = 1)предполагается, что управление клапаном осуществляется не от этого FB, а откуда-то извне.
Блок только осуществляет контроль положения клапана по конечникам.
Режим отслеживания не работает.
3. Вход PT используется для задания времени открытия/закрытия клапана (в секундах). В режиме слежения моделируется движение клапана, исходя из этого параметра. Если время полного хода равно, например, 30 секунд, то за каждую секунду будет изменяться положение клапана (выход Q%L) на 3.3%.
При этом реальное положение клапана (вход CDI) учитываться не будет. Отключение команд управления на выходе блока будет осуществляться по значению моделирующего выхода Q%L.
Если задано некоторое значение на входе CMD, а квант пересчета и, соответственно, моделирования хода клапана таков, что на очередном вызове программы значение модели отличается от задания меньше чем на квант, то может сформироваться режим постоянного включения/выключения привода клапана. Это следствие нерационального выбора алгоритма управления клапаном. Реализуемый KLP алгоритм слежения является достаточно грубым и для точных процедур может оказаться не пригодным. Надо ставить нормальный регулятор.
Мне кажется, что значительная часть проблем с регламентом пересчета и динамическими характеристиками полученных результатов вызвана попыткой создания достаточно качественного регулятора с помощью банального дискретного управления.
Конкретную реализацию задачи мы готовы обсудить в рабочем порядке по адресу технической поддержки.
5. По поводу отработки программ, вызываемых каналами.
Если программа вызывается каналом INPUT, то пересчет программы будет осуществляться на каждом такте пересчета канала (если он включен).
Если программа вызывается каналом OUT, то пересчет программы будет осуществляться при каждом изменении его атрибута ВХОД (с учетом цикла его обработки и состояния канала (ВКЛЮЧЕН/ВЫКЛЮЧЕН)).
Постоянство или изменение аргументов программы при определении момента пересчета НЕ УЧИТЫВАЮТСЯ.
 
Posted by Виктор_Б (Участник № / Member № 2035) on :
 
Спасибо. Еще поработаю над клапаном, но имею то что имею - Регулирующий клапан управляющий дискретными сигналами. ТМ-6.04. Вопрос. Два дня бьюсь над такой ситуацией - Сделал шаблон программы определяющий состояния концевиков:открыто, закрыто, промежуточное состояние и два концевика нажаты(KLP не трогал)- затем в узле сделал каналы CALL - вызов программы для каждого Клапана - их у меня где то 42. Соответственно 2 входных сигнала через аргументы программы привязал к битам открыто/закрыто реального входного канала(I-87053), выход программы (Должен выдавать 20,40,60,80 и выдает для первых - где то 20 клапанов)через аргумент привязываю к аргументу основного экрана - где потом соответствующую часть клапана окрашиваю в 4 цвета.Программа сделана так: 2 входных сигнала(открыто/закрыто) подаю на млад. разряды упаковка байта, на остальных нули - выход на NUM мультиплексора, на входах IN_k соответственно: 20, 40, 60, 80, 0,0,0. В результате имею, что часть клапанов работает, остальная часть нет. Одна эта же программа - отличие только по привязки аргументов - ошибки по привязки исключены - беру на не работающем вызове программы промежуточный результат(выход с блока упаковки байта)- вижу, с выхода мультиплексора не вижу. Причем - неработают вызовы программы с большим ID. Не понимаю что это - ПОЖАЛУЙСТА ПОДСКАЖИТЕ. У меня будет не раз в данной программе мини-завода, когда я по одному шаблону буду вызывать множество программ.
ЧТО ЭТО? ЧТО НЕ ТАК ДЕЛАЮ? ГДЕ СМОТРЕТЬ?
 
Posted by Виктор_Б (Участник № / Member № 2035) on :
 
Снимаю последний вопрос. Разобрался. Была ошибка в типе данных. Выход с программы Int, а прием на экран в аргумент Real. Это влияло не только на ситуацию, указанную в последнем вопросе, но и каким то образом, выражалась в ситуации, когда некоторые датчики на экране показывали значение (40,60) не своих каналов, изредко показывая значение своего канала - как будто атрибуты этих каналов : (1,A), (2,In) становились независимыми переменными, хотя программы, в которых была ошибка, по типам данных, не относились к этим каналам и влияло на 3-4 канала из 120 . Разобравшись с этим, я попутно убрал еще один эффект. На экране я окрашиваю некоторые фигуры в 2 цвета, а на некоторых меняю надпись в зависимости от установленного бита в каком то принятом канале с физического устройства(I-87053,I-7060,I-7041), когда делал так: аргумент экрана = Bool - привязка к биту входного канала, то получал, что при отображение на экране, не которые графические элементы кратковременно меняли цвет, хотя входное значение сигнала не изменялось. Когда аргумент экрана сделал =UINT и привязал к реальному значению канала, а ситуацию установки бита стал разпознавать с помощью логического умножения в свойствах самого элемента - то отображение стало как положено.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2