Комплексная интерактивная система по контролю и обеспечению жизнедеятельности растений. Техническая часть
Краткий обзор объектов поддержания жизнедеятельности растений. Оранжерея Санкт-Петербургского Ботанического сада. Контейнерное садоводство. Аппаратная реализация исполнительного комплекса. Программные драйверы. Датчики контроля и электрическая штора.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 03.10.2013 |
Размер файла | 2,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Комплексная интерактивная система по контролю и обеспечению жизнедеятельности растений. Техническая часть
Обозначения и сокращения
Интернет - глобальная компьютерная сеть.
ОС - операционная система.
ПК - персональный компьютер, обычно IBM совместимый.
ПО - программное обеспечение.
ЭВМ - электронно-вычислительная машина.
ИИ - искусственный интеллект.
АЦП - аналого-цифровой преобразователь
ЦАП - цифро-аналоговый преобразователь
HTML (Hypertext Markup Language)- язык для написания гипертекстовых документов. Основная особенность - наличие гипертекстовых связей между документами находящимися в различных архивах сети; благодаря этим связям можно непосредственно во время просмотра одного документа переходить к другим документам.
XHTML (англ. Extensible Hypertext Markup Language -- Расширяемый язык разметки гипертекста) -- язык разметки веб-страниц, по возможностям сопоставимый с HTML, однако является подмножеством XML.
Ajax -- (от англ. Asynchronous JavaScript and XML -- «асинхронный JavaScript и XML») -- это подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате при обновлении данных веб-страница не перезагружается полностью, и веб-приложения могут быть сделаны более быстрыми и удобными..
РНР (Preprocessor Hypertext Preprocessor) - препроцессор гипертекстового препроцессора. Язык программирования, ориентированный на обработку гипертекстовой информации в рамках Интернет-технологий.
CSS (англ. Cascading Style Sheets -- каскадные таблицы стилей) -- технология оформления веб-страниц.
XML (англ. eXtensible Markup Language -- расширяемый язык разметки; произносится [экс-эм-эмл]) -- рекомендованный Консорциумом Всемирной паутины язык разметки, фактически представляющий собой свод общих синтаксических правил. XML -- текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями. XML является упрощённым подмножеством языка SGML.
USB - (Universal Serial Bus) - универсальная последовательная шина.
Введение
В течение более двадцати последних лет происходит интенсивное развитие техники, связанное с внедрением новых технологий - интернет, мобильная связь, цифровое телевидение. Эти технологии имеют широкую сферу применения и могут быть использованы, в частности, в построении “умного дома” или даже, «умного производства». В данном дипломе основное внимание отводится системам автоматизации обеспечения жизнедеятельности растений. Дипломное проектирование облегчается наличием дешевых, доступных и универсальных компонентов, выпускаемых промышленностью в настоящее время. Таким образом, в дипломе ставится задача разработать и создать комплекс соответствующего аппаратного и программного обеспечения.
Возможной областью внедрения создаваемого нового комплекса являются частные (домашние) оранжереи и производственные или декоративные оранжереи, например, оранжерея Ботанического Сада города Санкт-Петербурга. Предварительное исследование вопроса показывает целесообразность такого рода исследований, поскольку на настоящий момент в городской оранжерее из систем автоматизации присутствует только контроль температуры воздуха в устаревшем исполнении - термометр и вентиль на систему отопления. Детали будут рассмотрены ниже. Необходимо отметить, что разрабатываемый в дипломе комплекс прошел успешные испытания в частных оранжереях и в Ботаническом Саду. По итогам применения выдан акт о внедрении (копия в приложении Б).
Следует подчеркнуть также, что в настоящее время всё большую популярность приобретают системы автоматизации с возможностью удаленного доступа к различным объектам и системам, которые ранее требовали непосредственного участия человека. Поэтому использование Интернета является обязательным в данном комплексе, что требует, в свою очередь, разработки соответствующего программного обеспечения. В выбранном варианте реализации сигналы с датчиков поступают в размещенный в Интернете пакет математического моделирования MatLab On Line, эксплуатирующий распространенный в инженерной и студенческой практике язык матричного исчисления. И кроме того, расчетные воздействия могут быть поданы из Интернет на исполнительные устройства, в данном случае - системы полива, увлажнения почвы и воздуха, регулирования освещенности и другие.
В итоге, мы получаем интересную разработку, включающую в себя различные методы по контролю и обеспечению жизнедеятельности растений, которая позволяет управлять всеми процессами не только в непосредственной близости с объектом, но и удаленно, например, через интернет или мобильный телефон, что также не исключает использования данного метода для контроля за любыми другими объектами, требующими к себе повышенного внимания к процессу их жизнедеятельности.
1. Краткий обзор объектов поддержания жизнедеятельности объектов
Остановимся на типичных объектах автоматизации. Разобьем эти объекты на три группы.
К первой группе отнесем большие растения, такие, как деревья и кустарники Ботанического Сада. Они требуют специфического ухода. В отношении их в оранжереях накоплен большой опыт по уходу за ними. И целью системы является, в частности, формализация и систематизация этого опыта: определение типичных световых, влажностных и температурных режимов по имеющимся апробированным данным.
Ко второй группе отнесем различное контейнерное садоводство, более типичное для частных оранжерей. Это выращивание овощей и фруктов в контейнерах, выращивание цветов в небольших масштабах в домашних условиях. Следует отметить, что это вызывает устойчивый интерес любителей, и в более широком смысле может включать в себя интересы пчеловодов, небольших предприятий аграрной промышленности, связанных с разведением рыб, аквариумное хозяйство, и т.д. Данная тема в настоящее время широко обсуждается в Интернете как составная часть технологии построения “Умного Дома”.
К третьей группе относятся экзотические растения, требующие особо внимательного отношения к их выращиванию, и, в частности, это широкое направление, связанное с выращиванием орхидей. Для садоводов орхидеи отличаются повышенной трудностью их содержания и включают, в том числе, спортивный интерес по поддержанию красивых, но весьма требовательных растений, и комплекс в данном случае должен включать большее число датчиков, исполнительных контуров, и более аккуратно обходится с временными параметрами полива, увлажнения и т.д. ( т.е. не по заранее составленной программе, как в случае с контейнерными растениями, а с использованием управления с обратной связью).
Отличительной чертой данного проекта является модульная технология разработки комплекса, что позволяет переориентировать его в вышеперечисленные области применения без трудоемких затрат. Основным средством реализации задачи являются высокопроизводительные устройства ввода, вывода и цифровой обработки сигналов, а также исполнительные устройства - водяные помпы, увлажнители воздуха, электрические шторы и т.д.
1.1 Оранжереи Ботанического Сада Санкт Петербурга
Содержание и уход за крупными редкими видами растений невозможны в домашних условиях. Как правило, необходимы специальные условия, создаваемые в ботанических садах. Цель нашего обзора - зафиксировать существующее положение дел с растениями и автоматизацией классического ботанического сада на примере оранжерей Санкт Петебурга.
Отметим, что ботаническая наука в Петербурге представлена на уровне ведущих научно-исследовательских учреждений. Этот список возглавляют:
1) Ботанический институт им. В.Л.Комарова Российской академии наук
2) Всероссийский институт растениеводства им. Н.И.Вавилова
3) Всероссийский институт защиты растений
Санкт-Петербургский Ботанический Сад, созданный на базе Ботанического институт им. В.Л.Комарова, является одним из старейших в нашей стране. Основанием Саду послужил «Аптекарский огород», учрежденный Петром I в 1714 году для выращивания лекарственных трав, а также редких и интересных «заморских» растений. Рост коллекций и значимость работ по изучению растений привели к учреждению в 1823 году Императорского Ботанического Сада. За 1823-1824 годы построено каре оранжерей, планировка которых в основном сохранилась до наших дней. Одновременно создавался парк.
Ботанический Сад обладает богатыми коллекциями живых растений в оранжереях и в парке. В оранжереях Ботанического Сада, площадь которых составляет около 1 га, а общая протяженность 1 км, собраны коллекции живых растений, насчитывающие более 7,5 тыс. видов растений, в том числе из самых отдаленных и экзотических уголков планеты.
Здесь есть «висячие сады» из эпифитов, живущих высоко на ветвях тропических деревьев, видны листья папоротников. Ежегодно в оранжереях дают плоды манго, какао, кофе, флакуртия (тропическая слива), бананы, цитрусовые (лимон, мандарин, апельсин), японская мушмула, инжир, фейхоа, гранат и ряд других растений. Австралийские акации цветут начиная с февраля и цветение некоторых видов продолжается до июля; есть каллистемоны, пальмы, жасмины.
В оранжерее № 6 существует редкая коллекция вересковых, представленная более чем 50 видами азалий и рододендронов. Рододендроны родом из Индии, Китая, Японии, Северной Америки, с гор до 3000-45000 метров над уровнем моря. Естественно, нужны соответствующие условия. В коллекции около 100 гибридных сортов листопадных рододендронов, известных в садоводстве под названием азалий.
В оранжерее № 15 находится коллекция тропических и субтропических папоротников, представленная 500 видами и сортами этих растений. Папоротники широко распространены по всему земному шару, наибольшее их разнообразие наблюдается во влажных тропических лесах, где они произрастают не только на почве, но и как эпифиты на стволах деревьев. Поэтому прохладное отделение оранжереи занимают древовидные папоротники - обитатели горных районов тропиков. Во втором отделении оранжереи расположены эпифиты, среди них миниатюрные папоротники - хейлантесы, хемионитисы, актиниоптерисы.
Коллекция суккулентных и ксерофитных растений собрана в двух оранжереях - фондовой и демонстрационной (оранжерея № 16).
Для содержания уникальной коллекции редких растений необходим профессионализм и опыт, наработанный годами. Еще совсем недавно, людям приходилось выполнять практически всю работу самим и контролировать множество параметров микроклимата с помощью давно устаревших приборов. В ходе недавней реконструкции оранжерей, ситуация с автоматизацией несколько улучшилась. Появились средства регулировки температуры, представленные на рисунках 1 и 2, подключенные к отопительной системе. Это позволило автоматически регулировать температуры внутри оранжерей.
Безусловно, внедренные нововведения, облегчили труд сотрудников ботанического сада и упростили процесс содержания растений. Однако, очевидно, процесс содержания автоматизирован лишь частично.
Коллекция особо редких и нуждающихся в особых условиях растений начала создаваться еще в 30-е годы XVIII века, когда в Ботаническом саду выращивались опунции, цереусы и алоэ. В настоящее время она насчитывает около 1600 видов этих растений, отдельные особо редкие экземпляры которых имеют возраст 50-100 и более лет. Кроме кактусов здесь представлены эндемики острова Мадагаскар - дидиорея Тролля и пахиподиумы, южно-африканские литопсы, растение пустыни Намиб - вельвичия удивительная (на родине ее возраст достигает 2000 лет).
Уже в момент проектирования такой редкой и дорогой по составу оранжереи инженеры задумывались о режимах ухода за растениями. Поскольку технологии, доступные на момент постройки не могли позволить сделать многое, научным сотрудникам и работникам ботанического сада основную часть работы приходилось делать вручную. Несмотря на то, что с момента основания сада прошло практически 300 лет, сейчас мало что изменилось в самом процесса ухода за растениями, но зато накоплен весьма ценный опыт, который можно заложить в автоматизированную систему.
1.2 Контейнерное садоводство
Контейнерное садоводство подходит для жителей городских квартир и таунхаузов. В контейнерах легко вырастить томаты, перец, лук-порей, бобы, морковь, редис, зеленные и ягодные культуры. Контейнером для овощей и фруктов может стать любая емкость с отверстиями для слива воды: кадка, горшок, ящик, подвесная корзина. Распространенное решение - специальные пластиковые контейнеры, которые и дали название популярному ныне направлению. Пример пластиковых контейнеров изображен на рисунке 3.
Контейнеры должны быть наполнены грунтовой смесью, на дно уложен слой дренажного материала. Для наземных горшков используется гравий или осколки терракоты - они сделают контейнеры более тяжелыми, устойчивыми. Для подвесных корзин подойдут легкие прокладки из джута, полиэтилена, скорлупы кокосового ореха, мха (красивый, но дорогой материал), а также из картона. Контейнеры темных цветов будут больше нагреваться на солнце, поэтому в них не выращивается редис, репа, пастернак и другие культуры, предпочитающие прохладу.
Преимущества контейнерного садоводства:
- Удобный «мобильный» огород (можно передвинуть горшки туда, где больше солнца или насекомых-опылителей).
- Экономия труда и времени (не надо заниматься перекапыванием почвы).
- «Работает» на бедных почвах и ограниченном пространстве городской квартиры.
- Заполняет некрасивые пустоты в саду и сезонные «залысины» в цветниках
Яркий пример контейнерного садоводства изображен на рисунке 4.
Контейнерное цветоводство справедливо завоевывает все большую популярность, что неудивительно, учитывая его преимущества. Однако контейнерная культура имеет свои недостатки: летом растения нужно часто поливать, в период засухи может понадобиться ежедневный полив. Поэтому автоматизация контейнерного садоводства, как нельзя лучше всего подходит для повышения популярности этого вида.
1.3 Орхидеи
Немаловажное значение имеет объект контроля - орхидея. Это декоративно-цветущие растения выделены в особую группу. Орхидеи - многолетние травянистые растения, родом из тропических стран с жарким и умеренным климатом. Орхидеи ценятся не только за своеобразность и красоту цветков самых разных оттенков и цветов, но и за то, что цветение многих из них приходится в основном на зимние месяцы.
Бесспорным преимуществом перед всеми другими цветущими растениями является длительность цветения - цветы орхидей держатся около 1 месяца, у некоторых видов около 2-3 месяцев на растении и около месяца, если их срезать. Цветки орхидей одиночные, в кистевидных, метельчатых и колосовидных соцветиях. Цветки имеют яркоокрашенный околоцветник из двух трехчленных кругов. Задний лепесток внутреннего круга, называется губой и отличается от остальных и по форме и по окраске. Три тычинки в цветке крепятся к столбику, развиты из них только одна или две. Плод - коробочка. Семена очень мелкие, пылевидные. На рисунке 5 изображены орхидеи из коллекции ботанического сада.
Орхидеи очень требовательные и капризные в культуре растения В первую очередь по тому, что им нужна достаточно высокая влажность воздуха.
2. Аппаратная реализация исполнительного контура
2.1 Общая схема комплекса
На рисунке 6 приведена общая схема комплекса.
В состав комплекса входят такие части и элементы, как:
- USB - Канал связи с компьютером
- Модуль оцифровки сигналов и вывода управлений LCard
- Реле исполнительных механизмов
- Датчики: влажности воздуха, температуры, освещенности, влажности почвы.
- 12 В - Блок питания реле
- Включение системы
- Включение шторы
- 24 В - Блок питания шторы
- Ручной реверс шторы
- Ручное управление исполнительными устройствами
На рисунке 7 приведена фотография собранного из указанных элементов опытного образца комплекса, изготовленного специально для диплома и испытаний в Ботаническом Саду.
2.2 Блок АЦП/ЦАП
Аналого-цифровые преобразователи (АЦП) являются устройствами, которые принимают входные аналоговые сигналы и генерируют соответствующие им цифровые сигналы, пригодные для обработки микропроцессорами и другими цифровыми устройствами.
Цифро-аналоговый преобразователь (ЦАП) предназначен для преобразования числа, определенного, как правило, в виде двоичного кода, в напряжение или ток, пропорциональные значению цифрового кода.
На рисунке 8 представлен блок современных USB цифро-аналоговых преобразователей от LCARD, собранный в одну коробку, используемый как составная часть конструируемого комплекса согласно приведенной выше схеме, рисунок 6.
Слева и справа у него имеются контактные группы аналоговых и цифровых входов-выходов [5]. Технические характеристики модуля представлены в Таблице 1.
Таблица 1 - Технические характеристики АЦП/ЦАП
АЦП |
||
Количество каналов |
16 дифференциальных или 32 с общей "землей" |
|
Разрядность АЦП |
14 бит |
|
Эффективная разрядность |
13,3 бит (100 кГц, диап. изм 2,5 В.) |
|
Входное сопротивление (при одноканальном вводе) |
не менее 1 МОм |
|
Диапазон входного сигнала |
± 10 В; ± 2,5 В; ± 0,625 В; ± 0,156 В |
|
Максимальная частота преобразования |
100 кГц (для внутренней или внешней аппаратной синхронизации) |
|
Синхронизация |
от внешнего синхросигнала, по уровню аналогового сигнала, от встроенного таймера, возможна многомодульная синхронизация |
|
Защита входов |
± 30 В (питание вкл.) ± 10 В (питание выкл. и в режиме suspend) |
|
Микроконтроллер |
||
Тип |
ATMega8515 |
|
Тактовая частота |
16 МГц |
|
Внутреннее ОЗУ данных |
512 Байт |
|
Внутреннее ПЗУ программ |
8 кБайт |
|
FIFO буфер АЦП |
16 кСлов |
|
ЦАП |
||
Количество каналов |
2 |
|
Разрядность |
12 бит |
|
Время установления |
8 мкс |
|
Выходной диапазон |
± 5 В |
|
Выходной ток, не более |
2 мА |
|
Цифровые входы и выходы |
||
Количество входов |
16 |
|
Количество выходов |
16 |
|
Входы-выходы синхронизации |
вход прерывания контроллера, вход-выход синхронизации АЦП |
|
Тип логики |
КМОП (74 HCT) |
|
Питание от шины USB |
||
Потребляемый ток |
до 260 мА (в активном режиме), до 95 мА (в режиме suspend) |
|
Выходы для питания внешних цепей |
+5 В, до 100 мА, ±15 В, до 20 мА по каждой из цепей (опция) |
|
Габариты 129x95x26 мм |
Рисунок 9 представляет собой функциональную схему модуля АЦП/ЦАП.
Рисунок 9 - Функциональная схема
АЦП/ЦАП состоит из следующих элементов:
1) Микроконтроллер AVR AtMega8515, этот контроллер осуществляет внутреннее управление E14-140
2) USB-device PDIUSB12D, - низкоуровневый контроллер USB, - управляется от AVR
3) Коммутатор, предназначенный для аналоговой коммутации сигналов с аналоговых входов на вход усилителя под управлением AVR
4) Усилитель, имеющий 4 градации коэффициента усиления.
5) АЦП LTC1416 - 14 битное АЦП последовательного приближения, с широкими возможностями программной настройки режима старта АЦП: с использованием входа прерывания ( на разъеме ANALOG I/O ) или входа-выхода синхронизации ( на разъеме DIGITAL I/O)
6) Буфер АЦП, хранящий один 14 битный отсчет АЦП в формате 8+8 бит с расширенным знаком дополнительного кода.
7) ОЗУ 32 МБ, используемое AVR для буферизации данных АЦП
8) Двухканальный ЦАП, записываемый от интерфейса SPI AVR.
Схема аппаратные возможности наиболее существенной части комплекса, существующие регистры и составные части, которые могут учитываться при программировании.
2.3 Аппаратные особенности АЦП/ЦАП
Поясним, каким образом аппаратные особенности АЦП/ЦАП отражаются на программировании комплекса. Ниже на рисунке 10 приведены контактные группы аналоговых входов-выходов [5].
Рисунок 10 - контактные группы аналоговых входов-выходов АЦП-ЦАП модуля E14-140D LCARD
Для инициализации двух выходов ЦАП и использования сигналов двух датчиков АЦП в программном обеспечении комплекса описываются размерности u=[0 0]', y=[0 0]', соответственно и подается команда y=read(u). Вторичное обращение к команде будет подавать соотвествующие сигналы управления на ЦАП и принимать данные в вектор y.
Ниже приведен пример организации цикла сбора данных, запускаемого командой start.
function: start
ЦИКЛ СБОРА ДАННЫХ For i=1:100, measure,
ВЫВОД ГРАФИКА if i=1, g=x else g=[g; x], end, g=??, pause 0.1, end
function: measure
ДВА ОПОРНЫХ НАПРЯЖЕНИЯ ПИТАНИЯ ДЛЯ ДАЧИКОВ u=[5 5]', z=[0 0]',
ПОДАЧА НАПРЯЖЕНИЯ y=read(u), pause 0.1, СБОР ИНФОРМАЦИИ y=read(u), x=0.9*x+0.1*y(2), НОРМИРОВКА
ОТКЛЮЧЕНИЕ ПИТАНИЯ ДАТЧИКОВ y=read(z),
2.4 Программные драйверы
Для реализации отмеченных выше команд необходимо использовать команды нижнего уровня обмена данными с АЦП-ЦАП модуля E14-140D LCARD, которые организуются в виде вызова подпрограмм на Pascal из среды драйверов Lusbapi, поставляемой вместе с модулем.
Интерфейс для модуля E14-140D LCARD
Перечислим базовые функции для работы с АЦП: 1) Старт-стопные function START_ADC : boolean; virtual; stdcall; abstract; function STOP_ADC : boolean; virtual; stdcall; abstract; 2) Функция “Кадр” - снять набор точек с 1 по 16 АЦП function ADC_KADR(Data : pshort) : boolean; virtual; stdcall; abstract; 3) Функция “Сампл” - снять выборку данных с канала function ADC_SAMPLE(Data : pshort; Channel : word) : boolean; virtual; stdcall; abstract. Базовая функция для работы с двухканальным ЦАП: function DAC_SAMPLE(Data : word; Channel : word) : boolean; virtual; stdcall; abstract. Функции для работы с ТТЛ линиями: 1) Активизация линий function ENABLE_TTL_OUT(EnableTtlOut : boolean) : boolean; virtual; stdcall; abstract; 2) Входные данные function TTL_IN(TtlIn : pword) : boolean; virtual; stdcall; abstract; 3) Выходные данные function TTL_OUT(TtlOut : word) : boolean; virtual; stdcall; abstract;
Все интерфейсные функции (кроме особых ReadData() и WriteData()), строго говоря, не обеспечивают “потокобезопасную” работу dll-библиотеки. Поэтому, во избежание недоразумений, в многопоточных приложениях пользователь должен сам организовывать, если необходимо, корректную синхронизацию вызовов интерфейсных функций в различных потоках (используя, например, критические участки, мутексы и т.д.).
В файл библиотеки функций Lusbapi.dll включена информация о текущей версии dll. CreateInstance() возвращает указатель на интерфейс модуля E-140. В дальнейшем, используя этот указатель, можно осуществлять доступ ко всем интерфейсным функциям dll-библиотеки (см. исходные тексты примеров). Для получения в приложении сведений о данной версии можно использовать вторую из экспортируемых функций из штатной библиотеки: GetDllVersion().
Перед началом работы с DLL библиотекой в пользовательской программе нужно сделать следующие объявления:
ILE140 *pE140; // указатель на интерфейс модуля E-140
ADC_PARS_E140 am; // структура содержащая параметры работы АЦП
MODULE_DESCR_E140 md; // структура содержащая важную информацию о модуле.
GetDllVersion() позволяет проверить версии используемой dll-библиотеки и текущего программного обеспечения.
Если версии совпадают, то в приложении необходимо получить указатель на интерфейс модуля, вызвав функцию CreateInstance(). В дальнейшем для доступа ко всем интерфейсным функциям модуля необходимо применять именно этот указатель. После этого, используя уже полученный указатель на интерфейс модуля, следует проинициализировать доступ к виртуальному слоту, к которому подключён модуль, применяя для этого интерфейсную функцию OpenLDevice(). Если ошибки нет, то, в общем случае, какой-то из модулей Е-140 подключен к выбранному виртуальному слоту и можно переходить к этапу его идентификации.
Данные, считанные с 14-ти битного АЦП модуля E-140, представляются в формате знакового целого двухбайтного числа от -8192 до 8191. Точностные пределы кодов АЦП, соответствующие выбранному входному диапазону, приведены в следующей таблице 2.
Таблица 2 - Соответствие кода АЦП напряжению на аналоговом входе
Модуль |
Усиление |
Код |
Напряжение, В |
Точность, % |
|
E-140 |
1; 4; 16; 64 |
+8000 |
+MAX |
2ч3 |
|
0 |
0 |
0.25; 0.3; 0.5; 1.0 |
|||
-8000 |
-MAX |
2ч3 |
В таблицу 3 сведены также наиболее часто встречающиеся при программировании модуля термины:
Таблица 3 - Термины
Название |
Смысл |
|
AdcRate |
Частота работы АЦП в кГц |
|
ChannelRate |
Частота работы аналогового канала в кГц |
|
InterKadrDelay |
Межкадровая задержка в млс |
|
Buffer |
Указатель на целочисленный массив для данных |
|
Npoints |
Число отсчетов ввода |
|
AdcChannel |
Логический номер аналогового канала АЦП |
|
ControlTable |
Управляющая таблица,содержащая целочисленный массив с логическими номерами каналов для циклического последовательного ввода данных с АЦП |
|
ControlTableLength |
Длина управляющей таблицы |
2.5 Режим синхронизации АЦП/ЦАП
Старт АЦП может быть синхронизирован с уровнем контролируемого входного сигнала. Пороговое значение сигнала для режима аналоговой синхронизации начала сбора задается в кодах АЦП в диапазоне [-8192..+8191].
Данное поле принимается во внимание только при параметре InputMode=3. растение оранжерея программный драйвер
Ниже перечислены условия начала сбора данных АЦП при аналоговой синхронизации (InputMode=3) и различных значениях полей SynchroAdType и SynchroAdMode (для наглядности приведен рисунок 11).
Рисунок 11 - Режим синхронизации
Устанавливаемые параметры наиболее популярных режимов:
SynchroAdType=0 SynchroAdMode=0
Условием начала сбора данных АЦП является обнаружение сигнала с уровнем большим чем заданное пороговое значение, при этом общая предыстория сигнала не важна (Пример: если запустить АЦП в момент времени (0..t1) или (t2..t3), то сбор начнется только в момент времени t1 или t3 соответственно. Если же запустить АЦП в момент времени (t1..t2), то сбор данных начнется сразу).
SynchroAdType=0 SynchroAdMode=1
Условием начала сбора данных АЦП является обнаружение сигнала с уровнем меньшим чем заданное пороговое значение, при этом общая предыстория сигнала не важна. (Пример: Если запустить АЦП в момент времени (0..t1) или (t2..t3) , то сбор данных начнется сразу. Если же запустить АЦП в момент времени (t1..t2), то сбор начнется только в момент времени t2.)
SynchroAdType=1 SynchroAdMode=0
Условием начала сбора данных АЦП является обнаружение перехода сигнала с уровня меньшего, чем заданное пороговое значение, на уровень с большим, чем пороговое, значением. (Пример: Если запустить АЦП в момент времени (0..t1), то сбор начнется только в момент времени t1. Если же запустить АЦП в момент времени (t1..t3), то сбор начнется только в момент времени t3.)
SynchroAdType=1 SynchroAdMode=1
Условием начала сбора данных АЦП является обнаружение перехода сигнала с уровня большего, чем заданное пороговое значение, на уровень с меньшим, чем пороговое, значением. (Пример: Если запустить АЦП в момент времени (0..t2), то сбор начнется только в момент времени t2.)
2.6 Инсталляция в Visual MatLab
В студии Visual Matlab за основу принята стилизованная версия языка Matlab, изложенная в фундаментальной работе "Матричные Вычисления" авторов Дж. Голуба и Ч. Ван Лоуна. Внешний вид программы MatLab изображен на рисунке 12.
Рисунок 12 - Внешний вид МатLab программы
На основе подпрограмм нижнего уровня создается средний уровень обмена данными с АЦП-ЦАП модуля E14-140D LCARD в виде набора команд программы Visual Matlab обращений к АЦП-ЦАП:
1) Установка размерностей вектора измерения и управления. Сначала устанавливаются размеры векторов измерения и управления. Для односвязных систем y=0, u=0. Чтобы задействовать три выхода, два синфазных входа поступаем иначе: y=[0 0 0]', u=[0 0]', y=read(u).
2) Подача и чтение данных: для аналоговых портов y=read(u), для дискретных y=readig(u). В последнем случае u=3 означает в двоичной системе счисления 11 (установка в единичку двух первых логических выводов DO TTL-логики).
3) Управление и измерение по таймеру: Для управления в режиме реального времени c заданным шагом в 1 секунду (1000 mсs) инициализируется таймер по open timer support и пишется программа обработки прерывания вида
word/function: timer 1000 mсs
<Тело программы обработки прерываний>
Перечислим основные особенности программирования Visual MatLab. Во-первых, ось времени. C целью повышения скорости вычислений она генерируется специальной функцией t=time(протяженность), а не t=0:шаг: протяженность. Во-вторых, имена переменных декларируются matrices: имя, имя, имя (имя в одну букву можно не декларировать), также, например, как и в Pascal. В-третьих, точка с запятой используется только после команд вывода матриц и графиков для организации паузы в их рассмотрении.
И первое, и второе, и третье избавляет транслятор от издержек анализа. В остальном, синтаксис сохраняется, формулы отделяются друг от друга запятыми, и поскольку Matlab открытая система, где функции пишутся пользователями, введение новых не противоречит его концепции.
Помимо языка матричных вычислений Visual Matlab поддерживает язык управления картинками, для иллюстрации работы приложений.
Рисунки могут содержать родительские и дочерние сегменты, подобно тому, как на руке имеются пальцы, а пальцы имеют фаланги.
Запятая связывает интерпретируемые предложения, описывающие одновременное движение частей, точка служит цели вывода синтезированного изображения на экран монитора.
Синтаксис приближен к синтаксису обычного языка "Simple English", причем есть адаптаторы к прочим европейским языкам, включая русский. Перечень поддерживаемых графических команд содержится в справочном разделе самой программы.
Особое внимание отводилось удобочитаемости интерпретируемого транслятором текста: "кисть манипулятора поворачивается на X градусов влево", где вычислением переменной X занят, собственно, MatLab.
Сочетание этих двух языков в одном трансляторе (математического и "обычного") создает эффективное средство визуализации математических вычислений Visual Matlab.
Примеры: Итак, договоримся считать, что матрицы обозначаются латинскими буквами A, B, ... x, y, z, в том случае, когда нам нужно привлечь более развитое обозначение, оно обязательно декларируется (уступка скорости трансляции) matrices: Xo, X1, X2, X3, и так далее. Типичные матричные выражения выглядят также, как и в MatLab X=[ 1 1 ]', Y=X'*X. Штрих обозначает операцию транспонирования.
Вывод информации y=? или y=?J (вывод в формате JAVASCRIPT), в виде графика y=??, [t y]=?2D (2D график) и т.д.
Стиль графика может варьироваться опциями ?- ?~ ?*.
Пример вывода графика функции:
t=time(100), F=2*t+10*sin(0.5*t), [t F]=?2D_title
Дополнительной опцией можно указать количество временных отсчетов t=time(T,200), по умолчанию принято генерировать сто точек, начиная с нуля. Строки матрицы отделяются точкой с запятой А=[ 1 2 ; 3 4 ], процедура решения системы линейных уравнений AX=B выглядит как X=A\B. Левая и правая операции деления A\B и A/B отличаются тем, что в первом случае инвертируется матрица A, а во втором инвертируется уже B.
Матрицу можно вводить и формулой, например A=solve([n m],'1/(i+j)'), где n и m - размеры матрицы, в одинарных кавычках размещается функция от индексов элемента, описывающая его численное значение.
Интерпретируемый текст можно брать с любой страницы, в том числе, прямо с html, включая коды картинки, на основе которых производится мультипликация. С учетом распространенности интернет-технологий, такое правило добавляет удобств в использовании транслятора.
3. Сенсорная периферия: датчики и исполнительные устройства
В настоящее время существует два достаточно близких между собой вида компьютеров, называемых ноутбук и наладонник (кпк, коммуникатор), удобных для применения в роли некоторых портативных устройств сбора информации и управления. Первые устройства (ноутбуки) проще использовать в "сервоприводах" управляемых через сеть объектов. Употребить мобильный телефон как консоль управления - естественная мысль в связи с распространенностью последних и подходящим для этой цели устройствами (экран, кнопки).
Коммуникаторы, смартфоны и мобильные телефоны отличаются своими малыми размерами и, априори, наличием интернета, однако они более бедны периферией. Их сетевое программное обеспечение частично совместимо с программным обеспечением ноутбуков, в этом направлении, судя по мини-браузеру Опера, предпринимаются усилия. Недостаточная работоспособность встроенных браузеров восполняется, помимо оригинальной Оперы, дополнительными программными модулями (мидлетами). Мини-опера - тоже мидлет, но с серверной поддержкой, сжимающей изображения до размеров, удобных для экрана телефона.
Сенсорная периферия. Ноутбук пока легче дооснастить аппаратурой, чем смартфон или коммуникатор. В частности, относительно недорогими внешними LCARD модулями АЦП/ЦАП на шину USB.
Датчики не входят в комплект стандартной компьютерной периферии, по этой причине дооборудование - трудоемкий процесс, вынуждающий искать приемлемые варианты.
Самый распространенный ныне датчик - это web-камера. Ее можно применять универсально, как для измерений освещенности, так и для считывания показаний других - распространенных, но менее компьютеризированных датчиков (температуры, влажности, перемещения). Помимо камеры нужны драйверы типа Dorgem (см. также более развитый Web-cam publisher, свой драйвер под Delphi 5/6/7 можно написать, опираясь на проект DSPack)
Для интернет-связи используются GPRS модемы, их можно установить в слот PCMCIA (модем Ubiquam, есть USB варианты типа Anydata).
3.1 Датчики контроля параметров
Датчик температуры
Аналоговый полупроводниковый датчик температуры предназначен для линейного преобразования значения окружающей температуры или температуры какого-либо объекта в постоянное напряжение, отличается широким диапазоном рабочих температур (есть модели -55…+150 °C), высокой точностью (до 1,0 °C в рабочем диапазоне), заводской калибровкой, малым током потребления и низкой стоимостью, см. рисунок 13.
Он обладает линейными характеристиками. Распиновка следующая, если повернуть элемент плоской стороной к себе, ножками книзу, то справа будет земля, слева питание +5 вольт, средняя ножка идет к АЦП через сопротивление в 1 ком. Ноль градусов отвечает напряжению 1.375 вольт. На каждый градус температуры приходится 0.0225 вольта. Рабочий ток небольшой, около 0.5 ма.
Модель датчика AD22100KT , производитель Analog Device. Технические характеристики: корпус TO-92-3pins. Температурный диапазон: -50...+150. Функциональные возможности: датчик температуры с выходным напряжением, пропорциональным температуре. Кт=22,5мВ/°С. Точность измерения не хуже 2°С, Uпит=4…6В. Схема включения и опытный график изменения температуры, см. рисунок 14 и 15.
Датчик влажности почвы
При использовании датчика влажности почвы необходимо подавать напряжения от батареи или от цифро-аналогового преобразователя (внешне избыточное решение, позволяющее варьировать условия измерений и не держать датчики под постоянным током) на один из щупов, погруженных в землю, другой щуп соединяется с АЦП, для измерения наводимого потенциала в мостовой схеме, в которой щуп АЦП связан также с нейтральной шиной через сопротивление порядка нескольких десятков Ком. Конструкция и схема включения см. рисунок 16 и 17.
Датчик освещенности
Датчик позволяет измерять действующее значение освещенности и в зависимости от этого формирует выходное напряжение. Он предназначен для контроля солнечного света. Модель датчика AT012. Диапазон измеряемой освещенности От 10 люкс до 1500 люкс. Выходное напряжение датчика От 0 B до 5 B. Напряжение питания постоянное 12 B ± 10%. Потребляемый ток не более 12 мА. Конструкция и схема включения см. рисунок 19 и 20.
Датчик влажности воздуха
Емкостной датчик влажности обеспечивает широкий диапазон измерений, высокую надежность и низкую стоимость при использовании микроэлектронной технологии. Последняя позволяет производить емкости планарного типа тонкопленочным методом. Благодаря этому мы имеем миниатюрные габариты чувствительного элемента, возможность имплементации на кристалле специализированной интегральной схемы обработки сигнала. Технологичность и высокий выход годных кристаллов обеспечивают малую стоимость продукции данного типа. Итак, для измерения влажности емкостной метод является лучшим.
Чувствительный элемент представляет собой многослойную структуру. На кремниевой подложке 1 напылена платиновая пленка 2, которая образует первый электрод конденсатора. Диэлектриком между обкладками служит термореактивный полимер 3, поверх которого выполнена вторая обкладка конденсатора - платиновая пленка с перфорацией 4, позволяющая влаге проникать к абсорбирующему слою 3 и изменять его относительную диэлектрическую проницаемость, а соответственно - и емкость С конденсатора. Верхним слоем является пленка термореактивного полимера 5, которая служит защитой от пыли и грязи. Также эта конструкция делает возможной промывку датчиков, для этой цели рекомендуется использовать изопропиловый спирт. Датчик типа HIH-4000-001, HIH-3610-001б, производитель Honey Well, см. рисунок 22б.
3.2 Устройства управления
3.2.1 Помпа
Устройство, включающего подачу воды на контролируемый участок почвы при уменьшении ее влажности ниже определенного уровня. Тоесть после получения значений влажности почвы ниже установленного уровня, выполняется программа полива, см. рисунок 25.
3.2.2 Электрическая штора
При избытке солнечного света происходит необратимый процесс разрушения контейнерного растения, что показано на рисунке 26.
Опираясь на данные датчика освещенности, можно регулировать шторой поступление солнечного света, см. рисунок 27.
3.2.3 Увлажнитель
Позволяет, опираясь на данные датчика влажности воздуха устанавливать нужную влажность, см. рисунок 28.
3.2.4 Веб-камера
Веб-камера обеспечивает доступ к изображению растения через Интернет, см. рисунок 29.
4. Реализация комплекса
Конечная реализация описанного выше комплекса представлена на рисунке 30. Он обеспечивает контроль за жизнедеятельностью экзотических растений, размещенных в аквариуме для поддержания повышенной влажности, и контроль контейнерных растений на окне.
Также комплекс проходил экспериментальное тестирование в Оранжерее Ботанического Сада на предмет выяснения дополнительной аппаратуры, необходимой для поддержания больших растений и доработки Интернет сайта по управлению технологией удаленного контроля растений Оранжереи.
Акт о внедрении результатов дипломного проектирования приведен в Приложении Б.
4.1 Основная программа обслуживания
Приведем основную программу обслуживания комплекса, позволяющую контролировать внешний вид растения через веб-камеру, следить за выходными сигналами датчиков и подавать воздействия через Интернет.
% ВЫЗОВ РИСУНКА НА ЭКРАНЕ ПРОГРАММЫ ОБСЛУЖИВАНИЯ, open table,
% ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННЫХ, e=0, y=1, w=0, u=0, w=read(u), N=50, g=0, e=readig(1),
% НАЧАЛЬНОЕ СНЯТИЕ ИЗОБРАЖЕНИЯ С ВЕБКАМЕРЫ, caption, % СНЯТИЕ ГРАФИКОВ (ПЕРВАЯ ТОЧКА), getgraph, % ОСНОВНОЙ ЦИКЛ СИСТЕМЫ, Do, % ЧТЕНИЕ КОМАНДЫ С СЕРВЕРА (ПРИ МОБИЛЬНОМ УПРАВЛЕНИИ), x=y, y=read('com.xml'), % ПАУЗА ЦИКЛА В СЕКУНДАХ, pause 10, % АНАЛИЗ КОМАНДЫ, if y<64, if y<>x, % СНЯТИЕ ИЗОБРАЖЕНИЯ С ВЕБКАМЕРЫ ПО ЗАПРОСУ С СЕТИ, if y=32, caption, else, % УПРАВЛЕНИЕ ПЕРИФЕРИЙНЫМИ УСТРОЙСТВАМИ, % 1 - ЛАМПА, 2 - УВЛАЖНЕНИЕ, 4 - ПОМПА, 8-16 ШТОРА, e=readig(y), if y>3,if y<8, pause 3, e=readig(y-4), end end end end end % ОПРОС ДАТЧИКОВ, getgraph, end
% ПОДПРОГРАММА СНЯТИЯ ИЗОБРАЖЕНИЯ С ВЕБКАМЕРЫ,
function: caption f=write(64,'com.xml'), f=exe('capture'), pause 10, % ЗАПИСЬ ИЗОБРАЖЕНИЯ НА ЭКРАН, open background image.jpg [:], % ПЕРЕДАЧА НА СЕРВЕР, f=write(0,'http://artspb.com_file=image.jpg'), % ИЗМЕРЕНИЕ ОСВЕЩЕННОСТИ С КАМЕРЫ, A=read('image.jpg'), n=norm(A)/rows(A)/cols(A) % ПАУЗА, pause 10 % ПОДПРОГРАММА ОПРОСА ДАТЧИКОВ СНЯТИЯ ГРАФИКОВ, function: getgraph % ИНИЦИАЛИЗАЦИЯ НАПРЯЖЕНИЙ НА ДАТЧИКАХ, N=N+1, w=[0 0 0]', e=[5 5]', z=[0 0]', do 2, w=read(e), pause 0.5, end, e=read(z), % ПЕРЕСЧЕТ В ФИЗИЧЕСКИЕ ВЕЛИЧИНЫ, w(1)=(w(1)-1.375)/0.0225, w(2)=20*w(2), w(3)=w(3)/5, L=1.5*(1-exp(-55*w(3))), if L<0.64, L=0.64, end % ВЫВОД ГИСТОГРАММЫ НА ЭКРАН, Table Temperature expands w(1)/20 vertically, Table Water expands w(2)/50 vertically, Table Light expands L vertically, Show, Table Temperature diminishes w(1)/20 vertically, Table Water diminishes w(2)/50 vertically, Table Light diminishes L vertically,
% ФОРМИРОВАНИЕ ТАБЛИЦЫ ПОКАЗАНИЙ, if N>9, N=0, if cols(g)<2, g=w', else, if rows(g)>99, g=g(2:100,:), end, g=[g; w'], end, % ПЕРЕДАЧА НА СЕРВЕР, f=write(g,'plant.xml'), end pause 20
4.2 Пример программ для датчиков
Программы для каждого из используемых датчиков практически идентичны друг другу, разница состоит лишь в формуле пересчета параметров. Ниже приведен пример программы полива, см. рисунок 30, и формул перерасчета параметров для каждого из датчиков.
Инициализация переменных, e=0, y=0, u=0, y=read(u), start, function: start ВКЛЮЧЕНИЕ ПОМПЫ И ВЫВОД ГРАФИКА e=reading(4), For i=1:100, measure, if i=1, g=y else g=[g;y], end, g=??, pause 0.1, end
function: measure ОПОРНОЕ НАПРЯЖЕНИЕ ПИТАНИЯ ДАЧИКА u=5, ПОДАЧА НАПРЯЖЕНИЯ y=read(u), pause 0.1, СБОР ИНФОРМАЦИИ y=read(u), ОТКЛЮЧЕНИЕ ПИТАНИЯ ДАТЧИКОВ y=read(0),
Формула перерасчета температуры в физическое значение:
y =(y-1.375)/0.0225
Формула перерасчета влажности воздуха в физическое значение:
y=(y-0.958)/0.0307
Освещенность устанавливается экспериментально: 5 вольт=прямое воздействие солнечных лучей, 0.01вольта=сумерки.
Влажность почвы устанавливается экспериментально: 5 вольт = залитая почва, 1 вольт = сухая непригодная для жизнедеятельности почва.
5. Передача данных в интернет
Одной из главных особенностей этого проекта является возможность полнофункционального управления всем комплексом удаленно через интернет или даже мобильный телефон. Для его реализации был создан сайт поддержки, с помощью которого можно в режиме онлайн получать отчеты и изменять параметры объекта контроля.
5.1 Структурная схема передачи данных в Интернет
На рисунке 32 отражена общая схема передачи информации, полученной системой сбора показаний в интернет. Для создания такого сервера нет необходимости в выделенной линии (можно использовать обычный Интернет сервер). Кроме того, для отправки информации в сеть подойдет как обычный модем, так и радиомодем.
Рисунок 32 - Схема передачи информации в Интернет
Страница с математической библиотекой, обладающая интерактивными качествами обмена с сетью названа Matlab Home Server (MHS).
C одной стороны, она легко взаимодействует через жесткий диск (HDD) с адаптерами систем управления, в частности, с Visual Matlab. С другой стороны, технология Ajax позволяет ей в реальном времени взаимодействовать с сервером, где информация хранится в XML формате. Образуется канал передачи через Интернет. Эта технология удобна, поскольку страница легко корректируется. Помимо этой организации существует и упрощенная схема, поскольку Visual Matlab обладает собственными подпрограммами обмена с сервером данными сигналов и изображений растений.
Со стороны клиента с комплексом взаимодействует программа MatLab On Line, обладающая возможностью хранить и корректировать программы управления комплексом прямо через сеть. Это удобно при удаленном позиционировании оранжереи с растениями.
5.2 Программа обслуживания передачи данных в интернет
Верхний уровень обмена с периферией на уровне Интернет: опишем основные Интернет команды управления комплексом.
Со стороны аппаратуры реализованы интерфейсные команды чтения и записи данных на сервер. 1) Изображений ВЕБ-камеры: A=read('http://server/name.jpg'), e=write(0,'http://server/image.php_file=image.jpg') 2) Данных датчиков: A=read('http://server/name.xml'), e=write(A,'http://server/name.xml') Со стороны интернет-пользователя реализованы интерфейсные команды чтения и записи данных на сервер. 1) Изображений ВЕБ-камеры (чтение в окно): imagewindow('name.jpg'), 2) Данных датчиков: A=receive('name'), 'name'=send(A).
Интерфейс программы обслуживания передачи данных (разновидность программы MatLab On Line), созданной для комплекса, представлен на рисунке 33.
5.3 Технология передачи данных
5.3.1 Формат данных xml
Для чтения данных с сервера клиентским приложением употребляется формат XML. XML-документ - это текстовый файл, в котором при помощи специальных маркеров создаются элементы данных, последовательность и вложенность которых определяет структуру документа и его содержание.
Основным достоинством XML документов является то, что при относительно простом способе создания и обработки, они позволяют создавать структурированную информацию, которую хорошо "понимают" компьютеры.
По синтаксису язык подобен HTML и является еще одним языком разметки, как SGML. Он удобен, так как остается легким для прочтения человеком, и легким для программного разбора. Документы, написанные на языках разметки содержат, в основном, две вещи: данные и мета-данные. Мета-данные - это дополнительная информация, которая добавляет к данным некий контекст или смысл.
Простой пример: используем мета-данные, чтобы добавить данным смысла:
<sentence>Моего<animal>кота</animal>зовут<name>Eddy</name> </sentence>.
У XML очень строгий синтаксис, что облегчает контроль. Например, в XML каждый <тэг> должен иметь закрывающий </тэг>. Тэги закрываются в порядке, обратном порядку их открытия. ВСЕ элементы в документе XML должны заключаться в тэги (исключая два внешних тэга). Именно поэтому в примере выше мы написали тэги <sentence> вокруг предложения. Без них некоторые слова в предложении могли бы не попасть между тэгами.
Примером мощности XML, но в то же время и его медлительности является тот факт, что на нем можно написать базу данных. Большинство имеющихся парсеров (программ для разбора) XML недостаточно быстры.
Ниже приведен фрагмент типичного XML файла.
<?xml version="1.0" encoding="windows-1251" ?>
<!DOCTYPE InfoPacket SYSTEM "http://xml.prime-tass.ru/dtd/UIF.dtd">
<InfoPacket>
<Source type="string">ПРАЙМ-ТАСС</Source>
<Time type="datetime">08.05.2007 13:53:17</Time>
<InfoItem>
<Time type="datetime">17.04.2007 10:07:47</Time>
<Title type="string">
Первый серийный самолет "Ту-214" производства КАПО совершил первый испытательный полет
</Title>
<Text>
МОСКВА, 11 апреля. /ПРАЙМ-ТАСС/. Первый экземпляр
самолета Ту-214, выпущенный в серийном исполнении
на Казанском авиационно-производственном объединении
/КАПО/, совершил первый испытательный полет.
</Text>
</InfoItem>
</InfoPacket>
Первые две строчки в этом примере можно пока считать обязательными, которые должны присутствовать (первая строчка означает, что данный документ является XML-документом, а вторая указывает на специальный ресурс http://xml.prime-tass.ru/dtd/UIF.dtd, в котором содержатся правила оформления данного XML-документа). Более подробную информацию по ним можно получить на сайте http://www.w3.org.
Тег <InfoPacket> является главным тегом - корнем иерархической структуры и предназначен для хранения вложенных в него остальных тегов.
В него вложены теги <Source>, <Time> и <InfoItem>. Тег <Text> обозначает абзацы документа. Записи типа type="datetime" или type="string" в XML называются атрибутами тегов. В данном случае мы имеем один атрибут type, который принимает значения "datetime" и "string". Значения атрибутов в XML всегда заключаются в кавычки. Атрибут type нужен для того, чтобы указать, как следует интерпретировать последовательность символов, заключенную внутри тега. Значение "datetime" означает, что значение тега нужно интерпретировать как дату и время, а значение "string" - как обычную строку. У тега <Text> атрибут type отсутствует, т.к. по смыслу этого тега и так ясно, что в этом теге содержится текстовая строка[11].
Сформируем в данном формате информацию о температуре, снятую с датчика:
<?xml version="1.0" encoding="UTF-8"?>
<root><data>27.16</data></root>
Корневой тэг назовем root. Информацию - поместим между тэгами <data>27.1656</data>.
В случае передачи векторной информации отделим данные между собой запятыми
<?xml version="1.0" encoding="UTF-8"?>
<root><data>27.16, 25.54, 23.54</data></root>
5.3.2 Чтение данных из xml-документа
Для асинхронных запросов от клиента к серверу на стороне браузера служит специальный объект под названием XMLHTTPRequest.
Рассмотрим применение объекта на примере простого AJAX-приложения, читающего показания термометра в javascript.
Пусть serveraddressreceive содержит URL папки с XML-документами на сервере.
Пусть password - это имя XML-документа.
Создадим переменную для читаемой информации (помечаемую тэгом <data>) receiveData=0 и флаг прочтения, начальное значение receiveF=0.
function ajaxRead(password){
receiveF=0; var xmlObj = null;
if(window.XMLHttpRequest){
xmlObj = new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
} else {
return;
}
xmlObj.onreadystatechange = function(){
if(xmlObj.readyState == 4){ receiveData=
eval(xmlObj.responseXML.getElementsByTagName('data')[0].firstChild.data);
receiveF=1;
}
}
xmlObj.open ('GET',serveraddressreceive+password+'.xml',true);
xmlObj.send ('');
}
Здесь XMLHTTPRequest.open("method", "URL", async, "uname", "pswd") - создает запрос к серверу, method - тип запроса, например, GET, URL - URL запроса, async - если True, то будет использоваться асинхронный запрос, то есть выполнение скрипта продолжится после отправки запроса. В противном случае скрипт будет ожидать ответа от сервера, uname, pswd - логин и пароль для простой веб-авторизации.
Далее, XMLHTTPRequest.onreadystatechange - обработчик событий срабатывающий на каждое изменение состояния объекта. Состояния объекта могут быть следующими: 0 - до того как запрос отправлен (uninitialized), 1 - объект инициализирован (loading), 2 - получен ответ от сервера (loaded), 3 - соединение с сервером активно (interactive), 4 - объект завершил работу (complete). XMLHTTPRequest.responseText - возвращает полученные от сервера данные в виде строки. XMLHTTPRequest.responseXML - если ответ сервера пришел в виде правильного XML, возвращает XML DOM объект. XMLHTTPRequest.status - возвращает статус HTTP-ответа в виде числа. Например, 404 если запрашиваемая страница не была найдена на сервере. XMLHTTPRequest.send("content") - отправляет запрос на сервер. Значением content могут быть данные для POST-запроса или пустая строка.
Подобные документы
Табличный метод вычисления контрольной суммы. Реализация на практике вычисления циклического контрольного кода параллельным и последовательным методами. Аппаратная реализация вычисления CRC в параллельном и последовательном коде, математическое описание.
курсовая работа [573,7 K], добавлен 09.08.2015Операционная система как посредник в работе с устройствами компьютера: ДрайверЫ и 32-разрядность Windows 95 и программ. VFAT, DLL, DLE. Технические и программные средства для доступа и работы в Internet. TCP/IP, FTP, WWW. База данных в Excel.
реферат [55,0 K], добавлен 28.06.2008Обзор автоматизированных систем обучения и контроля знаний. Психологические механизмы усвоения знаний. Принципы создания тестирующей программы. Разработка универсальной схемы построения теста и вычисления оценок специалистов по неразрушающему контролю.
дипломная работа [1,7 M], добавлен 24.09.2013Разработка системы, обеспечивающей автоматическую работу жалюзи/штор без непосредственного физического вмешательства человека в управление механизмами. Конструктив, микроконтроллер, периферия. Концепция и язык программирования. Код программы контроллера.
курсовая работа [467,8 K], добавлен 11.04.2016Проблема защиты информации в Internet. Технические детали спецификации SKIP, конфиденциальность и аутентификация. Устройство SunScreen: аппаратная система защиты локальных сетей. Алгоритм шифрования DES. Реализация алгоритма ГОСТ, реализация, расшифровка.
курсовая работа [2,8 M], добавлен 25.04.2012Программные системы проектирования, их виды. Универсальные программы анализа машиностроительных изделий: ANSYS, SAMCEF, MSC. Краткий перечень возможностей универсальных программ. Обзор специализированных программ и программы анализа систем управления.
контрольная работа [21,5 K], добавлен 10.10.2016Общее понятие об информационной системе, характеристика этапов её развития. Аппаратная и программная часть системы. Ввод, обработка и вывод информации. Информационное, организационное, программное, правовое, техническое и математическое обеспечение.
лекция [46,4 K], добавлен 14.10.2013Анализ технических требований к разрабатываемой системе. Обзор существующих Интернет-сайтов, посвященных проблемам дорожного строительства. Общая структура веб-приложения. Реализация отображения информации, модуля добавления и комментирования проблемы.
курсовая работа [2,5 M], добавлен 07.07.2012Теоретические основы разработки web-сайтов, язык размeтки HTML, язык сцeнариeв JavaScript, web-прoграммирoваниe. Программная реализация вэб-сайта Всеволожского исполнительного комитета партии "Единая Россия", программная реализация алгоритма работы.
дипломная работа [2,9 M], добавлен 21.01.2012Системный анализ предметной области проектируемой базы данных. Экономическая сущность комплекса экономических информационных задач. Проектные решения по программному обеспечению комплекса задач. Структура базы данных и технологическое обеспечение.
курсовая работа [303,7 K], добавлен 27.02.2009