Описание ПО “Комплекс2” версии 1.0

Автор: Савоченко Роман Алексеевич

на 11 страницах

11/14/02

Днепродзержинск 2002г

Содержание

1.Введение	3

2.Автор	3

3.Цель	4

4.Решения	4

5.Описание функциональности	5

6.Описание конфигуратора	7

7.Описание технологической клавиатуры	11

8.Благодарности	11

Введение

Данное описание призвано предоставить ознакомительную информацию о разработке именуемой “Комплекс2”, в дальнейшем Комплекс2. Комплекс2 создан на базе ПО “Комплекс” версии 1.0 далее Комплекс .

Первая реализация Комплекс1 была выполнена под руководством Тищенко Николая Тарасовича в1989г, на языке “BASIC”. После общесоюзной выставки разработкой заинтересовались ???? . В 1990г к разработке присоединился Касиянчук Николай Васильевич. В 1991г проект был пересмотрен и реализован на языке “С” группой программистов:

Шкода Яков Мефодиевич;

Касиянчук Николай Васильевич;

Бортник Татьяна Ивановна;

Гоцман Людмила Семёновна;

Дудка Андрей Юрьевич;

И еще несколько человек с кем, к сожалению, не имею чести быть знакомым.

В настоящий момент Комплекс развивается и поддерживается программистами фирмы НИП “ДIЯ”:

Шкода Яков Мефодиевич;

Касиянчук Николай Васильевич;

Дудка Андрей Юрьевич;

Бондаренко Анатолий Викторович;

Комплекс является SCADA системой написанной для работы в реальном режиме (RM) операционной системы(ОС) DOS или в эмуляции данного режима как ОС Windows так и других ОС. Комплекс является свободно конфигурируемой системой. Для конфигурации

которого была создана группа программных средств в число которых входит:

pr22	позволяет создавать и редактировать базу данных (БД) параметров;

form	позволяет формировать конфигурацию графических форм, протоколов, сигнализаций;

grad	позволяет расставлять динамику на мнемосхемах;

algoblok	позволяет формировать конфигурацию виртуального контроллера;

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

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

Для увеличения объёма предоставляемой информации и возможности постоянно иметь важную информацию на виду, Бортник Тимофеем было разработано устройство видео мультиплексора(ISA видеокарт), позволяющее подключать до 4 мониторов в систему. Опытный образец видео мультиплексора изготовил Кода Юрий Георгиевич.

Автор

Автором данного проекта и его реализации является Савоченко Роман Алексеевич.

Цель

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

связано с ограниченностью реального режима ОС DOS.

Решения

Для ускорения процесса разработки и максимального сохранения совместимости с предыдущей версией было принято решение создавать Комплек2 для защищенного режима (PM) ОС DOS. В качестве компиляторы был выбран компилятор фирмы Sybase - Watcom v11.0c. Решение в выборе данного компилятора базировались на следующих критериях:

Необходимость прозрачной поддержки DOS32 (DPMI) в лице существующих DOS расширителей:

DOS4G, DOS4GW;

PMODEW;

DOS32A;

ZRDX;

Совместимость с компилятором использующимся для сборки Комплекс (MS C 7.0)

Поддержка современных процессоров.

Кроссплатформенность.

Наличие множества примеров и реализованных на нём проектов.

Вероятность появления открытой реализации этого компилятора (в 2003г вышел OpenWatcom1.0).

Предполагая дальнейшее расширение функциональности проекта, было принято решение создавать новый, гибкий и интегрирующий в себя все ранее созданные программы конфигурирования. Поскольку предполагалось, что Комплекс2 должен работать как в ОС DOS так и в режиме эмуляции DOS других ОС, то необходима была ООП библиотека с мощным TUI (text user interface). Для этих целей прекрасно подходила библиотека TV от фирмы Borland, которая к тому времени была открыта и портирована под компилятор Watcom C/C++.

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

Описание функциональности

В рамках проекта были выполнены задачи:

Для обеспечения работы Комплекс2 в защищенном режиме(PM) была портирована библиотека TCTASK, которая используется в Комплекс для обеспечения псевдо многозадачности (невытесняющей). В процессе портирования удалось расширить функциональность:

увеличено максимально возможное количество запускаемых процессов;

снято ограничение с размера стека

стек задач формируется отдельно от основного стека, путём выделения куска памяти указанного размера функцией malloc;

Благодаря работе в PM(protect mode) появилась возможность работать с устройствами размещенными на PCI шине и другими устройствами отражающими свою память в область старших адресов (за 2 Gb);

Пересмотрен алгоритм обработки многодисплэйности, а также добавлена поддержка нескольких PCI видеоконтроллеров (требует подбора);

Разработана новая версия клавиатуры и добавлена её поддержка;

Добавлена поддержка альтернативной раскладки клавиатуры (при удержании Shift);

Добавлена поддержка раскладки клавиатуры ноутбука (при удержании Shift);

Увеличен размер доступной оперативной памяти до размера физически доступной памяти;

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

Разработан синтез речи методом фонемного синтеза с поддержкой Русского и Украинского языков;

Создана гибкая и мощная библиотека работы с БД типа DBase, которая используется как в Комплекс2, так и в его конфигураторе. Библиотека разработана с использованием принципов ООП и является простой в использовании;

Добавлена тщательная проверка входной БД при запуске Комплекс2, а также выполнена однозначная привязка всей БД к шифру параметра;

Добавлена функция печати экрана в графический PCX-файл;

Добавлена корректная обработка исключительных ситуаций при манипуляции с вещественными числами;

Добавлен протокол событий, в который помещаются сообщения всех отклонений от нормы;

Добавлена возможность опционального (без перекомпиляции) изменения конфигурации:

выбор количества доступных дисплеев (1-4);

выбор типа клавиатуры;

подключение файла путей. Содержит описания путей ко всем необходимым программе файлам;

включение генерации архивов для SQL;

установка периода архивирования мгновенных параметров (1...9сек);

установка длины архива мгновенных (в днях) ;

установка длины месячного архива (в месяцах);

установка периода системного таймера(для задач с высокой частотой и малыми интервалами ожиданий)

Расширены графические формы:

в группе контуров и графиков добавлена возможность произвольного заполнения группы;

количество графиков в группе графиков увеличено до 8;

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

добавлено непрекращающееся (до квитации) мигание аналоговых параметров на мнемосхеме и в сводной таблице;

добавлено мигание объектов сигнализации;

заменено библиотечное окрашивание полигонов более безопасным окрашиванием собственной реализации (система не рушится при случайных разрывах заливаемых границ);

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

увеличено, до 16, число быстро доступных элементов управления на мнемосхеме через альтернативную раскладку;

добавлено отображение направления недостоверности на мнемосхеме;

количество групп контуров, графиков, мнемосхем в объекте сигнализации расширено до 127;

добавлен расширенный кадр управлением алгоблоками;

Полностью переработан виртуальный контроллер:

Все алгоблоки оптимизированы по времени;

Алгоблок регулятора имитирует регулятор в контроллерах Siemens;

Количество входов и коэффициентов у алгоблоков сделано плавающим и может задаваться в диапазоне 0...127;

Каждый вход и коэффициент именован именем длиной не более 127 символов;

Добавлен тип алгоблока плавающий, который может описываться произвольным образом на собственном языке схожим с прямой математической записью в одну строку. В алгоблоке можно манипулировать тремя типами операндов: константа, переменная выхода, коэффициенты, обычные переменные. В алгоблоке поддерживаются следующие операторы: ^, *, / , +, -, >, < , ~, =, &, |. Реализованы функции: abs, max, min, exp, ln, cos,sin, rnd, if, msg, brk, frq, pi. Длина описания одного алгоблока не должна превышать 32768 байта включая комментарии.

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

Добавлена полная поддержка контроллеров фирмы Siemens S7-300 и S7-400, на базе коммуникационного процессора фирмы Hilsher CIF50PB и драйверов этой фирмы для ОС Linux портированых в ОС DOS32.

Добавлена частичная поддержка контроллера UMC-800

Добавлена зона нечувствительности используемая при сигнализации;

Описание конфигуратора

Конфигуратор выполнен на базе библиотеки TV(turbo vision), являющейся TUI разработкой фирмы Borland написанной на языке C++ по принципам ООП. Собирается конфигуратор компилятором Watcom. Поскольку конфигуратор скомпилирован для ОС DOS32 ему доступна вся физическая оперативная память. Кроме того библиотека позволяет выполнять манипуляции как только с клавиатуры так и с использованием манипулятора мыши. На момент версии 1.0 конфигуратор выполняет функции:

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

добавить, вставить;

удалить, удалять группу;

переименовать;

менять порядок в списке;

Производит операции над параметрами. При этом формат параметров для каждого контроллера хранится в том-же конфигурационном файле. При удалении/переименовании параметров выполняется контроль за присутствием этих параметров в других БД. Операции над контроллерами:

добавить, вставить;

удалить, удалить группу;

переименовать;

перенести в другой контроллер, перенести группу ;

поиск;

поиск следующего;

менять порядок в списке;

Открывает сразу несколько окон конфигурации, а также окна другого проекта путём смены текущего каталога.

Выполняет операции над объектами сигнализации:

добавлять, вставлять, удалять, переименовывать объекты сигнализации (а также групповые операции);

менять порядок в списке объектов сигнализации;

подключать дискретный параметр отвечающий за состояние сигнализации объекта сигнализации;

добавлять, вставлять, удалять, заменять мнемосхемы (а также групповые операции);

менять порядок в списке мнемосхем;

добавлять, вставлять, удалять, заменять группы графиков (а также групповые операции);

менять порядок в списке группы графиков;

добавлять, вставлять, удалять, заменять группы контуров (а также групповые операции);

менять порядок в списке группы контуров;

Выполняет операции над группами контуров:

добавлять, вставлять, удалять, переименовывать группы контуров (а также групповые операции);

менять порядок в групп контуров;

устанавливать/редактировать имя группы контуров;

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

Выполняет операции над группами графиков:

добавлять, вставлять, удалять, переименовывать группы графиков (а также групповые операции);

менять порядок в групп графиков;

устанавливать/редактировать имя группы графиков;

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

устанавливать/редактировать границы отображения параметра в группе графиков;

Выполняет операции над обзорными кадрами:

добавлять, вставлять, удалять, переименовывать обзорные кадры (а также групповые операции);

менять порядок обзорных кадров;

установка количества строк и столбцов;

добавлять, удалять, копировать параметры в доступных позициях выбранного обзорного кадра;

Выполняет операции над сводными таблицами:

добавлять, вставлять, удалять, переименовывать сводные таблицы (а также групповые операции);

менять порядок сводных таблиц;

установка количества строк и столбцов;

редактировать имена окон;

редактировать имена параметров;

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

Выполняет операции над голосовыми сообщениями:

добавлять, вставлять, удалять, переименовывать голосовые сообщения (а также групповые операции);

менять порядок голосовых сообщений;

установка приоритета сообщения;

выбор языка сообщения;

редактирование текста сообщения и текста рекомендации;

подключение звуковых файлов из библиотеки звуковых файлов;

проговаривание набранного сообщения;

наговаривание требуемого сообщения (не реализовано);

Выполняет операции над мнемосхемами:

добавлять, вставлять, удалять, переименовывать мнемосхемы (а также групповые операции);

менять порядок мнемосхем;

предварительный/тестовый просмотр выбранной мнемосхемы;

добавлять, вставлять, удалять, заменять статику выбранной мнемосхемы (а также групповые операции);

менять порядок статики выбранной мнемосхемы;

редактирование параметров выбранной статики;

добавлять, вставлять, удалять, заменять параметры динамики выбранной мнемосхемы (а также групповые операции);

менять порядок параметров динамики выбранной мнемосхемы;

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

Выбор позиции параметра динамики на экране, с отображением мнемосхемы в целом, используя мышь или клавиатуру;

Выполняет операции над формулами алгоблоков:

Добавлять, вставлять, удалять, переименовывать формулы (а также групповые операции);

Менять порядок формул;

Копировать формулы из других проектов(библиотек);

Выбирать тип редактируемых формул или фиксированые формулы или гибкие (по умолчанию доступны только гибкие а выбор фиксированных скрыт за комбинацией клавиш Ctrl-F10)

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

Менять порядок входов и коэффициентов с соответствующей перестановкой параметров в описание формулы;

Редактировать описание формулы с проверкой синтаксиса;

Выполняет операции над алгоблоками:

Добавлять, вставлять, удалять, заменять алгоблоки (а также групповые операции);

Менять порядок алгоблоков;

Выполнять поиск по:

имени алгоблока;

переменной используемой в алгоблоке;

типу алгоблока(привязанной формуле);

Выполнять поиск следующего алгоблока по ранее описанным признакам;

Редактировать наименование алгоблока;

Подключать, очищать параметры ко входам алгоблока;

Редактировать значения коэффициентов алгоблоков;

Менять тип(формулу) алгоблока;

Контролировать правильность выбора формулы в поле обзора формулы;

Выполняет операции с библиотеками:

Добавлять, вставлять, удалять, извлекать рисунки из библиотеки рисунков (а также групповые операции);

Менять порядок рисунков в библиотеке рисунков;

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

Добавлять, вставлять, удалять, извлекать звуковые файлы из библиотеки звуков (а также групповые операции);

Менять порядок звуков в библиотеке звуков;

Выполняет операции общего контроля БД с возможностью автоматического устранения дефектов и полного документирования процесса проверки;

Позволяет изменять текущую директорию (для открытия БД другого проекта);

Позволяет просматривать протокол сообщений программы конфигурирования;

Контролирует размер доступной в системе памяти;

Описание технологической клавиатуры

Технологическая клавиатура представляет собой плёночную маску с клавиатурой 7x13 клавиш и 7x6 светодиодов. В клавиатуру добавлены следующие функции:

усовершенствована и упрощена схема контроллера клавиатуры;

генерация кода нажатия и кода отжатия;

возможность изменять коды, генерируемые при нажатии - путём перепрограммирования флеш микросхемы типа AT89С4051 фирмы ATMEL;

усовершенствован алгоритм управления светодиодами;

добавлен ключ и проверка его контроллером клавиатуры;

Благодарности

Хочу поблагодарить команду поддержки Комплек за информационную и консультационную помощь на начальной стадии проекта.

Особенно хотелось поблагодарить директора фирмы НИП “ДIЯ” Тищенко Николая Тарасовича за постоянную поддержку проекта.

11

2002-11-14T10:28:53