Личная страница автора

Разработка модулей управления устройствами (драйверов) для периферийного сервера регистрации данных.

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

Программа написана на языке программирования Borland C++ v.3.1 в среде DOS с использованием средств объектно-ориентированного программирования, что позволяет осуществить модульный принцип построения программы. Программа включает в себя следующие модули:

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

2.      Com_188 – модуль обслуживания последовательных портов контроллера, содержащий процедуры инициализации портов, управления обменом через порты. Реализован в виде модуля класса. Модуль имеет заголовочный файл COM_188.H, в котором описан класс COM_188, содержащий все структуры данных и функции для обслуживания последовательных портов контроллера.

3.      Arch – модуль создания и обслуживания структур данных, находящихся в энергонезависимой памяти. Заголовочный файл ARCH.H описывает функции записи и извлечения данных и сообщений из архивов.

4.      Timers – модуль обслуживания основного и вспомогательных таймеров программы. Функции основного таймера программы позволяют вести отсчет системного времени, измерять интервалы времени, управлять WatchDog таймером. Дополнительные таймеры позволяют выполнять заданные действия в соответствующие моменты времени. Дополнительный таймер выполнен как класс, что позволяет создавать любое количество таймеров в зависимости от потребностей программы и удалять их, когда они становятся ненужными. Класс дополнительных таймеров Timers, а также функции обслуживания основного таймера программы и WatchDog таймера описаны в заголовочном файле TIMERS.H.

5.      Chan – функции обслуживания каналов. Обеспечивают опрос каналов, созданных в программе в соответствии с их временной сеткой во взаимодействии с обслуживающими их драйверами. Включает функции создания, управления параметрами, обработки данных, загрузки параметров из файлов и т.п., а также функции, связанные с исполнением команд. Описания функций находятся в заголовочном файле CHAN.H.

6.      Commands – модуль, обеспечивающий расшифровку и исполнение команд, подаваемых как с консоли, так и из центрального компьютера распределенной системы регистрации, а также функции обслуживания ввода команд с локальной консоли устройства. Описания функций находятся в файле CHAN.H.

7.      Драйверы обслуживания устройств DrvN – модули, реализованные в виде классов, наследуемых от одного модуля Drv0, что обеспечивает единый программный интерфейс с остальными частями программы. Базовый класс Drv0 описан в заголовочном файле DRV0.H, каждый драйвер имеет свой заголовочный файл с описанием производного класса, в котором описываются специфические структуры данных и переопределенные функции. Определения функций находятся в файлах DRVN.CPP.

8.      Dbllong – модуль, описывающий класс целых переменных длиной 64 разряда doublelong, которые нужны для работы с функциями таймеров. Заголовочный файл DBLLONG.H.

9.      Hex – модуль, содержащий функции для преобразования и анализа чисел в шестнадцатиричном формате. Заголовочный файл HEX.H.

Проект программы в среде Borland C++ v 3.1 включает ссылки на все описанные модули в виде файлов .OBJ и модули драйверов DRVN.CPP. Используется модель памяти Large.

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

Загрузить документацию

 



Hosted by uCoz