You can redirect a COM port on a Windows Terminal Server using built-in Windows functions. But a data transfer rate can be unexpectedly slow. For example, the server uses the same data transfer channel for a video stream. But you can install TCP COM Bridge and get a separate dedicated data transfer channel for COM ports and higher data transfer rates.
1. Install TCP COM Bridge (download) on a server and configure a connection as a TCP server with a newly created COM port (Main menu → Devices → Add).
Fig. 1. COM port
Fig. 2. Network connection
2. Do not forget to allow incoming connections in your server’s firewall for the selected TCP port. If you transfer data through the Internet, configure your router too and redirect the same TCP port from the router to the server. If you connect multiple client computers to the same server, you should use a separate TCP port and virtual COM port for each client.
3. Configure TCP COM Bridge to start as a Windows service. The program will automatically start with Windows Terminal Server, create virtual COM ports, and accept connections from clients.
Fig. 3. Service mode on Windows Terminal Server
4. Install TCP COM Bridge on a client computer with a shareable COM port. Configure connection parameters with that COM port.
Fig. 4. Settings on the client computer
5. Configure the client part as a TCP client and specify the terminal server’s IP address. When the client starts, it automatically establishes a connection with a server and starts redirecting COM port data.
Fig. 5. Configuring network connection on a client
6. In this usage scenario, we recommend using the «keep-alive» option on the client and server. If this option is enabled, the server or client can quickly detect and restore a broken connection.
Fig. 6. Keep-alive mode parameters
See also
Slow receipt or bill printing from a remote accounting software.
Printing on one receipt, POS or fiscal printer from two computers.
Redirect COM ports to a terminal Windows server.
How to send data to a receipt, POS or fiscal printer from a remote accounting software.
How to the optimize operating system for faster COM port redirecting.
Serial port-over-Ethernet.
Перенаправление COM портов
тонкого клиента WTPRO
Перенаправление COM портов
Терминальный клиент WTPRO поддерживает два варианта перенаправления COM портов.
- Перенаправление посредством RDP протокола
- Перенаправление с использованием дополнительного сервиса для Windows
- Установка ККМ Феликс 02к и сканера штрих-кодов
Использование перенаправления посредством RDP протокола
Начиная с Windows 2003 сервера протокол RDP поддерживает перенаправление COM портов. К сожалению протокол RDP поддерживает неполное перенаправление COM портов. Например, существующая реализация не позволяет выйти в Интернет через модем, подключенный к COM-порту терминала. Однако для некоторых задач существующий функционал вполне подходит.
Будет лучше, если перед тем, как подключать устройство к COM-порту терминала WTPRO, вы подключите его к Windows-машине, запустите на ней стандартный клиент службы терминалов Microsoft и проверите работу со своим устройством.
Для того, чтобы перенаправить последовательные порты с терминала WTPRO на windows сервер необходимо указать в конфигурационном файле терминала:
COM=’on’
или через веб интерфейс указать параметр COM порты: вкл
В результате после подключения к серверу COM порты клиента перейдут в COM порты сервера. Первый COM порт терминала перенаправится в третий COM порт сервера.
Клиент |
Сервер |
COM1 | COM3 |
COM2 | COM4 |
COM3 | COM5 |
COM4 | COM6 |
Для проверки правильности подключения можно использовать команду change port.
Вывод команды будет примерно такой:
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.
C:\Documents and Settings\ZserG>change port
AUX = \DosDevices\COM1
COM1 = \Device\Serial0
COM3 = \Device\RdpDrPort\;COM3:1\tsclient\COM3
COM4 = \Device\RdpDrPort\;COM4:1\tsclient\COM4
Теперь приложения могут использовать порты COM3 и COM4.
Перенаправление с использованием дополнительного сервиса для Windows
Работает начиная с версии WTPRO 0.6.3.
Данный способ будет работать со всеми устройствами для COM портов и не требует обязательного наличия Windows 2003 сервера. Единственным минусом является необходимость установки на терминальный сервер дополнительного программного обеспечения.
Рассмотрим данный способ на примере контрольно кассового регистратора (ККМ) Феликс-02К и сканер ШК (штрихкода). ККМ (Феликс-02К ) подключен к первому КОМ порту (COM1) на тонком клиенте. А Сканер штрихкодов подключен ко второму КОМ порту (COM2) на тонком клиенте.
Для перенаправления COM портов необходимо выполнить следующие шаги.
- Указать в конфигурационном файле терминала:
COM=’ser’
Или через веб интерфейс указать параметр COM порты: сервис -
При необходимости можно настроить отдельно каждый последовательный порт, для этого можно использовать опции COM1, COM2, COM3 и т.д
Эти параметры можно настроить через веб интерфейс или указать в конфигурационном файле.
Параметры COM порта:
устанавливает параметры последовательного порта, возможные опции:
скорость: 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
четность: EVEN, ODD, NONE
стоп-биты: 1STOPBIT, 2STOPBITS
биты данных: 7DATABITS, 8DATABITS
включает XON/XOFF: XONXOFF (-XONXOFF выключает)
включает аппаратное управление потоком: RTSCTS (-RTSCTS выключает)
игнорировать контрольные линии модема (DCD, DTR, и д.р):
LOCAL (-LOCAL не игнорировать) - Настроим ККМ Феликс. Для этого можно задать параметры для порта COM1. Особеностью ККМ является следующее — невозможность аппаратного управления потоком.
COM1=’115200 NONE 1STOPBIT 8DATABITS -XONXOFF -RTSCTS LOCAL’.
Эти параметры означают следующее: - Скорость порта: 115200
- Четность: не проверять
- Стоп бит: один
- Биты данных: 8-ми битные
- XON/XOFF: выключено
- Аппаратное управление потоком: выключено
- LOCAL
- Настроим сканер ШК. Для этого необходимо настроить параметры второго КОМ порта. (Замечание! Чаще всего сканеры штрихкодов не требуют дополнительной настройки порта)
COM2=’9600 NONE 1STOPBIT 8DATABITS -XONXOFF -RTSCTS LOCAL’.
Эти параметры означают следующее: - Скорость порта: 9600
- Четность: не проверять
- Стоп бит: один
- Биты данных: 8-ми битные
- XON/XOFF: выключено
- Аппаратное управление потоком: выключено
- LOCAL
Замечание! Для применения параметров необходима перезагрузка.
Перед перезагрузкой сохраните файлы конфигурации на TFTP сервере
или другом носителе. - Аналогичным образом настраиваем КОМ порты на других терминальных клиентах
- Теперь необходимо установить серверную часть на Windows
Существует две стабильные серверные реализации
- MCSI2000
- Tibbo (надежнее)
MCSI2000
Эта программа является редиректором COM портов для Windows 2K, 2000 , XP, 2003. Главное ограничение: максимальное количество виртуальных COM портов — 64.
- Устанавливаем на терминальный сервер программу mcsi2000 (последняя версия находится на сайте https://www.multitech.com/)
Tibbo
Компания Tibbo Technology поставляет аппаратное и программное обеспечение для быстрого подключения оборудования с последовательным интерфейсом (RS232, RS422, RS485) к сетям Ethernet (TCP/IP). Их продукцию можно использовать для подключения к сети Ethernet практически любого оборудования, работающего через последовательные порты. Дополнительную информацию можно найти тут. При работе с WTPRO нам понадобится
Device Server Toolkit (DST) software for Windows. Максимальное количество COM портов — 255.
- Скачиваем программу с сайта www.tibbo.com или по прямым ссылкам
- TDST_3-9-82_NO_HELP.zip 2.2 мб
- TDST_3-9-82.zip 9.6 мб
- TDST_3-9-82.exe 9.7 мб
- Устанавливаем на терминальный сервер программу обычным способом
- Убираем галочку Connections Wizard
- Ставим галочку Virtual Serial Ports
- Запускаем VSP Manager
- Добавляем необходимые COM порты с терминального клиента
- Пример добавления 1-го COM(в нашем случае к нему подключен ККМ Фелмкс) порта клиента с IP адресом 10.0.0.200 и подключения этого порта как порт COM5 на сервере.
- Добавляем сканер штрихкодов
- На вкладке General properties выставляем параметры следующим образом:
- VSP name: COM6
- Transport protocol: TCP
- On-the-fly commands: Disabled
- Routing mode: Client
- Connection mode: Immediately
- Specify by: 10.0.0.200
- Port: 2002
- На вкладке Default serial settings
Устанавливаем параметры порта
Не забудьте установить правильную скорость COM порта. Для Сканера ШК это обычно 9600. - Теперь добавим порты с других терминальных клиентов
- На вкладке General properties выставляем параметры следующим образом:
- VSP name: COM7
- Transport protocol: TCP
- On-the-fly commands: Disabled
- Routing mode: Client
- Connection mode: Immediately
- Specify by: 10.0.0.201
- Port: 2001
- На вкладке General properties выставляем параметры следующим образом:
- VSP name: COM8
- Transport protocol: TCP
- On-the-fly commands: Disabled
- Routing mode: Client
- Connection mode: Immediately
- Specify by: 10.0.0.201
- Port: 2002
- Повторяем процедуру добавления портов столько раз, сколько портов необходимо перенаправить
- При необходимости можно посмотреть как работает виртуальный COM порт через Port Monitor
Установка ККМ Феликс 02к и сканера штрих-кодов
Рассмотрим на примере:
На сервере установлена Windows 2003 Server с поднятой службой терминалов, 1с 7.7 с возможностью работы с торговым оборудованием, несколько терминальных рабочих мест, два из них оснащены ККР Феликс 02К и Сканерами штрих-кодов, все через com-порт, сервер установлен также как рабочее место кассира, в комах все те же сканер и ККР, кассир работает с консоли с правами урезанного пользователя. Итого имеем 3 рабочих места кассира. Все торговое оборудование работает под управлением стандартных драйверов атол https://atol.ru/![]()
- Устанавливаем на терминальный сервер :
- Windows 2003 Server с поднятой службой терминалов
- 1с 7.7 с возможностью работы с торговым оборудованием
- Замечание! Именно эти версии драйверов, кто хочет использовать свежее – покупайте сетевой ключ у атола. Самые последние версии могут не работать, но несколько следующих в терминале точно не работают!
- Замечание!
Перед установкой драйверов от атола 1с уже должна быть установлена. - Устанавливаем ККМ
- Выбираем «Установка по выбору»
- Снимаем все галочки, кроме 3-х, Компонента ActiveX, Сервер оборудования, Тестовая утилита
- Устанавливаем сканер штрих-кода
- Выбираем «Установка по выбору»
- Снимаем все галочки, кроме 2-х, Компонента ActiveX, Тестовая утилита
- Выставляем права доступа на каталоги с атолом такие же, как это у вас принято для 1с.
- Подсоединяем к серверу ККМ и сканер ШК
- Проверяем работу ККМ
- Нажимаем Настройка свойств
- На вкладке Свойства выставляем параметры следующим образом:
- COM1
- 115200
- Нажимаем Проверка связи, смотрим результат
- Можно посмотреть Параметры оборудования, Сервис оборудования,
попечатать (настроить) клише, пароль обычно 30 - Замечание! Не рекомендуется пользоваться поиском оборудования – глючит
- Проверяем работу сканера ШК
- Нажимаем Настройка свойств
- Замечание! Ждем 17-20 секунд, это особенность (вероятно — ограничение использования) данного драйвера при инициализации сканера (при каждом запуске 1с, для кассира это раз в день, если у пользователя настроено использование сканера через этот драйвер, у пользователя создается впечатление, что программа висит 17-20 секунд – согласитесь – небольшая плата за возможность работать без дурацких ключей защиты)
- На вкладке Свойства выставляем параметры следующим образом:
- COM2
- 9600
- Устройство включено
- Сканируем первое, что попадется, смотрим результат
- Замечание! Не рекомендуется пользоваться поиском оборудования – глючит
Демо режим нас тоже устраивает, и хотя в описании драйвера говорится, что демо режим только 8-значные, сканируется на самом деле все! - Настройка торгового оборудования в 1с у всех по-разному, если используются драйвера атола, то
- для ККМ — C:\Program Files\ATOL\Drivers\BIN\FprnM1C.dll
- для сканера ШК — C:\Program Files\ATOL\Drivers\BIN\Scaner1C.dll
- Теперь необходимо установить программу Tibbo и настроить ее, читать здесь>>
При администрировании Hyper-V иногда возникают нетипичные задачи, например, возникает необходимость получить возможность работать с COM-портами в виртуальных машинах Hyper-V Gen2. Хотя многие администраторы, работающие с такими графическими инструментами управления как Hyper-V Manager, Failover Cluster Manager, Virtual Machine Manager знают, что настройки COM-портов есть только свойствах виртуальных машин первого поколения.
То есть разделы настройки COM-портов, которые мы можем видеть в специальных вкладках среди свойств ВМ Hyper-V Gen1, не отображаются в свойствах ВМ Hyper-V Gen2:
Однако, если обратиться к этому вопросу с помощью PowerShell на стороне хоста виртуализации, то мы увидим, что сведения о COM-портах для виртуальных машин второго поколения на самом деле присутствуют:
Get-VMComPort -VMName KOM-DEV02
Конфигурируем порты, предварительно выключив виртуальную машину:
Set-VMComPort -VMName KOM-DEV02 1 \\.\pipe\Hyper-V-VM-DEV02-COM1-TempPipe
Set-VMComPort -VMName KOM-DEV02 2 \\.\pipe\Hyper-V-VM-DEV02-COM2-TempPipe
Get-VMComPort -VMName KOM-DEV02
Включаем виртуальную машину и проверяем результат. Например, заглянем в оснастку Device Manager и убедимся в том, что в составе оборудования гостевой ОС появились COM-порты:
Таким образом мы привяжем виртуальные COM-порты гостевой системы к именованным каналам текущего хоста виртуализации, на котором выполнялись указанные ранее команды.
Чтобы убедиться в том, что каналы действительно созданы на локальном хосте виртуализации, можем выполнить листинг именованных каналов с указанием маски имени:
[System.IO.Directory]::GetFiles('\\.\\pipe\\') -match 'Hyper-V'
Обратите внимание на тот момент, что если COM-порты в ВМ требуется использовать для средств отладки Windows Kernel Debugging, то потребуется отключить режим безопасной загрузки Secure Boot в свойствах виртуальной машины.
Для отключения COM-портов от ВМ (и удаления соответствующих именованных каналов на стороне хоста) можно снова выключить ВМ и выполнить на стороне хоста виртуализации команды вида:
Set-VMComPort -VMName KOM-DEV02 1 ""
Set-VMComPort -VMName KOM-DEV02 2 ""
Дополнительные источники информации:
- MicrosoftDocs — WindowsServerDocs — Should I create a generation 1 or 2 virtual machine in Hyper-V?
- John Howard — Senior Program Manager in the Hyper-V team at Microsoft — Hyper-V generation 2 virtual machines – part 5
It’s not rare that users of serial port equipment face the need to share it with remote customers or coworkers over a network. As is known, the dedicated software application, Serial to Ethernet Connector, is designed to redirect Linux serial ports to Windows and vice versa in the easiest way possible. If you would like to know how to create reliable cross-platform connections between Linux and Windows and share serial ports for fast and secure remote access, below is a complete guide with simple step-by-step instructions.
a) Create a server connection on Linux.
As an example, we will share a serial port named “/dev/tty60” on Ubuntu 20,04,2 via a TCP port 5000. The IP address of our Linux machine is 192.168.24.43.
Follow the steps below to provide remote access to the real serial port that has the printer physically attached.
Step 1. Download Serial to Ethernet Connector and install it on your Linux computer.
Note: On Linux, it currently works only as a command-line utility.
Step 2. Create a “server” connection by using the following command:
evesecli add --real /dev/tty60 server --local 5000
where:
—real — COM port type (real/virtual);
/dev/tty60 — COM port (connection) name;
server — connection type;
—local 5000 — name of the TCP port that will be used for the network connection.
Note: By default, the connection will use the RAW data transfer protocol.
Step 3. Activate the connection by executing:
evesecli start /dev/tty60
Step 4. Check the connection status:
evesecli list -s
As we can see, the real serial port “/dev/tty60” is shared and can be accessed via the TCP port 5000.
Once you connect to the shared port from a remote computer, you will be able to check the detailed info about the connection by using the command:
evesecli list -s
b) Connect from Windows as a client.
Now let’s create a client connection to the remote serial port on Linux from a Windows machine.
Step 1. Download Serial to Ethernet Connector and install it on your Windows PC.
Step 2. Start the app and create a “client” connection.
To do this, click Client connection in the main window of the app.
Step 3 (Optional). Specify the client connection name.
Step 4. Check the box Create as virtual port and select the port name.
Note: To connect from the Windows client to Linux, a virtual serial port should be created on the Windows PC.
Step 5. Select the Raw data transmission protocol.
Step 6. Specify the IP address of the server computer (192.168.24.43) and the TCP port (5000) to connect to.
Step 7. Click Create.
This is it! Now the remote serial printer is successfully connected to the Windows PC via a virtual COM port (COM 1) and can be accessed and operated like it was plugged directly into the Windows machine.
Whether you create a virtual COM port on Linux or Windows, it appears in the system fully emulating the behavior of a real serial interface.
3.1. Share the COM port on the Windows server:
Step 1. Download and install Serial to Ethernet Connector for Windows.
Step 2. Start the software and select Server connection in the window that will appear.
Step 3. Configure the server connection settings:
- (optionally) Specify the connection name;
- Select the real COM port you would like to share. (The port to which the serial printer is attached).
Note: When setting up a server connection, you should leave the box Create as virtual port unchecked.
- Specify a TCP port to use for the connection to your network.
- Select the data transfer protocol.
Step 4. Click Create.
Once created, you can check the connection details by selecting this connection on the left side:
As you can see, we have an active server connection named “Server COM1”. The shared real port COM1 is open and is listening for incoming connection via a TCP port 5000.
3.2 Now that everything is set up on the Windows PC, we can create a client connection to the shared printer from a remote Linux computer.
To do this, follow these simple steps:
Step 1. On the Linux machine, download and install the command-line utility Serial to Ethernet Connector.
Step 2. Create a client connection by using the command:
evesecli add --virt /tmp/virt0 client --remote 192.168.24.66:5000
Where:
/tmp/virt0 client — COM port (connection) name;
192.168.24.66 — the IP address of the server computer you are connecting to;
5000 — the name of the TCP port specified on the server side.
Note: In order to connect to the remote real COM port over the network, you should create a virtual serial interface on the client side.
On Linux, the virtual COM port settings should match the Windows real port settings.
Step 3. Activate the connection by executing:
evesecli start /tmp/virt0
Step 4. Check the client connection status:
evesecli list -s
Important: for the correct operation of Serial to Ethernet Connector on both Linux and Windows sides, you should create an exception for the app in the firewall settings.