Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТЧЕТ II этап - 14.10.11+.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
16.26 Mб
Скачать

1.2 Программное обеспечение к лабораторным установкам

1.2.1 Разработка программного обеспечения лабораторной установки по контролю изменений оптической плотности водных сред

На рисунке 23 приведена схема системы автоматизации стенда лабораторной установки (номера элементов соответствуют рисунку 2), которая содержит: первичные преобразователи информации – датчики; два электронных блока с разъемами для подключения внешних датчиков и разъемами RJ-12, для подключения 4-х жильного телефонного кабеля интерфейса RS-485 с линиями питания; конвертер сигналов порта компьютера USB в сигналы интерфейса RS-485; персональный компьютер для управления стендом, наблюдения за параметрами и анализа полученных результатов.

Рисунок 23- Схема автоматизации стенда лабораторной установки

Основной задачей электронных блоков является преобразование полученной с датчиков информации в аналоговом и цифровом виде в цифровой код, с последующей передачей данных по интерфейсу в компьютер.

В современных электронных устройствах большая часть задач измерения и обработки сигналов возложена на микроконтроллер. Микроконтроллер выполняет: измерительные функции, хранение промежуточной информации и постоянных коэффициентов, выполнение арифметических функций с получаемыми данными измерений, организацию ввода-вывода данных через порт обмена, идентификацию устройства. Среди большого разнообразия семейств микроконтроллеров были выбраны микроконтроллеры фирмы «Atmel» серии ATmega48/88/168. Основными причинами выбора такого микроконтроллера были: высокая тактовая частота опорного генератора (20 МГц), выполнение команды за один такт генератора, наличие требуемого объема энергонезависимой памяти, достаточное количество быстродействующих таймеров, наличие многовходового 10 разрядного АЦП, возможность организации портов ввода-вывода, наличие входов по прерыванию, отработанные средства программирования и отладки, низкая цена.

Большинство выводов микропроцессоров фирмы «Atmel» многофункциональны. Это значит, что один и тот же вывод может выполнять разные функции, переназначаемые программно. Вывод может быть входом или выходом или линией какой-либо функциональной единицы микропроцессора. Причем, назначение вывода может меняться в процессе выполнения программы.

Надо учесть еще одну особенность микропроцессоров серии ATmega 48/88/168 – это развитая система маскируемых прерываний (практически, изменения на любом выводе микросхемы могут вызывать прерывание). Это является преимуществом данной серии, при обслуживании нескольких асинхронных процессов.

В архитектуре микропроцессоров серии ATmega48/88/168 имеются один 16-ти и два 8-ми разрядных таймера. Каналы счета могут быть симметричными с точки зрения вычислительных временных затрат. Кроме того, алгоритм измерения такой, что по обоим каналам каждый фронт сигнала вызывает прерывание с наивысшим приоритетом. Процедура выключения содержится в соответствующих процедурах обработки прерывания.

Необходимо также отметить, что для улучшения точности измерения АЦП, а именно снижения шумовой части сигнала, перед началом измерения процессор переводится в спящий режим. Поскольку измерительный АЦП использует прерывания по событию завершения измерения, то, на протяжении всего времени измерения, процессор находится в состоянии ожидания прерывания, что обеспечивает минимальное значение шума по входам АЦП.

Для хранения индивидуального номера устройства, количества периодов наблюдения, а так же для хранения различных параметров и коэффициентов, характеризующих данное устройство, предназначен раздел памяти EEPROM. Режимы измерения периодов генераторов хранятся в разделе памяти RAM. В зависимости от назначения оба типа памяти допускают чтение и запись. В таблице 1 приведена структура распределения памяти RAM и EEPROM контроллеров Atmega48/88/168 для одного электронного блока с зрения протокола ModBus.

Таблица 1 - Структура распределения памяти RAM и EEPROM контроллеров на основе Atmega48/88/168 для измерителя разности температур с точки зрения протокола ModBus.

RAM (адресация с адреса 0, по количеству регистров ограничений нет)

адрес

Тип

имя

Комментарий

0,1

unsigned long

MCnt

Счетчик обращений (равен 0 при включении питания)

2,3

long

NT0

Результат измерения в тиках системного кварца

4,5

long

NT1

Результат измерения в тиках системного кварца

6

int

Adc6

7

int

Adc7

8

unsigned char

Mode/Start

256- старт

9

int

SavT

Температура окружающей среды

10,11

long

Offset

12,13

unsigned long

N

Переменная хранения необходимого количества периодов наблюдения

18

char

DEV_ADR

Индивидуальный адрес устройства

19

int

DeltaT

20

long

E_N

Количество периодов наблюдения

22

long

BaudRate

24

char

Param[24][8]

Таблица хранения параметров, присущих данному контроллеру

struct

DevID

Идентификатор устройства

Интерфейс RS-485 обмена данными и командами в полудуплексном режиме организован в микроконтроллере программно. Приемопередатчик сети RS-485 выполнен на микросхеме ADM485. Ее особенностью является повышенная нагрузочная способность, позволяющая объединять до 32 периферийных устройств. Интерфейс оснащен защитой от импульсных помех и перенапряжений. В случае работы контроллера на конце сети RS-485 подключается согласующий резистор.

В качестве физической среды (кабеля) используется 4-проводный телефонный провод в защитной оболочке. Два провода – сигнальные (А и В). Два других провода, один из которых общий, использованы для питания. В составе каждого устройства имеется стабилизатор напряжения, что позволяет питать его от нестабилизированного источника напряжением 6÷12 вольт. Питание устройств может быть и локальным, т.е. каждое устройство может иметь собственный источник питания. В этом случае четвертый свободный провод кабеля соединяют с общим проводом.

Управление устройствами и передача данных по интерфейсу RS-485 с использованием протокола ModBus

Любой обмен информацией можно разбить на два уровня, физический и логический. Физическая часть отвечает за представление данных со стороны передатчика и со стороны приемника (потенциалы, ток, уровень). Логическая часть определяет структуру передаваемых (принимаемых) данных.

Физическую часть данного устройства реализует интерфейс RS-485, а логическую часть выполняет протокол ModBus. Использование интерфейса RS-485 обеспечивает помехоустойчивость. В интерфейсе используется передатчик, с кабелем на основе витой пары, что позволяет уменьшить два главных источника проблем: излучаемые и индуцируемые электромагнитные помехи (наводки). Интерфейс поддерживает многоточечные соединения, обеспечивая создание сетей с количеством узлов до 32 (253) и передачу информации на расстояние до 1200 метров. Использование повторителей RS-485 позволяет увеличить расстояние передачи еще на 1200 метров или добавить еще 32 узла.

Протокол связи интерфейса RS-485 использует двунаправленную сбалансированную линию передачи. Стандарт RS-485 спроектирован как балансная система, и поддерживает полудуплексную связь. Для передачи и приема данных используют земляной провод и скрученную пару сигнальных проводников (рисунок 24). Система называется балансной, потому что сигнал на одном проводе является точной противоположностью сигнала на втором проводе (один провод передает высокий уровень, а другой провод передает инверсный - низкий уровень).

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

Рисунок 24- Обмен информацией между устройствами в режиме полудуплексной связи

Для устранения этого негативного эффекта в линиях передачи применяют согласующие резисторы, которые устанавливают на концах кабеля (рисунок 25). Сопротивление согласующего резистора равно волновому сопротивлению витой пары (RT=120 Ом).

Рисунок 25- Согласующие резисторы размещены на концах витой пары

Формирование структуры передаваемых (принимаемых) данных осуществляет промышленный протокол обмена ModBus. Он обеспечивает гибкость в управлении устройствами и получении от них данных за счет возможности изменения длины пакета. Универсальность его структуры позволяет взаимодействовать со сколь угодно удаленными объектами (устройствами).

П ротокол определяет как Master (MS) и Slave (SL) устанавливают и прерывают контакт, как идентифицируются отправитель и получатель, каким образом происходит обмен сообщениями, как обнаруживаются ошибки.

Протокол управляет циклом запроса и ответа, который происходит между устройствами MS и SL, как показано на рисунке 26.

Рисунок 26- Структура обмена данными между Master и Slave

Протокол позволяет расположить на общей шине один MS и до 247 SL. Особенность заключается в том, что каждое адресуемое устройство интерпретируется как набор регистров. Регистр, представляет двухбайтную структуру. Кроме того, в архитектуре протокола предусмотрены понятия “включено”, “ выключено” по отдельным битам.

Транзакцию может инициировать только MS. Транзакции бывают либо типа запрос/ответ (адресуется только один SL), либо широковещательные/без ответа (адресуются все SL). Транзакция содержит один кадр запроса и один кадр ответа, либо один кадр широковещательного запроса.

Некоторые характеристики протокола Modbus фиксированы. К ним относятся: формат кадра; последовательность кадров; обработка ошибок коммуникации и исключительных ситуаций; выполнение функций.

Другие характеристики выбираются пользователем. К ним относятся: тип средства связи; скорость обмена; проверка на четность; число стоповых битов; режим передачи (ASCII или RTU). Параметры, выбираемые пользователем, устанавливаются (аппаратно или программно) на каждой станции. Эти параметры не могут быть изменены во время работы системы.

Из всего набора функций, утвержденных в протоколе Modbus, нами использованы функции, приведенные в таблице 2.

Таблица 2. Использованные функции протокола Modbus

Код

Название функции

Действие

03

READ HOLDING REGISTERS

Получение текущего значения одного или нескольких регистров хранения.

06

FORCE SINGLE REGISTER

Запись нового значения в регистр хранения.

08

LOOPBACK DIAGNOSTIC TEST

Тестовое сообщение, посылаемое SL для получения данных о связи.

16

FORCE MULTIPLE REGISTERS

Установить новые значения нескольких последовательных регистров.

17

REPORT SLAVE I.D.

Позволяет MS определить тип адресуемого SL и его рабочее состояние.

Приведём описание используемых функций:

  • READ HOLDING REGISTERS - функция позволяет получить двоичное содержимое 16-ти разрядных регистров адресуемого SL. Адресация позволяет получить за каждый запрос до 125 регистров. Регистры нумеруются с нуля (40001 = 0, 40002 = 1 и т.д.).

  • FORCE SINGLE REGISTER –функция позволяет модифицировать содержимое одного регистра. Хотя запрос и является асинхронным, SL изменяет содержимое регистра только в конце рабочего цикла.

  • LOOPBACK DIAGNOSTIC TEST – функция предназначена для проверки коммуникационной системы и не влияет на данные прибора.

  • FORCE MULTIPLE REGISTERS – сообщение меняет содержимое любого регистра опрашиваемого контроллера. Позволяет записывать регистры с максимальным логическим адресом до FFFFH. Неиспользуемые старшие биты адреса регистра должны заполняться нулями.

  • REPORT SLAVE I.D. - предназначена для получения пользователем различных характеристик, заложенных в адресуемое устройство, а так же для определения рабочего состояния устройства.

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

Когда сообщение достигает интерфейса SL, оно попадает в адресуемое устройство через аналогичный «порт». Адресуемое устройство вскрывает «конверт», читает сообщение, и, если не возникло ошибок, выполняет требуемую задачу. Затем оно помещает в «конверт» ответное сообщение и посылает его «отправителю». Информация в ответном сообщении представляет собой адрес адресуемого устройства, выполненную задачу, данные, полученные в результате выполнения задачи, и механизм контроля достоверности. Если сообщение было широковещательным (сообщение для всех SL), то ответное сообщение не передается.

Применение системы MathCad 7Pro и системного интегратора MathConnex в системах сбора информации

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

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

Одной из таких программ является интегратор системы MathCad, MathConnex, который служит для интеграции различных приложений с системой MathCad и обеспечения их совместной работы с использованием объектных связей OLE2, и выполняет функции имитационного построения моделей, представленных типовыми блоками в виде функциональной схемы.

В систему MathCad введена возможность ее расширения функциями пользователя, которые задаются обычными программами на языке Си или Си++. Написание функции пользователя для обслуживания устройств позволяет отображать и хранить получаемые данные в среде интегратора MathConnex.

На рисунке 27 представлен один из вариантов программы, выполняющей отображение и запись данных получаемых с удаленных устройств. При запуске программы происходит сканирование устройств, подключенных к линии. В программе на вход поступают значения величины сигнала с оптических датчиков и отображаются графически в виде временной зависимости оптической плотности.

Рисунок 27 - Программа наблюдения и записи динамически изменяющихся данных, поступающих с различных удаленных устройств

В общем виде обмен данными между устройствами и программой клиентом происходит, как представлено на рисунке 28. Программа клиент (MathConnex), через написанные подпрограммы MathCad с использованием API-функций (внешне доступных функций) ModBus-server, посредством динамической библиотеки, которая является посредником, обращается к MB-server с запросом о получении данных с устройств (Dev1…Devn). MB-server дает команду устройствам собрать данные и сформировать их в пакет по определенным правилам. После того как данные получены и сформированы в пакет, они через интерфейс RS-485 передаются в MathCad, где расшифровываются. Таким образом, мы наблюдаем в MathConnex массив данных в виде динамически изменяющегося графика или измеряемых величин.

Рисунок 28 - Обмен данными между устройствами и программой клиентом

Обработка результатов измерений на стенде

Графическое представление данных в программе автоматизации стенда показано на рисунке 29.

Рисунок 29- Графическое представление данных

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

Обработку данных можно представить в виде блок - схемы (рисунок 30)

где Iizmуровень сигнала измерительного канала

|Iizm-If_izm| - уровень сигнала измерительного канала за вычетом фона – уровня сигнала в отсутствие излучения на фотоприемнике

Iopуровень сигнала опорного канала

|Iop-If_op| - уровень сигнала опорного канала за вычетом фона – уровня сигнала в отсутствие излучения на фотоприемнике.

- отношение коэффициентов пропускания сред, помещенных в измерительный и опорный канал. В частности данная величина представляет собой коэффициент пропускания среды, помещенной в измерительный канал, в случае если в опорный канал ничего не помещено. k – коэффициент приведения, учитывающий неэквивалентность каналов: коэффициент деления светового потока делительным кубиком, возможное различие геометрии каналов при калибровке (и измерении), возможное различие чувствительности фотоприемников и каскадов усиления сигналов от фотоприемников и т.д.

– разность оптических плотностей сред, помещенных в измерительный и опорный канал. Если в опорный канал поместить кювету с дистиллированной водой, а в измерительный кювету с водой, имеющей примеси (например, воду из-под крана), то величина Ω даст разность оптических плотностей чистой воды и воды с примесью. Меняя концентрацию примеси в кювете измерительного канала можно фиксировать изменение оптической плотности и отслеживать зависимость оптической плотности воды от концентрации примеси.

Рисунок 30 - Блок схема алгоритма определения изменения оптической плотности

водной среды