Автор работы: Пользователь скрыл имя, 18 Февраля 2013 в 14:24, дипломная работа
В настоящее время технологии сбора данных нашли самое широкое применение: от научно-исследовательских приложений до различных задач испытаний и автоматизации в промышленности. Для осуществления сбора данных ученые и инженеры используют персональные компьютеры (ПК) с шинами PCI, PXI, CompactPCI, PCMCIA, USB, FireWire, а также с последовательными и параллельными портами. Многие устройства сбора данных устанавливаются непосредственно в компьютер и передают данные напрямую в его память. В ряде задач используются удаленные устройства сбора данных, которые подключаются к ПК через сеть или через последовательный и параллельный порт.
ВВЕДЕНИЕ………………………………………………………………………..3
І ГЛАВА………………………………………………………………………...…4
Обзор существующих систем сбора данных.
Обоснование выбора и формулировка поставленной задачи……………..4
1.1.1 Типы и характеристики измеряемых сигналов………………....4
1.1.2 Персональный компьютер. Шины и порты,
используемые для передачи данных………………………………..…8
1.2. Средства решения задачи……………………………………………...14
1.2.1. Сом-порт: особенности, достоинства
и применение……………………………………………………….…14
1.2.2 Использование Visual Basic for Applications
при работе с Microsoft Excel………………………………………….18
ПОСТАНОВКА ЗАДАЧИ………………………………………………………31
ІІ ГЛАВА…………………………………………………………………………32
2.1 Практическое приложение
разработанного программного пакета………………………………….…32
2.1.1 Подключение СОМ-порта………………………………………32
2.1.2 Управление СОМ-портом из Excel……………………………..35
2.2. Установка «Запись объемных амплитудно-фазовых
голограмм на окрашенных щелочно-галоидных
кристаллах». Структура и задачи…………………………………….……40
ВЫВОДЫ……………………………………………………………………...…46
СПИСОК ЛИТЕРАТУРЫ……………………………………
RTS (Request to Send - запрос на передачу) - выход на компьютере, вход на модеме. Модем обязан приостановить передачу данных, пока этот провод не будет выставлен в единицу. Используется в аппаратном протоколе управления потоком для предотвращения переполнения в оборудовании и драйвере.
DCD (Carrier Detect - наличие несущей) - вход на компьютере, выход на модеме. Взводится модемом в единицу после установления соединения с модемом с той стороны, сбрасывается в ноль при разрыве связи. Аппаратура компьютера может издавать прерывание при наступлении такого события.
RI (Ring Indicator - сигнал вызова) - вход
на компьютере, выход на модеме.
Взводится модемом в единицу
после обнаружения вызывного
сигнала телефонного звонка. Аппаратура
компьютера может издавать
SG (Signal Ground - сигнальная земля) - общий сигнальный провод порта, не является общей землёй, как правило, изолирован от корпуса ЭВМ или модема [4].
В нуль-модемном кабеле используются две перекрещенные пары: TXD/RXD и RTS/CTS.
Стандартная (со времен оригинальной IBM PC) аппаратура порта называется UART 16550 (в настоящее время включена в SuperIO микросхему на материнской плате вместе с рядом иных устройств). Со времен IBM PC в ней появилась аппаратная очередь байт, которая сильно снижает количество издаваемых устройством прерываний.
COM-порты в операционной
Для каждого порта в реестре имеется раздел. Эти разделы имеют такие имена:
HKEY_LOCAL_MACHINE\SYSTEM\
где последнее значение “Serial10000” - уникальный номер для каждого нового добавленного в систему COM-порта, для второго – “Serial10001” и т.д
Для связи с устройствами, поддерживающими Bluetooth, некоторым программам (например, к таким программам относятся: программа, которая синхронизирует список контактов с мобильным телефоном; программа, которая извлекает координаты GPS из GPS-приемника) на компьютере пользователя требуется COM-порт.
К программам, использующим COM-порты для поддержки связи с помощью технологии беспроводного подключения Bluetooth, непосредственно разработанных фирмой Microsoft, относятся: HotSync, используемый в ручных компьютерах; ActiveSync, используемый в карманных ПК; Microsoft Streets and Trips 2002 [4].
1.2.2 Использование Visual Basic for Applications при работе с Microsoft Excel
Microsoft Excel (также иногда называется Microsoft Office Excel [5]) — программа для работы с электронными таблицами, входящая в состав Microsoft Office, созданная корпорацией Microsoft для Microsoft Windows, Windows NT и Mac OS. Она предоставляет возможности экономико-статистических расчетов и графические инструменты. На сегодняшний день Excel является одним из наиболее популярных приложений в мире.
Начиная с 1993 года, в состав Excel входит Visual Basic для приложений (VBA), язык программирования, основанный на Visual Basic, позволяющий автоматизировать задачи Excel. VBA является мощным дополнением к приложению и в более поздних версиях Excel доступна полнофункциональная интегрированная среда разработки. Можно создать VBA-код, повторяющий действия пользователя и таким образом автоматизировать простые задачи. VBA позволяет создавать формы для общения с пользователем. Язык поддерживает использование (но не создание) DLL от ActiveX; более поздние версии позволяют использовать элементы объектно-ориентированного программирования.
Функциональность VBA делала Excel легкой мишенью для макровирусов. И это было серьёзной проблемой до тех пор, пока антивирусные продукты не научились обнаруживать их. Фирма Microsoft, с опозданием приняв меры для уменьшения риска, добавила возможность выбора режима безопасности:
Начиная с Microsoft Excel 2007, наряду с другими продуктами Microsoft Office 2007, вводится множество новых форматов файлов. Они являются частью Office Open XML (OOXML) спецификации и их особенности приведены в таблице [6]:
Формат |
Расширение |
Примечания |
Рабочая книга Excel |
.xlsx |
Стандартный формат рабочих книг Excel 2007. В действительности это сжатый ZIP-архив каталога XML документов. Является заменой бывшего бинарного формата .xls, хотя и не поддерживает макросы по соображениям безопасности. |
Рабочая книга Excel с макросами |
.xlsm |
Та же рабочая книга Excel, но с поддержкой макросов. |
Бинарная рабочая книга Excel |
.xlsb |
Та же рабочая
книга Excel с макросами, но хранящая информацию
в бинарном формате, открывая документы
быстрее чем XML. В особенности
часто используется для очень
больших документов с десятками
тысяч строк и/или сотнями коло |
Шаблон Excel с макросами |
.xltm |
Шаблон, созданный как основа для рабочих книг, включена поддержка макросов. Заменяет старый формат .xlt. |
Надстройка Excel |
.xlam |
Надстройка Excel, направленная на добавление дополнительных функциональных возможностей и инструментов. |
Visual Basic for Applications (Visual Basic для приложений)— немного упрощённая реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft Office (включая версии для Mac OS), а также во многие другие программные пакеты, такие как AutoCAD, SolidWorks, CorelDRAW, WordPerfect и ESRI ArcGIS. VBA покрывает и расширяет функциональность ранее использовавшихся специализированных макро-языков, таких как WordBasic.
VBA является интерпретируемым языком. Как и следует из его названия, VBA близок к Visual Basic. VBA, будучи языком, построенным на COM, позволяет использовать все доступные в операционной системе COM объекты и компоненты ActiveX. По сути, возможно создание приложения на основе Microsoft Word VBA, использующего только средства Corel Draw.
В будущем Microsoft планирует заменить VBA на Visual Studio Tools for Applications (VSTA) — инструментарий расширения функциональности приложений, основанный на Microsoft .NET [7].
К достоинствам языка можно отнести сравнительную лёгкость освоения, благодаря которой приложения могут создавать даже пользователи, не программирующие профессионально. К особенностям VBA можно отнести выполнение скрипта именно в среде офисных приложений.
Недостатком являются проблемы с обратной совместимостью разных версий. Эти проблемы в основном связаны только с тем, что код программы обращается к функциональным возможностям, появившимся в новой версии программного продукта, которые отсутствуют в старой. Также к недостаткам часто относят и слишком высокую открытость кода для случайного изменения, тем не менее, многие программные продукты (например, Microsoft Office и IBM Lotus Symphony) позволяют пользователю использовать шифрование исходного кода и установку пароля на его просмотр.
Перед запуском макрорекордера следует подготовить рабочий лист, произведя все действия, которые не нужно включать в процедуру. Необходимо запустить Excel и открыть лист Лист1 и выполнить команду Сервис, Макрос, Начать запись (рис. 2):
В появившемся диалоговом окне Запись макроса, необходимо установить параметры записываемой процедуры. В поле Имя макроса ввестие имя процедуры Расчет_стоимости. В поле Описание следует ввести текст, поясняющий назначение процедуры: Процедура, вычисляющая стоимость с учетом скидки. Поле Сочетание клавиш предназначено для записи символа, нажатие на который при нажатой клавише Ctrl приведет к запуску процедуры. Это поле заполнять не нужно. Оставим без изменения остальные параметры диалогового окна и щелкнем на кнопке ОК. Появится кнопка Остановить запись на плавающей панели инструментов. На этом подготовка к записи макроса закончена. Теперь все следующие производимые действия будут записаны и интерпретированы как инструкции VBA. Будут записаны все нажатия клавиш клавиатуры и кнопок мыши до тех пор, пока не будет нажата кнопка Остановить запись.
Чтобы выключить отображение сетки необходимо выполнить команду Сервис, Параметры., раскрыть вкладку Вид, сбросить флажок Сетка и щелкнуть на кнопке ОК.
Далее выделяем ячейку B5 и вводим текст Розничная цена: и нажимаем клавишу Enter. Выделяем ячейку C5 и выполняем команду Формат, Ячейки.
Необходимо отменить защиту выделенной ячейки от изменения ее содержимого, т.е. позже, когда мы защитим от изменений весь рабочий лист, данные в этой ячейке можно будет изменять. Для этого необходимо в вкладке Защита сбросить флажок Защищаемая ячейка. Далее, раскроем вкладку Число и выберем формат Денежный с двумя разрядами дробной части и символом денежной единицы. Затем щелкнем на кнопке ОК.
Выделим ячейку B7, введем текст Цена с учетом скидки: и нажмем клавишу Enter. Выделим ячейку B9, введем текст Размер скидки: и нажмем клавишу Enter.
Для расширения столбца B до такой степени, чтобы текст в ячейке B7 полностью отображался внутри столбца B, поместим указатель мыши на вертикальную черту между заголовками столбцов B и C и перетащим ее.
Выделим диапазон ячеек B5:B9 и установим в них выравнивание текста по правому краю. Для этого необходимо выбрать команду Формат, Ячейки. Раскрыть вкладку Выравнивание. В раскрывшемся списке по горизонтали выделить элемент по правому краю и щелкнуть на кнопке ОК.
Выделим ячейку C7 и выберем команду Формат, Ячейки. Раскроем вкладку Число и выберем формат Денежный с двумя разрядами дробной части и символом денежной единицы, затем щелкнем на кнопке ОК.
Введем в этой ячейке формулу =(1-C9)*C5 .
Выделим ячейку C9 и выберем команду Формат, Ячейки. Раскроем вкладку Число и выберем формат Процентный с двумя разрядами дробной части. Затем щелкнем на кнопке ОК.
Зададим размер скидки, введя значение 0,05 в ячейку C9 и нажав клавишу Enter.
Чтобы защитить ячейки рабочего листа от изменений, необходимо выбрать команду Сервис, Защита, Защитить лист. В появившемся окне Защитить лист щелкниуть на кнопке ОК. Рабочий лист теперь должен выглядеть так, как изображено на рис. 3:
Рис. 3 Вид рабочего листа.
Для остановки записи необходимо щелкнуть на кнопке Остановить запись на плавающей панели инструментов, которая появилась на рабочем листе в начале записи.
Теперь можно посмотреть на процедуру, которая получилась в результате записи. Для этого необходимо выполнить команду Сервис, Макрос, Макросы, выделить имя макроса в предлагаемом списке и щелкнуть на кнопке Изменить. Вследствие появится окно редактора VB, в котором откроется окно с кодом процедуры (рис. 4).
Рис. 4 Окно с кодом процедуры.
Ниже приведен текст этой процедуры:
Sub Расчет_стоимости()
'
' Расчет_стоимости Макрос
' Процедура, вычисляющая стоимость с учетом скидки
'
'
ActiveWindow.DisplayGridlines = False
Range("B5").Select
ActiveCell.FormulaR1C1 = "Розничная цена"
Range("C5").Select
Selection.NumberFormat = "#,##0.00 [$грн.-422]"
Selection.Locked = False
Selection.FormulaHidden = False
Range("B7").Select
ActiveCell.FormulaR1C1 = "Цена с учетом скидки"
Range("B9").Select
ActiveCell.FormulaR1C1 = "Размер скидки"
Columns("B:B").ColumnWidth = 19.43
Range("B5:B9").Select
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("C7").Select
Selection.NumberFormat = "#,##0.00 [$грн.-422]"
Range("C7").Select
ActiveCell.FormulaR1C1 = "=(1-R[2]C)*R[-2]C"
Range("C9").Select
Selection.NumberFormat = "0.00%"
Range("C9").Select
ActiveCell.FormulaR1C1 = "0.05%"
Range("C10").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Каждому выполненному действию соответствует одна или более строк процедуры:
ActiveWindow.DisplayGridlines = False
Эта инструкция VBA задает значение False свойству DisplayGridlines (отображать сетку) объекта ActiveWindow (активное окно). Активное окно – это то окно, в котором находится фокус ввода. Необязательно помещать в код процедуры имя рабочего листа, с которым Вы работаете, если этот лист активен, т.е. находится в активном окне. Благодаря этому процедура может применяться не только к одному рабочему листу, а к любому активному рабочему листу.
Range("B5").Select
ActiveCell.FormulaR1C1 = "Розничная цена:"
Следующие две строки программного кода процедуры активизируют ячейку B5 и помещают в нее текст "Розничная цена :" В VBA отдельная ячейка рабочего листа не является объектом. Диапазон ячеек, например Range ("B2:D3"), является объектом даже тогда, когда он состоит из одной ячейки, например Range("A1"). Метод Select (выделить) активизирует ячейки, указанные как аргументы объекта Range. Ссылкой на активную ячейку является ActiveCell (активная ячейка). Свойство FormulaR1C1 ячейки предназначено для записи в ячейке формулы.
Range("C5").Select
Selection.NumberFormat = "#,##0.00 [$грн.-422]"
Selection.Locked = False
Selection.FormulaHidden = False
Следующие четыре строки выделяют ячейку C5, затем применяют к ней числовой формат, снимают защиту ячейки и скрытие формул, действующие после защиты листа. Последнюю из этих инструкций можно удалить, поскольку важно лишь снять защиту ячейки. Значение же ее свойства Hidden (скрытый) нам безразлично.