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

17.12.14

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

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

Скачать исходный код

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

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

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

  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) Бесплатно (free)

Обладая минимальными навыками инженера, вполне можно сделать «умными» относительно недорогие устройства, и управлять всей логикой на 1С. Возможности огромны: управление светом, включением-выключением розеток, автополив, сигнализация и т.д. О самостоятельной реализации в 1С нестандартной логики управления устройствами пойдет речь в статье.

29.02.2024    2015    atland    6    

25

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

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

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

19.06.2023    4152    TitanLuchs    28    

16

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

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

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

1 стартмани

19.12.2022    3051    osivv    8    

22

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

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

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

1 стартмани

26.09.2022    5091    10    atland    0    

24

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

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

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

1 стартмани

24.11.2021    3659    4    pavelmael    6    

6

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

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

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

04.01.2021    48613    osivv    15    

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

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

С уважением,
Саида Рзаева
+
6. yura371 26.03.24 15:18 Сейчас в теме
Добрый день! Будет ли она работать с моделью Impinj R220?
+
Оставьте свое сообщение