Есть канал CALL типа Input c периодом 1 цикл Fast. Он вызывает программу в которой устанавливаются биты канала HEX16 типа Output c периодом 1 цикл Calc. Изменения значения канала HEX16 в программе не изменяют его никак, до тех пор пока период у обоих каналов не будет либо Fast либо Calc.
Вопрос:- так задумано или это глюк?
Trace Mode 6.07 + 6_07_Update_2
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Перепроверил в нескольких вариантах. Воспроизвести ситуацию не удалось. Присылайте Ваш тестовый проект на hotline@adastra.ru с Вашими комментариями.
Posted by PMA (Участник № / Member № 1387) on :
Проект подготовил и отослал !
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Проблема в том, что Вы работаете непосредственно с БИТАМИ канала OUT.
В реальном времени эта процедура предусматривает скрытые операции: сначала считывание РЕАЛЬНОГО значения канала, затем распаковка и изменение в программе определенных битов, затем запись результата во ВХОДНОЕ значение.
Если у Вас обработка канала и программа осуществляются в разных потоках (FAST и CALC), то за счет их асинхронности указанные операции с битами могут выполняться некорректно.
Надо заменить посылки значений в отдельные биты на посылки результирующего значения в атрибут ВХОД.