Компонента работы с RFID-считывателем (на примере Impinj R420)

17.12.14

Интеграция - Робототехника и умный дом (Arduino, NFC, RFID)

Простенькая компонента 1С для работы с RFID-считывателем Impinj R420. Тем, кто занимается темой RFID-зации, будет интересно как реальный пример работы. Компонента успешно работает на одном подмосковном складе.

Скачать файлы

Наименование Файл Версия Размер
Архив с компонентой и примером работы с ней
.zip 220,08Kb
49
.zip 1.00 220,08Kb 49 Скачать

Принцип работы

Компонента генерирует два события при работе:

  1. IN - при попадании метки в поле видимости антенны;
  2. OUT - при выходе метки из поля видимости антенны.

При этом нужно помнить, что OUT сработает в том случае, если метка не будет видна антенне более времени, указанного в методе SetInOutTimeout (см. ниже). Т.е. физически метка может остаться на антенне, но антенна может ее не увидеть и сгенерировать событие OUT.

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

Компонента написана на C#. Использует .NET 3.5.

 

Описание интерфейса компоненты

Регистрация компоненты

Перед началом работы компоненты необходимо зарегистрировать ее с ключом tlb: 

RegAsm.exe "PATH\RFIDConnector.dll" /tlb

Или запустить register.bat (см. вложение), указав в нем путь до файла RegAsm

Инициализация компоненты

Имя класса: AddIn.RFIDConnector

Пример работы:

 

// Инициализация класса...

ИмяКласса = "AddIn.RFIDConnector";
Попытка
 ПодключитьВнешнююКомпоненту(ИмяКласса);
 Объект = Новый COMОбъект (ИмяКласса);
Исключение
 Сообщить("Ошибка загрузки внешней компоненты " + ИмяКласса + ". " + ОписаниеОшибки());
 Закрыть(); 
КонецПопытки;

 

Подключение/отключение устройства

SetInOutTimeout(Timeout) - установка периода видимости метки, после которого генерируется событие OUT (в мс.);

SetInOutPeriod(Period) - установка периода таймера: с какой частотой опрашивать метки на антеннах (в мс.);

Connect(IP) - подключиться к устройству с указанием IP-адреса устройства.

Пример работы:

// Задаем таймаут исчезания меток...
Объект.SetInOutTimeout(500);
// Задаем период проверки меток...
Объект.SetInOutPeriod(150);
// Подключаемся к устройству...
Объект.Connect("192.168.3.89");

 

Disconnect() - отключиться от устройства

Пример работы:

// Отключаем устройство...
Объект.Disconnect();

 

Запуск/остановка таймера опроса антенны

Start() - запуск таймера: начало работы с устройством

Пример работы: 

Попытка
 Объект.Start();
 Сообщить("Сканирование запущено!");
Исключение
 Сообщить("Ошибка запуска сканирования! Текст ошибки: " + ОписаниеОшибки());
КонецПопытки;

 

Stop() - остановка таймера

Пример работы: 

Попытка
 Объект.Stop();
 Сообщить("Сканирование остановлено!");
Исключение
 Сообщить("Ошибка остановки сканирования! Текст ошибки: " + ОписаниеОшибки());
КонецПопытки;

 

Обработка внешнего события

ВнешнееСобытие(Источник, Событие, Данные) - стандартное событие 1С

Источник - всегда "RFIDConnector"

Событие - всегда "InOutEvent"

Данные - данные в формате: "In/Out:Tag:Antenna", например: IN:302DBB7711C0004000000034:1;

 

Пример работы (спсМетки - список значений, спсРазвернуть_ - функция, разбирающая строку на подстроки через разделитель - см. пример RFIDConnectorTest.epf во вложении):

// фрмВнешнееСобытие - внешнее событие... 
Процедура фрмВнешнееСобытие(Источник, Событие, Данные)

 // Для отладки...
 Сообщить("Внешнее событие: " + Источник + ", " + Событие + ", " + Данные);

 // Получаем данные в виде списка...
 спсДанные = спсРазвернуть_(Данные, ";");
 // Идем по элементам списка...
 Для Каждого спсЭлемент Из спсДанные Цикл
  // Получаем параметры из каждой строки...
  спсПараметры = спсРазвернуть_(спсЭлемент.Значение, ":");
  // Если количество параметров 3 - обрабатываем данные...
  Если спсПараметры.Количество() = 3 Тогда
   ТипСобытия = СокрЛП(спсПараметры[0]);
   Метка = СокрЛП(спсПараметры[1]);
   Антенна = СокрЛП(спсПараметры[2]);

   прМетка = Метка + ":" + Антенна;

   // В зависимости от типа события...
   Если ВРег(ТипСобытия) = "IN" Тогда
    спсМетки.Добавить(прМетка);
   ИначеЕсли ВРег(ТипСобытия) = "OUT" Тогда
    спсМетка = спсМетки.НайтиПоЗначению(прМетка);
    Если спсМетка <> Неопределено Тогда
     спсМетки.Удалить(спсМетка);
    КонецЕсли;
   КонецЕсли;
  КонецЕсли;
 КонецЦикла;
КонецПроцедуры

 

Контакты:

Если у Вас возникли вопросы или пожелания по доработке/внедрению данной системы, а также любые другие вопросы, связанные с RFID (метки, считыватели, интеграция, разработка, внедрение, обслуживание, консультации и т.д.), Вы можете обратиться в компанию Кей-Софт (www.keysoft.su), Контактное лицо: Алексей Денисенко (доб. 102), .

RFID Impinj РФИД ИМПИНЖ радиометки

См. также

Умный дом на 1С: это намного проще, чем кажется, и значительно лучше, чем можно предположить

Робототехника и умный дом (Arduino, NFC, RFID)

Кто сказал, что умный дом на 1С сделать невозможно? На конференции Infostart Event 2021 Moscow Premiere Юрий Лазаренко из компании «Цифровой Кот» показал, какие уникальные прикольные вещи можно делать на базе IoT (интернета вещей), где в этом всем 1С, и как это все между собой интегрируется.

19.06.2023    3484    TitanLuchs    27    

14

Мобильное приложение 1С и Умный дом. В каждый дом. Пролог

Мобильная разработка Робототехника и умный дом (Arduino, NFC, RFID) Мобильная платформа Конфигурации 1cv8 Абонемент ($m)

Хотите попробовать свои силы в разработке собственного мобильного приложения на 1С для управления светом и электроприборами в своём доме? Добро пожаловать! Хочу поделиться собственными наработками в этой области. Это будет приложение, разработанное для мобильных устройств на базе Android. Основное предназначение: управление включением/выключением устройств, работающих от сети 220 V (свет, телевизор, чайник, вентилятор, микроволновка и т.д.). Управлять будем: из приложения, голосом, на заданный промежуток времени, интенсивностью света, расписанием работы.

1 стартмани

19.12.2022    2154    osivv    8    

21

У.дача каждому 1С-нику, или умный дом для ленивых (конфигурация)

Робототехника и умный дом (Arduino, NFC, RFID) Платформа 1С v8.3 Россия Абонемент ($m)

Конфигурация для создании умных домов на базе 1С. Приложение сконструировано как сервер для устройств Arduino, к которому подключены датчики и реле (и другие исполнительные механизмы), так и для публикации мобильного приложения для управления умным домом.

1 стартмани

26.09.2022    4669    6    atland    0    

21

RFID считыватели Impinj и RRU9516

Робототехника и умный дом (Arduino, NFC, RFID) Платформа 1С v8.3 8.3.14 Конфигурации 1cv8 Россия Абонемент ($m)

Компонента для работы с RFID метками. Поддерживает считыватели Impinj 120, 220, 420. А также настольный RRU9816.

1 стартмани

24.11.2021    3545    3    pavelmael    6    

6

1С и Умный дом. Управление голосом

Робототехника и умный дом (Arduino, NFC, RFID) 8.3.6 Бесплатно (free)

Возможно ли управление устройствами умного дома из 1С, да ещё и голосом? Можно ли без умных колонок Google Home, Alexa, Алиса и иных платформ, а также без приложений от Google, Amazon и других управлять этими устройствами? Мой ответ – ДА, можно, нужно просто иметь умное устройство, имеющее возможность работы в DIY, 1С и программу распознавания голоса и взаимодействия с 1С.

04.01.2021    48280    osivv    15    

12

IoT (Internet of Things) в 1С или как подружить 1С с ESP32 при помощи MQTT-брокера

Робототехника и умный дом (Arduino, NFC, RFID) Платформа 1С v8.3 Абонемент ($m)

Что делать, если надо подключить удалённое устройство к серверу 1С, но ни устройство, ни сервер 1С нельзя "светить" наружу? А если таких устройств десятки или сотни по всей стране? Ответ: Использовать промежуточный сервис, который будет пересылать данные между сервером 1С и устройствами. Такие функции замечательно выполняет MQTT-брокер, но вот не задача, 1С не умеет с ним работать.

2 стартмани

25.06.2020    13741    20    frutty    34    

23
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. AlexSunS 24.12.14 16:52 Сейчас в теме
Автор а можно в личку, очень нужна помощь в проекте.
2. karpov 11 24.12.14 18:23 Сейчас в теме
Без проблем
Можно на почту: karpov@keysoft.su
4. karpov 11 26.05.17 23:19 Сейчас в теме
Данная обработка только для RFID-считывателя Impinj R420.
5. user1639343 02.08.21 13:47 Сейчас в теме
Добрый день, Сергей.

Скажите пожалуйста, Вы работаете с другими RFİD считывателями помимо İmpinj ?

С уважением,
Саида Рзаева
Оставьте свое сообщение