PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387
отправлено / posted
Добрый день !
Есть канал CALL типа Input c периодом 1 цикл Fast. Он вызывает программу в которой устанавливаются биты канала HEX16 типа Output c периодом 1 цикл Calc. Изменения значения канала HEX16 в программе не изменяют его никак, до тех пор пока период у обоих каналов не будет либо Fast либо Calc.
отправлено / posted
Перепроверил в нескольких вариантах. Воспроизвести ситуацию не удалось. Присылайте Ваш тестовый проект на hotline@adastra.ru с Вашими комментариями.
Сообщения / Posts 17314 | Из / From: Россия
| IP / IP: IP адрес / IP address |
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387
отправлено / posted
Проблема в том, что Вы работаете непосредственно с БИТАМИ канала OUT.
В реальном времени эта процедура предусматривает скрытые операции: сначала считывание РЕАЛЬНОГО значения канала, затем распаковка и изменение в программе определенных битов, затем запись результата во ВХОДНОЕ значение.
Если у Вас обработка канала и программа осуществляются в разных потоках (FAST и CALC), то за счет их асинхронности указанные операции с битами могут выполняться некорректно.
Надо заменить посылки значений в отдельные биты на посылки результирующего значения в атрибут ВХОД.
Сообщения / Posts 17314 | Из / From: Россия
| IP / IP: IP адрес / IP address |