Последовательный COM-порт на AWS - PullRequest
0 голосов
/ 01 марта 2019

Я думаю о создании экземпляров EC2, которые запускают промышленное программное обеспечение.Этот экземпляр EC2 должен иметь возможность получать данные от последовательного COM-порта.Можно ли связать подобные вещи с последовательным туннелированием или чем-то еще?

Schema

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Ответ на этот вопрос состоит из двух частей.

  1. Да, безусловно, это возможно в теории.

  2. ...но это может быть непрактичным или невозможным для конкретной цели / приложения / устройства, которое вы имеете в виду.

Терминальные серверы являются простой иллюстрацией принципа,Обратите внимание, что в этом смысле я имею в виду не «терминальный сервер» удаленного рабочего стола Windows, а общее устройство, обычно называемое терминальный сервер , которое в своей простейшей форме является физическим устройством, которое говоритпоследовательный протокол, такой как RS-232 с одной стороны и TCP с другой стороны.RS-232 является проводным протоколом «COM» -порта ПК.

Но компьютер, настроенный с соответствующими драйверами, может иметь «виртуальный» COM-порт, который отображается - для программного обеспечения на компьютере - какинтерфейс, похожий на физический COM-порт, но драйвер для этого COM-порта вместо предоставления программному обеспечению доступа к буквальному оборудованию фактически управляет TCP-соединением, туннелируя биты отправки и получения от COM-порта обратно к физическому портуна сервере терминалов.

Сервер терминалов может быть фактическим выделенным устройством сервера терминалов, может представлять собой полноразмерный ПК, микроконтроллер с сетевыми возможностями, Raspberry Pi с адаптером USB-to-Serial.... есть много потенциальных вариаций.

Проблемы для рассмотрения:

Многие старые промышленные программы кажутся очень плохо написанными.Во всяком случае, это мое впечатление.Реализаторы, возможно, работают на грани своей компетенции, сделав определенные допущения при проектировании, которые работают на физических COM-портах, но могут быть несовместимы с таким развертыванием.С меньшей вероятностью это может быть правдой, если системы более новые и работают на современной ОС, но когда-то в первые дни Windows и до этого это был настоящий беспорядок.

Ключи с лицензионным ключом, если они есть,может полагаться на особенности физических COM-портов, которые трудно или невозможно виртуализировать.Условия лицензии на программное обеспечение могут ограничивать вас в этом.

Некоторое оборудование может быть излишне чувствительным к задержке, вызванной соответствующими расстояниями.Например, в интернет-тракте между одним из моих объектов и ближайшим регионом AWS имеется 22 мс времени в оба конца.В 9600-8-N-1 это время передачи ~ 23 байта, и это лучший случай - уровень виртуализации и шифрование добавят больше.Машина или программное обеспечение могут быть написаны или не быть достаточно хорошо написаны, чтобы принять такую ​​задержку, которая не возникает на физическом локальном COM-порту.

Если машина управляется 1036* (не просто соблюдается), тогда вам нужно абсолютно убедиться, что вы не создаете угрозу безопасности, отделяя машину от ее программного обеспечения через уровень виртуализации.

«Совместное использование» управления машиной с помощью программного обеспечения на нескольких EC2похоже, что это может означать ваша иллюстрация, но это потенциально добавляет совершенно другой набор сложности.

Теоретически, да, это возможно.Я имею в виду, что даже удаленный рабочий стол Windows позволяет совместно использовать локальный COM-порт с удаленной системой, что позволяет удаленному программному обеспечению получать доступ к локальному устройству и управлять им.

На практике это потенциально требуетбольшое внимание уделяется большому количеству факторов, которые зависят от операционной системы, а также от конкретных особенностей рассматриваемых устройств и программного обеспечения.

0 голосов
/ 01 марта 2019

Соединение EC2 осуществляется через сетевой интерфейс, поэтому я не думаю, что прямое соединение, подобное тому, которое вы запрашиваете, возможно.

Однако, если вы говорите о промышленных устройствах, поддерживающих автоматизацию, скорее всего, выможет использовать MQTT или хотя бы мост MQTT.Если это так, вы можете взглянуть на AWS IOT Core

С AWS IOT Core вы получаете не только двунаправленную связь между вашими устройствами и AWS, но и мощную аналитику, устройствареестр и управление, а также полная интеграция с экосистемой AWS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...