Содержание
Содержание
ВВЕДЕНИЕ3
1. ПОСТАНОВКА ЗАДАЧИ5
1.1. Обзор состояния предметной области5
1.2. Обоснование создания информационной подсистемы БД7
1.3. Требования к программе12
1.3.1. Требования к функциональным характеристикам12
1.3.2. Требования к надежности13
1.3.3. Требования к параметрам технических средств14
1.3.4. Требования к информационной и программной совместимости15
1.4. Обоснование выбора СУБД17
1.5. Обоснование выбора языка программирования19
1.6. Этапы разработки приложения20
1.6.1. Технический проект20
1.6.2. Рабочий проект20
1.6.3. Внедрение20
2. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ21
2.1. Функциональное проектирование21
2.2. Инфологическое проектирование22
2.2.1. Цель инфологического проектирования22
2.2.2. Проектирование информационной модели базы данных24
2.3. Концептуальное моделирование26
2.4. Логическая и физическая модели27
2.5. Выходные документы30
3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ31
3.1. Требования к СУБД и выбор средств программной реализации31
3.2. Описание структуры таблиц базы данных32
3.3. Описание экранных форм и выходных документов38
3.4. Пояснение некоторых фрагментов программного кода44
3.5. Описание запросов46
4. Обоснование экономической эффективности проекта49
4.1. Расчет временных затрат на разработку системы49
4.2. Составление сметы затрат на создание программного обеспечения51
4.2.1. Расчет затрат на материалы51
4.2.2 Расчет арендной платы51
4.2.3 Расчет основной заработной платы52
4.2.4 Расчет дополнительной заработной платы53
4.2.5 Расчет отчислений на социальные нужды53
4.2.6 Расчет накладных расходов54
4.2.7 Смета затрат на разработку54
4.3. Определение срока окупаемости55
5. Безопасность жизнедеятельности56
5.1. Введение56
5.2. Описание объекта57
5.3. Описание рабочего места57
5.4. Анализ вредных и вредных факторов, возникающих при работе с компьютером58
5.5. Электробезопасность59
5.6. Условия труда62
5.6.1 Эргономический анализ рабочего места62
5.6.2 Защита от электромагнитного излучения63
5.6.3 Защита от статического электричества64
5.6.4 Защита от шума64
5.6.5 Защита от ионизирующего излучения65
5.6.6 Микроклимат производственных помещений66
5.6.7 Освещенность рабочего места67
5.7. Выводы69
Список использованной литературы70
Приложение73
Выдержка из текста работы
В процессе функционирования автоматизированной системы управления между ее элементами осуществляется непрерывный обмен различного рода информацией: объективной и субъективной. От скорости передачи и достоверности этой информации зависит качество и своевременность принятия решений управленческим аппаратом, а значит, и выполнение задач системой управления. Передача информации в АСУ осуществляется с помощью систем передачи данных.
Системы передачи данных (СПД) являются одним из основных элементов технического обеспечения автоматизированных систем управления (АСУ).
Качество их функционирования существенно влияет на своевременность и правильность принятия решения. Функционирование средств передачи информации в АСУ протекает в различных условиях помеховой обстановки, когда велика вероятность выхода (вывода) этих средств из строя. Их отказы и повреждения приводят к нарушению управления. Быстрое восстановление работоспособности этих средств позволяет уменьшить тяжесть этих последствий. Одним из путей повышения качества функционирования является применение адаптивных систем (самоприспосабливающаяся систем), автоматически изменяющих алгоритмы своего функционирования и (иногда) свою структуру с целью сохранения или достижения оптимального состояния при изменении внешних условий. Адаптивные системы передачи данных относятся к СПД с обратной связью.
В адаптивных СПД осуществляется необходимый контроль и по обратному каналу передается информация о состоянии канала связи и аппаратуры с целью изменения режима работы (скорости, кода, параметров сигналов и т.п.) передатчика и приемника.
Цель данной работы состоит в разработке адаптивной системы передачи информации, самоприспосабливающейся системы, меняющей свой алгоритм при изменении внешних условий для достижения оптимального состояния и корректной передачи данных. Поставленная цель достигается с помощью моделей, алгоритмов и СПД.
Для достижения поставленной цели были решены следующие задачи:
1) обоснована целесообразность разработки адаптивной системы передачи данных;
2) разработаны модели и алгоритмы работы системы;
3) разработан автоматизированный комплекс, позволяющий передавать данные.
При программной реализации полученных концепций использовались методы теории алгоритмов, структурного и объектно-ориентированного программирования.
Проектирование автоматизированной системы — логически сложная, трудоемкая и длительная работа. Тенденции развития современных информационных технологий приводят к возрастанию сложности автоматизированной системы, что способствовало их появлению
Порядок построения работы следующий: вначале анализируются структуры адаптивных систем, рассматривается их классификация, анализируются возможности изменения параметров помехоустойчивых кодов, изменение параметров методов передачи данных, оценка качества функционирования систем передачи данных, анализируется процесс моделирования.
Во втором разделе разрабатывается модель адаптивной системы передачи данных: передающего и принимающего устройства.
В третьем разделе решаются вопросы, связанные с конкретной реализацией проекта, такие как постановка требований к разрабатываемой программе, выбор среды программирования, реализация обмена данными между ЭВМ, непосредственно разработка программных модулей, описание программного продукта.
Для написания адаптивной системы передачи информации выбрана среда программирования Delphi 7.0. Она полностью отвечает требованиям скорость и качество создания программ и подходит для создания систем любой сложности. В основе такой общепризнанной популярности Delphi лежит тот факт, что Delphi, как никакая другая система программирования, удовлетворяет требованиям » быстрота, простота, эффективность, надежность «. Действительно, приложения с помощью Delphi разрабатываются быстро, причем взаимодействие разработчика с интерактивной средой Delphi не вызывает внутреннего отторжения, а наоборот, оставляет ощущение комфорта. Delphi-приложения эффективны, если разработчик соблюдает определенные правила (и часто — если не соблюдает). Эти приложения надежны и при эксплуатации обладают предсказуемым поведением.
В четвертом разделе производится экономическое обоснование разработки: просчитывается общая стоимость проектирования и исполнения комплекса.
1. Анализ структур адаптивных систем
1.1 Анализ классифицирующих признаков адаптивных систем
Для создания модели адаптивной системы передачи данных, необходимо разработать структуру СПД, которая может применяться в различных автоматизированных системах управления требующих повышенной достоверности передаваемых данных. В ходе анализа адаптивных систем были выявлены общие признаки, по которым определяется классификации систем передачи данных.
Адаптивные системы делят на две большие группы:
а) по характеру изменений в управляющем устройстве:
1) самонастраивающиеся (изменяются только значения параметров регулятора);
2) самоорганизующиеся (изменяется структура самого регулятора).
б) по способу изучения объекта системы:
1) поисковые;
2) беспоисковые.
В первой группе особенно известны экстремальные системы, целью управления которых является поддержание системы в точке экстремума статических характеристик объекта. В таких системах для определения управляющих воздействий, обеспечивающих движение к экстремуму, к управляющему сигналу добавляется поисковый сигнал. Беспоисковые адаптивные системы управления по способу получения информации для подстройки параметров регулятора делятся:
а) системы с эталонной моделью (ЭМ)
б) системы с идентификатором, в литературе иногда называют, как системы с настраиваемой моделью (НМ).
Адаптивные системы с ЭМ содержат динамическую модель системы, обладающую требуемым качеством. Адаптивные системы с идентификатором делятся по способу управления делятся:
а) прямой
б) косвенный
При косвенном адаптивном управлении сначала делается оценка параметров объекта, после чего на основании полученных оценок определяются требуемые значения параметров регулятора, и производится их подстройка. При прямом адаптивном управлении благодаря учёту взаимосвязи параметров объекта и регулятора, производится непосредственная оценка и подстройка параметров регулятора, чем исключается этап идентификации параметров объекта. По способу достижения эффекта самонастройки системы с моделью делятся на:
а) системы с сигнальной (пассивной);
б) системы с параметрической (активной) адаптацией;
в) комбинированными.
В системах с сигнальной адаптацией эффект самонастройки достигается без изменения параметров управляющего устройства с помощью компенсирующих сигналов. Процесс адаптации без обратной связи состоит из измерений характеристик входного сигнала или окружающей среды, введения этой информации в формулу или вычислительный алгоритм и использования результатов для регулирования адаптивной системы. При адаптации с обратной связью автоматически вносятся коррекции и с целью оптимизации параметров функционирования системы определяется их влияние на выходной сигнал. Этот процесс можно назвать адаптацией с функциональной обратной связью. В системе без обратной связи таким критерием являются некоторые характеристики входного сигнала и, возможно, другие данные, а в системе с обратной связью — кроме того, функция, выходного сигнала.
1.2 Анализ возможностей изменения параметров помехоустойчивых кодов
В адаптивных системах, одним из параметров, который можно изменять в зависимости от состояния канала связи, является помехоустойчивое кодирование. Исследование методов адаптивного кодирования, при которых в зависимости от состояния канала связи автоматически и целенаправленно изменяются структурно-параметрические и алгоритмические характеристики помехоустойчивого кода является актуальной. При адаптивном кодировании решают следующие основные задачи [2]:
а) определяют качество канала связи;
б) принимают решение — выбирают помехоустойчивый код, его параметры и алгоритмы кодирования, декодирования и цикловой синхронизации, обеспечивающие заданную вероятность доведения сообщения при минимальной избыточности кода;
в) выполняют управление, т.е. устанавливают параметры кода в кодирующем и декодирующем устройстве.
Используют параметрическую, алгоритмическую или структурную адаптацию. Обычно выбор той или иной кодовой конструкции выполняют заранее на этапе разработки системы, а в процессе эксплуатации меняют только его параметры. Однако возможно изменение алгоритмов кодирования и декодирования, а также и структуры самого кода, а не только его параметров и в процессе эксплуатации системы связи [3]. В этом случае используется алгоритмическая и структурная адаптация. Изменение кодовой конструкции на этапе эксплуатации обусловлено настолько существенным изменением состояния канала связи, что прежняя кодовая конструкция при любых ее допустимых параметрах и алгоритмах кодирования и декодирования уже не обеспечивает требуемую вероятность доведения сообщения. При незначительном изменении качества канала обычно управляют параметрами кода, поскольку это бывает существенно проще с точки зрения технической реализации. Основными параметрами помехоустойчивого кода являются блоковая длина или длина кодового ограничения и скорость кода, определяющие его избыточность и корректирующую способность. Важной характеристикой кода является его весовая структура. Чаще всего заранее выбирают код с определенными, наилучшими для данной кодовой конструкции параметрами. Однако, изменение параметров кода не всегда гарантирует необходимое минимальное кодовое расстояние и помехоустойчивость может ухудшится. К тому же далеко не все помехоустойчивые коды могут легко изменять свои параметры. Это объясняется тем, что многие алгоритмы кодирования и декодирования кодов привязаны к структуре порождающих и проверочных полиномов кода, а при изменении параметров кода эти полиномы могут меняться. Например, мажоритарное декодирование возможно только для кодов с определенными системами проверок, т.е. порождающими и проверочными полиномами. Аналогично и для кодов с перестановочным декодированием, которое можно использовать для кодов с определенным соотношением блоковой и информационной длин кода. Лучше обстоит дело при использовании алгебраических методов кодирования и декодирования. Эти методы разработаны для достаточно широкого класса помехоустойчивых кодов типа кодов БЧХ, Рида-Соломона. Алгебраические методы кодирования и декодирования позволяют легко изменять число проверочных и информационных символов кода, особенно при их программной реализации.
Аналогичная ситуация имеет место для вероятностных методов декодирования типа последовательного декодирования или декодирования Витерби. Эти методы обычно используются для декодирования непрерывных сверточных кодов, изменение длины информационной последовательности которых не представляет труда, а сокращение избыточности достигается выкалыванием части проверочных символов.
Среди множества различных недвоичных кодов особое место занимают коды Рида-Соломона, поскольку являются наилучшими недвоичными МДР-кодами (кодами с максимально достижимым расстоянием). Коды Рида-Соломона используются в качестве внешних кодов во многих перспективных кодовых конструкциях: каскадных, гибридных кодах и кодах с сигнально-кодовыми конструкциями (СКК) [4]. Параметры кода Рида-Соломона легко изменяются, что позволяет также легко изменять и параметры кодовых конструкций, построенных на его основе. При этом несложно обеспечить необходимую корректирующую способность кода Рида-Соломона, которая связана с параметрами кода простым соотношением
d(X,Y) = n-m +1, (1.1),
где d(X,Y) — минимальное кодовое расстояние кода,
n — блоковая длина кода
m — информационная длина.
Альтернативой кодам Рида-Соломона могут служить недвоичные коды с мажоритарным многопороговым декодированием [5]. Однако, сложность реализации кодов Рида-Соломона в процессе совершенствования алгоритмов и элементной базы постоянно сокращается, что делает эти коды привлекательными для применения в адаптивном кодировании.
Выбор кода в общем случае подразумевает также и возможность изменения алгоритмов декодирования. При декодировании одного и того же кода возможно использование различных алгоритмов, отличающихся вероятностно-временными характеристиками. В зависимости от выбранного алгоритма будут различаться вероятности правильного приема и трансформации сообщений и сложность декодирования, а значит, и время декодирования. Известны алгоритмы декодирования кодов с обнаружением ошибок, с исправлением ошибок, по наиболее вероятным символам, мягкое декодирование и другие.
В общем случае при адаптивном кодировании выполняется выбор кодовой конструкции, ее параметров и алгоритмов кодирования, декодирования и цикловой синхронизации. Математически структурно-параметрическая адаптация помехоустойчивого кода формулируется следующим образом. Система адаптивного кодирования S задается:
а) характеристиками канала связи H ,
б) структурно-параметрическими и алгоритмическими характеристиками помехоустойчивого кода N = {C ,K , A} ,
в) характеристиками системы адаптации F, рассматриваемой как объект автоматического управления и включающими законы формирования управляющих воздействий системы,
г) целевой функцией системы адаптации P, которую обычно выражают отклонением вероятности доведения сообщения от заданного значения.
Таким образом, система адаптивного кодирования представляется в виде
S = S(H,n = {C,K,A},F,P(1.2)
Задачей адаптивной системы является выбор структурно-параметрических и алгоритмических характеристик помехоустойчивого кода N = {C ,K , A} и законов управления F, обеспечивающих минимизацию целевой функции P при заданных характеристиках канала связи H. Математически задача адаптивного кодирования формулируется и решается как задача условной многокритериальной целочисленной оптимизации целевой функции.
Эффективность адаптивного кодирования оценивается либо повышением скорости передачи информации для заданной вероятности правильного приема сообщения
V = {max V}, Pпр =Pппз}(1.3)
либо увеличением вероятности правильного приема сообщения при заданной постоянной скорости передачи информации по отношению к коду с постоянными параметрами.
P = {max Pпр}, V = Vз(1.4)
Для доведения сообщений с заданной вероятностью в нестационарном канале необходим постоянный контроль (мониторинг) его качества. Контроль качества канала должен проводится в рабочем режиме, без снижения скорости передачи в канале связи. Такое оценивание состояния канала связи возможно по результатам декодирования кода и анализа первичных и вторичных статистических признаков посылок. Однако ни статистические признаки, ни результаты декодирования кода не дают полной информации о распределении ошибок канала связи. Точность статистических признаков задается доверительными вероятностями и интервалами, результаты декодирования кода определяют статистику ошибок только в пределах корректирующей способности кода. Поэтому, для повышения надежности используются интегрированные оценки качества канала по результатам декодирования помехоустойчивого кода с учетом мягких весов посылок (массы), сформированных на основе первичных и вторичных статистических признаков. При оценивании качества канала также учитываются достоверности различных комбинаций ошибок по информационному критерию.
Методы оперативного оценивания качества канала можно разделить на две группы. Первая группа включает в себя прямые методы контроля, основанные на непосредственном подсчете числа ошибок в кодовых словах и вычислении частоты этих ошибок. В каналах низкого качества эти методы дают погрешность, поскольку трудно точно оценить число ошибок в стертых и трансформированных словах кода. Поэтому, в таких каналах применяют методы второй группы, при которых коэффициент ошибок и показатели группирования ошибок рассчитывают косвенным путем по распределению блоковой статистики ошибок в словах кода [5]. Косвенные методы оценивания качества канала основаны на сравнении теоретических и экспериментальных блоковых статистик ошибок в словах кода. Рассмотрим сначала косвенные методы контроля канала.
Качество канала связи определяется характеристиками канала H, влияющими на вероятность доведения сообщения. Такими характеристиками являются, например, коэффициент ошибок и коэффициент группирования ошибок в канале связи и другие. Характеристики канала H определяют при минимизации целевой функции, учитывающей квадратичное отклонение экспериментального распределения ошибок, полученного по результатам декодирования кода, от его теоретического распределения с использованием признаков достоверности.
Наиболее просто коэффициент ошибок можно определить, используя прямые методы контроля качества канала связи, непосредственно подсчитав количество ошибок, исправленных при декодировании кода. Прямые методы обычно используют в каналах относительно высокого качества (р ? 10-3). Для этого сообщение, полученное при декодировании кода, заново кодируют тем же кодом, что и на передающей стороне канала связи и при этом получают восстановленную последовательность символов кода n1. Последовательность n1 полностью совпадает с последовательностью символов кода, которая передавалась по каналу связи. Далее из принятой последовательности символов кода n2 вычитают восстановленную последовательность n1, и получают последовательность ошибок [7]
l = n2 — n1 (1.5)
Теперь подсчитывают количество ошибок l0 в последовательности ошибок l, т. е. в коде.
Коэффициент ошибок канала связи будет равен отношению числа ошибок l0 в коде к общему количеству символов n в этом коде.
КОШ= l0/ n (1.6)
При передаче сообщений, защищенных помехоустойчивым кодом, важным является выбор кодовой конструкции, ее параметров и алгоритмов кодирования, декодирования и цикловой синхронизации (рис. 1.1). При выборе кода необходимо согласовывать его параметры с источником сообщения, каналом связи и требованиями по доведению сообщения.
Параметры кода определяются:
а) характеристиками используемых каналов связи;
б) объемом передаваемых сообщений;
в) видом модуляции;
г) требованиями к помехоустойчивости и достоверности принятого сообщения;
д) необходимостью минимизации избыточности кода с целью сокращения времени передачи;
е) сложностью аппаратной и программной реализаций и быстродействием;
ж) допустимой временной задержкой в передаче и приеме сообщения;
з) цикловой синхронизацией помехоустойчивого кода.
На стадии эксплуатации системы связи выполняется оперативная адаптивная коррекция параметров кода. При этом обеспечивается заданная вероятность доведения сообщения при минимальной избыточности кода. На передающей стороне исходная информация кодируется помехоустойчивым кодом с переменными параметрами. На приемной стороне оценивается качество канала связи. Характеристики канала вычисляются на основании результатов декодирования кода.
Рисунок 1.1 — Схема адаптивного кодирования
Затем выбирается код, обеспечивающий требуемую вероятность правильного приема сообщения при его минимальной избыточности. Новые параметры помехоустойчивого кода по каналу обратной связи доводят до передающей стороны и устанавливают в кодирующем устройстве кода.
Вероятность правильного приема кода Pпр зависит от параметров кода N и качества канала связи H : Pпп = Pпп (H , N ) . Параметры кода N выбирают таким образом, чтобы вероятность правильного приема кода Pпр была не менее заданной вероятности Pпрз, при условии минимальной избыточности кода.
Поскольку множество возможных параметров кода ограничено, то для оптимизации можно использовать метод последовательного перебора. Таким образом, решения принимают по таблице, входом которой является качество канала связи, а выходом — параметры кода. Объем этой таблицы решений зависит от точности определения и диапазона изменения параметров кода и качества канала связи. Как показывают расчеты, для практической реализации вполне достаточно таблицы решений небольшого объема (от нескольких сотен байт до нескольких кБайт), что позволяет оперативно и с достаточной точностью выбирать параметры кода.
Таблица 1.1
В качестве примера рассмотрим каскадный код БЧХ (31,16) — Рид-Соломона (N,16), используемый в комплексах наземной и воздушной помехозащищенной телекодовой связи Р-098-5. Таблица решений (таблица 1) этого кода задает зависимость оптимальной блоковой длины N внешнего кода каскадного кода БЧХ (31,16) — Рид-Соломона (N,16) от вероятности ошибки на бит в канале связи p=0.01…0.08 и коэффициента группирования a = 0…0.5 при вероятности правильного приема каскадного кода, равной 0.99.
Оптимальная блоковая длина кода при Pпрз = 0.99, к = 16. Таблица 1.по объему таблица решений позволяет выбирать блоковую длину кода Рида-Соломона в достаточно большом диапазоне изменения качества канала связи.
Построение функции или таблицы решений, определяющей зависимость параметров кода от качества канала связи, является одной из основных задач адаптивного кодирования. Априорная информация о соответствующих качеству канала связи параметрах кода учитывается в функции решений. Использование заранее подготовленной функции решений сокращает время адаптации системы к условиям эксплуатации. Это составляет первый контур адаптивного управления параметрами кода.
С учетом сказанного, алгоритм вычисления функции решения на стадии проектирования будет состоять из следующих шагов:
а) Определить модель ошибок канала и диапазон возможных изменений характеристик канала связи;
б) Вычислить вероятности правильного приема, стирания и трансформации внутреннего кода каскадного кода в зависимости от качества канала связи в заданном диапазоне изменения характеристик канала по формулам
Pп = Pп(H) , Pс =Pс(H) , Pт =Pт(H) , H а Hдоп;
в) Вычислить вероятности правильного приема кода с каскадированием в заданном диапазоне изменения параметров внешнего кода и характеристик канала.
г) Выбрать значения параметров кода, обеспечивающие заданную вероятность правильного приема кода, по коэффициентам обнаруживаемых и исправляемых ошибок:
K=1 — ;
Зависимость параметров кода от качества канала связи, полученная на стадии разработки системы, определяется исходя из некоторых априорных сведений о характеристиках канала связи (исходя из модели канала связи), которые могут не вполне соответствовать реальному каналу связи. Это приводит к необходимости дополнительной коррекции параметров кода, которая учитывает отличия модели от условий эксплуатации. Дополнительная коррекция параметров кода по отклонению вероятности доведения сообщения от заданного значения составляет второй контур адаптивного управления.
Количественной оценкой эффективности адаптивного кодирования является коэффициент у повышения скорости передачи информации в системе связи с адаптивным кодированием, по сравнению с системой с постоянными параметрами. Этот коэффициент определяется по формуле
К=V/V1
где V — средняя скорость передачи при использовании адаптивного кодирования, V1 — средняя скорость передачи в системе с постоянными параметрами.
1.3 Анализ возможностей изменения параметров методов передачи данных
Анализ методов передачи данных показывает, что помехоустойчивость зависит от вида (свойств) передаваемых сигналов. При восстановлении переданного сообщения по принятому сигналу в канале с помехами и случайными искажениями можно судить только о вероятности того, что был передан тот или иной сигнал из множества используемых сигналов.
Основная задача приемника канала передачи дискретной информации — на основе анализа принимаемого сигнала с учетом всех известных сведений об источнике и канале связи должен принять решение о том, какое элементарное сообщение было передано. В результате действия помех и искажений в канале связи приемник может принять неправильное решение, отождествить принятый сигнал не с фактически переданным символом, а с каким-то другим. Такое событие называется ошибкой. При передаче данных возможны два рода ошибок:
а) передан символ «0», но под воздействием помех на приемной стороне зарегистрирован символ «1» (ошибка первого рода или «ложная тревога»). Вероятность этой ошибки равна
p(1,0) = p(0)p(1/0),
где p(0) — априорная вероятность передачи символа «0»;
p(1/0) — условная вероятность приема символа «1», если передан символ «0»;
б) передан символ «1», а на приемной стороне зарегистрирован символ «0» (ошибка второго рода или «пропуск цели»). Вероятность такой ошибки равна
p(0,1) = p(1)p(0/1),
где p(1) — априорная вероятность передачи символа «1»;
p(0/1) — условная вероятность приема символа «0», если передан символ «1».
Оба вида ошибок в одинаковой степени ухудшают работу СПД. Поэтому объективным критерием количественной оценки помехоустойчивости различных СПД является величина суммарной вероятности ошибок первого и второго рода, которая определяется в соответствии с выражением
p= p(0)p(1/0) + p(1)p(0/1).
Условие минимума вероятности p называется идеального наблюдателя. Этот критерий используется при принятии решения о том, какой их двух возможных сигналов, соответствующих символам «0» и «1», был передан.
Вероятность p зависит как от соотношения уровней сигнала и помехи, так и от методов передачи сигналов. Предельно достижимую помехоустойчивость СПД, соответствующую наименьшей величине p, принято называть потенциальной.
Большой практический интерес представляет выяснение следующих вопросов:
а) какая минимально возможная величина p может быть достигнута в каждой СПД?
б) как осуществить оптимальную обработку принятых сигналов, чтобы полностью реализовать свойственную данному методу передачи потенциальную помехоустойчивость?
В теории потенциальной помехоустойчивости предполагается, что сигнал на приемной стороне известен полностью, т. е. известны его амплитуда, частота, начальная фаза несущей, длительность импульса, момент начала импульса. Неизвестно только, какое из двух значений модулируемого параметра передано. В этих условиях когерентный приемник наилучшим образом может распознать на фоне помех принимаемый сигнал. В реальных каналах параметры принимаемых сигналов всегда имеют некоторые случайные отклонения, обусловленные нестабильностью характеристик передающего устройства, среды распространения и пр.
В результате нарушается согласование с оптимальным приемником, построенным в соответствии с заранее известными образцами сигналов, и помехоустойчивость резко падает.
Устранение возникших рассогласований приводит к возрастанию сложности и стоимости приемных устройств, что не всегда оправдывается обеспечиваемой помехоустойчивостью. Кроме того, практическая реализация когерентного приемника встречает серьезные технические трудности.
Наибольшее распространение в СПД нашел некогерентный прием, т.е. прием при неизвестной начальной фазе несущей. В этом случае отпадает необходимость в системе выделения когерентного колебания, что значительно упрощает приемник. Снижение помехоустойчивости компенсируется сравнительно небольшим увеличением мощности передатчика. Некогерентный прием реализуется в СПД с АМ и ЧМ.
Если имеется возможность реализации когерентного приема, то применяют метод ОФМ. Его помехоустойчивость значительно выше, чем АМ и ЧМ.
Помехоустойчивость систем АМ можно оценить по формуле
где Н =- относительный порог.
Помехоустойчивость систем ЧМ в условиях действия помех, имеющих нормальное распределение, оценивается по формуле:
где l=- отношение сигнал/помеха на выходе того фильтра, который настроен на частоту принимаемого сигнала.
Помехоустойчивость ОФМФ определяется по формуле
p = 2p(1 — p) = 2p(1 — p).
На основании формул можно построить графики зависимости вероятности ошибки p от отношения Рс/Рп для различных методов передачи сигналов. Такие графики приведены на рисунке 1.2.
Анализ приведенных графиков, а также некоторые структурные особенности реализации отдельных методов передачи двоичных сигналов позволяют сделать следующие выводы.
Самой высокой помехоустойчивостью из рассматриваемых методов обладает метод ОФМП. Он значительно превосходит метод ЧМ и тем более АМ. В свою очередь, метод ЧМ превосходит по этому параметру метод АМ. Однако при одинаковой амплитуде сигнала средняя мощность передатчика при ЧМ (как во всякой системе с активной паузой) должна быть вдвое больше, чем при АМ.
Важнейшим достоинством ЧМ по сравнению с АМ является отсутствие необходимости установления оптимального порога, что существенно повышает помехоустойчивость при замираниях.
Таким образом, в создаваемой модели передачи данных необходимо менять вид передаваемого сигнала в зависимости от состояния канала связи. При наличии большого количества помех применять метод ОФМ, при улучшении канала связи ЧМ или АМ.
Рисунок 1.2 Зависимости вероятности ошибки от отношения
Pc/Pп для различных методов передачи сигналов.
1.4 Информационный подход к оценке качества функционирования систем передачи данных
Особенностью современного этапа развития теории информации и передачи данных является использование системного подхода к оцениванию эффективности передачи информации. При этом подходе учитывают все факторы, влияющие на достижение цели передачи информации и выполнение СПД основных задач. Одной из главных целей, решаемых СПД, является обеспечение максимального количества передаваемой информации при фиксированных затратах и обеспечение требуемого качества передачи при минимальных затратах. И в том и в другом случае необходимо оценить технико-экономическую эффективность системы в учетом ее надежности и других факторов, влияющих на качество передачи информации.
В реальных каналах связи скорость передачи информации R много меньше пропускной способности C. Чем большую скорость передачи допускает данная СПД, тем эффективнее используется канал. Наиболее общей оценкой эффективности системы передачи данных является коэффициент использования канала, равный отношению скорости передачи к пропускной способности:
= .
Для идеальной системы = 1, для реальных систем < 1.
В общем случае выражение для эффективности можно записать в виде произведения двух величин и
= ,
где — эффективность системы кодирования, равная коэффициенту
сжатия = 1 — r (1.21);
— эффективность системы модуляции.
Введя величину избыточности, получим
= 1 — r; = 1 — r,
где r — избыточность сообщения;
r — избыточность сигнала.
После подстановки имеем
= = (1 — r)(1 — r) = 1 — r,
где r = r + r — r r — полная избыточность системы.
Таким образом, эффективность СПД полностью определяется величиной ее избыточности. Отсюда задача повышения эффективности передачи сводится к задаче уменьшения избыточности сообщения и сигнала, точнее к рациональному использованию ее.
1.5 Анализ процесса моделирования
Модель — это физическое или абстрактное описание системы, которая позволяет адекватно отражать требуемые для данного этапа функциональные характеристики.
Модель служит необходимым средством в понимании или совершенствовании реальной системы. Языком философии модель может представляться эффективным средством общения и осмысления действительности.
В общем случае функции некоторых моделей весьма разнообразны. Известны 5 случаев применения моделей:
а) средства осмысления действительности;
б) средства общения;
в) средства обучения (тренажеры);
г) инструменты прогнозирования;
д) средства постановки экспериментов.
В первом случае модель помогает выявить взаимозависимости, необходимые мероприятия, временные соотношения, требуемые ресурсы и т.д.
Во втором случае модели являются средством общения и хорошо продуманная модель не имеет себе равных.
В третьем случае модель — это средство обучения, когда обучаемые лица должны уметь применять правильные решения в критических ситуациях, возникающих в реальных объектах.
Четвертый случай наиболее важен из всех, т.к. применяется для прогнозирования моделируемых объектов.
В пятом случае модель позволяет проводить эксперименты в таких ситуациях, когда на реальном объекте это невозможно.
При постановке задачи проектирования предписано создать модель, как средство, имитирующее процессы, происходящие в адаптивных СПД.
Имитационная модель представляется в виде совокупностей активностей, которые в свою очередь делятся на две части: первая часть имитационной модели связана с выполнением активностей и условий их инициализации. Вторая часть имитационной модели относится к автоматизации процедур моделирования и, как правило, для исследователя объекта она не представляет интереса. Другими словами, вторая часть имитационной модели должна быть выполнена на таком уровне, чтобы при изменении объектов моделирования эта часть модели оставалась универсальной.
В настоящее время под компьютерной моделью понимают:
а) условный образ объекта (системы объектов), описанный компьютерными средствами (таблицами, диаграммами, гипертекстами и др.) и отображающий структуру элементов объекта и взаимосвязи между ними (структурно—функциональные модели);
б) программный комплекс, позволяющий с помощью последовательности вычислений воспроизводить процессы функционирования объекта (системы объектов) при воздействии на него различных, как правило случайных, факторов (имитационные модели). Компьютерное моделирование — метод решения задачи анализа или синтеза сложной системы на основе использования ее компьютерной модели.
Построение компьютерной модели так или иначе связано с построением математической модели, для описания имитационных моделей — аппарат логико-математических моделей.
Первая часть имитационного моделирования является переменной, которая создается самим исследователем и структура этой части во многом определяется способами формализации объекта, целями и задачами моделирования и ограничениями на точность аппроксимации представляемых функциональных действий объекта (ФД i j -> ФД i j `). Вторая часть имитационной модели представляет реализацию средств автоматизации моделирования, которые обеспечивают процедуру выполнения операторов синхронизации М(tij), а также подпрограммы запуска и завершения моделирования, в том числе, подпрограмму сбора статистики модели.
Рисунок 1.3- Структура имитационной модели
Следует заметить, что УПМ (управляющая программа моделирования) и соответствующие подпрограммы принято считать универсальными, однако принцип построения и способ выполнения активности существенно зависит от класса объектов моделирования и это может вносить определенные изменения в УПМ. В сложных активностях состав активностей и характер их взаимодействия может быть различным. В зависимости от ФД i j , а также наличия связей между компонентами K i , цели и задачи моделирования выбирают определенный способ представления компонент Кi , некоторым набором активностей AKi. Первичное представление имитационных моделей принято называть формализацией объекта моделирования.
Выводы
В данном разделе проведён анализ основных параметров адаптивной системы передачи данных, которые могут быть изменены с целью повышения достоверности передаваемой информации при изменении качества канала связи. В разрабатываемой модели необходимо применить изменяющейся:
а) помехоустойчивый код (блочный);
б) метод передачи данных (частотную модуляцию и относительную фазовую модуляцию);
в) мощность передаваемых сигналов.
В структуру модели функционирования должны входить
а) функциональные действия объекта;
б) средства автоматизации моделирования;
в) подпрограммы запуска и завершения моделирования, в том числе, подпрограмму сбора статистики модели.
Эти элементы позволят имитировать работу основных устройств адаптивной СПД, а также прямой и обратный изменяющийся канал связи.
2. Разработка модели адаптивной системы передачи данных
2.1 Разработка структуры модели
2.1.1 Разработка обобщенной структуры модели
В ходе проведённого анализа в первой главе определено, что структура адаптивной системы в общем виде представляет собой систему передачи данных с обратной связью. Основной особенностью систем с обратной связью является то, что эти системы обеспечивают соразмерность избыточности, вводимой передаваемую информацию, с состоянием дискретного канала передачи данных в каждый момент времени, т.е. по мере роста числа ошибок избыточность увеличивается, а при их уменьшении — соответственно уменьшается. Из всего многообразия СПД с ОС наиболее подходящей к адаптивной СПД по своей структуре и функциональным задачам подходит СПД с КОС (рис. 2.1.). В случае приема данных без искажений, приемник выдает их получателю, а в канал ОС посылает квитанцию. Передатчик сравнивает полученную квитанцию с той, которая была сформирована при передаче и, при их совпадении, передает новую комбинацию. Если ошибки обнаружены, то принятая комбинация стирается и квитанция по обратному каналу не передается, в результате чего передатчик повторяет комбинацию.
Рис.2.1 — Структурная схема системы с КОС
Эти системы обладают наибольшей помехоустойчивостью, так как применение КОС позволяет устранить повторные передачи при искажении кодовых комбинации в обратном канале, что может быть в системах с ИОС. Кроме того, этот метод позволяет устранить ошибки за счет искажения в линии связи сигнала переспроса, что может иметь место в системах с РОС. Вероятность же искажения в обратном канале и кодовой комбинации и сигнала переспроса очень мала. Так как в передатчике и приёмнике имеются решающие устройства, то по обратному и прямому каналу можно передавать служебные сигналы для перестройки устройств по параметрам передаваемых кодовых комбинаций.
Обобщенная структурная схема СПД с КОС представлена на рисунке 2.2.
Рис.2.2 — Структурная схема системы с КОС
Передача информации в системе осуществляется следующим образом: при поступлении от источника информации ИИ кодовой комбинации КК происходит ее запись в накопитель передачи НК и кодирование помехоустойчивым кодом в кодирующем устройстве КУ. Одновременно она поступает на вход устройства формирования контрольной последовательности УФКП. Закодированная информация передается по прямому дискретному каналу.
Принятая из прямого канала кодовая комбинация декодируется в декодирующем устройстве ДКУ и записывается в накопитель приема НК Одновременно в устройстве формирования контрольной последовательности УФКП, аналогично УФКП, формируется квитанция.
В зависимости от результатов декодирования решающее устройство РУ принимает решение «Верно» в случае приема без ошибки или с необнаруженной ошибкой или «Неверно» при обнаружении ошибки в кодовой комбинации. В первом случае РУ обеспечивает выдачу комбинации из накопителя через схему И получателю информации ПИ, а УФКП выдает квитанцию, который по обратному дискретному каналу передается в передатчик.
В передатчике квитанция поступает на вход устройства сравнения УСр, а на второй вход устройства сравнения поступает квитанция из УФКП. Если квитанции совпадут, то по командам УСр в накопителе НК стирается переданная комбинация и источник информации ИИ выдает следующую комбинацию.
В случае приема комбинации с ошибкой РУ принимает решение «Неверно», в результате комбинация стирается из НК, а квитанция в обратный канал не передается. При этом передатчик, не получив квитанцию, автоматически повторяет выдачу комбинации из накопителя НК в прямой канал (до трех раз).
Таким образом, процесс передачи кодовой комбинации может быть закончен в течение одного цикла выдачей потребителю информации безошибочной или содержащей ошибки кодовой комбинации, а может продолжаться несколько циклов.
В адаптивных СПД осуществляется необходимый контроль и по обратному каналу передается информация о состоянии канала связи и аппаратуры с целью изменения режима работы (скорости, кода, параметров сигналов и т.п.) передатчика и приемника. Тогда модель передатчика и приёмника кроме устройств перечисленных выше должна состоять из устройств обеспечивающих работу в различных режимах.
2.1.2 Разработка модели передающего устройства адаптивной СПД
Модель передатчика обеспечивающая работу адаптивной СПД должна включать в себя (рисунок 2.3.) следующие устройства:
1) Модель источника информации (ИИ);
2) Модель кодирующего устройства (модель КУ);
3) Модель устройства согласования или буферного накопителя (модель Б);
4) Модель модулятора (модель М);
5) Модель блочной (цикловой) синхронизации (модель БС);
6) Модель решающего устройства (модель РУ).
Для обеспечения работы этих устройств, как цельной системы между её элементами должны быть функциональные связи
Рисунок 2.3 — Структурная схема модели передающего устройства
Модель источник информации обеспечивает выдачу символьной информации в передатчик в параллельном двоичном коде.
Модель кодирующего устройства предназначен для:
а) преобразования символьной информации в двоичную согласно кодировки КОИ-8, каждая буква кодируется восьмизначной последовательностью 0 и 1;
б) кодирование двоичной кодовой комбинации помехоустойчивым циклическим кодом. Для различного состояния канала связи образующий полином выбирается с максимальной степенью к = 7,15 или 23( Р(х) = х7 + х6+ х3+ х2; х15+ х14+ х11+ х10+ х7+ х6+ х3+ х2; х19 + х18 +х15+ х14+ х11+ х10+ х7+ х6+ х3+ х2 ;
При увеличении значности кода n, будет увеличиваться и его избыточность.
в) выдачу информации в буфер.
При увеличении значности кода n, будет увеличиваться и его избыточность.
Модель буфера выполняет функции оперативного запоминающего устройства, ёмкость буферного накопителя зависит от производительности источника сообщений и пропускной способности канала ПД.
Вывод информации с УС может осуществляться тремя способами: параллельным, последовательным и параллельно-последовательным. При параллельном способе все символы сообщения выдаются по отдельным проводам (шинам) одновременно. При последовательном способе все символы сообщения выдаются по одной шине последовательно друг за другом. При параллельно-последовательном способе символы одного слова передаются параллельно, а сами слова — последовательно. Кроме того, в УС сообщение преобразуется к виду, удобному для последующего кодирования или формирования сигнала. Так, в частности, если с ООД сообщение записывается параллельным способом, а для кодирования необходим последовательный ввод символов, то осуществляется преобразование параллельного кода в последовательный. С выхода УС информация поступает в модель модулятора в последовательном коде, т.к практически все современные каналы передачи данных осуществляют последовательную передачу.
Модель блока синхронизации предназначена для цикловой синхронизации передатчика и приемника, т.е. для их синфазной работы.
Фазирование по циклам обеспечивает определение начала кодовых комбинаций или блоков данных с целью их правильного декодирования в устройствах повышения достоверности. Требуемая высокая точность фазирования не может быть достигнута применением на приемной и передающей сторонах автономных генераторов даже очень высокой стабильности. Так, при использовании генераторов с относительной нестабильностью порядка синфазность системы передачи данных с В = 1200 бод нарушится примерно через 2 мин. Поэтому для поддержания синфазности по циклам должны быть предусмотрены специальные фазирующие устройства.
В СПД используются два метода фазирования — стартстопный и синхронный.
При стартстопном методе фазирования передающий и приемный распределители в промежутках между передачей кодовых комбинации не работают («стоят на стопе»). Это положение является исходным и расхождение по фазе между ними равно нулю. С началом работы передающего распределителя посредством специального стартового сигнала (маркера) запускается приемный распределитель. После приема кодовой комбинации приемный распределитель останавливается (устанавливается в исходное состояние) специальным стоповым сигналом. Таким образом, расхождение по фазе происходит в течение только одного цикла. Фазирование по циклам обеспечивается стартовым и стоповым сигналами, а фазирование по импульсам — генераторами управляющих импульсов, запускаемыми стартовыми сигналами.
При синхронном методе фазирования приемный и передающий распределители работают непрерывно, независимо от наличия передаваемых данных. Синхронный метод основывается на том, что в приемнике известны моменты начала и конца принимаемых циклов, так как циклы передачи — строго определенной длины и следуют непрерывно друг за другом. В результате появляется возможность декодирования принимаемых блоков данных.
В модели будет применено устройство с стартстопным методом фазирования.
Модель решающего устройства предназначена для:
а) оценки состояния канала связи путём передачи проверочного сообщения, которое известно приемнику;
б) принимает решение о изменении параметров передатчика (мощности, вида модуляции, величине контрольных разрядов);
в) анализирует сообщения поступающие от передатчика.
Канал связи приемником оценивается путём сравнения эталонного сообщения и принятого (служебного). Приёмник считает количество ошибок в кодовой комбинации путем расчёта минимального кодового расстояния d, которое определяется как наименьшее значение кодовых расстояний между эталонным и служебной комбинаций. В дальнейшем определим количество обнаруженных ошибок по формуле:
ld-1;
По количеству обнаруживаемых ошибок и будет оцениваться состояние канала связи. Информацию об ошибках приемник передает на передатчик, который делает выводы о состоянии канала связи и принимает решение о выборе длины образующего полинома в зависимости от состояния канала связи. Модель модулятора имитирует параметры сигнала (мощность, вид модуляции), задает скорость передачи сообщения.
2.1.3 Разработка модели приёмного устройства адаптивной СПД
Модель приёмника адаптивной СПД должна включать в себя следующие устройства:
а) модель демодулятора (модель ДМ);
б) модель декодирующего устройства (модель ДКУ);
в) модель блочной синхронизации (модель БС);
г) модель решающего устройства (модель РУ);
д) модель получателя информации.
Для обеспечения работы этих устройств, как цельной системы между её элементами должны быть функциональные связи.
Модель декодирующего устройства производит перевод двоичной последовательной кодовой комбинации, поступившей из канала связи, в двоичный код КОИ-8. В модели ДКУ (рисунок 2.4) осуществляется декодирование кодовых комбинаций, обнаружение ошибок (кодовая комбинация поступившая из канала связи делится на образующий полином и выдает результат деления на решающее устройство), таким образом, обеспечивается требуемая достоверность передаваемых данных.
Модель блочной синхронизации выполняет следующие задачи:
а) анализирует сообщения, поступающие с демодулятор, с целью выявления синхронизирующих сигналов (сигнал «старт», сигнал «стоп»);
б) устанавливает декодирующее устройство в исходное положение
Модель решающего устройства обеспечивает:
в) анализирует остаток от деления и принимает решение о правильности принятого сообщении;
г) посылает по обратному каналу на передатчик сигнал о повторной передаче, либо сигнал о том, что сообщение принято без ошибок.
Рисунок 2.4 — Структурная схема модели приёмного устройства
Модель модулятора выполняет следующие задачи:
а) анализирует параметры сигнала (мощность, вид модуляции и скорость передачи сообщения);
б) устанавливает модель декодирующего устройства в исходное положение для приема кодовых комбинаций на определенной скорости;
в) производит коммутацию с другими блоками.
2.2 Разработка алгоритма работы передатчика и приемника
Алгоритм — это описание последовательности действий, необходимых для решения конкретной задачи.
Существует несколько способов описания алгоритмов:
а) словесная запись алгоритма;
б) запись алгоритма в виде блок-схемы;
в) запись алгоритма в виде таблицы.
В настоящее время наибольшее распространение получил способ записи алгоритма в виде блок-схемы, при котором отдельные операции вычислительного процесса изображаются в виде отдельных графических символов.
В зависимости от способа организации управления вычислительным процессом различают следующие типы алгоритмов:
а) линейные алгоритмы;
б) циклические;
в) ветвящиеся;
г) структурированные;
д) неструктурированные.
Процесс разработки алгоритма включает четыре этапа:
1 этап — разделение алгоритма на составные части;
2 этап — установка порядка выполнения составных частей;
3 этап — описание содержания каждой части;
4 этап — проверка реализуемости выбранного метода.
Для реализации всех этапов разработки алгоритма применяют два принципа алгоритмитизации:
а) восходящее (снизу вверх) проектирование;
б) нисходящее (сверху вниз) проектирование.
При разработке алгоритма функционирования ФКТ использован нисходящий принцип проектирования, заключающийся в направленном разбиении исходной задачи на независимые друг от друга части (процедуры), каждая из которых логически завершена и может быть использована самостоятельно. Это, в свою очередь, значительно упрощает понимание алгоритма в целом.
Таким образом, весь алгоритм можно на разбить на следующие структуры:
а) алгоритм основного модуля;
б) алгоритм модели передающего устройства;
в) алгоритм модели приёмного устройства.
При разработке алгоритма использован принцип структурного программирования. Он заключается в разбиении программы на некоторое количество подпрограмм. В результате применения данного принципа значительно упрощается процесс программирования.
Алгоритм является ветвящимся, циклическим, в нем реализованы обратные связи, позволяющие пользователю выбирать наиболее приемлемый путь для продолжения программы.
Перед передачей данных модель решающего устройства выдаёт служебный сигнал на модулятор, который преобразует дискретный сигнал в сигнал с частотной модуляцией и посылает его канал связи служебное сообщение (приложение А). Состав двоичной кодовой комбинации этого сообщения записан в памяти модели решающего устройства приёмника. Модель демодулятора приемника преобразует сообщение в дискретный вид и передает это сообщение на модель решающего устройства приемника. Модель решающего устройства приемника сравнивает полученное сообщение с эталонным и посылает по обратному каналу на передатчик информацию о том, какое количество ошибок возникло в канале связи. Модель решающего устройства передатчика, обрабатывая принятое сообщение, принимает решение о состоянии канала связи. Решающее устройство передаёт модели кодирующего устройства передатчика, какой образующий полином выбрать из трёх применяемых в данной модели СПД.
Информация в ИИ формируется с помощью ручного ввода букв, которые кодируются в десятичную систему исчисления, в дальнейшем в двоичную систему исчисления (приложение Б). Кодирующие устройство передатчика, повышает достоверность передаваемых данных путём помехоустойчивого кодирования циклическим кодом. Выбор образующего полинома зависит от качества канала связи (приложение В). С выхода модели КУ кодовая комбинация поступает на модель устройства цикловой синхронизации передатчика. Модель Б передатчика выдает сигнал, через модель канала связи, на модель БС передатчика о длине сообщения и готовности передающего устройства выдавать данные. Модель БС передатчика через модель модулятор посылает стартовый сигнал на приемник (приложение Г). Модель демодулятора приемника анализирует полученное сообщение и передает его на модель БС приемника. Модель БС приемника устанавливает регистры модели ДКУ приемника в исходное положение.
После передачи стартового сигнала модель БС принимает решение о возможности начинать передачу информационных кодовых комбинаций. Модель БС передатчика побитно выдает в КСвп сообщение, кодированное помехоустойчивым кодом.
Модель ДКУ приемника побитно принимает сообщение и записывает на свои регистры.
После выдачи всего сообщения модель БС приёмника (приложение Д) принимает решение о выдаче модели БС передатчика о том, что сообщение передано. Модель БС передатчика выдает стоповый сигнал.
Стоповый сигнал поступает на модель М приемника. Модель БС приемника выдает на модель ДКУ приемника сигнал о том, что сообщение передано. Получив сигнал о том, что сообщение передано, модель ДКУ приемника производит деление на образующий полином (приложение Е) и переводит информационную часть полученного сообщения в символьный код КОИ-8. Остаток от деления модель ДКУ приемника передает на модель РУ приемника. Модель РУ приемника анализирует остаток от деления (приложение Ж). При выявлении синдрома ошибки, т.е остаток не равен нулю, модель РУ приемника посылает в КСво сообщение об ошибке. Модель декодирующего устройства производит преобразование двоичного сигнала в символьную последовательность КОИ-8 (приложение К)
Модель решающего устройства передатчика (приложение Л), получив сообщение об ошибке, посылает сигнал на модель М передатчика сигнал об изменении параметра сигнала, и сигнал на модель БС передатчика о повторной передаче сообщения. Получив это сообщение, модель М передатчика изменяет один из параметров передаваемого сообщения (мощность, вид модуляции), а модель буферного накопителя повторно выдает сообщение.
При не обнаружении синдрома ошибки модель РУ приемника выдает в КСв сигнал о том, что сообщение принято без ошибок.
Модель РУ передатчика приняв сообщение о том, что кодовая комбинация принята без ошибки, выдает команду на модель Б передатчика. Модель Б передатчика стирает сообщение из своих регистров и передаётся новая информация. Модель РУ передатчика приняв сообщение о том, что кодовая комбинация принята без ошибок в течении определённого времени, выдает команду на модель Б передатчика об изменении параметров передатчика. Модель М и КУ передатчика устанавливает параметры сигнала, например с небольшой мощностью, частотно модулируемый и с наименьшим полиномом, что соответствует исходному состоянию.
2.3 Разработка интерфейса модели
адаптивный помехоустойчивый код передатчик
Интерфейс информационной модели адаптивной системы должен наглядно показывать принцип работы адаптивной системы.
В состав интерфейса модели входят следующие основные блоки:
а) интерфейс передатчика;
б) интерфейс приёмника;
в) интерфейс устройства преобразования сигналов.
Интерфейс передатчика позволяет продемонстрировать основные параметры передаваемого сообщения, такие как вид модуляции предаваемого сигнала, мощность передаваемого сигнала, техническую скорость передачи информации, а также изменение параметров в ходе передачи сообщения.
Интерфейс передатчика позволяет контролировать синхронизацию приемника и передатчика по импульсам, как по прямому так и по обратному каналу. Когда приемник и передатчик синхронизирован две лампы «синхронизация» горят зеленым цветом, при выключении приемника лампы горят красным.
Рисунок 2.5 — Интерфейс передатчика
Интерфейс позволяет вводить в поле «сообщение» сообщение в виде букв, которые необходимо передать. Отображает сообщение в двоичном коде закодированное помехоустойчивым кодом.
Рисунок 2.6 — Интерфейс передатчика
Кнопка «установить соединение» предназначена для синхронизации передатчика по импульсам.
Кнопка «передать» предназначена для осуществления передачи кодовой комбинации.
Интерфейс приёмника позволяет в поле «сообщение» позволяет отображать принимаемое сообщение побитно в момент приема каждого бита информации.
Кнопка «установить соединение» предназначена для синхронизации приёмника по импульсам. Поле «memo» позволяет накапливать все принятые с ошибкой сообщения, а затем выводит сообщение в решающее устройство, какие сообщения приняты без ошибки.
Интерфейс устройства преобразования сигналов позволяет наглядно продемонстрировать состояние канала связи и вид передаваемого сигнала без воздействия и под воздействием помехи.
Рисунок 2.7 — Интерфейс УПС.
Вид осциллограммы частотно модулированного сигнала реальной АПД представлен на рисунке 2.7. На данном рисунке представлен меандр частотно-модулированного сигнала, где логической единице соответствует сигнал частотой f=1300 Гц, а логическому нулю соответствует сигнал частотой f=2100 Гц, причём метод передачи без разрыва фазы.
Рисунок 2.8 — Вид ЧМ сигнала при воздействии помех .
При изменении состояния канала связи можно посмотреть, что происходит с сигналом при воздействии на него помехи воспроизводимой генератором шума.
Выводы
Одним из путей повышения эффективности систем передачи информации является адаптация, которая применяется с различной целью. Одной из задач является поддержание заданной верности передачи данных при условии максимальной скорости передачи.
Созданная структура модели, наилучшим образом с точки зрения выбранного критерия эффективности системы кодирования, изменяет свои характеристики в зависимости от условий передачи. Разработанные алгоритмы, описывающие принцип работы устройств модели, полностью совпадают с алгоритмом работы адаптивной системы передачи данных.
Разработанный интерфейс модели позволяет наглядно продемонстрировать работу модели адаптивной системы при изменении параметров передаваемых сигналов.
3. Особенности программной реализации модели
3.1 Выбор среды программирования
В последнее время резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь информационно-коммуникационных технологий. Если человек имеет дело с компьютером, то рано или поздно у него возникает желание, а иногда и необходимость, программировать.
Среди пользователей персональных компьютеров в настоящее время наиболее популярно семейство операционных систем Windows и Unix подобные системы и, естественно, что тот, кто собирается программировать, стремится писать программы, которые будут работать в этих системах, причем во всех или по крайней мере в самых распространенных модификациях.
Несколько лет назад рядовому программисту оставалось только мечтать о создании собственных программ, работающих в среде Windows, даже при том отсталом по сравнении с нынешними возможностями положении, т. к. единственным средством разработки был Borland C++ for Windows, явно ориентированный на профессиональное использование, обладающих серьезными знаниями и опытом.
Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую «быструю разработку. В основе систем быстрой разработки (RAD-систем, Rapid Application Development — среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. Производительность программиста, при использовании RAD-систем, фантастическая.
Delphi представляет собой систему программирования, как любая подобная система Delphi предназначена для разработки программ и имеет две характерные особенности: создаваемые с ее помощью программы могут работать не только под управлением Windows, а сама она относиться к классу инструментальных средств ускоренной разработки программ.
Первый инструмент RAD создан корпорацией Microsoft и называется Visual Basic. Среда Delphi, созданная тремя годами позже, вместе с такими продуктами как Visual C++, C++ Builder, J Builder, Power Builder также относится к классу инструментов ускоренной разработки программ. Это ускорение достигается за счет двух характерных свойств Delphi: визуального конструирования форм и широкого использования библиотеки визуальных компонентов (Visual Component Library, VCL).
Визуальное конструирование форм избавляет программиста от многих аспектов разработки интерфейса программы, так как Delphi автоматически готовит необходимые программные заготовки и соответствующий файл ресурсов. Программист использует специальное окно, которое называется окном формы, как прототип будущего окна программы и наполняет его компонентами, реализующими нужные интерфейсные свойства (разного рода списки, кнопки, полосы прокрутки и т.п.). После размещения на форме очередного компонента Delphi автоматически вставляет в связанный с формой модуль ссылку на компонент и корректирует специальный файл описания формы с расширением DFM, который после компиляции преобразуется в ресурсный файл Windows.
Библиотека визуальных компонентов представляет программисту огромное разнообразие созданных разработчиками Delphi программных заготовок, которые немедленно или после несложной настройки готовы к работе в рамках вашей программы. Компоненты характеризуются важным свойством: они включают в себя программный код и все необходимые для его работы данные, что избавляет программиста от рутинной работы. Как уже упоминалось, с Delphi поставляется великое множество компонентов, рассчитанных на самые разные аспекты применения — от простеньких компонентов, создающих поясняющие надписи, до сложных текстовых процессоров или инструментов принятия решения. Если по каким-либо причинам в Delphi нет компонента с нужной функциональностью, его можно создать средствами самой среды Delphi и включить затем в VCL.
Использование компонентов не только во много раз сокращает сроки разработки программ, но и существенно снижает вероятность случайных программных ошибок.
Безусловное достоинство Delphi, выгодно отличающее эту систему программирования от других инструментов RAD — мощность и гибкость языка программирования Delphi. Ядром языка Delphi является язык Паскаль, созданный профессором Цюрихского университета Никлаусом Виртом еще в конце 60-х годов специально для обучения студентов программированию. В числе его студентов были Филипп Канн и Андерс Хейлсберг. Первый основал корпорацию Borland, второй стал ее главным программистом. За долгие годы А. Хейлсберг и программисты под его началом превратили Паскаль в мощный современный объектно-ориентированный язык, пригодный для эффективного создания программ любой сложности.
От Visual Basic язык Delphi отличают строгая типизированность, позволяющая компилятору еще на этапе компиляции обнаружить многие ошибки, а также средства работы с указателями. Последнее дает возможность использовать так называемое раннее связывание с библиотеками типов в технологии COM, в то время как Visual Basic (и Java, в котором тоже поддерживаются указатели) вынуждены при обращении к COM использовать более медленное, позднее связывание и интерфейсы диспетчеризации.
Синтаксис С++ прямо-таки провоцирует создание запутанных программ, в которых трудно разобраться даже автору, в то время как простой и ясный синтаксис Delphi позволяет последнему претендовать на роль языка, идеально подходящего для описания алгоритма.
Если по каким-либо причинам возможности Delphi окажутся недостаточными, вы можете программировать на Ассемблере (машинно-зависимом языке программирование), который ограниченно вплетен в Delphi.
Во всех случаях Delphi имеет самый быстрый среди продуктов подобного рода оптимизирующий компилятор, позволяющий создавать быстрые и относительно компактные программы
Отличительной особенностью седьмой версии является поддержка технологии. NET.Borland Delphi 6 Studio может работать в среде операционных систем от Windows 98 до Windows XP. Особых требований, по современным меркам, к ресурсам компьютера пакет не предъявляет: процессор должен быть типа Pentium или Celeron с тактовой частотой не ниже 166 МГц (рекомендуется Pentium II 400 МГц), оперативной памяти — 128 Мбайт (рекомендуется 256 Мбайт), достаточное количество свободного дискового пространства (для полной установки версии Enterprise необходимо приблизительно 475 Мбайт).
Преимущества Delphi по сравнению с аналогичными программными продуктами:
а) быстрота разработки приложения;
б) высокая производительность разработанного приложения.
3.2 Реализация обмена данными между ЭВМ
В процессе сетевого соединения два процесса обмениваются данными. Сокет является выражением абстрактной точки сетевого соединения.
Сокеты Windows (Winsock) — это интерфейс прикладного программирования, разработанный на основе сокетов Беркли. Сокеты Беркли используются на различных ОС, а Winsock — для Windows 2000, Windows ХР.
В состав Winsock входит множество функций из интерфейса Беркли. Кроме того, имеется ряд специфических функций, позволяющих использовать интерфейс Windows.
Спецификация Winsock описывает стандарт, по которому программы Windows обязаны общаться с сетями TCP/IP.
Корпорация Microsoft не имеет имущественных прав на стандарт Winsock.
Цель разработки — создание единого интерфейса прикладного программирования с TCP/IP.
В UNIX интерфейс сокетов был встроен в систему. Интерфейс Winsock не входит в состав Windows, а реализован в виде динамически загруженной библиотеки DLL.
DLL представляет собой модуль исполняемого кода, который умеет загружаться по требованию прикладного процесса, т.е. когда процессу нужна функция, входящая в состав DLL. Когда необходимость в функциях исчезает, Windows выгружает модуль из памяти. Архитектура DLL построена таким образом, что позволяет нескольким прикладным программам одновременно пользоваться одним и тем же модулем.
Согласно [3], API Winsock содержит набор функций. Спецификация Winsock разбивает их на три группы:
а) функции сокетов в стиле Беркли, включенные в Winsock API;
б) функции для работы с базами данных, позволяющие программам получать информацию об именах доменов, протоколах и т.д.
в) функции, распределяющие набор функций интерфейса сокетов Беркли.
Кроме того, все функции можно разделить на две большие группы: блокирующие и неблокирующие.
Блокирующая функция заставляет вызвавшую ее программу ждать окончательно сетевой операции ввода-вывода. Неблокирующая функция не ждет окончания ожидания.
Для осознания картины программирования в Windows целиком, нужно понимать, какое место в ней занимает Windows и какие именно функции им выполняются.
Модуль Winsock.dll находится между стеком протоколов TCP/IP и клиентским приложением. Он управляет интерфейсом к стеку TCP/IP.
Производители продукции на базе Winsock разрабатывают свои собственные версии протоколов SLIP и PPP, стек протоколов TCP/IP. Но все это не является нитью интерфейса Winsock.
Компоненты ServerSocket и ClientSocket реализуют коммуникацию двух компьютеров (клиента и сервера) через протокол TCP/IP. Большинство остальных Internet-компонентов являются модификациями данных компонентов с конкретными портами и вспомогательными методами для обработки конкретных данных.
Из названий этих компонентов ясно, что один из них размещается на сервере, а другой — на клиенте. Для использования этих компонентов необходимо после установки компонента на форму изменить значение свойства Port. По умолчанию это свойство равно нулю, и при этом значении компоненты работают некорректно. Можно определить, например, номер порта 1024. Оба компонента имеют свойство Active, но изменение этого свойства приводит к различной реакции ServerSocket и ClientSocket. Компонент ServerSocket начинает или прекращает проверку порта, указазанного в его свойстве Port на предмет появления на нем запроса от клиента. Вместо свойства Port можно указать свойство Service (и это рекомендуется делать для сервера — например, HTTP, FTP). Компонент ClientSocket старается соединиться (или прекращает соединение) с сервером, адрес которого указан в свойстве Address (например, 192.168.0.1), и через порт, указанный в свойстве Port. Вместо свойства Address в компоненте ClientSocket можно определить свойство Host (например, myserv.ipac.ac.ru). Так же, как и для сервера, вместо свойства Port можно изменять свойство Service.
Для тестирования необходимо сначала запустить сервер и присвоить его свойству Active значение True. После этого можно запускать клиент, указать ему адрес сервера и также выставить свойство Active в True. При установке связи будет вызван ряд событий как на сервере, так и на клиенте. На сервере будет вызвано событие OnClientConnect. В качестве параметра событию будет передана ссылка на переменную типа TCustomWinSocket, которая содержит в себе детальную информацию о клиенте. Например, можно обратиться к свойствам RemoteAddress или RemoteHost для определения адреса, откуда пришел запрос на соединение. Далее можно проанализировать адрес и, например, занести его в список текущих соединений или оборвать соединение, если адрес не содержится в определенном программистом списке разрешенных адресов. Сказанное можно проиллюстрировать кодом:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
S: String;
begin
S := Socket.RemoteAddress;
if (S = ‘192.168.0.1’) or (S = ‘192.168.0.2’) then
ListBox1.Items.Add(S) // Добавить адрес в список
else
Socket.Close; // Оборвать соединение
end;
Соответственно при прекращении клиентом связи с сервером будет вызываться событие OnClientDisconnect, которое для примера, приведенного выше, следует использовать для удаления адреса из списка. В клиентском приложении, если сервер будет найден, будут вызваны три события: 1 OnLookup — перед тем как начать поиск сервера; 2 OnConnecting — немедленно после завершения поиска сервера; 3 OnConnect — сразу же после установления связи с сервером. Если же сервер с указанным адресом не будет найден, то на клиенте будет вызвано событие OnError.
После успешного установления связи с сервером можно начать обмен данными между клиентом и сервером. Для этого следует использовать ключевые свойства этих компонентов с именем Socket типа TServerWinSocket для компонента ServerSocket и типа TClientWinSocket для компонента ClientSocket. Переменная TClientWinSocket содержит ряд методов, название которых начинается со слова Send. Вызов этих методов с соответствующим списком параметров — строка или поток — позволяет передать данные серверу. В свою очередь, переменная Socket, TServerWinSocket содержит список Connections, где находятся переменные типа TCustomWinSocket. В каждой из этих переменных хранится ссылка на соединенный клиент — с сервером одновременно могут работать несколько клиентов. Число соединенных клиентов хранится в свойстве Socket.ActiveConnections. Вызывая методы Connections[I].Send, можно инициировать передачу данных I-му клиенту с сервера. Это, пожалуй, единственный серверный компонент страницы Internet, который может инициировать передачу данных клиенту — во всех остальных случаях клиент либо передает данные серверу, либо обращается к серверу с требованием предоставить данные.
Как получить переданные данные? Для этого необходимо создать обработчик события OnRead для ClientSocket (читает данные, посланные с сервера) и OnClientRead для ServerSocket (читает данные, отправленные клиентом). Списки параметров этих методов для ClientSocket и ServerSocket одинаковы и, если приложение использует оба этих компонента одновременно, то можно создать общий обработчик событий, например:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
S : string;
begin
S := ‘From:’ + Socket.RemoteAddress + ‘ — ‘ + Socket.ReceiveText;
ListBox2.Items.Add(S);
end;
Данный обработчик события будет заносить в список текст сообщения и адрес, откуда оно было послано. Определение адреса важно для компонента ServerSocket: с ним может быть связано несколько клиентов. Следует отметить очень хорошую реализацию получения данных в ServerSocket при работе с несколькими клиентами — каждому клиенту выделяется собственный поток (Thread), и ServerSocket при приеме данных не блокирует порт и может одновременно работать с несколькими клиентами. ReceiveText — это не свойство, а метод. Если происходит обмен двоичными данными (вызов метода SendStream на сервере или клиенте), то следует воспользоваться методом ReceiveBuf(var Buf; Count: Integer), который копирует Count-байт в переменную Buf. Для определения размера полученных данных следует воспользоваться методом ReceiveLength.
Из других полезных обработчиков событий — OnWrite для ClientSocket и OnClientWrite для ServerSocket — вызываются сразу же перед тем, как отправляются данные серверу или клиенту. OnError и OnClientError соответственно для ClientSocket и ServerSocket — при возникновении ошибки. В параметрах этих методов имеется переменная ErrorCode — если ей присвоить значение, равное нулю, то исключение не будет показано пользователю. Другой параметр — ErrorEvent — содержит информацию об ошибке (ошибка чтения, ошибка отправки данных, ошибка при попытке установления связи и т. д.). Компонент ServerSocket имеет также обработчик события OnAccept, которое вызывается сразу же после того, как клиент успешно связался с сервером.
В комплекте поставки Delphi 7.0 имеется демонстрационное приложение Chat, каталог ..\Chat. В этом приложении (оно является одновременно и клиентом и сервером) реализуется передача текстовых сообщений через протокол TCP/IP с использованием компонентов ClientSocket и ServerSocket. Недостаток проекта — ServerSocket может работать только с одним клиентом. Для его устранения при передаче данных необходимо учитывать число присоединенных клиентов посредством чтения свойства Socket.ActiveConnections и использовать массив Socket.Connections[I]. Кроме того, при закрытии этого приложения возникает исключение ESocketError. Исключение связано с тем, что для корректного обрыва связи через эти компоненты необходимо, чтобы некоторое время продолжался цикл выборки сообщений Windows в приложении. Это достигается явным прерыванием связи в обработчике события OnDestroy главной формы приложения:
procedure TForm1.FormDestroy(Sender: TObject);
begin
ClientSocket1.Active := False;
ServerSocket1.Active := False;
Application.ProcessMessages;
end;
3.3 Требования к разрабатываемой программе
Требования к функциональным характеристикам:
а) программа запускается быстро, без ошибок,
б) все кнопки, пункты меню и другие элементы соответствуют возложенным на них функциям,
в) вся информация представлена визуально.
Требования к надёжности:
а) для обеспечения надежного функционирования программы и предотвращения появления ошибок из-за некорректных действий необходимо осуществлять контроль за входными и выходными данными,
б) система должна выполнять поставленные перед ней задачи без ошибок и задержек. Потеря надежности системой связывается с появлением отказов в работе.
Рекомендуемый набор технических средств для работы программы:
а) компьютер на базе процессора Intel (R) Pentium (R) CPU с частотой 300МГц;
б) не менее 20 Мб на жёстком диске;
в) накопитель CD-ROM;
г) стандартный SVGA монитор;
д) клавиатура, мышь.
Тексты программы содержат в себе программный код на языке Delphi, пояснения программного кода в виде специально выделенных комментариев. В программный код включены все основные процедуры и функции работы программы. Просмотреть тексты программы можно в приложении Л.
3.4 Описание программы
Программный продукт должен работать под управлением операционной системы Windows 98/Me/2000/XP/VISTA. С программным продуктом может работать любой пользователь, имеющий навыки работы на персональном компьютере и обладающий базовыми знаниями работы с операционной системой Windows. Пользователю перед работой с программным продуктом рекомендуется прочитать справку.
Алгоритм программы является циклическим, ветвящимся.
Установка программы: программа устанавливается с CDR диска. Для запуска программы и установки необходимо скопировать папку с программой.
Для начала работы, необходимо запустить программные модули Peredatchik.exe и Priemnik.exe, нажать кнопку «включить» и выбрать состояние канала связи. Далее в поле ввода записать комбинацию, которую необходимо передать.
Выводы
В процессе разработки алгоритма функционирования модели был найден оптимальный путь его реализации на языке программирования Delphi 7.0. Использование модульного принципа построения программы предоставляет возможность ее дальнейшего развития
Использование встроенных компонентов Delphi 7.0, ServerSocket и ClientSocket и сетевых возможностей ОС WINDOWS 2000, в частности принципа обмена информацией в локальной вычислительной сети по протоколу TCP/IP, позволяют реализовать модель в локальной сети.
4. Экономическая эффективность
4.1 Расчет экономической эффективности от внедрения
Целью написания данного раздела является определение затрат на разработку и внедрение ПП для учебного заведения «автоматизированная система для автоматизации расчетов заработной платы преподавателей учебного заведения», расчёт экономического эффекта от внедрения данного продукта в эксплуатацию.
Затраты на разработку и внедрение
Затраты на разработку включают в себя все расходы связанные с разработкой данного ПП: приобретение компьютера, установка ОС, установка языка программирования, установка СУБД, заработная плата программистов, амортизация компьютера.
Рассчитаем расходы разработчика на разработку ПП.
К капитальным затратам относятся единовременные затраты, связанные с разработкой и внедрением проектных решений. Расчет этих затрат осуществляется по формуле 4.1:
К = Зпп +Зп + Зоб +Зтм +Змэ (4.1)
где Зпп — предпроектные затраты на создание системы (на специальное обучение проектного персонала, обследование объекта, разработку, согласование и утверждение технического задания), в рублях рассчитывается по формуле (4.2):
(4.2)
где H — коэффициент накладных расходов (в расчетах берется по данным конкретной проектной организации или равным 1.8);
tпп — затраты времени на работу, выполняемую на предпроектной стадии, час (возьмем 24 часа для руководителя проекта и 72 часа для программиста);
Ссч — среднечасовая ставка специалиста в рублях, выполняющего работу, рассчитывается по формуле (4.3):
(4.3)
где Кр — районный коэффициент;
См — месячный оклад (ставка, заработок) специалиста, руб. (месячная ставка руководителя проекта 3000 рублей, а месячная ставка программиста См2 =2500 рублей). Получаем, что:
Ч — численность специалистов, выполняющих работу:
Рассчитаем предпроектные затраты на создание системы:
Проектные затраты на создание системы в рублях рассчитывается по формуле (4.4):
(4.4)
где tn — затраты времени на работы, выполняемые на проектной стадии (на разработку технических проектов, программирование; подготовку, проведение экспериментальных, внедренческих и сдаточных работ и др.), час. ( возьмем для руководителя проекта эту величину, равную 60 час., а для программиста 660 час.);
tпд — время подготовки данных (переноса информации на машинные носители, час. (в нашем случае 0.12 часов);
— среднечасовая ставка оператора подготовки данных, в рублях (в нашем случае равна 16,3 рублей);
tотл — суммарное машинное время для отладки программ или проведения других отладочных работ с помощью ЭВМ (208 часов);
tэкс — суммарное машинное время для проведения экспериментальных работ, час. (160 часов);
tоп — суммарное машинное время для опытного внедрения (16 часов);
Смч — стоимость машинного часа, руб/час (21.48 руб/час).
Затраты, связанные с приобретением оборудования и ПО, в рублях, рассчитываются по формуле (4.5):
Зоб = Зк + Зос + Зя + Зоф(4.5)
где, Зк — затраты на приобретение компьютера, в рублях;
Зос — затраты на приобретение операционной системы в рублях;
Зя — затраты на приобретение языка программирования в рублях;
Зоф — затраты на приобретение MS Office, в рублях.
Таблица 1 — Затраты, связанные с приобретением оборудования и ПО
Статья затрат |
Цена рублей |
Количество, шт. |
Стоимость рублей |
|
Компьютер |
25 000 |
1 |
25 000 |
|
ОС |
3 000 |
1 |
3 000 |
|
Язык Delphi 7 |
25 000 |
1 |
25 000 |
|
MS Office |
300 |
1 |
300 |
|
Итого: |
53300 |
Рассчитаем предпроектные затраты:
Зп = (60*19.6+660*16.3*1+0.12*16.3)*1.8+(208+160+16)*21.48 =
= 29733.04 (рублей)
Зоб — затраты, связанные с приобретением оборудования, руб.;
Зтм — затраты на транспортировку и монтаж оборудования, руб. (0 руб.);
Змэ — материально-энергетические затраты, связанные с созданием системы, руб. (возьмем 800 руб.).
Таким образом, по формуле размер капитальных затрат равен:
(рублей)
Таким образом, стоимость разработки ПП (Ср) можно рассчитать по формуле (4.6) как отношение капитальных затрат к предполагаемому количеству внедрений.
(4.6)
где В — предполагаемое количество внедрений системы.
Предполагаемое количество внедрений равно 20.
Таким образом:
Ср = / 41 = 2238.83 руб.
При внедрении ПП заказчику потребуется оплатить стоимость программы и дополнительные расходы, которые включают приобретение OS, MS Office, СУБД.
Таким образом, стоимость внедрения определяется по формуле (7):
(4.7)
Имеем:
руб.
Оценка экономической эффективности ПП должна осуществляться по аналогии с оценкой инвестиционного проекта. При этом, основная трудность заключается в выявлении экономических выгод для компании от его внедрения. Необходимо не только обнаружить эти экономические выгоды, но получить их количественную оценку и структурировать таким образом, чтобы они подавались интеграции в единый денежный поток.
Необходимо рассчитать планируемый доход от внедрения системы как разницу между суммой потерь до ввода разработанной модели в эксплуатацию и потерь после ввода модели в эксплуатацию. Доход (Д) может быть рассчитан по формуле (4.8):
(4.8)
где Пд — потери до ввода модели в эксплуатацию,
Пп — планируемые потери после ввода модели в эксплуатацию.
Таким образом, получим:
Д = 7100 — 500 = 6600 руб.
4.2 Экономический эффект
Основными показателями экономической эффективности являются экономический эффект, срок окупаемости. Экономический эффект — результат внедрения какого-либо мероприятия, выраженный в стоимостной форме, в виде экономии от его осуществления. Срок окупаемости (величина, обратная коэффициенту эффективности) — показатель эффективности использования капиталовложений — представляет собой период времени, в течение которого произведенные затраты на программное изделие окупаются полученным эффектом.
Годовой экономический эффект определяется как разница между доходом от внедрения системы и расходами на внедрение.
(4.9)
где Св — стоимость внедрения для компании, руб.,
Св в данном случае равно 5000.
Таким образом, получим:
Э = 7100 — 5000 = 2100 руб.
Срок окупаемости рассчитывается по формуле (4.10):
(4.10)
где Св — стоимость внедрения для компании, руб.,
Э — годовой экономический эффект, руб.
Получаем:
Коэффициент эффективности рассчитывается по формуле:
(4.11)
Имеем:
Должно соблюдаться условие:
где Тн = 3 года и Ен = 0.33 — нормативные сроки окупаемости, и коэффициент эффективности для АСУ.
Так как 2.3 ? 3 и 0.47 ? 0.33, то можно сделать вывод о целесообразности внедрения проекта.
Исходя из вышесказанного, применение данной разработки позволит, бесспорно, в самые кратчайшие сроки компенсировать затраты на разработку и эксплуатацию, получить экономический эффект от использования данного комплекса.
Выводы
В данном разделе проведён расчет экономической эффективности от внедрения разработанной адаптивной системы, который показал целесообразность внедрения проекта.
Экономический анализ позволит в кратчайшие сроки компенсировать затраты на разработку и эксплуатацию, получить экономический эффект от использования данного программного продукта.
Заключение
Создание автоматизированной системы — трудоемкая задача, для решения которой необходимо иметь представление о методах анализа, проектирования и реализации программных систем, ориентироваться в существующих подходах и технологиях.
Индустрия производства автоматизированных систем претерпела за два последних десятилетия качественные изменения. Это связано с такими тенденциями компьютерного мира и мировой экономики, как:
1) развитием и появлением новой элементной базы;
2) наступлением эпохи персональных компьютеров;
3) появлением и развитием интегрированных сред разработки;
4) появлением глобальных сетей передачи данных;
5) глобализацией бизнеса;
6) ростом конкуренции;
7) переходом к экономике, ориентированной на потребителя;
8) появлением и развитием электронного бизнеса и др.
АИС прошли путь от однопользовательских систем к системам масштаба рабочей группы, малого предприятия, холдинга, транснациональной корпорации.
Среди современных тенденций в развитии технологий создания АИС следует отметить:
1) быстрые методы прототипирования;
2) ориентацию на варианты использования;
3) переход от разработки к настройке.
Система передачи данных — система, предназначенная для передачи информации как внутри различных систем инфраструктуры организации, так и между ними, а также с внешними системами. В работе представлена классификация систем передачи данных.
В результате выполнения дипломной работы решены следующие задачи:
1) дан теоретический обзор по заданной теме, где описаны все преимущества и недостатки различных методов использования данных средств для реализации поставленной задачи, в дипломной работе;
2) проведен анализ предметной области;
3) проанализированы требования к компьютерной модели;
4) приведено и описано разработанное дерево программных модулей;
5) разработан алгоритм, который переведен на алгоритмический язык программирования и проведена проверка его работоспособности.
При разработке алгоритма компьютерной модели выбран нисходящий способ проектирования, позволяющий разбивать исходную задачу на отдельные подзадачи. Алгоритм является ветвящимся, циклическим.
Алгоритм является модульным, что позволяет постоянно совершенствовать и дополнять программу.
Для программирования алгоритма выбран алгоритмический язык Delphi версии 7.0. Данная версия позволяет в полном объеме реализовать разработанный алгоритм, используя команды, операторы и функции языка.
Текст программы представлен в Приложении М.
Список использованной литературы
1. Андреева Т.А. Программирование на языке Pascal Интернет-университет информационных технологий — ИНТУИТ.ру, 2006
2. Архангельский, А.Я. Программирование в Delphi 7/А. Я. Архангельский — М.: ООО «Бином-Пресс», 2003г.
3. Брябрин В.М., «Программное обеспечение персональных ЭВМ», Москва, ‘Hаука’, 2000 г.
4. Дарахвелидзе, П. Г. Программирование в Delphi 7/ П. Г. Дарахвелизде, Е. П. Марков — СПб.: БХВ-Петербург, 2003 г.
5. Ден Оузьер, Стив Гробман, Стив Батсон. DELPHI. «Освой самостоятельно» Перевод с англ.-М.: Восточная Книжная Компания, 2007 г.-624с.
6. Джон Матчо, Дэвид Р.Фолкнер. «Delphi» — пер. с англ. — М.:Бином, 2002г.
7. Епанешников A.M. Епанешников В.А., «Программирование в среде Delphi 7.0»,М.: Диалог-Мифи, 2000г.-235с.
8. Зимихин Д. А., Квашенников В. В., Кухарев А. Д., Манкевич Д. М., Турилов В. А. Перспективная телекодовая аппаратура с адаптивной коррекцией параметров помехоустойчивого кода. /Труды VI Российской научно — технической конференции, Калуга, изд — во ЦНТИ, 2007, с. 51-54.
9. Касьянова Г.Ю., Колесников С.Н., » Управленческий учёт по формуле три в одном » М.: Издательство-консультационная компания ‘Статус Кво 97’, 1999г.-328с.
10. Квашенников В. В., Кухарев А. Д. «Адаптивное помехоустойчивое кодирование в технике связи», Монография, Изд-во научной литературы Н. Ф. Бочкаревой, Калуга: 2007 — 148с.
11. Квашенников В. В. Система связи с адаптивным помехоустойчивым кодированием. //Телекоммуникации, 2005, №6, с. 43-47
12. Липаев, В.В. Методы обеспечения качества крупномасштабных программных средств / В.В. Липаев — М.: СИНТЕГ, 2003 — 350 с.
13. Оспищева Д. А. «Paradox for Windows: Практическое руководство». Под редакцией Издательство АОЗ «Алевар», 2003г.
14. Орлов, С.А. Технологии разработки программного обеспечения: Учебник / С.А. Орлов — СПб.: Питер, 2002. — 464 с.
15. Патент РФ №2236090 МПК7 H 04 B 17/00 Квашенников В. В., Солдатенко Э. Н. Способ контроля качества канала связи. Приор. 27.01.2003
16. Патент РФ №2285345 МПК7 H 04 B 17/00 Квашенников В. В., Рынденков М. В. Способ контроля качества канала связи. Приор. 28.12.2004
17. Патент РФ на полезную модель №46399 МПК7 H 04 B 17/00 Карпиков А. А., Ква-шенников В. В., Рынденков М. В. Устройство для контроля качества канала связи, Приор. 09.03.2005, опубл. 27.06.2005.
18. «Рекоммендации по общепользовательскому интерфейсу», Microsoft, редакция 2007г.
19. Тейксейра, Стив, Пачеко, Ксавье. Delphi 7.0 «Руководство разработчика».СПб: Издательский дом ‘Вильямс’ 2007 г.-912с.
20. Цикритизис Д., Лоховски Ф., «Модели данных». — М.: Финансы и статистика, 2001г. — 344 с.
21. Шафрин Ю.А., «Основы компьютерной технологии». М., 2002 г.
22. Шеховцов. О. И., Горохов С. Г. Передача информации по нестационарным каналам связи. Учебн. пособие. — Л.: Изд-во Ленингр. ун-та, 1985, — 172 с.Советов Б. Я., Стах В. М. Построение адаптивных систем передачи информации для автоматизированного управления. — Л.: «Энергоиздат» Ленингр. отделение, 1982, — 120 с.
23. Элементы теории передачи информации, под ред. Л. П. Пуртова, — М
24. Юрьев А. Н., Хазан В. Л., Мереминский И.А., Зенков А. Н. Идентификация параметров модели дискретного связи декаметрового диапазона. //Техника средств связи, сер. ТРС, 1991, вып.9, стр. 27 — 32.
Приложение А
Выбор параметра сигнала
Приложение Б
Кодирование
Приложение В
Алгоритм кодирования помехоустойчивым кодом
Приложение Г
Передатчик. Прямой канал
Приложение Д
Общий алгоритм работы приемника
Приложение Е
Деление принятой комбинации на образующий полином
Приложение Ж
Проверка синдрома ошибки
Приложение К
Приемник. Декодирование
Приложение Л
Передатчик. Обратный канал
Приложение М
Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, ScktComp, ComCtrls, Grids;
type
TForm1 = class(TForm)
Image1: TImage;
Label1: TLabel;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Image5: TImage;
Image6: TImage;
Image7: TImage;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
GroupBox3: TGroupBox;
Image8: TImage;
Image9: TImage;
Image10: TImage;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
GroupBox4: TGroupBox;
Image11: TImage;
Image12: TImage;
Image13: TImage;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
BitBtn1: TBitBtn;
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
Image14: TImage;
Button3: TButton;
Edit2: TEdit;
StringGrid1: TStringGrid;
Label14: TLabel;
Edit3: TEdit;
Image15: TImage;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure kodirovanie;
procedure vib_param;
procedure zvet;
procedure perevod;
procedure Image11Click(Sender: TObject);
procedure Image13Click(Sender: TObject);
procedure Image12Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure Button3Click(Sender: TObject);
procedure ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;
Form1: TForm1;
p:integer;//мощность
w:integer; //вид модуляции
coct:integer;//состояние ксв
k:integer;//коректирующие
s,st,stat:string;
m:integer;
implementation
uses Math;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Port:=1024;
ClientSocket1.Address:=’127.0.0.1′;
ClientSocket1.Active:=true;
end;
procedure TForm1.Button2Click(Sender: TObject);
dln,i,cs:integer;
stper:string;
begin
if coct=0 then
begin
ShowMessageFmt(‘выберите состояние канала связи’,[getlasterror]);
exit;
end;
zvet;
perevod;
kodirovanie;
if StringGrid1.Cells[p,w]=’1′ then
begin
dln:=length(s);
Edit2.Text:=IntToStr(dln);
if dln=55 then ClientSocket1.Socket.SendText(IntToStr(55));
if dln=63 then ClientSocket1.Socket.SendText(IntToStr(63));
if dln=71 then ClientSocket1.Socket.SendText(IntToStr(71));
for i:=0 to dln do
begin
stper:=s[i];
ClientSocket1.Socket.SendText(stper);
for cs:=1 to 100000000 do
//Image15.Picture.LoadFromFile(‘красная.bmp’);
end;
ClientSocket1.Socket.SendText(IntToStr(5));
zvet;
else
begin
dln:=length(st);
Edit2.Text:=IntToStr(dln);
if dln=55 then ClientSocket1.Socket.SendText(IntToStr(55));
if dln=63 then ClientSocket1.Socket.SendText(IntToStr(63));
if dln=71 then ClientSocket1.Socket.SendText(IntToStr(71));
for i:=0 to dln do
begin
stper:=st[i];
ClientSocket1.Socket.SendText(stper);
for cs:=1 to 100000000 do
//Image15.Picture.LoadFromFile(‘красная.bmp’);
end;
ClientSocket1.Socket.SendText(IntToStr(5));
zvet;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
p:=1;
w:=1;
StringGrid1.Cells[0,1]:=’ам’;
StringGrid1.Cells[0,2]:=’чм’;
StringGrid1.Cells[0,3]:=’фм’;
StringGrid1.Cells[1,0]:=’-2′;
StringGrid1.Cells[2,0]:=’-13′;
StringGrid1.Cells[3,0]:=’-23′;
StringGrid1.Cells[1,1]:=’0′;
StringGrid1.Cells[1,2]:=’0′;
StringGrid1.Cells[1,3]:=’0′;
StringGrid1.Cells[2,1]:=’0′;
StringGrid1.Cells[2,2]:=’0′;
StringGrid1.Cells[2,3]:=’0′;
StringGrid1.Cells[3,1]:=’0′;
StringGrid1.Cells[3,2]:=’0′;
StringGrid1.Cells[3,3]:=’1′;
Image1.Picture.LoadFromFile(‘красная.bmp’);
Image2.Picture.LoadFromFile(‘черная.bmp’);
Image3.Picture.LoadFromFile(‘черная.bmp’);
Image4.Picture.LoadFromFile(‘черная.bmp’);
Image5.Picture.LoadFromFile(‘черная.bmp’);
Image6.Picture.LoadFromFile(‘черная.bmp’);
Image7.Picture.LoadFromFile(‘черная.bmp’);
Image8.Picture.LoadFromFile(‘черная.bmp’);
Image9.Picture.LoadFromFile(‘черная.bmp’);
Image10.Picture.LoadFromFile(‘черная.bmp’);
Image11.Picture.LoadFromFile(‘черная.bmp’);
Image12.Picture.LoadFromFile(‘черная.bmp’);
Image13.Picture.LoadFromFile(‘черная.bmp’);
Image14.Picture.LoadFromFile(‘красная.bmp’);
end;
procedure TForm1.kodirovanie;
D:ARRAY of array of integer;
dd:array of integer;
d1:array of integer;
d2:array of integer;
i,n,j,z:integer;
begin
st:=»;
s:=»;
n:=0;
m:=48;
//k:=4;
//задаем массива динамический
SetLength(d,2);
SetLength(d[0],m+k);
SetLength(d[1],m+k);
SetLength(dd,k);
SetLength(d1,k);
SetLength(d2,k);
for i:=0 to m-1do
d[0,i]:=strtoint(stat[i+1]);
stat:=»;
if coct=1 then
begin
dd[0]:=1;
dd[1]:=1;
dd[2]:=0;
dd[3]:=0;
dd[4]:=1;
dd[5]:=1;
dd[6]:=0;
dd[7]:=0;
end;
if coct=2 then
begin
dd[0]:=1;
dd[1]:=1;
dd[2]:=0;
dd[3]:=0;
dd[4]:=1;
dd[5]:=1;
dd[6]:=0;
dd[7]:=0;
dd[8]:=1;
dd[9]:=1;
dd[10]:=0;
dd[11]:=0;
dd[12]:=1;
dd[13]:=1;
dd[14]:=0;
dd[15]:=0;
end;
if coct=3then
begin
dd[0]:=1;
dd[1]:=1;
dd[2]:=0;
dd[3]:=0;
dd[4]:=1;
dd[5]:=1;
dd[6]:=0;
dd[7]:=0;
dd[8]:=1;
dd[9]:=1;
dd[10]:=0;
dd[11]:=0;
dd[12]:=1;
dd[13]:=1;
dd[14]:=0;
dd[15]:=0;
dd[16]:=1;
dd[17]:=1;
dd[18]:=0;
dd[19]:=0;
dd[20]:=1;
dd[21]:=1;
dd[22]:=0;
dd[23]:=0;
end;
for i:=0 to k-1 do
begin
d1[i]:=d[0,i];d[1,i]:=1;
n:=n+1;
end;
repeat
if d1[0]=dd[0]then
for i:=0 to k-1 do
begin
if (d1[i]=1)and(dd[i]=1)then d2[i]:=0;
if (d1[i]=0)and(dd[i]=1)then d2[i]:=1;
if (d1[i]=1)and(dd[i]=0)then d2[i]:=1;
if (d1[i]=0)and(dd[i]=0)then d2[i]:=0;
else
for i:=0 to k-1 do
d2[i]:=d1[i];
j:=1;
for i:=0 to k-2 do
begin
d2[j-1]:=d2[j];
j:=j+1;
end;
d2[k-1]:=d[0,n];
d[1,n]:=1;
n:=n+1;
for i:=0 to k-1 do
d1[i]:=d2[i];
until d[1,m+k-1]=1;
s:= »;
n:=0;
for i:=0 to M+k-1 do
d[1,m+k-1]:=0;
for i:=0 to k-1 do
d[0,i+m]:=d1[i];
s:=»;
for i:=0 to m+k-2 do
s:=s+IntToStr(d[0,i]);
Edit1.Text:=s;
if StringGrid1.Cells[p,w]=’0′ then
begin
if d[0,8]=1 then d[0,z]:=0
else begin d[0,8]:=1; end;
if d[0,36]=1 then d[0,z]:=0
else begin d[0,36]:=1; end;
if d[0,2]=1 then d[0,z]:=0
else begin d[0,2]:=1; end;
for i:=0 to m+k-2 do
st:=st+IntToStr(d[0,i]);
for i:=28 to 32 do
d[0,i]:=1;
end;
end;
procedure TForm1.Image11Click(Sender: TObject);
begin
coct:=1;
k:=8;
Image8.Picture.LoadFromFile(‘черная.bmp’);
Image9.Picture.LoadFromFile(‘черная.bmp’);
Image10.Picture.LoadFromFile(‘красная.bmp’);
Image11.Picture.LoadFromFile(‘красная.bmp’);
Image13.Picture.LoadFromFile(‘черная.bmp’);
Image12.Picture.LoadFromFile(‘черная.bmp’);
end;
procedure TForm1.Image13Click(Sender: TObject);
begin
coct:=2;
k:= 16;
Image8.Picture.LoadFromFile(‘черная.bmp’);
Image9.Picture.LoadFromFile(‘красная.bmp’);
Image10.Picture.LoadFromFile(‘черная.bmp’);
Image11.Picture.LoadFromFile(‘черная.bmp’);
Image13.Picture.LoadFromFile(‘красная.bmp’);
Image12.Picture.LoadFromFile(‘черная.bmp’);
end;
procedure TForm1.Image12Click(Sender: TObject);
begin
coct:=3;
k:=24;
Image8.Picture.LoadFromFile(‘красная.bmp’);
Image9.Picture.LoadFromFile(‘черная.bmp’);
Image10.Picture.LoadFromFile(‘черная.bmp’);
Image11.Picture.LoadFromFile(‘черная.bmp’);
Image13.Picture.LoadFromFile(‘черная.bmp’);
Image12.Picture.LoadFromFile(‘красная.bmp’);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Image1.Picture.LoadFromFile(‘зеленая.bmp’);
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Image1.Picture.LoadFromFile(‘красная.bmp’);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Image2.Picture.LoadFromFile(‘красная.bmp’);
Image5.Picture.LoadFromFile(‘красная.bmp’);
ServerSocket1.Port:=300;
ServerSocket1.Active:=true;
end;
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Image14.Picture.LoadFromFile(‘зеленая.bmp’);
end;
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Image14.Picture.LoadFromFile(‘красная.bmp’);
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
rez,stper:string;
dln,cs,i:integer;
begin
rez:=Socket.ReceiveText;
if rez=IntToStr(1) then
begin
vib_param;
zvet;
if StringGrid1.Cells[p,w]=’1′ then
begin
dln:=length(st);
Edit2.Text:=IntToStr(dln);
if dln=55 then ClientSocket1.Socket.SendText(IntToStr(55));
if dln=63 then ClientSocket1.Socket.SendText(IntToStr(63));
if dln=71 then ClientSocket1.Socket.SendText(IntToStr(71));
for i:=0 to dln do
begin
stper:=s[i];
ClientSocket1.Socket.SendText(stper);
for cs:=1 to 100000000 do
//Image15.Picture.LoadFromFile(‘красная.bmp’);
end;
ClientSocket1.Socket.SendText(IntToStr(5));
zvet;
else
begin
dln:=length(st);
Edit2.Text:=IntToStr(dln);
if dln=55 then ClientSocket1.Socket.SendText(IntToStr(55));
if dln=63 then ClientSocket1.Socket.SendText(IntToStr(63));
if dln=71 then ClientSocket1.Socket.SendText(IntToStr(71));
for i:=0 to dln do
begin
stper:=st[i];
ClientSocket1.Socket.SendText(stper);
for cs:=1 to 100000000 do
//Image15.Picture.LoadFromFile(‘красная.bmp’);
end;
ClientSocket1.Socket.SendText(IntToStr(5));
zvet;
end;
else
begin
p:=1;
w:=1;
zvet;
end;
end;
procedure TForm1.vib_param;
begin
if p=3 then begin w:=w+1;p:=1;
else
begin
p:=p+1;
end;
end;
procedure TForm1.zvet;
begin
if p=1 then
begin
Image5.Picture.LoadFromFile(‘красная.bmp’);
Image6.Picture.LoadFromFile(‘черная.bmp’);
Image7.Picture.LoadFromFile(‘черная.bmp’);
end;
if p=2 then
begin
Image5.Picture.LoadFromFile(‘черная.bmp’);
Image6.Picture.LoadFromFile(‘красная.bmp’);
Image7.Picture.LoadFromFile(‘черная.bmp’);
end;
if p=3 then
begin
Image5.Picture.LoadFromFile(‘черная.bmp’);
Image6.Picture.LoadFromFile(‘черная.bmp’);
Image7.Picture.LoadFromFile(‘красная.bmp’);
end;
if w=1 then
begin
Image2.Picture.LoadFromFile(‘красная.bmp’);
Image3.Picture.LoadFromFile(‘черная.bmp’);
Image4.Picture.LoadFromFile(‘черная.bmp’);
end;
if w=2 then
begin
Image2.Picture.LoadFromFile(‘черная.bmp’);
Image3.Picture.LoadFromFile(‘красная.bmp’);
Image4.Picture.LoadFromFile(‘черная.bmp’);
end;
if w=3 then
begin
Image2.Picture.LoadFromFile(‘черная.bmp’);
Image3.Picture.LoadFromFile(‘черная.bmp’);
Image4.Picture.LoadFromFile(‘красная.bmp’);
end;
end;
procedure TForm1.perevod;
stint,nn,i,j,ii,q:integer;
stout,inf:string;
qqq,qq:word;
nas:array[1..8]of integer;
begin
for i:=1 to 8 do
nas[i]:=0;
for i:=1 to 6 do
begin
stout:=Edit3.Text;
stint:=ord(stout[i]);
q:=stint;
j:=1;
repeat
DivMod(q,2,qq,qqq);
q:=qq;
nas[j]:=qqq;
j:=j+1;
until qq<2;
if qq=1 then nas[j]:=1;
for ii:=1 to 8 do
begin
stat:=stat+IntToStr(nas[ii]);
nas[ii]:=0;
end;
end;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls, Buttons, ComCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
BitBtn1: TBitBtn;
Button2: TButton;
ProgressBar1: TProgressBar;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure BitBtn1Click(Sender: TObject);
procedure dekodirovsnie;
procedure sravnenie;
procedure vkl;
procedure srorost;
procedure perevod;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Form1: TForm1;
rez,cskt:integer;
s,sss,stst:string;
ss:integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
cskt:=0;
ProgressBar1.Position:=0;
ServerSocket1.Port:=1024;
ServerSocket1.Active:=true;
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
ii:integer;
begin
begin
s:=»;
s:=Socket.ReceiveText;
if s=’5’then
begin
for ii:=0 to 1000000 do
ProgressBar1.Position:=0;
cskt:=0;
s:=Edit1.Text;
sss:=Edit1.Text;
dekodirovsnie;
sravnenie;
perevod;
end;
if (s[1]=’5′)or(s[1]=’6′)or(s[1]=’7′)then
begin
if s[1]=’5′ then ProgressBar1.Max:=55;
if s[1]=’6′ then ProgressBar1.Max:=63;
if s[1]=’7′ then ProgressBar1.Max:=71;
exit;
end;
if (s=’1′)or(s=’0′)then
begin
Edit1.Text:=Edit1.Text+s;
stst:=stst+s;
cskt:=cskt+1;
ProgressBar1.Position:=cskt;
exit;
end;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ServerSocket1.Active:=false;
ServerSocket1.Close;
Form1.Close;
end;
procedure TForm1.dekodirovsnie;
D:ARRAY of array of integer;
dd:array of integer;
d1:array of integer;
d2:array of integer;
m,k:integer;
i,n,j,st,dln:integer;
begin
m:=48;
dln:=length(s);
if dln=71 then
begin
k:=24;
ss:=100000;
end;
if dln=55 then
begin
k:=8;
ss:=30000;
end;
if dln=63 then
begin
k:=16;
ss:=70000;
end;
//caaaai ianneaa aeiaie?aneee
SetLength(d,2);
SetLength(d[0],m+k);
SetLength(d[1],m+k);
SetLength(dd,k);
SetLength(d1,k);
SetLength(d2,k);
if dln=55 then
begin
dd[0]:=1;
dd[1]:=1;
dd[2]:=0;
dd[3]:=0;
dd[4]:=1;
dd[5]:=1;
dd[6]:=0;
dd[7]:=0;
end;
if dln=63 then
begin
dd[0]:=1;
dd[1]:=1;
dd[2]:=0;
dd[3]:=0;
dd[4]:=1;
dd[5]:=1;
dd[6]:=0;
dd[7]:=0;
dd[8]:=1;
dd[9]:=1;
dd[10]:=0;
dd[11]:=0;
dd[12]:=1;
dd[13]:=1;
dd[14]:=0;
dd[15]:=0;
end;
if dln=71 then
begin
dd[0]:=1;
dd[1]:=1;
dd[2]:=0;
dd[3]:=0;
dd[4]:=1;
dd[5]:=1;
dd[6]:=0;
dd[7]:=0;
dd[8]:=1;
dd[9]:=1;
dd[10]:=0;
dd[11]:=0;
dd[12]:=1;
dd[13]:=1;
dd[14]:=0;
dd[15]:=0;
dd[16]:=1;
dd[17]:=1;
dd[18]:=0;
dd[19]:=0;
dd[20]:=1;
dd[21]:=1;
dd[22]:=0;
dd[23]:=0;
end;
for i:=0 to m+k-2 do
begin
st:=StrToInt(s[i+1]);
d[0,i]:=st;
end;
for i:=0 to k-1 do
begin
d1[i]:=d[0,i];d[1,i]:=1;
n:=n+1;
end;
repeat
if d1[0]=dd[0]then
for i:=0 to k-1 do
begin
if (d1[i]=1)and(dd[i]=1)then d2[i]:=0;
if (d1[i]=0)and(dd[i]=1)then d2[i]:=1;
if (d1[i]=1)and(dd[i]=0)then d2[i]:=1;
if (d1[i]=0)and(dd[i]=0)then d2[i]:=0;
else
for i:=0 to k-1 do
d2[i]:=d1[i];
j:=1;
for i:=0 to k-2 do
begin
d2[j-1]:=d2[j];
j:=j+1;
end;
d2[k-1]:=d[0,n];
d[1,n]:=1;
n:=n+1;
for i:=0 to k-1 do
d1[i]:=d2[i];
until d[1,m+k-1]=1;
s:=»;
for i:=0 to k-1 do
s:=s+IntToStr(d1[i]);
for i:=0 to m+k-1 do
d[1,i]:=0;
end;
procedure TForm1.sravnenie;
kol:integer;
i:integer;
str:string;
zz:integer;
begin
zz:=0;
kol:=length(s);
rez:=0;
for i:=1 to kol do
begin
if s[i]=IntToStr(0)then zz:=zz+1;
end;
if zz<>kol then
begin
rez:=1;
str:=IntToStr(rez);
ClientSocket1.Socket.SendText(str);
Edit1.Clear;
zz:=0;
str:=»;
else
begin
ShowMessage(‘сообщение передано’);
rez:=0;
str:=IntToStr(rez);
ClientSocket1.Socket.SendText(str);
zz:=0;
str:=»;
Memo1.Clear;
end;
end;
procedure TForm1.vkl;
begin
ClientSocket1.Port:=300;
ClientSocket1.Address:=’127.0.0.1′;
ClientSocket1.Active:=true;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
vkl;
end;
procedure TForm1.srorost;
i:integer;
begin
ProgressBar1.Max:=ss;
for i:=0 to ss do
ProgressBar1.Position:=i;
ProgressBar1.Position:=0;
end;
procedure TForm1.perevod;
i,nn,mm,mini,maxi,j:integer;
bit,codogr,bitslov:string;
begin
codogr:=sss;
mini:=1;
maxi:=8;
for j:=0 to 5 do
begin
for i:=mini to maxi do
bit:=bit+codogr[i];
nn:=0;
for i:=1 to 8 do
begin
if bit[i]=IntToStr(1) then
begin
if i=1 then nn:=nn+1;
if i=2 then nn:=nn+2;
if i=3 then nn:=nn+4;
if i=4 then nn:=nn+8;
if i=5 then nn:=nn+16;
if i=6 then nn:=nn+32;
if i=7 then nn:=nn+64;
if i=8 then nn:=nn+128;
end; end;
bitslov:=bitslov+chr(nn);
mini:=mini+8;
maxi:=maxi+8;
bit:=»;
end;
Memo1.Lines.Add(bitslov);
end; end.
Размещено на