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

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

   
Автор / Author Тема / Topic: Заморозить значение на выходе...
Styxx
Forum Member / Участник форума
Участник № / Member № 74


Icon 11 отправлено / posted      Профиль для / Profile for Styxx           Редактировать/удалить сообщение / Edit/Delete Post 
Каким образом создать следующий елемент: [Недоумение / Confused]

Два входа
1й - 1 или 0 управляет пересылкой значений с 2го(вход)
на 3й (выход) при 0 - запомнить последнее значение на выходе
и удерживать его на момент поступления нуля не смотря на то
что на 1м входе.

2й - даные с этого канала пересылаются
на выход при наличии "1" на 1ом.

3й - выход один - результат 1го и 2го...

При этом использовать каналы для времменых работ нельзя

P.S. у нас уже 1023 канала!!

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



Icon 1 отправлено / posted            Редактировать/удалить сообщение / Edit/Delete Post 
Данная задача довольно легко реализуется на языке TechnoIL.
Уточните пожалуйста фразу("При этом использовать каналы для времменых работ нельзя").

IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 2 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post 
Также данная задача может быть решена с помощью одной FBD-программы и одного канала (канал может быть даже уже существующим - можно использовать его границы).
Сообщения / Posts 15204 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
_SaM_
Forum Member / Участник форума
Участник № / Member № 122


Icon 1 отправлено / posted      Профиль для / Profile for _SaM_           Редактировать/удалить сообщение / Edit/Delete Post 
Можно написать вот такой вот простенький блочок:
#DEFINE I0 KEY
#DEFINE I1 VALUE
#DEFINE I2 TIN
#DEFINE Q0 OUT

IF KEY == 1
THEN
OUT = VALUE
ELSE
OUT = TIN
TOUT = TIN
END_IF
Выход замыкаем на третий вход и всё: при 1 на входе KEY вход VALUE копируется на выход, при 0 на входе KEY выход замораживается.
В принципе, здесь можно было бы использовать переменную типа E, но вроде эти переменные не поддерживаются в МикроМРВ

Сообщения / Posts 40 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post 
В последнем предложении задача практически решена.
Надо только слегка подкорректировать:

#DEFINE I0 KEY
#DEFINE I1 VALUE
#DEFINE Q0 OUT

IF KEY == 1
THEN
OUT = VALUE
END_IF

Ту же задачу легко решает FB MOVE. Если на его вход RUN подать инвертированное значение переменной KEY, на первый вход - переменную VALUE, то с первого выхода можно получить "замораживаемое" значение.

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

   Открыть тему / Open 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

Rambler's Top100 Rambler's Top100



Powered by Infopop Corporation
UBB.classic™ 6.7.2