Лучшая альтернатива для OPC-UA в непромышленных условиях? - PullRequest
0 голосов
/ 20 декабря 2018

Я управляю довольно широко распространенным программным приложением в полупромышленной среде.Основное программное обеспечение основано на SOA и использует OPC-UA для обеспечения связи между важными процессами (на локальных или локальных компьютерах).Этими процессами являются либо сервер (например, сервер управления внешней сетью, сервер управления оборудованием и т. Д.), Либо клиент (панель клиента), либо оба (серверы общаются друг с другом).У OPC-UA есть следующие проблемы:

  • Настройка и обслуживание конфигураций - сложная задача (просто настройка файла конфигурации занимает много времени)
  • Меры безопасностислишком подробны для моих нужд (управление сертификатами и внезапная аннулирование сертификатов в системах клиентов)
  • Из-за накладных расходов на моделирование и сетевое взаимодействие в библиотеке затрудняется работа в моих коммуникациях (высокая скорость передачи данных обычно заканчивается на сервере иотключение клиента)
  • Неуказанные и странные ошибки, такие как UA Discovery Server, прекращение работы или ответ, и т. д., о которых я неоднократно сообщал на форуме OPC GitHub.
  • Устранение неполадок во внутренних частях OPC UAпочти невозможно.

В целом, для меня его производительность и стабильность недостаточно надежны.Я готов пожертвовать функциями для повышения производительности и надежности.Я даже подумывал написать сокеты снизу вверх для своих межпроцессных (IPC) потребностей.Таким образом, я мог бы по крайней мере отследить ошибки в их ядре.Поскольку мне не нужна его самая рекламируемая функция (поддержка PLC), я отчаянно пытаюсь найти для нее хорошую альтернативу.Моими основными требованиями являются:

  1. Поддержка OPC-UA, подобная моделированию данных, которая позволяет мне предоставлять чистый интерфейс для клиентов и других команд (что-то вроде IDL).
  2. Публикация / подписка, удаленные команды, уведомления об обновлениях и поведение на основе узлов.
  3. Жесткая защита меня не беспокоит, так как моя сеть закрыта.
  4. Высокая производительность для скоростей передачи данных до 1 Гбит / с (этоможет означать поддержку UDP).
  5. Я полностью работаю в .NET Framework.Поэтому поддержка OPC-UA на C # мне очень помогает.

Я смотрел на DDS (без команд и уведомлений об обновлениях), WCF (без межплатформенной поддержки) и многие другие.Эта ссылка также отмечает о MQTT: Альтернатива OPC-UA

1 Ответ

0 голосов
/ 20 декабря 2018

А как насчет gRPC + protobufs от Google?

https://grpc.io/

...