Проброс COM портов через TCP/IP с помощью Virtual Serial Ports Emulator (Windows)

Администрирование - Системное

Проброс COM портов через TCP/IP с помощью Virtual Serial Ports Emulator (Windows) от компании Eterlogic . Простой пример настройки. Альтернатива стандартному маппингу com портов средствами Windows через RDP.

Всем доброго времени суток.

Столкнулся с проблемой плохой стабильности маппинга com портов через RDP. Казалось бы, все должно работать замечательно, к тому же у клиента всего 4 магазина, стабильный интернет (как на сервере, так и на точках). Но к сожалению, работало все крайне паршиво. Схема классическая, ут 10.3 на терминальном сервере и фискальные регистраторы на клиентах. Все стандартно, настроили фискальники и пробросили com порты стандартными средствами windows. Но работники магазинов стали часто жаловаться на зависания, не возможность пробить чек или на странные магические проблемы частичного пробития чека или страшного слова "Драйвер ФР не загружен". Все эта ситуация мне совершенно не нравилась, и я решил реализовать проброс com портов через интернет. Пришлось погуглить. Я нашел несколько решений, но самым лучшим для меня оказалось решение от компании Eterlogic программа Virtual Serial Ports Emulator (далее VSPE). Задуманную мной схему удалось сделать за пару дней (анализ, настройка, тестирование и боевой выход). 

Долго вести свое повествование я не буду. Все довольно просто и понятно. Есть несколько нюансов. Данный продукт бестлатный для Windows с архитектурой х86 и платный для х64.

Скачать: http://www.eterlogic.com/Products.VSPE.html

Стоит $24.95 плюс коммисия магазина.

Программу я купил, но пользоватся версией для х64 можно и без ключа. Просто постоянно выскакивает предложение купить программу. Других ограничений (по времени работы или функционалу) я не увидел. Мне не нравилось постоянно выскакивающее сообщение о покупке и для пользователей это лишняя информации и лишнее действие по закрытию окошка. Купленный ключ можно использовать на нескольких копиях (как я понял неограниченно).

Петь дифирамбы о качестве и возможностях я не буду. Вся информация есть в интернете. Опишу свой пример настройки. 

Итак.

Дано:

  • 4 магазина
  • 4 фискальных регистратора
  • 4 кассовых компьютера
  • 1 сервер терминалов

Задача:

  • Пробросить com порты фискальных регистраторов через интернет.

Настройка VSPE на сервере.

Устанавливаем VSPE на сервер и запускаем (в настройках я выбрал русский язык). После нужно создать виртуальные порты (для каждой кассы свой порт). Номера портов лучше взять пониже, дабы избежать проблем. У нас 4 кассы, поэтому я создаю 4 виртуальных порта (29,30,31,32). Эти порты и будут указаны в настройках касс в 1С. Нажимаем на кнопку "создать новое устройство". Тип устройства "connector". 

Дальше указываем номер нашего нового виртуального порта

После жмем готово.

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

После мы должны определиться по с адресами. На магазинах у нас должны быть статические ip. Каждый виртуальный порт у нас станет tcp клиентом и будет подключатся к tcp серверу, который будет настроен на компьютере кассы магазина. Поэтому здесь нужно быть внимательным. Мы имеем 4 статических внешних адреса магазинов. Важно понимать, что просто подключится по ip мы не можем. Нужно указать порт tcp server. Продумать номер мы можем заранее. Я решил просто, номера портов складываются следующим образом. 

10хх - где хх номера виртуальных портов, которые будут подключаться к реальному com порту (tcp серверу). Каждый виртуальный порт я отнес соответственно магазину, как мне было удобно (т.е. com29 у меня магазин №1, com30 - магазин №2 и т.д.)

В итоге подучилось 4 адреса:

ххх.ххх.ххх.ххх:1029

ххх.ххх.ххх.ххх:1030

ххх.ххх.ххх.ххх:1031

ххх.ххх.ххх.ххх:1032

ххх.ххх.ххх.ххх - внешний статических адрес магазина. 

Важно продумать эти параметры, чтобы спокойно и удобно настраивать серверную часть.

Идем дальше. Настраиваем подключение tcp клиента. Добавляем новое подключение с типом "tcp client"

Далее

По аналогии делаем все виртуальные порты.

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

Данный файл с подключением мы должны запускать при каждом старте Windows. Сделать это очень просто, нужно создать ярлык вида "C:\Program Files\Eterlogic.com\Virtual Serial Ports Emulator\VSPEmulator.exe" -minimize -hide_splash c:/****.vspe

c:/****.vspe - путь к сохраненному файлу. Созданный ярлык помещаем в автозагрузку пользователя (не стартанет если пользователь не зайдет в систему, как настроить службу написано в справке). Программа стартанет в трее.

Естественно клиентская часть у нас не настроена, соответственно созданные подключения tcp client будут ругаться и ждать инициализации. 

Результат настройки на сервере (статус "ОК", т.к. все уже настроено)

Настройка клиентской части.

Устанавливаем VSPE. Настраиваем. Здесь уже клиентская машина будет выступать в роли tcp сервера.

Добавляем новое подключение с типом "tcp server"

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

Данный файл с подключением мы должны запускать при каждом старте Windows. Сделать это очень просто, нужно создать ярлык вида "C:\Program Files\Eterlogic.com\Virtual Serial Ports Emulator\VSPEmulator.exe" -minimize -hide_splash c:/****.vspe

c:/****.vspe - путь к сохраненному файлу. Созданный ярлык помещаем в автозагрузку. Программа стартанет в трее.

Следующим шагом нужно на маршрутизаторе магазина сделать проброс.

192.168.х.х:10хх ->ххх.ххх.ххх.ххх:10хх (порты 10хх одинаковые).

После проброса все должно заработать. Статус соединения "ОК"

После меняем настройки 1С на наши виртуальные порты. Делаем тестирование.

P.S. Ваш голос будет лучшей благодарностью для меня.

См. также

Комментарии
1. Vladimir Polyakov (spectre1978) 40 11.05.17 10:56 Сейчас в теме
Спасибо, пригодится. У вас дрова случайно не АТОЛ? Там есть встроенный механизм удаленного доступа к регам и проброс портов в общем-то, как выяснилось, не нужен...
2. Сергей Шестопалов (Shestik) 79 11.05.17 11:00 Сейчас в теме
(1) Пожалуйста. Про атол я в курсе. Но хотелось универсального механизма. Т.к. клиенты разные и задачи разные.
7. Damir (twiny) 6 11.05.17 21:58 Сейчас в теме
(1) да, у АТОЛа такая фишка есть, называется она Сервер печати, она вроде даже и у Штриха есть. Только у АТОЛа она для родного оборудования без оплаты, а для других нужно оплатить ключик. У Штриха эта фишка всегда платная (ценник то ли 30, то ли 50 тыр). Поэтому при покупке уже думаешь, если нужен проброс через Инет, то лучше оборудование брать АТОЛ.
Порты там фактически никакие не пробрасываются, локально поднимается служба, которая и будет на запросы клиента-драйвера отвечать. Опыт показал, что такие вещи стабильнее работают, чем пробросы всякие.
spectre1978; +1 Ответить
9. Vladimir Polyakov (spectre1978) 40 11.05.17 22:42 Сейчас в теме
(7) И как ни странно, решение это при всей его годности довольно малоизвестное...
14. Андрей Казанцев (ander_) 18.05.17 05:31 Сейчас в теме
(7)

был опыт использования сервера печати от штриха, правда в других целях. Была задача обеспечить возможность печати на один ФР с нескольких рабочих мест. Работает медленно и нестабильно. В итоге отказались и написали "сервер" печати на 1с, прямо в базе розница.

(0) спасибо за статью. очень может пригодиться.
jONES1979; +1 Ответить
15. Damir (twiny) 6 18.05.17 10:33 Сейчас в теме
(14)
Со Штриховски сервером не пробовал. А как давно это было, какая версия дров/сервера?
16. Андрей Казанцев (ander_) 18.05.17 16:30 Сейчас в теме
(15)
примерно год назад. сам сервер брали примерно 2 года назад. с версиями сказать не могу, уже нет доступа.
3. Yran Kolm (Yran) 11.05.17 11:13 Сейчас в теме
Спасибо, статья помогла!
А с инфракрасным портом можно также замутить?
4. Сергей Шестопалов (Shestik) 79 11.05.17 11:17 Сейчас в теме
(3) Если он в системе как com порт тогда да.
5. Yran Kolm (Yran) 11.05.17 11:44 Сейчас в теме
6. Сергей Шестопалов (Shestik) 79 11.05.17 11:47 Сейчас в теме
8. Damir (twiny) 6 11.05.17 22:01 Сейчас в теме
Хотелось бы уточнить, как давно используете данное решение? И какова реакция на временную потерю связи, скажем 1-3 секунды.
10. Сергей Шестопалов (Shestik) 79 12.05.17 03:56 Сейчас в теме
(8)Уже полгода работает. Потеря связи особо не влияет. Во время отсутствия связи программа постоянно пытается соединиться, как только связь появляется, практически моментально все поднимается.
11. Константин Мельников (SGordon1) 17.05.17 09:14 Сейчас в теме
ПОдскажите, с онлайн кассами кто то использует? Какое время печати чека ( интересует штрих) ...
12. Сергей Шестопалов (Shestik) 79 17.05.17 09:29 Сейчас в теме
(11) Атол. Онлайн кассы Атол11Ф. Время не замерял. Максимум заметил 2 секунды после отправки команды на фискальник (из 1с, аля проведение чека) и началом печати чека, дальше уже скорость печати самого фискальника. 11ф не самые шустрые ребята, но в пределах нормы печатают чек. Жалоб нет.
13. Alex Su (alexsu4236) 17.05.17 10:54 Сейчас в теме
Я пользуюсь HW Virtual Serial Port - он полностью бесплатный но предназначен для одного порта.
А еcли много портов то программы из серии VPort.
Последнее использование RFID сканеры. В том числе и параллельно RDP 1с.
39. Екатерина Сафонова (Serve-it) 15.11.17 08:40 Сейчас в теме
(13)
HW Virtual Serial Por


Расскажите как вы настраиваете соединение через HW Virtual Serial Port? Как у казать на клиентской машине какой Сом-порт будет задействован в сервере.

Я как понимаю если запустить эту программу, то она будет и сервером и клиентом. Таким образом на ТерминальномСервере я прописываю внешний адрес компьютера к которому подключена касса Атол30ф. Указываю port 23.
17. Евгений Стоянов (quick) 562 18.05.17 23:27 Сейчас в теме
А я тут понимаешь свой велосипед запилил для сканеров. Атол творил чудеса с сервером на нестабильной связи, время от времени укладывая на 100%.
Заделал компоненту для работы 1С с внешними приложениями по pipe https://github.com/WorldException/v7SimpleAddIn
Потом пару простых скриптов, один на тонких клиентах HP ThinStation под Win XP, второй на терминале RDP. и связывается это все через redis.
Порядка 30 машин в онлайне, полет нормальный.
Зато теперь есть киллер фича, можно подключить несколько сканеров к рабочему терминалу (проводной и беспроводной), оно автоматом подхватит получившийся СОМ порт и можно пользоваться любым сканером, в 1С все попадает как будето это один и тот же.
o.nikolaev; rougudz; +2 Ответить
18. rougudz rougudz (rougudz) 23.05.17 14:43 Сейчас в теме
а у меня не заработало. печаль. возможно по тому что через vpn. адрес выдаваемый vpn и пришлось использовать на обеих сторонах. пишет что соединение OK, но по факту приема данных нету.
19. MAXXL (MAXXL) 5 24.05.17 23:02 Сейчас в теме
(18) Аналогично. Соединение есть - данных нет. И тоже VPN. Непонятно где искать причину и как устранять. Скорость печати на драйвера от Штрих-М удручает.
20. Игорь Руденко (sab_1) 07.06.17 18:38 Сейчас в теме
(19) разобрались? а то мне тоже нужно подключать и как раз через впн... у вас получилось?
21. MAXXL (MAXXL) 5 07.06.17 21:42 Сейчас в теме
(20)Нет. Откатился назад на Штриховский. Будет еще свободное время и свободный ФР - попробую повторить эксперимент.
27. Алексей Резухин (a.rezyhin) 22 17.08.17 15:03 Сейчас в теме
(19) Сегодня тестировал работу проброс с 3 ПК в VPN на сервер. Работает по алгоритму, как в статье без сбоев, единственно в режиме службы есть пока проблемы.
22. Стас Кудров (StanKu) 20.06.17 12:41 Сейчас в теме
Как по мне, так вот это решение куда проще Virtual Serial Port Emulator
И сама работа, и интерфейс поприятнее
24. Имя Фамилия (user774630) 31.07.17 13:01 Сейчас в теме
(22) а то что на 120 баксов дороже - мелочи.
23. Den Smirnov (denssmirnov) 14.07.17 17:18 Сейчас в теме
Удобней на сервере 1с поднимать ip сервер com порта, а на клиентах соответственно клиента. Это удобней, не нужны статический ip в таком случае нужен только серверу.
30. Сергей Шестопалов (Shestik) 79 20.10.17 11:22 Сейчас в теме
(23) Да полностью согласен. Не знаю почему я решил сделать наоборот.
25. Дмитрий Охремяк (kondr1221) 01.08.17 10:35 Сейчас в теме
ну по факту атол есть утилита родная, штрих падает в сеть и можно просто пробросить порт так как он поддерживает сетевой интерфейс хоти подключается по usb )
26. Алексей Резухин (a.rezyhin) 22 17.08.17 14:56 Сейчас в теме
В режиме службы не поднимали? При подключенном устройстве в режиме TCP сервер служба запускается, но проброс не работает. В режиме приложения всё ОК. Написал еще в техподдержку, жду ответа.
user832565; +1 Ответить
31. Сергей Шестопалов (Shestik) 79 20.10.17 11:25 Сейчас в теме
(26)В режиме службы не пробовал. Читал разные форумы, встречал ребят, которые утверждали, что в режиме службы есть проблемы. Говорят, что проброс отваливается и потом vspe не может инициализировать устройства. Но это были сообщения 2013 года. В любом случае нужно тестировать.
37. Алексей Резухин (a.rezyhin) 22 22.10.17 12:17 Сейчас в теме
(31) Согласен, периодически в режиме службы тоже встречаю проблемы с инициализацией. Больше всего раздражают проблемы с Windows 10. Нормально автозапуск в режиме приложения не работает, окно сворачивается при запуске но инциализация не отрабатывает, в режиме службы вообще не работает.
28. Вадим Dkflbvbhjdbx (user832565) 20.10.17 11:07 Сейчас в теме
Добрый день, может сможете помочь, у нас ситуация такая, удаленный сервер на нем 1с, и офис с 4 компьютерами которые подключается по RDP, и один фискальник РР-04Ф он подключен к одному из компьютеров и пробрасывается порт на сервер через RDP, но вопрос в том что печатать чеки должны все четверо, это можно как то сделать?
29. Сергей Шестопалов (Shestik) 79 20.10.17 11:20 Сейчас в теме
(28)По идее нужен сервер печати. Но можно сделать и костыльно. Пробросить com-фискальника и зацепить на него клиентов и печатать. Что будет при одновременной отправке вопрос, плюс не понятно, будет ли 1С занимать наглухо порт?
user832565; +1 Ответить
32. Вадим Dkflbvbhjdbx (user832565) 20.10.17 11:50 Сейчас в теме
А если создать виртуальные порты которые смотрят на порт кассы и в 1с сделать несколько касс с виртуальными портами, и каждый будет печатать на своей кассе , теоретически это возможно и можно ли нам помочь удаленно, платно и какая будет сумма
33. Сергей Шестопалов (Shestik) 79 20.10.17 12:36 Сейчас в теме
(32)Могу помочь без проблем.
34. Вадим Dkflbvbhjdbx (user832565) 20.10.17 12:52 Сейчас в теме
Наверно через TeamViewer удобней и как думаете получится и сколько будет стоить
35. Сергей Шестопалов (Shestik) 79 20.10.17 12:54 Сейчас в теме
38. Вадим Dkflbvbhjdbx (user832565) 23.10.17 13:59 Сейчас в теме
Добрый день, ни чего не получается, программа соединяется без проблем, а драйвер фискальника пишет нет связи, причем после создания сервера касса перестает отвечать совсем, если отправлять через драйвер на физический порт кассы то пишет -3: СOM порт занят другим приложением, а если который принимает то все подвисает и в конце пишет -1: Нет связи, можно ли что нибудь придумать.
36. Вадим Dkflbvbhjdbx (user832565) 20.10.17 12:56 Сейчас в теме
Большое спасибо, попробуем.
Оставьте свое сообщение