Pyro.errors.ProtocolError: сбой подключения
Я использую библиотеку OpenOPC для подключения к серверам OPC. Я могу успешно писать и читать с моего локального сервера Matrikon OPC, но когда я пытаюсь читать с другого компьютера (другого хоста), я получаю сообщение об ошибке Pyro.errors.ProtocolError: connection failed
Мой код для подключения здесь;
import OpenOPC
class OPC_tag_reader:
opc = OpenOPC.open_client('<remote host>')
#breaks here!!!!
def __init__(self):
print 'connecting to server'
self.opc.connect('Matrikon.OPC.Simulation.1', '<remote host')
Код не попадает в конструктор.
Спасибо!
1 ответ
OPC использует DCOM для связи, вам необходимо выполнить следующие шаги для решения этой проблемы.
Запустите утилиту настройки DCOM, выбрав в меню "Пуск" в меню "Пуск" пункт "Выполнить" и введите dcomcnfg.exe, нажмите "ОК". 2.Разверните службы компонентов, компьютеры и щелкните правой кнопкой мыши на MyComputer и выберите "Свойства".
Выберите вкладку "Свойства по умолчанию" и установите флажок "Включить распределенный COM на этом компьютере". Уровень проверки подлинности по умолчанию должен быть Connect, а уровень олицетворения по умолчанию должен быть Identify. ПРИМЕЧАНИЕ. Обеспечение дополнительной безопасности для отслеживания ссылок должно быть отключено.
Теперь выберите вкладку "Безопасность COM" и в разделе "Права доступа" нажмите кнопку "Изменить значения по умолчанию", нажмите кнопку "Добавить…" и добавьте имя пользователя (вновь созданное имя пользователя, точно такое же, как имя пользователя на сервере). После добавления нового пользователя выберите его и в поле ниже установите флажки, чтобы включить (разрешить) как локальный, так и удаленный доступ.
Для целей первоначального тестирования включите "Все" в список "Предоставить доступ".
На компьютере, где находится сервер, добавьте OpcEnum.exe в список исключений брандмауэра.
На брандмауэре клиентского компьютера разрешить входящий порт 135
Примечание. Для первоначального тестирования отключите брандмауэр как на сервере, так и на клиенте..:)
Запишите ID пользователя и пароль учетной записи Windows, под которой работает сервер opc, и создайте одно и то же имя пользователя и учетную запись на удаленном компьютере (это необходимо для установления доверия между двумя компьютерами).