31969

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

Дипломная

Информатика, кибернетика и программирование

2 Передача данных от нижнего уровня к верхнему и сохранение данных 19 4.3 Визуализация данных 20 4.1 Структура базы данных 22 4.

Русский

2013-09-01

256.2 KB

4 чел.

СОДЕРЖАНИЕ

1

ВВЕДЕНИЕ

3

2

ОБЗОР ПАКЕТОВ ПРОГРАММ, ПРЕДНАЗНАЧЕННЫХ ДЛЯ ВИЗУАЛИЗАЦИИ И АНАЛИЗА ДАННЫХ

6

3

ОБОСНОВАНИЕ ВЫБОРА СРЕДЫ

ПРОГРАММИРОВАНИЯ

13

4

РАЗРАБОТКА АЛГОРИТМОВ ВИЗУАЛИЗАЦИИ ДАННЫХ АВАРИЙНОГО БУФЕРА

17

4.1

Организация аварийного буфера

17

4.2

Передача данных от нижнего уровня к верхнему и сохранение данных

19

4.3

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

20

4.3.1

Структура базы данных

22

4.3.2

Запуск программы визуализации данных

24

4.3.3

Отображение данных в табличной форме

25

4.3.4

Отображение данных в графической форме

25

5

ОПИСАНИЕ РАЗРАБОТАННЫХ ПРОГРАММ

27

5.1

База данных

27

5.1.1

Обоснование выбора формата файлов

27

5.1.2

Структура таблиц mast и tbl

29

5.2

Функция KEEP_TRB

30

5.3

Программа визуализации

32

5.3.1

Описание свойств и компонентов главной формы

32

5.3.2

Описание процедур

35

5.3.3

Краткое руководство по использованию

программы визуализации

37

6

ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ

42

6.1

Ленточный график выполнения проекта

42

6.2

Составление сметы затрат на выполнение проекта и оценка себестоимости разработки программного продукта

43

7

Оптимизация восприятия информации с экрана дисплея

45

7.1

Использование дисплея в качестве звена между человеком и ЭВМ

45

7.2

Характеристика потока информации

47

7.3

Условия использования дисплеев

48

7.4

Расчеты размеров знаков и символов

51

8

ЗАКЛЮЧЕНИЕ

59

Приложение 1. листинги программ

60

приложение 2.

65

список литературы

71

  1.  ВВЕДЕНИЕ

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

В производственных системах управления, независимо от их сложности, можно выделить два уровня. Верхний охватывает те контуры, которые включают в качестве одного из звеньев человека-оператора. Оператор не оказывает прямых управляющих воздействий; он следит за ходом процесса и, при необходимости, изменяет его параметры (установки) или последовательности управляющих воздействий. Этот тип управления называют супервизорным (наблюдательным). Устройства нижнего уровня осуществляют прямое управление процессом или оборудованием; они получают информацию с датчиков и вырабатывают сигналы, приводящие в действие исполнительные устройства, которые поддерживают в заданных пределах параметры или выполняют действия, установленные на верхнем уровне.

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

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

Вкратце о самой системе управления технологическими процессами. АСУТП представляет собой 2-х уровневую систему, построенную по модульному принципу.

В качестве аппаратной базы нижнего уровня были выбраны программируемые контроллеры и устройства цифрового и аналогового ввода-вывода SYSTEM 2010 (фирма-изготовитель - «Bernecker & Rainer Industrie Eleсtroniс G.m.b.H.» (Австрия)).

Верхний уровень представляет собой IBM-совместимую ПЭВМ.

Связь с программами верхнего уровня осуществляется через сеть NET 2000 с помощью механизма DDE обмена данными между различными приложениями Windows. В данном случае в качестве DDE-сервера используется специализированное приложение NET 2000 DDE, а в качестве DDE-клиента используется система программирования DELPHI. С помощью системы программирования DELPHI на верхнем уровне реализуются следующие задачи пользовательского интерфейса:

  1. управление процессом испытаний и корректировка параметров системы;
  2. отображение процесса испытаний, выдача информационных и аварийных сообщений оператору;
  3. протоколирование результатов испытаний.

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

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

2. ОБЗОР ПАКЕТОВ ПРОГРАММ, ПРЕДНАЗНАЧЕННЫХ

ДЛЯ ВИЗУАЛИЗАЦИИ И АНАЛИЗА ДАННЫХ

 

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

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

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

Рынок компьютерных программ обработки данных обширен и разнообразен. На нем представлены продукты более тысячи наименований. Такое разнообразие отражает многоплановость задач обработки в различных областях человеческой деятельности.

На рынке математического обеспечения в эпоху больших компьютеров лидировали несколько статических пакетов - BMDP, SAS, и SPSS. Это объяснялось тем, что фирмы-разработчики достаточно быстро реагировали на достижения в области обработки данных и ими был накоплен большой запас прочности, позволивший далеко оторваться от конкурентов. С появлением персональных компьютеров, новых языков программирования и технологий лидировавшим фирмам пришлось решать сложную задачу: создавать пакет для ПК заново или адаптировать уже существующую программу к требованиям «маломощных» компьютеров. Вместе с тем богатые графические возможности ПК дали шанс менее известным фирмам сравнительно быстро создать новые, ныне очень популярные средства анализа данных [1].

В этот период появился пакет STATGRAPHICS (STATistical GRAPHICs System) фирмы Manugistics. Он настолько выигрышно отличался от других статических пакетов удобством пользовательского интерфейса, что завоевал огромную популярность и в дальнейшем задал основные ориентиры для развития всей индустрии в целом. За последние годы, наконец, появились Windows-версии наиболее известных статических систем. А корпорации SPSS и Manugistics выпустили версии для Windows 95/NT и продолжают наращивать огромный потенциал своих систем.

В следующей таблице классифицируем по типам наиболее известные из существующих отечественных и зарубежных пакетов для обработки статистических данных [1].

Типы

Отечественные

Зарубежные

Профессиональные

Нет

SAS, BMDP

Универсальные

STADIA, Olymp

STATGRAPHICS, SPSS STATISTICA,

S-PLUS

Специализированные

Mesosaur, DataScope,

Класс-Мастер,

Эвриста, САНИ

Большое многообразие

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

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

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

Все универсальные пакеты имеют много пересечений по составу статистических процедур. Кроме того, современные версии программ обладают, как правило, модульной структурой, что позволяет существенно экономить средства. Windows-интерфейс последних версий пакетов во многом унифицирует взаимодействие пользователя с аналитическими, графическими и системными процедурами. Основные отличия кроются, главным образом, в цене. Кроме того, по-разному организован диалог. Здесь в лучшую сторону отличается STATGRAPHICS Plus for Windows [1]. 

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

С указанными задачами приходится сталкиваться в процессе работы многим людям (особенно руководителям, бизнесменам, экономистам и т.п.) при принятии решений, оценке результатов предпринятых действий, контроле, планировании и прогнозировании. Методы решения таких задач универсальны.

Так как различные универсальные пакеты имеют множество пересечений, то на примере STATGRAPHICS покажем основные возможности универсальных пакетов по обработке статистических данных [1].

Статистический графический пакет STATGRAPHICS, разработанный американской корпорацией Manugistics для IBM-совместимых компьютеров, по признанию многих авторитетных журналов (Infoworld, Software Digest и др.) является на сегодняшний день одной из наиболее эффективных систем статистического анализа данных. Столь высокую оценку STATGRAPHICS заслужил главным образом благодаря удачному соединению научных методов обработки разнотипных данных с современной интерактивной графикой. Этот альянс подкреплен широкими возможностями взаимодействия с другими программными продуктами (электронными таблицами, базами данных) и периферийными устройствами. Дружественный интерфейс и тщательно отшлифованная документация способствуют быстрому освоению пакета как специалистами в области математической статистики, так и представителями других сфер деятельности (бизнеса, производства, экономики, медицины, химии, биологии, психологии и др.).

В DOS-версию пакета включено более 250 процедур обработки данных по следующим разделам математической статистики [1]:

 Анализ вариаций (дисперсионный анализ)

 Анализ временных рядов

 Дескриптивная (описательная) статистика

 Контроль качества

 Непараметрический анализ

 Планирование эксперимента

 Подбор распределений

 Прогнозирование

 Разведочный анализ

 Регрессионный анализ

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

В 1994 году выпускается версия STATGRAPHICS для работы в среде Windows.

По сравнению с DOS-версией статистические процедуры более продвинуты и по-иному сгруппированы, а весь пакет в целом имеет модульную структуру [1].

 Рассмотрим отечественную разработку - ЭЛЕКТРОННАЯ СИСТЕМА СТАТИСТИЧЕСКОГО АНАЛИЗА И ПРОГНОЗИРОВАНИЯ ОЛИМП [3].

Пакет ОЛИМП, разработанный фирмой НеоСофт, предназначен для автоматизации обработки данных статистическими методами. Данный пакет реализован в расчете на самых разнообразных пользователей - от новичков до экспертов в области статистики. В настоящее время ОЛИМП является одним из лучших отечественных пакетов в области статистического анализа и прогнозирования данных.

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

В состав программного комплекса, помимо основной программы, входят также:

  1. электронная таблица MNCALC;
  2. программа подготовки и ввода анкет ПСИ;
  3. утилита выборочного экспорта данных из формата DBF;

Программа ОЛИМП позволяет организовать полный цикл исследований по статистическому анализу и прогнозированию данных, начиная с ввода исходных данных, их проверки и визуализации и заканчивая проведением расчетов и анализом результатов на основе широкого набора современных методов прикладной статистики [3].

Одной из наиболее популярных программ с богатой библиотекой статистических методов является Microsoft EXCEL - электронные таблицы.

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

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

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

С помощью модуля базы данных в Excel 7.0 реализован доступ к внешним базам данных.

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

Таким образом область применения программы не ограничивается только сферой деловой жизни. Благодаря мощным математическим и инженерным функциям с помощью Excel можно решить множество задач также в области естественных и технических наук [2].

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

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

  1.  ОБОСНОВАНИЕ ВЫБОРА СРЕДЫ

ПРОГРАММИРОВАНИЯ

При выборе среды программирования для работы над данным проектом делался упор на возможность работы с большими объемами данных, в частности с базами данных. В настоящее время подобные возможности реализованы сразу несколькими языками, как, например, VisualBasic, Visual C++, Delphi. Но именно Delphi отвечает требованиям создания программного продукта в данном проекте. Приведем далее (в том числе и в сравнении) основные преимущества и достоинства Delphi.

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

Вот оценка одного из признанных авторитетов в области клиент-серверных разработок Криса Морау: «Delphi обладает мощностью языковых средств С++, комбинируя в тоже время потрясающую производительность и простоту обучения. Delphi является наиболее быстрым и удобным средством разработки приложений на сегодняшнем рынке инструментальных средств. Объектно-ориентированная архитектура Delphi позволяет нам в действительности повторно использовать существующий код и интегрировать наши стандарты в сам инструмент.» [1]

 Delphi разработан как продукт, ориентированный на реализацию следующих тенденций.

Одно направление - объектно-ориентированный подход, хорошо структурирующий как саму задачу, так и ее решение в виде прикладной системы.

Другое направление, возникшее во многом благодаря объектной ориентации, - визуальные средства быстрой разработки приложений (RAD - Rapid Application Development), основанные на компонентной архитектуре.

Третья тенденция - использование компиляции, а не интерпретации. Это объясняется тем, что скоростные характеристики компилируемых приложений в десятки раз лучше, чем у систем, использующих интерпретатор. При этом повышается легкость отчуждаемости готовых систем, так как отпадает необходимость «таскать за собой» сам интерпретатор (run-time), выполненный обычно в виде динамической библиотеки и занимающий в лучшем случае несколько сотен килобайт (а в большинстве случаев - два-три мегабайта). Отсюда и меньшая ресурсоемкость у скомпилированных систем.

Четвертая тенденция - возможность работы с базами данных универсальными методами. Если попытаться оценить процент систем, которые так или иначе требуют обработки структурированной информации (как для внутрикорпоративного использования, так и для коммерческого или иного распространения), то окажется, что цифра 60-70% может представлять лишь нижнюю границу. Важным свойством средств обеспечения доступа к базам данных является их масштабируемость, то есть возможность не только количественного, но и качественного роста системы. Например, обеспечение перехода от локальных, в том числе, файл-серверных данных, к архитектуре клиент-сервер или тем более к многоуровневой N-tier схеме [1].

 Приведем небольшое сравнение, выявляющее преимущества Delphi перед другими средами программирования. Система Delphi - самое последнее достижение на ниве визуального программирования. Главным соперником Delphi является Visual Basic (VB).

Оба продукта обладают удобным интерфейсом, который исключает значительную часть рутинной работы, и все же Delphi имеет значительные преимущества перед VB.

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

Он может реагировать на события, происходящие внутри ОС Windows, но только в том случае, если корпорация «Microsoft» предусмотрела реакцию на такие события. В VB-программах могут применяться пользовательские управляющие средства (например, компоненты ActiveX) для улучшения их функциональных свойств, но VB не сможет помочь создать собственное управляющее средство.

В Delphi таких ограничений нет. Эта среда умеет не только использовать, но и создавать DLL, а ее программы могут как инициировать, так и обрабатывать практически любые события Windows. Компоненты Delphi написаны в среде Delphi, поэтому не нужно выходить из системы, чтобы создавать новые компоненты или дорабатывать существующие. Более того, находясь в среде Delphi, можно даже использовать компоненты ActiveX, так как программы, созданные в Delphi, прекрасно работают с компонентами ActiveX. Пользователи Delphi имеют такие возможности настройки компонентов ActiveX, которые VB предоставить не в состоянии.

Delphi полностью компилирует программу в машинный код, понятный компьютеру. VB выполняет эту функцию только наполовину, транслируя команды BASIC в промежуточный язык, называемый p-кодом. При запуске таких программ VB интерпретирует p-код в реальные машинные команды. Delphi сразу же переходит непосредственно на уровень машинного кода, что дает огромное преимущество в скорости [2].

Delphi поддерживает объекты, которые создаются с помощью других языков (например, С++) на основе стандарта OCX [3].

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

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

 Delphi всегда обладала мощным потенциалом в сфере создания баз данных. В версии 3 пересмотрена структура поддержки программирования баз данных и реализовано много новых возможностей. Delphi 3 вводит концепцию распределенного набора данных, который взаимодействует со всеми типами баз данных в режиме клиент/сервер, то есть приложение-клиент сохраняет локальную копию таблицы и просто пересылает модификацию на сервер. Благодаря этому упрощению программе требуется поддержка только одного объекта клиента, инкапсулированного в новый объект TMemoryDataSet. Весь остальной код остается в распоряжении BDE, которая используется параллельно работающими приложениями. При этом такие компоненты, как TTable, TQuery и другие, уже обновились, чтобы отразить новую структуру, и полностью совместимы с существующим кодом [3].

 Delphi гостеприимно распахивает двери своего «золотого фонда» компонентов работы с данными, превращая программирование баз данных почти в тривиальную задачу. И все это достигается благодаря системе доступа к базам данных фирмы Borland (Borland Database Engine, или BDE).

Таким образом, Delphi как среда программирования сочетает в себе наиболее удачные и необходимые возможности, которые и обусловили ее выбор при работе над проектом.

4. РАЗРАБОТКА АЛГОРИТМОВ ВИЗУАЛИЗАЦИИ ДАННЫХ АВАРИЙНОГО БУФЕРА

  1.  Организация аварийного буфера

Аварийный буфер представляет собой область оперативной памяти контроллера B&R серии SYSTEM 2000, предназначенную для сохранения данных, поступающих в течении 3-х секунд до признака аварии и в течении 2-х секунд после признака аварии, таким образом, емкость буфера равна объему данных, поступивших в течении 5-ти секунд. Данные, сохраняемые за один цикл записи: код программы уставки и значение нагрузки для каждого из 80-ти каналов контроллера, текущие значения минут, секунд и миллисекунд. Период циклов записи в буфер 5 ms. Под каждый компонент данных отводится 2 байта. Таким образом, объем буфера равен (80 * 2 + 3) / 0.005 * 5 * 2 = 326000 байт. Последовательность поступления данных в аварийный буфер показана на рис. 1.

Рис. 1.

минуты

секунды

миллисекунды

Уставка    1-го канала

Нагрузка

1-го канала

. . .

Уставка    2-го канала

Уставка    80-го канала

Нагрузка

80-го канала

n-й цикл записи

минуты

секунды

миллисекунды

Уставка    1-го канала

Нагрузка

1-го канала

. . .

Уставка    2-го канала

Уставка    80-го канала

Нагрузка

80-го канала

n+1-й цикл записи

1

2

3

4

5

6

162

163

1

2

3

4

5

6

162

163

Тип записи в буфер - непрерывно-циклический. На этапе рабочего процесса (до появления признака аварии) в буфер каждые 5 ms поступают 163 двухбайтовых значения, и таким образом в каждый момент времени буфер содержит данные за последние 5 секунд работы контроллера. При присвоении флагу аварии значения, соответствующего аварийной ситуации фиксируется адрес, по которому произошла последняя запись данных в буфер, значение адреса присваивается переменной Adr_trb, после чего происходит еще 400 циклов записи данных и поступление данных в буфер блокируется до сброса флага аварии, а значение адреса, по которому произошла последняя запись, присваивается переменной Adr_stp. Используя значения переменных Adr_trb, Adr_stp и стандартную функцию чтения модуля данных DA_read( ), можно считать все данные, содержащиеся в буфере. Рис. 2 помогает понять принцип организации буфера.

326 байт - объем данных, записанных за один цикл

Рис. 2.

Решение проблемы передачи данных от нижнего уровня к верхнему не входит в объем данной работы и поэтому описываться не будет. Эта задача была решена одним из членов группы программистов, занимающихся разработкой программного обеспечения АСУ. Функция передачи данных называется TRANS_TRB, ее использование будет показано в п. 4.2.

4.2. Передача данных от нижнего уровня

к верхнему и сохранение данных

Программа визуализации данных аварийного буфера состоит из двух модулей: функции сохранения данных и программы визуализации сохраненных данных, в дальнейшем для удобства будем называть их соответственно ФСД и ПВД. Также необходимо упомянуть о программе MANAGER, из которой происходит вызов ФСД и ПВД.

Программа MANAGER является резидентной, в ее задачи входит:

  1. управление режимом визуализации рабочего процесса;
  2. вызов функции передачи данных для визуализации рабочего процесса;
  3. контроль состояния флага аварии, вызов функции ФСД;
  4. обеспечение возможности вызова ПВД.

Пока АСУ находится в режиме рабочего процесса (флаг аварии сброшен), 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.

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

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

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

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

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

  1. панель крупноформатного отображения даты и времени аварии, а также номера аварийного канала;
  2. сетку данных № 1, отображающую поля «дата» и «время» файла mast.db, предназначенную для выбора данных о конкретной аварии путем выбора даты и времени аварии;
  3. сетку данных № 2, отображающую все поля кроме поля «индекс» файла tbl.db, предназначенную для просмотра данных по конкретной аварии в табличной форме (авария предварительно выбирается в сетке данных № 1);
  4. список каналов, предназначенный для выбора данных по конкретному каналу;
  5. кнопку удаления, позволяющую удалить данные о выбранной аварийной ситуации, если по какой-либо причине они не представляют интереса;
  6. средство вывода информации в графическом виде, которое позволяет просмотреть данные по выбранному каналу в виде графика;
  7. кнопки «Таблица» и «График» для открытия и закрытия панелей, содержащих соответственно сетку данных № 2 и средство вывода графиков;
  8. средства управления режимами отображения информации.

  1.  Структура базы данных

Основой ПВД является база данных, состоящая из двух таблиц формата PARADOX mast.db и tbl.db. Обоснование выбора формата приведено в пункте 5.2.

Файл mast.db имеет 4 поля:

  1. индексное поле;
  2. поле даты;
  3. поле времени;
  4. поле номера аварийного канала.

Каждая запись файла mast.db содержит следующие данные:

  1. индексное значение записи;
  2. дата определенной аварийной ситуации;
  3. время аварийной ситуации;
  4. номер канала, в котором произошла аварийная ситуация.

Таблица 1 показывает структуру расположения данных в файле mast.db. Запись данных в файл с осуществляется ФСД (п. 4.2).

Индекс

Дата

Время

Номер канала

1

21/01/98

10:30

56

2

24/01/98

15:48

64

3

29/01/98

14:01

17

Табл. 1. Структура расположения данных в файле mast.db

Файл tbl.db имеет 162 поля: индексное поле, поле времени, поле уставки 1-го канала, поле нагрузки 1-го канала и еще 158 полей уставки и нагрузки остальных 79-ти каналов. Каждая запись файла tbl.db содержит следующие данные: индексное значение записи, значение минут, секунд и миллисекунд в одном поле, значение уставки 1-го канала, значение нагрузки 1-го канала и еще 158 значений уставки и нагрузки остальных 79-ти каналов. Таким образом, каждая запись файла tbl.db содержит данные, сохраненные в аварийном буфере за один цикл. Таблица 2 показывает структуру расположения данных в файле tbl.db.

 

Индекс

Время

Уставка 1-го канала

Нагрузка 1-го канала

Уставка 2-го канала

. . .

Нагрузка 80-го канала

1

30:17:003

6537

6540

12456

...

3245

1

30:17:008

6537

6598

12457

...

3256

1

30:17:013

6538

6645

12459

...

3270

...

...

...

...

...

...

...

...

...

...

...

...

...

...

1

30:21:998

6670

8912

11238

...

3357

2

48:58:505

5405

5380

9456

...

2871

2

48:58:510

5405

5380

9678

...

2829

Табл. 2. Структура расположения данных в файле tbl.db

Каждой записи в файле mast.db соответствуют 1000 записей в файле tbl.db, то есть весь объем данных, сохраненных в аварийном буфере при возникновении аварийной ситуации. Рисунок 3 показывает соответствие данных в файлах mast.db и tbl.db.

 Индекс

Дата

Время

Номер канала

1

21/01/98

10:30

56

2

24/01/98

15:48

64

Индекс

Время

Уставка 1-го канала

Нагрузка 1-го канала

Уставка 2-го канала

. . .

Нагрузка 80-го канала

1

30:17:003

6537

6540

12456

...

3245

1

30:17:008

6537

6598

12457

...

3256

1

30:17:013

6538

6645

12459

...

3270

...

...

...

...

...

...

...

...

...

...

...

...

...

...

1

30:21:998

6670

8912

11238

...

3357

2

48:58:505

5405

5380

9456

...

2871

2

48:58:510

5405

5380

9678

...

2829

 Рис.3. Соответствие данных в файлах mast.db и tbl.db

  1.  Запуск программы визуализации данных

При запуске ПВД указатель текущей записи сетки данных № 1 устанавливается на последнюю запись, соответствующую последней записи файла mast.db, а список каналов устанавливается на значение равное, значению поля «номер канала» последней записи файла mast.db. Панели крупноформатного отображения присваиваются значения даты, времени и номера аварийного канала, взятые из последней записи файла mast.db.

По умолчанию сетка данных № 2 отображает только поле «время» файла tbl.db, остальные поля остаются невидимыми. При запуске ПВД поля уставки и нагрузки аварийного канала также отображаются сеткой. Эффект видимости или невидимости достигается путем присвоения свойству VISIBLE выбранного поля соответственно значений TRUE либо FALSE. При этом, так как файлы mast.db и tbl.db связаны по индексному полю, сетка данных № 2 показывает только данные, соответствующие текущей записи сетки № 1, и при перемещении указателя текущей записи по записям сетки № 1 сетка № 2 отображает только данные с индексом, равным индексу текущей записи сетки № 1.

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

4.3.3. Отображение данных в табличной форме

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

При выборе другого канала в списке каналов свойству VISIBLE полей уставки и нагрузки соответствующего канала присваивается значение TRUE, а свойству VISIBLE полей уставки и нагрузки канала, который был выбран ранее - значение FALSE. Таким образом, происходит выбор отображаемых данных.

 

4.3.4. Отображение данных в графической форме

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

Для выполнения свой задачи компонент Chart должен быть непосредственно связан с полями файла данных. Этим файлом является файл buf.db, который всегда содержит данные по выбранному каналу, выбранной аварийной ситуации. Файл buf.db также является файлом формата PARADOX 7 и имеет 3 поля: время, уставка и нагрузка. Количество записей файла фиксировано и равно 1000, то есть размер файла равен объему данных аварийного буфера по одному каналу.

Для копирования данных из файла tbl.db в buf.db используется функция COPY_GRAF. Она вызывается в следующих случаях: при запуске ПВД, при выборе аварийной ситуации в сетке данных № 1, при выборе канала в списке каналов. Каждый раз при вызове COPY_GRAF читает индексное значение текущей записи файла mast.db и номер выбранного канала в списке каналов и таким образом определяет координаты необходимых данных в файле tbl.db, после чего копирует их в файл buf.db. Этим достигается почти мгновенное (визуально) изменение графиков при выборе аварийной ситуации или канала.

5. ОПИСАНИЕ РАЗРАБОТАННЫХ ПРОГРАММ

Модуль визуализации данных аварийного буфера включает три основные части:

  1. локальная база данных;
  2. функция KEEP_TRB;
  3. программа визуализации.

База данных представлена файлами mast.db и tbl.db, которые имеют формат Paradox и предназначены для хранения данных аварийного буфера МАСУ для всех аварийных ситуаций, произошедших во время работы МАСУ.

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

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

  1.  База данных

  1.  Обоснование выбора формата файлов

В настоящее время наиболее распространенными являются два типа локальных таблиц - Paradox и dBASE. Каждый из них имеет свои преимущества и недостатки. 

Таблицы баз данных Paradox постоянно развиваются и предоставляют много возможностей. Таблицы Paradox поддерживают более 15 типов полей: от числовых до текстовых с фиксированной и переменной длиной и полей, позволяющих сохранять непосредственно двоичные данные. Такой большой набор типов полей позволяет выбирать параметры проекта базы данных и более точно представлять сохраняемую информацию. Таблицы Paradox поддерживают концепцию целостности данных (referential integrity), которая обеспечивает правильность ссылок между таблицами, и обладают таким несомненным достоинством как проверка правильности данных. Имеется в виду, что для каждого поля можно определить минимальное и максимальное значение, а также значение по умолчанию, которое автоматически присвоится полю при добавлении новой записи.

Формат таблиц dBASE является одним из первых форматов PC-таблиц, и поэтому он поддерживается практически всеми приложениями, которые связаны с данными, имеющими формат таблиц. Базы данных dBASE поддерживают две дополнительные опции для индексов: опция Expression Indexes (составной индекс), позволяющая создавать индекс, основанный на комбинации нескольких полей и опция Subset Index (индекс поднабора данных), позволяющая определить набор записей, удовлетворяющих конкретному критерию. В ряду недостатков можно указать короткие имена полей, не более восьми символов без использования пробелов и ограниченное количество типов полей. В таблицах dBASE поддерживается лишь восемь типов полей:

  1. символьные;
  2. числа с плавающей запятой;
  3. числовые;
  4. даты;
  5. логические;
  6.  Memo-поля; 
  7.  OLE- поля;
  8. двоичные поля.

Кроме того базы данных Paradox превосходят базы данных dBASE по производительности. Вставка и изменение записей, как и поиск по индексированным и неиндексированным полям, в базах данных Paradox выполняется быстрее.

В общем, можно сделать вывод, что целесообразнее использовать базу данных Paradox.

  1.  Структура таблиц mast и tbl

Таблица mast является главной, а таблица tbl - подчиненной.

Подробно рассмотрим обе таблицы.

Таблица mast (см. рис. 5) имеет 3 поля:

  1. поле Index;
  2. поле Data_Time;
  3. поле Number of сhannel.

Поле Index имеет тип autoincrement (то есть автоматически увеличивается на единицу при добавлении следующей записи), оно служит для связи с подчиненной таблицей tbl.db.

Поле Date_Time имеет тип Timestamp и предназначено для хранения времени и даты аварии, минимальное значение 00:00:00, 01.10.1998, тогда как максимальное значение 00:00:00, 31.31.2020.

Поле Number of channel имеет тип Short, это поле используется для хранения номера аварийного канала, минимальное значение 1, а максимальное значение 80.

Рис.5. Таблица mast

Таблица tbl (см. рис.6) имеет 162 поля: поле Index, поле Time и еще 160 полей с названиями U1, N1, U2, ... , U80, N80.

Поле Index имеет тип Short, служит для связи с главной таблицей mast.

Поле Time имеет тип Alpha, предназначено для хранения в виде текстовой строки значений минут, секунд, миллисекунд и имеет размер 9 символов.

Остальные 160 полей имеют тип Short и используются для хранения значения кода программы уставки и значения нагрузки конкретного канала.

Рис.6. Таблица tbl

  1.  Функция KEEP_TRB

Вызов функции KEEP_TRB (см. приложение) содержится в теле программы MANAGER и происходит с двухсекундной задержкой от момента установки флага аварии. Для получения данных аварийного буфера, значений даты аварии, времени аварии и номера аварийного канала функция KEEP_TRB вызывает функцию TRANS_TRB. Листинг функции TRANS_TRB не приведен в приложении, так как задача ее создания не ставилась перед автором данного проекта (функция TRANS_TRB была написана одним из членов группы программистов, занимающихся разработкой программного обеспечения МАСУ).

Функция TRANS_TRB не возвращает никакого значения, однако имеет два передаваемых параметра. Первый параметр W, логического типа. При вызове функции TRANS_TRB с параметром W, равным FALSE, результатом работы станет присвоение глобальной переменной строкового типа D_T даты и времени аварии, а глобальной переменной Number типа Byte - номера аварийного канала. При вызове функции TRANS_TRB с параметром W, равным TRUE, результатом работы станет запись в глобальный массив Buffer 163-х двухбайтовых чисел, являющихся данными аварийного буфера. Второй параметр Adr поддиапазонного типа задает смещение, позволяющее читать данные из буфера порциями по 163 двухбайтовых числа.

После вызова TRANS_TRB с параметром W, равным FALSE, функция KEEP_TRB добавляет в таблицу mast новую запись, в поле Date_Time записывает значение переменной D_T, а в поле Number значение переменной Number. Далее в цикле происходит вызов TRANS_TRB с параметром W, равным TRUE и параметром Adr равным счетчику цикла. После каждого такого вызова значения элементов Buffer(0), Buffer(1), Buffer(2) преобразуются к строковому типу, складываются, и результат записывается в поле Time таблицы tbl, значения элементов Buffer(3) - Buffer(162) записываются соответственно в поля U1, N1, U2, ... ,U80, N80. Каждая итерация цикла добавляет в таблицу tbl новую запись.

 

  1.  Программа визуализации

  1.  Описание свойств и компонентов главной формы

В основе графического интерфейса программы визуализации (далее сокращенно ПВ) лежит форма Mform класса ТForm. Mform содержит все необходимые компоненты для работы с базой данных и выбора режима визуализации. Ниже перечислены наиболее важные свойства Mform:

  1.  Autoscroll : = False - запрещает появление полос прокрутки в форме при размерах формы, не позволяющих вывести все ее элементы одновременно;
  2.  BordrerIcons.bisystemMenu : = True - пиктограмма системного меню присутствует;
  3.  BordrerIcons.biMaximize : = False - кнопка максимизации отсутствует;
  4.  BordrerIcons.biMinimize : = True - кнопка минимизации присутствует;
  5.  BordrerIcons.biHelp : = False - контекстно-зависимая справка отсутствует;
  6.  BorederStyle : = bsSingle - блокировано изменение размеров формы;
  7.  WindowState : = wsNormal - при запуске программы, форма имеет состояние Normal.

Теперь приведем список компонентов формы Mform c указанием назначения компонента и его наиболее важных свойств:

  1.  Indicator класса TGroupBox - объединяет компоненты класса TLabel, показывающие информацию о дате, времени аварии и номере аварийного канала;
  2.  Menu класса TGroupBox - объединяет компоненты Visible_tab и Visible_graf (кнопки «Таблица» и «График»);
  3.  Table класса TGroupBox - объединяет компоненты Str_tab1, Str_number, Del_rec, Master, Number_of_channel, предназначенные для выбора, просмотра и удаления записей базы данных;
  4.  Graf класса TGroupBox - объединяет компоненты Scale_graf, Mast_Source и Detail_Source, служащие для управления отображением графика;
  5.  Close класса TButton - кнопка «Закрыть», закрывает форму Mform и завершает ПВ, событию OnClick присвоена процедура TMform.CloseClick;
  6.  Del_rec класса TButton - кнопка «Удалить», удаляет текущую запись таблицы Mast_table и соответствующие записи таблицы Detail_table, событию OnClick присвоена процедура TMform.Del_recClick;
  7.  Visible_tab класса TButton - кнопка «Таблица», изменяет размеры Mform для показа или скрытия компонента Detail, событию OnClick присвоена процедура TMform.Visible_tabClick;
  8.  Visible_graf класса TButton - кнопка «График», изменяет размеры Mform для показа или скрытия компонента DBChart1, событию OnClick присвоена процедура TMform.Visible_grafClick;
  9.  Scale_graf класса TButton - кнопка «Масштаб», изменяет масштаб графиков, отображаемых компонентом DBChart1, событию OnClick присвоена процедура TMform.Scale_grafClick;
  10.  Time класса TLabel - показывает время аварийной ситуации; 
  11.  Date класса TLabel - показывает дату аварийной ситуации; 
  12.  Str_channel класса TLabel - показывает надпись «Канал №»; 
  13.  Number_channel класса TLabel - показывает номер аварийного канала;
  14.  Str_tab1 класса TLabel - показывает надпись «Дата и время»;
  15.  Str_number класса TLabel - показывает надпись «№ канала»;
  16.  Master класса TDBGrid - сетка данных, отображает набор данных Mast_table;
  17.  Detail класса TDBGrid - сетка данных, отображает набор данных Detail_table;
  18.  Number_of_channel класса TComboBox - комбинированный список, служит для выбора номера канала, событию OnChange присвоена процедура TMform.Number_of_channelChange;
  19.  Ust класса TCheckBox - флажок параметра, служит для включения/выключения отображения графика уставки, событию OnClick присвоена процедура TMform.UstClick;
  20.  Nag класса TCheckBox - флажок параметра, служит для включения/выключения отображения графика нагрузки, событию OnClick присвоена процедура TMform.NagClick;
  21.  DBChart1 класса TDBChart - компонент, предназначенный для представления данных таблицы buf в графическом виде;
  22.  Mast_table класса TTable - компонент, предназначенный для связи с таблицей mast, свойство TableName : = mast.db;
  23.  Detail_table класса TTable - компонент, предназначенный для связи с таблицей tbl, свойство TableName : = tbl.db;
  24.  Buffer_table класса TTable - компонент, предназначенный для связи с таблицей buf, свойство TableName : = buf.db;

                   

  1.  Mast_Source класса DataSource - источник данных, выполняет роль связующего звена между Mast_table и Master, свойство DataSet :=Mast_table;
  2.  Detail_Source класса DataSource - источник данных, выполняет роль связующего звена между Detail_table и Detail, свойство DataSet :=Detail_table;

  1.  Описание процедур

procedure CloseClick(Sender: TObject)

Процедура окончания работы программы путем закрытия формы Mform.  

procedure Visible_grafClick(Sender: TObject)

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

procedure FormActivate(Sender: TObject)

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

procedure EnableColumn

Процедура отображения колонок таблицы. Вызывается из процедуры TMform.Number_of_channelChange.

procedure DisableColumn

Процедура скрытия колонок таблицы. Вызывается из процедуры TMform.Number_of_channelChange.

procedure Number_of_channelChange(Sender: TObject)

Процедура смены отображаемых колонок таблицы и обновления данных в таблице buf. Обрабатывается по событию OnChange компонента Number_of_channel.

procedure Del_recClick(Sender: TObject)

Процедура удаления данных из таблиц mast и tbl. Обрабатывается по событию OnClick компонента Del_rec.

procedure new_channel

Процедура копирования данных из таблицы tbl в таблицу buf. Вызывается из процедуры Number_of_channelChange.

procedure Visible_tabClick(Sender: TObject)

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

5.3.3. Краткое руководство по использованию

программы визуализации

Запуск ПВ приводит к появлению основного графического интерфейса программы (см. рис. 7). При этом указатель текущей записи сетки данных Master установлен на последнюю запись таблицы mast. Компоненты Time, Date и Number_channel показывают время, дату и номер аварийного канала, список каналов Number_of_channel установлен на номере аварийного канала. Установка указателя текущей записи сетки Master на другую запись приведет к смене информации, отображаемой компонентами Time, Date, Number_channel и к смене номера канала в списке каналов Number_of_channel. При выборе номера канала в списке каналов Number_of_channel визуальных изменений при данных размерах интерфейса не произойдет.

Рис. 7

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

Рис. 8

Кнопка «График» также позволяет изменить размеры формы Mform,так что становится виден компонент DBCart1, отображающий графики нагрузки и программной уставки для канала, выбранного в списке Number_of_channel (см. рис. 9). Установка указателя текущей записи сетки Master на другую запись

Рис. 9

или выбор канала в списке Number_of_channel приведет к немедленной смене графической информации. Кнопка «Масштаб» позволяет увеличить размеры компонента DBCart1 для более наглядного восприятия графической информации (см. рис. 10). Повторное нажатие кнопки «Масштаб» позволит восстановить первоначального вид компонента DBCart1. Флажки параметров уставка и нагрузка позволяют выключать отображение соответствующих графиков. Повторное нажатие кнопки «График» позволит восстановить начального вид интерфейса (рис. 7).

Рис. 10

Рис. 11

При необходимости можно просматривать данные одновременно в табличной и графической форме (см. рис. 11), это достигается последовательным нажатием кнопок «Таблица» и «График» в любом порядке.

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

 

  1.  ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ

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

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

Ниже следует технико-экономическое обоснование разработки программного обеспечения для промышленного контроллера B&R SYSTEM 2000.

6.1. Ленточный график выполнения проекта

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

6.2. Составление сметы затрат на выполнение проекта и оценка себестоимости разработки программного продукта

1) расчет затрат по статье «Материалы»:

Материал

Единица измерения

Необходимое количество

Цена за единицу, руб.

Сумма, руб.

Бумага белая, формат А4

упаковка

(500 листов)

1

30

30

Картридж для принтера

шт

1

68

68

Дискеты 3,5

шт

10

3,5

35

Программное обеспечение (компакт-диск)

шт

1

52

52

Специальная литература по программному обеспечению

шт

4

75

(средняя цена)

300

итого: 485 руб.;

  1. затраты по статье «Заработная плата» делятся на «Основную» и «Дополнительную» заработные платы и составляют, соответственно, 1363 руб. и 137 руб.;

  1. отчисления на социальные нужды составляют 38,5 % от суммы основной и дополнительной заработной платы, то есть в денежном выражении 577 руб. 50 коп.;

  1. накладные расходы составляют 100 % от суммы основной и дополнительной заработной платы, то есть в денежном выражении 1500 руб.;

  1. услуги сторонних организаций выразились в предоставлении фирмой «Совам Телепорт» доступа к мировой информационной сети Internet. Почасовая оплата этой услуги составляет 1,5 $. Пересчет производился по курсу ММВБ на момент подключения к сети. За 10 часов пользования данной услугой затраты в денежном эквиваленте составили 89 руб. 10 коп.

Общая калькуляция плановой себестоимости выполнения работы над проектом сведена в следующую таблицу [3] (время выполнения работы 3 месяца):

Статья затрат

Сумма, руб.

1

Материалы

485

2

Основная заработная плата

4089

3

Дополнительная заработная плата

411

4

Отчисления на социальные нужды

1732,5

5

Накладные расходы

4500

6

Затраты на услуги, оказываемые сторонними организациями

89,1

Плановая себестоимость

11306,6

При расчете цены готового программного продукта прибыль разработчика учитывалась в размере 30 % от себестоимости создания продукта, что в денежном выражении составляет 3391 руб. 98 коп.

Итого стоимость                        14698 руб. 58 коп.

НДС составляет 20 % от стоимости готового продукта, т.е. 2939 руб. 72 коп.

Отпускная цена                         17638 руб. 30 коп.

  1.  Оптимизация восприятия информации

с экрана дисплея

7.1. Использование дисплея в качестве звена между

человеком и ЭВМ

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

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

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

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

    Органы чувств воспринимают ограниченное количество информации, определяемое пропускной способностью человека, которая является функцией многих факторов: типа задачи, степени участия оператора в работе системы, объема выводимой информации, количества используемых символов, яркости символов, контрастности, размеров и так далее. Например, для случая считывания информации при равновероятности поступления любых символов пропускная способность оператора определяется выражением [1]

                            

                                         C=(n log 2 N)/T ,

        где    T-время отображения;

                 n-число правильно опознанных символов;

                 N-число используемых символов;

Пропускная способность человека лишь в отдельных случаях может быть выражена в унифицированных единицах, например, в битах. Так, пропускная способность зрительной системы при опознании предметов равна 50-70 бит/с, букв и цифр - 55 бит/с. Пропускная способность человека в течении длительного времени становится меньше, а оптимальная скорость приема и переработки равна 0,1-5,5 бит/с. Уменьшение частоты поступления вызывает затухание активности оператора, а увеличение уменьшает скорость приема и переработки информации.

7.2. Характеристика потока информации

Эффективность восприятия информации зависит от типа символов, формы и угловых размеров их, уровня яркости и контрастности между изображением и фоном, уровня внешней освещенности и многих других факторов. Для оценки средств отображения используют суммарную характеристику, определяемую как «читаемость», которая оценивается по скорости и точности различения, опознанию и интерпретации показателей. Читаемость символов зависит от правильной разработки отдельных деталей. Так, важнейшим является выбор алфавита символов, используемых в качестве кодов: геометрических фигур, букв, цифр, знаков. Форма символов влияет на скорость и точность опознания. Легче и быстрее опознаются цифры, образованные прямыми линиями: 1, 4, 7, 5, 3, 0, 8, 2, 6, 9 (представлены цифры в порядке легкости их опознания) [1].

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

  Важной характеристикой восприятия информации именно для ЭЛТ является допустимая частота мельканий символов [1]. Мелькание отрицательно влияет на качество работы оператора, поэтому частота мельканий должна быть наибольшей. Частота вспышек, при достижении которой отдельные вспышки не различаются, называется критической частотой слияния мельканий. Оптимальная частота повторения находится в пределах 40-50 Гц. Для аппаратуры на подвижных объектах минимальная частота повторения увеличивается в 2-3 раза.

7.3. Условия использования дисплеев

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

                                     kосв=a1lg B+b1

где В - яркость (в кд/м);

     a1 и b1 - коэффициенты режима освещения помещения:

                 Режим освещения                                a1                     b1

        

 Помещение затемнено                                       10,8                   12,45

 Общее освещение выключено:

         освещенность на местах 20 лк                   7,0                     11,0

         освещенность на местах 60 лк                   1,5                     8,8

 Общее освещение 4-6 лк

         освещенность на местах 20 лк                   1,75                   8,55

 Общее освещение 15-20 лк

         освещенность на местах 60 лк                   1,1                     7,6

     Значение kосв24 соответствует отличному качеству изображения, kосв=18-24 - хорошему, kосв=5-12 - удовлетворительному и kосв<5 -неудовлетворительному качеству изображения.

250

150

200

100

50

300

Возрастание порогового значения коэффициента контраста, %  

0

Отношение яркости дисплея к яркости фона

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

                                  

                

                     

                       

                     

                     

Если дисплей используется при сильном внешнем освещении, может возникнуть необходимость соответственно увеличить его яркость или снизить влияние освещенности, создаваемой окружающей средой, посредством затемнений или фильтров. Так, например, в хорошо освещенном помещении (до 500 лк) необходима яркость дисплея 300 кд/м. Влияние внешнего освещения может проявляться и в отражении от поверхности экрана дисплея, что сказывается на величине коэффициента контраста. Этот эффект можно снизить путем применения фильтров и козырьков, что, однако, не всегда реализуемо. Так, уровень освещенности, создаваемый окружающей средой, бывает настолько велик, что значительно уменьшить его весьма трудно и работать при низкой яркости дисплея практически невозможно. Например, при солнечном свете, создающем освещенность, достигающую 100 000 лк, и падающем непосредственно на экран дисплея, возникают условия, которые невозможно улучшить простым увеличением яркости дисплея. Даже гораздо более низкий уровень освещенности в хорошо освещенной комнате может создать эквивалентную яркость, отраженную от поверхности экрана, величиной 50 кд/м; тогда как для обеспечения минимального коэффициента контраста 3 потребуется яркость дисплея 100 кд/м, что вполне достижимо. Однако если мы хотим увеличить коэффициент контраста до более приемлемой величины, например, 8, то потребуется яркость до 350 кд/м, что не всегда возможно [2].

   Установим область величин коэффициента контраста, необходимую как для различения точки, так и для опознания символа. Оптимальные коэффициента контраста, необходимые для решения задач от различения минимального точечного объекта до надежной идентификации символа, находятся в диапазоне от 5 до 1. Отметим, что использование коэффициента контраста выше 10 ненамного улучшает эффективность системы отображения.

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

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

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

Острота зрения зависит от освещенности, расстояния до рассматриваемого предмета и определяется как величина, обратная углу зрения. Острота зрения характеризуется порогом разрешения- минимальным углом, под которым две равноудаленные точки видны как раздельные. Предельный угол разрешения характеризуется десятыми долями угловой минуты [1].

7.4. Расчеты размеров знаков и символов

 

Минимальный размер символа при условии его надежного опознания тесно связан с разрешением и даже применяется как критерий разрешения для объектов, состоящих из нескольких разрешаемых элементов. Минимальный размер точки или символа зависит от требуемого угла зрения и дистанции наблюдения [2]. Угловым размером изображения называют угол между двумя лучами, направленными от глаз наблюдателя к крайним точкам наблюдаемого изображения. Определяется по формуле [1] 

                                        tg(/2)=h/2*l ,

где h - линейный размер изображения (знака);

                 а l - расстояние от оператора до знака по линии взора;

Установлено, что минимальный угол зрения для символа составляет 14-16.

Для дистанции наблюдения D углу зрения 14 соответствует уравнение d=0,004*D, где d-минимальный размер различимой детали изображения. В общем виде

                        

                                  d=2D/36060,

где  - угловой размер(угл. мин) [2].

Толщина линий символов зависит от освещенности и контраста символа с фоном. При воспроизведении белых цифр на черном фоне толщину линии рекомендуется принимать равной 1/10 высоты цифр, при воспроизведении черных цифр на белом фоне толщина линий составляет 1/6 высоты цифр. Ширина цифр должна составлять 2/3 их высоты. Высокие, узкие цифры опознаются лучше при слабом освещении. Размеры знаков должны соответствовать расстоянию наблюдения. В зависимости от расстояния зрительного восприятия l высота знака [1] 

                                           htg(/2)l

    Рекомендуемые размеры воспроизводимых знаков [1]:

линейные размеры                                           Расстояние до оператора, м                              

символа, мм                           0,5        1,0        2,0        3,0       4,0       5,0       6,0       7,0       8,0       9,0

Высота                          6      12      25      35     45     60     70     85     95     105

Ширина                        4        7      15      21     27     36     42     50     57     63     

Толщина контура        0,7     1,5     3        4       6      7,5     9     10,5   12     12,5

         

На зрительное опознание элементов оказывает влияние контраст. Изображения с прямым контрастом создают лучшие условия для работы глаза (выше острота зрения, меньше утомление). При небольшой разнице в яркостях знака и фона знак воспринимается в виде пятна, это называется обнаружением. Стадия различения формы знаков, контуров называется различием. Если же разница в яркостях такова, что глаз различает существенные признаки, то это - опознание. Пороговой величине разности в яркости фона и знака соответствует пороговый контраст kпор [1]:

                     kпор=(B-Bф)пор/Bф=Bпор/Bф   

Если контраст знака и фона меньше порогового, то знак не виден. Величина порогового контраста для знаков с угловыми размерами 60 и яркостью 80-120 кд/м составляет 0,015-0,020. Контраст k  0,2 (до 20%) соответствует малому контрасту, k  0,5 (до 50%) - среднему и k > 0,5 - высокому. Для знаков с размерами 35-40, воспринимаемых на ЭЛТ, величину контраста рекомендуется принимать от 0,65 до 0,8, для знаков меньших размеров - от 0,7% до 0,90%. Оптимальной величиной является величина контраста 0,85%-0,90%, рекомендуемая при длительной работе оператора с сигналами. При небольшой длительности работы, когда требуется наибольшая четкость изображения, используют контраст >0,90. При уменьшении размеров знаков контраст необходимо увеличивать. Повысить контраст можно путем создания искусственного фона или отдельной подсветкой фона [1].

Яркость в элементах экрана представляет собой отношение испускаемой в направлении оператора силы света Ic к площади светящегося знака Sc [1]

                                 B=(Ic/Sc)cosc

где c - угол между плоскостью экрана и направлением наблюдателя.

Яркость В и освещенность Е связаны между собой зависимостью

          

                                 B=E/,

где -коэффициент отражения поверхности.

В затемненном помещении норма яркости экранов составляет 25-65 кд/м. Для различения мелких деталей изображения яркость должна быть не менее 100 кд/м [2].

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

8. ЗАКЛЮЧЕНИЕ

В результате выполнения дипломного проекта был создан программный модуль визуализации данных аварийного буфера АСУТП, реализованный в среде объектного программирования DELPHI 3.0. Модуль обладает всем необходимым набором функций, позволяющим успешно решать возложенную на него задачу при работе в составе программного обеспечения АСУТП. 

Для обеспечения нормальной работы всего пакета программ верхнего уровня требуется персональный компьютер с достаточно высоким быстродействием, класса не ниже Pentium. Но для выполнения только задачи визуализации и анализа базы данных достаточно ПК с процессором серии I486, что позволит более оптимально использовать имеющийся парк ПК, при этом немаловажно и то, что модуль визуализации можно использовать отдельно от пакета программного обеспечения АСУТП.

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

ПРИЛОЖЕНИЕ 1

ЛИСТИНГИ ПРОГРАММ

unit main;

interface

uses

 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

 StdCtrls, Db, DBTables, Grids, DBGrids, ExtCtrls, TeEngine, Series,

 TeeProcs, Chart, DBChart, TeeFunci;

type

 TMform = class(TForm)

   Visible_graf: TButton;

   Visible_tab: TButton;

   Close: TButton;

   Indicator: TGroupBox;

   Table: TGroupBox;

   Str_tab1: TLabel;

   Str_number: TLabel;

   Str_channel: TLabel;

   Number_channel: TLabel;

   Del_rec: TButton;

   Number_of_channel: TComboBox;

   DBChart1: TDBChart;

   Series2: TLineSeries;

   Graf: TGroupBox;

   Scale_graf: TButton;

   Nag: TCheckBox;

   Time: TLabel;

   Date: TLabel;

   Ust: TCheckBox;

   buffer_table: TTable;

   Table1: TTable;

   MasterSource: TDataSource;

   Table1Index: TAutoIncField;

   Table1Date_Time: TDateTimeField;

   Table1Numberofchannel: TSmallintField;

   DBGrid1: TDBGrid;

   DataSource1: TDataSource;

   Table2: TTable;

   DBGrid2: TDBGrid;

   Table2Time: TStringField;

   Table2U1: TIntegerField;

   Table2N1: TIntegerField;

   Table2U2: TIntegerField;

   Table2N2: TIntegerField;

   Table2U3: TIntegerField;

   Table2N3: TIntegerField;

   Table2Ms: TIntegerField;

   TeeFunction1: TAverageTeeFunction;

   Series1: TLineSeries;

   procedure Visible_grafClick(Sender: TObject);

   procedure FormActivate(Sender: TObject);

   procedure FormResize(Sender: TObject);

   procedure EnableColumn;

   procedure DisableColumn;

   procedure Number_of_channelChange(Sender: TObject);

   procedure Del_recClick(Sender: TObject);

   procedure new_channel;

   procedure Visible_tabClick(Sender: TObject);

   //procedure CloseClick(Sender: TObject);

  private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Mform: TMform;

 i,j: boolean;  //flag of size

 col: string; //number of visible columns

implementation

uses test1, graf;

{$R *.DFM}

procedure TMform.CloseClick(Sender: TObject);

begin

close;

end;

procedure TMform.Visible_grafClick(Sender: TObject);

begin

if Mform.height=255 then Mform.height:=525

  else Mform.height:=255;

end;

procedure TMform.FormActivate(Sender: TObject);

begin

col:='2'; //trable channel

Mform.height:=255;

Mform.width:=488;

i:=true;

j:=true;

Detail_tableU1.visible:=false;

Detail_tableN1.visible:=false;

Detail_tableU2.visible:=false;

Detail_tableN2.visible:=false;

Detail_tableU3.visible:=false;

Detail_tableN3.visible:=false;

 

...

...

Detail_tableU80.visible:=false;

Detail_tableN80visible:=false;

col:=inttostr(64);

end;

procedure TMform.FormResize(Sender: TObject);

begin

if i=true then

i:=false

else

i:=succ(i);

end;

procedure TMform.DisableColumn;

begin

 case strtoint(col) of

 1:

 begin

 Detail_tableU1.visible:=false;

 Detail_tableN1.visible:=false;

 end;

 2:

 begin

 Detail_tableU2.visible:=false;

 Detail_tableN2.visible:=false;

 end;

 3:

 begin

 Detail_tableU3.visible:=false;

 Detail_tableN3.visible:=false;

...

...

...

80:

 begin

 Detail_tableU80.visible:=false;

 Detail_tableN80.visible:=false;

 end;

 end;

end;

end;

procedure TMform.EnableColumn;

begin

 case strtoint(Number_of_channel.text) of

 1:

 begin

 Detail_tableU1.visible:=true;

 Detail_tableN1.visible:=true;

 end;

 2:

 begin

 Detail_tableU2.visible:=true;

 Detail_tableN2.visible:=true;

 end;

 3:

 begin

 Detail_tableU3.visible:=true;

 Detail_tableN3.visible:=true;

 end;

...

...

...

80:

 begin

 Detail_tableU80.visible:=true;

 Detail_tableN80.visible:=true;

 end;

end;

end;

procedure TMform.Number_of_channelChange(Sender: TObject);

begin

disablecolumn;

enablecolumn;

col:=Number_of_channel.text;

new_channel;

end;

procedure TMform.Del_recClick(Sender: TObject);

begin

  Mast_table.Delete;

end;

procedure TMform.new_channel;

var

d: integer;

s: tlocateoptions;

//u: tfield;

begin

d:=0;

col:=Number_of_channel.text;

Detail_table.first;

buffer_table.first;

inc(d,Mast_table.fieldbyname('Index').AsInteger);

Detail_table.Locate('Index',d,s);

 for d:=1 to 10 do

  begin

  buffer_table.edit;

  buffer_table.Fields[0]:=Detail_table.Fields[2];

  buffer_table.Fields[1]:=Detail_table.Fields[2*(strtoint(col))+2];

  buffer_table.post;

  buffer_table.next;

  Detail_table.next;

  end;

end;

procedure TMform.Visible_tabClick(Sender: TObject);

begin

if Mform.width=488 then Mform.width:=736

  else Mform.width:=488;

end;

procedure TMform.FormActivate(Sender: TObject);

begin

col:='2'; //trable channel

Mform.height:=255;

Mform.width:=488;

i:=true;

j:=true;

Detail_tableU1.visible:=false;

Detail_tableN1.visible:=false;

Detail_tableU2.visible:=false;

Detail_tableN2.visible:=false;

Detail_tableU3.visible:=false;

Detail_tableN3.visible:=false;

 

...

...

Detail_tableU80.visible:=false;

Detail_tableN80visible:=false;

col:=inttostr(64);

end;

procedure TMform.FormResize(Sender: TObject);

begin

if i=true then

i:=false

else

i:=succ(i);

end;

procedure TMform.DisableColumn;

begin

 case strtoint(col) of

 1:

 begin

 Detail_tableU1.visible:=false;

 Detail_tableN1.visible:=false;

 end;

 2:

 begin

 Detail_tableU2.visible:=false;

 Detail_tableN2.visible:=false;

 end;

 3:

 begin

 Detail_tableU3.visible:=false;

 Detail_tableN3.visible:=false;

...

...

...

80:

 begin

 Detail_tableU80.visible:=false;

 Detail_tableN80.visible:=false;

 end;

end.

СПИСОК ЛИТЕРАТУРЫ

  1.  Костюк В. И., Ходаков В. Е. Системы отображения информации и инженерная психология: Киев, Издательское объединение «Вища школа», 1977.
  2.  Шерр С. Электронные дисплеи: Пер. С англ. - М.: Мир, 1982.
  3. Технико-экономическое обоснование дипломных проектов: Учеб. Пособие для втузов / Л. А. Астреина, В. В. Балдесов, В. К. Беклешов и др.; Под ред. В. К. Беклешова.- М.: Высшая школа, 1991.
  4. Технико-экономическое обоснование исследовательских и инженерных решений в дипломных проектах и работах: Учебное пособие для вузов / Минько Э. В., Покровский А. В., Гольтман А. А. И др.; Под ред. Э. В. Минько, А. В. Покровского. - Свердловск: Изд-во Урал. Ун-та, 1990.
  5. Орлик С. В. Секреты Delphi на примерах: - М.: БИНОМ.
  6. Рубенкинг, Нейл Дж. Delphi 3 для «чайников».: Пер. с англ. - К.: Диалектика, 1997.
  7. Использование Delphi 3. Специальное издание. Миллер, Тодд, Пауэл и др.: Пер. с англ. - К.: Диалектика, 1997.
  8. Дюк В. Обработка данных на ПК в примерах - СПб: Питер, 1997.
  9. Колесников А., Пробитюк А. Excel 7.0 для Windows 95: - К.: Торгово-издательское бюро BHV, 1996.
  10. Информатика в статистике: Словарь-справочник. - М.: Финансы и статистика, 1994.

 

А также другие работы, которые могут Вас заинтересовать

53324. Національно-визвольна війна українського народу середини ХVII ст. під проводом Б.Хмельницького 151 KB
  Навчати давати характеристику історичній постаті на прикладі Богдана Хмельницького. Зважаючи на те що до сьогодні збереглося понад півсотні портретів Хмельницького інколи важко зрозуміти якою ж насправді була зовнішність гетьмана. Однак можна стверджувати що найточніше її відтворив на своїй гравюрі гданський майстер Гондіус адже створив він її за життя Богдана Хмельницького. Запитання для учнів: Скажіть будь ласка як на вашу думку така постать могла очолити Національну –визвольну війну відповідь учнів Зараз ми з вами послухаємо...
53325. Хобі. Плани на тиждень 329.5 KB
  My name is Dasha. I am 10. My hobby is drawing. It is an indoor activity. I go the art studio. I attend the art studio three times a week. I think my hobby is interesting. I can draw animals, people, trees. I am going to be an artist. I like my hobby because it is very exciting.
53326. HOBBIES 46.5 KB
  Let`s split into two groups, according to your birthdays (spring-summer, autumn-winter).The pupils whose birthdays are in spring-summer will show different hobbies to those who were born in autumn-winter. Be attentive! You are to give the names of different kinds of activities in turn. (Hobbies are written on the cards: reading, drawing, singing, dancing, cooking, knitting, fishing, writing stories, taking photographs, playing the piano).
53327. Хобі: Дозвілля 45.5 KB
  I like to read about sports and sportsmen. I am reading an interesting story about hockey now. My father likes to read about football. He has got a lot of books about that game. My sister is fond of animals. She likes to read about them. She has got books with funny stories and fables about animals. I gave her a present yesterday: a very big and interesting book about animals at the zoo. There are a lot of funny stories in it. My mother is interested in history. So she spends her free time with a book on history. So I can say reading is my familys hobby.
53328. Вечірки і свята 144 KB
  Розвиваюча: Розвивати фонематичний слух учнів, здатність до імітації, якість вимовних навичок і довготривалу, короткотривалу, слухову пам’ять, слуховий контроль, здатність самостійно планувати мовний вчинок, уяву, здатність до здогадки; вміння логічно, послідовно висловлювати думки ІМ, культуру читання.
53329. Улюблені свята 85 KB
  My name’s Tanya. I live in Ukraine. We celebrate many holidays in our country. I should say I like all of them. Celebrating is my joy. I love greeting guests at my home. I like cooking something tasty. Guests come to share the joy of the day. Sometimes we make presents or surprises for each other. It’s great. Now tell me what holidays you like to celebrate.
53330. Spring holidays 72.5 KB
  (The class is decorated. There is a big wreath of flowers on the wall, it is written - Spring is coming. There are many childrens drawings and placards about spring. On the blackboard there is a map of the travelling over the spring forest. Prince and princess come in.)
53331. Національні свята в США та в Україні 123.54 KB
  The topic of our lesson is National Holidays in Ukraine and in the USA. Holidays are special days of celebration that form an important part of every countrys culture. American and Ukrainian holidays come throughout the year and in all varieties. Today you will learn about the different types of holidays that Ukrainians and Americans celebrate.
53332. Праздники 50 KB
  New Years Day is the most favourite of all holidays in Ukraine. We give New Year presents; children receive their presents under the New Year’s Tree on the morning of the 1st of January. The main folk heroes of this holiday are Father Frost (Did Moroz) and his granddaughter Snigurochka (The Snow Girl).