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

17.12.14

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Архив с компонентой и примером работы с ней
.zip 220,08Kb ver:1.00
56
56 Скачать (1 SM) Купить за 1 850 руб.

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

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

  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 РФИД ИМПИНЖ радиометки

См. также

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

Управлять умными устройствами можно не только через Алису... Как насчет 1С?

1 стартмани

15.08.2024    812    1    vasilievil    0    

3

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

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

29.02.2024    2727    atland    6    

28

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

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

19.06.2023    4940    TitanLuchs    28    

16

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

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

1 стартмани

19.12.2022    3610    osivv    8    

24

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

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

1 стартмани

26.09.2022    5462    12    atland    0    

25

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

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

1 стартмани

24.11.2021    3902    6    pavelmael    6    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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?
7. Tiger2011 23.09.24 09:52 Сейчас в теме
Добрый день! Будет ли работать с Chainway UR4 ?
Оставьте свое сообщение