Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » Языки программирования в TRACE MODE 6 / Algorithm Programming Languages » ПДД регулятор

   
Автор / Author Тема / Topic: ПДД регулятор
Avgorr
Forum Professor / Завсегдатай форума
Участник № / Member № 2607


Icon 1 отправлено / posted      Профиль для / Profile for Avgorr           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Подскажите пожалуйста, никак не получается синхронизировать работу в ST программе функции PDD с функцией IREG так, чтобы PDD можно было вызывать с периодом который можно изменять в реальном времени, пускай для примера 35 секунд. А IREG вызывается для отработки команды "открыть" "закрыть" согласно расчитанной величине в каждом цикле программы равным времени пересчёта узла, если делать Tmax равно периоду вызова функции PDD, то через 5 - 8 вызовов происходит рассинхронизация и получается у PDD свой период, а у IREG свой. Вот кусок этой программы:
if F_time == 1 then
PDD_ (Zad,Izm,Zona,Kp,Kd,Kdd,Out);
F_time := 0;
Sek ();
T_mem := SekG;
T_mem := T_mem + Period;
if T_mem >= 60 then
T_mem := T_mem - 60;
end_if;
else Sek ();
T_cur := SekG;
if T_cur == T_mem then
F_time := 1;
end_if;
end_if;
Imp (Out,Period,Tmin,Up,Dn);
,где Sek ()-возвращает текущую секунду (SekG);
PDD_- функция PDD;
Imp- функция IREG (Mode и Gap не использую).
Контроллер WinCon8000.

Сообщения / Posts 168 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Мне кажется, в вызове
Imp (Out,Period,Tmin,Up,Dn);
перепутаны входы Tmin и Tmax блока IREG.
В то же время Tmax нельзя задавать произвольно. Это время должно соответствовать реальному времени хода исполнительного механизма.
В целом мне задача не понятна. Если период вызова регулятора равен времени хода исполнительного механизма, то регулятор будет работать плохо.
Готов обсудить задачу при более ясном изложении исходной позиции. Но т.к. эта весьма частный вопрос, предлагаю перенести его в режим рабочего контакта по e-mail (на известный Вам адрес техподдержки).
Что же касается "рассинхронизации", то одной из причин может являться чрезмерная строгость условия "T_cur == T_mem". Я бы поставил "T_cur >= T_mem".

Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2