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

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



? 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. Последовательность действий, выполняемых ФСД такова:

  1. Вызвать функцию TRANS_TRB с определенными параметрами, которые обеспечат считывание значений текущей даты и времени с системных часов контроллера, а также номер аварийного канала из соответствующей переменной на нижнем уровне и запись этих данных в глобальные переменные, объявленные в программе MANAGER.
  2. Сохранение отдельной записью в файле базы данных mast.db текущего индексного значения, значений даты и времени и номера аварийного канала. Индексное значение будет использоваться для связи файлов базы данных.
  3. Вызвать функцию TRANS_TRB, с соответствующими параметрами, которая считает первые 163 2-х байтовые переменные аварийного буфера и поместит их значения в глобальный массив, объявленный в программе MANAGER, имеющий 163 2-х байтных элемента.
  4. Считать значения элементов массива и поместить их в файл базы данных tbl.db, присвоив индексному полю то же значение индекса, что и в последней записи файла mast.db.
  5. Повторить пункты №№ 3 и 4 еще 999 раз.
  6. Прекратить работу.

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

3.3 Визуализация данных

ПВД предназначен для отображения данных, находящихся в файлах базы данных mast.db и tlb.db. ПВД может вызываться в двух случаях:

  1. При возникновении аварийной ситуации: после считывания данных аварийного буфера, MANAGER предоставит оператору возможность вызвать ПВД (станет доступной соответствующая кнопка).
  2. При необходимости только просмотреть данные это можно будет сделать на любом компьютере серии х86 при наличии файлов базы данных и ПВД.

Алгоритм работы программы не зависит от того, каким именно образом она вызвана, разница состоит лишь в том, что в первом случае ПВД вызывается посредством программы MANAGER, а во втором - непосредственно человеком.

При запуске программы ПВД появляется диалоговая форма, содержащая основной графи