Смекни!
smekni.com

Измерители-регуляторы малогабаритные (стр. 2 из 4)

Команда 0x10. Установить значение регистров настроек.

Команда 0x10 служит для установки значений регистров настроек.

Регистры настройки 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- Структура ЗАПРОСА команды 0x10.

ОТВЕТ cодержит адрес SLAVE, код команды, начальный адрес и число регистров в поле регистров настроек. На рисунке 8 приведен пример ОТВЕТА на ЗАПРОС.


ОТВЕТ
Название поля
Адрес slave

11h

Код команды

10h

Начальный адрес HI

00h

LO

01h

Число регистров HI

00h

LO

03h

КС

--

Рисунок 8 – Структура ОТВЕТА команды 10h.

3 ТИПЫ ПЕРЕМЕННЫХ и структуры данных

Типы переменных

Данный протокол поддерживает операции чтения / записи переменных следующих форматов:

- float – формат с плавающей запятой, длина 4 байта;

- intцелое число, длина 2 байта;

- byte число, длиной 1 байт.

3.1.1 Тип float

Пример чтения / записи 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.

Регистр:

0x26 (LO)

0x26 (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.

3.2 Структура записи архива

Данные процесса измерения периодически записываются в энерго-независимую память (Flash) – архив. Период записи данных в секундах определяется содержимым регистра 0х33 (смотри - таблицу А1). Длина архива составляет 2097153 байта, что соответствует 190650 записям. Длина одной записи – 11 байт (таблица 2).

Таблица 2

0 1 2 3 4 5 6 7 8 9 10
час мин с дата месяц год Flot - данные Регистр состояния реле
младший байт старший байт

Архив организован по кольцевому принципу. Это означает, что в случае его заполнения новая (последняя) запись будет размещена на месте старой, начиная с первой записи. Распределение номеров байт записи по адресам регистров рассмотрены на примере группы регистров данных
0x10 - 0x15 «Получить последнюю запись архива» (см. таблицу A2).

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