Ответ на этот вопрос состоит из двух частей.
Да, безусловно, это возможно в теории.
...но это может быть непрактичным или невозможным для конкретной цели / приложения / устройства, которое вы имеете в виду.
Терминальные серверы являются простой иллюстрацией принципа,Обратите внимание, что в этом смысле я имею в виду не «терминальный сервер» удаленного рабочего стола 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-порт с удаленной системой, что позволяет удаленному программному обеспечению получать доступ к локальному устройству и управлять им.
На практике это потенциально требуетбольшое внимание уделяется большому количеству факторов, которые зависят от операционной системы, а также от конкретных особенностей рассматриваемых устройств и программного обеспечения.