Протокол HART (Highway Addressable Remote Transducer) в основном используется в качестве протокола связи в области промышленной автоматизации. Он также поддерживает передачу аналоговых сигналов (например, сигналов 4–20 м А). Такая конструкция позволяет устройствам HART одновременно передавать аналоговые сигналы и цифровые данные, обеспечивая более гибкие и мощные возможности связи.
Стандартной передачей HART является сигнал FSK (манипуляция движения), наложенный на сигнал 4–20 м А. Альтернативой является сигнал C8PSK (когерентная 8-канальная фазовая манипуляция). Альтернатива повышает скорость цифровой передачи HART. Кроме того, существуют некоторые методы связи HART, основанные на RS-485, IP и TDMA, которые здесь не будут подробно описаны.
В этой статье обсуждается только HART FSK.
Поскольку протокол HART имеет свой собственный уникальный метод связи на физическом уровне, его передача на уровне канала передачи данных использует метод передачи, называемый группой байтов HART. При каждой передаче отправляется несколько 11-битных байтов HART. Части данных в байтах HART объединяются. в действительный кадр данных HART. (Этот процесс без подготовки можно сравнить с процессом отправки длинной последовательности данных через несколько пакетов TCP/IP)
Формат байтов HART следующий:
использовать | стартовый бит | HART-байт | Бит нечетной четности | Стоп-бит |
---|---|---|---|---|
длина | 1bit | 8bit | 1bit | 1bit |
описывать | Фиксировано на 0, что указывает на начало. | Данные HART начинаются с младшего значащего бита (наименьшего значащего бита) и заканчиваются старшим значащим битом (старшим битом). | Используется для проверки данных | Фиксировано до 1, что указывает на конец |
Структура следующая:
использовать | длина | описывать |
---|---|---|
преамбула | 5–20 байт | 5-20 0xFF, используется для начала передачи, |
стартовый байт | 1 байт | Используется для определения начальной позиции пакета данных. |
адрес | 1 или 5 байт | Содержит адрес хоста и адрес подчиненного устройства, 1 байт в коротких кадрах и 5 байт в длинных кадрах. |
Расширять | 0-3 байта | для потенциальных Расширять,длина указывается фактическим байтом |
Заказ | 1 байт | Указывает роль этого фрагмента данных |
Количество байтов | 1 байт | Размер частей состояния и данных в байтах |
состояние | 2 байта | Сообщения, которые существуют только тогда, когда ведомое устройство отвечает ведущему.,Сообщать об ошибках и состоянии |
данные | 0–253 байта | Не все заказы имеют байты данных.,Для хранения данных |
Контрольная сумма | 1 байт | Продольная четность, используется для обнаружения ошибок. |
Преамбула появляется в начале каждого сообщения. Преамбула состоит из последовательности идентичных байтов, обычно последовательных байтов «FF» (11111111 в двоичном формате). Основные функции преамбулы включают в себя несколько аспектов:
структура:
использовать | Тип адреса | Расширенные байты | Тип физического уровня | Тип рамы |
---|---|---|---|---|
длина | 1bit | 2bit | 2bit | 3bit |
описывать | 0: Опрос - адрес байта (короткий кадр) 1: Уникальный байтовый адрес (длинный кадр) | Обычно 00 | 00: Асинхронный (например, FSK) 11: Синхронизация (например, C8PSK | 001: Ответ на пакетный кадр 010: Хост-полевое устройство 110: Полевое устройство для хоста |
адресчасть,1 байт – это короткий кадр,5 байт — это длинный кадр.
Короткий кадр:
использовать | хост-программа | пакетный режим | нулевой | Адрес устройства |
---|---|---|---|---|
длина | 1bit | 1bit | 2bit | 4bit |
описывать | 1: Первый хост 0: Второй хост | 1: Да 0: Нет | всегда 00 |
Длинная рамка:
использовать | хост-программа | пакетный режим | Расширенные типы устройств | Идентификатор устройства |
---|---|---|---|---|
длина | 1bit | 1bit | 14bit | 24bit |
описывать | 1: Первый хост 0: Второй хост | 1: Да 0: Нет |
Часть расширения в основном зарезервирована на будущее и в основном планирует следующие функции:
Команды делятся на три категории: общие, общепринятые (также переводятся как общепринятые) и специфичные для устройства (специальные команды). Общие команды — это те, которым должны следовать все устройства, использующие протокол HART. Следуйте специальным командам — это команды подготовки, специфичные для определенных производителей или моделей оборудования.
Машинный перевод сОфициальный сайт HART Communications Foundation
номер команды | Заказописывать | тип |
---|---|---|
0 | читать Идентификатор устройства | Универсальный |
1 | Чтение основных переменных | Универсальный |
2 | Чтение тока контура и процента диапазона | Универсальный |
3 | Чтение динамических переменных и тока контура | Универсальный |
6 | написать адрес опроса | Универсальный |
7 | Чтение конфигурации контура | Универсальный |
8 | Прочтите классификацию динамических переменных | Универсальный |
9 | Чтение переменных устройства со статусом | Универсальный |
11 | Чтение уникального идентификатора, связанного с тегом | Универсальный |
12 | читать информацию | Универсальный |
13 | Читать этикетки, описывать символы, даты | Универсальный |
14 | Чтение информации о датчике основной переменной | Универсальный |
15 | Чтение информации об устройстве | Универсальный |
16 | Прочитать окончательный номер сборки | Универсальный |
17 | написать сообщение | Универсальный |
18 | Написание тегов, запись символов, дат | Универсальный |
19 | Напишите окончательный номер сборки | Универсальный |
20 | Читать длинные теги | Универсальный |
21 | Прочитайте уникальный идентификатор, связанный с длинным тегом. | Универсальный |
22 | Пишите длинные теги | Универсальный |
38 | Сбросить флаг изменения конфигурации | Универсальный |
48 | Прочитать состояние дополнительных устройств | Универсальный |
33 | Чтение переменных устройства | Общая практика |
34 | Запишите значение демпфирования основной переменной | Общая практика |
35 | Запишите значение диапазона основной переменной. Данные, записанные с помощью команды 35, обновят настройки 4 м А и 20 м А в меню. | Общая практика |
36 | Установите верхнее предельное значение основной переменной | Общая практика |
37 | Установите нижнее значение диапазона основной переменной | Общая практика |
40 | Вход/выход из режима фиксированного тока | Общая практика |
41 | Выполните самопроверку | Общая практика |
44 | Напишите основные переменные единицы | Общая практика |
45 | Отрегулируйте нулевую точку тока контура | Общая практика |
46 | Отрегулируйте усиление тока контура | Общая практика |
47 | Напишите передаточную функцию основной переменной | Общая практика |
54 | Чтение информации о переменной устройства | Общая практика |
59 | Количество преамбул ответов на запись | Общая практика |
71 | Устройство блокировки | Общая практика |
76 | Чтение состояния блокировки устройства | Общая практика |
140 | Запись статистики фермы. Перезапись максимального и минимального значений, записанных устройством. | зависит от устройства |
141 | Чтение статистики фермы Чтение текущих максимальных и минимальных значений с устройства | зависит от устройства |
144 | Запись конфигурации переключателя 1. Запись режима переключателя 1, уставки, зоны нечувствительности, настроек фиксации, настроек задержки. | зависит от устройства |
145 | Чтение конфигурации переключателя 1. Чтение режима переключателя 1, уставки, зоны нечувствительности, настроек фиксации, настроек задержки. | зависит от устройства |
221 | Включить/отключить защиту от записи, изменить пароль. Разрешить включить/выключить режим защиты от записи и разрешить редактирование пароля устройства. | зависит от устройства |
222 | Статус защиты от чтения и записи Чтение состояния защиты устройства от записи | зависит от устройства |
223 | Запись счетчика отключений. Запишите 16-битное целое число без знака в диапазоне от 0 до 9999 в счетчик отключений, связанный с переключателем 1 и переключателем 2. | зависит от устройства |
224 | Переключатели 1 и 2 Считайте значение счетчика срабатываний, связанного с переключателем 1 и переключателем 2, как 16-битное целое число без знака в диапазоне от 0 до 9999. | зависит от устройства |
225 | Ручной сброс Сбрасывает один или несколько переключателей в зафиксированном состоянии. | зависит от устройства |
226 | Чтение состояния фиксации переключателя Прочтите состояние защелок одного или нескольких переключателей. | зависит от устройства |
244 | Запись конфигурации переключателя 2. Запись режима переключателя 2, уставки, зоны нечувствительности, настроек фиксации, настроек задержки. | зависит от устройства |
245 | Чтение конфигурации переключателя 2. Чтение режима переключателя 2, уставки, зоны нечувствительности, настроек фиксации, настроек задержки. | зависит от устройства |
246 | Запись настроек блокирующего порта | зависит от устройства |
247 | Чтение настроек заблокированного порта | зависит от устройства |
248 | Запись смещения и диапазона | зависит от устройства |
249 | Чтение смещения и диапазона | зависит от устройства |
Статус разделен на 1-байтовый код ответа и 1-байтовый код состояния устройства.
При нормальной связи старший бит равен 0, а код ответа:
код ответа | значение |
---|---|
0x00 | Выполнено успешно |
0x02 | Неправильный заказ |
0x03 | Параметры настройки слишком велики |
0x04 | Установка слишком малого количества параметров |
0x05 | Получено слишком мало данных |
0x06 | Специальная ошибка команды |
0x07 | В режиме защиты от записи |
0x08 | 1. Обновление не выполнено. 2. Установлено значение закрытия. 3. Задержка ответа. |
0x09 | 1. Значение нижнего предела диапазона слишком велико. 2. Неправильный режим тока. |
0x0a | 1. Значение нижнего предела диапазона слишком мало. 2. Неверная местная блокировка. |
0x0b | 1. Значение верхнего предела диапазона слишком велико 2. Режим нескольких ведомых устройств 3. Неверный код переменной устройства 4. Настройка выходит за пределы диапазона 5. Невозможно зафиксировать на месте |
0x0c | 1. Значение верхнего предела диапазона слишком мало 2. Неверный код устройства 3. Неверный выбор режима 4. Неверный номер слота |
0x0d | 1. Верхнее и нижнее значения диапазона превышают стандартные 2. Ошибка расчета 3. Неверный номер команды |
0x0e | 1. Диапазон измерения слишком мал. 2. Установленное нижнее предельное значение приводит к изменению верхнего предельного значения и превышению предела датчика. |
0x0f | Неверный номер аналогового канала. |
0x10 | ограниченный доступ |
0x11 | Неверный индекс переменной устройства |
0x12 | Неверный код организации |
0x13 | Применение переменных устройства неразумно |
0x14 | Неверный номер расширенной команды |
0x1c | Неподдерживаемый код устройства |
0x20 | занятый |
0x21 | Начало ответа с задержкой |
0x22 | Отложенный ответ в процессе |
0x40 | Команда не может быть выполнена |
При сбое связи старший бит равен 1, а код ответа:
код ответа | значение |
---|---|
0xc0 | Ошибка четности полученного байта |
0xa0 | Ошибка перезаписи данных буфера приема |
0x90 | Ошибка стопового бита не получена |
0x88 | Проверьте байтовую ошибку |
0x82 | Переполнение буфера приема |
На конкретное значение влияют разные команды, обратитесь к основной информации.
код состояния | значение |
---|---|
0x80 | Отказ оборудования |
0x40 | Изменения параметров конфигурации |
0x20 | Холодный запуск устройства |
0x08 | Фиксированный режим тока контура |
0x04 | ток насыщения контура |
0x02 | Переменная устройства (не сопоставленная с переменной хоста) превышает предел |
0x01 | Основная переменная превышает предел |
Формат части данных зависит от команды и определяется разными командами.