Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MARUSIA / DIPLOM99 / ALL.RTF
Скачиваний:
13
Добавлен:
16.04.2013
Размер:
615.94 Кб
Скачать

1.4.Структура программы. Функции ее составных частей

1.4.1.Общая структура программы

Наша программа состоит из четырёх частей, которые содержат процедуры и функции определённого функционального назначения: основная программа (Measure.pas), модуль номер один (Menu.pas), модуль номер два (Work.pas),модуль номер четыре(Iecmaster.pas).

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

Процедуры и функции(в дальнейшем ПФ), выполняющие какие-либо операции с данными, мы назовём, условно говоря, функциональными и поместим в модуль Work.pas. Эти процедуры и функции можно разделить на главные и второстепенные. Соответственно главными являются те из них, которые полностью решают, поставленные в ТЗ задачи, и их выбор производит основная программма. А второстепенными, которые занимаются промежуточным преобразованием данных и используются главными.

Продолжая разбиение нашей программ на элементы по функциональному признаку, мы можем выделить процедуры и функции, управляющие экраном, в отдельный модуль. Назовём его Menu.pas. Эти ПФ используются как основной программой так и модулем Work.pas.

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

Основная программа

Measure.pas

Модуль 2

Work.pas

Модуль 1

Menu.pas

Модуль 3

Iecmaster.pas

Обоснуем выбор процедурно-функциональной структуры

программы.

Такая структура облегчает нам написание, модернизацию и отлаживание программы. При написании и отладке программы важным критерием является читабельность алгоритма программы. Разбиение на ПФ позволяет нам максимально упростить алгоритм, то есть разделить большую и общую задачу на ряд более мелких подзадач. При модернизации программы мы также имеем преимущества. Такая структура позволяет легко изменять её части, сохраняя при этом основную логику программы. Ярким примером является модуль Menu.pas.

1.4.2. Краткое описание назначений процедур и функций

Модуль Work.pas :

Функция V- снимает значения параметра сопротивления с

вольтметра, R;

Функция Transf- преобразует данные, полученные с вольтметра;

Процедура mp- основной процесс;

Процедура mp1- главная процедура съёма данных с осциллографа;

Процедура meas - второстепенная процедура съёма данных с

осциллографа;

Процедура Generator - управление генератором;

Модуль Menu.pas :

Функция my_menu- обслуживает меню и возвращает номер

выбранного пункта;

Функция dan- ввод данных, запрашиваемых у пользователя;

Функция sel- выделяет пункт меню;

Процедура p1- пишет в верхней строке экрана название выбранного

пункта;

Процедура w3- рисует рамку с показаниями вольтметра;

Процедура wn- универсальная процедура вывода рамок;

Процедура cl_w- стирает какую-либо рамку

Стандартные внешние ПФ адаптера:

Процедура Command (x)

передает по магистрали КОП команду (или адрес) с кодом Х. Передача происходит при низком уровне ATN. Адаптер КОП выполняет функцию Системного контроллера. После выполнения команды линия ATN остается с низким уровнем. Тип – Boolean Function.

Пример использования: Command (SPE); {разрешить последовательный опрос}

Процедура SendIt (x)

передает байт Х как байт данных при высоком уровне сигнала ATN. При этом контролируется состояние сигналов на линиях NFRD и NDAC и происходит необходимый хэндшейк. Тип – Boolean Function.

GetByte

функция типа Byte. Возвращает значение, принятое по магистрали КОП от активного передатчика, т. е. перед её вызовом необходимо выполнить команду Talker (Addr).

Пример: For i:=1 to 10 do A[i]:=GetByte;{получить 10 байт от прибора}

Процедура Unlisten

запрещает прием данных адресованными в данный момент приемниками, т. е. снимает с них адресацию. Этим разрушается текущая конфигурация приборов – приёмников КОП, и процесс адресации необходимо произвести заново. Выполняется фактически как Command(UNL).

Процедура Utalk

запрещает передачу данных активным приемникам. Этим разрушается текущая конфигурация КОП на передачу. После выполнения процедуры необходимо адресовать передатчик, чтобы передача данных состоялась. Выполняется фактически как Command(UNT).

Процедура Talker (x)

адресует прибор, адрес которого задан значением Х, на передачу. Процедура позволяет обращаться только к приборам, которые не имеют вторичного адреса. Х= 0….31.

Процедура Listener (x)

адресует прибор, адрес которого задан значением Х , на прием. Процедура обслуживает только приборы без вторичных адресов, причем одновременно приёмники переводятся в режим дистанционного управления. Х= 0….31.

Процедура Service

проверяет состояние линии SQR, и возвращает TRUE, если уровень на линии SQR низкий, т. е. требуется обслуживание прибора.

Процедура PollDevice (x)

производит опрос состояния прибора Х и возвращает 0, если прибор с адресом Х не требует обслуживания, и байт состояния прибора, если он требует опроса. При этом в магистраль выдаются команды: UNT, UNL, SPE, затем прибор Х адресуется в режим передачи и адаптер получает байт состояния, затем в магистраль передаются команды UNT и SPD. Принятый байт состояния игнорируется, если бит 6 в нём сброшен.

Процедура InterfaceClear

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

Процедура RemoteMode

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

Процедура LocalMode

переводит систему в режим местного управления, и все приборы начинают управляться от органов управления на передних панелях.

Процедура SendMsg (Addr, Buffer)

передаёт строку из Number of Byte байт в прибор с адресом Addr. Основное назначение – передача параметров для инициализации и установки пределов измерения в дистанционном режиме.

Процедура GetMsg (Addr, Buffer)

получает последовательность байт, заканчивающуюся CR, LF, ETX, 0, от прибора с адресом Х в буфер данных.

Соседние файлы в папке DIPLOM99