Учебная работа. Реферат: Разработка программы- тренажера Управление электросетями
Содержание
ВВЕДЕНИЕ.. 7
Глава 1. анализ предметной области.. 8
1. 1. Имеющиеся программные комплексы.. 8
1. 2. Постановка задач на проектирование. 12
Глава 2. Проектирование программного комплекса. 15
2. 1. Разработка структурной схемы.. 16
2. 2. Разработка многофункциональной схемы.. 16
2. 2. 1. Блок управления схемой.. 20
2. 2. 2. Блок анализа текущих переключений.. 21
2. 2. 3. Интерпретатор сценариев. 22
2. 2. 4. Блок результатов. 23
Глава 3. Программная реализация проекта. 24
3. 1. Операционная система. 24
3. 2. Выбор среды программирования. 24
3. 3. Функционирование программки.. 28
3. 4. Входная информация. 31
3. 5. Неизменная информация. 31
3. 6. Выходная информация. 32
3. 7. инструкция для юзера. 33
ЗАКЛЮЧЕНИЕ.. 35
СПИСОК ЛИТЕРАТУРЫ… 36
приложение А. Сценарии решения задач. 37
Приложение Б. Листинг основного модуля программки.. 43
В
ВЕДЕНИЕ
С каждым деньком возрастает число индивидуальных компов (ПК ), применяемых человеком. Вследствие этого вырастает и дополняется круг программного обеспечения применяемого при работе с ПК . Для решения задач производственно-технологического и организационно-экономического управления предприятием внедряются сложные автоматические системы управления хозяйственной деятельностью. Немаловажную роль при всем этом играет процесс подготовки эксплуатационного персонала. Для его облегчения и упрощения создаются разные обучающие программки.
неувязка неопасной и действенной эксплуатации сложного энергетического оборудования в особенности обострилась в критериях текучести кадров как на отдельных предприятиях , так и в целом по топливно-энергетическому комплексу. Выросли общий травматизм и случаи со смертельным финалом. одна из основных обстоятельств травматизма на предприятиях электроэнергетики несовершенство системы подготовки и переподготовки работников отрасли. Отыскать действенные пути подготовки обученных профессионалов – означает заложить базу высокопроизводительной и неопасной работы. один из их -использование в обучении тренажеров.
В данной работе представлена Идеология построения схожей программки – тренажера.
Глава 1.
анализ предметной области и постановка задач на проектирование
С момента возникновения индивидуального компа (ПК ) и его практического использования появилась сразу неувязка получения важного эффекта от компьютеризации процесса обучения. Раз в год возникают сотки компьютерных обучающих программ.
1-ые, самые ранешние, представляли собой только электрические версии печатных изданий и содержали лишь текстовую информацию. Достоинством таковых систем в сопоставлении с картонными аналогами, по существу, являлась только Интеграция инфы.
Равномерно, с развитием вычислительной техники, их стали сменять системы, которыми можно было воспользоваться и как справочниками, другими словами поисковые системы. Дальше арсенал автоматических обучающих систем дополняется статической графикой, компонентами мультимедиа (звук и видео), компьютерной анимацией.
Таковым образом системы развивались в области информационных баз познаний, поддерживающих уже не только лишь текстовое, да и аудио- видео-воздействие на обучаемого.
Колоссальный скачок был изготовлен и в сфере развития систем контроля, ведь без их, по существу, обучающая система не достаточно чем различается от справочного пособия. Итак, средства контроля обеспечивают ввод ответа обучаемого, обработку приобретенной инфы и выдачу управляющего действия (к примеру, вы вводите ответ, а система одобряет либо отторгает его).
Следуя далее по ступеням интеллектуализации обучающих систем, можно увидеть, как плавненько механизмы контроля перетекают в механизмы анализа действий обучающегося. Он дозволяет не только лишь надзирать процесс обучения, да и описывает последующую стратегию диалога оператора и ПК .
1. 1.
Имеющиеся программные комплексы
Тренажер оперативных переключений ОПТИМЭС» – Оперативно-Переключательный Тренажер с Умственной Моделью электронной Сети
Тренажер ОПТИМЭС работает в операционных средах WINDOWS 3.1, WINDOWS 95 и WINDOWS 98 и может эксплуатироваться на любом компе, на котором установлена какая-либо из их. Программный комплекс тренажера включает 3 многофункциональные составляющие:
Компонента Конструктор схем включает редактор коммутационных схем и функции их разметки, реализующие построение в базе данных модели первичных и вторичных цепей. =Конструктор схем° содержит также функции управления библиотекой схем.
Компонента Задания обеспечивает работу инструктора по подготовке занятий и анализу их результатов. Она включает функции задания типа цели и мотивированного элемента тренировки, установку исходных положений коммутационных аппаратов и РЗА, задание КЗ и дефектов. Для каждой схемы может производиться персональная настройка общих правил и местных критерий, также значений штрафа за нарушения правил.
Компонента Тренировка реализует выполнение тренируемым операций по схеме с контролем их правилами переключений. Практика указывает, что освоение спецом по переключениям программки Тренировка просит не наиболее 15 — 20 минут, если он знаком с общими приемами работы под WINDOWS.
2. Тренажер оперативных переключений КОРВИН
(КОммутационно-Режимный тренажер для WINdows), включающая расчет установившегося режима с автоматическим преобразованием расчетной схемы при всех коммутациях [2]. Расчет установившегося режима делается модулем КУРС разработки ЦДУ. Результаты расчета — перетоки активной и реактивной мощности и ток, также напряжения в узлах, — контролируются на нарушения данных режимных пределов по веткам и узлам и показываются конкретно на схеме и в форме таблиц. Поддерживается разделение схемы на хоть какое число изолированных районов. Подготовка начальных данных расчетной схемы очень автоматизирована. Многофункциональная компонента потокораспределений, входящая в состав тренажера КОРВИН, содержит:
— функции автоматического построения графа узлов и веток расчетной схемы методом стягивания графа коммутационной модели;
— редактор начальных значений электронных характеристик для расчета и режимных пределов по узлам и веткам;
— функции тестирования и исследования режима при всех коммутациях без ограничений со стороны правил переключений.
2. Тренажер оперативных переключений КОРВИН 3 – трехуровневый тренажер оперативных переключений с расчетом потокораспределения и расширенной моделью РЗА. Верхний уровень модели в тренажере «КОРВИН-3» включает схему энергообъектов и соединяющих их ВЛ. Число энергообъектов в модели одной электросети — до 150. Средний уровень модели реализует схему соединений первичных цепей и логические ограничения на коммутации в их. На этом уровне любой энергообъект имеет свою схему, которая средством линий электропередачи на верхнем уровне модели соединяется со схемами остальных энергообъектов. Схема 1-го энергообъекта может заходить сразу в несколько схем электросетей, обхватывающих огромную либо наименьшую местность. Среднее положение меж верхним и средним уровнями занимает схема замещения для расчета установившегося режима. Нижний уровень воспроизводит состояния устройств РЗА и правила их переключения с учетом положения коммутационных аппаратов. С каждым устройством первичных цепей связывается набор устройств РЗА.
Но, все рассмотренные системы имеют общие недочеты:
1. 2. Постановка задач на проектирование
основное направление деятель ЦЭС – обеспечение электроэнергией производств и цехов ОАО «Северсталь». Получая электронную энергию от системы по воздушным линиям напряжением 110, 220 кВ и преобразуя на основных понизительных подстанциях (ГПП) до уровня 35, 10 и 6 кВ, цех электроснабжения по воздушным и кабельным линиям распределяет ее пользователям. В истинное время девять ГПП обеспечивают ОАО «Северсталь» и одна (ГПП-9) – город. От ТЭЦ-1 и ТЭЦ-2 ОАО «Северсталь» электроэнергия конкретно передается напряжением 10 кВ по кабельным линиям.
Для управления схемой электроснабжения ОАО «Северсталь» в ЦЭС скооперировано круглосуточное дежурство оперативного персонала, деяния которого подчинены диспетчеру цеха.
Система оперативного управления делает последующие задачки:
ведение требуемого режима работы, в том числе данного энергосистемой;
Создание переключений в электроустановках;
— ликвидация аварийных нарушений и восстановление требуемого режима энергопотребления;
— подготовка к производству ремонтных работ в электроустановках.
Переключения в электронных схемах распределительных устройств подстанций по распоряжению диспетчера цеха производит оперативный персонал, конкретно обслуживающий электроустановки цеха.
В связи со сложностью обслуживаемого оборудования, также высочайшей цены ошибки персонала становится животрепещущим вопросец высококачественной подготовки оперативного персонала, которая длится, зависимо от образования, от 3 до 5 месяцев. В этот период огромное
При восстановлении обычного электроснабжения эксплуатационный персонал управляется инструкциями, в каких очередность его действий связана с нравом появившейся ситуации (объемом отключений, видом работавших устройств и др.).
Строгая очередность действий персонала в каждой из вероятных ситуаций дозволяет просто их промоделировать и употреблять подобающую модель для занятий персонала.
Проведение занятий в самих системах электроснабжения не нужно по ряду обстоятельств:
· перебои в подаче электроэнергии
· возможность сотворения аварийных ситуаций
· завышенная опасность поражения электронным током и др.
Компьютерный тренажер избавляет эти трудности.
А именно, анализ инструкций персонала для одной из работающих трансформаторных подстанций показал, что для имеющихся на ней устройств насчитывается ряд обычных ситуаций, опосля которых персонал должен действовать по верно определенному сценарию производства оперативных переключений.
Тренажер должен владеть последующими функциями:
— тpениpовка;
— проведение экзамена;
— формирование протокола переключений;
— создание сценария тренировки;
Тpениpовка — основная функция. Во время тренировки обучаемый должен перевести электроустановку в состояние, данное по условию задачки. В процессе тpениpовки обучаемому обязана пpедоставляться возможность производить пеpеключения на схеме, при помощи диалога, организуемого меж обучаемым и программкой.
Проведение экзамена основывается на решении задачки, при отсутствии доступа к советам по производству переключений и формированию оценки.
По окончании выполнения поставленных критерий задачки обязана выставляться оценка и составляться пpотокол переключений.
Создание сценаpия тpениpовки — это функция, котоpая является обслуживающей по отношению к тренажеру и употребляется инстpуктоpом для фоpмиpования новейших тpениpовок. В пpоцессе сотворения тpениpовки инстpуктоp имеет возможность задать:
— имя и фоpмулиpовку задачки для тpениpовки;
— начальное состояние объекта
— эталонный путь pешения задачки;
— конечное состояние схемы сети по данной задачке.
Таковым образом, разрабатываемая система обязана отвечать последующим требованиям:
Обеспечить интуитивно-понятный графический интерфейс, как для инструктора, так и для тренируемого;
Ввести механизм производства оперативных переключений
Обеспечить возможность наращивания количества задач за счет использования средств инструктора, которые могут быть добавочно написаны;
Обеспечить проведение занятий и сдачу экзамена с протоколированием оценок;
программка обязана иметь низкие системные требования.
Глава 2. Проектирование
программного комплекса
Разрабатываемая программка-тренажер, в согласовании с предъявленными требованиями, обязана наглядно показывать однолинейные схемы, обеспечивать оперативные переключения коммутационных аппаратов, приведенных на схеме в согласовании с условными обозначениями, направлять деяния тренируемого, используя аннотации по оперативным переключениям
Для реализации поставленных требований, нужно создать механизм, отрабатывающий оперативные переключения. Основная цель, преследуемая при всем этом – это упрощение управления коммутационными аппаратами со стороны юзера.
Более обычной метод – это внедрение указателя мыши. Каждое переключение (нажатие клавиши мыши), производимое юзером, обязано приводить к изменению состояния коммутационного аппарата. Потому нужно предугадать свойство, описывающее его текущее состояние (включен/отключен). Наличие этого характеристики, обосновано также необходимостью установки исходного состояния коммутационных аппаратов при инициализации задачки.
Прорисовка коммутационного аппарата на схеме в режиме исходной установки осуществляется присваиванием этому свойству определенного значения, к примеру «ересь» либо «правда» и оборотный процесс, когда по нажатию клавиши мыши, состояние изменяется на обратное и осуществляется прорисовка.
Для решения задач принципиально сопоставить свойство коммутационного аппарата, в которое переводит его юзер и состояние предписываемое аннотацией. На основании сопоставления этих значений можно выстроить диалог, направляющий деяния юзера.
2.1. Разработка структурной схемы
Рис. 2.1. Структурная схема программы-тренажера
Для описания структуры разрабатываемого программного комплекса его можно поделить на два главных блока:
Блок, обеспечивающий работу юзера со схемой;
Блок работы с файлами сценариев.
1-ый блок, с учетом поставленных требований перед программным комплексом, производит регистрацию юзера, содержит систему для проведения занятий и экзамена, систему помощи, систему формирования отчетов по проделанной юзером работе.
2-ой блок программного комплекса является средством инструктора и служит для сотворения и редактирования файлов сценариев.
“Опции” — блок, созданный для указания исходного и конечного состояния коммутационных аппаратов электроустановки
“Сценарий” – блок, созданный для формирования задач инструктором эталонной последовательности оперативных переключений инструктором.
2.2. Разработка функци
ональной схемы
Начальной информацией для разработки является однолинейная схема электроснабжения подстанции и аннотации по оперативным переключениям.
Перед разрабатываемой программкой поставлен ряд требований, на основании которых можно прийти к выводу о том, что проектируемая система обязана воплотить последующие функции:
· отображение многофункциональной схемы подстанции с внедрением средств отображения инфы;
· обеспечение переключения коммутационных аппаратов представленных на однолинейной схеме;
· организация взаимодействия производимых переключений и предписаний аннотации.
Потому что аннотации по производству переключений представляют собой последовательность операций, целенаправлено употреблять файлы для их хранения, это обеспечит облегченный доступ к их содержимому, возможность сотворения новейших сценариев и редактирование, в случае обнаружения ошибки, уже имеющихся.
Для организации диалога при решении определенной задачки по производству переключений нужно, делая упор на предписание аннотации, направлять деяния производимые оператором на схеме. При неверных действиях нужно информировать юзера о этом и давать советы для правильного решения поставленной задачки. Делая упор на вышеупомянутое, разрабатываемый программный комплекс быть может представлен совокупой последующих блоков:
Блок управления схемой;
Блок анализа текущих переключений;
Блок результатов;
Интерпретатор сценариев;
1. Блок управления схемой служит для установки положения коммутационных аппаратов при инициализации определенного режима и обеспечивает их зрительное изменение при производстве переключений.
2. Блок анализа текущих переключений предназначен для определения корректности производства текущих переключений и формирования протокола переключений.
3. Блок результатов, основываясь на инфы поступающей от интерпретатора сценариев и блока анализа текущих переключений, организует диалог, направляющий деяния оператора по производству переключений и предназначен для оценки проведенных операций по оперативным переключениям.
4. Интерпретатор сценариев, главный задачей которого является работа с файлами сценариев, сформировывает последовательности операций для производства переключений, снабжает информацией блок управления схемой о исходном состоянии коммутационных аппаратов.
2. 2. 1. Блок управления схемой
Для реализации функций блока управления схемой нужно:
— установить коммутационные аппараты в положение соответственное избранному режиму;
— при выбирании юзером коммутационного аппарата на схеме обеспечить его переключение в обратное состояние.
Метод, реализующий функции блока управления схемой, представлен на рис. 3.3.1.
Рис. 3.3.1. метод обработки оперативных переключений
2. 2. 2. Блок анализа текущих переключений
Для определения корректности произведенного переключения нужно сравнить избранный юзером объект, подлежащий переключению с объектом предписанным аннотацией, в случае совпадения перевести объект в необходимое состояние. При всем этом употребляется метод, приведенный на рис. 3.3.2
Рис 2.2.2 метод анализа текущих переключений
2. 2. 3. Интерпретатор сценариев
Основное назначение – формирование последовательности переключений для избранной задачки и передача инфы о исходном положении коммутационных аппаратов. Эти сведения находятся в файле сценария решения поставленной задачки, который и подвергается обработке. Для этого употребляется метод загрузки, приведенный на рис. 3.3.3.
Рис. 2.2.3. метод загрузки сценариев.
2. 2. 4. Блок результатов
При организации диалога меж системой и юзером принципиально учесть начальные последовательности производства переключений, сформированные интерпретатором сценариев и информацию о текущих переключениях, производимых юзером. За каждое действие выходящее за рамки сценария решения задачки тренируемый получает штрафной балл. В режиме тренировки предусматривается возможность направлять деяния обучаемого, за счет использования помощи. При окончании выполнения задачки юзеру сообщается о количестве набранных штрафных баллов и количестве воззваний к подсказке. метод подсчета неверных действий со стороны юзера приведен на рис 3.3.4.
Рис 2.2.4. метод определения оценки
В режиме проведения экзамена юзеру запирается доступ к подсказке, а оценка формируется методом сопоставления исходного и конечного состояния коммутационных аппаратов.
Глава 3.
Программная реализация проекта
3. 1.
Операционная система
программка разрабатывалась под управлением операционной системы Windows 95. Операционная система (ОС) является неотъемлемой частью ПЭВМ. ОС обеспечивает управление всеми аппаратными компонентами и поддержку работы программ юзера, предоставляя ему возможность общего управления машинкой. Можно выделить ряд преимуществ для разработки программного обеспечения под управлением ОС Windows 95:
· Графический пользовательский интерфейс;
· Независимость от наружных устройств;
· Доступность всего размера оперативки;
· Поддержка масштабируемых шрифтов.
Посреди недочетов можно отметить:
· Высочайшие требования к аппаратному обеспечению;
· Наименее действенная работа в приложениях, где критичный параметр – время по сопоставлению с ОС MS-DOS.
Потому что разрабатываемая программка не имеет твердых требований к быстродействию аппаратного комплекса, то обозначенные недочеты не окажут воздействия на ее функционирование. Основное преимущество для сотворения программки – тренажера на базе ОС Windows 95 – графический пользовательский интерфейс.
3. 2. Выбор среды программирования
Крайним достижением в технике сотворения программ стали показавшиеся относительно не так давно зрительные средства программирования и системы резвой разработки (RapidApplication Development, RAD).
Стремительная разработка приложений (RAD — Rapid Application Development) свойственна для новейшего поколения систем программирования. Первым языком в мире наиболее обычного и приятного интерфейса была среда Visual Basic (VB). Новейший стиль взаимодействия с компом дозволяет разрабу программки наглядно конструировать пользовательский интерфейс при помощи мыши. Но VB сам по для себя не содействует отличному проектированию. Этот язык испытывает недочет в механизмах, обеспечивающих не плохое структурирование, компактность и прозрачность программ. В нем отсутствует строгость объектно нацеленного языка. Delphi — это последующий шаг в развитии среды RAD, это массивное и комфортное средство сотворения 32-битных приложений для Windows 95 и Windows NT.
Теория Delphi была реализована в конце 1994 года, когда вышла 1-ая версия среды разработки. В базу этого программного продукта легли концепции объектно-ориентированного программирования на базе языка Object Pascal и зрительного подхода к построению приложений.
Delphi соединил несколько важных технологий:
1. Высокопроизводительный компилятор в машинный код.
Компилятор, интегрированный в Delphi, обеспечивает высшую производительность, нужную для построения приложений в архитектуре “клиент-”. Этот компилятор в истинное время является самым резвым в мире, его скорость компиляции составляет выше 120 тыщ строк за минуту на компе 486DX33. Он дает легкость разработки и резвое время проверки готового программного блока. Не считая того, Delphi обеспечивает резвую разработку, без необходимости писать вставки на Си либо ручного написания кода (хотя это может быть).
2. Объектно-ориентированная модель компонент.
Главный упор данной нам модели в Delphi делается на наивысшем ре-использовании кода. Это дозволяет разрабам строить приложения очень стремительно из заблаговременно приготовленных объектов, также дает им возможность создавать свои собственные объекты для среды Delphi. В обычную поставку Delphi входят главные объекты, которые образуют успешно подобранную иерархию из наиболее чем 270 базисных классов. Но если возникнет необходимость в решении некий специфичной трудности на Delphi, то следует просмотреть перечень свободно распространяемых либо коммерческих компонент, разработанных третьими фирмами. На Delphi можно идиентично отлично писать как приложения к корпоративным базам данных, так и, например, игровые программки. Почти во всем это разъясняется тем, что обычно в среде Windows было довольно трудно реализовывать пользовательский интерфейс. Событийная модель в Windows постоянно была сложна для осознания и отладки. Но конкретно разработка интерфейса в Delphi является самой обычной задачей для программера.
3. Зрительное (а, как следует, и высокоскоростное) построение приложений из программных прототипов.
Среда Delphi содержит в себе полный набор зрительных инструментов для высокоскоростной разработки приложений (RAD — rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL — библиотека зрительных компонент, содержит в себе обычные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами. Delphi 5, в отличие от прошлых версий, дозволяет создавать динамические массивы, длина которых определяется во время выполнения программки.
Но это не означает, что в Delphi могут работать лишь мастера. Среда разработки сохранила простоту и наглядность процесса сотворения приложений, основанного на использовании технологий зрительного программирования. Компонентный подход дозволяет просто и стремительно создавать не только лишь интерфейс программ, да и довольно сложные механизмы доступа к данным, также повторять и тиражировать удачные программные решения.
3. 3. Функционирование
программки
1. программка switchman.exe:
Размер, занимаемый на твердом диске 874 кб
Размер оперативки 3440 кб
2. Условия выполнения программки
Операционная среда Windows 95 либо выше
Разрешение экрана (рекомендуется) 800X600 pixels
Свободное пространство на диске (минимум) 895 кБ для пуска и не наименее 1 мБ для сотворения файлов сценариев.
Никакого добавочно установленного программного обеспечения и библиотек не требуется.
Модель первичных цепей, реализованная в тренажере, дозволяет тренируемому производить операции переключения коммутационных аппаратов. Управление состоянием модели осуществляется при помощи указателя мыши, что дозволяет работать с ней неквалифицированному юзеру. Выполнение тренировки быть может досрочно прервано юзером на любом шаге, если он хочет возвратиться к началу выполнения задания. Опосля окончания выполнения задания в режиме тренировки на экран выдаются ее результаты: число воззваний к подсказке и число изготовленных ошибок. В режиме экзамена выставляется оценка.
Графический интерфейс построен таковым образом, чтоб юзеру было, как можно удобнее и понятней работать с программкой. Все нужные функции доступны через основное меню. Основное меню — это особая панель инструментов, расположенная в верхней части экрана, которая содержит такие пункты меню, как: файл, Режим работы, Юзер, Результаты.
Через эти меню стают доступны главные функции программки.
Рис 3. 3. Пользовательский интерфейс программки.
Пользовательский интерфейс программки делится на три области:
Область управления, на которой размещены меню и все элементы нужные для работы тренажера.
Область, на которой отображается схема.
Область управления задачками.
метод функционирования основного модуля программки приведен на рис 3. 4.
Рис 3.4. метод функционирования основного модуля программки
3. 4. Входная информация
Потому что программка работает со сценариями решения задач, то входными данными являются файлы, в которые входят тексты вопросцев и наборы действий, задающие эталоны правильных ответов:
Таблица 1
Формулировка задачки
Вывод в ремонт ВЛ 220 кВ «Агломерат 1»
Изначальное положение коммутационных аппаратов
Обычный режим
Конечное положение коммутационных аппаратов
Режим № 2
№ операции
объект схемы
Состояние переключателя
Комментарий
01
ABR1
0
Вывести АВР 1,2
02
CMB1
1
Включить СМВ1 яч.9
03
MBB1
0
Отключить МВ ввода В1 яч. 5
04
TRZ1
0
Отключить ТР1 яч. 5
05
SRZ1
0
Отключить ШР1 яч. 5
06
ABR1
0
Вывести АВР 3,4
07
CMB1
1
Включить СМВ2 яч.20
08
MBB3
0
Отключить МВ ввода В3 яч. 25
09
TRZ3
0
Отключить ТР3 яч. 25
10
SRZ3
0
Отключить ШР3 яч. 25
11
PBB2
0
Отключить ВВ 220 кВ яч 12
12
ODT3
0
Отключить ОД 220 кВ Т3
3. 5. Неизменная информация
В качестве неизменной инфы употребляется принципная схема участка электроснабжения, изображенная на рис. 3.5.
Рис. 3.5. Однолинейная схема электроснабжения
3. 6. Выходная информация
Выходные данные — протокол тренировки или протокол экзамена.
П Р О Т О К О Л Э К З А М Е Н А
————————————-
Фамилия: Егоров
Имя: Павел
Отчество: Николаевич.
Дата сдачи экзамена: 27.06.2001 г.
задачка : Вывод в ремонт ВЛ «Агломерат 1».
——————————————————-
АВР 1,2 выведено.
Ошибка, Включить СМВ 1 яч. 9
. . .
Оценка: Удовлетворительно
3. 7. инструкция для юзера
1. Вхождение в курс и регистрация обучаемого.
1.1. Запустите файл Switchman.exe.
1.2. Опосля пуска файла Switchman.exe введите с клавиатуры Ваши Фамилию, имя, Отчество и нажмите клавишу «ОК».
1.3. Изберите режим работы и задачку согласно п. 2.2. и нажмите клавишу «Начать».
2. Решение задачки.
Решение задачки начинается с предъявления обучаемому схемы п/станции. Делая упор на помощь тренажера, юзер должен перевести коммутационное оборудование в состояние, сформулированное в заглавии задачки. Правила работы на компе при решении задач даны в п.п. 2.1. – 2.3.
2.1. Общее правило по работе с коммутационным оборудованием:
Курсор «мыши» — «стрелка» при подводе к коммутационному аппарату, который можно переключить должен перейти в мишень — «пальчик».
2.2. Выбор задач из перечня.
Для выбора задачки, подведите курсор «мыши» к требуемой задачке, и или нажмите левую кнопку «мыши» и клавишу «Начать», или два раза щелкните по наименованию задачки.
2.3. Создание оперативных переключений
Изберите согласно п. 2.1. изберите подходящий объект и нажмите левую кнопку «мыши».
3. Результаты.
Выполнив все нужные деяния, т.е. решив задачку — нажмите клавишу «Результаты». и на дисплее покажется сообщение о количестве допущенных Вами ошибок при тренировке, или приобретенная Вами оценка при сдаче экзамена за решение задачки. Если Вы желаете просмотреть протокол переключений изберите пункт меню «Результаты» и нажмите клавишу «протокол переключений». Для выхода из программки нажмите клавишу «Выход».
протокол переключений хранится в каталоге Info в файле Report.txt
ЗАКЛЮЧЕНИЕ
В итоге можно создать последующие выводы:
Разработанный тренажер прост в освоении. Обучаемый при работе с программкой не испытывает никаких затруднений. Пуск программки очень упрощен. Требования к аппаратному обеспечению малы. Приятное изображение схем электроснабжения, внедрение всплывающих подсказок, дружеский интерфейс Windows, внедрение манипулятора «мышь» делают процесс обучения приятной работой.
При решении задач в режиме тренировки у обучаемого формируется умение стремительно и буквально делать операции по переключениям коммутационных аппаратов в электpических сетях. За счет использования способности воззвания к помощи в затруднительной ситуации тренируемый добивается окончания поставленной задачки. На основании анализа действий тренируемого составляется протокол переключений, подтверждающий оценку за выполнение задачки.
СПИСОК ЛИТЕРАТУРЫ
1. Головинский И.А. то есть заключения о сущности болезни и состоянии пациента»>диагностика
квалификации персонала на тренажере оперативных переключений. — =Вестник ВНИИЭ-99°, М., «ЭНАС», 1999.
2. Головинский И.А. КОРВИН — тренажер оперативных переключений с расчетом потокораспределения. — «Вестник ВНИИЭ-98», М., «ЭНАС», 1998, с. 127-132.
3. Головинский И.А. осознание электронных схем компом. — «Вестник ВНИИЭ-99», М., «ЭНАС», 1999.
4. Коммутационные узлы энергосистем/Под ред. А.В. Шунтова. М.:Энерготомиздат,1997.
5. Культин Н. Delphi 4. Программирование на ObjectPascal. BHV, Санкт-Петербург, 1999. – 480 с., ил.
6. Дэн Оузьер и др. Delphi 3. Освой без помощи других. М.: “Издательство БИНОМ”, 1998 г. – 560 с.: ил.
7. Бондарев В. М., Рублинецкий В. И., Качко Е. Г. Базы программирования. Харьков: Фолио; Ростов на дону н/Д: Феникс, 1998 – 368 с.
8. Справочная система Delphi
9. Фаронов В. В. Delphi 4. Учебный курс. М.: «Нолидж», 1999 – 464 с.:ил.
10. Дарахвелидзе П. Г., Марков Е. П., Котенок О. А. Программирование в Delphi 5. – СПб.:БХВ – Санкт-Петербург, 2000. – 784 с.: ил.
приложение А. Сценарии решения задач
Разработанная система моделирует оперативные переключения обслуживающего персонала в работающих электроустановках (ДЭУ), переводящие технологическое оборудование из 1-го режима работы в иной. Рассматриваются последующие режимы работы:
· Режим №1. Обычный режим.
· Режим №2. Выведена в ремонт ВЛ «Агломерат 2».
· Режим №3. Выведена в ремонт ВЛ «Агломерат 1».
· Режим №4. Выведен в ремонт Т1 63 мВа.
· Режим №5. Выведен в ремонт Т2 63 мВа.
· Режим №6. Выведен в ремонт Т3 100 мВа.
Обычный режим.
Электроснабжение осуществляется от всех имеющихся источников электроэнергии и введенных в работу устройствах автоматического включения резерва (АВР).
Рис. 6.1. Обычный режим работы электроустановки
Режим №2. Выведена в ремонт ВЛ 220 кВ «Агломерат 1»
Для перевода электроустановки в режим №2 и, назад, в обычный режим работы, юзер должен выполнить операции согласно последовательности, обозначенной в таблице 3.
Таблица 3
№
порядок перехода
с режима №1 на режим №2
Порядок перехода
с режима №2 на режим №1
1
Вывести АВР 1,2
Включить ОД3 220 кВ Т3
2
Включить СМВ1 яч.9
Включить ВВ 220 кВ яч 12
3
Отключить МВ ввода В1 яч. 5
Включить ШР1 яч 5
4
Отключить ТР1 яч. 5
Включить ТР1 яч 5
5
Отключить ШР1 яч. 5
Включить МВ ввода В1 яч 5
6
Вывести АВР 3,4
Отключить СМВ1 яч.9
7
Включить СМВ2 яч.20
Ввести АВР 1,2
8
Отключить МВ ввода В3 яч. 25
Включить ШР3 яч 25
9
Отключить ТР3 яч. 25
Включить ТР3 яч 25
10
Отключить ШР3 яч. 25
Включить МВ ввода В3 яч 25
11
Отключить ВВ 220 кВ яч 12
Отключить СМВ2 яч.20
12
Отключить ОД 220 кВ Т3
Ввести АВР 3,4
состояние коммутационных аппаратов обязано соответствовать схеме, приведенной на рис. 6.2.
Рис. 6.2. Выведена в ремонт ВЛ 220 кВ «Агломерат 1»
Режим №3. Выведена в ремонт ВЛ 220 кВ «Агломерат 2»
Для перевода электроустановки в режим №3 и, назад, в обычный режим работы, юзер должен выполнить операции, согласно последовательности, обозначенной в таблице 4.
Таблица 4
№
порядок перехода
с режима №1 на режим №3
Порядок перехода
с режима №3 на режим №1
1
Вывести АВР 1,2
Включить ОД1 220 кВ
2
Включить СМВ1 яч.9
Включить ОД2 220 кВ
3
Отключить МВ ввода В2 яч.14
Включить ВВ 220 кВ яч 10
4
Отключить ТР2 яч.14
Включить ТР2 яч.14
5
Отключить ШР2 яч.14
Включить ШР2 яч.14
6
Вывести АВР 3,4
Включить МВ ввода В2 яч.14
7
Включить СМВ2 яч.20
Отключить СМВ1 яч.9
8
Отключить МВ ввода В4 яч.31
Ввести АВР 1,2
9
Отключить ТР4 яч.31
Включить ТР4 яч.31
10
Отключить ШР4 яч.31
Включить ШР4 яч.31
11
Отключить. ВВ 220 кВ яч 10
Включить МВ ввода В4 яч.31
12
Отключить ОД1 220 кВ
Отключить СМВ2 яч.20
13
Отключить ОД2 220 кВ
Ввести АВР 3,4
состояние коммутационных аппаратов обязано соответствовать схеме, приведенной на рис. 6.3.
Рис. 6.3. Выведена в ремонт ВЛ 220 кВ «Агломерат 2»
Режим №4. Выведен в ремонт Т1 63 мВа
Для перевода электроустановки в режим №4 и, назад, в обычный режим работы, юзер должен выполнить операции, согласно последовательности, обозначенной в таблице 5.
Таблица 5
№
порядок перехода
с режима №1 на режим №4
Порядок перехода
с режима №4 на режим №1
1
Вывести АВР 3,4
Вывести АВР 1,2
2
Включить СМВ2 яч. 20
Включить СМВ1 яч. 9
3
Отключить МВ ввода В4 яч. 31
Отключить МВ ввода В2 яч. 14
4
Отключить ТР4 яч. 31
Отключить ВВ 220 кВ яч 10
5
Отключить ШР4 яч. 31
Включить ОД1 220 кВ
6
Вывести АВР 1,2
Включить ВВ 220 кВ яч 10
7
Включить СМВ1 яч. 9
Включить ШР4 яч. 31
8
Отключить МВ ввода В2 яч. 14
Включить ТР4 яч. 31
9
Отключить. ВВ 220 кВ яч 10
Включить МВ ввода В4 яч. 31
10
Отключить ОД1 220 кВ
Отключить СМВ2 яч. 20
11
Включить. ВВ 220 кВ яч 10
Ввести АВР 3,4
12
Включить МВ ввода В2 яч. 14
Включить МВ ввода В2 яч. 14
13
Отключить СМВ1 яч. 9
Отключить СМВ1 яч. 9
14
Ввести АВР 1,2
Ввести АВР 1,2
состояние коммутационных аппаратов обязано соответствовать схеме, приведенной на рис. 6.4.
Рис. 6.4. Выведен в ремонт Т1 63 мВа
Режим №5. Выведен в ремонт Т2 63 мВа
Для перевода электроустановки в режим №5 и, назад, в обычный режим работы, юзер должен выполнить операции, согласно последовательности, обозначенной в таблице 6.
Таблица 6
№
порядок перехода
с режима №1 на режим №5
Порядок перехода
с режима №5 на режим №1
1
Вывести АВР 1,2
Вывести АВР 3,4
2
Включить СМВ1 яч. 9
Включить СМВ2 яч. 20
3
Отключить МВ ввода В2 яч. 14
Отключить МВ ввода В4 яч. 31
4
Отключить ТР2 яч. 14
Отключить ВВ 220 кВ яч 10
5
Отключить ШР2 яч. 14
Включить ОД2 220 кВ
6
Вывести АВР 3,4
Включить ВВ 220 кВ яч 10
7
Включить СМВ2 яч. 20
Включить ШР2 яч. 14
8
Отключить МВ ввода В4 яч. 31
Включить ТР2 яч. 14
9
Отключить. ВВ 220 кВ яч 10
Включить МВ ввода В2 яч. 14
10
Отключить ОД2 220 кВ
Отключить СМВ1 яч. 9
11
Включить. ВВ 220 кВ яч 10
Ввести АВР С1,2
12
Включить МВ ввода В4 яч. 31
Включить МВ ввода В4 яч. 31
13
Отключить СМВ2 яч. 20
Отключить СМВ2 яч. 20
14
Ввести АВР 3,4
Ввести АВР 3,4
состояние коммутационных аппаратов обязано соответствовать схеме, приведенной на рис. 6.5.
Рис. 6.5. Выведен в ремонт Т2 63 мВа
Режим №6. Выведен в ремонт Т3 100 мВа
Для перевода электроустановки в режим №6 и, назад, в обычный режим работы, юзер должен выполнить операции, согласно последовательности, обозначенной в таблице 7.
Таблица 7
№
порядок перехода
с режима №1 на режим №6
Порядок перехода
С режима №6 на режим №1
1
Вывести АВР 1,2
Отключить ВВ 220 кВ яч 12 РПП 2
2
Включить СМВ1 яч. 9
Включить ОД3 220 кВ
3
Отключить МВ ввода В1 яч. 5
Включить ВВ 220 кВ яч 12 РПП 2
4
Вывести АВР 3,4
Включить ШР1 яч 5
5
Включить СМВ2 яч. 20
Включить ТР1 яч 5
6
Отключить МВ ввода В3 яч. 25
Включить МВ ввода В1 яч. 5
7
Отключить. ВВ 220 кВ яч 12 РПП2
Отключить СМВ1 яч. 9
8
Отключить ОД3 220 Кв
Ввести АВР 1,2
9
Отключить ТР1 яч 5
Включить ШР3 яч 25
10
Отключить ШР1 яч 5
Включить ТР3 яч 2
11
Отключить ТР3 яч 25
Включить МВ ввода В3 яч. 25
12
Отключить ШР3 яч 25
Отключить СМВ2 яч. 20
13
Включить ВВ -220 кВ яч. 12 РПП2
Ввести АВР 3,4
состояние коммутационных аппаратов обязано соответствовать схеме, приведенной на рис. 6. 6.
Рис. 5.6. Выведен в ремонт Т3 100 мВа
приложение Б. Листинг основного модуля программки
unit MainMenu;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Gauges, Menus, ComCtrls, User1, Report,
NewScen, ImgList,Report1;
type
TForm1 = class(TForm)
TaskList: TListBox;
RunBtn: TButton;
ExtBtn: TButton;
MainMenu1: TMainMenu;
Menu1: TMenuItem;
Menu4: TMenuItem;
Menu41: TMenuItem;
Menu5: TMenuItem;
Bevel1: TBevel;
StatusBar1: TStatusBar;
Image1: TImage;
ODT2: TImage;
ODT1: TImage;
BB50: TImage;
ODT3: TImage;
PBB2: TImage;
MBB2: TImage;
CMB1: TImage;
MBB1: TImage;
ABR1: TImage;
TRZ2: TImage;
TRZ1: TImage;
TRZ4: TImage;
TRZ3: TImage;
MBB4: TImage;
CMB2: TImage;
MBB3: TImage;
SRZ2: TImage;
SRZ9: TImage;
SR10: TImage;
SRZ1: TImage;
SRZ4: TImage;
SR37: TImage;
SR20: TImage;
SRZ3: TImage;
ABR2: TImage;
ResultBtn: TButton;
Label1: TLabel;
HelpBtn: TButton;
New: TMenuItem;
N2: TMenuItem;
Exit: TMenuItem;
Image2: TImage;
StaticText1: TStaticText;
Menu52: TMenuItem;
Label2: TLabel;
Menu2: TMenuItem;
Menu21: TMenuItem;
Menu22: TMenuItem;
procedure ExtBtnClick(Sender: TObject);
procedure TaskListMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormActivate(Sender: TObject);
procedure RunBtnClick(Sender: TObject);
procedure Menu41Click(Sender: TObject);
procedure MBB1Click(Sender: TObject);
procedure MBB2Click(Sender: TObject);
procedure MBB3Click(Sender: TObject);
procedure MBB4Click(Sender: TObject);
procedure CMB1Click(Sender: TObject);
procedure CMB2Click(Sender: TObject);
procedure BB50Click(Sender: TObject);
procedure PBB2Click(Sender: TObject);
procedure TRZ1Click(Sender: TObject);
procedure TRZ2Click(Sender: TObject);
procedure TRZ3Click(Sender: TObject);
procedure TRZ4Click(Sender: TObject);
procedure SRZ1Click(Sender: TObject);
procedure SRZ2Click(Sender: TObject);
procedure SRZ3Click(Sender: TObject);
procedure SRZ4Click(Sender: TObject);
procedure SRZ9Click(Sender: TObject);
procedure SR10Click(Sender: TObject);
procedure SR20Click(Sender: TObject);
procedure SR37Click(Sender: TObject);
procedure ODT1Click(Sender: TObject);
procedure ODT2Click(Sender: TObject);
procedure ODT3Click(Sender: TObject);
procedure ABR1Click(Sender: TObject);
procedure ABR2Click(Sender: TObject);
procedure ResultBtnClick(Sender: TObject);
procedure HelpBtnClick(Sender: TObject);
procedure NewClick(Sender: TObject);
procedure Menu52Click(Sender: TObject);
procedure Menu21Click(Sender: TObject);
procedure Menu22Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TStringList1 = class (TStringList);
TMyZap=class(TObject)
FNo:Integer;
FImage:ShortString;
FState:Integer;
FComment:ShortString;
constructor Create(No:Integer;Image:ShortString;State:Integer;Comment:ShortString);
end;
var
Form1: TForm1;
TaskNumber:Integer;
WorkMode:Integer;
List1:TStringList1;
ActList:TList;
Prot:TStringList;
Zap:TMyZap;
Switch:TImage;
TaskName:string;
Error:integer;
Help:integer;
Count:Integer;
F: array [0..24] of boolean;
E: array [0..24] of boolean;
implementation
uses Results;
{$R *.DFM}
constructor TMyZap.Create(No:Integer;Image:ShortString;State:Integer;Comment:ShortString);
begin
inherited Create;
FNo:=No;
FImage:=Image;
FState:=State;
FComment:=Comment;
end;
procedure SWState(AOwner:TImage;i:integer);
begin
if F[i]=false then begin
with AOwner.Canvas do begin
Pen.Color:=clWhite;
MoveTo(6,1);
LineTo(6,17);
Pen.Width:=2;
Pen.Color:=clBlack;
Rectangle(1,1,17,17);
MoveTo(6,17);
LineTo(15,1);
end;
F[i]:=true;
end
else begin
with AOwner.Canvas do begin
Pen.Color:=clWhite;
MoveTo(6,17);
LineTo(15,1);
Pen.Width:=2;
Pen.Color:=clBlack;
Rectangle(1,1,17,17);
MoveTo(6,1);
LineTo(6,17);
end;
F[i]:=false;
end;
end;
procedure ABRState(AOwner:TImage;i:integer);
begin
if F[i]=False then begin
with AOwner.Canvas do begin
Brush.Color:=clWhite;
FloodFill(8,8,clBlack,fsSurface);
Pen.Width:=2;
Pen.Color:=clBlack;
MoveTo(1,15);
LineTo(8,1);
MoveTo(8,1);
LineTo(17,15);
MoveTo(17,15);
LineTo(1,15);
end;
F[i]:=True;
end
else begin
with AOwner.Canvas do begin
FloodFill(8,8,clWhite,fsSurface);
Pen.Width:=2;
Pen.Color:=clBlack;
MoveTo(1,15);
LineTo(8,1);
MoveTo(8,1);
LineTo(17,15);
MoveTo(17,15);
LineTo(1,15);
Brush.Color:=clBlack;
FloodFill(8,8,clBlack,fsBorder);
end;
F[i]:=False;
end;
end;
procedure MVState(AOwner:TImage;i:integer);
begin
if F[i]=false then begin
with AOwner.Canvas do begin
Pen.Color:=clWhite;
MoveTo(9,6);
LineTo(9,11);
Pen.Width:=2;
Pen.Color:=clBlack;
Rectangle(1,1,17,17);
MoveTo(6,8);
LineTo(11,8);
end;
F[i]:=true;
end
else begin
with AOwner.Canvas do begin
Pen.Color:=clWhite;
MoveTo(6,8);
LineTo(11,8);
Pen.Width:=2;
Pen.Color:=clBlack;
Rectangle(1,1,17,17);
MoveTo(9,6);
LineTo(9,11);
end;
F[i]:=false;
end;
end;
function Analyze(AOwner:TComponent):boolean;
begin
Zap:=ActList.First;
if WorkMode=0 then
if (Zap.FImage=AOwner.Name)
then begin
if Zap.FImage<>’0′ then ActList.Delete(ActList.IndexOf(ActList.First));
Result:=true;
Form1.Label1.Caption:=»;
Prot.Append(Zap.FComment);
end
else begin
Form1.Label1.Caption:=’ Ошибка’;
Prot.Append(‘Ошибка, ‘+Zap.FComment);
Error:=Error+1;
Result:=false;
end
else Count:=Count+1;
Form1.ResultBtn.Visible:=True;
end;
{Считывание инфы дла решения задач}
procedure Read;
var Fil:textfile;
s:string;
j:integer;
begin
for j:=1 to 10 do begin
s:=’Info’+IntToStr(j)+’.str’;
assign(fil,s);
reset(fil);
readln(fil,s);
Form1.TaskList.Items.Insert(j-1,s);
end;
end;
procedure ReadInfo(Num:integer);
var Fil:textfile;
s,s1:string;
i,j:integer;
begin
ActList:=TList.Create;
s:=’Info’+IntToStr(Num)+’.str’;
assign(fil,s);
reset(fil);
readln(fil,s);
readln(fil,s);
for i:=0 to 24 do
if s[i+1]=’1′ then F[i]:=true
else F[i]:=false;
readln(fil,s);
for i:=0 to 24 do
if s[i+1]=’1′ then E[i]:=true
else E[i]:=false;
for i:=1 to 15 do begin
readln(fil,s);
s1:=s;
for j:=1 to 7 do s1[j]:=’ ‘;
ActList.Add(TMyZap.Create(StrToInt(s[1]+s[2]),s[3]+s[4]+s[5]+s[6],StrToInt(s[7]),s1));
end;
closefile(fil);
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
Form1.ResultBtn.Visible:=False;
Form1.HelpBtn.Visible:=False;
Form1.Label2.Visible:=false;
Image1.Visible:=False;
Image2.Visible:=False;
StaticText1.Visible:=False;
Label2.Visible:=False;
StatusBar1.Panels[2].Text:=’Изберите режим работы и задачку.’;
StatusBar1.Panels[3].Text:=’Режимработы: ‘;
TaskList.ItemIndex:=0;
TaskNumber:=0;
Read;
User1.User.ShowModal;
end;
procedure TForm1.ExtBtnClick(Sender: TObject);
begin
if Prot<>nil then Prot.Clear;
if ActList<>nil then ActList.Clear;
if Prot<>nil then Prot.Clear;
Application.Terminate;
end;
procedure TForm1.TaskListMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
begin
TaskNumber:=TaskList.ItemAtPos(
StatusBar1.Panels[2].Text:=Form1.TaskList.Items.Strings[TaskNumber];
StatusBar1.Panels[1].Text:=’№’+IntToStr(1+TaskList.ItemAtPos(
end;
procedure TForm1.RunBtnClick(Sender: TObject);
var s:string;
begin
TaskList.Visible:=False;
if WorkMode=0 then begin
StatusBar1.Panels[3].Text:=’Режимработы: Тренировка’;
Form1.HelpBtn.Visible:=true;
Form1.Label1.Visible:=true;
Form1.Label2.Visible:=true;
ResultBtn.Caption:=’Результаты’;
end;
Image1.Visible:=true;
Image2.Visible:=true;
StaticText1.Visible:=true;
ReadInfo(TaskNumber+1);
Error:=0;
Help:=0;
Form1.Caption:=TaskList.Items[TaskNumber];
{Исходные условия}
SWState(ODT2,0);
SWState(ODT1,1);
SWState(ODT3,3);
MVState(MBB1,10);
MVState(MBB2,7);
MVState(MBB3,19);
MVState(MBB4,17);
MVState(CMB1,8);
MVState(CMB2,18);
MVState(PBB2,4);
MVState(BB50,2);
SWState(TRZ1,6);
SWState(TRZ2,5);
SWState(TRZ3,16);
SWState(TRZ4,15);
SWState(SRZ1,14);
SWState(SRZ2,11);
SWState(SRZ3,24);
SWState(SRZ4,20);
SWState(SRZ9,12);
SWState(SR10,13);
SWState(SR20,23);
SWState(SR37,21);
ABRState(ABR1,9);
ABRState(ABR2,22);
Prot:=TStringList.Create;
if WorkMode=0 then s:=(‘ тренировки’)
else s:=(‘ экзамена’);
Prot.Append(‘ протокол‘+s);
Prot.Append(‘ —————————‘);
Prot.Append(‘Фамилия: ‘+User1.N1);
Prot.Append(‘Имя: ‘+User1.N2);
Prot.Append(‘Отчество: ‘+User1.N3);
Prot.Append(‘ ЗАДАЧА: ‘+TaskList.Items[TaskNumber]);
Prot.Append(‘ ———————————————‘);
if WorkMode=0 then s:=(‘ прохождения тренировки: ‘)
else s:=(‘ сдачи экзамена: ‘);
Prot.Append(‘Дата ‘+s+DateToStr(Date));
end;
procedure TForm1.Menu41Click(Sender: TObject);
begin
User.ShowModal;
end;
procedure TForm1.MBB1Click(Sender: TObject);
begin
if Analyze(MBB1)=True then MVState(MBB1,10)
else MVState(MBB1,10);
if F[10]=true then
end;
procedure TForm1.MBB2Click(Sender: TObject);
begin
if Analyze(MBB2)=True then MVState(MBB2,7)
else MVState(MBB2,7);
end;
procedure TForm1.MBB3Click(Sender: TObject);
begin
if Analyze(MBB3)=True then MVState(MBB3,19)
else MVState(MBB3,19);
end;
procedure TForm1.MBB4Click(Sender: TObject);
begin
if Analyze(MBB4)=True then MVState(MBB4,17)
else MVState(MBB4,17);
end;
procedure TForm1.CMB1Click(Sender: TObject);
begin
if Analyze(CMB1)=True then MVState(CMB1,8)
else MVState(CMB1,8);
end;
procedure TForm1.CMB2Click(Sender: TObject);
begin
if Analyze(CMB2)=True then MVState(CMB2,18)
else MVState(CMB2,18);
end;
procedure TForm1.BB50Click(Sender: TObject);
begin
if Analyze(BB50)=True then MVState(BB50,2)
else MVState(BB50,2);
end;
procedure TForm1.PBB2Click(Sender: TObject);
begin
if Analyze(PBB2)=True then MVState(PBB2,4)
else MVState(PBB2,4);
end;
procedure TForm1.TRZ1Click(Sender: TObject);
begin
if Analyze(TRZ1)=True then SWState(TRZ1,6)
else SWState(TRZ1,6);
end;
procedure TForm1.TRZ2Click(Sender: TObject);
begin
if Analyze(TRZ2)=True then SWState(TRZ2,5)
else SWState(TRZ2,5);
end;
procedure TForm1.TRZ3Click(Sender: TObject);
begin
if Analyze(TRZ3)=True then SWState(TRZ3,16)
else SWState(TRZ3,16);
end;
procedure TForm1.TRZ4Click(Sender: TObject);
begin
if Analyze(TRZ4)=True then SWState(TRZ4,15)
else SWState(TRZ4,15);
end;
procedure TForm1.SRZ1Click(Sender: TObject);
begin
if Analyze(SRZ1)=True then SWState(SRZ1,14)
else SWState(SRZ1,14);
end;
procedure TForm1.SRZ2Click(Sender: TObject);
begin
if Analyze(SRZ2)=True then SWState(SRZ2,11)
else SWState(SRZ2,11);
end;
procedure TForm1.SRZ3Click(Sender: TObject);
begin
if Analyze(SRZ3)=True then SWState(SRZ3,24)
else SWState(SRZ3,24);
end;
procedure TForm1.SRZ4Click(Sender: TObject);
begin
if Analyze(SRZ4)=True then SWState(SRZ4,20)
else SWState(SRZ4,20);
end;
procedure TForm1.SRZ9Click(Sender: TObject);
begin
if Analyze(SRZ9)=True then SWState(SRZ9,12)
else SWState(SRZ9,12);
end;
procedure TForm1.SR10Click(Sender: TObject);
begin
if Analyze(SR10)=True then SWState(SR10,13)
else SWState(SR10,13);
end;
procedure TForm1.SR20Click(Sender: TObject);
begin
if Analyze(SR20)=True then SWState(SR20,23)
else SWState(SR20,23);
end;
procedure TForm1.SR37Click(Sender: TObject);
begin
if Analyze(SR37)=True then SWState(SR37,21)
else SWState(SR37,21);
end;
procedure TForm1.ODT1Click(Sender: TObject);
begin
if Analyze(ODT1)=True then SWState(ODT1,1)
else SWState(ODT1,1);
end;
procedure TForm1.ODT2Click(Sender: TObject);
begin
if Analyze(ODT2)=True then SWState(ODT2,0)
else SWState(ODT2,0);
end;
procedure TForm1.ODT3Click(Sender: TObject);
begin
if Analyze(ODT3)=True then SWState(ODT3,3)
else SWState(ODT3,3);
end;
procedure TForm1.ABR1Click(Sender: TObject);
begin
if Analyze(ABR1)=True then ABRState(ABR1,9)
else ABRState(ABR1,9);
end;
procedure TForm1.ABR2Click(Sender: TObject);
begin
if Analyze(ABR2)=True then ABRState(ABR2,22)
else ABRState(ABR2,22);
end;
procedure TForm1.ResultBtnClick(Sender: TObject);
var i:integer;
s:string;
begin
Error:=0;
Count:=0;
if WorkMode=1 then begin
for i:=0 to 24 do if E[i]=F[i] then Error:=Error+1;
if Error=0 then s:=’Отлично’;
if Error=1 then s:=’Удовлетворительно’;
if Error>2 then s:=’Неудовлетворительно’;
Results.Result.Label1.Caption:=’Оценка: ‘+s;
Prot.Append(‘Оценка: ‘+s);
Results.Result.ShowModal;
TaskList.Visible:=True;
end;
if (WorkMode=0)and(Zap.FNo=0)and(Zap.FImage=’0000′)and(Zap.FState=0) then begin
Prot.Append(‘Количествоошибок: ‘+IntToStr(Error));
Prot.Append(‘количество воззваний к подсказке: ‘+IntToStr(Help));
Results.Result.Label1.Caption:=’Количествоошибок: ‘+IntToStr(Error);
Results.Result.Label2.Caption:=’Количествообращенийкподсказке: ‘+IntToStr(Help);
Results.Result.ShowModal;
Actlist.Clear;
TaskList.Visible:=True;
end;
end;
procedure TForm1.HelpBtnClick(Sender: TObject);
begin
if StatusBar1.Panels[1].Text=’№’
then
Label1.Caption:=’ Выберитезадачу’
else
begin
Zap:=ActList.First;
Label1.Caption:=Zap.FComment;
Help:=Help+1;
end;
end;
procedure TForm1.NewClick(Sender: TObject);
begin
FormScene.Position:=poScreenCenter;
FormScene.ShowModal;
end;
procedure TForm1.Menu52Click(Sender: TObject);
var s:string;
i:integer;
begin
Report.ReportForm.ProtList.Clear;
if Prot<>nil then begin
for i:=0 to Prot.Count-1 do
Report.ReportForm.ProtList.Items.Append(Prot.Strings[i]);
s:=TimeToStr(Now);
if FileExists(‘InfoReport.txt’) then Prot.SaveToFile(‘InfoReport’+s[7]+’.txt’)
else Prot.SaveToFile(‘InfoReport.txt’);
ReportForm.ShowModal;
end;
end;
procedure TForm1.Menu21Click(Sender: TObject);
begin
WorkMode:=0;
StatusBar1.Panels[3].Text:=’Режимработы: Тренировка’;
Form1.HelpBtn.Visible:=true;
Form1.Label1.Visible:=true;
Form1.Label2.Visible:=true;
ResultBtn.Caption:=’Результаты’;
end;
procedure TForm1.Menu22Click(Sender: TObject);
begin
WorkMode:=1;
StatusBar1.Panels[3].Text:=’Режимработы: Экзамен’;
Form1.HelpBtn.Visible:=false;
Form1.Label1.Visible:=false;
Form1.Label2.Visible:=false;
ResultBtn.Caption:=’Готово’;
end;
end.
]]>