Создание программного модуля, позволяющего сохранить данные аварийного буфера на верхнем уровне и представить их в табличной и графической форме
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
? Borland (Borland Database Engine, или BDE).
Таким образом, Delphi как среда программирования сочетает в себе наиболее удачные и необходимые возможности, которые и обусловили ее выбор при работе над проектом.
3. Разработка алгоритмов визуализации данных аварийного буфера
.1Организация аварийного буфера
Аварийный буфер представляет собой область оперативной памяти контроллера B&R серии SYSTEM 2000, предназначенную для сохранения данных, поступающих в течении 3-х секунд до признака аварии и в течении 2-х секунд после признака аварии, таким образом, емкость буфера равна объему данных, поступивших в течении 5-ти секунд. Данные, сохраняемые за один цикл записи: код программы уставки и значение нагрузки для каждого из 80-ти каналов контроллера, текущие значения минут, секунд и миллисекунд. Период циклов записи в буфер 5 ms. Под каждый компонент данных отводится 2 байта. Таким образом, объем буфера равен (80 * 2 + 3) / 0.005 * 5 * 2 = 326000 байт. Последовательность поступления данных в аварийный буфер показана на рис. 1.
Тип записи в буфер - непрерывно-циклический. На этапе рабочего процесса (до появления признака аварии) в буфер каждые 5 ms поступают 163 двухбайтовых значения, и таким образом в каждый момент времени буфер содержит данные за последние 5 секунд работы контроллера. При присвоении флагу аварии значения, соответствующего аварийной ситуации фиксируется адрес, по которому произошла последняя запись данных в буфер, значение адреса присваивается переменной Adr_trb, после чего происходит еще 400 циклов записи данных и поступление данных в буфер блокируется до сброса флага аварии, а значение адреса, по которому произошла последняя запись, присваивается переменной Adr_stp. Используя значения переменных Adr_trb, Adr_stp и стандартную функцию чтения модуля данных DA_read( ), можно считать все данные, содержащиеся в буфере. Рис. 2 помогает понять принцип организации буфера.
Решение проблемы передачи данных от нижнего уровня к верхнему не входит в объем данной работы и поэтому описываться не будет. Эта задача была решена одним из членов группы программистов, занимающихся разработкой программного обеспечения АСУ. Функция передачи данных называется TRANS_TRB, ее использование будет показано в п. 4.2.
3.2 Передача данных от нижнего уровня к верхнему и сохранение данных
Программа визуализации данных аварийного буфера состоит из двух модулей: функции сохранения данных и программы визуализации сохраненных данных, в дальнейшем для удобства будем называть их соответственно ФСД и ПВД. Также необходимо упомянуть о программе MANAGER, из которой происходит вызов ФСД и ПВД.
Программа MANAGER является резидентной, в ее задачи входит:
- управление режимом визуализации рабочего процесса;
- вызов функции передачи данных для визуализации рабочего процесса;
- контроль состояния флага аварии, вызов функции ФСД;
- обеспечение возможности вызова ПВД.
Пока АСУ находится в режиме рабочего процесса (флаг аварии сброшен), MANAGER опрашивает флаг аварии с периодом 35 ms. По установке флага аварии MANAGER с задержкой в 2 секунды, необходимой для записи в буфер данных после аварии, вызывает ФСД.
ФСД содержит цикл, который будет выполняться 1000 раз. В теле цикла содержится вызов функции TRANS_TRB. Последовательность действий, выполняемых ФСД такова:
- Вызвать функцию TRANS_TRB с определенными параметрами, которые обеспечат считывание значений текущей даты и времени с системных часов контроллера, а также номер аварийного канала из соответствующей переменной на нижнем уровне и запись этих данных в глобальные переменные, объявленные в программе MANAGER.
- Сохранение отдельной записью в файле базы данных mast.db текущего индексного значения, значений даты и времени и номера аварийного канала. Индексное значение будет использоваться для связи файлов базы данных.
- Вызвать функцию TRANS_TRB, с соответствующими параметрами, которая считает первые 163 2-х байтовые переменные аварийного буфера и поместит их значения в глобальный массив, объявленный в программе MANAGER, имеющий 163 2-х байтных элемента.
- Считать значения элементов массива и поместить их в файл базы данных tbl.db, присвоив индексному полю то же значение индекса, что и в последней записи файла mast.db.
- Повторить пункты №№ 3 и 4 еще 999 раз.
- Прекратить работу.
Такая усложненная схема передачи данных через глобальный массив и глобальные переменные используется для облегчения процесса адаптации программного обеспечения при изменениях протокола обмена данными между нижним и верхним уровнем. В этом случае потребуется только изменить соответствующие функции типа TRANS_TRB.
3.3 Визуализация данных
ПВД предназначен для отображения данных, находящихся в файлах базы данных mast.db и tlb.db. ПВД может вызываться в двух случаях:
- При возникновении аварийной ситуации: после считывания данных аварийного буфера, MANAGER предоставит оператору возможность вызвать ПВД (станет доступной соответствующая кнопка).
- При необходимости только просмотреть данные это можно будет сделать на любом компьютере серии х86 при наличии файлов базы данных и ПВД.
Алгоритм работы программы не зависит от того, каким именно образом она вызвана, разница состоит лишь в том, что в первом случае ПВД вызывается посредством программы MANAGER, а во втором - непосредственно человеком.
При запуске программы ПВД появляется диалоговая форма, содержащая основной графи