This is topic Пошаговое выполнение in forum TRACE MODE 7 профессиональная версия / TRACE MODE 7 professional version at Форум TRACE MODE: техническая поддержка.
Здравствуйте. Такая задача- необходимо чтобы при нажатии на кнопку на ГЭ сначала значение записалось в один источник, затем через 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. Программно контролируем время (например, как разницу между текущим временем и временем выполнения предыдущего шага) и подаем команду.