DreamWeaver
Forum Haunter / Завсегдатай форума
Участник № / Member № 1485
отправлено / posted
В узле EmbeddedRTM есть программа, которая считывает реальное значение канала "INPUT". Если значение этого канала равно "1", то она предпринимает определенные действия и на выходе эта программы заносит во Входное значение канала "INPUT" значение 0. Из узла RTM каналом "OUPUT" заносится значение "1" в канал "INPUT". 1) Может ли получиться так, что программа начнет выполняться, приняв на входе от канала "INPUT" значение 0, во время выполнения программы из узла RTM придет от канала "OUPUT" значение 1, но по окончании выполнении программы, это значение сбросится в 0. То есть программа так и не узнает, что с узла RTM приходило значение 1. Как с эти бороться? Если в программе просто не присваивать переменной значение, то что произойдет: значение переменной в канал не запишется или же канал обнулиться?
Сообщения / Posts 150 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Такое невозможно, если и программа и каналы обрабатываются в одном цикле, потому как в рамках цикла пересчета обработка базы производится последовательно. Если пересчет отличается - тогда такая ситуация возможна. В любом случае - чтобы предотвратить это у приемника, который имеет несколько источников данных - все источники должны централизованно обрабатываться и в результате источником все равно должно служить одно значение. В данном случае - это может быть сама программа, которая контролирует значение канала Output.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |