УДК 681.3.069:(389.6:744(083.74)
Сорокин Ю.В.Разработкапрограммыконтроллераавтоматическисвязываемыхобъектов дляуправленияконструкторскойдокументациейв среде Windows95/NT. Дипломнаяработа. - Таганрог,1997. - с.
АННОТАЦИЯ
В даннойдипломнойработе осуществленаразработкапрограммногопродукта, длясреды операционнойсистемы Windows 95/NT,обеспечивающегосоздание, изменениеи выполнениефункций автоматическисвязываемыхобъектов системавтоматизированногопроектирования или любых другихпакетов прикладныхи системныхпрограммподдерживающихмеханизм связыванияи внедрения.
Разработанныйпрограммныйпродукт позволяет объединятьфункции автоматическисвязываемыхобъектов системпроектированияв один проектс файлами данныхэтих системпроектирования,таким образомявляясь интеграционнымзвеном междуразличнымипрограммнымипродуктами.
Переченьграфическойдокументации
Цтрк 5.035.014СБ Плата УИ. Сборочный чертеж - формат А1
Цтрк 7.035.014 Печатная плата - формат А1
УДК 681.3.069:(389.6:744(083.74)Структурнаясхема контроллераавтоматическисвязываемыхобъектов. Плакат- формат А1
УДК 681.3.069:(389.6:744(083.74)Функциональнаясхема работыоперационнойсистемы Windows 95.Плакат - форматА1
УДК 681.3.069:(389.6:744(083.74)Функциональнаясхема работыOLEи системыOLEAutomation. Плакат- формат А1
УДК 681.3.069:(389.6:744(083.74)Функциональнаясхема работыблока выполненияфункций OLEAutomation. Плакат- формат А1
УДК 681.3.069:(389.6:744(083.74)Структураорганизацииданных контроллера.Плакат - форматА1
УДК 681.3.069:(389.6:744(083.74)Безопасностьи экологичностьпроекта. Плакат- формат А1
Введение
В настоящеевремя на фоневсеобщейкомпьютеризациивсехпроизводственных,торговыхи бытовых отраслейс одновременнымувеличениемконкуренциина компьютерномрынке,в связи с ускорениемразработоквсе более новыхтехнологийпроизводствавычислительнойтехники,все большеезначение приобретаетразработкаи производствоконкурентоспособнойвычислительнойтехники.Сегодня этостановитсявозможнымтолько прииспользованиисовременныхсредств проектированияэлектронныхвычислительныхсредств (ЭВС).Современныесредстваконструирования невозможнопредставитьсебе без компьютерныхсредств проектирования.Компьютерыимеют большойпотенциалв областипроектированияЭВС.
Компьютерныесредствапроектирования,кроме непосредственнокомпьютерногооборудования,включают в себяпрограммноеобеспечение.На нынешнемэтапе развитияпрограммногообеспечениясистем проектирования,имеется многоразработоксистем автоматизациипроектирования.Рынок программногообеспечениянасыщен большимколичествомразнообразныхпакетов прикладныхпрограмм включающихв себя различныеинструментальныесредства,позволяющиево многом упроститьработу конструктораЭВА.Сейчасу нас в странеи за рубежомнаиболеераспространенытакие пакетыпрограммногообеспечения,как PCAD,AutoCAD, MicroCAPS, Pspice, MathCadи другие.Эти программныесредства позволяютавтоматизироватьсложные иоднообразныепроцессыприсутствующиена многих этапахпроектированияЭВА.Например,различногорода математическиерасчеты всевозможнойсложности,логическоемоделированиесхем,разработкатопологиимикросхем,разводка печатногомонтажа печатнойплаты,созданиеготовых конструкторскихдокументоввысокого качестваи т.д.
Рост популярностиавтоматизированныхсистем проектированиявозник во многомблагодаряулучшениюпользовательскогоинтерфейсапрограммногообеспеченияв целом и системпроектированияв частности.За последниенесколько лету разработчиковпрограммногообеспечениявсе большиесимпатии вызываетплатформаWindowsдля созданиявысоко качественныхпрограммныхпродуктовпредоставляющихпользователюнаиболее удобныйдля восприятияинтерфейс.УдобствоинтерфейсаWindowsобусловленовысокими требованиямис эргономическойточки зренияпредъявленномусоздателямиWindowsк своей операционнойсистеме.Свою системуWindowsфирмаMicrosoftсоздаладля платформыIBM,не случайно.Надоотметить значительнуюпопулярностьв мире компьютеровсовместимыхс IBMAT. Ставшейв наше времясвоеобразныммировым эталономсочетаниякачества инизкой цены.Болееполовиныкомпьютерногорынка принадлежиткомпьютерамсовместимымс IBMAT.
Однако,любой пакетпрограмм неможет обеспечитьполную универсальностьсвоей системы,но этособственноне к чему.Любое программноеобеспечение,благодаря своейспецифичностив той или инойобласти автоматизациипроектирования,позволяетполучить максимальнуюэффективностьконкретно всвоей области.Но,последнее времянаметиласьтенденция кинтеграциипрограммногообеспеченияна базе такназываемыхавтоматическисвязываемыхобъектов.Этот терминна самом делеозначает неинтеграциюпрограмм впрямом смысле,а лишь ее эмуляцию.Тем неменее, для конечногопользователяэто выглядиткак полнаяинтеграцияпрограммногообеспеченияразличныхнаправленийи различныхфирм разработчиковпрограммногообеспечения.Идеязаключаетсяв том,что любое приложениедля Windows,обеспечивающееOLEAutomation (Objekt Linking and Embedding Automation- автоматическоесвязываниеи внедрениеобъектов),может управлятьсяизвне другимиприложениями,которые пользуютсяим основываясьна предоставленныхприложениемпрограммныхинтерфейсахи таким образомвыполнять теже функции,что и приложениепрародительфункций.
Задачейданной дипломнойработы являетсяразработкауниверсальнойсреды проектирования.Для интеграциисистем проектированияи позволяющейсоздаватьсоставнойдокумент, которыйможет включатьв себя все видыдокументовобрабатываемых инсталлированнымив данную системуприложениямиобеспечивающихOLEAutomation, и максимальнуюэмуляцию OLEAutomation длявсех остальныхприложений.А такжевыполнять любыефункции OLEAutomation зарегистрированныеприложениями.
1. АНАЛИЗТЕХНИЧЕСКОГОЗАДАНИЯ
1.1.Выбор и обоснованиеоперационнойсистемы
1.1.1. Графическиеоперационныесистемы
Наиболеераспространеннойсредой программныхпродуктов внастоящее времяпо праву являетсяWindows,разработаннаякорпорациейMicrosoftв расчете насамый широкийкруг пользователей.
Windowsпредлагаетпользователюоконный интерфейс,в котором каждойвыполняемойпрограммеотводитсяэкранное окнокоторое можетзанимать частьэкрана или весьэкран.Программы,специальноспроектированныедля таких оконныхсред, могутпользоватьсявсеми их преимуществами.Видпользовательскогоэкрана с перекрывающимисяокнамиразличныхприкладныхпрограмм достаточнонагляднодемонстрируютвозможностисреды по одновременномуиспользованиюнесколькихпрограмм ипередаче данныхмежду ними(рис. 1.1).
Пользовательработает сприложением,находящимсясамом “верхнем”окне, но простымщелчком мышина другом окнеон можетактивизироватьдругую программу.Кроме того, ужев своих раннихверсиях Windowsпозволялакопироватьинформациюиз окна однойпрограммы вокно другойпрограммы припомощи средства clipboard- буфера обмена.
Графическийрежим Windows,как и графическийрежим любойдругой графическойоперационнойсреды (WindowsNТ,ОS/2,Soleras,Motif )имеет малообщего с знакоместнымграфическимрежимом, доступнымво многих программахдля МS-DОS,всегда размещающихна экране стандартноеколичествосимволов, например8Оx25или 80x43.Windows (а следовательно,и любая Windows-программа)позиционируетграфическиеобъекты с точностьюдо пикселя.
Размерытаких объектовWindows,как элементыокон, кнопкии значки стандартизованы.Для отображениясистемныхсообщений инаименованийкоманд менюWindowsприменяетсоответствующиерастровые(матричные)шрифты, имеющиеразличныетипоразмерыдля работы врежимах низкогои высокогоразрешения.Для подготовкидокументов,содержащихтекст, Windowsпозволяетиспользоватьмасштабируемыешрифты, применяемыекак для экранноговывода, таки для распечаткипа принтере.Благодаря этомув процессеподготовкидокумента можновидеть на экранепрактическито же, что будетполучено набумаге.
ГрафическаяподсистемаWindowsиспользуетуниверсальныеметоды обращенияк любым графическимустройствам вывода,будь то видеосистемаЕGА или superVGA, лазерныйпринтер илиавтомат длявывода типографскихформ. СтандартизованинтерфейсWindows,конечно, не ссамими дисплееми принтером,а с драйверамиэтих устройств,причем драйверовв комплектпоставки системыWindowsвходит великоемножество.
Выпускграфическойоперационнойоболочки MicrosoftWindows3.0 стал главнымсобытием 1990 годана программномрынке, затмившимодновременноепоявление IBMOS/21.3. Кроме приятногопользовательскогоинтерфейсасреда Windows предоставлялазначительныйкомплекс услуг.
С системойпоставлялосьбольшое количестводрайверов длясамых разныхмоделей устройствввода-вывода,таких каквидеоадаптерыи принтеры.Широчайшаяаппаратнаясовместимостьбыла одним из факторов успеха Windows. Комплект Windows3.0 содержалнесколько вариантовдрайверов дляразных моделей клавиатур, мышей и видеоадаптерови большое количество драйверов принтеров. В Multimedia дляWindows 3.0, а затемв Windows3.1 появились драйверы звуковыхкарт, МIDIустройств и синтезаторов. Количествонаименованийподдерживаемыхустройствбыстро росло...
1.1.2.Windows 3.Х
С точки зрения массового пользователя, не избалованногоOS/2,Windows 3.0 была действительнопередовой средой. Онаиспользовала весь объем памяти, адресуемой микропроцессорами80286, 80386 и выше. С 32-разрядными микропроцессорами(80386 и выше) и при наличии не менее 2 Мбайтпамяти Windows3.0 могла использовать виртуальнуюпамять, то естьработать с некоторым пространством на жесткомдиске как спродолжением оперативной памяти компьютера, размещая внем данные икод программ.
Windowsимела многозадачныевозможностис кооперативнымиспользованием процессорного времени “одновременно” работающими приложениями. Кооперативную
многозадачность можно назвать многозадачностью “второй ступени” поскольку она использует более передовые методы, чем.простое переключение задач, реализованное многими известнымипрограммами (например, МS-DOSshell из МS-DOS 5.0 при простом переключении активная программа получает всепроцессорное время, а фоновые приложения полностьюзамораживаются. При кооперативной многозадачностиприложение может захватить фактически столько процессорноговремени, сколько оно считает нужным. Все приложения делят процессорное время, периодически опрашивая другдруга.
С другойстороны, режимкооперативноймногозадачностименее совершенен,чем режим разделениявремени, называемый также вытесняющей многозадачностью.При вытесняющей многозадачности программыпотребляютровно столькопроцессорного времени, сколькоим положено, а не сколькозаблагорассудится. За выделениепроцессорноговремени томуили иному приложениюотвечает толькооперационнаясистема, руководствуясьтекущимиприоритетами.Благодаря этомупри вытесняющеймногозадачностиможно в любоймомент переключитьсяна любой процесс,в отличие откооперативноймногозадачности,при которойдля переключениямежду программамиможет потребоватьсясущественнаяпауза. Привытесняющеймногозадачностикажется, чтопроцессыдействительноработаютодновременно,хотя это насамом деле ине так, - во всякомслучае, на компьютерес одним микропроцессором,каким являетсяобычныйIВМ РС.
С апреля1992 года Windows3.1 официальноименуетсяоперационнойсистемой. Интерфейсее был несколькоулучшен, в частностибыли усиленывозможностиуправленияэкраннымиобъектамимышью (Drag-and - drop методперетаскивания).Windowsстала непосредственноподдерживатьдинамическийобмен даннымимежду приложениями(DDЕ -Dynamic Data Exchange ). Всистему вошлисредства мультимедиа,ранее поставлявшиесяотдельно впакете WindowsMultimediaExtension.Для расширенияиздательскихвозможностейв Windowsбыла встроенаподдержкасистемы масштабированияшрифтов TrueType.
Windows3.11 forWorkgroups (“длярабочих групп”)позиционироваласькак самостоятельнаясетевая операционнаясистема дляодно-ранговойлокальной сети,а также каксетевой клиентдля сервераWindowsNТ.В остальномWindows3.11 для рабочихгрупп являласьслегка улучшенноймодификациейWindows3.1, работающейтолько в 386-мРасширенномрежиме на32-разрядныхмикропроцессорах.
А теперьмы постараемсяразобратьсяв том, как устроенаWindows.
Режимыработы Windows3.XЧтобы запустить мотор Windowsна полную мощность,конечно, нужныпрежде всегомегабайты имегабайтыоперативнойпамяти. Но ихневозможноиспользоватьна микропроцессорах8088/86. Не слишкомудачным решениембыл и защищенныйрежим 80286: для тогочтобы использоватьна компьютереприложениядля новойоперационнойсреды вместес МS-DOSприложениями,приходилосьпереключатьмикропроцессориз защищенногорежима в реальныйи обратно.
Здесь уместновспомнить отом, что фирмаMicrosoftвесьматесно сотрудничалас Intelво время разработкимикропроцессораi80386.Microsoftфактическинавязала инженерамIntelсобственнуюконцепциюрежима виртуальногомикропроцессора8086-V86,наиболееудобную дляразработкиоперационнойсистемы, использующейМS-DOSприложениявместес программамизащищенногорежима. Посколькув 1990 году рынокеще не был готовк полному переходуна операционнуюсистему длямикропроцессора80386, Windows3.О могла функционироватьв трех режимах,в каждом изкоторых микропроцессори память использовалисьпо-разному.
В реальномрежиме работыWindowsсистема функционироватьдаже на компьютерес микропроцессором 8088 или 8086, оборудованномтолько обычнойпамятью дляработы приложенийв реальномрежиме Windows3.0 использоваласьтолько обычнаяпамять МS-DOSи отображаемаяпамять.
Стандартныйрежим Windows3.0 требовал дляработы микропроцессор80286 и всего 1 Мбайтпамяти - 640 Кбайтстандартнойи 384 Кбайт дополнительной(настоящаяработа начиналасьпри объемепамяти 4 Мбайт). Для приложенийWindowsиспользоваласьрасширеннаяпамять (ХМS).Для программ МS-DOS,загружаемыхиз-под Windows,применяласьобычная памятьи переключениемикропроцессораиз защищенногорежима в реальный.
Более полноиспользовалаппаратныересурсы 386-йРасширенныйрежим Windows. В этом режимеверсии Windows3.0 и 3.1 работалис виртуальнойпамятью, имевший примерно втроебольший объем,чем физическаяоперативнаяпамять. ПриложениямМSDOSв 386-м Расширенномрежиме отводиласьпроизвольнаяобласть памяти,которая в виртуальномрежиме 8086 размечаласькак обычнаяпамять MSDOS . По умолчаниюМS-DOSпрограммызагружалисьзанимая, какобычно, весьэкран, но моглибыть переведеныв графическоеокно - стандартноеокно Windows.ПриложенияМS-DOS,запущенноеиз-под Windowsв 386-м Расширенномрежиме, работалов виртуальноймашине, инымисловами, считалосебя загруженнымна своем собственномкомпьютереи знать не зналоо существованииWindows.
Разумеется,для работы в386-м Расширенномрежиме требовалсякомпьютер смикропроцессоромне ниже 80386. Объявленные требования к объему памяти(2 Мбайт) опять-такине стоило принимать всерьез. Минимумом являлись 4 Мбайтпамяти, а дляболее или менеесерьезной работы требовались8 Mбайт или больше.
Структураядра Windows.Способ, припомощи которогоодна и та жесистема может работать втрех принципиальноразных режимах,ориентированныхна совершенноразные микропроцессоры,заключаетсяв следующем.
Ядро Windowsсостоит из трехкомпонентовKernel,Userи GDI.При помощидополнительныхDLL-файлов(динамическизагружаемыхбиблиотек)поддерживаютсяотображением стандартныхдиалоговыхокон, протоколыDDЕ(динамическогосвязыванияданных) и ОLЕ(связыванияи встраиванияобъектов),взаимодействиес драйверамиустройствввода-выводаи другие чертыWindows.Windows-драйверы устройствбывают, кстати,двух видов -“обычные”DLL-драйверыи 386драйверы,последниепредназначеныопять-таки дляработы тольков 386-м Расширенномрежиме Windows.
Наиболеенизкоуровневойчастью ядраWindowsявляетсямодульKernel,управляющийраспределениемпамяти, процессами,файловымвводом-выводоми так далее. Вразных режимахработы Windows3.О функции Kernelвыполнялиразличныефайлы: kernel.ЕХЕдля Реальногорежимаkrnl286.Еxeдля Стандартногорежима, КrnlЗ86.ЕХЕдля 38б-го Расширенногорежима.
Так чтоWindows3.0 была разработанакак операционная система, имеющаятри разныхядра. Когда былупраздненРеальный режимработы, из комплектапоставки Windows3.1 и исчез файлKernel.dll.Следующий шагбыл сделан,Windows 3.11 длярабочих групп- эта системаработала тольков 386-м Расширенномрежиме. МодульUser(user.ЕХЕ) служитдля работы склавиатурой,мышью, таймероми портами, атакже выполняетфункции отображенияэлементовграфическогоинтерфейса(окон,меню). Онуправляеттакими драйверами,как, например,различныедрайверы клавиатурыи мыши.
Наконец,модуль GDI (интерфейсграфическихустройств, файлGDI.ЕХЕ)поддерживаетграфическиепроцедуры -прорисовкулиний, закрашивание,отображениешрифтов (начинаяс Windows3.1 - все операциисо шрифтамиTrueType)и взаимодействуетс драйверами графическихустройств -дисплея и принтера.СWindows 3.1 поставлялосьболее десяткадрайвероввидеоадаптеров.Для поддержкипринтеровв Windows3.1 впервые былапримененаархитектурамини-драйверов.Универсальныйдрайвер принтераNIDRV.DLL выполнял аппаратно-независимые функции печати-несколько десятковмини-драйверов,поставляемыхпроизводителями, дополняли универсальный драйвер функциямиобходимыми специально для поддержки конкретныхустройств ине повторялиуже написанныйобщий код.
1.1.3. Windows95
В 1996 году фирмойMicrosoft, былавыпушена следующаяверсия операционнойсистемы Windows.Которая быланазвана фирмой32 разрядноймногозадачнойграфическойсистемой./ 1 /
АрхитектураWindows95.Что должнабыла сделатьMicrosoft,чтобы прийти к 32-разряднойоперационной системе с обеспечением вытесняющеймногозадачности, которая бы при этом оставаласьполностьюсовместима с прикладными программами для Windows3.xи MS-DOS,не требовалабы для работы самой МSDOS и “умещалась”в четырех мегабайтахоперативнойпамяти ?
Фирмой Microsoft уже выпущены системы, удовлетворяющиесамым серьезным требованиям к управлению памятью ипроцессами, - WindowsNТSERVER и WindowsNТworkstation(выпущены версии3.51 и готовятсяк выпуску 3.52),Однако этисистемы самипредъявляютсерьезнейшиетребованияк аппаратуре,а заодно и кпользователю.WindowsNТSERVER предназначаетсяне для десятковмиллионов потребителейWindows, а для сетевогоадминистрирования.WindowsNТ workstationнужна тем пользователям,которые используют приложения с высокой интенсивностьювычислительнойобработки, тем,кто нуждаетсяв высокой степенибезопасностиданных, и тем, кто больше беспокоитсяо надежности системы, чем о совместимости с приложениямидля MSDOS и Windows3.x.
Всех остальныхпользователейна порядокбольше, и имнужнее “легкая”система.
ЯдроWindows 95. ЯдроWindows95, как и во всехпредыдущихверсиях Windows,имеет трехуровневуюструктуруKernel-User-GDI. Все эти модули должны бы быть32-разрядными,но в действительностиполностью32-разряднойсделана толькосамая низкоуровневаячасть ядраWindows95 - Кегне1. Вполнепонятно, что,объявляя о32-разряднойсистеме,Microsoftобязана былавыполнить в32-разрядномкоде хотя бытакие базовыевещи, как функцииввода- вывода,управленияпамятью и процессами,поддержкусетевой и файловойсистем.
Что касаетсядвух другихмодулей ядра,то расчетыпоказали, чтополностью32-разрядныеUSERи GDIвместе потребуютдля работыболее 1 Мбайтпамяти, Windows95 использует1б-разрядныйкод, когда оннеобходим дляобеспечениясовместимостиили если 32-разрядноекодированиенецелесообразно,то есть увеличилобы расход памятибез заметногоувеличенияпроизводительности.
Поэтомумодуль User,остался в Windows95 преимущественно1б-разрядным,а его 32-разряднаячасть используетсядля переадресациивызовов 32-разрядныхприложений16-разрядномублоку. Большаячасть функцийОВ1, включаяподсистемубуферизациивходных и выходныхпотоков, подсистемупечати, растеризаторшрифтов TrueТуреи основныеоперации рисования,перенесенав 32-разрядныймодуль, оставшийся16-разрядныйкод описываетуправлениеокнами. 16-разрядныефункции ядраWindows95 написаныпреимущественнона ассемблере .Чтоже касаетсяKernel, то его16-разряднаячасть задействуетсятолько призагрузке Windows95 и используетсятолько дляинициализации32-разряднойчасти Kernel.Сам Kernel32никогда необращаетсяк Kernel16.На рис.1.2.показано,для какихфункций используется 32-разрядныйкод,а для каких16-разрядныйкод модулейядра Windows95.
Многозадачность.Анализируя выполнение под Windows 95 16-разрядныхприложений для Windows3.x и МS-DOS, мы видим по большейчастизнакомые, хотя и серьезно улучшенные методы Windows3.x.
Как показанона рис. 1.3., 16-разрядныеприложения для Windows (“приложения win16”) выполняютсяв общем пространстве адресов в пределахсистемнойвиртуальной машины. Такие варианты, как выполнение каждого приложения win16в отдельной виртуальной машине (чтовозможновОS/2) илиполная эмуляцияWindows3.xв пределахоперационной системы (как это делаетсяв WindowsNТ).
32-разрядные приложения, созданные с учетом требованийWindows 95 (“приложения win32”), выполняются в режиме “подлинной” вытесняющей многозадачности. Кроме того,Windows95 поддерживает многопоточные приложения, способные запускать параллельно несколько процессов.
Для каждого win32-приложения и для области адресов приложений win1б используются отдельные очереди сообщений.Таким образом, приложения win16 фактически изолированыот остальных процессов. Кроме того, вWindows95 примененныеметоды очисткии восстановлениясистемы в случаеошибок. Если ошибка в программе, выполняющейсяпод Windows 3.x, могла запросто “обрушитьвсю” систему, тоошибка в одномиз приложенийпод Windows95 обычно не влияет на выполнение остальных программ. Низкоуровневыекомпонентыоперационной системы изолированы от прикладныхпрограмм, поскольку пользуются сервисом другого уровня защитымикропроцессора80386.
Использованиепамяти. Для разработчиковпрограммногообеспечения1ВМ РС долгиегоды оставаласькамнем преткновениясегментированнаямодель памяти1б-разрядныхмикропроцессоров8088/86 и 80286.
Сегментомявляется непрерывнаяобласть памяти,адресуемая16-разряднымичислами ( 64 Кбайт). Для того чтобыиспользоватьболее б4 Кбайтпамяти,пришлось разработатьсистему адресациипамяти припомощи двухчисел - адресаначала сегментаи 1б-разрядногосмещения внутрисегмента.Микропроцессоры80386, способныеоперировать32-разряднымиадресами, моглибы без всякихпремудростей( и отнимающихвремя вычислений!) адресоватьдо 4 Гбайт, оперативнойпамяти, Но МS-DOSи Windows3.xвынужденнопродолжали использовать устаревшуюсегментированнуюмодель памяти.
Дляwin32-приложений доступна плоская(несегментированная) модель памятиWindows95. Система полностью использует адресуемую память 38б-х процессоров, при этом прикладные программы могут работать с объемом памяти до 2Гбайт, остальные 2 Гбайт Windows95 использует для собственных нужд. Файл виртуальной памяти Windows95 имеет динамический размер, ограниченный только объемом жесткого дискаи не зависящийот фрагментации.
Использованиесистемныхресурсов.Под системными ресурсами в терминологииWindowsпонимают области памяти, используемые модулями USERи GDI.В ресурсах GDI располагается информация о графических объектах,используемых системой в данный момент. Ресурсы USERвключают информацию об окнах, менюи так далее. Для того чтобымаксимально ускорить процедуру обращения к ресурсам USERи GDI,в Windows3.x их объемы ограничилисегментами по б4 Кбайт.Каждое порожденноесистемой окноотнимало примерно2%системныхресурсов, акогда процентсвободныхсистемныхресурсов падалдо 20%,загрузка новыхприложенийстановиласьневозможной.
Большаячасть ресурсовWindows95 хранится в областях памяти с 32-разрядной адресацией, Соответственно объем ресурсовWindows95 практически неограничен.Те из старыхWindows-программ, которые непосредственно обращаются к системным ресурсам, могут использовать их под Windows95 так же, как ипрежде.
Файловаясистема.Одно из самых назойливых ограничений систем МS-DOSи Windows3.x- имена файлов, состоящие не более чем из11 (8+3) символов. Новая файловая система позволяетwin32-приложениям пользоваться длинными (до255 символов)именами файлов и при этом остается полностью совместимойс FAT. Разумеется,пользоваться такими именами файлов гораздоудобнее.
Некоторые компоненты новой файловой системы были использованыеще в Windows3.11 для рабочихгрупп - драйверустанавливаемыхфайловых систем,32-разрядный драйвер FАТ,32-разрядноекэшированиежесткого диска. Все эти чертыполучили дальнейшееразвитие вWindows95. Кроме того,появились 32-разрядный драйвер CD-ROM, более мощная подсистемаблоковоговвода-выводаи другие черты.
Поддержкадрайверовустройств.аиболее громоздкие МS-DOSдрайверы, занимавшиебольше всегоместа в базовой памяти или UMB,теперь не нужныпри использовании оболочки защищенного режима. Согласно документацииMicrosoft системаWindows95 обеспечивает:
полную поддержкуразделениядоступа к файлам,заменяя резидентнуюпрограммуSНАRЕ.ЕХЕ;
полную поддержкуразнообразныхзвуковых плат,СD-ROMприводови другихмультимедиа-устройств,не требуяпри этом установкиМS-DOSдрайверов;
поддержкуфайловой системыСD-RОМдисков,заменяяMSCDЕХ.ЕХЕ;
кэшированиедисков, заменяяSMARTDrive;
работу смышью не только в графической среде, но и сMS-DOS-программами,заменяя драйвер мыши для MS-DOS;
динамическоесжатие данных, заменяя DRVSpace.BIN(DBLSPACE.BIN);
полную поддержку работы станции в локальных сетях MS-NЕТи NovellNetware, заменяявсе резидентныепрограммы, которые приходилось загружать для работы в этихсетях.
Windows95 поддерживаеттекущую версиюпротоколаPlug-and-Play.При установкедополнительногоустройства,подключаемогона основеPlug-and-Play,система самазаботится оего конфигурировании.
Достаточноудобно использоватьWindows95 и без аппаратнойподдержкиPlug-and-Play- система чрезвычайномного знаето том, какиесуществуютвнешние устройстваи как идентифицировать,включая СDдисководы,звуковые карты модемы,мыши и многоедругое.
Графическаяоболочка Windows95. ИнтерфейсWindows95 соответствуеттребованиямсамых придирчивыхпользователей,дизайнерови специалистовпо эргономике.На мой взгляд,интерфейсWindows95 великолепен,и перейти наэту системустоило бы дажев том случае,если бы новымв ней был толькоинтерфейс.
Современныйпользовательскийинтерфейс.Облик оболочкиExplorer,основанныйна полноценномвоплощенииметафоры рабочегостола и папок,удобен и нагляден.Панель задачдает полныйобзор приложений,выполняемыхсистемой вданный момент.Доступ ко всемобъектам, будьто программы,документы,сетевые ресурсыили инструментынастройкисистемы, унифицирован.Имена любыхобъектов могутсодержать до255 символов.
Богатыйсервис.Оболочка Windows95 предоставляетпользователюбогатый иразнообразныйвыбор рабочихинструментов.В качествепримера назовувозможностьсоздания такназываемыхярлыков длябыстрого доступак необходимымприложениями документам,весьма удачноесредство поискадокументови встроеннуюпрограммубыстрого просмотрадокументовразличныхформатов. Выполнениемногих действий,включая установкуаппаратныхкомпонентов,отправку почтовыхи факсимильныхсообщений,установлениесвязи междукомпьютерами,автоматизированопри помощиспециальныхпрограмм-мастеров.
Широкиевозможностинастройки.Windows95 можно настроитьсотнями способов,причем доступк средствамнастройкипользованиеими весьмапросты.
Удобствоработы с документами.Windows95 - это следующийшаг к интеграцииразличныхприкладныхпрограмм однурабочую среду.Можно легкосоздаватьдокументысредствамиоболочки, переноситьданные из документана рабочий столи в другой документ,выбрасыватьв “мусорнуюкорзину”фрагментытекста, документыили целые папки,а при необходимости- возвращатьих.
Усовершенствованнаясправочнаясистема. Справочнаясистема Windowsстала удобнееи гибче. Многиеразделы справкисоставленыв виде пошаговыхруководствс возможностьювыполнениятех или иныхрекомендуемыхдействийнепосредственноиз системыпомощи.
“Эмуляция”MS-DOS.MS-DOS7.0 + Windows 4.0.Покинуть оболочку Windows95 для работыс МS-DOSпрограммами в реальном режиме можно, только инициировавперезагрузкуили отключениесистемы илиже перейдя врежим эмуляции МS-DОS (МS-DOS mode)с возможностьювозврата в графическуюоболочку покоманде ЕХIТ.Похоже, что нормальнымсостояниемWindows95 действительноявляетсяграфическийинтерфейс,который всегда находитсягде-то под рукой,в памяти компьютера.Но это не так.
В действительности“режимэмуляции МS-DOS”представляетсобой классическуюМS-DOS,работающуюв реальномрежимеи адресующую640 Кбайт оперативнойпамяти. Графическаясистема Windows 95 со всеми своимипреимуществамипо-прежнемуявляетсяоболочкойзащищенногорежима дляMS-DOS.Даже новейшие32-разрядныеграфическиеприложениядля Windows95 продолжаютиспользоватьдля выполненияотдельныхопераций функцииМS-DOSи базовую областьпамяти.
Таким образом,определениеMicrosoftWindows95 как операционнойсистемы, нетребующейотдельной копииМS-DOS,основанона том, что Windows95 включает всебя все, чтоей нужно отМS-DOS.Ничто лучшеМS-DOSне поддержитMS-DOS-приложения,именно в МS-DOSлучше всегочувствуют себяте 16-разрядныедрайверы устройств,которые все-такиприходитсязагружать(например, драйверысканеров).
При этомвесь комплекссделан так, чтообычномупользователювроде бы и незачемчто-то знатьо МS-DOS,а квалифицированныйпользователь,напротив, сможетприменять какновые,так истарые,испытанныеметоды работыс системой.
1.2. Анализмеханизмасвязыванияи внедрения
Научно-технический прогресс 90-х годов обусловилнеуклонный рост популярностиобъектно-ориентированного программирования (ООП), и в настоящее время многиепрограммистыперешли в своейработе на С++или VisualBasic. Ужесуществуютобъектно-ориентированныебазы данных,объектно-ориентированныедизайн и анализи даже объектно-ориентированный СОВОL. На естественновозникающий вопрос -не осталисьли Windowsили операционныесистемы вобъектно-ориентированномотношениидалеко позади.Безусловно,нет. ПродуктOLE( Objekt Linking and Embedding )компании Microsoftоткрываетновые путидля примененияобъектов вWindows.ОLEпредполагаетновый способмышления.Программиств среде ОППдолжен мыслитьобо всем какоб объектах- от файла на диске, элементаданных илиприложениядо аппаратногообеспеченияи операционнойсистемы. Крометого, OLEзаставляетпрограммистаследоватьстрогому наборуправил, на зависящихот языка программирования,операционнойсистемы илидаже от аппаратной платформы.
Введениев OLE.OLEслужитоснованием,на которомстроятся объекты.Эта аббревиатураозначала изначальносвязываниеи внедрениеобъектов (ObjektLinking and Embedding) свыпуском версииОLE2 применениеОLEуже не укладываетсяв рамках,связыванияи внедрения.ОLЕсегодня включаетв себя унифицированнуюпередачу данных, структурированноехранилищеинформациии автоматизацию.Не следуетсужать представлениеоб ОLЕсвязываниеми внедрением;смотреть наОLЕследует какна набор строительныхблоков, позволяющихсоздаватьсложные приложения.На самомделеMicrosoft пересталарасшифровыватьаббревиатуруОLEкак ObjektLinking and Embedding, чтобыизменить сложившеесявосприятиеОLЕ.)/2 /
Предназначениеи история ОLЕ.Если допоявления OLE1 у пользователяWindowsимелась электроннаятаблица,которуюему нужно быловставить вдокумент текстовогоредактора,обыкновенноон должен былэкспортироватьданные из таблицыв файл стандартногоформата, импортироватьданные из файлав текстовыйредактор, азатем в редактореих переформатировать.Если пользователювезло и обаприложенияподдерживаликопированиеи вставку, товместо явногоэкспорта/импортаон мог копироватьинформациючерез буферClipboard.Всякий раз,когда электронныетаблицы изменялись,процесс переносаданных нужнобыло повторять.Это, естественно,приводилок лишней затратевремени и сил.
Но незадолгодо выхода Windows3.1 появилосьОLE1, и этозначительноупростилоописаннуюиспользованияобщих данныхв подобныхприложениях(если они умелиработать сОLЕ).На смену операциямэкспорта/импортаи копированияпришли связываниеи внедрение.Стало возможнымтак подключитьэлектроннуютаблицу к текстовомуредактору,чтобы документредактораотражал самыепоследниеизменения,произошедшиев электроннойтаблице. Крометого, электроннаятаблица (котораяпоявилась втекстовомдокументе)может бытьвыбрана нажатиемкнопки мыши.При этом автоматическизапускаетсяприложениеэлектроннойтаблицы, позволяющее выполнятьредактированиеданных или другие специфическиедля таблицоперации. КомандаUpdateзакрываетэлектроннуютаблицу, иобновленнаяэлектроннаятаблица внедряетсяв документтекстовогопроцессора.
OLE2 являетсяследующимлогическимшагом в развитииэтой стратегии.В ОLE1 нажатиекнопки на электроннойтаблице, находящейсяв документетекстовогодокумента,приводило кзапуску приложенияв отдельномокне. В ОLЕ2 вводится понятиеактивациипо месту (такжеизвестное подназванием визуальногоредактирования).Приложениеэлектроннойтаблицы запускаетсякак и прежде,но вместо отдельногоокна электроннаятаблица какбы сливаетсяс текстовымредактором.Изменяетсяменю, отражаяменю электронной таблицы. Изменяетсядаже инструментальныелинейки, но вывсе равно находитесьв текстовомредакторе. Дваприложениякак бы соединяютсяи текстовыйредактор приобретаетфункциональныевозможностиэлектроннойтаблицы. Такпользователюнужды переключатьсядля просмотраданных с одногоприложенияна другое; выможете работатьс приложением,которое удовлетворяетбольшинствуваших потребностей,и внутри негоиспользоватьвозможностидругих приложений.
Для ОLE2 пришлось переделатьзаново многоеиз существовавшегов ОLE1 чтобырасширить егофункции и улучшитьпроизводительность.Например, ОLЕ1 построено надинамическомобмене данными(DDЕ).Для передачиинформациитуда и обратноDDE в своейоснове используетсообщенияWindowsи возвратныевызовы. ПосколькуиспользуютсясообщенияWindows,DDЕограничиваетсярамками одноймашины.OLE2 не опираетсяна DDEвместоэтого оно построенона протоколеLPRC(Lightweight Remote Procedure Calls -легких удаленныхпроцедурныхвызовах).
АрхитектураОLЕ.Чтобыдостигнутьсвоих задуманныхфункциональныхвозможностей,ОLEв качествестроительныхблоков используетбольшое количествообъектов. OLEсодержитновые объектыдля реализации таких концепций,как формировка(marshaling),которая обслуживаеткоммуникациюмежду процессамии опираетсяна LPRC;структурированноехранилище,которое обеспечиваетхранение документов,содержащихдругие документы;ярлык (moniker),управляющийподключениеми переключениемсвязанныхданных. Каждыйиз этих механизмовнеобходим ОLEдля выполнениясвоей работы.Крометого, ОLEвводит понятиеавтоматизации,которое нетребуется длясвязыванияи внедренияв традиционномсмысле. Автоматизациюможно пониматькак способ,посредствомкоторого пользовательможет работатьс вашим приложением внутри определенногоим самим макроязыка.Сервер-автоматOLЕуправляетсялюбым автоматнымконтроллером OLE(см. таблицу).
Приложения-автоматы- серверы иконтроллеры.
Продукт | Автоматныйсервер | Автоматныйконтроллер |
VisualBasic | да | да |
Exel | да | да |
Word6.0 | да | нет |
AutoCad12LT | да | нет |
PhotoShop3.0 | да | нет |
CorelDraw5.0 | да | нет |
Приложениякоторые одновременноявляются исерверами иконтроллерамимогут как управлятьсяиз вне,так иуправлятьдругими приложениями.В традиционномпрограммированииприложениелибо сервер,либо контроллер,но не одновременнои то и другое.OLEвынуждаетрасстатьсяс таким способоммышления ипредоставляетразработчикуприложенияправо выбора- будет ли егоприложениесервером иликонтроллером.
Объекты.Под понятиео6ьекта ОLЕпопадает все,что может иметьмашинноепредставление.Объектомможет бытьдокумент текстового процессора,рисунок иличертеж, такжечасть чертежа(допустим какойлибо слой чертежапечатной платы),видео-клип,звук илидаже приложение.Такое пониманиерасходитсясо стандартнойинтерпретацией,в которой объекты- данные, надкоторымипроизводятсяманипуляциипосредствомфункций и процедур.Хотя OLEподдерживаетобъекты тольков рамках одноймашины, это неограничениеархитектурыOLE,а лишь ограниченностьее реализации.Уже демонстрироваласьверсия OLE,названнаяраспределеннымОLЕ,в которой границымежду машинамидля объектовпрозрачны.Другими словами,если ваше приложениезапрашиваетOLE-объект,то поставщикэтого объектане обязательнонаходится навашей машине,хотя с точкизрения вашегоприложенияОLE-объект- локальный.
Интерфейсы.OLЕинтерфейс - этомеханизм,используемыйдля доступак группе связанныхс объектомфункций. Есливы хотите выполнитьв OLEоперацию надобъектом, можнозапроситьспецифическийинтерфейс,имеющий нужнуювам функцию.Когда вы запрашиваетеинтерфейс, тообращаетеськ объекту, указываяего ID-номер.Каждый интерфейсимеет уникальныйномер-идентификатор(InterfaceID или IID).Объект возвращаетлибо состояниеошибки,если объектне поддерживает запрашиваемыйинтерфейс илипроисходитдругая ошибка,либо он возвращаетуказательна требуемыйинтерфейс.
Компонентнаямодель объекта.Компонентнаямодель объекта(также известнаяпод аббревиатуройСОМ) - это спецификация,определяющаясвязующий ОLЕклей. СОМ определяет,каким образомобъекты взаимодействуют.СОМ предусматриваетдля объектовОLЕтакую специфику,в частности диктуя, какиеинтерфейсыобъекту необходимы,как объектможет бытьсоздан и когдаон может бытьуничтожен.
Структурированноехранилище.Структурированноехранилище - этоспецификация,определяющаяметод храненияобъектов.Структурированноехранилище можно представитьсебе как OLE-аналогDOS.Этот механизмподдерживает большинствоиз функций DOS- файлы и каталоги,копированиеи перемещениефайлов (файлыназываютсяпотоками, акаталоги -хранилищами.Кроме того,термин “структурированноехранилище”информациине подразумевает,что данныехранятся надиске. Так жекак и файлыDOS,которые могутнаходится наRAM-диске,жестком диске,флоппи-дискеили даже наCD-ROM,объекты, размещенныев структурированномхранилище,могут находитьсяв любом из этихмест, а такжеи в других. ЧтобыDOSмогла использоватьдля храненияинформациидругие устройства,такие, как оптическийфлоппи-дискили сетевойдиск, обычнонужен драйверустройства.Структурированноехранилищеинформациитакже имеетметоды дляподдержкинестандартныхустройств.
Составнойдокумент являетсяспециальнымслучаем структурированногохранилища,предназначенногодля хранениянаборов объектовв приложениях-контейнерах(контейнерныеприложения- это приложениякоторые используюти сохраняютобъекты).
Автоматизация.OLE-автоматизация- это надзоринтерфейсов,в типичномслучае псзволяющийиспользоватьприложениев качестве ОLЕобъекта.Автоматизациявозможна нетолько дляприложенийв форме исполняемыхмодулей (ЕХЕ),но и для динамическиприсоединяемыхбиблиотек(DLL).Автоматизацияпозволяетпосредствомнабора определенныхправил извнезапрограммироватьили специализироватьприложение.Это дает приложению,например, VisualBasic,возможностьуправлять Exel,в результатечего функцииЕхсеlстановятсядоступны вашемуприложениюна VisualBasic. АвтоматныйконтроллерOLEуправляетобъектами-автоматамичерез посредствоавтоматногосервера.
Унифицированнаяпередача данных.Унифицированнаяпередача данных- это наборинтерфейсов,которые позволяютклиенту и серверуобмениватьсяданными. Онаявляется DDE-эквивалентоми функций буфераcut/сору/paste,собранных воедино. Унифицированнаяпередача данныхпосылает уведомлениев случай еслиданные изменяются(подобно связиDDE),а также поддерживаетпереговорыо формате, вкотором данныебудут передаваться.Кроме того,унифицированнаяпередача данныхпредусматриваетвозможностьпередачи одноголишь дескриптора(handle)данных вместосамих данных.Объект-серверможет решить,что вместопередачи 20 Мбайтданных в оперативнуюпамять черезбуфер обменаобъекту-клиентубудет передандескрипторданных, чтобыклиент сам могих получить.Это избавляетсервер отнеобходимостичтения всехданных и передачиих клиенту, аклиента отнеобходимостисамостоятельнойобработкиданных. Этотакже избавляетконечногопользователяот сиденияперед экраномкомпьютерав ожиданииокончанияобмена.
Связываниеи внедрение(Linkingand Embedding).Связываниеи внедрение- два принципа,которые потрадиции известныв OLE(Objekt Linking and Embedding)лучшевсего. Связываниеи внедрение(вместоэтоготеперь говорятпросто о документахОLЕ)позволяютобъекту-клиенту(который можетбыть другимприложением)прикрепитьсяк объекту-серверу.Присоединениеможет либоосуществлятьсясвязыванием(данные находятсявне составногодокумента),либо данныемогут внедрятьсявнутрь составногодокумента.Внедренныеданные сохраняютсянепосредственнов документе,в то время какпри связываниидля доступак данным OLEв действительностисохраняетсвоего родадорожную карту.Дорожной карта называетсяярлыком (moniker).Когда ОLЕполучает запросна восстановленияданных, оносмотрит наярлык (дорожнуюкарту), чтобыих отыскать.Связанныеданные могутхраниться вне принадлежащемОLЕфайле или вструктурированномхранилище(возможно даже,что данныенаходятсягде-то в самомсоставномдокументе).
Составнойчастью связыванияи внедренияявляется способностьOLEвыполнятьактивацию поместу.В OLE1 при двойномнажатии кнопкимыши над связаннымили внедреннымобъектом запускаетсясервер этогообъекта.В ОLЕ2 возможна активацияпо месту. Дляпользователядва приложенияявляются какбы одним. Активацияпо месту присоединяетнужные частиприложениясервера (такие,как пунктыменю и инструментальные линейки) кприложениюклиента, когдапользовательработает свнедреннымобъектом. Придвойном нажатиикнопкой мышинад внедреннымобъектомпроисходитпреобразованиеприложенияклиента,в нем изменяютсяменю и линейкиинструментов,а такжепрочие элементыинтерфейса,для работы сприложениемсервера внедренногообъекта.При двойномнажатии кнопкоймыши над связаннымобъектом приложениесервер запускаетсяв отдельномокне (как вOLE 1).
В терминахOLEописанное вышедействие (двойноенажатие дляактивациисервера)называетсяактивациейизвне (outside-in).При активацииизвне серверобъекта неактивируется(не запускается),пока пользовательне нажмет надобъектом кнопкумыши дважды.Активацияизнутри (inside-out)требует, чтобыобъект-клиентактивировалобъект-сервервсегда, когдаобъект-сервервиден. Серверпринимаетуправлениепо однократномунажатию кнопкимыши - потому,что для активируемыхизнутри объектовон уже запущензаранее.
Как можновидеть, архитектураОLEдостаточнобогата, а связываниеи внедрение- лишьчасть общейструктуры.
1.3. Выбор иобоснованиеязыка программирования
Сегодня всвязи с всеболее ускоряющимисятехнологиямипрограммирования,постоянноповышаютсятребованияк среде и к самомуязыку программирования.Наиболее злободневныетребованияможно описатьтаким образом.
1. Отделениеэлементовпрограммы,связанных спользовательскиминтерфейсомот алгоритмическойчасти. Это позволяетминимизироватьили вообщеизбежать при правильном проектировании проекта изменений в алгоритмическойчасти проектапри модернизациипользовательскогоинтерфейса вне зависимостиот причин их вызывающих:требование заказчикапроекта позамене неверной надписи или кардинальной смены концепции вследствиеперевода разработокна другую платформу.
2. Простотаи скоростьсоздания/модернизациипользовательскогоинтерфейсаи самих программ,путем использованияуже готовыхэлементов (блоков), реализующихнекие крупныефункции взаимодействияс человеком или другойпрограммой.
3. Еще раз простота, атакже ясностьи наглядностьпри программированиипользовательскогоинтерфейса,скрывающая нижний, сложныйслой и оставляющаяна поверхноститолько малую, но самодостаточнуюнеобходимуючасть айсбергауправленияэлементамиинтерфейса.
4. Использованиеуже существующегокода, возможно,написанногона другом языкепрограммирования.
При разработкеприложенийдля Windowsвышеизложеннымпринципам оченьудачно соответствуетVisualBasic. Основныесвойства этогоязыка программированияприведены ниже.
ВозможностиVisualBasic.
1.Все элементыпользовательскогоинтерфейсаможносоздавать/модернизировать/удалятьбез всякойсвязи с алгоритмической"невидимой" частью программы.Все, что связанос взаимодействиемс человекомили другимсубъектомуправления,находится вфайлах форм (FRМ),VВХ и ОСХ, а все, чтосвязано с расчетнойчастью, - в файлахстандартных модулей (ВАS)и классов(СLS), или, если нужнаскорость обработки- в специально написанныхна С, Pascal,Fortran илидругих языкпрограммирования,DLL.Но это разнесениена самом делечисто условнои делаетсяпросто с целью облегченияработы самомуразработчику или, что болееважно, - групперазработчиков.На самом деле,при небрежномпроектированииили небольшойпоставленнойзадаче и интерфейснаяи алгоритмическаячасть могутрасполагаться в одном модуле(FRМили ВАS).
2.Формированиепользовательскогоинтерфейсав VisualBasic похожена работус детскимконструктором- все элементына виду, всеэлементы просты,носложностьсоздаваемойконструкцииограниченатолько изобретательностьюразработчика.Причем надоиметь ввиду,что число элементовэтого конструкторапостоянно иочень быстрорастет. Сотни(на начало 1995 годаоколо тысячи)стороннихпроизводителейи фирм постоянновыбрасываютна рынок всеновые, болеемощные моделирасширениядля VisualBasic.
3.Если уже имеетсяготовый алгоритмБПФ (БыстрогоПреобразованияФурье)на ассемблереили алгоритмбыстрого поискав отсортированномсписке на С илиPascal,не надо переписыватьих на VisualBasic. Достаточно оформить ихвиде DLLи использоватькак функции.
4.Можнос помощью VisualBasic для Windowsсоздавать запускаемые“.EXЕ”файлы.VisualBasic для Windowsсоздает выполняемые (“.ЕХЕ”) файлы, ноне самодостаточные.Все программы, созданные наVisualBasic, должныраспространятьсяс файлом VBRUNx00.DLL (x - номер версии 1,2 или 3)илиVB400xx.DLL (xx - 16 или 32). Эта DLL обязательно должна присутствовать в каждой системе, где используютсяпрограммы наVisualBasic дляWindows.
VisualBasic дает возможностьсоздаватьприложения,работающиесреде Windows.Программы компилируютсяв псевдокод(р-коде) и помещаются в файлы с расширением “.ЕХЕ”. Когда программазапускается,файл с р-соdе обращаетсяк VBxxxx.DLL, котораяинтерпретируетр-codeв последовательностьинструкцийWindows АРI.
5. Использование функций WindowsАРIв VisualBasic довольно просто- необходимоее объявить(declare)всекцииобъявленийили модуле кода.
WindowsАРI- набор DLL,содержащих функций общегоназначения среды Windows.Вызов функцийАРIпозволяетвыполнитьмножествовещей,включаяотображениеменю,манипуляции с изображениями,проигрышмузыкальногофрагмента ит.д.
6.Используемыймеханизм добавленияэлементовуправления VВХ( VisualBasic eXtension - модули расширенияVisualBasic) явилсобой "черный ход" для разработчиков третьих фирм по внедрениюсобственныхобъектов всреду разработкиVisualBasic. Механизм,пусть и необъектно-ориентированный, но позволяетпросто и довольноэлегантнымпутем добавлятьновые программныекомпонентыбез дополнительногопрограммирования.МеханизмVВХявляетсяспецифическиминтерфейсом для VisualBasic.
7.Существуетоткрытый стандартныйинтерфейс дляработы с программнымикомпонентами,в каждую программуи приложениеможно интегрироватьстандартныйнабор средств,позволяющийиспользоватьв дальнейшемданные программыв виде компонентдля будущихприложений.Механизм ОLЕ и новая технологияв виде ОСХ (ОLЕCustomControl).ОLЕне только предлагаетстандарт вопределенииобъекта, нотакже определяет,как и какимобразом объектымогут взаимодействоватьдруг с другом. /3 /
Основныеновшества вVisual Basic версии4.0
наличие 16- и32-разряднойредакции;
работа всреде Windows3.1, Windowsдля РабочихГрупп 3.11,Windows 95,Windows NТ;
возможностьсоздания ОLЕAutomationобъектов;
поддержкаOСХи VВХ;
расширениеТооlВох(Окно Инструментария)за счет ОLЕInsertableобъектов;
использованиеJЕТверсии 2.5;
наличие новыхи поддержкаспециализированныхDataBound Control (объектов,значительноупрощающихработу с базамиданных);
использованиеВАО версии2.0;
открытаяи расширяемаясреда разработки;
возможностьразбиениядлинных строкв программномкоде;
расширениелексики языкапрограммирования;
запуск одновременнонесколькихкопий VisualBasic 4.0;
директивыусловной компиляции;
поддержкафайлов-ресурсов;
создание32-разрядныхприложений;
Директивыусловной компиляциипрограммы.Разработчикимеет возможность,используядирективыусловной компиляциивыбирать, например,какую версиюприложения(16- или 32-разрядную)он собираетсясоздать. Используяподобные директивы, можно создаватьпрограммы,имеющие одини тот же исходныйтекст, но которыепосле компиляциисмогут работатьна различныхплатформах.
ObjectBrowser (Инспекторобъектов).Данное средствопредназначенодля облегченияидентификациии управлениявсеми ОLЕAutomationServers, накоторыеесть ссылкив проекте. Выбрав нужный объект,разработчикможетлегковыбрать и передатькорректныйсинтаксисвыраженияработы с объектомв текст программыили вызватьвстроеннуюпомощь дляданного объекта.
Встроенныйредактор.Увеличенафункциональнымощь встроенногоредактора.Во-первых, расширенывозможностинастройки,точнее постройки,“насвой вкус”формата отображаемыхстрок кода, комментариев,ключевых слов,идентификаторов,точек останова,и т. д. Можно задатьразличныефонты, цветаи размеры фонтовдля облегчениячтения текстапрограммы.Во-вторых, улучшенаработа с отладочнымокном. Большенет необходимостидержать и окнос отлаживаемымтекстом программыи окно с отображаемымипеременными- теперь достаточноиспользоватьодно окно, состоящее из двух подвижныхчастей: нижнееподокно представляетсобой полнофункциональныйредактор кода,верхнее жепоказываетсодержимоепеременных.
Расширениелексики языкапрограммирования.Дляобъявленияподпрограмми функций, доступныхили не доступныхиз других модулейпроекта, введены дополнительныеслужебные слова при объявлениипроцедур: Publicи Privateсоответственно.Visual Basic 4.0 “прихватил”теперь кусочекPascal,добавив ксвоемулексическомузапасу выражения“With”,”ForEach”, а также добавленыновые типыданных - Byte(простое беззнаковое,для представлениячисел в диапазоне0-255), Вооlean16битовые(2-байта) числа,которые могутприниматьтолько двазначения:True или False)и Collection.Collection позволяетпостроитьсобственнуюгруппу пронумерованныхобъектов.ИспользованиеCollectionболее предпочтительно,чем использованиемассивов вследствиебольшей гибкостииндексов, иналичия наследуемыхметодов длявставляемыхи удаляемыхобъектов коллекции.
Процедурысвойств (propertyprocedures).Появиласьвозможностьсоздавать дляобъектов (форм,стандартныхмодулей и модулейклассов) собственныеспециализированныесвойства (properties),и привязыватьк ним выполняемыйкод, которыйбудет вызыватьсяпри обращениик свойству.
Расширяемостьоболочкипрограммирования.Оболочкаразработки(IDE)самого VisualBasic 4.0 такжеможет бытьуправляемчерез ОLЕAutomation,что позволяетОLЕприложениямсоздаватьи размещатьв специальноеменю Add-InVisualBasic 4.0 своикоманды,расширяя такимобразом возможностиIDE.
СозданиеОLЕObjekt приложенийи классы (Сlasses).Одной из основных претензий к VisualBasic со стороны профессиональныхпрограммистовслужилоотсутствиесредств созданияготовых модулейдля последующегоиспользования. Программист вынужден был обращаться к С, С++, Раsсаlили другимязыкам программированиядля созданияDLLивызовам функций DLLиз программына VisualBasic или,например, изприложенияMicrosoftOffice. С выходомVisualBasic 4.0 даннаяситуация кореннымобразом изменилась,программисты могут создать объекты ОLЕAutomation.Библиотекиподобных объектов, каждый со своимихарактеристикамии методамиуправления,могут быть использованыиз любого приложения,имеющего возможность контролироватьприложение,являющееся ОLЕобъектом(OLE Object Application).
По определению,такие объектыназваны классами(Claases) - (эту часть языкаVisualBasic взялот С++) и располагаютсяв специальныхмодулях (classmodule). Длясовместимостис программами,реализованнымив третьей версиии использующимиVВХ из стандартного набора, VisualBasic 4.0 включаетОLЕCustomControl (OCX), заменяющиеэтиVВХ.При вызовепроекта программы,разработаннойв среде предыдущей версии VisualBasic и использующейодин из стандартныхVBXпредложитавтоматическипреобразоватьссылки на новыеОСХ.Такие приложения,как MicrosoftExcel дляWindows,MicrosoftWord для Windowsи другие,являющиесяОLЕприложениями,теперьможно вставлятьв Окно Инструментария(ТооlBох)как обычныеэлементы управления.
Таким образомможно сказатьоб некоторойуниверсальностиVisualBasic длясоздания приложенийдля Windows.
2. РАЗРАБОТКАСТРУКТУРНОЙСХЕМЫ И АЛГОРИТМОВПРОГРАММЫ
2.1. Функциональнаясхема работыWindows95
Операционнаясистема должнаобеспечиватьвзаимодействиеприложениякак самой верхнейступени с самымнижним уровнемиерархии - аппаратнойчастью компьютера,черезнаборкаких-либостандартныхфункций иподпрограмм.Кроме того онадолжна обеспечиватьпользователяудобным интерфейсом.Рассмотримкак это реализованов выбраннойоперационнойсистеме Windows95. Функциональнаясхема работыоперационнойсистемы Windows95 представленнаяна рис 2.1.
Аппаратнаячасть компьютерапредставляющаясобой какие-либоустройстваввода-выводаинформации(клавиатура,мышь, принтер,плоттер, сканер,устройствочтения компактдисков, монитор и т.д.) подключенана системнуюшину через такназываемыеконтроллерыустройствимеющие в адресномпространствепамяти вычислительноймашины какие-тоадреса называемыепортами ввода-вывода.Через эти портыпри низкоуровневомпрограммированиипрограммистможет обмениватьсяинформациейс устройством.Но сейчас такаятехнологиясчитаетсяустаревшейи приводящейк излишнимзатратам ресурсов.Ведь в такомслучае стандартныефункции обменаинформациейдолжны находитсяв каждой программекоторая моглаобмениватьсяинформациейс внешнимиустройствами.
Windows95 обеспечиваетвзаимодействиес внешнимиустройствамикак с потокамиинформациинезависимоот самого устройствачерез своисобственныедрайвера устройств.
Итак, устройстваобмена информациейподключаютсяк компьютеручерез контроллеры,которыми управляютдрайверы устройств.Драйверы устройствразработанытаким образом,что при передачеинформациина устройствоони организовываюточередь следуякоторой наустройствопередаетсяинформацияот различныхприложений(например принтер).Однако припередаче информациив обратномнаправлении(от устройства)драйверы создаюттак называемыесобытия (напримерсобытие “законченапечать”от принтераили “нажатакнопка”от мыши), которыеоперационнойсистемой помещаютсяв глобальнуюочередь событий,из которойсобытия попадаютв специальныйблок определенияназначениясобытия. Тампо информациихранящейсяв системе:приоритетсобытия, какоеприложениеоткрыло потокобмены с устройством,приоритетприложенияоткрывшегопоток обменаи пр. Определяетсяназначениесобытия, егопринадлежностьопределеннойвиртуальноймашине организованнойсистемой. Поэтому назначениюпередаетсясообщение опроисходящемсобытии приложениюкоторое должноего обработать.
В отдельнойвиртуальноймашине приложенияпо приходесобытий организовываетсялокальнаяочередь событий.Из которойсообщения особытиях передаютсяпо так называемомуфокусу объектукоторый в этотмомент находитсяв фокусе. Объектомможет бытьлюбой элементуправления(как то кнопки,поля ввода,имиджи, иконки,картинки ит.д.). С объектомсвязана целаясистема процедури функций которыемогут обрабатыватьсобытия приходящиеобъекту, а такжемогут передаватьих другим объектамили выше наступень поиерархии объектов(элементы управленияпередаватьформам,а формы в своюочередь болееглобальнымформам илиокнам приложенийили самой системе).
Таким образом,задача программистазаключаетсяв созданииподпрограмми функции реагирующихопределеннымобразом насобытия приходящиеот системы, длявсех объектовкоторые могутиспользоватьэти событияв целях определяемыхпрограммойв целом, дляконкретнойзадачи поставленнойперед программой.
2.2. Используемаятерминология
Итак, VisualBasic предназначендля быстрогосоздания приложенийв среде Windows,и как любаяпрограмма дляWindows,программа,написаннаяна VisualBasic, должнаиметь как минимумодно окно.
В терминахVisualBasic все окнаесть формы, впрограмме может быть множествоокон-форм. Формыв программеслужат дляотображения элементовпользовательскогоинтерфейса.На каждой формеможет находитсянекотороеколичествоэлементовуправления,а также графикаи даже другие формы, причем,как вырожденныйслучай, на формеможет вообщене располагатьсяни одного элемента.
В том случае,когда приложениеиспользуетокно-форму для отображенияразличных типовинформацииили предоставляетвозможностьработать внесколькихрежимах, чтобыне засорятьплощадь окна множестводополнительныхэлементов,используетсялинейка ниспадающихменю. Каждоеменю содержитсписок пунктов,которые в своюочередь могутразворачиватьсяв подменю. Названияподобных вложенныхподменю, а такжепунктов меню,при выборекоторых потребуетсяв отдельномдиалоговомокне выполнитьнекие дополнительныедействия, приотображениив списке пунктовменю дополняютсясправа многоточием.
Элементыуправленияслужат дляотображенияинформации,выбораиз некоторогомножестваобъектов,а также дляболее ясногои четкого восприятия.
Любая,даже простейшаяпрограмма наVisualBasic, имеетсвой Проект(project),информациюо котором хранитсяв специальном файле. В проектпрограммы,отображаемомв специальномокне Проекта,помещаютсявсе формы, модулии файлы, совокупностькоторых и составляетпрограмму.
VisualBasic не являетсяобъектно-ориентированнымязыком вдогматическомпонимании ООП(объектно-ориентированноепрограммирование), VisualBasic базируетсянапарадигмесобытийно-ориентированногопрограммирования: программа -суть некийнабор реальногоили виртуальногомира, каждыйиз которыхпонимает некийограниченныйнабор событий(возможна,расширяемый).По приходу каждого событияиз набораотслеживаемыхсобытий формыи элементыуправлениямогут реагироватьопределеннымобразом, всоответствиис программнымкодом, реализованнымпрограммистомдля каждогообъекта.
Для внесенияуправляющегопрограммногокода для событийи методовиспользуетсяРедактор Кода,который служитдля создания,просмотра имодификацииподпрограмм(Sub)и функций (Function).Процедурапредставляетсобой подпрограмму,котораяне возвращаетрезультата.
Программныйкод, связанныйс формами иэлементамиуправления,служит дляреализацииответной реакциипрограммы надействия пользователяили приходсистемногособытия.
Программныйкод может находитьсяв специальных программныхмодулях (стандартныемодули и модуликлассов) или быть “привязан”только к элементууправления(то есть объекту)или форме.
Кроме наборасобытий (events),для каждогоэлементауправлениясуществуетпредопределенный(возможно,расширяемый)набор свойствили характеристик(properties),представляющихсобой некиеначальныеустановки.Данные свойства разделяютсяпосфередоступности:естьсвойства, которыемогут устанавливатьсятолько в режимеразработки, только во времявыполненияпрограммы илив обоих случаях. Установкаи настройкасвойств объектовосуществляетсяв окне Свойств(Properties).
Для элементовуправленияи форм такжесуществуетсвязанный сними наборметодов (method),которые можнорассматриватькак набор команд,понимаемыхданным объектом.
Для некоторыхотображаемыхна экране элементовуправления есть возможностьзадавать различныеосновные цветаи цвета фона.Для удобствавыбора нужныхцветов используетсяЦветовая Палитра(ColorPalette).
2.3. Синтез общейструктурнойсхемы программы
Таким образом переходя ксинтезу структурнойсхемы программыможно условноразбить нанесколькологическихблоков. Каждыйиз которыхпредставляетсобой наборпривязанныхк объектамподпрограмм,функций и данных(рис. 2.2).
Основнымзвеном программыявляется главнаяформа программы(Main_Form.frm)представляющаясобой главнуюинтерфейснуючасть программы.В которой происходятвсе преобразованияпроекта. Проектом,в контекстеданной программы,называетсясовокупностьдокументови функций OLEAutomation находящихсяв рабочей областипрограммы вопределенномвзаимодействиидруг с другом.Над которымимогут производитсяопределенныедействия посозданию,редактированию,удалению, запускуфункций и пр.Приводящиек изменениюкак самогопроекта в целом,так и простодокументоввходящих впроект.
В главнойформе содержатсякоды по обработкевсех менюсодержащихсяв программе,в том числе ифункций работыс системнымбуфером обменаинформацией.Кроме тогоглавная формасодержит программныйкод обрабатывающийвсе измененияпроекта с точкизрения пользователя.В том числесоздание документов,функций, ихперемещениев проекте, удалениезапуск функцийна обработкудокументови пр.
Из главнойформы производитсяактивизациявсех дочернихформ программыв режиме модальныхокон. То естьокон до закрытиякоторых работаосновной программыглавной формы(а иногда и всейсистемы в целом,как напримерв случае открытияокна сообщенияо глобальнойошибке возможноприводящейк разрушениюсистемы)приостанавливается.
Дочернимиформами поотношению кглавной формеявляются, формасоздания иредактированиясвойств документов(MakeDocForm.frm),форма созданияи редактированиясвойств функцийOLE Automation (MakeFunkForm.frm),форма созданияи изменениярегистрационныхданных приложенийподдерживающихOLEAutomation илидля которыхнеобходимаэмуляция этойподдержки(MakeDocForm.frm).
Форма созданияи редактированиясвойств документовсодержит всенеобходимыеэлементы управления(объекты) дляввода и измененияданных о документе,а также еговизуальномпредставлениив проекте (тоесть его иконки).Такжев этой формесодержитсяпрограммныйкод обрабатывающийэти элементыуправленияи вносящийизменения вглобальнуюструктуруданных о документахв проекте. Этаформа представляетсобой окно подназванием“Свойствадокумента”.
Форма созданияи изменениярегистрационныхданных приложенийтакже представляетсобой окно подназванием“Регистраторприложений”и также содержитв себе ряд объектов(элементовуправления)и программныйкод обрабатывающийэти элементыуправлениядля измененияданных о зарегистрированныхприложенияхкоторые могутучаствоватьв проекте вкачественепосредственныхобработчикахдокументов,а также в видефункции OLEAutomation.
Форма созданияи редактированиясвойств функцийOLE Automation представляетсобой окно“Свойствафункции”и содержитэлементы управленияпозволяющиередактироватьсвойства функцииOLEAutomation. Форматакже содержитпрограммныйкод модифицирующийглобальныеданные о функцияхв проекте.
Все глобальныеданные, а такжеподпрограммынеобходимыедля работыбольшинстваблоков программы и не входящие в какую либоформу содержатсяв специальноммодуле (MainModule),который несодержит в себеникаких объектови вообще визуальноне определяется.Он включаетв себя толькопрограммныйкод определяющийвсю структуруданных и хранитв себе данныео регистрацииприложений,свойств функцийи документов.А также данныенеобходимыедля нормальнойработы программыв целом. Както, различныепеременныепо средствомкоторых производитсяобмен даннымимежду различнымиформами и окнамивнутри самойпрограммы. Атакже модульвключает в себяподпрограммыи функции необходимыедля всего проектав целом. Напримерфункции открытияпроекта, сохраненияпроекта наносителе информациии т.д., которыене входят вкакую-либоформу и могутвызыватьсяиз любой частипрограммы.
Следующимлогическимблоком программыявляется блокобработкиошибок. Он строгоговоря не выделяетсяв в программномвиде как отдельнаячасть программы,но он содержитсяпрактическив каждой программнойединице будьто подпрограммаили функция.Однако каксущественнаячасть всегопрограммногокомплекса егостоит отметитьотдельнымблоком.
Кроме форми модуля вструктурупрограммывходит основнойблок программногокода обеспечивающийвзаимодействиес механизмомOLEAutomation операционнойсистемы Windows95. Как разв этом блокеосуществляетсявыполнениефункций OLEAutomation, на неголегла основнаячасть формированиясообщений дляWindowsи приложений,а также расшифровкаответных сообщенийсистемы и программ.
2.4. Разработкаструктурнойсхемы взаимодействияпрограммы смеханизмомсвязыванияи внедрения
Для болеекачественнойразработкиалгоритмавзаимодействияпрограммы смеханизмомсвязыванияи внедренияобъектов Windows95, необходиморассмотретьфункциональнуюсхему работыOLEи системы OLEAutomation (рис2.3).
В общем видеструктуравзаимодействияоперационнойсистемы и приложенийсостоит из трехчастей:
OLEServer - OLE серверэто приложениеобеспечивающеенекотороеколичествофункций
OLEClient (Controller) - OLEклиент(контроллер)является приложениемкоторое пользуетсяфункциями OLEAutomation OLE клиента
Windows95/NT являетсяпосредникоммежду клиентамии серверамиOLE обеспечиваяих взаимодействиечерез рядстандартныхпотоков и буферовобмена информациейOLE.
OLEсервер,вернее егочасть отвечающаяза OLEвзаимодействиесостоит из двухчастей. РегистратораинтерфейсовOLEнаходящихсяв ядре, и собственноядра OLEсервера,которое в своюочередь состоитиз OLEинтерфейсовобеспечивающихпри обращениик конкретномуинтерфейсуряд функцийназываемыхметодами, онито и являютсяна самом делеOLE Automation функциями.OLEсерверявляется несмотряна простотуописания наиболеесложной частьювсего взаимодействияпосредствамOLE,с точки зренияпрограммиста.Эта сложностьобусловленанепосредственносложностьюсамих методовOLE,обеспечиваемыхсервером.
Windows95 являясьпосредникомво всех операцияхмежду клиентоми сервером,выполняеткоординирующуюроль администраторапри передачеданных. А такжеименно Windowsхранитинформациюо всех интерфейсахсерверов, здесьсуществуетструктурированноехранилище дляэтих целей.Также Windowsвыполняетрегистрациюэтих интерфейсови отвечает назапросы IIDот клиентов.Кроме тогоWindowsсодержитбуфер обменаинформациеймежду клиентоми сервером.Блок OLEAutomation производитнепосредственноесоединениесервера и клиентаи обеспечивает их взаимодействие.
Данные могутпередаватьсячерез буферобмена Widows,а также непосредственномежду методамии объектом, ноэтот способсчитается некорректнымпоскольку непозволяетперемещатьOLEобъект.
OLEклиент(контроллер)должен, кромеестественновызовов самихметодов OLE,обеспечиватькорректнуюобработку всехсообщений вобратном направлении(от сервера),Клиент состоитиз трех взаимосвязанныхчастей:блокзапроса IIDдля интерфейсаобъекта,блокобработки ОLEдокумента и самого OLEобъекта.Первая частьвыполняеттолько подготовительнуюфункцию, оназапрашиваетIIDинтерфейсдля конкретногообъекта у Windows95, получаетэтот интерфейси передает егодальше во второйблок. Во второмблоке проиходитсама обработкадокумента OLEобъекта.Именно в этомблоке обрабатываютсятакие событиякак активацияизвне и активацияизнутри. Применяяпри этом соответствующиеметоды обработкиэтих событийпо полученнымот первогоблока интерфейсы.По этим интерфейсамблок производитактивизациюметодов применяялибо уже заранееизвестнуюинформациюо параметрахметодов и ответнойреакции методовна их активацию,либо полученнуючерез интерфейсэту же информацию.Таким образомвоздействуяна объект иявляясь посредникомпри передачеинформациимежду методамисервера и объектом.
OLEобъектэто сам документпомещаемыйв приложениеклиента. Представляетсобой самыйзависимыйэлемент во всейструктуревзаимодействия.Он сам ни начто не влияет,однако на неговлияют методысервера вызываемыеклиентом. И насамом делевключает в себятолько данныеи их структуру.
Такимже образом каки структураOLEклиента, должнавыглядетьструктурнаясхема той частиконтроллераавтоматическисвязываемыхобъектов, котораяотвечающаяза взаимодействиес механизмомсвязыванияи внедренияWindows95.
Поскольку,по сути, контроллердолжен являтьсяклиентом практическидля всех приложенийприсутствующихв системе, тоинформацияо OLEинтерфейсахотдельныхприложенийзаранее неизвестна. Поэтому эта информациядолжна бытьсобрана передвнедрениемконкретныхобъектов, тоесть в процессеработы программы.Это вносит своикоррективыв конкретнуюструктурнуюсхему взаимодействияпрограммы сOLE- добавляетсяблок сбора иинтерпретацииинформациио интерфейсахприложений(рис 2.4).
Кроме тогосхема должнавключать в себяблок эмуляцииOLEдля приложенийне предназначенныхизначальнодля OLEвзаимодействия.
Таким образомпроизведенсинтез структурнойсхемы взаимодействияс механизмомсвязыванияи внедрения(OLE).
Приступаяк разработкеструктурыданных необходиморазделятьданные по критериювозможностидоступа до них.Так данныеприменяемыетолько в формедолжны находитсяв самой форме,а данные доступдо которыхпроисходитиз несколькихформ называютсяглобальнымии обычно помещаютсяв модуль сприменениемпрефикса Public(для возможностидоступа до нихиз вне).
В этом разделебудет описанаструктураданных из главногомодуля программыв котором хранятсяглоальныеданные необходимыедля всего проекта.
Модуль состоитиз четырехчастей (рис.2..5), три из которыхпредставляютсобой структурыдля представленияв машинном видеданных о регистрированныхприложениях,о документахнаходящихсяв проекте и офункциях применяемыхв проекте дляработы с документами.В четвертойчасти находятсяданные необходимыедля взаимодействиямежду формами,и нормальнойработы контроллерав целом.
Данные орегистрированныхприложениясостоят изследующихчастей:
глобальныйномер регистрации- представляетсобой сквознуюнумерацию всехкогда либозарегистрированныхприложенийне зависящеюот количестваустановленныхи удаленныхприложенийна данный конкретныймомент времени;
описание- текст описывающийработу приложения,составляетсяпользователем;
имя файла- указатель назапускаемыйфайл приложениядля работы сним блока OLEAutomation;
имя приложения- собственноерасширенноеимя приложенияуказываемоедля удобстваработы с программой;
маска файлов- одно или несколькорасширенийимен файловдокументовс которымиможет работатьзарегистрированноеприложение.
Данные одокументахнаходящихсяв проекте хранятсяв следующейструктуре:
глобальныйномер документа- представляетсобой сквознуюнумерацию всехкогда либосозданныхдокументовне зависящеюот количествасозданных иудаленныхдокументовна данный конкретныймомент времени;
описание- текст описывающийдокумент,составляетсяпользователем;
имя файла- путь и имя файладокумента;
время созданиядокумента;
имя приложения- имя приложениякоторое обрабатываетэтот документ(выбираетсяиз зарегистрированныхв программеприложенийили стандартныйобработчикWindowsдокумента стаким расширением);
иконка - путьи имя иконкидля визуальногопредставлениядокумента вокне проекта;
подпись -текст под иконкойдокумента вокне проекта;
координатыдокумента вокне проекта;
указателина исходящиеиз документафункции OLEв проекте.
Наиболееобъемнымиявляются данныео функциях OLEсодержащихсяв проекте, состоящиеиз следующихпеременных:
глобальныйномер функции - представляетсобой сквознуюнумерацию всехкогда либосозданныхфункций независящею отколичествасозданных иудаленныхфункций наданный конкретныймомент времени;
описание- текст описывающийфункцию, составляетсяпользователем;
имя файла- путь и имя файлафункции;
время созданияфункции;
функцияавтомата -вызываемыйметод;
имя приложения- имя приложениякоторое этуфункцию (выбираетсяиз зарегистрированныхв программефункций);
иконка - путьи имя иконкидля визуальногопредставленияфункции в окнепроекта;
подпись -текст под иконкойфункции в окнепроекта;
координатыфункции в окнепроекта;
флаг автоматическоговыполненияфункции в случаеизменениялюбого входящегов из функциюдокумента;
флаг запросапользователяперед выполнениемфункции;
указателина исходящиефункции OLEв проекте;
указателина входящиефункции OLEв проекте;
указателина исходящиеиз функциидокументы;
указателина входящиев функцию документы;
линковщикдокументови функции - строкасвязывающаядокументы ифункцию в однустроку используемуюпрограммойв качествевызова функциис параметрами.
Четвертаяобщая частьсостоящая изразличныхпеременныхнеобходимыхдля работы всейпрограммысостоит изследующего:
различныефлаги устанавливаемыеи снимаемыеразличнымифункциями иподпрограммамидля разделенияресурсов выделенныхпрограмме;
глобальныепеременныеопределяющиеколичестводокументов,функций OLEи зарегистрированныхприложенийна данный моментвремени;
переменныеобмена информации(определяющиесостояниебуфера обменаи структуруданных находящихсяв буфере обмена).
Таким образомопределенывсе данныенеобходимыедля работы всейпрограммы вцелом. Крометого в каждойотдельной формесуществуетобласть объявленияпеременных,в которойопределяютсяпеременныедля работыконкретно этойформы.
Существуюттакже и областиобъявленийпеременныхв каждой отдельнойфункции иподпрограммедля работы этойфункции. Такоеразделениеобластей видимостипозволяет более гибко управлятьданными в программе.
Передзапуском программыконтроллерапрограммунеобходимоинсталлироватьее на жесткийдиск. Это можетвыполнить какспециальнаяпрограммаинсталляции,так и сам пользователь.Нужно установитьсаму программув специальнуюдиректорию,а специальныеDLL-файлыдобавить вдиректориюс системойWindows.Процесс этосложный дляначинающегопользователя.По этому рекомендуетсядоверить егопрограммеинсталляции.
После установкипрограммы надиск ее можнозапускать, дляэтого нужналишь дваждыщелкнуть наиконке программыили в главномменю Windows(“Пуск”)выбрать пункт“Выполнить”и изменить путьдо исполняемогофайла до запускаемогофайла контроллера- Controller.exeи нажать кнопку“ОК”.После чегопрограммазапуститсяи на экранепоявится главнаяформа программы(окно).
Интерфейспрограммыпозволяет, знаяобщие принципыпостроенияинтерфейсав системе Windows95, без особоготруда научитсяпользоватьсяпрограммой.Кроме тогоконтекстнаяпомощь и использованиестандартныхклавишныхкомбинацийдля стандартныхопераций применяемыхв системе намногооблегчаютпользованиепрограммой.
Основноеокно программысостоит израбочей областии меню, а такжеменю появляющеесяпри нажатииправой кнопкимыши (рис. 3.1).
Все управлениепрограммойобычно осуществляетсяграфическимманипулятором(мышью) и наборомгорячих клавишна клавиатуры,возможно управлениетолько клавиатурой.
Системаниспадающихменю позволяетоперативноуправлятьпроцессомпроектирования.Меню “Файл”состоит изпунктов открытияпроекта, сохраненияпроекта, открытиенового проекта,выхода из программы.Меню “Правка”позволяетпосредствамбуфера обменаинформациейобмениватьсяинформациеймежду проектами,а также изменятьтекущий проект, копироватьобъекты в буферобмена и изнего, удалятьчасть объектов(рис 3.2).
Меню “Создать”кроме непосредственнопрямого выборав линейке меню,через меню“Правка”,можно получитьнажав правуюкнопку мыши,из него можновыбрать объект(документилифункциюOLE,илизарегистрироватьприложениеOLE Automation)которыйнеобходимосоздать.После выбораобъекта запускаетсяредактор свойстввыбранногообъекта (рис.3.3).Как видно изиллюстрации,в этих формахвсе свойстваописаны непосредственнов форме.
Все свойствадокументови функций послезаполнениясохраняютсяв переменныхглавного модуля.Назначениепеременныхглавного модуля,а значит и назначениесвойств объектовбыли описаныв предыдущемразделе
Заполнивэти формы создаетсязаданный объекткоторый можноперемещатьуказателеммыши. Правойкнопкой мышиможно черезвозникшее менювсегда изменитьсвойства объекта(выбрав “Свойства”).
Кроме тогоиспользуетсяследующиеспособы управленияобъектамисозданнымив процессепроектирования.Возможно объединениеобъектов вгруппу, дляэтого нужнонажав левуюкнопку мышине отпускаяобвести теобъекты которыеобъединяютсяв группу, при отпусканиикнопки объектывыделятся врамку. С этимивыделеннымиобъектамивозможно теперьвыполнятьгрупповыеоперации(перемещения,удаления копированияи т.д.) через меню“Правка”или по правойкнопки мыши.
Над документамитакже выполняютсясобственнооперации ихизменения, тоесть в случаепримененияпрограммы вконструкторскомпроектировании,их изменениевозможно либонепосредственноприложениемкоторое обрабатываетэтот документ,либо через ужесозданные OLEфункциикоторые в неявномвиде вызываютприложенияи обрабатываютдокументы. ТакзапуститьфункциюOLE можнодвойным щелчкомлевой кнопкимыши на нужнойфункции. А длязапуска приложенияобрабатывающегоопределенныйдокумент нужнодважды щелкнутьмышкой на документе.
После работыс конкретнымдокументомвырабатываетсясобытие “Документбыл изменен”которое должныобрабатыватьвсе исходящиеиз документафункции OLE(если конечноу них был установленфлаг свойства“Автоматическоевыполнениефункции приизменениивходного документа”).Что влечет засобой выполнениеэтих функций,то есть изменениедокументовисходящих изфункции, чтов свою очередьможет повлечьза собой выполнениедругих функций.Процесс можетстать циклическим(если входныедокументы будутизменены исходящимифункциями).Чтобы этогоне произошлонеобходимопользоватьсяфлагом “Запроспользователяперед выполнением”в свойствахфункции OLE.Установка этогофлага повлечетсобой запроспользователюо необходимостивыполненияэтой функцииперед ее выполнением.Тем самымпредоставляетсявозможностьпользователюзациклитьпроцесс обратнойсвязью, чтоиногда необходимо(например, дляподбора нужноготепловогорежима), а затемпрервать его.
Перед выходомиз программыконтроллера,программойбудет заданвопрос о необходимостисохраненияизмененногопроекта. Еслипроект нуженбудет в последующем,его нужно сохранить.
Если необходимостьв программеконтроллераотпала, то ееможно удалитьс диска. Однакопрограммаконтроллеране снабженаспециальнымфайлом унинсталляции,как это требуетстандарт программдля Windows95, посколькудля созданияэтого файлапрограммистунеобходимодоскональнознать всю системуWindows,что сейчас принедостаткеинформациио Windows(т.к. эта системаявляется относительноновой) в нашихусловиях невозможно.По этому дляудаления программыс носителякроме удалениясамой директориипрограммыконтроллеранеобходимоудалить всеDLL-файлыиз директорияWindowsсамостоятельно.Список всехфайлов программыприведен вприложении.
Основнымиконструкторскимирасчетами дляЭВА, являютсярасчет надежностиустройстваи расчет прочностипечатной платы.Рассмотрим теоретическоеоснование этихконструкторскихрасчетов.
Все промышленныеизделия характеризуютсякачеством, тоесть совокупностьюсвойств, которыеотличают данноеизделие отдругих и определяютстепень егопригодностидля эксплуатациипо своему назначению.Для ЭВА этопрежде всегосовокупностьконструкторских,технологическихи эксплутационныххарактеристик.В процессеэксплуатациипроисходятизменения этиххарактеристикв следствииизноса и необратимыхпроцессовстарения. Такимобразом меняетсякачество изделиюво времени, ахарактеристикойизменениякачества вовремени являетсяпоказательназываемыйнадежностью.
Под надежностьюпонимают свойствоизделия выполнятьзаданные функции,сохранять своиэксплутационныепоказателив заданныхпределах втечении требуемогопромежуткавремени илитребуемойнаработки присоблюдениирежимов эксплуатации,правил обслуживания,хранения и т.д.
Надежностьне может бытьизмеренанепосредственнокак любая физическаявеличина. Онаможет бытьтолько количественнооценена илипредсказана.Для оценкиосновных показателейнадежностииспользуютматематическийаппарат теориивероятности
Показателинадежностинеремонтируемыхсистем. Неремонтируемыесистемы работаютдо первогоотказа послечего заменяютсяновыми. Всеколичественныепоказателинадежностинеремонтируемыхсистем являютсяобщими и выражаютсяодними и темиже математическимизависимостями,но их конкретныечисловые значениязависят отрежимов работыизучаемыхсистем.
Показателинадежностинеремонтируемыхсистем базируютсяна понятияхфункций надежностиР(t)и функцииотказа Q(t),связанныхзависимостьюP(t)= 1- Q(t). Обеони зависятот времениt.
Вероятностьюбезотказнойработы P(t)называют вероятностьтого, что в заданноминтервалевремени илипределах заданнойнаработки ti отказовв системе невозникает, т.е.P(ti)= P(T>ti),где Т - случайнаявеличинахарактеризующаявремя наработкисистемы до возникновенияв ней отказа.Соответственновероятностьювозникновенияотказа в системе Q(ti)называетсявероятностьтого, что в периоднаработки tiв ней обязательнопроизойдетотказ, т.е. Q(ti)= P(Ti).
Теоретическоезначение вероятностибезотказнойработы ЭВАудобно определитьследующимобразом :
(4.1),где
N1i- числоизделий, отказавшихво время испытанийна i-том интервалевремени;
m= t /
t - числоинтерваловt- времяиспытания
t - продолжительностьинтервалавремениПо аналогиис (4.1) статистическая вероятностьбезотказнойработы ЭВА
(4.2),Естественно,чем больше N,тем более точнособлюдаетсяравенства, итем точнеестановятсязначения величинP(ti)иP’(ti).
Вероятностьбезотказнойработы можетбыть определенаи для произвольногоинтервалавремени (t1 ;t2),т.е. не с моментавключениясистемы. В этомслучае говорятоб условнойвероятностибезотказнойработы системы P(t1 ;t2) в период(t1 ;t2),имея в ввиду,что в моментвремени t1системанаходится вработоспособномсостоянии.Условная вероятностьP(t1 ;t2)определяетсясоотношением
P(t1 ;t2)=P(t2)/ P(t1) (4.3)
где
P(t1)и P(t2)- соответственнозначения функцийнадежностив начале и конценаработки.
Плотностьюраспределениянаработки доотказа f(t)называютпроизводнуюпо времени отфункции отказаQ(t):
Из (4.4) следует,что величинаf(t)dtхарактерезуетбезусловнуювероятностьтого, что системаобязательнооткажет в интервалевремени (t ; t+dt)при условиичто вмоментвремени tона находиласьв работоспособномсостоянии.
Наиболеераспространеннымпоказателемнадежностиявляетсяинтенсивностьотказов. Интенсивностьотказов
(t)представляетсобой условнуювероятностьвозникновенияотказа в системев некоторыймомент временинаработки приусловии, чтодо этого моментаотказов в системене было. Величинаинтенсивностиопределяетсяотношением: (t)= f(t)/ P(t). Приблизительноее можно оценитьследующимотношением:где
N1- числоизделий, отказавшихпри испытанияхв течении времени
tN- числоизделий, работоспособныхк началу испытаний.
Условнаяработоспособностьсистемы в моментначала наработкиможно записатьв виде P(0)= 1. Тогдаиз (4.3) и (4.4) следуетчто
Аналогичноможет бытьопределенаусловная вероятность
Таким образоммы рассмотрелитри показателянадежности.Очевидно, чтодостаточнознать одну(любую) из них,чтобы определитьдва других.Таким образомвсе три показателяявляютсяравноправными.Однако в большинствеслучаев предпочтениеотдают интенсивностиотказов.
В качествепоказателянадежностииспользуютсреднюю наработкудо отказа tcp.Средняя наработкадо отказапредставляетсобой математическоеожидание M(t)случайнойвеличины t
Вид функцийf(t)и P(t)определяетсяконкретнымизаконамираспределенияслучайнойвеличины t.Средняя наработкадо отказа - этоожидаемое времяисправнойработы системыдо первогоотказа. Приближенноее можно оценитьтак:
где
tcpi =(ti-ti-1)/ 2
(ti;ti-1)- времяв начале и концеi-тогоинтервала.
Таким образоммы рассмотрелиосновные показателинадежностисистем./4 /
4.2. Методикарасчета надежности
На практикечаще всегоиспользуетсяэскизный(ориентировочный)полный расчетнадежностиэлектроннойаппаратуры.Расчет надежностинерезервируемойсистемы состоитв нахожденииобщей интенсивностиотказов, наработкина отказ Тсри вероятностибезотказнойработы P(t).Эскизный расчетнадежностинерезервированнойсистемы можнопроводить вследующемпорядке :
все элементысистемы разбиваютсяпо группам содинаковымиили близкимиинтенсивностямиотказов иподсчитываетсячисло элементовNв каждой i-тойгруппе;
по таблицамприведеннымв /4/определяютзначенияинтенсивностиотказов
для элементовi-тойгруппы;рассчитываютинтенсивностьотказов системыкак суммупроизведенийNi,
cучетомпоправочногокоэффициентагде
m- общее количествогрупп
k- поправочныйкоэффициент,учитывающийизменениесредней интенсивностиотказов элементоваппаратурыв зависимостиот ее назначения(величина обычнотабличная);
определяютнаработку наотказ
рассчитываютзависимостьвероятностибезотказнойработы системыот времени поформуле
;
Таким образомпроизводитсярасчет надежности.
4.3. Методикаопределениямеханическойпрочности ПП
На ПП, какправило, устанавливаетсянесколькодесятков интегральныхсхем (ИС) иэлектроэлементов(ЭРЭ)
Пусть на платувоздействуетнагрузка Q,ускорение а, необходимопроверить, неприведут лиэти воздействияк возникновениюнедопустимыхнапряженийна плате
ВеличинапредельнодопустимогонапряженияGзадана.При воздействиина плату нагрузкис ускорением,на нее будетдействоватьдеформацияизгиба и кручения.Для расчетавозникающихнапряженийплату принятопредставлятьв виде балочнойсистемы, лежащейна опорах.
Для нахождениядействующихна плату силможно предложитьследующийалгоритм.
ОпределяемкоординатыХi,Yi,i-хэлементов наплате - раастояниеот осей до центратяжести элементов(мм)
Определяемравнодействующуюприложенныхк плате сил
где
Рi- силатяжести i-тогоэлемента, Н;
к - количествоэлементов, шт.
Находим общийцентр тяжестиприложенныхсил
где
Xiи Yi- координатыцентра тяжестиплаты, мм.
Определимсилу. Действующююна плату:
где
а - ускорение,воздействующеена плату
Рассчитываемреакции в опорах:
где
l- расстояниемежду опорами
Вычисляеммаксимальныйизгибающиймомент:
Mmax = RAXC(4.9)
Определяемкрутящий моменткрутящий момент:
Mk= Qd, (4.10)
где
d- величинасмещения центратяжести от осисимметрии платы
(4.11)где
b- ширина платы
Находимнапряжение,вызываемоев плате крутящиммоментом :
где
h- толщина платы
- коэффициентпрочности,равный 0.333.Проверяемвыполнениеравенства
где
-максимальнодоупстимоенапряжениев платеЕсли неравенство(4.13) выполняется,то следуетзаключить, чтоприложенныенагрузки неприведут кповреждениюплаты. В случае,если неравенство (4.13) не выполняется,нужно предусмотретьмеры, необходимыедля дополнительногокрепленияплаты.
4.3. Методикарасчета собственныхколебаний блока
Расчет частотысобственныхколебаний блокаможно привести,заменив конструкциюего эквивалентнойрасчетнойсхемой в видеблочной схемы /5/.
Частотусобственныхколебанийпрямоугольнойпластины длявсех случаевзакрепленияее краев можноопределитьследующимобразом :
, (4.14)
где
а - длина пластины,м;
D- цилиндрическаяжесткостьпластины
, (4.15)Е - модульупругости;
- коэффициентПуассона;q- ускорениесвободногопадения;
-плотностьматериала - коэффициент,значение которогозависит отспособа закреплениясторон пластиныДля удобствапользованиявыражение(4.14) приведем квиду :
где
В - частотнаяпостоянная,зависщая отспособа закрепленияпластины
Если пластинане стальная,а выполненаиз какого-либодругого материала,то в (4.16) вводитсяпоправочныйкоэффициентkMна материал
где
Е и
- модуль упругостии плотностьприменяемогоматериала;ЕСи
С- модуль упругостии плотностьстали.Для учетанагрузки прираспределеннойнагрузке вводятпоправочныйкоэффициентмассы элементов
,где
QЭи QЭ- массапластины имасса элементов,равномернораспределенныхпо пластине;
Таким образомвыражение(4.14) для определениячастоты собственныхколебанийприобретаетвид
(4.17)
Важно, чтобырезонанснаячастота ППотличаласьот частотывынужденныхколебаний навходе, по крайнеймере в два раза.При этом исключаетсявхождение врезонанс, опасныйв вибросистеме.
Печатнаяплата должнаобладать значительнойусталостнойдолговечностьюпри воздействиивибраций, дляэтого необходимо,чтобы минимальнаячастота собственныхколебаний платыудовлетворялаусловию:
где
jmax- вибрационныеперегрузки
b- размеркороткой стороныплаты
- безразмернаяпостоянная,числовое значениекоторой зависитот значенийчастоты собственныхколебаний ивоздействующихускорений.4.5.Расчетная часть
В расчетнойчасти проектав качествепримера конструкторскогорасчета какой-либоконструкторскойединицы представимконструкторскийрасчет платыусилителяимпульсов (УИ).
5. БЕЗОПАСНОСТЬИ ЭКОЛОГИЧНОСТЬПРОЕКТА
Для анализабезопасноститруда конструктораи оператораЭВМ возьмемв качествепримера типичногопомещения,помещение однойиз лабораторийвычислительногоцентра.
В качествепроизводственногопомещениярассматриваетсямашинный зал персональныхкомпьютеровна 7 рабочихмест. Основныеработы, выполняемыев данном помещенииввод и редактирование изображений(картинок иличертежей), распечаткаизображений,техническоеобслуживаниевычислительныхмашин. Все работысвязаны сперсональнымикомпьютерами.Операторы ЭВМсталкиваютсяс воздействиемтаких физическиопасных и вредныхпроизводственныхфакторов, какповышенныйуровень шума,повышеннаятемператураокружающейсреды, недостаточная освещенностьрабочей зоны,статическоеэлектричество,электромагнитноеполе и другие,а также с воздействием психофизиологических факторов, таких как умственноеперенапряжение,перенапряжениезрительныхи слуховыханализаторов,монотонностьтруда, эмоциональныеперегрузки.
Помещениемашинного залаВЦ представляетсобой однукомнату (рис5.1) площадью 42кв.м. (7 x 6 М).В нем размещены8 персональныхкомпьютеровIBM (один из нихзанят под сервер),каждый из которыхзанимает одинстол. Операторзанимает однорабочее местоу компьютера.
Следовательно,площадь одногоиндивидуальногорабочего местаравна 6 кв.м., что соответствуетустановленнымсанитарным нормам СНиП4559-88 (не менее 6 кв.м.).В соответствиис нормами расстояниемежду торцамистолов превышает80 см, между столоми стеной илиокном - 60 см, междудлинными сторонамистолов - 90 см.
Санитарныенормы СН 512-78устанавливаютвысокие требованияк микроклиматическимусловиям впомещенияхВЦ:
Температуравоздуха нарабочем месте
в теплыйпериод года+20...+25 С
в холодныйпериод года+18..+20 С.
Относительнаявлажность 40 -60 % .
В помещенияхВЦ поддерживаетсяслегка избыточноедавление воздуха(приблизительнона 30 Па вышеатмосферного)для препятствияпопаданиявоздуха с пыльюснаружи. Крометого, при повышенномдавлении воздухаулучшаетсяотвод теплаот элементовЭВМ.
Воздух, используемыйдля вентиляциипомещенийочищается отпыли. Частицыпыли, попадающиена рабочуюповерхность магнитных дисков, образуют промежуточныйслой междудиском и магнитной головкой, что может привестик повреждениюрабочей поверхности и к искажениюзаписываемойинформации.Пыль, оседающаяна устройства,узлы ЭВМ, ухудшаеттеплоотдачу,может образовыватьтокопроводящиецепи.
Для обеспеченияперечисленныхтребованийпо параметрамвоздушной средына ВЦ обычноиспользуютсяустановкикондиционированиявоздуха. Этодва кондиционераБК1300, встроенныев оконные проемы.
Для помещенияВЦ характерноналичие различныхвидов шумов.Механическийшум обусловленработой вентиляторовкондиционерови работой печатающихустройств.
Аэродинамическийшум возникаетпри движенииохлаждающеговоздуха вкондиционерахи внутри каждогоперсональногокомпьютера.Электромагнитныйшум создаютразличныеэлектронныеустройства:строчныетрансформаторыв мониторах,импульсныеблоки питания.Ультразвуковойшум вызван восновном вибрациями преобразователейнапряженияв импульсныхблоках питанияи генераторамистрочной разверткив дисплеях.Частоты шумовот 16000 до 30000 Гц.
Так как усовременнойвычислительнойтехники уровеньсобственныхшумов значительноснижен (это нераспространяетсяна печатающиеустройства),общий уровеньшума в помещениинизок - порядка50 дБ (что не превышаетдопустимойвеличены поГОСТ 12.1.003-83) и специальныесредства сниженияшума не применяются.
Из ионизирующих излучений в условиях работыВЦ возможнообнаружениеслабого рентгеновскогоизлучениявблизи экрановпри использованиицветных дисплеев,как в нашемслучае. Длянего нормируетсямощностьэкспозиционнойдозы. Для видеотерминаловона рассчитываетсяпо следующейформуле:
(5.1),
где
k1 - коэффициентпропорциональности,характеризующийвероятностьторможенияэлектроновв электрическомполе ядра, k1=
;k2 = 1/Q, гдеQ- скважностьпульсирующегонапряжения,k2=1/4=0.25;
U -напряжениеанода,U =12кВ;
I - анодный ток,I =5мА;
Z - атомный номеранода,Z =14;
m -коэффициентпоглощенияизлучения ввоздухе,m =10;
N -коэффициентослабленияизлучения колбой ЭЛТс сопротивлениемпроводящегослоя менее12 Ом/см ,N=10;
R -расстояниеот анода дорассматриваемойточки5см от стороны,обращеннойк операторуплюсрасстояниеот анода доэкрана,R=30см;
10 -эквивалентватта(эрг/с);
0.114-эквивалентрентгена(эрг/см).
Подставивзначения вформулу (5.1)получаем:
A/кг
Тогда какпо ГОСТу12.2.018-76 мощностьэкспозиционнойдозы на расстоянии5 см от экранадисплея неболее
А/кг.В условияхработы на ВЦможно выделитьнесколькоисточниковэлектромагнитногоизлучения:
низкочастотноеизлучение -50-60 Гц
трансформаторыблоков питания,электропроводка,
кадроваячастота дисплеев;
частоты от16 кГц до 4 МГц:
вызваныработой электронно-лучевыхтрубок дисплеев;
высокиечастоты - от 8до 25 МГц :
тактовыечастоты процессоров.
Все источникиэлектромагнитныхизлучений нарабочих местахв ВЦ ниже предельнодопустимыхзначенийнапряженности(ГОСТ12.1.006-88). Однако,обслуживающийперсонал находится под их воздействиемдлительноевремя, что вынуждаетприменятьспециальныесредства экранировкидисплеев. Дляэтого используютсяспециальныепрозрачныеэкраны из тонкойметаллическойсетки.
Кроме того,эти экраны неотражают внешнийсвет и повышаютконтрастностьизображенияна дисплее.
Естественное освещение примененоодностороннеебоковое, общаяплощадь оконныхпроемов 5.04 кв.м.На окнах используютсясветлые светорассеивающиешторы.
Искусственноеосвещениеобеспечивается7-ю потолочнымилюминесцентнымисветильникамитипа ШОД.
Режим работынейтрали источникапитания сетиопределяетсясистемойэнергоснабжения,принятой вместе расположенияВЦ. Сеть используетсяоднофазная,напряжение220 В. Для питаниякомпьютера-серверакомпьютернойсети установленблок бесперебойногопитания мощностью600 Вт. ПомещенияВЦ оборудованыконтуром-шинойзащитногозаземления,электрическисоединенной с заземлителем.Все подлежащиезаземлениюэлементы ЭВМ присоединяются к контуру-шинеотдельнымизаземляющимипроводниками.
Работа наперсональном компьютересвязана с большимколичествоммелких движений кистей и пальцеврук. Поскольку работа частосвязана с творческимпроцессомдеятельности,то нервно-эмоциональнаянагрузка приработе высокая.
Наиболее неблагоприятным фактором, влияющимна оператораЭВМ являетсяпсихологическаянагрузка./ 6 /
5.2. Расчетосвещенности
Для работыв лабораторииприменяетсясовмещенныйтип освещения:боковоеодностороннееестественноеосвещение вдневное времяи общее искусственное в вечернеевремя.
Уровеньосвещенностисогласно СНиПII-4-79для зрительныхработ высокойточности (от0.3 до 0.5 мм) составляет: освещенностьпри боковоместественномосвещении -2 %,освещенностьпри искусственномосвещении -220лк.
При боковомодностороннемосвещениинормируетсяминимальноезначение коэффициентаестественногоосвещения (КЕО)в точке расположеннойна расстоянии1м от стены, наиболееудаленной отокон, на пересечениивертикальнойплоскостихарактерногоразреза помещенияи условнойрабочей поверхностиили поля (рис5.2).
Расчетестественногоосвещениязаключаетсяв определенииплощади световыхпроемов всоответствиис нормированнымзначением КЕО.
На основанииСНиП II-4-79,приложение5, рассчитываемплощадь световыхпроемов прибоковом освещении,при нормируемомКЕО =2%, по следующейформуле :
, (5.2)
где
S0-площадьсветовых проемовокон при боковомосвещении, М2;
Sn-площадьполя освещения,Sn=42М2;
lH-нормируемоезначение КЕО,lH=2;
k3-коэффициентзапаса,k3= 1.2;
h0-световаяхарактеристикаокон, h0= 9.6 при двойномстекле;
k3Д-коэффициентзатемненияокон противостоящимизданиями;
r0-общийкоэффициентсветопропусканияокон, учитывающийкоэффициентпропусканиястекол;
r1-коэффициент,учитывающийповышение КЕОпри боковомосвещенииблагодарясвету, отраженномуот поверхностипомещения.
Согласноформуле (5.2)имеем :
,откуда S0= 5.04 М2;
Знаяобщую площадьсветовых проемов,рассчитываемразмеры одногоокна и их количество.Примем высотуокна равную1.5 М, тогда общаядлина оконсоставляет:
а = 5.04 /1.5 = 3.36 M
отсюда приколичествеокон N= 2 , длинакаждого окна будет составлять:
b =1.68 M
Из расчетавидно, что дляобеспеченияестественногоосвещения, принормируемомКЕО = 2 %, используются2 окнаразмерами а= 1.5и b =1.68,что соответствуетдействительностив исследуемойлаборатории.
Для расчетаисскуственногоосвещениянайдем общийсветовой потокдля лабораториипо формуле:
,(5.3)где
r - коэффициентиспользованиясветовогопотока, r=0.4;
E min- наименьшаяосвещенность,Emin= 200 лк;
k -коэффициентзапаса,k =1.5;
S-площадьпомещения, S=42 М 2;
Z-коэффициентпереходаот наименьшейк среднейосвещенности,для светильниковравномерногоосвещенияZ=1.1;
Вычисляемпоказательпомещения:
,(5.4)где
h - высотапомещения, 3 М;
A иB-длина и ширинапомещения, М.
Принимаякоэффициентотражения отпотолка PП = 70%и от стен PC= 50 %,по таблицеопределяемзначение коэффициентаr,как функцииот PП, PCи j: r =1.2.Отсюда, общийсветовой потокравен(по формуле5.3 ):
лкОпределяемобщее количестволамп:
шт.Необходимоеколичествосветильниковопределим поформуле:
шт.Расчет показал,что для лабораториинеобходимо7 светильников.Для этого выбраныпотолочныесветильникитипа ШОД слюминесцентнымилампами, какболее экономичныепо сравнениюс лампами накаливанияи имеющимиспектр близкийк дневному.
Специальностьоператора ЭВМотносится кпрофессиямс низкой степеньюриска. Основнымиисточникамиопасности нарабочем местеоператора ЭВМявляется опасностьвозникновенияпожара, опасностьполучениятравмы и опасностьпораженияэлектрическимтоком.
Необходимосинтезироватьдерево причин(опасностей)на рабочемместе (рис.5.3.).Очевидно, чтоглавными источникамичрезвычайныхситуаций являютсяопасность травмоператора иопасностьвозникновенияпожара.
Травмы операторамогут произойтивследствиелибо механическихтравм, либопораженияэлектрическимтоком. Механическиетравмы операторамогут произойтив случае:
либо падениякакого-либоприбора;
либо падениясамого оператора;
из-за взрывакинескопамонитора (каксамого взрывоопасногоприбора влаборатории).
Поражениеэлектрическимтоком возможнопо причинам:
пробоя фазына корпус прибора(которое можетпроизойти какследствиеброска напряженияв сети в сочетаниис отсутствиемзаземления)
касанияоператоромоголенногопровода (причинойкоторого являетсяналичие оголенногопровода в сочетаниис нарушениемтехники безопасности).
А возникновениепожара, в своюочередь, следуетиз наличиягорючего материалав ВЦ и возникновенияочага воспламенения.Очаг воспламененияможет возникнутьв следствииследующихпричин:
курениеоператора нарабочем месте,которое являетсяследствиемнервногоперенапряженияв сочетаниис нарушениемтехники безопасности;
перегревапроводов вследствииперегрузкипроводов током;
искра короткогозамыкания(короткое замыканиеможет бытьвызвано несоблюдениемтехники безопасностиоператоромили его низкойквалификации).
Таким образомбыл произведенсинтез деревапричин чрезвычайныхситуаций нарабочем месте.
5.4.Пожарная безопасность
Отделы илабораториипрограммированияявляютсяпотенциальнымиисточникамипожарной опасности.Это связанос различнымифакторами, втом числе, например,скоплениебольшого количествабумаги, деревянныестолы и стулья,работа электрооборудования.Особую опасностьпри возникновениипожара представляетто, что корпусакомпьютеровизготовленыиз легковоспламеняющихсяпластмасс,которые привоспламенениивыделяют значительноеколичествовысокотоксичныхвеществ. Возможнымигорючими материаламив помещенияхВЦ могут бытьматериалы,используемыедля звукопоглощенияи эстетическойотделки помещения,а также материалы,используемыедля изоляциисиловых и сигнальныхкабелей.
Причинывозникновенияпожара бываютнеэлектрические(неправильноеустройствои эксплуатацияотопительнойсистемы, нарушениетехническихпроцессов ,неисправностьоборудованияи др.) и электрические.Учитывая спецификуоборудования,используемогопри работе спрограммой,можно сделатьвывод, что наибольшуювероятностьвозникновенияпожара вызываютпричины электрическогохарактера.
Для предотвращениявозгоранияот КЗ силовыекабели следуетуложить в негорючиежелоба, использоватьбыстродействующиеплавкие предохранители.При использованииэлектрообогревательныеприборы нужнорасполагатьвдали от стеллажейс литературойи документами.С целью уменьшениявремени эвакуационныхработ при возгорании,ценные документыи дискеты синформациейжелательнохранить в несгораемыхметаллическихшкафах.
Возникновениепожара в электронныхустройствахвозможно приналичии горючихизоляционныхматериалов.Кабельные линииэлектрическогопитания состоятиз горючегоизоляционногоматериала иявляются наиболееопасными. Многиесовременныеизоляционныематериалы нетеплостойкиеи нарушениетепловогорежима можетпривести к ихразложениюс выделениемпожароопасныхпродуктов ик потере диэлектрическихсвойств изоляции,что также можетслужить причинойпожара в помещении.
Для предотвращенияподобногоявления я рекомендуюпроизвестиследующиедействия. Розеткидолжны бытьзаземлены.Оборудованиедолжно бытьподключеночерез сетевыефильтры, которыепредохраняютего от скачковнапряженияв сети. Дляпредотвращенияперегревамонитора, ондолжен бытьустановленвдали от отопительнойсистемы. Лабораториюнеобходимооборудоватьавтоматическойпожарнойсигнализациейкольцевоготипа, включеннойв общую системусигнализацииздания.
Для ликвидациивозникшегопожара в начальнойстадии применяютпервичныесредствапожаротушения- ручные огнетушители.Это углекислотныеогнетушителиОУ-2 и порошковыеогнетушители ОП-1-01. Эти типыогнетушителейпозволяюттушить электроустановкидо 1000 В, находящиесяпод напряжениеми не причиняютбольшого вредаэлектроннойтехнике.
В соответствиисо СНиП II-90-81 категориюпроизводствапо пожарнойопасности можноотнести к группеВ, так как впомещенияхне производятсяработы слегковоспламеняющимисяжидкостями и горючимигазами. Степеньогнестойкостиосновных строительныхконструкцийлабораторииможно отнестик I степени согласноСНиП II-2-80.
5.5. Экологичностьпроекта
Таким образом,проанализировавбезопасностьтруда оператораЭВМ, рассчитавмощностьионизирующегоизлучения иосвещенностьрабочего местаоператора,рассмотреввозможностичрезвычайныхситуаций ипожаробезопасностьпомещения вкотором производятсявсе работы спроектом. Можнопредложитьследующиемероприятияпо улучшениюэкологичностииспользованияпроекта.
Посколькупри работе спроектом необходимопостоянноеприменениевычислительнойтехники, а этосвязанно спостояннымвоздействиемвредных ионизирующихизлучениймониторов,рекомендуюприменятьзащитные экраны,которые значительноснижают воздействиеизлучения.
Обязательнооборудованиепомещения, вкотором производятсяработы с проектом,кондиционерами.Так как помещениягде работаютвычислительныемашины имеютповышеннуютемпературуокружающейсреды.
Работа спроектом, какв прочем и совсей вычислительнойтехникой, требуетповышенноговнимания состороны человека,а по этому сопряженас повышеннымвоздействиемпсихофизиологическихфакторов (умственноеперенапряжение,перенапряжениеанализаторов,эмоциональныеперегрузкии т.д.). Рекомендую,вследствиеэтого, изменитьрежим работыоператоров.При этом применятьболее короткие,но частые перерывыв работе дляфизическихупражнений.А также перерывыдля психологическойразгрузки(рекомендуетсясмена занятия,например применитьдинамическиеобучающие игрытипа “Quake”или “RedAlert”).
ЗАКЛЮЧЕНИЕ
Так заканчиваяработу надпроектом можнос уверенностьюсказать, чтоза технологиейOLE Automation стоитбудущее системногопрограммированияв целом и программированиядля автоматизациипроектно-конструкторскихработ в частности.Поскольку ужедолгое времяимеется тенденцияк росту интеграционныхпроцессов вавтоматизированныхсистемахпроектированияи конструирования,а технологияOLE Automation позволяеткак нельзялучше совмещатьспецифичностькаждой отдельнойпрограммнойразработкии функциональностьвозможностиобъединенияобъектов всехприложений в одном логическизаконченномдокументе.
Некотораяуниверсальностьполученнойв результатепроизведенногопроектированияпрограммы исвязанную сэтим характернуюдля многихуниверсальныхпрограммныхпродуктов(таких напримеркак операционныесистемы) потерюфункциональнойнаправленностиконечногопродукта наконкретногопотребителя(в частностиэтим программнымпродуктом можнопользоватьсяв целях контроляне только запроектноконструкторскимидокументами),с лихвой окупаетсяконкретнымивозможностямипрограммы дляоблегченияавтоматизацииконструкторскихработ.
Кроме того,произведенныйпоиск аналоговконтроллероврезультатовне дал. Так чтоможно сказать,что эта работастала первымпробным шагомв направлениииспользованияOLE Automation дляинтегрированияавтоматизированныхсистем проектирования.
СПИСОКИСПОЛЬЗОВАННЫХИСТОЧНИКОВ
Microsoft Windows 95.Руководствопользователя/Подред. Д.В. Егорова.М.: М.П.“Эрус”,1996. - 153 с.
ЛоуренсХаррис. ПрограммированиеOLE. Освойсамостоятельноза 21 день. пер.с англ. - М.: Бином,1995. - 464 с.
АРУШАНОВХ.Р. Visual Basic3.0, Visual Basic 4.0 дляWindows.М.: Красныйпролетарий,1996. - 348 с.
Яншин А.А.Теоретическиеосновы конструирования,технологиии надежностиЭВМ. М.:Радио исвязь, 1983, 312 с.
ПреснухинЛ.Н., Шахнов В.А.Конструированиеэлектронныхвычислительныхмашин и систем.- М.:Высш. шк., 1986, -512 с.
Павлов С.П.,Губонина З.И.Охрана трудав приборостроении:Учебник длявузов/Под ред. А.Г.Алексаняна.-М.:Высшая школа,1986.- 215 с.
ГОСУДАРСТВЕННЫЙКОМИТЕТ РОССИЙСКОЙФЕДЕРАЦИИ
ПО ВЫСШЕМУОБРАЗОВАНИЮ
ТАГАНРОГСКИЙГОСУДАРСТВЕННЫЙРАДИОТЕХНИЧЕСКИЙУНИВЕРСИТЕТ
ПОЯСНИТЕЛЬНАЯЗАПИСКА
К ДИПЛОМНОМУПРОЕКТУ
Разработкапрограммыконтроллераавтоматическисвязываемыхобъектов дляуправленияконструкторскойдокументациейв средеWindows 95/NT (дипломная_работа).
Название
ЦТРК 5.035.014ПЗ
обозначение
СорокинЮрий Владимирович
(фамилия,имя, отчестводипломника)
ФАКУЛЬТЕТЭЛЕКТРОНИКИ И ПРИБОРОСТРОЕНИЯ
КАФЕДРАКЭС
группа Э-92
ДАТА ЗАЩИТЫ14>> апреля 1997г.
Отзыв
на дипломнуюработу студентагр.Э-92 СорокинаЮ.В. “Разработкапрограммыконтроллераавтоматическисвязываемыхобъектов дляуправленияконструкторскойдокументациейв среде Windows95/NT”.
Широкое использованиевычислительнойтехники в народномхозяйстветребует увеличенияпроизводстваи разработкиновых технологийее изготовления.Это возможнотолько прииспользованиисовременныхсредств проектированияна основекомпьютернойтехники. С этойточки зрениятема дипломнойработы безусловноактуальна.
Компьютерныесредствапроектированияпомимо оборудованиявключает в себяпрограммноеобеспечение.Задачей даннойдипломнойработы являетсяразработкауниверсальнойсреды проектированиядля интеграциисистем проектирования,позволяющейсоздаватьсоставнойдокумент, которыйможет включатьв себя все видыдокументовобрабатываемыхинсталлированнымив данную системуприложениямиобеспечивающихOLEAutomation.
Для реализациипоставленнойзадачи былпроведен выбори обоснованиевыбора операционнойсистемы и языкапрограммирования,составленапрограмма,позволяющаярешать необходимыезадачи. Этимпрограммнымпродуктом можнопользоватьсяв целях управленияне толькопроектно-конструкторскойдокументацией.Это позволяетобеспечиватьавтоматизациюконструкторскихработ.
Результатыработы иллюстрируютсяна конкретныхпримерахконструкторскимирасчетами.
Также в дипломеотражены вопросыохраны труда.
В процессеработы СорокинЮ.В. проявилсебя как грамотныйспециалист,умеющий самостоятельноприниматьтехническиобоснованныерешения, показалумение работатьс литературойи вычислительнойтехникой.
Дипломнаяработа можетбыть оцененаоценкой “отлично”,а Сорокин ЮрийВладимировичзаслуживаетприсвоенияквалификации“инженерконструктор-технологЭВС”.
10.04.97
к.т.н, доцент /КосторниченкоА.И./
ПРИЛОЖЕНИЯ
ПРИЛОЖЕНИЕ I
ПРИЛОЖЕНИЕ II
ПРИЛОЖЕНИЕ II I
ПРИЛОЖЕНИЕ IV
СПИСОКФАЙЛОВ ПРОГРАММЫКОНТРОЛЛЕРА
vb32.exe
vb40032.dll
vb4stp32.dll
vba232.dll
vba32.dll
vbajet32.dll
vbar2132.dll
vbar2232.dll
vbaru32.dll
vbdb32.dll
vbide32.dll
vbrun300.dll
vbs.dll
vbscript.dll
defdoc.ico
pro1.prj
temp.prj
Сontroller.exe
Видэкрана графическойоперационнойсистемы
Рис1.1.
Структурнаясхема взаимодействияпрограммы
смеханизмомOLEПланпомещениявычислительногоцентра.
1
11
10
2
3 4
5 6
7 8
1- 7 -Рабочие местаоператоров
8-Сервер
9,10-Окна
11-Вход
Рис5.1.
Нормированиеминимальногозначения КЕОпри одностороннем боковом освещении
1-уровень рабочейповерхности(0.8М);
2-кривая, характеризующаяизменение КЕОв плоскостиразреза помещения(lHmin =2%)
Рис.5.2
Введение 7
1. АНАЛИЗТЕХНИЧЕСКОГОЗАДАНИЯ 10
1.1.Выбор и обоснованиеоперационнойсистемы 10
1.2.Анализ механизмасвязыванияи внедрения 27
1.3.Выбор и обоснованиеязыка программирования 36
РАЗРАБОТКА СТРУКТУРНОЙ СХЕМЫ И
АЛГОРИТМОВПРОГРАММЫ 43
2.1.Функциональнаясхема работыWindows95 43
2.2.Используемаятерминология 47
Синтезобщей структурнойсхемы программы 50
Разработкаструктурнойсхемы взаимодействияпрограммыс механизмомсвязыванияи внедрения 54
Разработкаструктурыданных 59
Инструкцияпользователя
по работе с программой 64
4.КОНСТРУКТОРСКИЕРАСЧЕТЫ 71
Показателинадежности 71
Методикарасчетанадежности 76
Методикаопределениямеханической
прочности ПП 78
Методикарасчета собственныхколебанийблока 81
4.5.Расчетнаячасть 84
ВОПРОСЫОХРАНЫ ТРУДАИ
ОКРУЖАЮЩЕЙ СРЕДЫ 88
5.1.Анализ условий труда на рабочем местеконструктора оператораЭВМ 88
Расчетосвещенности 94
Возможностьчрезвычайныхситуаций 99
Пожарнаябезопасность 102
Экологичностьпроекта 104
ЗАКЛЮЧЕНИЕ 105
СПИСОКИСПОЛЬЗОВАННЫХИСТОЧНИКОВ 106
ПРИЛОЖЕНИEI 108
ПРИЛОЖЕНИEII 112
ПРИЛОЖЕНИEIII 114
ПРИЛОЖЕНИEIV 133
‘*****************************
‘ MainModule Code
‘*****************************
OptionExplicit
OptionBase 0
PublicMenuFrom As Integer
PublicCanceled As Boolean
PublicSelectOn As Boolean
PublicSelectIs As Boolean
PublicImageCo As Integer
PublicMouseX As Integer
PublicMouseY As Integer
PublicTotalDocCo As Integer
PublicTotalFunCo As Integer
PublicTotalRegCo As Integer
PublicCurDocument As Integer
PublicCurFunction As Integer
PublicDocumentIsChanged As Boolean
PublicType RegistrationType
TotalNumberAs Long
DiscriptionAs String
FileNameAs String
NameAppAs String
FileMaskAs String
End Type
PublicRegistrations() As RegistrationType
PublicRegistrationCo As Integer
PublicType DocumentType
TotalNumberAs Long
FileNameAs String
CreateDateTimeAs String
UsedProgrammAs Long
DiscriptionAs String
ImageIconAs String
ImageTextAs String
X AsInteger
Y AsInteger
OutputFunPoints()As Integer
OutputFunPointCoAs Integer
OutputDocPoints()As Integer
OutputDocPointCoAs Integer
End Type
PublicDocuments() As DocumentType
PublicDocumentCo As Integer
PublicType FunctionType
TotalNumberAs Long
FileNameAs String
CreateDateTimeAs String
Path AsString
UsedProgrammAs String
AutomatFunctionAs String
AutoExeFlagAs Boolean
AskBeforeExeAs Boolean
DiscriptionAs String
ImageIconAs String
ImageTextAs String
X AsInteger
Y AsInteger
DocumentsAndFunctionsLink As String
InputDocPoints()As Integer
InputDocPointCoAs Integer
OutputDocPoints()As Integer
OutputDocPointCoAs Integer
InputFunPoints()As Integer
InputFunPointCoAs Integer
OutputFunPoints()As Integer
OutputFunPointCoAs Integer
End Type
PublicFunctions() As FunctionType
PublicFunctionCo As Integer
Public SubShowDocumentProperty(DocNumber As Integer)
On ErrorGoTo Err1
MakeDocForm.Label4(0).Caption =FileLen(Documents(DocNumber).FileName)
MakeDocForm.Label4(1).Caption =FileDateTime(Documents(DocNumber).FileName)
MakeDocForm.Label4(2).Caption =Documents(DocNumber).CreateDateTime
MakeDocForm.IconText.Text =Documents(DocNumber).ImageText
MakeDocForm.IconImage.Picture =LoadPicture(Documents(DocNumber).ImageIcon)
MakeDocForm.ImageIconText.Caption =Documents(DocNumber).ImageIcon
MakeDocForm.Discrip.Text =Documents(DocNumber).Discription
MakeDocForm.DocumentName = Documents(DocNumber).FileName
IfDocuments(DocNumber).UsedProgramm = -1 Then
MakeDocForm.Combo1.ListIndex = RegistrationCo + 1
Else
MakeDocForm.Combo1.ListIndex =GetREGIndex(Documents(DocNumber).UsedProgramm)
End If
Exit Sub
Err1:
SelectCase MsgBox("Произошлаошибка припопытке считатьфайл.", vbAbortRetryIgnore + vbCritical)
CasevbAbort
End
CasevbRetry
Resume0
CasevbIgnore
EndSelect
End Sub
Public SubSaveRegCards()
DimFileNumber As Integer
Dim a AsInteger
On ErrorGoTo Err1
FileNumber= FreeFile
OpenApp.Path & "\RegisterCards" For Output As FileNumber
Write#FileNumber, TotalRegCo, RegistrationCo
For a =0 To RegistrationCo
WithRegistrations(a)
Write#FileNumber, .TotalNumber, .Discription, .FileName, .NameApp,.FileMask
End With
Next a
CloseFileNumber
Exit Sub
Err1:
SelectCase MsgBox("Произошлаошибка припопытке записатьфайл регистрации."_
&Chr(13) & Chr(10) & Err.Number & Chr(13) & Chr(10) &_
Err.Description, vbAbortRetryIgnore + vbCritical)
CasevbAbort
End
CasevbRetry
Resume0
EndSelect
End Sub
Public SubMemberDocumentProperty(DocNumber As Integer)
Documents(DocNumber).ImageText =MakeDocForm.IconText.Text
Documents(DocNumber).ImageIcon =MakeDocForm.ImageIconText.Caption
Documents(DocNumber).Discription =MakeDocForm.Discrip.Text
Documents(DocNumber).FileName =MakeDocForm.DocumentName.Text
Documents(DocNumber).CreateDateTime =MakeDocForm.Label4(0).Caption
IfMakeDocForm.Combo1.ListIndex = RegistrationCo + 1 Then
Documents(DocNumber).UsedProgramm = -1
Else
Documents(DocNumber).UsedProgramm =Registrations(MakeDocForm.Combo1.ListIndex).TotalNumber
End If
End Sub
Public SubSaveProject(ProjectName As String)
DimFileNumber As Integer
Dim a AsInteger
Dim b AsInteger
On ErrorGoTo Err1
FileNumber= FreeFile
OpenProjectName For Output As FileNumber
Write#FileNumber, TotalDocCo, TotalFunCo, DocumentCo, FunctionCo
For a =0 To DocumentCo
WithDocuments(a)
Write#FileNumber, .TotalNumber, .FileName, .CreateDateTime, .UsedProgramm,_
.Discription,.ImageIcon, .ImageText, .X, .Y, .OutputFunPointCo, _
.OutputDocPointCo
For b= 0 To .OutputFunPointCo
Write#FileNumber, .OutputFunPoints(b)
Next b
For b= 0 To .OutputDocPointCo
Write#FileNumber, .OutputDocPoints(b)
Next b
EndWith
Next a
For a =0 To FunctionCo
WithFunctions(a)
Write#FileNumber, .TotalNumber, .FileName, .CreateDateTime, .UsedProgramm,_
.AutomatFunction, .AutoExeFlag, .AskBeforeExe,.Discription, _
.ImageIcon,.ImageText, .X, .Y, .DocumentsAndFunctionsLink, _
.OutputFunPointCo, .OutputDocPointCo, .InputFunPointCo,_
.InputDocPointCo
For b= 0 To .OutputFunPointCo
Write#FileNumber, .OutputFunPoints(b)
Next b
For b= 0 To .OutputDocPointCo
Write#FileNumber, .OutputDocPoints(b)
Next b
For b= 0 To .InputFunPointCo
Write#FileNumber, .InputFunPoints(b)
Next b
For b= 0 To .InputDocPointCo
Write#FileNumber, .InputDocPoints(b)
Next b
EndWith
Next a
CloseFileNumber
Exit Sub
Err1:
SelectCase MsgBox("Произошлаошибка припопытке записатьфайл проекта."_
&Chr(13) & Chr(10) & Err.Number & Chr(13) & Chr(10) &_
Err.Description,vbAbortRetryIgnore + vbCritical)
CasevbAbort
End
CasevbRetry
Resume0
EndSelect
End Sub
Public SubLoadRegCards()
On ErrorGoTo Err1
DimFileNumber As Integer
Dim a AsInteger
FileNumber= FreeFile
OpenApp.Path & "\RegisterCards" For Input As FileNumber
Input#FileNumber, TotalRegCo, RegistrationCo
IfRegistrationCo = -1 Then
CloseFileNumber
ExitSub
End If
ReDimRegistrations(RegistrationCo)
For a =0 To RegistrationCo
WithRegistrations(a)
Input#FileNumber, .TotalNumber, .Discription, .FileName, .NameApp,.FileMask
EndWith
Next a
CloseFileNumber
Exit Sub
Err1:
SelectCase MsgBox("Произошлаошибка припопытке считатьфайл регистрации."_
&Chr(13) & Chr(10) & Err.Number & Chr(13) & Chr(10) &_
Err.Description,vbAbortRetryIgnore + vbCritical)
CasevbAbort
End
CasevbRetry
Resume0
CasevbIgnore
RegistrationCo= -1
EndSelect
End Sub
Public SubLoadProject(ProjectName As String)
On ErrorGoTo Err1
DimFileNumber As Integer
Dim a AsInteger
Dim b AsInteger
FileNumber= FreeFile
OpenProjectName For Input As FileNumber
Input#FileNumber, TotalDocCo, TotalFunCo, DocumentCo, FunctionCo
IfDocumentCo -1 Then
ReDimDocuments(DocumentCo)
For a= 0 To DocumentCo
WithDocuments(a)
Input#FileNumber, .TotalNumber, .FileName, .CreateDateTime, .UsedProgramm,_
.Discription,.ImageIcon, .ImageText, .X, .Y, .OutputFunPointCo, _
.OutputDocPointCo
If.OutputFunPointCo -1 Then
ReDim.OutputFunPoints(.OutputFunPointCo)
Forb = 0 To .OutputFunPointCo
Input#FileNumber, .OutputFunPoints(b)
Nextb
EndIf
If.OutputFunPointCo -1 Then
ReDim.OutputDocPoints(.OutputDocPointCo)
Forb = 0 To .OutputDocPointCo
Input#FileNumber, .OutputDocPoints(b)
Nextb
EndIf
EndWith
Next a
End If
IfFunctionCo -1 Then
ReDimFunctions(FunctionCo)
For a= 0 To FunctionCo
WithFunctions(a)
Input#FileNumber, .TotalNumber, .FileName, .CreateDateTime, .UsedProgramm,_
.AutomatFunction, .AutoExeFlag, .AskBeforeExe,.Discription, _
.ImageIcon,.ImageText, .X, .Y, .DocumentsAndFunctionsLink, _
.OutputFunPointCo, .OutputDocPointCo, .InputFunPointCo,_
.InputDocPointCo
If.OutputFunPointCo -1 Then
ReDim.OutputFunPoints(.OutputFunPointCo)
Forb = 0 To .OutputFunPointCo
Input#FileNumber, .OutputFunPoints(b)
Nextb
EndIf
If.OutputDocPointCo -1 Then
ReDim.OutputDocPoints(.OutputDocPointCo)
Forb = 0 To .OutputDocPointCo
Input#FileNumber, .OutputDocPoints(b)
Nextb
EndIf
If.InputFunPointCo -1 Then
ReDim.InputFunPoints(.InputFunPointCo)
Forb = 0 To .InputFunPointCo
Input#FileNumber, .InputFunPoints(b)
Nextb
EndIf
If.InputDocPointCo -1 Then
ReDim.InputDocPoints(.InputDocPointCo)
Forb = 0 To .InputDocPointCo
Input#FileNumber, .InputDocPoints(b)
Nextb
EndIf
EndWith
Next a
End If
CloseFileNumber
Exit Sub
Err1:
SelectCase MsgBox("Произошлаошибка припопытке считатьфайл проекта."_
&Chr(13) & Chr(10) & Err.Number & Chr(13) & Chr(10) _
&Err.Description, vbAbortRetryIgnore + vbCritical)
CasevbAbort
End
CasevbRetry
Resume0
CasevbIgnore
FunctionCo= -1
DocumentCo= -1
EndSelect
End Sub
PublicFunction GetREGIndex(TotalNumber As Long) As Integer
Dim a AsInteger
For a = 0To RegistrationCo
IfRegistrations(a).TotalNumber = TotalNumber Then
GetREGIndex= a
ExitFor
End If
Next a
EndFunction
PublicFunction GetDOCIndex(TotalNumber As Long) As Integer
Dim a AsInteger
For a = 0To DocumentCo
IfDocuments(a).TotalNumber = TotalNumber Then
GetDOCIndex= a
ExitFor
End If
Next a
EndFunction
PublicFunction GetFUNIndex(TotalNumber As Long) As Integer
Dim a AsInteger
For a = 0To FunctionCo
IfFunctions(a).TotalNumber = TotalNumber Then
GetFUNIndex= a
ExitFor
End If
Next a
EndFunction
Public SubShowProject()
Dim a AsInteger
WithMainForm
For a = 0To DocumentCo
ImageCo= ImageCo + 1
Load.ImageIcon(ImageCo)
.ImageIcon(ImageCo).Top = Documents(a).Y
.ImageIcon(ImageCo).Left = Documents(a).X
.ImageIcon(ImageCo).Visible = True
.ImageIcon(ImageCo).Enabled = True
.ImageIcon(ImageCo).Picture =LoadPicture(Documents(a).ImageIcon)
.ImageIcon(ImageCo).Tag = Documents(a).TotalNumber
Load.ImageText(ImageCo)
.ImageText(ImageCo).Top = Documents(a).Y + 500
.ImageText(ImageCo).Left = Documents(a).X
.ImageText(ImageCo).Visible = True
.ImageText(ImageCo).Enabled = True
.ImageText(ImageCo).Caption = Documents(a).ImageText
.ImageText(ImageCo).Tag = 1
Next a
End With
End Sub
‘******************************
‘MainForm Code
‘******************************
OptionExplicit
OptionBase 0
PrivateSub Form_DragDrop(Source As Control, X As Single, Y As Single)
Dima As Integer
DimdX As Integer
DimdY As Integer
IfSelectIs = True Then
dX= X - Source.Left
dY= Y - Source.Top
Fora = 0 To ImageCo
IfImageIcon(a).BorderStyle = 1 Then
IfImageText(a).Tag = 1 Then
Documents(GetDOCIndex(ImageIcon(a).Tag)).X =ImageIcon(a).Left + dX
Documents(GetDOCIndex(ImageIcon(a).Tag)).Y =ImageIcon(a).Top + dY
EndIf
ImageIcon(a).Left = ImageIcon(a).Left + dX
ImageIcon(a).Top = ImageIcon(a).Top + dY
ImageText(a).Left = ImageIcon(a).Left
ImageText(a).Top = ImageIcon(a).Top + 500
EndIf
Nexta
Else
IfImageText(Source.Index).Tag = 1 Then
Documents(GetDOCIndex(Source.Tag)).X = X
Documents(GetDOCIndex(Source.Tag)).Y = Y
EndIf
Source.Left = X
Source.Top = Y
ImageText(Source.Index).Left = X
ImageText(Source.Index).Top = Y + 500
EndIf
EndSub
PrivateSub Form_Load()
Dima As Integer
LoadRegCards
MakeDocForm.Combo1.Clear
Fora = 0 To RegistrationCo
MakeDocForm.Combo1.AddItem Registrations(a).NameApp, a
Nexta
MakeDocForm.Combo1.AddItem "Использоватьстандартныйобработчик",RegistrationCo + 1
MakeDocForm.Combo1.ListIndex = RegistrationCo + 1
LoadRegCards
ImageCo= -1
LoadProject App.Path & "\pro1.prj"
ShowProject
SaveProject App.Path & "\pro1.prj"
EndSub
PrivateSub Form_MouseDown(Button As Integer, Shift As Integer, X As Single,Y As Single)
IfButton = 1 Then
MouseX= X
MouseY= Y
SelectOn= True
Withselectrec
.Visible = True
.Height = 0
.Width= 0
.Left= X
.Top= Y
EndWith
EndIf
EndSub
PrivateSub Form_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)
IfSelectOn = True Then
Withselectrec
IfY
.Top= Y
.Height = MouseY - Y
Else
.Top= MouseY
.Height = Y - MouseY
EndIf
IfX
.Left= X
.Width = MouseX - X
Else
.Left= MouseX
.Width = X - MouseX
EndIf
EndWith
EndIf
EndSub
PrivateSub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, YAs Single)
Dima As Integer
IfSelectOn = False Then
MouseX= X
MouseY= Y
IfButton = 2 Then
MenuMake.Visible = True
MenuRegistration.Visible = True
MenuPropertyes.Visible = False
MenuSeparator.Visible = False
IfSelectIs = True Then
MenuDelete.Visible = True
MenuCut.Visible = True
MenuCopy.Visible = True
Else
MenuDelete.Visible = False
MenuCut.Visible = False
MenuCopy.Visible = False
EndIf
'MenuPaste.Visible = False
MenuFrom = -1
MainForm.PopupMenu RightButtonMenuOnForm
EndIf
Else
SelectOn= False
selectrec.Visible = False
SelectIs= False
Fora = 0 To ImageCo
If(ImageIcon(a).Top > selectrec.Top) And _
(ImageIcon(a).Left > selectrec.Left) And _
(ImageIcon(a).Top
(ImageIcon(a).Left
SelectIs = True
ImageIcon(a).BorderStyle = 1
Else
ImageIcon(a).BorderStyle = 0
EndIf
Nexta
EndIf
EndSub
PrivateSub Form_Unload(Cancel As Integer)
SaveProject App.Path & "\pro1.prj"
End
EndSub
PrivateSub ImageIcon_MouseMove(Index As Integer, Button As Integer, Shift AsInteger, X As Single, Y As Single)
IfButton = 1 Then
ImageIcon(Index).Drag
EndIf
EndSub
PrivateSub ImageIcon_MouseUp(Index As Integer, Button As Integer, Shift AsInteger, X As Single, Y As Single)
IfButton = 2 Then
MenuMake.Visible = False
MenuRegistration.Visible = False
MenuPaste.Visible = False
MenuPropertyes.Visible = True
MenuSeparator.Visible = True
MenuFrom = Index
PopupMenu RightButtonMenuOnForm
EndIf
EndSub
PrivateSub Menu_Edit_Click()
MainForm.PopupMenu RightButtonMenuOnForm
EndSub
PrivateSub MenuDelete_Click()
Dima As Integer
IfSelectIs = True Then
Fora = 0 To ImageCo
IfImageIcon(a).BorderStyle = 1 Then
Deletea
EndIf
Nexta
SelectIs= False
Else
DeleteMenuFrom
EndIf
EndSub
PrivateSub MenuMakeDocument_Click()
DocumentCo = DocumentCo + 1
TotalDocCo = TotalDocCo + 1
ReDimPreserve Documents(DocumentCo)
Documents(DocumentCo).X = MouseX
Documents(DocumentCo).Y = MouseY
CurDocument = DocumentCo
DocumentIsChanged = True
MakeDocForm.Label4(0).Caption = "0"
MakeDocForm.Label4(1).Caption = str(Now)
MakeDocForm.Label4(2).Caption = str(Now)
MakeDocForm.IconText.Text = "Документ"
MakeDocForm.IconImage.Picture = LoadPicture(App.Path &"\DefDoc.ico")
MakeDocForm.ImageIconText = App.Path & "\DefDoc.ico"
MakeDocForm.Discrip.Text = ""
MakeDocForm.DocumentName = ""
Canceled= False
MakeDocForm.Show vbModal
IfCanceled = True Then
DocumentCo = DocumentCo - 1
TotalDocCo = TotalDocCo - 1
ReDimPreserve Documents(DocumentCo)
ExitSub
EndIf
MemberDocumentProperty DocumentCo
Documents(DocumentCo).TotalNumber = TotalDocCo
Documents(DocumentCo).OutputFunPointCo = -1
Documents(DocumentCo).OutputDocPointCo = -1
ImageCo= ImageCo + 1
LoadImageIcon(ImageCo)
ImageIcon(ImageCo).Top = Documents(DocumentCo).Y
ImageIcon(ImageCo).Left = Documents(DocumentCo).X
ImageIcon(ImageCo).Visible = True
ImageIcon(ImageCo).Enabled = True
ImageIcon(ImageCo).Picture =LoadPicture(Documents(DocumentCo).ImageIcon)
ImageIcon(ImageCo).Tag =Documents(DocumentCo).TotalNumber
LoadImageText(ImageCo)
ImageText(ImageCo).Top = Documents(DocumentCo).Y + 300
ImageText(ImageCo).Left = Documents(DocumentCo).X
ImageText(ImageCo).Visible = True
ImageText(ImageCo).Enabled = True
ImageText(ImageCo).Caption =Documents(DocumentCo).ImageText
ImageText(ImageCo).Tag = 1 '**************** 1 = Это документ
EndSub
PrivateSub MenuPropertyes_Click()
Dimtemp As Integer
IfMenuFrom >= 0 Then
IfImageText(MenuFrom).Tag = 1 Then
temp= GetDOCIndex(ImageIcon(MenuFrom).Tag)
ShowDocumentProperty temp
MakeDocForm.Show vbModal
MemberDocumentProperty temp
ImageText(MenuFrom).Caption = Documents(temp).ImageText
ImageIcon(MenuFrom).Picture =LoadPicture(Documents(temp).ImageIcon)
EndIf
Else
EndIf
EndSub
PrivateSub MenuRegistration_Click()
RegistrForm.Show vbModal
EndSub
PublicSub Delete(Index As Integer)
Dima As Integer
Dimb As Integer
IfImageText(Index).Tag = 1 Then
b= GetDOCIndex(ImageIcon(Index).Tag)
Fora = b To DocumentCo - 1
LSetDocuments(a) = Documents(a + 1)
Nexta
DocumentCo = DocumentCo - 1
EndIf
Fora = 0 To ImageCo
UnloadImageText(a)
UnloadImageIcon(a)
Nexta
ImageCo= -1
SaveProject App.Path & "\temp~.prj"
LoadProject App.Path & "\temp~.prj"
ShowProject
EndSub
‘********************
‘Makedoc form code
‘********************
OptionExplicit
PrivateSub Cancel_Click()
Canceled= True
Hide
End Sub
PrivateSub Command1_Click()
On ErrorGoTo Err1
RegDialog2.Flags= cdlOFNHideReadOnly
IfCombo1.ListIndex (RegistrationCo + 1) Then
RegDialog2.Filter= "Все файлы|*.*|"& _
Registrations(Combo1.ListIndex).NameApp & "|"& _
Registrations(Combo1.ListIndex).FileMask
Else
RegDialog2.Filter= "Все файлы|*.*"
End If
RegDialog2.ShowOpen
DocumentName.Text= RegDialog2.FileName
Err1:
End Sub
PrivateSub Command2_Click()
On ErrorGoTo Err1
RegDialog.Flags= cdlOFNFileMustExist + cdlOFNHideReadOnly
RegDialog.ShowOpen
IconImage.Picture= LoadPicture(RegDialog.FileName)
ImageIconText= RegDialog.FileName
Err1:
End Sub
PrivateSub DocumentName_Change()
DocumentIsChanged= True
End Sub
PrivateSub Form_Activate()
DocumentIsChanged= False
End Sub
PrivateSub OkButton_Click()
DimErrorFlag As Boolean
Dim tmpAs Integer
DimCurObject As Object
DimretShell As Long
On ErrorGoTo Err1
IfDocumentName.Text = "" Then
MsgBox("Необходимозаполнить поле""Документ:""")
DocumentName.SetFocus
Exit Sub
End If
IfDocumentIsChanged Then
ErrorFlag= False
tmp =FileLen(DocumentName.Text)
IfErrorFlag = True Then
tmp =FreeFile
OpenDocumentName.Text For Output As tmp
Closetmp
End If
End If
Hide
Exit Sub
Err1:
IfErr.Number = 53 Then
ErrorFlag= True
Else
SelectCase MsgBox("Произошлаошибка номер:" & Err.Number & _
Chr(13) & Chr(10) _
&Err.Description, vbAbortRetryIgnore + vbCritical)
CasevbAbort
End
CasevbRetry
Resume0
EndSelect
End If
ResumeNext
End Sub
‘***********************
‘ registrationform code
‘***********************
OptionExplicit
DimCurIndex As Integer
PrivateSub Browser_Click()
On ErrorGoTo Err1
RegDialog.Flags= cdlOFNFileMustExist + cdlOFNHideReadOnly
RegDialog.ShowOpen
Path =RegDialog.FileName
Err1:
End Sub
PrivateSub Cancel_Click()
LoadRegCards
Hide
End Sub
PrivateSub Combo1_Click()
ShowRegCardCombo1.ListIndex
End Sub
PrivateSub DestroyReg_Click()
Dim a AsInteger
For a =CurIndex To RegistrationCo - 1
LSetRegistrations(a) = Registrations(a + 1)
Next a
RegistrationCo= RegistrationCo - 1
IfRegistrationCo > -1 Then
ReDimPreserve Registrations(RegistrationCo)
IfCurIndex > RegistrationCo Then CurIndex = CurIndex - 1
ComboRemake
CardShowCurIndex
Combo1.ListIndex= CurIndex
'ShowRegCardCurIndex
Else
EnabledAllRegistrationCo
End If
EnabledAllRegistrationCo
End Sub
PrivateSub Form_Activate()
EnabledAllRegistrationCo
IfRegistrationCo = -1 Then Exit Sub
ComboRemake
CurIndex= 0
CardShowCurIndex
Combo1.ListIndex= CurIndex
End Sub
PrivateSub NewReg_Click()
TotalRegCo= TotalRegCo + 1
RegistrationCo= RegistrationCo + 1
ReDimPreserve Registrations(RegistrationCo)
Registrations(RegistrationCo).NameApp =InputBox("Введите имяприложения",, "Приложение"+ str(RegistrationCo + 1))
IfRegistrations(RegistrationCo).NameApp = "" Then
ReDimPreserve Registrations(RegistrationCo)
TotalRegCo= TotalRegCo - 1
RegistrationCo= RegistrationCo - 1
ExitSub
End If
Registrations(RegistrationCo).TotalNumber = TotalRegCo
EnabledAllRegistrationCo
ComboRemake
Combo1.ListIndex= RegistrationCo
'ShowRegCardRegistrationCo
'Debug.Print
End Sub
PrivateSub OkButton_Click()
MemberCard
SaveRegCards
Hide
End Sub
PrivateSub Rename_Click()
Dim a AsInteger
Dim strAs String
a =Combo1.ListIndex
str =InputBox("Введите имяприложения",, Registrations(a).NameApp)
If str "" Then Registrations(a).NameApp = str
ComboRemake
Combo1.ListIndex= a
'ShowRegCarda
End Sub
PrivateSub ShowRegCard(NumRegCard As Integer)
MemberCard
CardShowNumRegCard
End Sub
Public SubComboRemake()
Dim a AsInteger
Combo1.Clear
For a = 0To RegistrationCo
Combo1.AddItemRegistrations(a).NameApp, a
Next a
End Sub
Public SubEnabledAll(Yes As Integer)
If Yes =-1 Then
ComboRemake
Browser.Enabled= False
DestroyReg.Enabled= False
Combo1.Enabled= False
Rename.Enabled= False
Path.Enabled= False
Discrip.Enabled= False
ListExt.Enabled= False
Path.Text= ""
Discrip.Text= ""
ListExt.Text= ""
Label1.Enabled= False
Label2.Enabled= False
Label3.Enabled= False
Label4.Enabled= False
Else
DestroyReg.Enabled= True
Combo1.Enabled= True
Browser.Enabled= True
Rename.Enabled= True
Path.Enabled= True
Discrip.Enabled= True
ListExt.Enabled= True
Label1.Enabled= True
Label2.Enabled= True
Label3.Enabled= True
Label4.Enabled= True
End If
End Sub
Public SubCardShow(NumRegCard As Integer)
Path.Text= Registrations(NumRegCard).FileName
ListExt.Text= Registrations(NumRegCard).FileMask
Discrip.Text= Registrations(NumRegCard).Discription
CurIndex= NumRegCard
End Sub
Public SubMemberCard()
Registrations(CurIndex).FileName = Path.Text
Registrations(CurIndex).FileMask = ListExt.Text
Registrations(CurIndex).Discription = Discrip.Text
End Sub
ГОСУДАРСТВЕННЫЙКОМИТЕТ РОССИЙСКОЙФЕДЕРАЦИИ
ПО ВЫСШЕМУОБРАЗОВАНИЮ
Ы
ТАГАНРОГСКИЙГОСУДАРСТВЕННЫЙРАДИОТЕХНИЧЕСКИЙУНИВЕРСИТЕТ
Факультет Электроникии Прибостроения
Кафедра КонструированияЭлектронныхСредств
К защитедопустить:
Зав.Кафедрой д.т.н.профессор БолиЛ.А.
> апреля 1997г.
ПОЯСНИТЕЛЬНАЯЗАПИСКА
К ДИПЛОМНОМУПРОЕКТУ
на тему:Разработкапрограммыконтроллера автоматическисвязываемыхобъектов для управленияконструкторскойдокументациейв средеWindows 95/NT (дипломная_работа).
Руководительдипломногопроекта:к.т.ндоцент Косторниченко А.И
(должность,ученная степеньи звание)
Консультанты:
по разделу безопасности и экологичности /Коваленко_А.В./
Дипломант:СорокинЮрий Владимирович группаЭ-92
(фамилия,имя, отчество,группа)
> апреля 1997г.
Таганрог1997 г.