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, и создайте одно и то же имя пользователя и учетную запись на удаленном компьютере (это необходимо для установления доверия между двумя компьютерами).

Другие вопросы по тегам