Работа со считывателями магнитных карт в 1С
На одном из проектов понадобилось работать и тестировать считыватели магнитных карт, собрал все, что необходимо для успешной работы и развертывания тестового контура.
Задача - разместить считыватель магнитных карт – на улице для приема карт и дальнейшей передачи данных в 1с оператору - тут сразу есть несколько условий – работа в пределах низких температур – зимой бывает -47; воздействие влажности - влагозащищенность – для этих целей подходит устройство rusguard rdr 204 mf. Одной из отличительных особенностей этого устройства – на вид – устройство выполнено в хорошем металлическом корпусе, и при этом микросхема с внутренней стороны залита силиконом или эпоксидной смолой.
Для передачи данных от устройства до 1С необходимо передать сигнал по интерфейсу rs-485. Внешние компоненты для работы с картами, встроенные в Библиотеку подключаемого оборудования – работают через COM порт. То есть у нас добавляется еще задача – преобразовать rs-485 в COM, но при этом современные компьютеры не обладают COM портом.
Схема, предложенная АСУ-шниками - выглядела следующим образом – данные от считывателя передаем на BOLID (C2000 Ethernet) – устройство, которое преобразует rs-485 в Ethernet, то есть, грубо говоря, оно передает данные с интерфейса rs-485 в сеть. Это устройство используется в пожарных сигнализациях. Далее – программой TCP COM Bridge мы получаем на компьютер сигнал с udp по сети и преобразуем в COM – далее уже выбираем стандартную компоненту для работы со считывателями.
Считыватель магнитных карт rdr-204 mf работает по питанию 12В, для сборки тестового стенда – мы использовали (да и в прочем на продакшене)) – блок питания для светодиодных лент, на входе 220 Вт – на выходе 12 вт, запитали от него Bolid и сам считыватель.
Bolid – устройство у которого есть порт Ethernet – стандартный rj-45 разъем, настраивается и программируется – по сети, при помощью специальной программе размещенной на сайте производителя оборудования.
Приблизительная стоимость схемы – считыватель ~ 12500, bolid ~ 5000, TCP Com Bridge – 2200, блок питания ~500 руб. Итого 20200.
Для тестового стенда мы использовали оборудование б.у. которое ранее уже было как-то настроено, поэтому пришлось повозиться с настройками. Bolid достался нам версии 2.56, предварительно для настройки нам нужно было его сбросить. Сбрасывается Bolid своеобразным способом – открыв, сняв крышку устройства – находим небольшую кнопку – при помощи кода Морзе – вводим комбинацию – для сброса устройства. В нашем случае – подошла команда точка точка тире тире точка точка тире тире. Что это означает, - точка – нажимаем быстро и отпускаем, тире – нажимаем и отпускаем медленнее, продолжительнее. Также перед сбросом – нужно посмотреть состояние перемычек и опытным путем установить их для того, чтобы программа Uprog дала возможность сохранять данные в прибор.
Далее для того, чтобы настроить эту штуку, скачиваем программу Uprog, тоже занятное приспособление. В данной программе – подключаем наш «сброшенный по дефолту» Bolid напрямую к компу, IP адрес у Bolid’a по умолчанию 192.168.127.1, поэтому сетевой карте компа присваиваем любой другой IP в той же подсети. Далее каким-то чудом нам удалось настроить программу Uprog для того, чтобы она все таки нашла и считала данные с устройства, а также смогла записать их.
Настройка ПО uprog своеобразная, и скорее всего с первого раза найти подключенное устройство не удастся.))
В программе uprog – есть своя сетевая служба – программный сервер – желательно этой сетевой службе присвоить такой же IP адрес, как у компьютера (IP сетевой карты). Точных данных у меня нет, но насколько мне показалось, что в настройках Bolid – он передает данные с rs-485 на Ethernet – на удаленное устройство – и что компьютер для получения данных – должен стать сервером udp с открытым портом, допустим 40000. Попытка подключиться к IP-адресу Bolid’a не увенчалась успехом – видимо, все-таки он сам посылает данные на удаленное устройство, а IP адрес ему нужен для того, чтобы находиться в сети. Чуть небольшая неправильная настройка – и устройство пропадало и приходилось сбрасывать заново все настройки.
Далее тут возникает несколько вопросов – сейчас схема работает через TCP Com Bridge – но логично было бы использовать сразу какую-либо внешнюю компоненту для 1с – чтобы сразу забирать данные с bolid’а по udp протоколу, и уже тогда не использовать стандартный драйвер для работы со считывателем.
И да, о чудо – данные со считывателя bolid вполне сносно передает на удаленное устройство, в данном случае в настройках bolid’a прописали IP адрес компьютера.
Для тестирования используем небольшую консольную программку, написанную на Delphi. Проверяем работу собранного тестового контура.
Необходимое оборудование и ПО
- Блок питания – для тестов выбрали самый первый попавшийся на wb,ozon – 12 Вт.
Схема подключения – L,N,земля – шнур от 220 Вт розетки, подойдет обычный шнур от системного блока. –V +V - соблюдаем плюс/минус при подключении bolid’a и считывателя.
-V +V – оба устройство по питанию посадили сюда. Единственное смущает немного что контакты ничем не прикрываются, есть еще блоки питания – допустим на aliexpress – которые имеют сверху закрывающуюся прозрачную крышку для того чтобы не залезть случайно пальцами.
2. Считыватель магнитных карт – имеет кучу разноцветных проводов для подключения и внутри себя на железной крышке – бумажку с распиновкой, какой цвет куда подключать, для интерфейса rs-485 –
Итак, мы используем колонку rs-485 то есть, питание – Красный, черный (12 в – подключаем к блоку питания); Розовый и Фиолетовый – обозначения проводов интерфейса rs-485 – эти два провода пойдут в Bolid.
Настройка считывателя также осуществляется специальной программой, которую бесплатно можно скачать на сайте производителя (RusGuardReaderConfig).
https://www.rgsec.ru/card-readers/rdr-204-mf - раздел Скачать
А тестовую конфигурацию для работы со считывателями – можно скачать по ссылке с настольным считывателем, совместимым с 1С
https://www.rgsec.ru/card-readers/r5-usb-prof
Стоит также отметить, что на сайте производителя –также есть простая конфигурация 1С для работы со считывателями, поэтому можно не начинать с нуля – а использовать эту конфигурацию для разработки своего решения.
- Bolid C2000 Ethernet
12 –вт – чтобы работало и данные по считывателю прилетали сюда.
https://bolid.ru/production/orion/interface-converter/s2000-ethernet.html
Каждая часть обозначена группами XT1, XT2, XT3 – нас интересуют группы XT2,XT3. Питание 12 Вт – подключается к XT3 (1,2). Далее rs-485 (XT2) – нас интересуют контакты 2,3 – а это то же самое обозначение A,B и у считывателя – по этим двум проводам приходят данные от считывателя на Bolid.
Для подключения Bolid’а вам необходимо в Службе Орион-2Интерфейс – установить IP-адрес вашего компьютера, а также чтобы IP адрес находился в той же подсети что и устройство. Далее в службе правой кнопкой мыши – необходимо добавить линию и уже затем вероятно – найдется устройство – как в нашем случае это подсвеченная синим строка на скрине.
В настройках устройства Тип протокола – другой, и удаленные устройства добавляем наш компьютер с программой TCP COM Bridge.
Где:
192.168.1.231 – IP адрес самого Bolid’a
192.1.168.1.215 – Имя компьютера, который будет выступать в качестве UDP сервера.
Для того, чтобы как-то понимать, что и когда прилетает, «наваяли» простую программку на Delphi, которая слушает порт 40003, ( в настройках Bolid’а поставили удаленный порт 40003).
Пробуем приложить карту – на Bolid’е загорается лампочка rs-485 и что-то шуршит в Ethernet, и на компе появляется ID-карты, значит, мы все настроили и подключили правильно.
Для того чтобы удешевить схему, вполне можно воспользоваться «нонейм» устройством для преобразования rs-485 to Ethernet – к примеру с сайта aliexpress.
5. TCP COM Bridge. Настраивается как сервер на получение данных по порту 40003, который мы указали в Bolid’е. Создаем здесь любой свободный виртуальный COM порт, который затем укажем в настройках 1С для считывателя.
Изначально мы использовали схему с TCP COM Bridge – недостаток в нем в том, что он платный и при изменении параметров железа системного блока или если вдруг материнская плата выйдет из строя – лицензия пропадает, необходимо будет связываться с разработчиками и получать новую лицензию – а в некоторых случаях это задержка времени в работе оборудования – уйдет какое-то время для получения новой лицензии.
Чем интересен интерфейс rs-485? Он позволяет передавать на большие расстояния (1200 метров) данные со считывателя, ну и по сути особо альтернативы и нет так как удаленно считыватель отдает данные по rs-485 и прямого подключения к компу не имеет, кроме подключение по microUSB – для настройки считывателя. RBus, Wiegand не рассматривали ввиду того что Bolid может принимать данные по rs-232, rs-485, но насколько я понимаю – есть такие же подобные устройства которые передают данные Wiegand to Ethernet по сети.
Далее вместо TCP Com Bridge – вполне можно использовать внешнюю компоненту, UDP сервер, которую мы также сделали на Delphi. Подключаем в 1С как внешнюю компоненту – и ждем во внешнем событии – получение данных со считывателя.
Тестовый стенд
Тестовый стенд необходим для отладки и тестирования при разработке конфигурации 1С. При его сборке мы использовали большую часть компонентов б/у, что снизило его стоимость до 5000 т.р.
Для теста сборки мы написали небольшую конфигурацию, при помощи которой мы получаем данные по ID-карты или брелка, приложенного к считывателю. Для этого используем – нашу native библиотеку. Создаем новую обработку - +форму, и добавляем следующий код.
Получается вот такой код:
Пока временно положили нашу тестовую библиотеку dll (созданную в Delphi) в папку на диск С.
Работа с библиотекой подключаемого оборудования
Заметили, что в версии 3.2 – исчезла внешняя компонента – для работы с универсальным считывателем (1С:Считыватель магнитных карт (NativeAPI). То есть для нашего проекта – предполагалось, что мы будем использовать два считывателя – один из которых – это настольный и второй уличный считыватель. Настольный конфигурируем драйвером от rusguard (РусГард: Считыватель магнитных карт) . Уличный считыватель настраивается универсальным драйвером, указывая в его настройках COM порт, созданный программой TCP COM Bridge, которого, к сожалению, в поставке 3.2 и 3.1 не обнаружили, хотя в конфигурации в общих макетах – необходимые драйверы присутствуют, но в явном виде в режиме 1С Предприятия их нет.
Также на сайте rusguard – не смогли (в его текущей версии) – найти готовую конфигурацию, которая была ранее (с библиотекой подключаемого оборудования).
В версии 2.1 подключаемого оборудования необходимые драйверы есть.
Для работы через TCP COM Bridge выбираем 1С:Считыватель магнитных карт (Native API). И в настройках выбираем созданный через программу TCP COM Bridge нужный виртуальный порт.