Интерфейс .NET с Siemens PLC S7 200 - PullRequest
4 голосов
/ 25 июля 2011

Я пытаюсь связать .NET (C # или VB не имеет значения) с Siemens PLC S7 200. Однако я не могу установить соединение.Я работаю на 64-битной машине с Win7, но не могу заставить ее работать на 32-битной.Я получил два файла:

Interop.OPCSiemensDAAutomation.dll Siemens_s7-200.dll

Из другого проекта, который я пытаюсь перенести на более новую систему.Тем не менее, я все время получаю исключение com.

Retrieving the COM class factory for component with CLSID {01704EBD-44B5-11D3-9C09-00105A3DD3AC} failed due to the following error: 80040154.

Я уже пробовал libnodave и, похоже, это тоже не работает.Может ли кто-нибудь предоставить мне несколько указателей (пожалуйста, не говорите о юморе по XKCD), где искать?

Я не смог установить Siemens PC-Access для установки на эту машину, позже попробую установить WinXP 32bit.Я что-то читал о том, что мне нужен OPC-сервер или что-то на компьютере?

Пожалуйста, потерпите меня, впервые взаимодействуя с ПЛК: /

Ответы [ 3 ]

4 голосов
/ 25 июля 2011

Исключение COM является довольно общей ошибкой, которая указывает на то, что сама библиотека COM или одна из ее зависимостей не может быть загружена. Вот некоторые вещи, которые я бы проверил:

  • Зарегистрирована ли на компьютере библиотека COM? Вы можете использовать regsvr32 для регистрации COM-библиотеки.
  • Требует ли библиотека COM других зависимостей, которые могут отсутствовать на компьютере? Вы можете использовать dumpbin / зависимые , чтобы понять это.
  • Должно ли программное обеспечение Siemens PC-Access быть установлено на машине? Вы сказали, что не можете заставить его установить, что, вероятно, объясняет, почему не удалось загрузить библиотеку COM.

К сожалению, это обо всей помощи, которую я могу оказать в решении вашей конкретной проблемы. Тем не менее, я могу отметить, что вы можете использовать следующие продукты, которые работают как OPC-серверы и имеют драйверы, совместимые с Siemens S7. Это может быть альтернативой использованию сервера Siemens OPC.

Я использовал оба продукта в прошлом, и я почти уверен, что использовал один из них (я не могу вспомнить, какой именно), чтобы поговорить с Siemens S7.

Также здесь - действительно хороший веб-сайт с информацией об использовании OPC в .NET.

2 голосов
/ 26 июля 2011

Попробуйте еще раз.Я успешно использовал libnodave с S7 200, 300 и даже 400 и 400H (избыточные).У меня нет опыта работы с C #, но он работает круглосуточно (в сталеплавильном цехе и доменной печи) в моих демонах linux C, а также в приложениях Delphi и Lazarus для Windows.Если вы не можете это сделать, то приготовьтесь потратить $$$$ на OPC-сервер для S7 200 (Kepware, Matrikon ...) и на клиентскую библиотеку OPC в C #.

2 голосов
/ 25 июля 2011

Я изучал подобные вещи раньше.Если вы попытаетесь получить доступ к контроллеру напрямую, вы можете столкнуться со всеми видами проприетарных проблем.Компании-разработчики программного обеспечения, как правило, очень жестко контролируют свои протоколы.Если вам нужны только данные, тогда, вероятно, лучше всего использовать OPC.Однако из того, что я нашел, это тоже не бесплатно.OPC Foundation ( opcfoundation.org ) имеет .NET API, который доступен по цене в диапазоне от 1 до 2 000 долларов, я считаю.

...