This is topic Управление дискретными выходами in forum Языки программирования в TRACE MODE 6 / Algorithm Programming Languages at Форум TRACE MODE: техническая поддержка.
Здравствуйте! Подскажите пожалуйста как в канале HEX32 привязанному к дискретным выходам управлять битами. Необходимо установить определенный бит в 1 и через 5 секунд сбросить в ноль.
Posted by Abram Shnider (Участник № / Member № 4534) on :
VVA80, Скорее всего Вам придется написать программу на ST или при помощи инструментария FBD диаграмм...
Posted by VVA80 (Участник № / Member № 5358) on :
Вот я и хочу пример такой программы. Я в своей создал два аргумента: входной привязанный к реальному значению канала и выходной привязанный к входному. Программа на FBD, использованы FBD-блоки установки и сброса бита, перед сбросом я делаю паузу при помощи блока "Задержки на включение". Но при вызове программы включение бита и соответственно его последующего выключения не происходит.
Posted by Abram Shnider (Участник № / Member № 4534) on :
Если я правильно Вас понял, то требуется управление отдельными битами... Следовательно, аргументы требуется создавать с привязкой к конкретным битам. Подозреваю также, что проще использовать Техно-ST, но это уже вопрос кому что удобнее...
Posted by Nico (Участник № / Member № 5342) on :
Если можно принебречь задержками передачи данных в контроллер то проще использовать канал CALL.BitsFromLong c параметром 8 или 9
Posted by VVA80 (Участник № / Member № 5358) on :
При использовании FBD-блоков установки и сброса бита привязка к конкретным битам не требуется.
Я хочу понять можно ли в теле одной программы включить бит в модуле дискретных выходов 8041 на контроллере WinPac 8841 и сбросить его спустя допустим 5 или 10 секунд. Или надо написать две программы и вызывать их по очереди?
Posted by Abram Shnider (Участник № / Member № 4534) on :
Можно. Дело в том, что программы в TM отрабатывают каждый цикл. Надо просто организовать проверку временного интервала. Например на ST: if (dT > 10) then bit = 0; end_if;
Posted by VVA80 (Участник № / Member № 5358) on :
Очень бы хотелось чтобы техподдержка сбросила на почту пример решения данной задачи. Если не сложно конечно. Заранее большое спасибо.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Не ясно что вызывает затруднение.
Реализовать задержку в ST можно, используя время получаемое из системной переменной @Set_date. В FBD задержку можно сформировать с помощью, например, тригера.
Можно вообще обойтись без программы и воспользоваться каналом CALL.BitsFromLong.