Подключение RFID-считывателей SAUK к контроллерам Siemens SIMATIC
Как встроить RFID-идентификацию в АСУ ТП предприятия: считыватель SAUK передаёт данные меток в ПЛК Siemens S7-1200, S7-1500, S7-300/400 напрямую по MODBUS TCP и MODBUS RTU или через шлюзы PROFINET и PROFIBUS DP. Дальше данные идут в SCADA, MES и ERP.
Содержание
1RFID в АСУ ТП предприятия
RFID-считыватель SAUK работает на полевом уровне автоматизированной системы управления технологическим процессом (АСУ ТП). Он идентифицирует объект — поддон, контейнер, тару, автомобиль, инструмент, изделие на конвейере — и передаёт данные метки вверх: в программируемый логический контроллер (ПЛК) Siemens SIMATIC, оттуда в SCADA-систему диспетчеризации, в MES для учёта производства и в ERP для управления предприятием.
1.1Где это применяется
Конвейер и сборка
Идентификация изделия или спутника на каждом посту, выбор рецептуры и программы обработки в ПЛК.
Прослеживаемость продукции
Связка «метка — партия — операция — время» для MES: кто, когда и на каком участке обработал изделие.
Склад и логистика
Учёт поддонов, контейнеров и возвратной тары на воротах, погрузчиках и в зонах отгрузки.
Транспорт на территории
Автоматические шлагбаумы, весовые, пропуск техники и учёт рейсов — с передачей событий в АСУ ТП.
2Способы подключения к Siemens
Считыватель SAUK работает как ведомое устройство MODBUS: контроллер или шлюз сам опрашивает его и забирает данные меток. Протокол описан в документе «Протокол MODBUS RTU и TCP/IP для RFID-считывателей SAUK»: регистры 1000–1077 — метки по антеннам, 2000–2016 — запись в метку. Контроллеры Siemens работают с MODBUS штатно, а для сетей PROFINET и PROFIBUS используется серийный шлюз — прошивка считывателя при этом не меняется.
| Способ | Контроллеры | Что понадобится | Когда выбирать |
|---|---|---|---|
| MODBUS TCP | S7-1200, S7-1500 | Сеть Ethernet; инструкция MB_CLIENT в TIA Portal | Основной вариант: быстро, без дополнительного оборудования |
| MODBUS RTU | S7-1200 (CM 1241), S7-1500 и ET 200SP (CM PtP) | Линия RS-485; коммуникационный модуль; инструкции MODBUS-мастера | Нет Ethernet до места установки, большие расстояния, помехи |
| PROFINET | S7-1200, S7-1500 | Шлюз MODBUS TCP (или RTU) → PROFINET, файл GSDML | Стандарт предприятия требует PROFINET; единая конфигурация в TIA Portal |
| PROFIBUS DP | S7-300, S7-400, S7-1500 с DP | Шлюз MODBUS RTU → PROFIBUS DP, файл GSD | Модернизация действующих линий на PROFIBUS |
2.1Как выбрать способ
3MODBUS TCP — напрямую к S7-1200 / S7-1500
Контроллеры SIMATIC S7-1200 и S7-1500 умеют MODBUS TCP без дополнительных модулей: встроенный порт PROFINET одновременно работает как обычный Ethernet. Контроллер выступает клиентом (мастером) MODBUS TCP, считыватель SAUK — сервером на порту 502. Один считыватель одновременно обслуживает до четырёх клиентов, например ПЛК и SCADA-сервер.
3.1Настройка
- СчитывательВ веб-интерфейсе SAUK: сеть — статический IP-адрес в подсети контроллера; каналы уведомлений — включить «MODBUS TCP/IP». Изменение применяется сразу, без перезагрузки.
- Блок данных в TIA PortalСоздайте DB с массивом из 78 слов (Word) под регистры 1000–1077 или со структурой из раздела 7. Для старых версий инструкции нужен блок со стандартным доступом («Optimized block access» выключен).
- СоединениеПараметр
CONNECTинструкцииMB_CLIENT— структураTCON_IP_v4: IP-адрес считывателя, порт 502, активное установление соединения. - Цикличный опросВызывайте
MB_CLIENTс периодом 100–500 мс: чтение 78 регистров с адреса 1000 в блок данных. - КомандыОтдельные вызовы
MB_CLIENTдля записи — только по событию (по фронту запроса оператора или логики), не в каждом цикле.
| Задача | Функция MODBUS | Регистры SAUK | Параметры MB_CLIENT |
|---|---|---|---|
| Чтение меток | 03 | 1000–1077 (78) | MB_MODE = 0MB_DATA_ADDR = 41001MB_DATA_LEN = 78 |
| Старт / стоп сканирования | 06 | 1000 (0, 1, 2) | MB_MODE = 1MB_DATA_ADDR = 41001MB_DATA_LEN = 1 |
| Запись в метку | 16 | 2000–2016 (17) | MB_MODE = 1MB_DATA_ADDR = 42001MB_DATA_LEN = 17 |
Адрес 1000 или 41001?
В документации SAUK адреса регистров даны с нуля, как их видит протокол: 1000, 2000. Инструкции Siemens в классическом режиме используют нотацию Modicon, где Holding Register №0 — это 40001. Поэтому регистр 1000 задаётся как 41001, регистр 2000 — как 42001. В новых версиях MB_CLIENT есть режимы с явным кодом функции (например, MB_MODE = 103 для функции 03), где указывается адрес протокола без смещения. Точное соответствие режимов и адресов сверяйте со справкой TIA Portal для вашей версии инструкции.
4MODBUS RTU — по линии RS-485
Если до места установки нет Ethernet или линия длинная и в зоне сильных помех, считыватель подключается по RS-485. На одну пару можно повесить несколько считывателей с разными адресами — контроллер опрашивает их по очереди. Со стороны Siemens нужен коммуникационный модуль: CM 1241 RS422/485 (или плата CB 1241) для S7-1200, CM PtP для S7-1500 и станций распределённой периферии ET 200SP.
4.1Настройка
- СчитывательКаналы уведомлений — включить «MODBUS RTU», задать адрес устройства (1…247, свой у каждого считывателя на линии). Скорость — как у канала UART, формат 8 бит, без чётности, 1 стоп-бит (8N1).
- Коммуникационный модульВ TIA Portal: инструкция
MB_COMM_LOAD(для CM PtP —Modbus_Comm_Load) — порт, скорость, чётность «нет», те же параметры, что у считывателя. - ОпросИнструкция
MB_MASTER(Modbus_Master): адрес считывателя, чтение 78 регистров с адреса 1000 (41001 в нотации Siemens). Считыватели на линии опрашиваются по очереди, следующий запрос — после ответа на предыдущий. - ЛинияСогласующие резисторы 120 Ом только на двух крайних устройствах, экран заземляется в одной точке. Для медленных преобразователей интерфейса включите на считывателе «Ответ с отсрочкой» (100 мс).
Порт UART — либо MODBUS RTU, либо UART-уведомления
MODBUS RTU и UART-уведомления считывателя работают на одном порту по очереди: включение одного выключает другое. MODBUS TCP от этого не зависит — считыватель может одновременно отдавать данные по RS-485 контроллеру и по Ethernet SCADA-серверу.
5PROFINET — через шлюз
Когда проект АСУ ТП требует подключения полевых устройств именно по PROFINET, между считывателем и контроллером ставится серийный шлюз MODBUS → PROFINET. Для контроллера Siemens шлюз — обычное устройство PROFINET IO с файлом GSDML: он добавляется в конфигурацию TIA Portal, получает имя в сети, а данные меток приходят в область входов без программирования обмена в ПЛК. Шлюз сам опрашивает считыватель по MODBUS TCP или MODBUS RTU.
5.1Настройка шлюза
- Выбор шлюзаПодойдёт серийный шлюз «MODBUS TCP (или RTU) — PROFINET IO device», например из линеек Moxa MGate, HMS Anybus Communicator, Hilscher netTAP. Проверьте, что конкретная модель поддерживает нужную пару протоколов, и уточните доступность поставки.
- Сторона MODBUSВ программе настройки шлюза: сервер — IP-адрес считывателя, порт 502 (или адрес и скорость для RTU). Команда чтения: функция 03, адрес 1000, 78 регистров, циклически с периодом 100–500 мс → 156 байт входных данных.
- Команды записиФункция 06 в регистр 1000 (сканирование) и функция 16 в регистры 2000–2016 (запись в метку) — в режиме «по изменению данных» или по триггеру. Циклическая отправка повторяла бы команду каждый цикл.
- Сторона PROFINETИмпортируйте GSDML шлюза в TIA Portal, добавьте устройство в сеть PROFINET, назначьте имя устройства и модули входов и выходов нужной длины.
- Порядок байтовMODBUS передаёт старший байт первым, как и контроллеры Siemens, — перестановка байтов в шлюзе не нужна.
Вариант на оборудовании Siemens: ET 200SP с CM PtP
Если на объекте используется распределённая периферия ET 200SP, считыватель можно подключить по RS-485 к модулю CM PtP в станции ET 200SP. Станция связана с контроллером по PROFINET, а обмен MODBUS RTU ведёт программа ПЛК инструкцией Modbus_Master. Сторонний шлюз в этом случае не нужен, всё настраивается в TIA Portal.
6PROFIBUS DP — через шлюз
На действующих линиях с контроллерами S7-300 и S7-400 полевые устройства часто связаны по PROFIBUS DP. Считыватель SAUK подключается к такой сети через шлюз MODBUS RTU → PROFIBUS DP: шлюз опрашивает считыватель по RS-485 как мастер MODBUS, а в сети PROFIBUS работает ведомой станцией DP с файлом GSD. Контроллер видит данные меток в своей области входов так же, как у любой другой DP-станции.
- ШлюзСерийный шлюз «MODBUS RTU мастер — PROFIBUS DP slave» (линейки Moxa MGate, HMS Anybus Communicator, Hilscher netTAP и др.). На стороне MODBUS: адрес считывателя, скорость 8N1, чтение 78 регистров с адреса 1000; команды 06 и 16 — по изменению данных.
- Конфигурация DPИмпортируйте GSD-файл шлюза в STEP 7 или TIA Portal, задайте адрес станции DP и модули входов и выходов нужной длины.
- КабельСеть PROFIBUS прокладывается штатным фиолетовым кабелем со штекерами PROFIBUS и включёнными терминаторами на крайних станциях.
Обычный преобразователь RS-485 не заменит шлюз
PROFIBUS DP тоже работает по RS-485, но это другой протокол: ведомая станция должна определять скорость сети, проходить настройку от мастера и отвечать в жёстко заданное время. Простой преобразователь интерфейса этого не делает — нужен именно шлюз с поддержкой PROFIBUS DP.
7Данные метки в памяти контроллера
При любом способе подключения контроллер получает один и тот же блок: 78 регистров MODBUS с адреса 1000, то есть 156 байт. Первые 4 байта — флаги меток и результат записи, дальше четыре одинаковых блока по 38 байт — по одному на антенну.
| Смещение в блоке антенны | Регистр (антенна 1) | Тип в S7 | Содержимое |
|---|---|---|---|
| +0 | 1002 | Word | Число меток у антенны |
| +2 | 1003–1004 | UDInt | Время обнаружения — Unix-время (секунды с 01.01.1970, UTC) |
| +6 | 1005 | Word | Счётчик чтений метки (CNT) |
| +8 | 1006 | Int | RSSI, дБ (отрицательное число) |
| +10 | 1007 | Word | Банк EPC (0x01) и длина EPC в байтах |
| +12 | 1008–1013 | Array[0..11] of Byte | EPC метки |
| +24 | 1014 | Word | Банк доп. данных (TID 0x02, USER 0x03) и длина |
| +26 | 1015–1020 | Array[0..11] of Byte | TID или данные USER |
7.1Типы данных (UDT) для TIA Portal
Готовые пользовательские типы повторяют раскладку байт — блок данных из них можно указать приёмником для MB_CLIENT или привязать к области входов шлюза.
TYPE "SAUK_Antenna"
VERSION : 0.1
STRUCT
TagCount : Word; // 1002: число меток у антенны
DetectTime : UDInt; // 1003–1004: время обнаружения, Unix-время
ReadCount : Word; // 1005: CNT
Rssi : Int; // 1006: RSSI, дБ
EpcBankLen : Word; // 1007: банк 0x01 и длина EPC
Epc : Array[0..11] of Byte; // 1008–1013: EPC
DataBankLen : Word; // 1014: банк и длина доп. данных
Data : Array[0..11] of Byte; // 1015–1020: TID / USER
END_STRUCT;
END_TYPE
TYPE "SAUK_Reader"
VERSION : 0.1
STRUCT
TagFlags : Word; // 1000: метки в поле антенн [4:3:2:1]
EncodeResult : Word; // 1001: результат записи в метку
Ant : Array[1..4] of "SAUK_Antenna"; // 1002–1077: блоки антенн
END_STRUCT;
END_TYPE Несколько меток у одной антенны
Если в поле антенны несколько меток, каждый опрос блока антенны возвращает следующую метку по кругу («эстафета»). Контроллер собирает список меток за несколько циклов опроса, например по уникальному EPC. Одна метка в поле возвращается в каждом цикле.
8SCADA, MES и ERP
Данные меток, попавшие в контроллер Siemens, становятся обычными тегами АСУ ТП и дальше распространяются стандартными средствами:
- SCADA / HMI. Панели и SCADA-системы (WinCC, WinCC Unified и другие) читают теги контроллера штатным драйвером S7 — оператор видит, какой объект у какого поста, и события идентификации попадают в архивы и тренды.
- OPC UA. Контроллеры S7-1500 имеют встроенный сервер OPC UA: MES, системы учёта и аналитики получают данные меток по открытому стандарту Индустрии 4.0 без собственных драйверов.
- MES и ERP. События «метка — пост — время» становятся основой прослеживаемости продукции, учёта партий и движения тары; ERP (1С, SAP) получает фактические данные о приходе, отгрузке и перемещениях.
- SCADA напрямую. Большинство SCADA-систем, в том числе отечественные (MasterSCADA, TRACE MODE, SIMP Light), умеют MODBUS TCP. Если ПЛК в цепочке не нужен, SCADA-сервер может опрашивать считыватель сам — считыватель обслуживает до четырёх клиентов одновременно.
Диспетчеризация
События идентификации на мнемосхемах SCADA, журналы и отчёты по сменам.
Прослеживаемость
Генеалогия изделия в MES: какие операции, когда и на каком оборудовании.
Управление предприятием
Автоматический учёт движения ТМЦ и тары в ERP без ручного ввода.
9Рекомендации по внедрению
- Опрос одним запросом. Читайте все 78 регистров (или блок антенны целиком) одним запросом: так данные метки согласованы, а эстафета не перескакивает посередине блока.
- Период опроса 100–500 мс. Этого достаточно для конвейера и ворот; более частый опрос нагружает сеть без выигрыша.
- Команды — только по событию. Запись в метку (функция 16) и управление сканированием (функция 06) отправляйте по фронту сигнала, а не в каждом цикле. Результат записи читается из регистра 1001.
- Один мастер на данные меток. Эстафета меток общая для всех клиентов. Если данные нужны и ПЛК, и SCADA, пусть считыватель опрашивает один из них, а второй берёт данные у первого.
- Точное время. Включите на считывателе синхронизацию времени (NTP) — тогда поле «время обнаружения» совпадает со временем АСУ ТП и MES.
- Сеть АСУ ТП. Размещайте считыватели в сегменте сети автоматизации, а не в офисной сети; смените пароль веб-интерфейса, указанный в паспорте, при вводе в эксплуатацию.
- Проверка до ПЛК. Перед программированием контроллера проверьте обмен с компьютера любой программой-мастером MODBUS (например, Modbus Poll): чтение 1000–1077 должно возвращать данные меток.
Документация по протоколу
Полная карта регистров, коды ошибок, формат записи в метку и примеры кадров — в документе «Протокол MODBUS RTU и TCP/IP для RFID-считывателей SAUK».