1. Общие положения
Приборы типа МЕТАКОН рассчитаны на подключение к ним по последовательному каналу RS-485 устройств двух типов:
соединение одного или нескольких приборов с одним специализированным устройством (устройства с жестким алгоритмом).
соединение одного или нескольких приборов с компьютером (устройства с мягким алгоритмом).
Под специализированными понимаются устройства, имеющие стандартизированный протокол обмена (изменить который нельзя) и гарантирующие свое функционирование совместно с любыми (в том числе и вновь разработанными) подчиненными приборами. Например, это могут быть устройства вывода данных измерения на принтер, преобразования их в токовые сигналы различных стандартов и т.д. Стандартизация специализированных устройств подразумевает обязательную поддержку устройств данного типа во вновь разрабатываемых приборах серии МЕТАКОН.
Параметры работы специализированных устройств могут задаваться через приборы типа МЕТАКОН, для чего в меню конфигурирования предусматриваются соответствующие пункты.
2. Физические характеристики канала передачи данных:
способ передачи – асинхронный полудуплекс;
скорость передачи выбирается из значений 2.4, 4.8, 9.6, 19.2 Кбод;
формат посылки фиксирован – один стартовый бит., восемь бит данных без проверки на четность, один стоповый бит;
максимальное количество устройств в одной сети без повторителей – 32;
максимальное расстояние передачи без повторителей – не более 1 км.
3. Описание протокола
Командно-информационный обмен управляющего компьютера или специализированного устройства (в дальнейшем УУ – управляющее устройство) с приборами осуществляется в пакетном режиме по принципу "команда-ответ".
Способ представления информации – двоичный побайтовый; адреса или параметры, длина которых превышает 1 байт, передаются младшими байтами вперед.
Максимальная длина пакета – 38 байт.
Каждый пакет состоит из нескольких полей, передающихся друг за другом без разрывов во времени.
Таблица 1. Перечень командных и ответных пакетов (в порядке следования)
Название поля | Условное обозначение | Длина поля, (байт) | Примечания. |
Поле сетевого адреса прибора | DEV | 1 | Устанавливается при конфигурации прибора. |
Поле адреса канала прибора | CHA | 1 | Канал – локальный замкнутый контур управления одиночным параметром техпроцесса. Каналы нумеруются с 0. |
Поле адреса регистра | REG | 1 | Регистр – переменная или константа канала. |
Поле команды | CMD | 1 | Двоичный код команды: 00h – чтение регистра, далее RD, 01h – запись регистра, далее WR. |
Поле типа данных | TYP | 1 | Младшая тетрада содержит условный тип регистра (см. табл. 2), а старшие два бита определяют права доступа к регистру: TYP.7=1 – регистр доступен по записи (W); TYP.6=1 – регистр доступен по чтению (R). |
Поле данных | DATA | 1…32 | Может отсутствовать (в зависимости от назначения пакета) |
Поле контрольной суммы | CRC | 1 | Однобайтовый циклический код, вычисляемый по всем предшествующим битам данного пакета (см. ниже). |
Модель прибора со стороны УУ представляет собой набор регистров (переменных и констант различной длины и формата), читая и записывая которые УУ имеет возможность сбора информации и инициирования различных действий приборов.
Таблица 2. Перечень типизированных форматов данных
Характеристика типа | Обозначение | Длина (байт) | Диапазон возможных значений | TYP.0…3 |
Булева переменная | Bool | 1 | 00h = False, FFh = True | 0 |
Беззнаковое байтовое | Ubyte | 1 | 0...255 | 1 |
Знаковое байтовое | Byte | 1 | -128...127 | 2 |
Беззнаковое целое | Uint | 2 | 0...65535 | 3 |
Знаковое целое | Int | 2 | -32768...32767 | 4 |
Беззнаковое длинное | Ulong | 4 | 0...4294967295 | 5 |
Знаковое длинное | Long | 4 | -2147483648...2147483647 | 6 |
С плавающей точкой (формат IEEE) | Float | 4 | ±1.2E-38 ... ±3.4E+38 | 7 |
С плавающей точкой (формат IEEE) | Double | 8 | ±2.2E-308 ... ±1.8E+308 | 8 |
Нуль – терминированная строка | ASCIIZ | 1…32, включая завершающий 0 | Любая последовательность ASCII кодов, заканчивающихся нулем | 9 |
Признаком конца пакета служит отсутствие передачи на линии после окончания стоп-бита последнего байта в течении времени передачи двух байтов при данной скорости.
Типичные сеансы связи УУ с прибором могут выглядеть следующим образом:
Операция чтения состояния регистра:
От УУ: DEV.CHA.REG.RD.CRC
От прибора: DEV.CHA.REG.RD.TYP.DATA.CRC
Операция установки состояния регистра:
От УУ: DEV.CHA.REG.WR.TYP.DATA.CRC
От прибора: DEV.CHA.REG.WR.CRC
Примечание: В вышеприведенных выражениях десятичные точки используются исключительно с целью визуального разделения полей командных и ответных пакетов. На самом деле поля пакета передаются друг за другом без разрывов во времени.
После завершения передачи последнего байта командного пакета УУ ожидает поступления ответа от запрашиваемого прибора в течении:
TIMEOUT = 2*ONE_TIME + SIZE*ONE_TIME + 25 мс
где:
ONE_TIME - время передачи одного байта при выбранной скорости. Байт посылается 10-ю битами (1 стартовый бит + 8 бит данных + 1 стоповый бит), следовательно ONE_TIME = 10 / (скорость обмена, в бод);
SIZE - ожидаемый размер ответного пакета (в байтах);
25 мс - максимальное время реакции регулятора.
Если через TIMEOUT [мс] ответный пакет не поступает, то производятся еще 2 попытки, если они также заканчиваются неудачей, сеанс связи считается несостоявшимся.
Прибор отвечает на поступивший командный пакет только в том случае, если поле адреса пакета совпадает с его собственным адресом, поле номера канала соответствует одному из каналов, действительно имеющихся в наличии в данном регуляторе, а номер регистра соответствует одному из действительно существующих регистров канала.
Пакеты с некорректной контрольной суммой отбрасываются (считаются не поступившими).
Контрольная сумма вычисляется сверткой всех битов пакета (начиная с младшего бита первого байта) с полиномом X8+X5+X4+1. Алгоритм вычисления CRC приведен в приложении.
4. Регистровая модель канала
Логическая (регистровая) модель канала является совокупностью регистров различного назначения, которые могут иметь различную длину и формат.
Адресное пространство регистров делится на две половины:
Область с адресами 00h - 7Fh предназначена для размещения регистровых блоков общего назначения, структура которых может быть различна у разных приборов и разных каналов (используется в устройствах с мягким алгоритмом).
Область с адресами 7Fh - FFh - стандартизирована, и содержит блоки регистров, структура и адреса которых жестко закреплены за конкретными типами специализированных устройств (используется в устройствах с жестким алгоритмом). Иначе говоря любое специализированное управляющее устройство обращается только к закрепленным за устройствами этого типа регистрам.
На данный момент разработано только одно специализированное управляющее устройство - адаптер принтера МЕТАПРИНТ. Для устройств этого типа отведены следующие регистры (табл. 3).
Таблица 3. Интерфейсные регистры специализированного управляющего устройства типа адаптера принтера
Адрес регистра | Доступ | Тип | Назначение регистра. |
80h | R | Int | Содержит результат измерения данного канала (то, что печатается) |
81h | R | Ubyte | Содержит код периода вывода на печать результата измерения |
82h | R | Ubyte | Содержит код положения десятичной точки |
Со стороны УУ (устройства с мягким алгоритмом) каждый канал со своей определенной регистровой структурой имеет свой индивидуальный код, по которому УУ определяет тип этого канала. Регистр с адресом 00h всегда содержит константу этого кода. Регистровые модели каналов приборов типа МЕТАКОН-5Х2-ХХ-1, МЕТАКОН-535-1, МЕТАКОН-5Х4-ХХ-1, МЕТАКОН-5Х3-ХХ-1, МЕТАКОН-613-ХХ-1, МЕТАКОН-614-ХХ-1, МЕТАКОН-515-Х-1 приведены в табл. 4 - 10.
Таблица 4. Регистровая модель одного канала приборов типа МЕТАКОН-5Х2-ХХ-1
Адрес | Доступ | Тип | Название регистра. | Диапазон допустимых значений | Примечание |
00h | R | Ubyte | Код канала данного типа | 00h | -- |
01h | R | Int | Результат измерения | -999…9999 | 1,2,3,4 |
02h | RW | Int | Параметр H | -999…9999 | 1,2,5,6,7 |
03h | RW | Int | Параметр h | -999…9999 | 1,2,5,6,7 |
04h | RW | Bool | Выход H | 0h или FFh | 4,7,8 |
05h | RW | Int | Параметр L | -999…9999 | 1,2,5,6,7 |
06h | RW | Int | Параметр l | -999…9999 | 1,2,5,6,7 |
07h | RW | Bool | Выход L | 0h или FFh | 4,7,8 |
Таблица 5. Регистровая модель одного канала приборов типа МЕТАКОН-535-1
Адрес | Доступ | Тип | Название регистра. | Диапазон допустимых значений | Примечание |
00h | R | Ubyte | Код канала данного типа | 01h | -- |
01h | R | Int | Результат измерения | -999…9999 | 1,2,3,4 |
02h | RW | Int | Уставка | -999…9999 | 1,2,5,6,7 |
03h | RW | Int | Ширина гистерезиса | 0…255 | 1,2,5,6 |
04h | RW | Bool | Выход управления | 0h или FFh | 4,7,8 |
Таблица 6. Регистровая модель одного канала приборов типа МЕТАКОН-5Х4-ХХ-1
Адрес | Доступ | Тип | Название регистра. | Диапазон допустимых значений | Примечание |
00h | R | Ubyte | Код канала данного типа | 02h | -- |
01h | R | Int | Результат измерения | -999…9999 | 1,2,3,4 |
02h | RW | Int | Уставка ПДД регулятора | -999…9999 | 1,2,5,6 |
03h | RW | Uint | Зона пропорциональности | 1…9999 | 1,2,5,6 |
04h | RW | Uint | Постоянная интегрирования | 1…30000 | 5,6,9 |
05h | RW | Ubyte | Постоянная дифференцирования | 0…255 | 5,6,9 |
06h | RW | Byte | Сигнал управления | -100…100 | 4,6,8,13 |
07h | R | Bool | Выход “Больше” | 0h или FFh | 4 |
08h | R | Bool | Выход “Меньше” | 0h или FFh | 4 |
09h | RW | Int | Уставка Н | -999…9999 | 1,2,5,6,7 |
0Ah | RW | Ubyte | Ширина гистерезиса Н | 0…255 | 1,2,5,6 |
0Bh | RW | Bool | Выход Н | 0h или FFh | 4,7,8 |
0Ch | RW | Int | Уставка L | -999…9999 | 1,2,5,6,7 |
0Dh | RW | Ubyte | Ширина гистерезиса L | 0…255 | 1,2,5,6 |
0Eh | RW | Bool | Выход L | 0h или FFh | 4,7,8 |
Таблица 7. Регистровая модель одного канала приборов типа МЕТАКОН-5Х3-ХХ-1
Адрес | Доступ | Тип | Название регистра. | Диапазон допустимых значений | Примечание |
00h | R | Ubyte | Код канала данного типа | 03h | -- |
01h | R | Int | Результат измерения | -999…9999 | 1,2,3,4 |
02h | RW | Int | Уставка ПИД регулятора | -999…9999 | 1,2,5,6 |
03h | RW | Uint | Зона пропорциональности | 1…9999 | 1,2,5,6 |
04h | RW | Uint | Постоянная интегрирования | 1…30000 | 5,6,9 |
05h | RW | Ubyte | Постоянная дифференцирования | 0…255 | 5,6,9 |
06h | RW | Byte | Выходная мощность | -100…100 | 4,6,8,14 |
07h | R | Bool | Выход ШИМ+ | 0h или FFh | 4 |
08h | R | Bool | Выход ШИМ- | 0h или FFh | 4 |
09h | RW | Int | Уставка Н | -999…9999 | 1,2,5,6,7 |
0Ah | RW | Ubyte | Ширина гистерезиса Н | 0…255 | 1,2,5,6 |
0Bh | RW | Bool | Выход Н | 0h или FFh | 4,7,8 |
0Ch | RW | Int | Уставка L | -999…9999 | 1,2,5,6,7 |
0Dh | RW | Ubyte | Ширина гистерезиса L | 0…255 | 1,2,5,6 |
0Eh | RW | Bool | Выход L | 0h или FFh | 4,7,8 |
Таблица 8 Регистровая модель одного канала приборов типа МЕТАКОН-614-ХХ-1
Адрес | Доступ | Тип | Название регистра. | Диапазон допустимых значений | Примечание |
00h | R | Ubyte | Код канала данного типа | 04h | -- |
01h | R | Int | Результат измерения | -999…9999 | 1,2,3,4 |
02h | RW | Int | Уставка ПДД регулятора | -999…9999 | 1,2,5,6 |
03h | RW | Uint | Зона пропорциональности | 1…9999 | 1,2,5,6 |
04h | RW | Uint | Постоянная интегрирования | 1…30000 | 5,6,9 |
05h | RW | Ubyte | Постоянная дифференцирования | 0…255 | 5,6,9 |
06h | RW | Byte | Сигнал управления | -100…100 | 4,6,8,13 |
07h | R | Bool | Выход “Больше” | 0h или FFh | 4 |
08h | R | Bool | Выход “Меньше” | 0h или FFh | 4 |
09h | RW | Int | Параметр Н | -999…9999 | 1,2,5,6,7 |
0Ah | RW | Int | Параметр h | -999…9999 | 1,2,5,6,7 |
0Bh | RW | Bool | Выход Н | 0h или FFh | 4,7,8 |
0Ch | RW | Int | Параметр L | -999…9999 | 1,2,5,6,7 |
0Dh | RW | Int | Параметр l | -999…9999 | 1,2,5,6,7 |
0Eh | RW | Bool | Выход L | 0h или FFh | 4,7,8 |
0Fh | RW | Ubyte | Режим работы | 0,1,2,4,6,8 | 5,7,8,10,11 |
10h | RW | Ubyte | Номер циклограммы | 0…9 | 5,6 |
11h | RW | Ubyte | Номер участка циклограммы | 0…9 | 5,6 |
12h | RW | Int | Начальное значение циклограммы | -999…9999 | 1,2,5,6 |
13h | RW | Ubyte | Условие начала циклограммы | 0,1,2,3,4 | 5,10 |
14h | RW | Uint | Время текущего участка | 0…9999 | 5,6,12 |
15h | RW | Int | Значение текущего участка | -999…9999 | 1,2,5,6 |
16h | RW | Ubyte | Состояние выходов d текущего участка | 0…7 | 5,6,8,10 |
17h | R | Bool | Выход d0 | 0h или FFh | 4 |
18h | R | Bool | Выход d1 | 0h или FFh | 4 |
19h | R | Bool | Выход d2 | 0h или FFh | 4 |
Таблица 9. Регистровая модель одного канала приборов типа МЕТАКОН-613-ХХ-1
Адрес | Доступ | Тип | Название регистра. | Диапазон допустимых значений | Примечание |
00h | R | Ubyte | Код канала данного типа | 05h | -- |
01h | R | Int | Результат измерения | -999…9999 | 1,2,3,4 |
02h | RW | Int | Уставка ПИД регулятора | -999…9999 | 1,2,5,6 |
03h | RW | Uint | Зона пропорциональности | 1…9999 | 1,2,5,6 |
04h | RW | Uint | Постоянная интегрирования | 1…30000 | 5,6,9 |
05h | RW | Ubyte | Постоянная дифференцирования | 0…255 | 5,6,9 |
06h | RW | Byte | Выходная мощность | -100…100 | 4,6,8,14 |
07h | R | Bool | Выход ШИМ+ | 0h или FFh | 4 |
08h | R | Bool | Выход ШИМ- | 0h или FFh | 4 |
09h | RW | Int | Уставка Н | -999…9999 | 1,2,5,6,7 |
0Ah | RW | Ubyte | Ширина гистерезиса Н | 0…255 | 1,2,5,6 |
0Bh | RW | Bool | Выход Н | 0h или FFh | 4,7,8 |
0Ch | RW | Int | Уставка L | -999…9999 | 1,2,5,6,7 |
0Dh | RW | Ubyte | Ширина гистерезиса L | 0…255 | 1,2,5,6 |
0Eh | RW | Bool | Выход L | 0h или FFh | 4,7,8 |
0Fh | RW | Ubyte | Режим работы | 0,1,2,4,6,8 | 5,7,8,10,11 |
10h | RW | Ubyte | Номер циклограммы | 0…9 | 5,6 |
11h | RW | Ubyte | Номер участка циклограммы | 0…9 | 5,6 |
12h | RW | Int | Начальное значение циклограммы | -999…9999 | 1,2,5,6 |
13h | RW | Ubyte | Условие начала циклограммы | 0,1,2,3,4 | 5,10 |
14h | RW | Uint | Время текущего участка | 0…9999 | 5,6,12 |
15h | RW | Int | Значение текущего участка | -999…9999 | 1,2,5,6 |
16h | RW | Ubyte | Состояние выходов d текущего участка | 0…7 | 5,6,8,10 |
17h | R | Bool | Выход d0 | 0h или FFh | 4 |
18h | R | Bool | Выход d1 | 0h или FFh | 4 |
19h | R | Bool | Выход d2 | 0h или FFh | 4 |
Таблица 10. Регистровая модель одного канала приборов типа МЕТАКОН-515-Х-1
Адрес | Доступ | Тип | Название регистра. | Диапазон допустимых значений | Примечание |
00h | R | Ubyte | Код канала данного типа | 64h | -- |
01h | R | Int | Результат измерения | -999…9999 | 1,2,3,15 |
02h | RW | Int | Основная уставка ПИД регулятора | -999…9999 | 1,2,5,6,16 |
03h | RW | Uint | Зона пропорциональности | 1…9999 | 1,2,5,6 |
04h | RW | Uint | Постоянная интегрирования | 1…9999 | 5,6,17 |
05h | RW | Uint | Постоянная дифференцирования | 0…9999 | 5,6,20 |
06h | RW | Uint | Скорость изменения задания (рампа) | 0…9999 | 5,6,18 |
07h | RW | Ubyte | Выходная мощность | 0…100 | 5,6,15,19 |
08h | RW | Int | Уставка H компаратора H | -999…9999 | 1,2,5,6,7 |
09h | RW | Int | Уставка h компаратора H | -999…9999 | 1,2,5,6,7 |
0Ah | RW | Int | Уставка H компаратора L | -999…9999 | 1,2,5,6,7 |
0Bh | RW | Int | Уставка h компаратора L | -999…9999 | 1,2,5,6,7 |
0Ch | RW | Int | Уставка H компаратора F | -999…9999 | 1,2,5,6,7 |
0Dh | RW | Int | Уставка h компаратора F | -999…9999 | 1,2,5,6,7 |
0Eh | RW | Int | Дополнительная уставка 0 ПИД регулятора | -999…9999 | 1,2,5,6 |
0Fh | RW | Int | Дополнительная уставка 1 ПИД регулятора | -999…9999 | 1,2,5,6 |
10h | RW | Int | Дополнительная уставка 2 ПИД регулятора | -999…9999 | 1,2,5,6 |
11h | RW | Int | Дополнительная уставка 3 ПИД регулятора | -999…9999 | 1,2,5,6 |
12h | R | Bool | Выход H/ШИМ | 0h или FFh | 15 |
13h | R | Bool | Выход L | 0h или FFh | 15 |
14h | R | Bool | Выход F/АВАРИЯ | 0h или FFh | 15 |
Прибор МЕТАКОН-515-Х-1 дополнительно поддерживает скорости передачи 38.4, 57.6 и 115.2 кбод.
Таблица 10. Регистровая модель одного канала приборов типа МЕТАКОН-515-Х-1 V.2
Адрес | Доступ | Тип | Название регистра. | Диапазон допустимых значений | Примечание |
00h | R | Ubyte | Код канала данного типа | 65h | -- |
01h | R | Int | Результат измерения | -999…9999 | 1,2,3,15 |
02h | RW | Int | Основная уставка ПИД регулятора | -999…9999 | 1,2,5,6,16 |
03h | RW | Uint | Зона пропорциональности | 1…9999 | 1,2,5,6 |
04h | RW | Uint | Постоянная интегрирования | 1…9999 | 5,6,17 |
05h | RW | Uint | Постоянная дифференцирования | 0…9999 | 5,6,20 |
06h | RW | Uint | Скорость изменения задания (рампа) | 0…9999 | 5,6,18 |
07h | RW | Ubyte | Выходная мощность | 0…100 | 5,6,15,19 |
08h | RW | Int | Уставка H компаратора H | -999…9999 | 1,2,5,6,7 |
09h | RW | Int | Уставка h компаратора H | -999…9999 | 1,2,5,6,7 |
0Ah | RW | Int | Уставка H компаратора L | -999…9999 | 1,2,5,6,7 |
0Bh | RW | Int | Уставка h компаратора L | -999…9999 | 1,2,5,6,7 |
0Ch | RW | Int | Уставка H компаратора F | -999…9999 | 1,2,5,6,7 |
0Dh | RW | Int | Уставка h компаратора F | -999…9999 | 1,2,5,6,7 |
0Eh | RW | Int | Дополнительная уставка 0 ПИД регулятора | -999…9999 | 1,2,5,6 |
0Fh | RW | Int | Дополнительная уставка 1 ПИД регулятора | -999…9999 | 1,2,5,6 |
10h | RW | Int | Дополнительная уставка 2 ПИД регулятора | -999…9999 | 1,2,5,6 |
11h | RW | Int | Дополнительная уставка 3 ПИД регулятора | -999…9999 | 1,2,5,6 |
12h | R | Bool | Выход H/ШИМ | 0h или FFh | 15 |
13h | R | Bool | Выход L | 0h или FFh | 15 |
14h | R | Bool | Выход F/АВАРИЯ | 0h или FFh | 15 |
15h | RW | Ubyte | Режим работы | 0,1,2,3 | 21 |
Прибор МЕТАКОН-515-Х-1 V.2 дополнительно поддерживает скорости передачи 38.4, 57.6 и 115.2 кбод.
Следующие примечания относятся ко всем вышеуказанным таблицам:
Примечание 1. Физический смысл значения регистра зависит от типа используемого в приборе датчика и настроек прибора. Диапазон изменения может быть ограничен допустимыми значениями для конкретного типа датчика (см. Руководство по эксплуатации на данный прибор).
Примечание 2. Положение десятичной точки устанавливается в приборе при настройке на конкретный тип датчика и должно быть учтено опрашивающей программой при чтении данного регистра. Само значение регистра не содержит десятичной точки.
Примечание 3. В случае возникновения аварийной ситуации в приборе (см. Руководство по эксплуатации на данный прибор) этот регистр содержит число -32768.
Примечание 4. Содержимое регистра обновляется прибором 1 раз в секунду.
Примечание 5. Значение регистра сохраняется в энергонезависимой памяти при отключении питания прибора.
Примечание 6. В случае записи в регистр значения, выходящего за указанный диапазон, это значение перезаписывается в приборе верхним или нижним допустимым пределом. При этом прибор не сигнализирует об ошибке.
Примечание 7. Значение, записываемое в данный регистр, может быть изменено прибором в случае его несогласованности с другими параметрами прибора (см. Руководство по эксплуатации на данный прибор). При этом прибор не сигнализирует об ошибке.
Примечание 8. Запись в данный регистр допустима, но прибор может изменить записанное значение в соответствии со своим алгоритмом и режимом работы (см. Руководство по эксплуатации на данный прибор).
Примечание 9. Значение регистра задается в секундах.
Примечание 10. Регистр не может принимать никакие другие значения кроме указанных. Расшифровка значений указывается в Руководстве по эксплуатации на данный прибор.
Примечание 11. Регистр 0Fh (Режим работы) в модификациях МЕТАКОН-61Х может принимать следующие значения: 0 - автоматический режим, 1 - ручной режим, 2 - режим автонастройки, 4 - режим однократного исполнения циклограммы, 6 - режим циклического исполнения циклограммы, 8 - режим паузы в циклограмме. Все остальные значения сигнализируют о режиме аварии. Прибор может быть в любой момент переведен в один из указанных режимов (кроме режима аварии) путем записи в регистр соответствующего значения.
Примечание 12. Значение регистра измеряется в десятых долях минуты. Само значение регистра не содержит десятичной точки.
Примечание 13. Содержимое регистра отображает длительность текущего выходного импульса в процентах от периода ШИМ.
Примечание 14. Содержимое регистра отображает величину выходной мощности исполнительного устройства в процентах от минимальной до максимальной.
Примечание 15. Значение параметра обновляется 4 раза в секунду.
Примечание 16. При включенной функции переключения уставок (см. Руководство по эксплуатации на данный прибор) регистр доступен только для чтения. Уровень задания ПИД регулятора в этом режиме определяется дополнительными уставками и комбинацией сигналов управления.
Примечание 17. Значение регистра задается в 0.1*минут.
Примечание 18. Значение регистра измеряется в 0.01*ед.изм./мин. При задании регистру значения 0 функция рампы отключена.
Примечание 19. Запись в регистр происходит только при работе прибора в режиме ручного управления.
Примечание 20. Значение регистра задается в 0.1*секунд.
Примечание 21. Регистр 15h (Режим работы) в МЕТАКОН-515 V.2 может принимать следующие значения: 0 - стоп, 1 - автоматическое регулирование, 2 - ручное управление, 3 - автоматическая настройка. Прибор может быть в любой момент переведен в один из указанных режимов путем записи в регистр соответствующего значения.
5. Приложение
Алгоритм расчета контрольной суммы
| |
|
Условные обозначения:
CRC - текущее значение контрольной суммы;
BYTES_CTR - счетчик байтов
BITES_CTR - счетчик битов;
BYTES - указатель на текущий обрабатываемый байт;
A, B, C - вспомогательные переменные;
P_LENGTH - длинна пакета без байта контрольной суммы;
Å - операция поразрядного сложения по модулю 2;
SHR - операция поразрядного сдвига на 1 бит в право;
A.0 - самый младший бит переменной A.
Приведенный алгоритм вычисления контрольной суммы обладает следующими возможностями по обнаружению ошибок:
обнаруживает наличие любого нечетного количества ошибок;
все двойные ошибки;
любой блок ошибок длиной до 8 бит;
подавляющее большинство прочих более сложно распределенных ошибок.
В качестве примера предлагаем варианты программы расчета контрольной суммы на языках Basic, Си и Паскаль с комментариями. Просим прощения за возможные синтаксические ошибки в варианте на Basic, так как этот язык в наших разработках не используется.
На языке Basic
crc = &HFF ;Принять контрольную сумму равной &HFF
For i = 1 To p_length ;Цикл пока не обработаны все байты,
; (p_length - длина сообщения в байтах)
b = buffer(i) ;Взять текущий байт сообщения
For j = 1 To 8 ;Цикл по количеству битов в байте (8)
a = b Xor crc ;Логически сложить текущий байт с текущим значением crc
c = (a And &H1)*128 ;Выделить младший бит результата
If c = &H80 Then ;Младший бит результата равен 1?
crc = crc Xor &H18 ;Да. Логически сложить текущую crc с &H18
End If
crc = (crc / 2) Or c ;Сдвинуть crc вправо на 1 бит с заполнением
; старшего бита результатом предыдущих вычислений
b = b / 2 ;Сдвинуть текущий байт на 1 бит вправо
; с заполнением старшего бита нулем
Next j ;Завершение цикла по количеству битов в байте
Next i ;Завершение цикла по длине сообщения.
На языке Pascal (Turbo Pascal, Delphi)
I,J: Integer; //Счетчики циклов
CRC: Byte; //Контрольная сумма
AUX,DAT: Byte; //Временные переменные
Frame: array [0..39] of Byte //Сообщение
Length: Integer; //Длина сообщения (без контрольной суммы!)
CRC := $FF; //Инициализация контрольной суммы
for I := 0 to Length-1 do //Цикл по длине сообщения
begin
DAT := Frame[I]; //Заполнение DAT символом из сообщения
for J := 0 to 7 do //Цикл по байту сообщения (8 бит в байте)
begin
AUX := (DAT xor CRC) and 1; //Вычисление контрольной суммы:
if AUX = 1 then CRC := CRC xor $18; // xor – Исключающее ИЛИ
CRC := CRC shr 1; // and/or – Логическое И/ИЛИ
CRC := CRC or (AUX shl 7); // shl/shr – Сдвиг влево/вправо, не
DAT := DAT shr 1; // циклический, без переноса-заема
end; //Конец цикла по байту сообщения
end; //Конец цикла по длине сообщения
На языке C (ANSI)
int I,J; //Счетчики циклов
unsigned char CRC; //Контрольная сумма
unsigned char AUX,DAT; //Временные переменные
unsigned char Frame[40] //Сообщение
int Length; //Длина сообщения (без контрольной суммы!)
CRC=0xFF; //Инициализация контрольной суммы
for(I=0; I
{ DAT=Frame[I]; //Заполнение DAT символом из сообщения
for(J=0; J<8; J++) //Цикл по байту сообщения (8 бит в байте)
{ AUX=(DAT^CRC)&1; //Вычисление контрольной суммы:
if(AUX==1) CRC=CRC^0x18; // ^ – Исключающее ИЛИ
CRC=CRC>>1; // & / | – Логическое И/ИЛИ
CRC=CRC|(AUX<<7); // << / >> – Сдвиг влево/вправо, не
DAT=DAT>>1; // циклический, без переноса-заема
} //Конец цикла по байту сообщения
} //Конец цикла по длине сообщения
В следующей таблице представлены результаты расчета контрольной суммы по указанному алгоритму (в HEX - формате) для однобайтовых сообщений. Поле “Байт” содержит сообщение, поле “CRC” – его контрольную сумму.
Таблица 11. Пример расчета контрольной суммы для однобайтовых сообщений
Байт | CRC | Байт | CRC | Байт | CRC | Байт | CRC | Байт | CRC | Байт | CRC | Байт | CRC | Байт | CRC |
00 | 35 | 20 | 16 | 40 | 73 | 60 | 50 | 80 | B9 | A0 | 9A | C0 | FF | E0 | DC |
01 | 6B | 21 | 48 | 41 | 2D | 61 | 0E | 81 | E7 | A1 | C4 | C1 | A1 | E1 | 82 |
02 | 89 | 22 | AA | 42 | CF | 62 | EC | 82 | 05 | A2 | 26 | C2 | 43 | E2 | 60 |
03 | D7 | 23 | F4 | 43 | 91 | 63 | B2 | 83 | 5B | A3 | 78 | C3 | 1D | E3 | 3E |
04 | 54 | 24 | 77 | 44 | 12 | 64 | 31 | 84 | D8 | A4 | FB | C4 | 9E | E4 | BD |
05 | 0A | 25 | 29 | 45 | 4C | 65 | 6F | 85 | 86 | A5 | A5 | C5 | C0 | E5 | E3 |
06 | E8 | 26 | CB | 46 | AE | 66 | 8D | 86 | 64 | A6 | 47 | C6 | 22 | E6 | 1 |
07 | B6 | 27 | 95 | 47 | F0 | 67 | D3 | 87 | 3A | A7 | 19 | C7 | 7C | E7 | 5F |
08 | F7 | 28 | D4 | 48 | B1 | 68 | 92 | 88 | 7B | A8 | 58 | C8 | 3D | E8 | 1E |
09 | A9 | 29 | 8A | 49 | EF | 69 | CC | 89 | 25 | A9 | 06 | C9 | 63 | E9 | 40 |
0A | 4B | 2A | 68 | 4A | 0D | 6A | 2E | 8A | C7 | AA | E4 | CA | 81 | EA | A2 |
0B | 15 | 2B | 36 | 4B | 53 | 6B | 70 | 8B | 99 | AB | BA | CB | DF | EB | FC |
0C | 96 | 2C | B5 | 4C | D0 | 6C | F3 | 8C | 1A | AC | 39 | CC | 5C | EC | 7F |
0D | C8 | 2D | EB | 4D | 8E | 6D | AD | 8D | 44 | AD | 67 | CD | 02 | ED | 21 |
0E | 2A | 2E | 09 | 4E | 6C | 6E | 4F | 8E | A6 | AE | 85 | CE | E0 | EE | C3 |
0F | 74 | 2F | 57 | 4F | 32 | 6F | 11 | 8F | F8 | AF | DB | CF | BE | EF | 9D |
10 | A8 | 30 | 8B | 50 | EE | 70 | CD | 90 | 24 | B0 | 07 | D0 | 62 | F0 | 41 |
11 | F6 | 31 | D5 | 51 | B0 | 71 | 93 | 91 | 7A | B1 | 59 | D1 | 3C | F1 | 1F |
12 | 14 | 32 | 37 | 52 | 52 | 72 | 71 | 92 | 98 | B2 | BB | D2 | DE | F2 | FD |
13 | 4A | 33 | 69 | 53 | 0C | 73 | 2F | 93 | C6 | B3 | E5 | D3 | 80 | F3 | A3 |
14 | C9 | 34 | EA | 54 | 8F | 74 | AC | 94 | 45 | B4 | 66 | D4 | 03 | F4 | 20 |
15 | 97 | 35 | B4 | 55 | D1 | 75 | F2 | 95 | 1B | B5 | 38 | D5 | 5D | F5 | 7E |
16 | 75 | 36 | 56 | 56 | 33 | 76 | 10 | 96 | F9 | B6 | DA | D6 | BF | F6 | 9C |
17 | 2B | 37 | 08 | 57 | 6D | 77 | 4E | 97 | A7 | B7 | 84 | D7 | E1 | F7 | C2 |
18 | 6A | 38 | 49 | 58 | 2C | 78 | 0F | 98 | E6 | B8 | C5 | D8 | A0 | F8 | 83 |
19 | 34 | 39 | 17 | 59 | 72 | 79 | 51 | 99 | B8 | B9 | 9B | D9 | FE | F9 | DD |
1A | D6 | 3A | F5 | 5A | 90 | 7A | B3 | 9A | 5A | BA | 79 | DA | 1C | FA | 3F |
1B | 88 | 3B | AB | 5B | CE | 7B | ED | 9B | 04 | BB | 27 | DB | 42 | FB | 61 |
1C | 0B | 3C | 28 | 5C | 4D | 7C | 6E | 9C | 87 | BC | A4 | DC | C1 | FC | E2 |
1D | 55 | 3D | 76 | 5D | 13 | 7D | 30 | 9D | D9 | BD | FA | DD | 9F | FD | BC |
1E | B7 | 3E | 94 | 5E | F1 | 7E | D2 | 9E | 3B | BE | 18 | DE | 7D | FE | 5E |
1F | E9 | 3F | CA | 5F | AF | 7F | 8C | 9F | 65 | BF | 46 | DF | 23 | FF | 00 |
Еще один пример - типичный запрос на получение измеренного значения первого канала у прибора с адресом 1 выглядит в HEX – формате так:
Таблица 12
DEV | CHA | REG | RD | CRC |
01 | 00 | 01 | 00 | А0 |
То же самое, но для прибора с адресом 2:
Таблица 13
DEV | CHA | REG | RD | CRC |
02 | 00 | 01 | 00 | 28 |