- •Научно-производственное предприятие «Системы контроля»
- •Пермь 2005
- •Введение
- •1. Подключение датчиков к входам приборов Термодат
- •1.1. Термопарные термопреобразователи
- •1.1.1. Принцип действия и область применения термопар
- •1.1.2. Подключение термопар к приборам Термодат
- •1.2. Термометры сопротивления
- •1.2.1. Принцип действия и область применения
- •1.2.2. Подключение термосопротивлений к приборам Термодат
- •1.3. Подключение датчиков с токовым выходом
- •1.4. Подключение пирометров к приборам Термодат
- •1.5. Список датчиков, применяемых с приборами Термодат
- •1.6. Измерение температуры приборами Термодат
- •2. Методы регулирования температуры и их реализация в приборах Термодат
- •2.1. Анализ объекта
- •2.2. Позиционный метод регулирования температуры
- •2.3. Пропорциональный метод регулирования температуры c постоянной составляющей мощности
- •2.5. Рекомендации по настройке параметров пид – закона
- •2.6. АвтоПид
- •3. Подключение нагрузки к выходам приборов Термодат
- •3.1. Методы управления мощностью, подаваемой на объект регулирования
- •3.2. Подключение нагрузки релейным выходам
- •3.3. Подключение нагрузки к симисторным выходам
- •3.4. Подключение нагрузки к транзисторным выходам через силовые блоки типа сб
- •3.5 Управление аварийными ситуациями и дополнительным оборудованием при помощи приборов Термодат
- •4. Работа с приборами Термодат через компьютерный интерфейс
- •4.1. Подключение приборов Термодат к компьютеру через com или usb -порт
- •4.2. Протокол обмена Термодат
- •4.3. Протокол обмена modbus
- •4.5. Краткий обзор компьютерных программ для работы с приборами Термодат
- •5. Архивы в приборах Термодат
- •5.1. Загрузка архивов по протоколу Термодат
- •5.2. Доступ к архивам по протоколу modbus
- •Приложения
- •1. Номенклатура приборов Термодат
- •1.1. Промышленные регуляторы температуры с универсальным входом
- •1.2. Многоканальные промышленные регуляторы температуры
- •Термодат-13а1
- •Термодат-13 и Термодат-11 с компьютерным интерфейсом
- •Термодат-13 и Термодат-11 с архивом
- •1.3. Программные регуляторы. Регулирование температуры по заданному графику
- •1.4. Электронные самописцы. Регуляторы температуры с графическим дисплеем
- •1.5. Программные регуляторы c графическим дисплеем. Электронные самописцы.
- •1.6. Регуляторы температуры с большим количеством каналов
- •1.7. Программные регуляторы температуры с большим количеством каналов.
- •1.8. Многоканальные приборы для измерения температуры
- •1.9. Приборы для отопления, горячего водоснабжения и вентиляции
- •1.10. Вакууметры
- •1.11. Измерители и регуляторы для специальных применений
- •1.12. Таймеры, реле времени, счетчики, тахометры, регуляторы частоты вращения
- •1.13. Коммандоаппараты, приборы управления, приборы автоматики
- •1.14. Измерители длины кабелей, проводов, тканей, труб, шлангов, ленточных материалов и других протяженных изделий
- •1.15. Тиристорные и симисторные силовые блоки типа сб
- •2. Номенклатура термопреобрпазователей
- •2.1. Термопары
- •2.2. Бескорпусные термопары
- •2.3. Термометры сопротивления
- •2.4. Удлинительные провода для термопар и термометров сопротивления
- •4. Инструкция по использованию таблиц нсхa
- •5. Инструкция по монтажу приборов Термодат
4.3. Протокол обмена modbus
В протоколе MODBUS обмен производится при помощи последовательностей байт, каждый из байтов представляет собой код ASCII – символа. В последовательности байт закодирована передаваемая или принимаемая информация. Формат запросов и ответов следующий:
первый символ – заголовок команды, двоеточие «:» (ASCII код 3Ah);
далее идут два символа, задающие сетевой идентификатор прибора (адрес) который задается в виде целого шестнадцатеричного числа от 00 до FF, что в десятичной записи соответствует адресам от 0 до 255;
следующие два символа задают код выполняемой функции в виде шестнадцатеричного числа;
далее следуют данные, содержащие необходимую информацию и заданные в виде последовательности шестнадцатеричных цифр 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, B, C, D, E, F (вместо заглавных букв допустимы строчные);
далее в посылке идут два символа контрольной суммы передаваемой строки, заданной в виде шестнадцатеричного числа от 00 до FF (алгоритм вычислении контрольной суммы будет показан ниже);
завершают посылку два символа с кодами 0Dh и 0Ah («возврат каретки» и «перевод строки»).
В подсчете контрольной суммы передаваемой строки не участвуют заголовок (символ двоеточие) и последние два символа («возврат каретки» и «перевод строки»). Контрольная сумма – это сумма кодов символов, входящих в строку. При переполнении байта суммы бит переполнения отбрасывается. Остальные детали алгоритма понятны из приведенных ниже фрагментов программ подсчета контрольной суммы.
Реализация алгоритма контрольной суммы на языке программирования Delphi (Pascal)
Function LRC (s : string) : string;
var uLRC : byte;
sLRC : SmallInt;
i : integer;
begin
uLRC := 0;
for i:=2 to length(s) do uLRC:= uLRC + ORD(s[i]);
sLRC := - uLRC;
uLRC := sLRC;
result := IntToHex(uLRC,2);
end;
Реализация алгоритма контрольной суммы на языке C выглядит следующим образом:
static unsigned char LRC(auchMsg, usDataLen)
unsigned char *auchMsg ; /* sassage to calculate LRC upon */
unsigned short usDataLen ; /* quantity of bytes in message */
{
unsigned char uchLRC = 0 ; /* LRC char initialized */
while (usDataLen--) /* pass through message buffer */
uchLRC += *auchMsg++ ; /* add buffer byte without carry */
return ((unsigned char)(-((signed char)uchLRC))) ;
/* return twos complement */
}
Форматы запросов и ответов, адреса и коды параметров прибора
В следующей таблице приведены формы запросов и ответов для выполняемых функций
Функция |
Код функции |
Форма запроса: Обозначение и количество передаваемых байт |
Форма ответа: Обозначение и количество получаемых байт |
||||||||||||||||||||||||||||||||||
Читать несколько параметров |
03h либо 04h |
|
|
||||||||||||||||||||||||||||||||||
Записать один параметр |
06h |
|
|
||||||||||||||||||||||||||||||||||
Записать несколько параметров |
10h |
|
|
Условные обозначения:
Adr – сетевой адрес устройства, 2 символа
Fc – код функции, 2 символа
PAdr – адрес параметра, 4 символа
PNum – количество запрашиваемых (передаваемых) параметров от PAdr включительно, 4 символа
PVal1 .. PValN – значения параметров с адресами PAdr .. PAdr+(PValN-1), по 4 символа каждое значение
BNum – количество полезных байт BNum = 2PNum, 2 символа
LRC – контрольная сумма, 2 символа
CRLF – символы c кодами 0Dh и 0Ah, 2 символа
Основные особенности:
Если Adr = 00h («мастер-адрес»), то все приборы воспринимают данные, но ответа не следует
Все параметры передаются и принимаются как двухбайтовые шестнадцатеричные числа в текстовом формате ASCII (на каждый байт по 2 символа), в языке программирования C этот тип называется unsigned int
Если не существует параметра по запрашиваемому адресу (либо в случае ошибки), то вместо значения параметра посылается число 7FFFh
Если проверка LRC в запросе не увенчалась успехом, то запрос не воспринимается и ответа не следует
Если значение температуры 7D00h, то на данном канале обрыв, либо датчик отсутствует; если значение температуры 7D64h, то по каким-либо причинам нет (не было) данных от измерительного модуля
Адреса параметров:
Адрес параметра представляет собой двухбайтовое число, записанное в виде двух символов. Адрес параметра содержит код параметра (9 бит) и номер канала (7 бит). Структура адреса параметра представлена ниже в виде битовой диаграммы. Здесь же указаны диапазоны для кода параметра и номера канала. Нумерация битов справа налево.
В следующей таблице приведены соответствия кодов параметров различным параметрам прибора. Для удобства указаны значения кодов в шестнадцатеричной системе счисления в виде двух байтов, поэтому первые биты этих чисел нулевые.
Код параметра (или диапазон кодов) |
Название параметра |
Единицы измерения (если есть) |
0000h |
Сетевой адрес устройства |
|
0001h .. 000Ch |
Текущая температура (подряд все 12 каналов) |
0,1 0C |
0041h .. 004Ch |
Аварийная уставка для первого реле (подряд все 12 каналов) |
0,1 0C |
0081h .. 008Ch |
Аварийная уставка для второго реле (подряд все 12 каналов) |
0,1 0C |
00C9h |
Текущая температура на запрашиваемом канале (см. структуру адреса параметра) |
0,1 0C |
00Cah |
Аварийная уставка для первого реле на запрашиваемом канале |
0,1 0C |
00CBh |
Аварийная уставка для второго реле на запрашиваемом канале |
0,1 0C |
00CDh |
Нормальный период архива |
Секунды |
00CEh |
Аварийный период архива |
Секунды |
00D0h .. 00D5h |
Регистры для работы с архивом |
|
00D0h .. 00D2h |
Запрашиваемые из архива дата и время |
|
00D0h |
Старший байт – год (0 .. 99), младший – месяц (1 .. 12) |
|
00D1h |
Старший байт – день месяца, младший – количество часов (0 .. 23) |
|
00D2h |
Старший байт – количество минут (0 .. 59), младший – количество секунд (0 .. 59) |
|
00D3h |
Найденное в архиве значение температуры на запрашиваемые дату и время на указанном канале (чтение этого регистра может происходить медленно из-за траты времени на поиск в архиве). |
0,1 0C |
00D4h |
Интервал получения записей |
Секунды |
00D5h |
При чтении этого регистра происходит увеличение запрашиваемых даты и времени на заданный в регистре 00D4h интервал. Далее происходит поиск, и посылается найденное значение температуры на заданном канале (поиск занимает некоторое время). Регистры 00D0h .. 00D2h при этом не изменяются |
0,1 0C |
00F0h |
Идентификатор прибора: старший байт – серия 26h, младший – версия прошивки (01 .. FF) |
|
00F1h |
Количество каналов (12) для совместимости с другими моделями |
|
Примеры обмена c приборами в протоколе MODBUS
Читать параметры с адресами 0001h .. 000Ch (значения температуры на всех 12 каналах) на приборе с сетевым идентификатором (адресом) 05h.
Строка-запрос:
:05030001000CA4<CRLF>
Ответ: :05031800B07D007D007D007D007D0000AF7D007D007D007D0000AF7C<CRLF>
На каналах от 1 до 12 получены следующие значения: 17,6 0C; Обрыв; Обрыв; Обрыв; Обрыв; Обрыв; 17,5 0C; Обрыв; Обрыв; Обрыв; Обрыв; 17,5 0C
Установить (записать) значение нормального периода архива 5 секунд.
Строка-запрос:
:050602CD000587<CRLF> -
Примечание: адрес параметра 02CDh содержит номер канала 2. Этот номер игнорируется, т.к. период архива один на все каналы
Ответ:
:050602CD000587<CRLF>
Установить в архиве запрашиваемые дату и время 06.12.04 19:10:05.
Строка-запрос:
:051000D0000306040C06130A05C6<CRLF>
Ответ:
:051000D00003A3<CRLF>
Найти в архиве по запрашиваемым в предыдущем примере данным значение температуры на седьмом канале прибора с адресом 05h.
Строка-запрос:
:05040CD300018C<CRLF>
Ответ:
:05040200B300<CRLF>
Найдено значение 17,9 0C
