Контроллер KP-HART.М2 — руководство по эксплуатации | СКБ "Промавтоматика"
Контроллер KP-HART.М2
1. Назначение
Контроллер расширения КР-HART.М2 (далее контроллер) предназначен для сбора данных с устройств, поддерживающих HART-протокол, и передачи этих данных по MODBUS-протоколу.
2. Технические характеристики
| Параметр | Значение |
|---|---|
| Амплитуда входного HART-сигнала, В | 0,06 … 1,0 |
| Амплитуда выходного HART-сигнала на нагрузку 230 … 1100 Ом, В | 0,3 ± 0,1 |
| Входное сопротивление HART-входа постоянному току, не менее | 10 МОм (без перемычки R250) 250 Ом (с установленной перемычкой R250) |
| Входной импеданс HART-входа, не менее, Ом | 1100 |
| Выходной импеданс HART-выхода, не более, Ом | 700 |
| Метод модуляции HART-сигнала | Частотный сдвиг 1200/2200 Гц |
| Количество подключаемых HART-устройств: — режим «точка-точка» — многоточечный режим (режим «моноканала») | 1 1…15 |
| Длина линии связи с HART-устройствами, не более: — режим «точка-точка», м — многоточечный режим, м | 3000 100 |
| Порты связи с ПК или контроллером верхнего уровня | RS-232, RS-485, USB |
| Электрическая прочность между HART-входом и портом RS-232/RS-485, не менее | 500 В переменного тока |
| Питание | — от USB-порта ПК — от внешнего источника напряжением (5 … 24) В и током не менее 100 мА |
| Потребляемый ток | Не более 20 мА в режиме RS-232/USB Не более 100 мА в режиме RS-485 |
| Параметры передачи данных по RS-232/RS-485: — скорость, бод — четность — длина слова, бит — количество стоп-бит, бит | 1200-115200 NONE/EVEN/ODD 8 1-2 |
| Длина линии RS-232, не более, м | 10 |
| Длина линии RS-485, не более, м | 1500 |
| Количество абонентов RS-485, не более | 32 |
| Параметры порта USB: — длина линии связи, не более, м — способ подключения | 5 Разъём Type-C |
| Степень защиты от воздействий окружающей среды | IP 40 |
| Условия эксплуатации: Температура окружающей среды (исполнение 1), °C Температура окружающей среды (исполнение 2), °C Верхнее значение относительной влажности воздуха, % | +1 … +85 минус 40 … +85 95 |
| Габаритные размеры, мм | 62,4 × 107,2 × 17,8 |
| Способ монтажа | На DIN-рейку EN60715 TH35-7.5 35 мм |
| Вес, не более, г | 60 |
3. Состав изделия
| Наименование | Обозначение | Кол-во | Примечание |
|---|---|---|---|
| Контроллер КР-HART.М2.1 Контроллер КР-HART.М2.2 | КГПШ 407374.017-01 | 1 | Исполнение 1 по диапазону температур Исполнение 2 по диапазону температур |
| Паспорт | КГПШ 407374.017-01ПС | 1 | |
| Руководство по эксплуатации | КГПШ 407374.017-01РЭ | На сайте www.skbpa.ru | |
| Кабель связи RS-232 | КГПШ 407374.017-02 | По доп. заказу | |
| Кабель USB для программирования | USB A-Type C | По доп. заказу | |
| Программа конфигурирования | «Настройка КР (USB)» | На сайте www.skbpa.ru | |
| Блок питания | По доп. заказу |
Обозначение контроллера при заказе: Контроллер расширения КР-HART.М2.1, где последняя цифра — тип исполнения (1 или 2) по диапазону температуры эксплуатации.
4. Устройство и работа
Контроллер обеспечивает циклический опрос от 1-го до 15-ти HART-устройств. В случае подключения одного HART-устройства ему присваивается нулевой адрес, и выходной токовый сигнал может изменяться в диапазоне 4-20 мА. При подключении от 2-х до 15-ти HART-устройств каждому из этих устройств присваивается ненулевой адрес от 1 до 15. При этом все устройства работают в режиме моноканала, т.е. выходной ток каждого из устройств фиксирован и равен 4 мА.
С каждого HART-устройства возможно считывание статуса устройства, первичной переменной, 2-х, 4-х или 8-ми назначенных динамических переменных и кодов единиц измерения (считывание более 4-х переменных возможно только для устройств, поддерживающих HART-протокол ревизии 6 и выше). Текущее значение этих параметров может быть считано через интерфейс RS-232/RS-485/USB по MODBUS-протоколу. Описание протокола MODBUS приведено в Приложении 1.
Настройка контроллера выполняется при помощи программы конфигурирования «Настройка КР (USB)», доступной на сайте www.skbpa.ru. Программа конфигурирования позволяет:
- задать количество опрашиваемых HART-устройств, назначить или изменить их адреса;
- назначить тип мастер-устройства (primary/secondary);
- задать параметры обмена контроллера по протоколу MODBUS;
- переназначить динамические переменные HART устройств;
- осуществлять мониторинг опрашиваемых переменных.
Контроллер, с одной стороны, обрабатывает поступающий на HART-вход частотно-модулированный сигнал, а с другой — обеспечивает связь с ПК или контроллером верхнего уровня по интерфейсам RS-232, RS-485 или USB по протоколу MODBUS RTU. В обрабатываемом частотно-модулированном HART-сигнале частоте 1200 Гц соответствует логическая единица, а 2200 Гц — логическому нулю. Амплитуда тока HART-сигнала равна примерно 0,5 мА, скорость передачи по HART-каналу составляет 1,2 кбит/с. Параметры обмена по протоколу MODBUS задаются пользователем (номер клиента, скорость, четность) при помощи программы конфигурирования, входящей в комплект поставки.
Контроллер, кроме сканирования HART-переменных и их распределения по MODBUS-регистрам, имеет возможность трансляции любых HART-команд и ответов на них, что позволяет читать дополнительные данные с HART-устройств и модифицировать их параметры через MODBUS-протокол. В отличие от предыдущей версии контроллера КР-HART значительно упрощён алгоритм работы через MODBUS-HART шлюз (далее шлюз):
- запросы формируются с коротким адресом HART-устройства, поэтому не требуется предварительно определять идентификатор HART-устройства (идентификатор вычитывается автоматически);
- шлюз можно использовать одновременно со всех интерфейсов.
Электронная часть контроллера смонтирована на плате, помещённой в пластмассовый корпус для установки на DIN-рейку. Чертёж корпуса контроллера приведён на рис. 1.

На корпусе расположены винтовые клеммы, два светодиодных индикатора и разъём USB. К клеммам подключаются интерфейсные сигналы RS-232, RS-485, перемычка для подключения терминатора линии RS-485, HART-сигнал, перемычка для шунтирования HART линии резистором 250 Ом и внешний источник питания. Через разъём USB производится подключение компьютера для настройки контроллера и опроса переменных.
Светодиодный индикатор MODBUS указывает направление передачи TX/RX по каналу связи RS232/RS485 (зелёный цвет соответствует приёму, красный — передаче). Светодиодный индикатор HART указывает направление передачи TX/RX по каналу связи HART (зелёный цвет соответствует приёму, красный — передаче).
| Обозначение клеммного контакта | Назначение сигнала | |
|---|---|---|
| RS-485 | A | Линия A интерфейса RS-485 |
| RS-485 | B | Линия B интерфейса RS-485 |
| RS-485 | T | Перемычка на соседнюю клемму «B» подключает нагрузку 120 Ом на линию RS-485 |
| RS-232 | ОБЩ | Общий интерфейса RS-232 |
| RS-232 | TxD | Выход, данные от контроллера |
| RS-232 | RxD | Вход, данные к контроллеру |
| HART | HART | HART-сигнал |
| HART | HART | HART-сигнал |
| HART | R250 | Перемычка на соседнюю клемму «HART» подключает нагрузку 250 Ом на линию HART |
| ПИТАНИЕ | +5..24 В | Вход внешнего источника питания (плюс) |
| ПИТАНИЕ | ОБЩ | Вход внешнего источника питания (минус) |
Питание контроллера может осуществляться как от ПК или контроллера верхнего уровня по интерфейсу USB, так и от внешнего источника, поставляемого по дополнительному заказу. Внешний источник питания может быть подключен на клеммы «ПИТАНИЕ» «+5..24В» и «ОБЩ».
Перед началом работы контроллер необходимо настроить через программу конфигурирования «Настройка КР (USB)», подключив контроллер к порту USB ПК кабелем USB A-B. При программировании питание контроллера осуществляется от порта USB, внешний блок питания не требуется.
5.1. Подключение оборудования
Подключение датчиков с выходным HART-сигналом к контроллеру производится к неполярным клеммам HART.
Если на HART-шину подключен один HART-датчик, то пользователь может устанавливать короткие адреса датчика из диапазона от 0 до 15. В случае установки адреса 0 датчик будет работать в режиме выходного тока 4-20 мА (схема на рис. 2).

В случае установки адреса из диапазона от 1 до 15 датчик перейдёт в режим «моноканал» и зафиксирует свой выходной ток на уровне 4 мА. Нагрузочный резистор в общей цепи коммуникационного канала необходим для исключения шунтирования блоком питания цепи передачи HART-сигнала.
В случае, когда на HART-шину подключено более одного датчика, пользователю необходимо убедиться, что у каждого датчика установлен свой уникальный адрес из диапазона от 1 до 15. В этом случае все датчики будут работать в режиме «моноканал» (выходной ток фиксирован на уровне 4 мА).

Вместо внешнего резистора 250 Ом можно использовать встроенный в контроллер резистор 250 Ом мощностью 1 Вт. Варианты схем с подключением датчиков к контроллеру с использованием встроенного в контроллер резистора показаны на рис. 4, 5.


Необходимым условием для передачи HART-сигналов является то, что нагрузка в общей цепи коммуникационного канала должна быть в пределах 230...1100 Ом. Значение этого резистора в пределах указанного диапазона выбирается таким, чтобы с учётом тока, протекающего в коммуникационной цепи, обеспечивалось питание датчиков не ниже минимально допустимой величины. Кроме этого, необходимо правильно подбирать мощность этого резистора с учётом максимального значения протекающего через него тока.
Кроме омической нагрузки, следует принимать во внимание индуктивную и ёмкостную нагрузки общей цепи (причём как самого контроллера, так и используемого кабеля, поскольку из-за них происходят задержки и затухание частотной составляющей HART-сигнала). Оценочный критерий для передачи информации по HART-каналу может быть следующий: общее сопротивление (в единицах измерения Ом) всех устройств в канале (включая сопротивление кабеля), умноженное на суммарную ёмкость (в единицах измерения мкФ) всех устройств (включая ёмкость кабеля), не должно превышать значения, равного 65 (например, 250 Ом * 0.1 мкФ = 25). На практике для выполнения этого критерия необходимо обеспечивать длину линии связи с HART-устройствами примерно до 3000 м для режима «точка-точка» и до 100 м — для многоточечного режима.
К ПК контроллер может подключаться по интерфейсам RS-232, RS-485, USB.
При подключении контроллера по интерфейсу RS-232 линии связи следует подключать к соответствующим клеммам контроллера, приведённым в таблице 2.
При подключении контроллера по интерфейсу RS-485 линии связи интерфейса RS-485 следует подключать к соответствующим клеммам контроллера A и B. Для линий связи следует применять специальный кабель типа «витая пара», причём при длине линии более 50 м рекомендуется применять экранированную витую пару. Схема соединений устройств на линии RS-485 должна быть последовательной, а не лучевой относительно ПК.
При подключении контроллера к физической линии RS-485 следует установить согласующие нагрузки 120 Ом в устройствах, находящихся на концах связного кабеля. В случае, если контроллер находится на конце кабеля, согласующая нагрузка в нём подключается установкой перемычки между клеммами B и T группы RS-485.
При подключении контроллера по интерфейсу USB следует использовать стандартный кабель USB A-Type C, поставляемый по заказу.
USB интерфейс имеет высший приоритет: при подключении к нему остальные порты связи блокируются. Без использования порта USB контроллер может работать через порты RS-232 и RS-485 одновременно с двумя мастер-устройствами.
5.2. Работа с программой конфигурирования
Для конфигурирования подключите контроллер к персональному компьютеру через интерфейс USB. Установите на ПК программу конфигурирования «Настройка КР (USB)». Для установки программы конфигурирования необходим ПК со следующими характеристиками:
- процессор P-100 (или выше);
- монитор с разрешением — не менее 1024x768 pixel;
- память HD — не менее 10 Мбайт;
- операционная система — Microsoft Windows 7, 8, 8.1, 10, 11;
- USB-порт.
После запуска программы появляется экран основного меню программы (рис. 6).

Для того чтобы начать настройку параметров конфигурации контроллера, необходимо нажать кнопку «Установить связь». Для редактирования доступны следующие группы параметров:
- «Описание KP-HART» в разделе «Контроллер»;
- «Параметры MODBUS»;
- «Формат выдачи переменных»;
- «Параметры HART»;
- «Настройка HART-устройств».
Детальное описание каждого из параметров разделов будет появляться в нижней части экрана программы после выбора параметра.
Отдельно стоит обратить внимание на параметр «Список HART-устройств». После нажатия на кнопку (рис. 7) пользователь получит возможность добавлять HART-устройства в опрос или исключать их из опроса (рис. 8).

Для корректного опроса датчиков КР-HART необходимо назначить им уникальные адреса (0-15). В случае, если датчиков на линии больше одного, то использование нулевого адреса недопустимо!

Если контроллер сконфигурирован для вычитывания 8-ми переменных, то необходимо назначить коды переменных для считывания. Для этого необходимо перейти в режим изменения списка HART-устройств и в появившемся окне назначить требуемые переменные (см. рис. 9). Коды переменных зависят от типа устройства и чаще всего отличаются у разных производителей, для чего необходимо использовать техническую документацию на прибор. Существует несколько общих кодов, которые присутствуют в каждом HART-устройстве:
- 243d — время жизни батареи (float в днях);
- 244d — процент шкалы;
- 245d — ток в токовой петле;
- 246d — первичная переменная PV (назначенная в HART-устройстве);
- 247d — вторичная переменная SV (назначенная в HART-устройстве);
- 248d — третичная переменная TV (назначенная в HART-устройстве);
- 249d — четверичная переменная QV (назначенная в HART-устройстве).

Также программа настройки позволяет производить смену адреса и назначение динамических переменных HART-устройств.
Приложение 1.1. Протокол MODBUS RTU: поддерживаемые функции
Описание протокола MODBUS RTU и алгоритма трансляции HART-команд через шлюз (версия КР 2.0, версия ПО 1.0).
Формат кадра: ADDR, FUNC, DATA, DATA, … CRCL, CRCH — адрес КР (диапазон адресов для КР — 00h…F7h), запрашиваемая функция, передаваемые данные (зависят от функции, могут отсутствовать), контрольная сумма.
03 Read Holding Registers (Чтение системных регистров). КР имеет 101 двухбайтный регистр с адресами 100h…164h, содержащих информацию о настройках КР, и 64 двухбайтных регистра с адресами 300h…33Fh для шлюза HART-команд. Эта команда доступна для чтения при любом адресе КР. Описание регистров: таблица 1. Одновременно можно запросить не более 101 регистра. Данные регистров в ответе передаются как 2 байта на регистр: для каждого регистра первый байт содержит старшие биты, второй байт содержит младшие биты.
04 Read Input Registers (Чтение HART регистров). КР имеет 338 двухбайтных регистра с адресами 00h…151h, содержащих информацию о группировке HART регистров, статусе контроллера и значениях переменных HART-устройств. Эта команда доступна для чтения при любом адресе КР. Описание регистров: таблицы 2, 3. Адресация регистров зависит от количества считываемых переменных, количества опрашиваемых устройств и заданного порядка группировки переменных по регистрам. Одновременно можно запросить не более 125 регистров.
Статус HART-устройств и коды единиц измерения соответствуют стандарту HART протокола. Значение FFh обоих байтов статуса HART-устройств означает отсутствие связи с данным HART-устройством. Значение FFFEh статуса HART-устройств означает отсутствие достоверных данных от HART-устройства (при старте KP-HART).
06 Preset Single Register (Запись единичного регистра). Запись разрешена в регистры 100h-120h и 125h-164h по любому адресу КР через интерфейс USB (режим конфигурирования) при заданном значении 03E8h регистра 0FFh. При сбросе контроллера значение регистра 0FFh устанавливается в 0, тем самым запрещая запись в регистры настройки. Запись в регистры 200h и 300h-328h может осуществляться как через интерфейс USB в режиме конфигурирования, так и через интерфейсы RS485 и RS232 по адресу КР, заданному в регистре 101h. Запись в регистр 200h значения 03E8h вызывает программный сброс КР и обновление всех настроек из EEPROM. Запись в регистр 200h значения 07D0h вызывает программный сброс КР и установку «по умолчанию» всех настроек (в том числе и в EEPROM).
16 (10 Hex) Force Multiple Register (Запись группы регистров). Доступны по записи регистры, описанные для команды 06 (Preset Single Register). Возможна запись сразу 102 регистров (адреса 0FFh-164h; в регистры 121h-124h запись осуществляться не будет).
Приложение 1, таблица 1. Приложение 1.2. Таблица 1 — регистры конфигурации контроллера
| Адрес регистра | Описание регистра | Примечание |
|---|---|---|
| 0FFh | Регистр разрешения записи в регистры 100h-120h и 125h-164h (запись разрешена при значении 03E8h регистра). При сбросе контроллера значение данного регистра устанавливается в 0. | запись возможна только по адресу 0 |
| 100h | Регистр параметров последовательного порта КР (по умолчанию 0003h). Ст. байт: 00h — четность отключена; 01h — четность EVEN; 02h — четность ODD. Мл. байт: 00h — 1200 бод; 01h — 2400 бод; 02h — 4800 бод; 03h — 9600 бод; 04h — 19200 бод; 05h — 38400 бод; 06h — 57600 бод; 07h — 115200 бод. | защита записи, запись возможна только по адресу 0. При записи в этот регистр его новое значение (и изменение параметров порта) вступает в силу только после сброса КР! |
| 101h | Адрес КР (мл. байт) (по умолчанию 01h). Адрес может иметь значение 1-247. | защита записи, запись возможна только по адресу 0 |
| 102h | Порядок группировки HART регистров (по умолчанию 0000h). Ст. байт: 00h — КР читает 1 переменную из 1-16 HART-устройств; 01h — 2 переменных; 02h — 4 переменных; 03h — 8 переменных (rev 6,7). Мл. байт: 00h — группировка по переменным (первая переменная от всех HART-устройств, затем вторая и т.д.); 01h — группировка по HART-устройствам (все переменные от одного устройства, затем все переменные от следующего и т.д.) | защита записи, запись возможна только по адресу 0 |
| 103h | Значение HART-переменных при пропадании связи с HART-устройством (по умолчанию 0000h): 0000h — сохраняется последнее значение; 0001h — устанавливается в 0; 0002h — устанавливается в NaN (по стандарту IEEE-754) | защита записи, запись возможна только по адресу 0 |
| 104h | Порядок следования байт HART-переменных типа float (по умолчанию 0000h): 0000h — в первом регистре младшие биты, во втором регистре старшие биты; 0001h — в первом регистре старшие биты, во втором регистре младшие биты | защита записи, запись возможна только по адресу 0 |
| 105h | Количество опрашиваемых HART-устройств (по умолчанию 0000h). Может принимать значения от 0 до 16. | защита записи, запись возможна только по адресу 0 |
| 106h | Режим КР в HART протоколе (по умолчанию 0000h): 0000h — Primary Master Mode; 0001h — Secondary Master Mode. | защита записи, запись возможна только по адресу 0 |
| 107h | Количество повторных запросов в HART протоколе (по умолчанию 0001h). Может принимать значения от 1 до 3. | защита записи, запись возможна только по адресу 0 |
| 108h | Разрешение пакетного режима в HART протоколе (по умолчанию 0000h): 0000h — нормальный режим; 0001h — пакетный режим (только при значении регистра 105h равным 1) | защита записи, запись возможна только по адресу 0 |
| 109h-118h | Таблица адресов опрашиваемых HART-устройств. Допустимое значение адреса 0-15. Опрашиваются первые по данной таблице адреса в количестве, определяемом регистром 105h | защита записи, запись возможна только по адресу 0 |
| 119h-120h | Строка описания КР-HART 16 символов (119h ст. — 1 символ, 119h мл. — 2 символ и т.д.) | защита записи, запись возможна только по адресу 0 |
| 121h | Номер версии программного обеспечения. Ст. байт: версия; мл. байт: ревизия | только чтение |
| 122h | Номер версии аппаратного обеспечения. Ст. байт: версия; мл. байт: ревизия | только чтение |
| 123h-124h | Заводской номер КР (идентификатор) (123h — ст. часть числа, 124h — мл. часть) | только чтение |
| 125h-164h | Коды опрашиваемых переменных для конфигураций 0300h и 0301h (используются для команды 9 HART-протокола) (125h ст. — 1-ая переменная 1-го HART-устройства, 125h мл. — 2-ая переменная 1-го HART-устройства, … 164h мл. — 8-ая переменная 16-го HART-устройства.) | защита записи, запись возможна только по адресу 0 |
| 300h-328h | Буфер шлюза HART-команд |
Приложение 1, таблицы 2–3. Приложение 1.3. Таблицы 2–3 — расположение HART-переменных
Таблица 2. Регистры расположения HART-переменных при группировке «по переменным» (только чтение командой 4).
| Адрес регистра | Описание регистра |
|---|---|
| 1 конфигурация: значение регистра конфигурации 102h = (0000h). С 1-16 HART-устройств считывается 1 переменная | |
| 00h | дублирует значение регистра 102h=(0000h) |
| 01h | статус контроллера КР-HART (таблица 4) |
| 02h-11h | статус 1-16 HART-устройств |
| 12h-19h | коды единиц измерений переменных 1-16 HART-устройств (12h/ст. — код единицы измерения переменной 1 HART-устройства, 12h/мл. — переменной 2 HART-устройства, и т.д.) |
| 1Ah-39h | значения переменных типа float (1Ah,1Bh — значение переменной 1 HART-устройства, 1Ch,1Dh — значение переменной 2 HART-устройства, и т.д.) |
| 2 конфигурация: 102h = (0100h) — считывается 2 переменных: 00h — копия 102h; 01h — статус КР; 02h-11h — статус устройств; 12h-21h — коды единиц; 22h-41h — значения первых переменных; 42h-61h — значения вторых переменных | |
| 3 конфигурация: 102h = (0200h) — считывается 4 переменных: 00h — копия 102h; 01h — статус КР; 02h-11h — статус устройств; 12h-31h — коды единиц; 32h-51h / 52h-71h / 72h-91h / 92h-B1h — значения 1-х/2-х/3-х/4-х переменных | |
| 4 конфигурация: 102h = (0300h) — считывается 8 переменных: 00h — копия 102h; 01h — статус КР; 02h-11h — статус устройств; 12h-51h — коды единиц; 52h-71h, 72h-91h, 92h-B1h, B2h-D1h, D2h-F1h, F2h-111h, 112h-131h, 132h-151h — значения 1-й…8-й переменных 1-16 HART-устройств |
Таблица 3. Регистры расположения HART-переменных при группировке «по HART-устройствам» (только чтение командой 4).
| Адрес регистра | Описание регистра |
|---|---|
| 5 конфигурация: значение регистра конфигурации 102h = (0001h). С 1-16 HART-устройств считывается 1 переменная | |
| 00h | дублирует значение регистра 102h=(0001h) |
| 01h | статус контроллера КР-HART (таблица 4) |
| 02h-05h | данные 1 HART-устройства: 02h — статус, 03h/мл. — код единицы измерения переменной, 04h,05h — значение 1 переменной типа float |
| 06h-41h | данные 2…16 HART-устройств (по 4 регистра на устройство: 06h-09h — 2-е, 0Ah-0Dh — 3-е, … 3Eh-41h — 16-е) |
| 6 конфигурация: 102h = (0101h) — 2 переменных: 02h-07h — данные 1 HART-устройства (статус, коды единиц 1-й и 2-й переменных, значения 2 переменных float); далее по 6 регистров на устройство до 5Ch-61h | |
| 7 конфигурация: 102h = (0201h) — 4 переменных: 02h-0Ch — данные 1 HART-устройства (статус, коды единиц 4 переменных, значения 4 переменных float); далее по 11 регистров на устройство до A7h-B1h | |
| 8 конфигурация: 102h = (0301h) — 8 переменных: 02h-16h — данные 1 HART-устройства (статус, коды единиц 8 переменных, значения 8 переменных float); далее по 21 регистру на устройство до 13Dh-151h |
Приложение 1, таблица 4. Приложение 1.4. Таблица 4 — статус контроллера КР-HART
| Номер бита | Тип | Описание |
|---|---|---|
| 0 | ошибка | ошибка данных конфигурации (устанавливается при недопустимых значениях регистров 100h-118h) |
| 1 | статус | конфигурация установлена «по-умолчанию» (устанавливается при записи в регистр 200h значения 07D0h, сбрасывается при модификации регистров 100h-118h) |
| 2 | статус | был программный рестарт контроллера (сбрасывается автоматически после чтения регистра статуса контроллера) |
| 3–5 | — | |
| 6 | статус | задан пакетный режим (бит устанавливается при значении 1 регистра 108h) |
| 7 | статус | нет поддержки пакетного режима (свойство данной версии ПО контроллера) |
| 8 | ошибка | нет связи с HART-устройствами (устанавливается, если хотя бы с одним описанным HART-устройством нет связи) |
| 9 | ошибка | ошибка пакетного режима HART-устройства (устанавливается при невозможности задать пакетный режим) |
| 10 | статус | режим моноканала HART-устройств (устанавливается при описании HART-устройств с адресом, отличным от 0) |
| 11 | ошибка | HART-линия занята (устанавливается при невозможности получения доступа к HART-линии, например, линия занята сторонним устройством) |
| 12–15 | — |
Приложение 1, таблица 5. Приложение 1.5. Шлюз HART-команд: алгоритм и таблица 5
В контроллере КР-HART имеется возможность трансляции любых HART-команд через MODBUS-протокол. Для этого есть регистровый шлюз с адресами 300h-33Fh. Запись в шлюз осуществляется modbus-командой 6 или 16, а чтение командой 3. Обработка HART-команды осуществляется контроллером без остановки сканирования заданных HART-переменных, внутри текущего цикла опроса HART-устройств. Контроль выполнения записанной HART-команды осуществляется мониторингом регистра 300h (см. таблицу 5).
Для составления правильных HART-команд и разбора ответов необходимо использовать описания применяемых HART-устройств (какие HART-команды они поддерживают) и документацию на HART-протокол: HCF-SPEC-81 (Data Link Layer Specification), HCF-SPEC-99 (Command Summary Information), HCF-SPEC-127 (Universal Command Specification), HCF-SPEC-151 (Common Practice Command Specification), HCF-SPEC-183 (Common Tables), HCF-SPEC-307 (Command Specific Response Code Definitions), HCF-SPEC-500 (HART Device Description Language Specification). Данную документацию можно найти на сайте организации HART Communication Foundation: http://www.hartcomm.org.
Алгоритм работы со шлюзом следующий: 16 modbus-командой записывается HART-команда согласно таблице 5 (можно использовать и 6 modbus-команду, но запись в 300h регистр должна быть последней — эта запись запускает HART-команду в работу, поэтому сама HART-команда должна уже лежать в регистрах). Затем читаем 3 modbus-командой 300h регистр — как только 7 бит ст. байта встал в единицу — ответ пришёл. При этом, если 6 бит равен единице, то за заданное количество повторов (задаётся в регистре 107h) ответ от HART-устройства не получен; если 6 бит равен нулю, то ответ получен и его можно считать (при этом биты 0-5 старшего байта регистра 300h будут содержать данные о том, сколько регистров надо считать, начиная с адреса 301h, для получения всех байт ответа).
Время ожидания ответа может отличаться от запроса к запросу. На это может влиять отсутствие связи с одним или несколькими HART-устройствами, количество повторов (регистр 107h). Если устройство, с которым необходимо связаться, ещё не участвовало в опросе, то время ожидания ответа будет несколько больше обычного (к устройству уйдёт две команды: одна команда с номером 0 для получения длинного адреса и затем запрошенная пользователем команда). Исходя из вышесказанного, лучше полагаться на состояние 7-го бита старшего байта регистра 300h — по его состоянию пользователь сможет точно определить готовность ответа.
| Адрес регистра | Запись (отправка команды) | Чтение (получение ответа) | |
|---|---|---|---|
| 300h | ст. байт, 7 бит | всегда 0 | 0 — ждём ответа / 1 — ответ готов |
| 300h | ст. байт, 6 бит | всегда 0 | 0 — ошибок нет / 1 — ошибка приёма |
| 300h | ст. байт, 0-5 биты | резерв (не используются) | количество двухбайтовых регистров для чтения ответа |
| 300h | мл. байт | адрес | адрес |
| 301h | ст. байт | команда | команда |
| 301h | мл. байт | число байт данных | число байт данных |
| 302h | ст. байт | данные (если есть) | статус 1 |
| 302h | мл. байт | данные (если есть) | статус 2 |
| 303h | ст./мл. байт | данные (если есть) | данные (если есть) |
| 304h-33Fh | данные (если есть) | данные (если есть) |
Начиная с аппаратной ревизии 1.1, HART-команда записывается в регистры в упрощённом виде. Необходимо записать только короткий адрес устройства, номер команды, длину команды и данные, если длина отлична от нуля!
Пример обмена (отправка hart-команды 01h — чтение первичной переменной, короткий адрес — 04h):
Пишем в KP-HART (адрес клиента MODBUS = 1, номер MODBUS-команды = 16):
Запрос: 01h 10h 03h 00h 00h 02h 04h 00h 04h 01h 00h A7h 0Eh
Ответ: 01h 10h 03h 00h 00h 02h 41h 8Ch
Начинаем читать из KP-HART:
Запрос: 01h 03h 30h 00h 00h 01h 84h 4Eh
Ответ: 01h 03h 02h 00h 04h B9h 87h
Анализ показывает, что 7-ой и 6-ой биты стоят в нуле — ответ ещё не готов, продолжаем читать:
Запрос: 01h 03h 30h 00h 00h 01h 84h 4Eh
Ответ: 01h 03h 02h 85h 04h DBh 17h
Здесь мы видим, что 7-ой бит теперь равен 1, 6-ой бит равен 0, а значение, лежащее в битах 0-5, равно 5. Это значит, что ответ готов и пользователь должен запросить 5 регистров, начиная с адреса 301h. Если бы в регистре 300h было записано C0h 04h, то это было бы сигналом, что ответ так и не был получен.
Запрос: 01h 03h 30h 01h 00h 05h D4h 4Dh
Ответ: 01h 03h 0Ah 01h 07h 00h D8h 05h C2h E2h D6h 00h 00h A5h 4Ah
Таким образом, мы получили ответ от HART-устройства с коротким адресом 04h на запрос команды 01h. Ошибка чтения устанавливается, если HART-устройство не ответило за заданное число попыток или в ответе была ошибка CRC.

