Вы отвечали мне по поводу перезапуска OPC сервера: "Реинициализировать обмен с OPC-сервером, включая его перезапуск, можно с помощью диагностической переменной @e_OPC." К сожалению в HELPе про эту переменную написано очень мало. Не могли бы Вы привести пример как это можно сделать.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Создаете переменную @e_OPC, делаете ее типа Output. Методом drag&drop переносите в нужный узел, создается канал. Посылая в него значение до 255, Вы производите переинициализацию всех связей с OPC-серверами, которые определились на старте. Если посылать значение более 255, то переинициализируются даже те сервера, которые не были найдены на старте.
Posted by Y_Vlad (Участник № / Member № 1361) on :
Спасибо за ответ. А как я могу определить, что OPC сервер прекратил опрос приборов?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Если у Вас стоит синхронный режим, то при неполучении данных каналу выставится призник недостоверности.
Posted by Y_Vlad (Участник № / Member № 1361) on :
Но ведь Вы сами рекомендуете ставить режим Advise, а при этом недостоверность не появляется.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
При этом мы рекомендуем, хотя бы один канал оставлять в синхронном режиме как средство "диагностики".
Posted by Y_Vlad (Участник № / Member № 1361) on :
Как я понимаю, алгоритм программы диагностики должен быть таким: 1. Анализируем появление признака недостоверности в контрольных каналах 2. Посылаем в канал диагностики OPC число до 255 3. Если признак недостоверности исчез - посылаем в канал 0 В связи с этим вопрос:как долго переинициализируется OPC сервер? И как долго в канале должно висеть число 255, если период опроса каналов у меня около 9 сек.?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Это зависит от некоторых параметров. Особенно, если происходит сетевой обмен. Может достигать 20-30 сек. Если нет сетевого обмена, то должно происходить достаточно быстро.
По идее, после реинициализации OPC-серверов канал, связанный с системной переменной, автоматически должен сбрасываться в 0.