Глава 1: Общее описание
Глава 2: Сенсорный блок
Глава 3: Блок индикации
Глава 4: Взаимодействие с ПК


Если Вы планируете интенсивно использовать описываемую систему измерения температуры, например, подключить ее к ПК или соединить с собственными приборами, то необходимо внимательно изучить структуру данных этой системы. Именно эта тема обсуждается на данной странице. Кроме того, здесь будет представлена программа, которая в наглядной форме представляет результаты измерений и обеспечивает запись данных в журнал.

Коммуникация между модулями

Передача данных между сенсорным блоком и блоком (блоками) индикации или ПК происходит по каналу RS-232. Поскольку данные пересылаются только в одном направлении и процедура согласования (Handshaking) не требуется, удалось сократить канал всего до одной линии: TXD от сенсорного блока ведет к RXD-контакту блока индикации или ПК. Преимуществом такой схемы является простота соединительного кабеля и возможность упрощения программы. Естественно, здесь есть и недостатки, ведь приемник должен быть готов в любое время принять данные, так как иначе данные будут просто потеряны. Однако, на практике это не является проблемой, так как блоки индикации работают на основе прерываний и современные ПК также в состоянии принимать данные без ошибок.
Первоначально рассматривалась также возможность реализации передачи данных по радио, например, с помощью готовых блоков приема-передачи, работающих в ISM-диапазоне (433 или 898 МГц). Однако, подобный вариант не мог обеспечить достаточно высокого уровня надежности и от него пришлось отказаться. Впрочем, планы использования радиоканала остаются, ведь у него есть свои преимущества.
Передача данных осуществляется со скоростью 9600 бод, передаются 8 бит данных и стоповый бит (без бита четности). Все пакеты данных состоят из ASCII-символов и завершаются символом пеервода каретки (CR, Carriage Return, 13h). В результате данные оказываются удобочитаемыми и при необходимости без дополнительных преобразований они могут быть просмотрены с помощью терминальной программы. В общей сложности имеется 3 ттипа пакетов данных, которые имеют следующую структуру:

Тип 1: Расположение сенсоров
Этот тип данных идентичен выводу на ЖК-индикатор во время стартовой процедуры и указывает, сколько сенсоров было найдено на каждой шине 1-Wire. Каждая буква на иллюстрации соответствует числу между 0 и 16, причем числа от 10 до 16 представляются буквами A-G. При использовании приведенного в разделе "Сенсорный блок" примера соединения получается следующая строка:
33000200
3 сенсора на шине1, следующие 3 на шине2 и еще 2 на шине6.
Тип 2: Температура
Этот тип данных используется для передачи результатов измерения температуры (°C). Номер сенсора n имеет значение 1-8 или a-h (соответствует номерам 9-16), в качестве разделителя всегда используется двоеточие, измеренная величина всегда передается в формате ttt.t (три цифры целой части, десятичная точка и одна цифра дробной части). Ведущие нули (сотни и десятки градусов) заменяются пробелами. Для температур ниже 0°C минус располагается перед первой значащей цифрой, то есть в позиции либо сотен, либо десятков градусов. Вот некоторые примеры:
3: 22.6	термодатчик 3 передает значение температуры 22.6°C.
4:  8.7	термодатчик 4 передает значение температуры 8.7°C.
5: -4.2	термодатчик 5 передает значение температуры -4.2°C.
c:-21.0	термодатчик 11 передает значение температуры -21.0°C.
Тип 3: Сигналы тревоги
Этот тип данных используется для передачи информации о состоянии цифровых входов (сигналы тревоги). Номер сигнала тревоги n представляется символами A-D, причем символ A используется для сигнала 1, B - для сигнала 2 и т.д., в качестве разделителя всегда используется двоеточие, а значение сигнала тревоги принимает значение 0 или 1, причем 0 означает "тревожный контакт разомкнут", а 1 - "тревожный контакт замкнут". Примеры:
B: 1	тревожный контакт 2 замкнут
B: 0	тревожный контакт 3 разомкнут


Подключение ПК

Подключение сенсорного блока к ПК или другой компьютерной системе по каналу RS-232 может быть выполнен с помощью представленного адаптера. Параллельно может быть выполнено также подключение к блоку индикации, т.е. данные от сенсорного блока будут отображаться как на ПК, так и на блоке индикации. Соответствующий последовательный порт на ПК должен иметь следующую конфигурацию:
Скорость: 9600,  биты данных: 8, стоповый бит: 1,
Четность: нет,   протоколы: нет
Для проверки приема данных можно использовать любую терминальную программу. На иллюстрации слева показан прием данных от сенсорного блока с помощью программы HyperTerminal. Для правильного приема и отображения данных необходимо установить следующие параметры:
Прямое соединение через порт COM1 или COM2 (параметры настройки порта см. выше);
Эмуляция: ANSI; Конфигурация ASCII: активировать параметр "при приеме дополнять символы возврата строки (CR)
символами перевода строк (LF)"
После проверки соединения можно перейти к использованию гораздо более удобной для представления и манипуляции описанными данными программы TAnz, краткое описание которой содержится ниже.


Программа TAnz

"TAnz" - это сокращение слова "Temperatur-Anzeige" ("Индикатор температуры"). Программа написана для 32-битовых версий Windows. Она должна работать на всех 32-битовых платформах, по крайней мере, все проведенные до сих пор проверки на версиях Windows 98, 2000, XP были успешными. TAnz предлагает следующие функции:

TAnz - установка

После загрузки текущей версии TAnz v1.03.01 следует распаковать ZIP-архив и скопировать его содержимое в пустой каталог. Для быстрого пуска программы следует установить соответствующую ссылку на рабочем столе. Собственно, это все, что надо сделать для установки программы.
Программа не создает никаких файлов за пределами своего стартового каталога, также не производятся никакие записи в системном реестре. Единственным исключением являются log-файлы - они могут быть созданы в любом каталоге по выбору, для этого следует изменить предлагаемый по умолчанию путь. Для деинсталляции достаточно стереть каталог, в котором установлена программа TAnz.
При первом запуске программа выводит окно, показанное на иллюстрации сбоку. Сначала данные не выводятся, так как TAnz сначала должна быть настроена. Эта настройка относительно проста и будет описана в следующем разделе.



TAnz - конфигурация

Чтобы продемонстрировать все возможности настройки TAnz, был разработан нижеследующий пример конфигурации системы, имеющей 15 термодатчиков и 4 сигнала тревоги, причем сигнал Alarm1 имеет нормальнозамкнутый контакт. ПК должен принимать данные с порта COM1.
С помощью пункта меню Einstellungen и Serielle Schnittstelle вызывается показанный слева диалог. В поле COM следует выбрать необходимый номер (в нашем примере COM1). В выпадающем списке содержатся только имеющиеся в системе и еще незанятые последовательные порты. Если все порты заняты (в том числе самой программой TAnz - дополнительная информация об этом содержится в разделе Управление), то этот список будет пуст. Список содержит не только реально существующие, но и виртуальные порты (например, порты, предоставляемые USB-адаптерами RS-232).
Для полей Buffer, Baud, Parity, Bits и Stop рекомендуется выбрать указанные на иллюстрации значения. Особо важен выбор скорости 9600 бод, поскольку сенсорный блок осуществляет коммуникацию именно с такой скоростью и не имеет возможностей для ее изменения (кроме повторной компилляции с измененными соответствующим образом параметрами и перепрограммирования сенсорного блока).
В следующем пункте меню Einstellungen и Log-Dateien определяются имена и место хранения обоих журналов (сигналы и температуры).
Следующий пункт меню Einstellungen и Namenzuordnung Sensoren открывает показанное слева окно. В нем для каждого сигнального входа и каждого температурного сенсора можно задать наименование (не более 12 символов). Затем эти наименования будут выводиться в главном окне над соответствующими полями данных.
Очередной пункт меню Einstellungen и Alarm- und Temperaturparameter требует большего внимания. Сначала в верхней части осуществляется конфигурирование сигнальных входов. При установке по умолчанию "нормально-разомкнутый контакт" программа генерирует сигнал тревоги при замыкании такого контакта, соответственно, при выборе установки "нормально-замкнутый контакт" сигнал тревоги будет возникать при размыкании такого контакта. В соответствии с примером конфигурации установка "нормально-замкнутый контакт" произведена для контакта Alarm1.
Таблица в центре служит для настройки предельных значений и параметра записи в журнал для каждого из температурных сенсоров T1-T16. В колонках Minimum и Maximum для каждого сенсора может быть задана нижняя и верхняя граница температуры. В нашем примере сигнал тревоги выдается, если температура на первом сенсоре опустится ниже 18°C или поднимется выше 35°C. У сенсора 9 сигнализация тревоги отключена.
Колонка Sekunden определяет интервал записи в журнал в секундах, а колонка Log включает или выключает функцию записи для соответствующего сенсора (переключение двойным щелчком мыши). В примере запись данных от сенсора 3 в журнал не происходит, все другие параметры записываются в журнал.
Под таблицей можно определить используемый формат журнала. В случае формата 1 (Дата;Время;T1;T2;...;T16) каждая запись имеет вид длинной строки, содержащей данные всех сенсоров. Результат выглядит следующим образом:
20041109;21:30:00; 22,4; 21,2;; 20,5; 22,1; 21,7; 23,6; 18,9; -2,6; -2,8;  8,9; 57,4; 51,5; 49,7; 12,4;
20041109;21:45:00; 22,3; 21,2;; 20,5; 22,0; 21,5; 23,5; 18,8; -2,7; -2,8;  8,9; 57,2; 51,6; 49,9; 12,3;
20041109;22:00:00; 22,3; 21,1;; 20,3; 21,8; 21,3; 23,6; 18,9; -2,8; -2,7;  8,7; 57,6; 51,7; 49,1; 12,4;
Здесь хорошо видны дата (09.11.2004), время и данные от сенсоров, причем данные от сенсора 3 не записываются. Сенсора 16 здесь также нет, поскольку он отсутствует в рассматриваемом примере конфигурации. Этот журнал соответвтует широко используемому формату CSV и поэтому может быть достаточно просто считан в базу данных или электронную таблицу. Важно: в случае применения этого формата для всех сенсоров необходимо установить одинаковый интервал записи в журнал. В случае формата 2 (Tx;Дата;Время;Значение) каждое значение записывается в отдельную строку и результат выглядит следующим образом: В первой позиции стоит номер сенсора (T1 соответствует сенсору 1), за ним - дата, время и измеренное значение. При использовании данного формата для каждого сенсора можно установить разные интервалы записи в журнал. Этот файл также соответствует CSV-формату и может обрабатываться программами, поддерживающими CSV-формат.
При выборе последней опции Einstellungen и Sensorbelegung появляется следующее окно, в котором для каждого сенсора можно активировать контроль работоспособности. Если сенсор, контроль которого активирован, выходит из строя, то по истечении около одной минуты в поле индикации появляется текст SENSOR!!. В примере отключен контроль сенсора 16, поскольку он не подключен.
Программа TAnz анализирует все поступающие данные (независимо от конфигурации сенсоров) и выводит их на экран.
На этом конфигурацию можно считать завершенной. Тем не менее, главный экран не показывает пока никакой информации, чтобы изменить эту ситуацию, следует перейти к управлению TAnz.

TAnz - управление

Для того, чтобы программа начала прием данных, необходимо активировать определенную опцию меню, но до этого следует сказать несколько слов о других еще не обсуждавшихся пунктах меню:
Меню Bearbeiten - в этом пункте доступны настройки коммуникации. Имеются следующие три опции: Меню Datei - в этом пункте доступны настройки журнала. Кроме того, здесь (как это является стандартом в Windows) расположена команда завершения работы TAnz: Теперь программа TAnz раконец-то может выводить информацию на экран, которая в рассматриваемом примере может выглядеть следующим образом:
В самом верху окна отображается распределение сенсоров, полученное от сенсорного блока. Поскольку эта информация пересылается только один раз при включении измерительной системы, необходимо сначала запустить программу TAnz - в противном случае поле останется пустым.
В следующей строке расположены поля с информацией о сигналах тревоги, а еще ниже - массив полей с данными температуры. Каждое из полей снабжено надписью, предварительно заданной в настройках, с их помощью легко ориентироваться в многообразии выводимых данных.
В некоторых полях данные представлены в цвете. В рассматриваемом примере сигнал Alarm2 (дверь на террасу) как раз активен и это состояние всегда индицируется подобным образом. Сигнал Alarm4 (почтовый ящик) представлен в зеленом цвете, это означает, что данная тревога срабатывала, однако теперь опять не активен. Таким образом, в течение дня, видимо, приходил почтальон и что-то бросил в ящик.
В температурных полях цветовая кодировка имеет то же значение. В данный момент на сенсор 5 (Детская 1) присутствует сигнал выхода за установленные границы. В настройках для этого сенсора была установлена нижняя граница 16°C, эта граница была нарушена, что и вызвало тревогу. Возможно, здесь открыли окно для проветривания и забыли закрыть его. Зеленый цвет сенсора 8 (спальня) указывает на то, что произошел выход за границу (нижнюю или верхнюю), но после этого параметр вернулся, так сказать, в зеленую область.
Таким образом, зеленый цвет указывает на то, что когда-то произошла генерация сигнала тревоги. Однако, при этом нельзя сказать определенно, когда и как часто подавался сигнал. Например, если вынуть поступившую почту из ящика и после этого посмотреть на экран, то на основании выведенного зеленым цветом значения нельзя сказать, не открывал ли кто-нибудь после этого ящик снова (единственное исключение: крышка ящика в данный момент открыта и тогда соответствующее поле имеет красный цвет). Для этой цели с помощью кнопки Gesamt-Reset можно сбросить все сигналы (тревиги и температуры). После нажатия на эту кнопку все поля вновь выводятся в черном цвете и все новые срабатывания сигналов становятся вновь видны. Можно также сбросить отдельные поля, для чего надо дважды щелкнуть мышью по соответствующему полю.
Справа вверху находится большая кнопка с надписью Eingangsdaten: an (aus). С ее помощью можно открыть дополнительный элемент, в котором можно наблюдать за необработанными данными, поступающими от сенсорного блока. Это может быть очень полезным при возникновении каких-либо проблем.
Нажатием на кнопку Eingangsdaten: aus этот элемент вновь закрывается. При завершении TAnz запоминает текущее состояние и при следующем запуске активирует элемент, если он был открыт в прошлый раз.

TAnz - управление

Программа TAnz ведет два различных журнала: один из них содержит все данные о температуре. По умолчанию он хранится под именем Temperature.log (это имя можно изменить), его конфигурация может быть изменена в пункте меню Einstellungen и Alarm- und Temperaturparameter (выбор сенсоров и интервала записи в журнал). Кроме того, с помощью меню Datei запись в журнал можно включить или выключить. Структура записываемых в журнал данных уже была описана ранее в разделе Конфигурация.
Осталось учесть следующее: при записи в журнал TAnz использует фиксированную шкалу времени, начинающуюся с 0:00, т.е. запись всегда производится в определенные моменты времени. В рассматриваемом примере для всех сенсоров выбран интервал записи в журнал 900 секунд = 15 минут. В этом случае TAnz производит запись в журнал в следующие моменты времени: 0.00, 0:15, 0:30, 0:45, 1:00, 1:15 и т.д.
Второй файл журнала по умолчанию хранится под именем Alarm.log (это имя также можно изменить) и содержит всю информацию о таких событиях, как поступление сигналов тревоги, сбросах сигналов тревоги, выходе за пределы установленных температурных границ, возврат значений температуры в установленный диапазон, а также выход из строя сенсоров. В отличие от Temperature.log этот файл не имеет возможностей настройки и запись в него происходит всегда. Формат записываемых данных также определен жестко: Tx;Дата;Время;Значение (соответствует второму варианту формата записи в журнал температур). Ниже приведены примеры записей и пояснения к ним:
A4;20041109;11:31:11;ALARM !!
A4;20041109;11:31:13;normal
Две эти строки сообщают о срабатывании датчика тревоги Alarm4 в 11:31:11 9 ноября 2004 г. и о его возврате в исходное состояние 2 секунды спустя. Применительно к рассматриваемой конфигурации это означает: 9 ноября 2004 г. в 11:31:11 почтальон что-то опустил в почтовый ящик.
T8;20041109;14:31:23;Unterschreitung
T8;20041109;14:32:14;normal
Здесь 9 ноября 2004 г. в 14:31:23 на сенсоре 8 зарегистрирован выход температуры за пределы нижней границы и ее нормализация в 14:32:14. Применительно к рассматриваемой конфигурации это сигнализирует о кратковременном снижении температуры в спальне, после которого информация в соответствующем поле данных будет выводиться в зеленом цвете.
T11;20041109;19:16:14;SENSOR !!
T11;20041109;19:25:31;normal
Эта журнальная запись указывает на временный выход из строя сенсора 11.
На этом описание программы можно завершить. В заключение следует сказать, что программа TAnz является расширяемой и автор ждет интересных идей. Предложения по улучшению программы или описания возникающих проблем лучше всего направлять непосредственно Михаэлю Бодагу.

Словарь радиоэлектронных компонентов
Интернет-магазин радиоэлектронных компонентов и наборов
Вопросы и замечания по содержанию данных страниц прошу отправлять в мой почтовый ящик.