This is topic Пошаговое выполнение in forum TRACE MODE 7 профессиональная версия / TRACE MODE 7 professional version at Форум TRACE MODE: техническая поддержка.


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

Posted by Viktor_M (Участник № / Member № 9669) on :
 
Здравствуйте. Такая задача- необходимо чтобы при нажатии на кнопку на ГЭ сначала значение записалось в один источник, затем через 30 сек. в другой. Программу для этого писать не хочется, но нашел канал CALL.AsyncCollection, по идее он для моей задачи как-раз и подходит. Однако не могу разобраться как задать время задержки, какое бы я значение не задавал в "step_tmout", каждый шаг выполняется с одним и тем же периодом (примерно 2 такта пересчета канала). Можете расписать настройки CALL.AsyncCollection для моей задачи?
Период пересчета 5 сек, вот какие настойки аргументов я задал:

| ID | Имя | Тип I/O | Тип данных | Значение по умолчанию |
|----|---------------------|---------|------------|------------------------|
| 0 | step_name | in | string | |
| 1 | step_tmout | in | udint(32) | 1000 |
| 2 | send_waitread | out | udint(32) | 1 |
| 3 | send_waitread | out | udint(32) | 2 |
| 4 | send_waitread | out | udint(32) | 3 |
| 5 | send_value | in | real | 5 |
| 6 | destination | out | real | |
| 7 | zzz | in | udint(32) | |
| 8 | step_name_1 | in | string | |
| 9 | step_tmout_1 | in | udint(32) | 30000 |
| 10 | send_waitread_1 | out | udint(32) | 1 |
| 11 | send_waitread_2 | out | udint(32) | 2 |
| 12 | send_waitread_3 | out | udint(32) | 3 |
| 13 | send_value_1 | in | real | 6 |
| 14 | destination_1 | out | real | |
| 15 | zzz_1 | in | udint(32) | |
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
Здравствуйте!

CALL.AsyncCollection
Данный канал предназначен для более сложных задач, включающих контроль выполнения, качество сигналов и наличие нескольких условий выполнения.

Описанную Вами задачу, так как в описании нет контроля выполнения, качества и условий (кроме времени) проще, как раз решать программой.

Аргумент "step_tmout" необходим для контроля выполнения по времени. Например, Вы задали 5 сек, то данный шаг должен быть выполнен в течении этих 5 сек. Можно раньше. Но если не успели за заданные 5 сек, то алгоритм будет остановлен.

Вам стоит обратить внимание на send_waitread с тип i/o = in. Программно контролируем время (например, как разницу между текущим временем и временем выполнения предыдущего шага) и подаем команду.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2