Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DiplomKrutova.docx
Скачиваний:
46
Добавлен:
03.05.2015
Размер:
1.46 Mб
Скачать
    1. Выбор среды и языка программирования

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

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

Интегрированная среда программирования содержит в себе следующие модули для разработки программ:

  • редактор с подсветкой синтаксиса конкретного языка программирования. В нем программист пишет текст программы, так называемый программный код;

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

  • отладчик служит для отладки программ. Ошибки в программах допускают абсолютно все: и новички, и профессионалы - они могут быть синтаксическими (обычно они выявляются еще на стадии компиляции) и логическими. Для тестирования программы и выявления в ней логических ошибок служит отладчик. Программы на С++ обычно содержат ссылки на функции, определенные где-либо вне самой программы, например, в стандартных библиотеках или в личных библиотеках групп программистов, работающих над данным проектом. Объектный код, созданный компилятором, обычно содержит «дыры» из-за этих отсутствующих частей. Отладчик связывает объектный код с кодами отсутствующих функций, чтобы создать исполняемый загрузочный модуль (без пропущенных частей). Получаем в итоге файл с расширением .exe (для Windows), либо .out (для Linux).

Далее происходит загрузка программы в оперативную память компьютера и ее выполнение. С момента начала выполнения компьютер под управлением своего ЦПУ (центральное процессорное устройство) начинает последовательно выполнять в каждый момент времени по одной команде программы. Эти моменты времени носят название такт, каждый процессор имеет свою тактовую частоту, которую задает его внутренний тактовый генератор. Чем более высокая частота работы вашего процессора, тем, соответственно, лучше и тем быстрее выполняются ваши программы[5].

Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению сред программирования, ориентированных на так называемую "быструю разработку". В основе систем быстрой разработки или RAD-систем (Rapid Application Development — среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования. Суть RAD-систем заключается в том, что среда разработки берет на себя большую часть рутины, позволяя программисту уделить больше времени и внимания на разработку логики приложения и на создание функций обработки событий, а не на создание и «рисование» интерфейса и кнопок. Производительность программиста при использовании RAD-систем очень велика. Одной из широко используемых RAD-систем является Borland C++Builder. Builder позволяет создавать различные программы: от простейших однооконных приложений до программ управления распределенными базами данных. В качестве языка программирования в среде Borland C++Builder используется C++. Borland C++Builder использует богатую библиотеку готовых компонентов VCL (Visual Component Library), которая постоянно расширяется с выходом каждой новой версии продукта. Библиотека визуальных компонентов VCL инкапсулирует сложные, трудоемкие интерфейсы Windows API в удобные, расширяемые компоненты многократного применения. Она полностью интегрирована в среду разработки и это облегчает управление свойствами и методами компонентов через программный код.

Другой известной RAD-системой является Microsoft Visual Studio. Microsoft разработали свои модели компонентов – windows forms, с# которые являются конкурентом модели VLC.

Однако каждая из этих сред имеет свои достоинства и недостатки. И для каждого программиста они индивидуальны. Кому-то важна VCL с богатым выбором функционала, а для кого-то – быстродействующая и мощная windows forms или c#.

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

    1. Структура регистрации

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

В течение следования поезда из одного депо в другое (можно принять это за один сеанс работы), каждые несколько миллисекунд, происходит запись информации от основных блоков системы «Витязь» в регистрацию, которая находится в памяти регистратора параметров движения поезда. РПДП перехватывает эту информацию, подключаясь к головной и поездной шине CAN, по которым информация курсирует между этими «прослушиваемыми» блоками и блоком управления поезда. Информация в РПДП записывается строками по 17 байт. Строки имеют следующий формат:

Таблица 2.6.1

Структура одной записи (строки) информации

№ Байта

Описание

1

Час

2

Минута

3

Секунда

4

Милисекунда

5

Резерв

6,7

Идентификатор устройства CAN

8

Резерв

9

мч-кол. Байт в CAN, сч-номер CAN

10-17

Информация

Как видно из структуры, 6 и 7 байт отводятся под идентификатор устройства, от которого пришла информация, а 10-17 байты отвечают непосредственно за саму информацию. Эта информация описывает состояние устройства в момент времени, который хранится в 1,2,3,4 байтах. Существуют протоколы, по которым можно расшифровать принятые 8 байт информации и определить, в каком состоянии находилось устройство, какие значения выдавали датчики этого устройства, а также было ли оно исправно или нет.

Таким образом, каждые несколько миллисекунд в РПДП записывается информация от ряда устройств, а потом все повторяется заново. Перед каждым новым циклом записи в РПДП поступает сообщение с идентификатором 0х0011, который обозначает начало нового цикла записи. Один цикл записи называется кадром. Получается, что одна регистрация состоит из множества кадров, которые, в свою очередь, состоят из строк размером 17 байт. Размер кадра может быть разным, так как количество одновременно работающих и опрашиваемых устройств может в разные моменты времени отличаться. Ниже представлен фрагмент регистрации, состоящий из двух полных кадров. Первый кадр очень короткий, он состоит всего из одной строки с идентификатором начала кадра. Такое часто случается в самом начале регистрации, когда включается питание поезда, но основные устройства еще не успевают начать работу.

Рис. 2.6.1 Пример регистрации

    1. Вывод

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

Для обеспечения автоматизации процесса передачи информации от поездного блока РПДП на стационарный сервер архивирования информации было решено использовать выделенный Wi-Fi радиоканал. В качестве средства инициирования передачи по Wi-Fi решено использовать RFID-технологии.

При проектировании ППП были изучены существующие концепции программирования и выбраны наиболее подходящие для осуществления поставленной задачи, после изучения концепций был выбран язык программирования – C++. Помимо этого был произведен обзор существующих сред программирования, после чего было решено производить разработку ППП в среде Embarcadero RAD STUDIO XE2 Professional (C++ Builder XE2).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]