This is topic Горячее резервирование + ОРС сервер in forum Мониторы Реального Времени / Real Time Monitors at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/5/t/000037.html

Posted by Sergey_K (Участник № / Member № 136) on :
 
У нас имеется проект в котором обмен данными осуществляется через ОРС сервер. В проекте имеется основной и резервный узел. При запуске на двух компьютерах ОРС сервер загружается на компьютере с МРВ в режиме "Работа". Мы хотим осуществить горячее резервирование МРВ. Подскажите каким образом запустить ОРС сервер на компьютере в режиме "Резерв" при переводе его в режим "Работа". Необходимо ли использовать каналы подтип СИСТЕМНЫЙ, дополнение СЕТЬ, DDE и ВВОД, ВЫВОД , если да, то опишите, пожалуйста, подробно как это сделать.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Для управления функциями обмена по OPC в режиме SLAVE необходимо ввести СИСТЕМНЫЕ каналы ВВОД-ВЫВОД, которые осуществляют управление обменом с различными устройствами и контроль заблокированных функций узлов, находящихся в состоянии резерв.
Биты канала показывают отключение следующих функций (при типе канала INPUT):
· 4 – запрет чтения по каналам OPC;
· 5 – запрет записи по каналам OPC;
· 12 – запрет изменения значений по OPC и от графических консолей;
· 13 – запрет выдачи данных по OPC и графическим консолям;
Значения перечисленных битов определяют следующие состояния обмена:
· 0 – разрешить;
· 1 – запретить.

При переводе узла в состояние резерв данный канал принимает значение 0хffff. Это означает установку в 1 всех его битов и отключение всех перечисленных функций.

При необходимости изменить набор отключаемых функций надо использовать такой же канал, но установить для него тип OUTPUT, установить требуемое начальное значение и установить флаг "Отработать".
При необходимости значением этого канала можно менять набор исполняемых функций в реальном времени.
 
Posted by Sergey_K (Участник № / Member № 136) on :
 
Все равно не получается. Не могли бы Вы описать какую последовательность действий необходимо выполнить, чтобы загрузить ОРС сервер на резервном МРВ. Желательно, если возможно, выслать примерчик на адрес Ligor@newmail.ru.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Я отправил Вам пример.
 
Posted by Sergey_K (Участник № / Member № 136) on :
 
Обмен данными между основным и резервным МРВ осуществляется, за исключением канала Input. На резервном МРВ в канале типа Input в реальном значении ничего нет, в отличие от выходного, где выводитя требуемое значение. Возможно ли эти данные вывести в реальном значении?
Принудительно поменять значение канала IN_OUT_O с C0 на F0 или любое другое не удается. Также не понятно как запустить ОРС сервер на резервном МРВ.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Чтобы синхронизированное значение в атрибуте ВЫХОД попало в атрибут РЕАЛЬНОЕ, надо произвести ОТКЛЮЧЕНИЕ этого канала от источника (это указано в документации).
В том примере, который я Вам послал, значение канала ВВОД_ВЫВОД (out) МЕНЯЕТСЯ В РЕАЛЬНОМ ВРЕМЕНИ БЕЗ ПРОБЛЕМ. Я сам проверял это перед тем как отправить его Вам.
OPC-сервер вызывается МРВ независимо от собственного статуса. И подписка на обмен осуществляется тоже.
Только запись полученных от OPC-сервера значений в каналы МРВ осуществляется в соответствии со статусом.
 
Posted by Sergey_K (Участник № / Member № 136) on :
 
Проблема со значением в атрибуте РЕАЛЬНОЕ для канала типа Input (подтип ОРС, дополнение ОРС) осталась. OPC-сервер резервным МРВ вызвать не удается. Не могли бы Вы выслать маленький проектик для Double Force МРВ (Pro) с демонстрацией данных функций.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Уважаемый Сергей!
Для вызова OPC-сервера вторым узлом (независимо от того, является ли он МАСТЕРОМ или нет), нужно скопировать файл конфигурирования OPC-обмена с именем его базы.
По второму вопросу ("реальное значение") требуется некоторая работа по локализации проблемы.
Я постараюсь выслать Вам проект в понедельник.
 
Posted by Sergey_K (Участник № / Member № 136) on :
 
К сожалению мы не получили от вас проект в понедельник, который нам очень необходим. Если у Вас возникли какие-то затруднения, не могли бы Вы сообщить о них нам.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Я прошу прощения, у нас серьезные затруднения с почтой.
Я повторно отправил проект сегодня.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Уважаемый Sergey_K!
Я отправил Вам почтой рабочую версию сервера математической обработки, в котором восстановлена функция резервирования OPC-обмена.
 
Posted by SCB (Участник № / Member № 412) on :
 
При создании резервного узла его имя образуется из имени резервируемого узла, но при этом к нему добавляются символы (2) а не (1). Что я мог сделать неправильно? Может в каких-то файлах нужно что-то удалить, или это не принципиально? [Спокойствие / Cool]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Имя узла непринципиально. Но вот причиной создания резервного узла с именно такой модификацией имени может быть уже совершенная ранее подобная операция. Т.е., у Вас, возможно, уже есть резервный узел (но имеет измененное Вами имя). Если это так, то лишний узел надо убрать.
 
Posted by SCB (Участник № / Member № 412) on :
 
1. При запуске проекта с резервируемым узлом под Профайлером, на узле со статусом 2 и на узле со статусом 3 системный канал ВВОД-ВЫВОД имеет одинаковое значение - с0 ,хотя судя по документации ,на резервном узле он д.б. ffff ?
2. При завершении работы основного узла статус резерва должен меняться автоматически, или его нужно переключать каким-то образом самому ?
У нас он остается = 3. [Растерянность / Embarrassed]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. В связи с перспективным расширением некоторых функций резервирования изменен код, по умолчанию засылаемый в канал ВВОД_ВЫВОД в SLAVE - c0 вместо ffff.
2. Статус узла устанавливается автоматически только при его загрузке. Изменение статуса в процессе работы должно программироваться пользователем.
 
Posted by Sergey_K (Участник № / Member № 136) on :
 
Не могли бы Вы подсказать как поступать в данной ситуации? В проекте имеется основной и резервный узел. Основной узел запускаем первым - у него присваивается Status=2, резервному узлу после запуска присваивается Status=3. Обмен между МРВ осуществляется без проблем. При обрыве сети связь пропадает и не восстанавливается после восстановления сети. Status у обеих МРВ не изменяется(т.е. у основного =2, у резервного =3).
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Проверьте - восстанавливается ли обмен по сети после ее восстановления вообще, например доступ к удаленному ПК на файловом уровне.
 
Posted by Sergey_K (Участник № / Member № 136) on :
 
Обмен между компьютерами после восстановления сети восстанавливается через несколько секунд.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
На реальных проектах в промышленной эксплуатации связь восстанавливается успешно. Искать надо на уровне сетевой ОС, физической сетевой среды, работы адаптеров и протоколов. Возможно, какие-либо настройки или аппаратные средства затягивают процесс восстановления.
Мы попробуем тоже поискать по документации. Если найдем возможные рекомендации, сообщим.
 
Posted by Sergey_K (Участник № / Member № 136) on :
 
Не могли бы Вы выслать проверенный проект, где восстанавливается связь между узлами после восстановления сети.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Никаких особенностей в проектах нет.
Тот проект с резервированными узлами с обменом с OPC-серверами, который я Вам посылал, вполне обеспечивает восстановление обмена между МРВ после восстановления потеряной связи.
 
Posted by Sergey_K (Участник № / Member № 136) on :
 
В проект, что Вы выслали ранее мы добавили несколько каналов:
- подтип Диагностика дополнение Сеть;
- подтип Диагностика дополнение Код сети;
- подтип Диагностика дополнение NCB(прием);
- подтип Диагностика дополнение NCB(отсылка);
Когда связь между основным и резервным МРВ установлена (судим по каналу: подтип Диагностика дополнение Дубль)во всех добавленных нами каналах значение - 0. При обрыве сети в этих каналах устанавливаются следущие значения:
- подтип Диагностика дополнение Сеть - 4;
- подтип Диагностика дополнение Код сети - 35;
- подтип Диагностика дополнение NCB(прием) - 3;
- подтип Диагностика дополнение NCB(отсылка) - 0;
При восстановлении сети в этих каналах устанавливаются следующие значения и связи между узлами попрежнему нет:
- подтип Диагностика дополнение Сеть - 4;
- подтип Диагностика дополнение Код сети - 19;
- подтип Диагностика дополнение NCB(прием) - 1;
- подтип Диагностика дополнение NCB(отсылка) - 0;
Не могли бы Вы подсказать рекомендуемые настройки сети, в том числе протокола TCP/IP.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Канал КОД_СЕТИ выдает код ошибки, возвращенный сетевой ОС для протокола NetBIOS. У Вас он, видимо, в 10-м виде. Из MSDN мы выписали расшифровку:
This error is typically due to configuration problem, rather than a line problem. The following list summarizes all the Code=x extended error codes currently reported:

#define NRC_GOODRET 0x00 Good return - also returned when
ASYNCH request accepted
#define NRC_BUFLEN 0x01 Illegal buffer length
#define NRC_ILLCMD 0x03 Illegal command
#define NRC_CMDTMO 0x05 Command timed out
#define NRC_INCOMP 0x06 Message incomplete, issue another
command
#define NRC_BADDR 0x07 Illegal buffer address
#define NRC_SNUMOUT 0x08 Session number out of range
#define NRC_NORES 0x09 No resource available
#define NRC_SCLOSED 0x0a Session closed
#define NRC_CMDCAN 0x0b Command canceled
#define NRC_DUPNAME 0x0d Duplicate name
#define NRC_NAMTFUL 0x0e Name table full
#define NRC_ACTSES 0x0f No deletions, name has active
sessions
#define NRC_LOCTFUL 0x11 Local session table full
#define NRC_REMTFUL 0x12 Remote session table full
#define NRC_ILLNN 0x13 Illegal name number
#define NRC_NOCALL 0x14 No callname
#define NRC_NOWILD 0x15 Cannot put * in NCB_NAME
#define NRC_INUSE 0x16 Name in use on remote adapter
#define NRC_NAMERR 0x17 Name deleted
#define NRC_SABORT 0x18 Session ended abnormally
#define NRC_NAMCONF 0x19 Name conflict detected
#define NRC_IFBUSY 0x21 Interface busy, IRET before retrying
#define NRC_TOOMANY 0x22 Too many commands outstanding, retry
later
#define NRC_BRIDGE 0x23 ncb_lana_num field invalid
#define NRC_CANOCCR 0x24 Command completed while cancel
occurring
#define NRC_CANCEL 0x26 Command not valid to cancel
#define NRC_DUPENV 0x30 Name defined by anther local process
#define NRC_ENVNOTDEF 0x34 Environment undefined. RESET required
#define NRC_OSRESNOTAV 0x35 Required OS resources exhausted
#define NRC_MAXAPPS 0x36 Max number of applications exceeded
#define NRC_NOSAPS 0x37 No saps available for NetBIOS
#define NRC_NORESOURCES 0x38 Requested resources are not available
#define NRC_INVADDRESS 0x39 Invalid NCB address or length >
segment
#define NRC_INVDDID 0x3B Invalid NCB DDID
#define NRC_LOCKFAIL 0x3C Lock of user area failed
#define NRC_OPENERR 0x3f NetBIOS not loaded
#define NRC_SYSTEM 0x40 System error
#define NRC_PENDING 0xff Asynchronous command is not yet
finished

Ошибка 4 в канале Диагностика_Сеть означает "ошибку чтения".
Во всех диагностических каналах остается последний код ошибки. Даже при восстановлении коммуникации эти каналы надо сбрасывать в установленном порядке.
Никаких специальных сетевых настроек, кроме штатных (по умолчанию) при инсталляции ОС, мы не производим.
 
Posted by Сафронов (Участник № / Member № 408) on :
 
Возможно ли резервирование операторских станций с помощью Double Force МРВ, связанных с одним контроллером МФК фирмы Текон через ОРС сервер ? Тестирование с помощью профайлера, входящего в базовую версию дало отрицательный результат. Обе операторские станции считали себя ведущими (значение 2 в канале подтипа СИСТЕМНЫЙ с дополнением СТАТУС) и взаимодействовали с ОРС сервером.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Резервирование в Вашем случае возможно, только для проверки Вам обязательно необходим монитор Double Force МРВ. На Профайлере инструментальной системы проверить резервирование в штатном варианте нельзя.
Надо дополнительно программировать функции определения статуса "партнера", управления собственным статусом и процедурами обмена информацией.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2