Главная Учебники - Разные Лекции (разные) - часть 14
ТРИМ
Протокол обмена (руководство по программированию) 2.574.007 Д СОДЕРЖАНИЕ
1.3.4 Поле контрольной суммы (КС)
4 2.1 Команда 0х03. Считать значения регистров настроек 5
2.2 Команда 0х04. Считать информацию регистров данных 6
2.3 Команда 0x10. Установить значение регистров настроек 7
3 ТИПЫ ПЕРЕМЕННЫХ и структуры данных 8
3.3 Структура программы регулирования 10
Приложение А СОДЕРЖАНИЕ РЕГИСТРОВ ПАМЯТИ ПРИБОРА 13
Приложение Б Коды ошибок прибора 22
Настоящий протокол обмена 2.574.007 Д является приложением к 2.574.007 РЭ и содержит описание модификации протокола MODBUS для связи измерителя-регулятора ТРИМ (далее просто прибор) с персональным компьютером. В описании переменных протокола во всем документе применяются следующие сокращения: 0х
YY
– адрес в шестнадцатиричной системе исчисления. Например 0х3А соответствует десятичному числу 58
. Запись 0
x
1
AB
LO
, означает, что указанный параметр содержится в младшем (LO) байте регистра 0x1AB. Запись 0
x
1
AB
HI
, означает, что указанный параметр содержится в старшем (HI) байте регистра 0x1AB. Протокол обмена предназначен для связи между приборами, объединенными в сеть с организацией обмена по принципу «MASTER - SLAVE» («Ведущий – ведомый»). При этом лишь MASTER может инициировать операции, называемые ЗАПРОС. SLAVE на ЗАПРОС формируют сообщение ОТВЕТ. Обмен осуществляется в режиме последовательной передачи. Параметры последовательного обмена должны быть одинаковы для всех приборов в сети MODBUS и иметь следующий формат: 1 старт-бит, 8 бит данных, 1 стоп-бит. Протокол MODBUS определяет структуру сообщений ЗАПРОС и ОТВЕТ. Каждый байт в сообщении посылается как два знака ASCII. Главным преимуществом данного режима является то, что он позволяет иметь различные интервалы времени между посылками, без появления ошибки.
Ф
ормат Сообщения Формат сообщения представлен на рисунке 1. Любой байт адреса, команды или данных представляется в виде двух ASCII знаков: в числе 0х62 знаки «6» и «2» представляются и передаются, как 0х36 и 0х32. Старт Адрес Команда Данные КС Стоп 1 знак 2 знака 2 знака N знаков 2 знака 2 знака Сообщения начинаются маркером начала сообщения - знаком двоеточия (:
) (0х3A), заканчиваются маркером конца сообщения - двумя байтами (0хD и 0хA). Поле адреса содержит два знака. Адреса SLAVE находятся в десятичном диапазоне 0-127. Адрес 0 присваивается SLAVE, которые должны отвечать на ЗАПРОС с любым адресом.При формировании запроса MASTER в поле адреса сообщения устанавливает адрес запрашиваемого SLAVE, в ответе в поле адреса возвращается адрес SLAVE. Поле команд содержит два знака - код команды. В ЗАПРОСЕ поле кода команды указывает устройству SLAVE, какое действие предпринять. В ОТВЕТЕ поле команды служит для подтверждения приема ЗАПРОСА. В случае приема без ошибок поле команды повторяет код команды. При ошибке поле команды содержит признак ошибки, сформированный, как код команды, в старшем бите которого значение 1, дополнительно в поле данных ОТВЕТА помещается уникальный код ошибки. Коды ошибок приведены в приложении Б. Например, в поле команды запроса содержится код команды 03h (0000 0011 b
) – “Считать информацию регистров настроек”. Если SLAVE без ошибок принял ЗАПРОС, то в поле адреса ОТВЕТА повторяется исходный код команды 03 (0000 0011 b
), в случае ошибки ОТВЕТ
Название поля
Поле адреса SLAVE 0х5 (0000 0101 b) Поле команды 0х83 (1000 0011 b) Поле данных 0х20 (0010 0000 b) КС --- Рисунок 2 - Структура ОТВЕТА в случае ошибки Поле данных содержит: · в ЗАПРОСЕ – дополнительную информацию, которую использует SLAVE для выполнения команды. · В ОТВЕТЕ, при отсутствии ошибок – запрашиваемые данные, в случае ошибки – код ошибки (смотри - рисунок 2). а)сложить все байты в сообщении, за исключением маркеров начала и конца сообщения в однобайтном поле, исключая перенос. б)выполнить операцию “дополнение до единицы” (вычесть полученное значение из числа 0хFF). в)выполнить операцию “дополнение до двух”, прибавив число 01 к полученному результату п.б). Пример такой операции показан в таблице1. Таблица 1
Адрес 02h 0000 0010 b Поле команды 01h 0000 0001 b Поле данных 1 00h 0000 0000 b Поле данных 2 00h 0000 0000 b Поле данных 3 00h 0000 0000 b Поле данных 4 08h 0000 1000 b Результат п.1) 0Bh 0000 1011 b Результат п.2) F4h 1111 0100 b КС (Результат п.3) F5h 1111 0101 b 2.1 Команда 0х03
. Считать значения регистров настроек
Команда 0х03
служит для чтения регистров настроек. ЗАПРОС
определяет адрес SLAVE, начальный адрес и число регистров настроек, значение которых необходимо считать. Адреса регистров настроек приведены в приложении А
(таблица А1). На рисунке 3 приведен пример “ЗАПРОСА” на чтение регистров настроек 2-4 SLAVE c адресом 17 (0х11). ЗАПРОС
Название поля
Адрес SLAVE 0х11 Код команды 0x03 Начальный адрес HI 0x00 LO 0x01 Число регистров HI 0x00 LO 0x03 КС -- Рисунок 3 - Структура ЗАПРОСА команды 03
. ОТВЕТ
содержит адрес SLAVE, код команды, поле регистров настроек и число байт в поле регистров настроек. Содержимое регистра является шестнадцатиразрядным числом (два байта). На рисунке 4 приведен пример “ОТВЕТА” на ЗАПРОС. ОТВЕТ
Название поля
Адрес SLAVE 0x11 Код команды 0x03 Число байт 0x06 Регистр настроек 02h HI 0x00 LO 0x0A Регистр настроек 03h HI 0x00 LO 0x0B Регистр настроек 04h HI 0x00 LO 0x0C КС -- Рисунок 4 – Структура ОТВЕТА команды 03
Команда 0х04. Считать информацию регистров данных
Команда 0х04
служит для чтения регистров данных. ЗАПРОС
определяет адрес “SLAVE”, начальный адрес и число регистров данных, значения которых необходимо считать. Адреса регистров данных приведены в приложении А (таблица А2). На рисунке 5 приведен пример запроса на считывание регистров данных 2-4 “SLAVE” c адресом ЗАПРОС
Название поля
Адрес SLAVE 0х11 Код команды 0х04 Начальный адрес HI 0х00 LO 0х01 Число регистров HI 0х00 LO 0х03 КС -- Рисунок 5 - Структура “ЗАПРОСА” команды 0
x
04.
ОТВЕТ
содержит адрес “SLAVE”, код команды, поле регистров данных и число байт в поле регистров данных. Содержимое регистра является шестнадцатиразрядным числом и содержит два байта. На рисунке 6 приведен пример “ОТВЕТА” на “ЗАПРОС”. ОТВЕТ
Название поля
Адрес SLAVE 0х11 Код команды 0х04 Число байт 0х06 Регистр данных 02h HI 0х00 LO 0х0А Регистр данных 03h HI 0х00 LO 0х0B Регистр данных 04h HI 0х00 LO 0х0C КС -- Рисунок 6 - Структура “ОТВЕТА” команды
0х04
Команда 0
x10. Установить значение регистров настроек. Команда 0
x
10
служит для установки значений регистров настроек. Регистры настройки SLAVE могут иметь статус “только чтение”, при попытке установить в них новое значение остаются без изменений. ЗАПРОС
определяет адрес SLAVE, начальный адрес, число регистров настроек, поле регистров настроек и число байт в поле регистров настроек. Адреса регистров настроек приведены в приложении А (таблица А1). На рисунке 7 приведен пример ЗАПРОСА на установку значений регистров настроек 2-4 “ SLAVE ” c адресом 17 (0x11). ЗАПРОС
Название поля
Адрес SLAVE 0x11 Код команды 0x10 Начальный адрес HI 0x00 LO 0x01 Число регистров HO 0x00 LO 0x03 Число байт 0x06 Регистр настройки 02h HI 0x00 LO 0x0А Регистр настройки 03h HI 0x00 LO 0x0B Регистр настройки 04h HI 0x00 LO 0x0C КС -- Рисунок 7- Структура ЗАПРОСА команды 0
x
10.
ОТВЕТ
cодержит адрес SLAVE, код команды, начальный адрес и число регистров в поле регистров настроек. На рисунке 8 приведен пример ОТВЕТА на ЗАПРОС. ОТВЕТ
Название поля
Адрес slave 11h Код команды 10h Начальный адрес HI 00h LO 01h Число регистров HI 00h LO 03h КС -- Рисунок 8 – Структура ОТВЕТА команды 10
h
.
Данный протокол поддерживает операции чтения / записи переменных следующих форматов: - float
– формат с плавающей запятой, длина 4 байта; - int
–
целое число, длина 2 байта; - byte
–
число, длиной 1 байт. Пример чтения / записи float -числа -12.5
, расположенного по адресам 0x31 - 0x32 регистров настроек: Регистр:
0х32 (
LO
)
0х32 (
HI
)
0х31 (
LO
)
0х31 (
HI
)
Адрес:
+3 +2 +1 +0 Формат
:
SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM Двоичный вид:
11000001 01001000 00000000 00000000 Hex
вид
:
C1h 48h 00h 00h S – Бит знака числа с плавающей точкой: 1 – отрицательное число, 0 – положительное число; E – Показатель экспоненты числа с плавающей точкой; M – Показатель мантиссы числа с плавающей точкой; - Читаем / записываем 2 регистра, начиная с адреса 0х31 (HI). - Полученное значение: 0xC1480000. - Показатель мантиссы числа 10000010 = 130dec. Вычитанием 127 из этого числа получаем реальное значение экспоненты: 3. - Мантисса представлена следующим двоичным числом: 10010000000000000000000. - Дописываем 1 слева от мантиссы, отделяя ee десятичной точкой: 1.10010000000000000000000. - Сдвигаем десятичную точку на значение экспоненты (вправо, если значение положительное, иначе влево). В результате получаем двоичное представление числа с плавающей точкой: 1100.10000000000000000000. - Переводим целую и дробную часть в десятичный вид, учитывая знак числа. Получаем число с плавающей точкой: 0xC1480000= -12.5.
3.1.2 Тип
int Пример считывания переменной, расположенной по адресу 0x26, имеющей тип Int: а) читаем один регистр по адресу 0x26. б)считанное значение 0х3Е7 = 999. Регистр:
0
x
26
(
LO
)
0
x
26
(
HI
)
Адрес:
+1 +0 Двоичный вид:
11101110 00101010 Hex
вид:
0х03 0хЕ7
3.1.3 Тип
byte Пример считывания переменной, расположенной по адресу 0х24, имеющей тип Byte: Регистр:
0х24
(
HI
)
0х24
(
LO
)
Адрес:
+1 +0 Двоичный вид:
01000100 00110011 Hex
вид:
0x44 0xFF Читаем один регистр по адресу 0х24. Значение переменной, согласно протоколу, находится в старшем разряде считанного слова - 0x44. Данные процесса измерения периодически записываются в энерго-независимую память (Flash) – архив. Период записи данных в секундах определяется содержимым регистра 0х33 (смотри - таблицу А1). Длина архива составляет 2097153 байта, что соответствует 190650 записям. Длина одной записи – 11 байт (таблица 2). Таблица 2
0 1 2 3 4 5 6 7 8 9 10 час мин с дата месяц год Flot - данные Регистр состояния реле младший байт старший байт Архив организован по кольцевому принципу. Это означает, что в случае его заполнения новая (последняя) запись будет размещена на месте старой, начиная с первой записи. Распределение номеров байт записи по адресам регистров рассмотрены на примере группы регистров данных 0x10 - HI 0x10 - LO 0x11 - HI 0x11 - LO 0x12 - HI 0x12 - LO час мин с дата месяц год 0x13 – HI 0x13 – LO 0x14 – HI 0x14 - LO 0x15 - HI 0x15 - LO данные float* Регистр состояния реле резерв * - в случае ситуации обрыва датчика
в поле «данные» записывается число 1010
. При этом факт самого первого
обнаружения обрыва фикси-руется в архиве, независимо от значения периода записи. В случае копирования архива на SD-карту создается файл с уникальным именем и расширением ARH. Имя файла содержит информацию о дате и времени его создания. Например, файл “14111351.ARH” означает, что копирование архива производилось 14 ноября в 13 час, 51 мин. Вся информация записывается в файл в двоичном виде и представляет собой последовательность 11-байтных записей (смотри - таблицу 2). Все записи в файле расположены в строгой хронологической последовательности. 3.2 Структура программ регулирования
Программа регулирования позволяет реализовать программный режим управления объектом. В энергонезависимой памяти прибора хранится четыре программы. Количество циклов перепрограммирования не ограничено. Каждая программа регулирования состоит из шагов, максимальное количество которых не должно превышать 32. Данные о шагах последовательно размещаются в регистрах 4-х программ регулирования, начиная с адреса 0x52
(см. таблицу А1). Структура программы
регулирования имеет следующий вид: 1 байт 7 байт 7 байт 7 байт 1 байт 1 байт Масштаб Шаг 1 Шаг 2 … Шаг 32 Программа перехода шаг перехода Масштаб
–
параметр, определяющий
временной масштаб каждого шага программы и принимающий значения
: 0 – час:мин
. 1 – м ин:сек. Один шаг программы содержит информацию о значениях параметра регулирования, времени и типе шага. Ниже приведена структура одного шага. Программа перехода
– номер программы (0 - 3), на которую
осуществляется переход
. Шаг перехода
– номер шага (0 - 31) программы, на который осуществляется переход. Структура шага программы: 1 байт 1 байт 4 байта 1 байт Час(мин) Мин (с) Р егистр шага Время
(2 байта) – длительность текущего шага программы. В зависимости от выбранного масштаба может принимать значения: час:мин или мин:с. Данные
– значение параметра во float- формате в конечной точке шага. Регистр шага
– определяет тип шага и логику перехода на следующий шаг. Описание регистра шага приведено в таблице 3.
Таблица
3
№ разряда
Описание разрядов регистра шага
0-3 Тип шага: 0 – обычный шаг с переходом на следующий; 1 – шаг с переходом на любой другой шаг программ; 2 – конец программы. 4-7 Логика перехода на следующий шаг: 0 – по значению; 1 – по времени; 2 –
по значению И
по времени
; 3 – по значению ИЛИ
по времени. Примечание
. В каждой программе регулирования допускается только один шаг
с переходом на любой другой шаг программ (см. структуру программы). На рисунке 8 в качестве примера показан график программы изменения температуры объекта. Все шаги программы обычного типа, логика перехода – по времени. Данные для каждого шага по регистрам программы регулирования №1 приведены в таблице 4. Отсчет времени происходит от момента запуска программы регулирования (переход в автоматический режим регулирования). Рисунок 8
Таблица 4
Номер шага
Масштаб 0х52 HI 1 1 0х52 LO 0 0х53 HI 10 0x53 LO - 0x55 HI 50,0 0x55 LO 0x10 2 0x56 - HI 0 0x56 - LO 11 0x57 - 0x58 150,0 0x59 HI 0x10 3 0x59 – LO 0 0x5A - HI 9 0x5A LO - 0x5C HI 150,0 0x5C LO 0x10 4 0x5D - HI 0 0x5D - LO 10 0x5E - 0x5F 100,0 0x60 HI 0x12 0x60 LO *
- байт не несет никакой информации и добавлен только для четности. (Справочное) СОДЕРЖАНИЕ РЕГИСТРОВ ПАМЯТИ ПРИБОРА
Таблица А1
.
Регистры настройки Адрес
Описание регистра
0x00 HI - Версия ПО; LO - тип прибора (23); Номер версии ПО определяется делением на 100 содержи-мого младшего байта. Регистр запрещен для записи. 0x01 Параметры обмена: LO – адрес устройства в сети; HI - скорость обмена: 0 – 9600 3 –57600 1 –19200 4 115200 2 –38400 0x02 HI – Закон регулирования; LO –. Регистр управления интерфейса RS-485. Код Закон регулирования
0 регулирование выключено 1 ON/OFF 2 ПИД – С 3 ПИД – S 4 ПИД – H/С № разряда
Описание разряда регистра управления интерфейса
0-1 Длина слова: 2 - 7 бит, 3 – 8 бит 2 Количество стоп-битов: 0 - 1стоп-бит; 1 - 2стоп-бита. 3 Контроль четности: 0 – запрещен. 4 Тип контроля четности: 0- нечетность; 1- четность 7 Тип протокола: 0 - ASCI(0), 1 - RTU
0
x03 Пароль калибровок, int – число. 0x04-0x05 Резерв 0x06 Режим измерения прибора. HI – тип сигнала (датчика); LO – конфигурация прибора Продолжение таблицы А1.
Адрес
Описание регистра
0x06 Тип сигнала (датчика)
,
диапазон
Код
Входной ток (0…5) мА Входной ток (0…20) мА Входной ток (4…20) мА 0 1 2 Вх. напряжение - (0…10) мВ Вх. напряжение - (0…100) мВ Вх. напряжение - (0…1) В 3 4 5 термопара S (100…1600)°C термопара К (-200…1300)°C термопара L (-200…800)°C термопара B (500…1800)°C термопара A1 (0…2500)°C 6 7 8 9 10 термопара N (-200…1300)°C термопара J (-200…1200)°C термопара T (-200…400)°C 11 12 13 ТСП50, W100
= 1.391 (-200…750)°C 14 ТСМ50, W100
= 1.426 (-50…200)°C 15 ТСМ50, W100
= 1.428 (-190…200)°C 16 Pt100, W100
= 1.385 (-200…750)°C 17 ТСП100, W100
= 1.391 (-200…750)°C 18 ТСМ100, W100
= 1.426 (-50…200)°C 19 ТСМ100, W100
= 1.428 (-190…200)°C 20 ТСН100, W100
= 1.617 (-60…180)°C 21 Pt500, W100
= 1.385 (-200…650)°C 22 ТСП500, W100
= 1.391 (-200…650)°C 23 ТСМ500, W100
= 1.426 (-50…200)°C 24 ТСМ500, W100
= 1.428 (-190…200)°C 25 ТСН500, W100
= 1.617 (-60…180)°C 26 Pt1000, W100
= 1.385 (-200…650)°C 27 ТСП1000, W100
= 1.391 (-200…650)°C 28 ТСМ1000, W100
= 1.426 (-50…200)°C 29 ТСМ1000, W100
= 1.428 (-190…200)°C 30 ТСН1000, W100
= 1.617 (-60…180)°C 31 ТСП21, W100
= 1.391 (-200…750)°C 32 ТСМ23, W100
= 1.426 (-50…200)°C 33 Продолжение таблицы А1
Адрес
Описание регистра
0x06 Тип сигнала (датчика)
,
диапазон
Код
R100 (0…100) Ω R1000 (0…1000) Ω R2000 (0…2000) Ω 34 35 36 PK15 (700…1500)°C PK20 (800…1900)°C PС20 B (900…2000)°C 37 38 39 № разряда
Описание разрядов регистра конфигурации прибора
0 Наличие архивной (Flash) памяти прибора: 0 – память отсутствует. 1-2 Тип реле. 0 – нет реле; 1 – 2 э/магнитных реле; 2 – 4 полупроводниковых реле; 3 – 4 поляризованных реле. 3 Выход (4-20) мА. 0 – выход отсутствует. 0x07-0x08 Полоса фильтра, float – число. 0x09-0x0A Постоянная вр. RC-фильтра, float – число. 0x0B - 0x0C Значение уставки реле №1, float – число. 0x0D - 0x0E Значение уставки реле №2, float – число. 0x0F - 0x10 Значение уставки реле №3, float – число. 0x11 - 0x12 Значение уставки реле №4, float – число. 0x13 - 0x14 Гистерезис уставки реле №1, float – число. 0x15 - 0x16 Гистерезис уставки реле №2, float – число. 0x17 - 0x18 Гистерезис уставки реле №3, float – число. 0x19 - 0x1A Гистерезис уставки реле №4, float – число. 0x1B - 0x1С Порог срабатывания реле №1, float – число. 0x1D - 0x1E Порог срабатывания реле №2, float – число. 0x1F - 0x20 Порог срабатывания реле №3, float – число. 0x21 - 0x22 Порог срабатывания реле №4, float – число. 0x23 HI - Тип логики компаратора №1. LO - Тип логики компаратора №2. 0x24 HI - Тип логики компаратора №3. LO - Тип логики компаратора №4. 0x25 - 0x26 Сдвиг характеристики датчика, float – число. Продолжение таблицы А1
Адрес
Описание регистра
0x27 - 0x28 Наклон характеристики датчика, float – число. 0x29 - 0x2A Начало диапазона масштабирования, float – число. 0x2B - 0x2C Конец диапазона масштабирования, float – число. 0x2D - 0x2E Начало диапазона преобразования выходного тока 4..20 мА, float – число. 0x2F - 0x30 Конец диапазона преобразования выходного тока 4..20 мА, float – число. 0x31 HI – Номер компаратора ускоренной регистрации (1..4, 0 - нет ускоренной регистрации). LO – Регистр состояния реле. Описание регистра состояния реле:
№ разряда
Описание разряда
0 Состояние контактов реле №1. 1 – контакты реле замкнуты. 1 Состояние контактов реле №2. 2 Состояние контактов реле №3. 3 Состояние контактов реле №4. 4 Состояние уставки №4. 5 Состояние уставки №3. 6 Состояние уставки №2. 7 Состояние уставки №1. 1 - уставка сработала. 0x32 HI – Положение десятичной точки
при масштабировании
входного сигнала (количество
цифр
дробной части): 0 – 3; LO – Яркость индикаторов (0 - 4). 0х33 Период сохранения информации во Flash-памяти (0 - 999 сек., 0 – функция архивирования выключена), int – число. 0x34..0x35 Коэффициент пропорциональности Кп для ПИД или зона возврата в ON/ OFF – закона, float – число. 0x36..0x37 Коэффициент интегрирования Ки для ПИД-законов, float – число. 0x38..0x39 Коэффициент дифференцирования Ки для ПИД-законов, float – число. 0x3A..0x3B Задание на регулирование, float – число. 0x3C..0x3D Переходное запаздывание То ОУ, float – число. 0x3E..0x3F Коэффициент эффективности Ко, float – число. 0x40..0x41 Транспортное запаздывание Тz, float – число. Продолжение таблицы А1
Адрес
Описание регистра
0x42..0x43 Минимальная длительность управляющего импульса (сек., ПИД-S, ПИД-H/C) или минимальное ограничение сигнала управления (%, ПИД-С), float – число. 0x44..0x45 Время перемещения исполнительного механизма (сек., ПИД-S) или максимальное ограничение сигнала управления (%, ПИД-С), float – число. 0x46..0x47 Регистр настроек прибора CSR. № разряда
Описание разряда
0-1 Режим работы реле №1: 0 – реле выключено; 1 – управление в регулировании; 2 – сигнализация по уровню сигнала; 3 – сигнализация по скорости измене-ния сигнала; 2-3 Режим работы реле №2 4-5 Режим работы реле №3 6-7 Режим работы реле №4 8-9 Тип реле: 0 - нет реле; 1 – электромагнитные реле (2 шт.); 2 - полупроводниковые реле (4 шт.); 3 - поляризованные реле (4 шт.); 10 0 - "Прямой ход" регулирования 1 - "Обратный ход" регулирования. 11 Резерв 12 1 - Включение термокомпенсации 13 1 - Разрешение Iвых = (4..20)мА 14 0 - Регулирование по заданию; 1 - Регулирование по программе. 15 0 - 4-х проводный датчик ТС; 1 - 3-х проводный датчик ТС. 16 0 - Автоматический режим регулирования 1 - Ручной режим регулирования. 17 1 – Включено масштабирование 18 1 – Включено корнеизвлечение 19 1- Измерение разрешено Продолжение таблицы А1.
0x46..0x47 № разряда
Описание разряда
20-21 Состояние прибора после восстановления питания: 0 – возврат в тот же режим;
|