Имею канал подтипа DCS/AI8, разрыв связи с модулем и соответственно аппаратную недостоверность. 1) Устанавливаю атрибут "Подключение" в 1, изменяю значение "Выхода", но значение "Реальное" не меняется.
2) Кроме того, имею программу OPC-клиент, которая в режиме Advise получает из этого канала атрибуты "Реальное" и "Состояние" и в режиме SynchroWrite может изменять атрибуты "Выход" и "Состояние". При наличии в канале аппаратной недостоверности обмен данными в обоих указанных направлениях прекращается.
Почему?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1) А почему Реальное должно меняться по Выходу?
2) Воспроизвести не удалось - при аппаратной недостоверности ОРС ичтение и запись проходит нормально (тестировал с использованием ОРС-клиента KEPware).
Posted by Kramarenko Stanislav (Участник № / Member № 119) on :
1) Потому, что так написано в Вашей документации! (Работа в реальном времени/ Резервирование/ Настройка каналов) Потому, что я уже два года пользуюсь этим для синхронизации данных на дублированных МРВ! Потому, что на каналах без аппаратной недостоверности это работает! Получается теперь, если один МРВ не может обмениваться с устройством, то резервный ему ничем не поможет - данные синхронизированы не будут!
2) Будем искать нашу ошибку :-(
Posted by Kramarenko Stanislav (Участник № / Member № 119) on :
А вообще, я считаю, что при отключении канала от источника данных аппаратная недостоверность должна сбрасываться, т.к. исчезают предпосылки к её возникновению, а при подключении к источнику данных драйвер должен пытаться обратиться к устройству и при неудаче снова выставлять недостоверность. Кроме этого, аппаратная недостоверность каналов, входящих в группу (при групповом запросе) должна повторять аппаратную недостоверность канала, ведущего обмен данными.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Так бы сразу и сказали, что у Вас DF МРВ - это только он так умеет, обычный МРВ такого не поддерживает... Ситуация требует проверки - берем таймаут на испытания.
Posted by Kramarenko Stanislav (Участник № / Member № 119) on :
Вы зря так плохо думаете про обычный МРВ - на нем все работает точно также. У меня на одной паре компов DF стоит, а на другой простые МРВ и синхронизируются (правда рассылки долго приходится настраивать)!
Кстати, если в проекте сделать "Узел/Создать резерв" и потом запустить этот Резерв под обычным МРВ, то он на старте тоже находит партнера по резерву и встанет в TRACE!
Posted by Kramarenko Stanislav (Участник № / Member № 119) on :
Ну я, в общем-то, нашел выход. Я просто создам еще по одному каналу на каждую группу, который будет копировать значение со входа канала, ведущего обмен и буду его синхронизировать и использовать во всех расчетах - ведь в нем недостоверности не будет!
Posted by Kramarenko Stanislav (Участник № / Member № 119) on :
Как там с ситуацией №1 ???
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Все работает. Скорее всего у Вас по этому каналу была выставлена Недостоверность, а при этом Реальный атрибут не обрабатывается, поэтому и не копируется Выход в Реальное. Попробуйте не DCS канал, а например - генератор пилы. Либо модуль DCS подключите, чтобы обмен был с ним, или объект в РКБ отлкючите, чтобы с самого начала у этих каналов было выставлено Подключение и недостоверность не успела появиться, если модуля нет.