2014-09-29 15 views
0

Я использую библиотеку OpenOPC для подключения к OPC-серверам. Я могу успешно писать и читать с моего локального сервера OPC-сервера Matrikon, но когда я пытаюсь читать и читать с другого компьютера (другого хоста), то получаю ошибку Pyro.errors.ProtocolError: connection failedPyro.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') 

Код не доходит до конструктора.

Спасибо!

+0

Установили ли вы настройки dcom и брандмауэра? Подключение к opc требует, чтобы вы включили параметры Dcom как на клиентском, так и на серверном компьютере –

+0

Нет, не сделали этого, не могли бы вы обобщить, какие настройки изменить? –

ответ

0

OPC использует DCOM для связи, вам необходимо выполнить следующие шаги для решения этой проблемы.

Запустите утилиту настройки DCOM, выбрав «Выполнить» в меню «Пуск» Windows и введите dcomcnfg.exe, нажмите «ОК». 2. Разверните компонентные службы, компьютеры и щелкните правой кнопкой мыши на MyComputer и выберите Свойства

Выберите вкладку Свойства по умолчанию и установите флажок «Включить распределенный COM на этом компьютере». Уровень аутентификации по умолчанию должен быть Connect, а уровень олицетворения по умолчанию - Identify. ПРИМЕЧАНИЕ. Обеспечить дополнительную безопасность для отслеживания ссылок следует отключить.

Теперь выберите вкладку «Безопасность COM» и в разделе «Разрешения доступа» нажмите кнопку «Редактировать настройки по умолчанию», нажмите кнопку «Добавить ...» и добавьте имя пользователя (только что созданное имя пользователя, точно такое же, как имя пользователя на сервер). После добавления нового пользователя выберите его и в поле ниже установите флажки для включения (Разрешить) как локального доступа, так и удаленного доступа.

Для первоначальных целей тестирования включают всех в список доступа к гранту.

На машине, где сервер является добавление OpcEnum.exe в список исключений брандмауэра

О пожарной стене клиентской машины позволяет порт 135 входящего coneciton

Примечания: Для начального тестирования отключить брандмауэр на оба сервером и клиентом. :)

Запишите идентификатор пользователя и пароль учетной записи пользователя Windows, под которой работает OPC-сервер, и создайте одно и то же имя пользователя и учетную запись на удаленном компьютере (для установления доверия между два компьютера)

+1

Он использует 'OpenOPC', чтобы полностью избежать DCOM. Этот ответ не имеет значения. – ESala