Форум 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 бесплатная Базовая версия / TRACE MODE 6 free Base version » Управляемый генератор

   
Автор / Author Тема / Topic: Управляемый генератор
lumen_xp
Junior Member / Новичок
Участник № / Member № 4034


Icon 1 отправлено / posted      Профиль для / Profile for lumen_xp           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте. В FBD имеется раздел генераторы. Как используя стандартные блоки можно сделать управляемый генератор? Т.е. известно время цикла CALC. Я так понял генератор меандра изменяет свое состояние раз в цикл. Есть подозрение что необходимо использовать управляющий вход, но вод что и как на него навесить?
Сообщения / Posts 9 | Из / From: Российская Федерация  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
lumen_xp
Junior Member / Новичок
Участник № / Member № 4034


Icon 1 отправлено / posted      Профиль для / Profile for lumen_xp           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Немного подумав, я пришел к выводу что в случае если время цикла 100 мс, то ряд доступных частот будет весьма ограничен. Например возможно использование максимальной частоты 5Гц (больше просто не пройдет из-за времени цикла), далее 1Гц, 0,1Гц и т.д. Т.е. доступны те частоты при которых результат выражения 5/n, где n - частота [Гц], есть целое число. Выражение справедливо для цикла 100 мс. Возможным решением представляется написание программы на STL с использованием счетчиков.
Сообщения / Posts 9 | Из / 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 
Управление генератором можно осуществлять программно либо через управление циклом пересчета канала, вызывающего этот генератор, либо внутри программы с генератором.
В любом случае получить генератор с временным интервалом изменения его значения, меньшим, чем цикл обработки базы каналов, нельзя.

Сообщения / Posts 17117 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
lumen_xp
Junior Member / Новичок
Участник № / Member № 4034


Icon 1 отправлено / posted      Профиль для / Profile for lumen_xp           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Не совсем понимаю как будет обсчитываться программа:
  • PROGRAM
    VAR_INPUT IN_F : REAL := 0.1; END_VAR
    VAR_OUTPUT OUT_F : BOOL; END_VAR

    VAR a: REAL; END_VAR
    VAR b: REAL; END_VAR
    a=5/in_f;
    while b!=a do
    b=b+1;
    end_while;
    out_f:=!(out_f);

    END_PROGRAM
Т.е. счетчик будет прибавлять значение переменной b c интевалом CALC (задан 0,1с)? Если нет, то как модифицировать программу что бы она изменяла значение out_f с частотой 0,1 Гц при времени цикла CALC 0,1c.
Сообщения / Posts 9 | Из / 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 
Оператор цикла

while b!=a do
b=b+1;
end_while;

реализует внутренний цикл в одном вызове программы.

Вот пример программы, которая при цикле вызова 0.1 сек. будет генерировать меандр с периодом 10 сек.

PROGRAM
VAR_INPUT cicle : UINT := 50; END_VAR
VAR_INOUT RESULT : BOOL; END_VAR
VAR_INOUT count : UINT; END_VAR

count = count + 1;
IF count == cicle
THEN RESULT = !RESULT; count = 0;
END_IF;

END_PROGRAM

Сообщения / Posts 17117 | Из / 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