VVA80
Junior Member / Новичок
Участник № / Member № 5358
отправлено / posted
Здравствуйте! Подскажите пожалуйста как в канале HEX32 привязанному к дискретным выходам управлять битами. Необходимо установить определенный бит в 1 и через 5 секунд сбросить в ноль.
Сообщения / Posts 5 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Abram Shnider
Active Forum Member / Активный участник форума
Участник № / Member № 4534
отправлено / posted
VVA80, Скорее всего Вам придется написать программу на ST или при помощи инструментария FBD диаграмм...
Сообщения / Posts 78 | Из / From: РФ
| IP / IP: IP адрес / IP address |
VVA80
Junior Member / Новичок
Участник № / Member № 5358
отправлено / posted
Вот я и хочу пример такой программы. Я в своей создал два аргумента: входной привязанный к реальному значению канала и выходной привязанный к входному. Программа на FBD, использованы FBD-блоки установки и сброса бита, перед сбросом я делаю паузу при помощи блока "Задержки на включение". Но при вызове программы включение бита и соответственно его последующего выключения не происходит.
Сообщения / Posts 5 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Abram Shnider
Active Forum Member / Активный участник форума
Участник № / Member № 4534
отправлено / posted
Если я правильно Вас понял, то требуется управление отдельными битами... Следовательно, аргументы требуется создавать с привязкой к конкретным битам. Подозреваю также, что проще использовать Техно-ST, но это уже вопрос кому что удобнее...
Сообщения / Posts 78 | Из / From: РФ
| IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
Если можно принебречь задержками передачи данных в контроллер то проще использовать канал CALL.BitsFromLong c параметром 8 или 9
Сообщения / Posts 873 | Из / From: Россия
| IP / IP: IP адрес / IP address |
VVA80
Junior Member / Новичок
Участник № / Member № 5358
отправлено / posted
При использовании FBD-блоков установки и сброса бита привязка к конкретным битам не требуется.
Я хочу понять можно ли в теле одной программы включить бит в модуле дискретных выходов 8041 на контроллере WinPac 8841 и сбросить его спустя допустим 5 или 10 секунд. Или надо написать две программы и вызывать их по очереди?
Сообщения / Posts 5 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Abram Shnider
Active Forum Member / Активный участник форума
Участник № / Member № 4534
отправлено / posted
Можно. Дело в том, что программы в TM отрабатывают каждый цикл. Надо просто организовать проверку временного интервала. Например на ST: if (dT > 10) then bit = 0; end_if;
Сообщения / Posts 78 | Из / From: РФ
| IP / IP: IP адрес / IP address |
VVA80
Junior Member / Новичок
Участник № / Member № 5358
отправлено / posted
Очень бы хотелось чтобы техподдержка сбросила на почту пример решения данной задачи. Если не сложно конечно. Заранее большое спасибо.
Сообщения / Posts 5 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Не ясно что вызывает затруднение.
Реализовать задержку в ST можно, используя время получаемое из системной переменной @Set_date. В FBD задержку можно сформировать с помощью, например, тригера.