Программный комплекс моделирования релейно-контактных схем

Анализ существующих разработок для работы со схемами устройств релейной защиты и автоматики железнодорожного транспорта. Разработка программных модулей. Структура данных программного комплекса. Алгоритмы редактора схем. Отладка и модульное тестирование.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 19.01.2017
Размер файла 2,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

ВВЕДЕНИЕ

Железная дорога в России занимает, наверно, первое место по количеству перевозок, по протяженности электрифицированных путей, а также по наличию путей там, где обычную дорогу проложить либо нереально, либо очень сложно. Тем самым она обеспечивает доступ к труднодоступным местам нашей страны даже там, где другому транспорту не пробраться. Огромное количество грузов ежедневно перемещается по железной дороге из одной части России в другую, нередко через несколько часовых поясов. Компания ОАО «РЖД» должна всегда обеспечивать бесперебойную работу всей инфраструктуры. Для этого существует большое количество обслуживающих цехов. Работники пути обслуживают, как понятно из названия, сами пути, по которым движутся поезда. Вагонное хозяйство занимается тем, что поддерживает в исправном состоянии вагоны, пассажирские и грузовые. Локомотивное хозяйство работает над тем, чтобы подвижной состав двигался, когда необходимо, приводимый в движение локомотивом [1].

При этом нужно учитывать, что большинство главных магистралей электрифицированы, то есть состав двигается благодаря сложной контактной сети, по которой к локомотиву подводится электропитание. Для обслуживания контактной сети работает хозяйство электроснабжения. Правда, электроснабженцы занимаются не только контактной сетью. Само хозяйство делится еще на несколько цехов. Один из них - релейной защиты и автоматики (далее РЗА).

Работники РЗА занимаются тем, что поддерживают в исправном состоянии релейные защиты разных типов, а также автоматическое управление некоторыми устройствами, автоматическое включение резервов большого количества оборудования (так как на железной дороге почти все и всегда имеет вторую линию - резерв) и так далее. Научиться работать с релейными схемами не так-то просто и на обучение уходит длительное время, при этом даже самый опытный релейщик всегда может ошибиться, не говоря уже о новичках.

Релейная защита создана для того, чтобы обеспечить исправную работу контактной сети. Она должна отключить место повреждения от питания, иначе урон может быть большим - если сгорит контактный провод (напряжение на Северной железной дороге 27.5 киловольт), то поезда не будут ходить на поврежденном участке до тех пор, пока не будет восстановлена контактная сеть, а на это может уйти очень долгое время. Перебои же в работе железной дороги недопустимы. Поэтому очень важно, чтобы устройства РЗА всегда работали исправно и надежно. Для этого же нужно хорошо знать схемы релейных защит, как в Приложении. Даже в наш век высоких технологий используются обычные электромеханические реле, так как они надежны в работе, пусть даже и есть для некоторых устройств (например, фидеров контактной сети) цифровые защиты, но даже они интегрируются в релейные схемы для надежности, поэтому и здесь от реле полностью не уйти.

Целью ВКР является разработка программного комплекса, который был бы полезен и удобен для работы со схемами устройств релейной защиты и автоматики железнодорожного транспорта. Работа состоит из восьми разделов. В разделе «Анализ существующих разработок», как понятно из названия, говорится о том, какие на данный момент существуют разработки в сфере схемотехники. Во втором разделе «Разработка технических требований и постановка задач дипломной работы» устанавливаются требования к программе, а также ставятся цели разработки. В разделе «Архитектура программы» показано, что может программа и как взаимодействует с пользователем. В четвертом разделе, который называется «Структура данных программного комплекса», объясняется то, как обрабатываются данные в разработке. В разделе «Разработка алгоритмов и программного комплекса» представлен код программ и то, как он работает. В шестом разделе «Реализация программных модулей» описано общая работа каждого модуля.

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

1. АНАЛИЗ СУЩЕСТВУЮЩИХ РАЗРАБОТОК

алгоритм редактор релейный модульный

Сейчас создано не так много программного обеспечения для разработки и имитации работы электрических схем. Самые известные из них: Electronics Workbench и среда Multisim.

1.1 Electronics Workbench

Первая программа разработана компанией National Instruments Electronics Workbench Group в 1998 году. Хоть и кажется, что она устарела, но основные функции работают нормально и ей можно пользоваться.

Система схемотехнического моделирования Electronics Workbench предназначена для моделирования и анализа аналоговых, цифровых и цифро-аналоговых схем большой степени сложности. Имеющиеся в программе библиотеки включают в себя большой набор широко распространенных электронных компонентов. Есть возможность подключения и создания новых библиотек компонентов. Параметры компонентов можно изменять в широком диапазоне значений. Простые компоненты описываются набором параметров, значения которых можно изменять непосредственно с клавиатуры, активные элементы - моделью, представляющей собой совокупность параметров и описывающей конкретный элемент или его идеальное представление. Модель выбирается из списка библиотек компонентов, параметры модели также могут быть изменены пользователем. Широкий набор приборов позволяет производить измерения различных электрических величин, задавать входные воздействия, строить графики. Все приборы изображаются в виде, максимально приближенном к реальному, поэтому работать с ними просто и удобно. Electronics Workbench может проводить анализ схем на постоянном и переменном токах. При анализе на постоянном токе определяется рабочая точка схемы в установившемся режиме работы. Результаты этого анализа не отражаются на приборах, они используются для дальнейшего анализа схемы. Анализ на переменном токе использует результаты анализа на постоянном токе для получения линеаризованных моделей нелинейных компонентов. Анализ схем может проводиться как во временной, так и в частотной областях. Программа также позволяет производить анализ цифроаналоговых и цифровых схем. Результаты моделирования можно вывести на принтер или импортировать в текстовый или графический редактор для их дальнейшей обработки [2].

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

Все работает хорошо и стабильно, только в этой программе либо невозможно, либо очень сложно создать схемы релейных защит - нужно очень углубляться в особенности программы. Также будет невозможно выводить информацию о сработавших защитах и нереально смоделировать действие какой-либо защиты. Учитывая все эти особенности можно с уверенностью сказать, что Electronics Workbench не подходит для использования в нашей работе.

1.2 Micro-Cap

Профессиональная программа аналогового, цифрового и смешанного моделирования и анализа цепей электронных устройств средней степени сложности. Интуитивно понятный интерфейс, нетребовательность к вычислительным ресурсам персонального компьютера и большой спектр возможностей послужили основой популярности Micro-Cap среди радиолюбителей, студентов и преподавателей микроэлектроники. Алгоритм работы включает в себя создание электрической цепи в графическом редакторе, задание параметров анализа и изучение полученных данных. Программа самостоятельно составляет уравнения цепи и проводит моментальный расчёт. Любое изменение схемы или параметров элементов приводит к автоматическому обновлению результатов. Графический редактор опирается на библиотеки электронных компонентов, которые можно пополнять на основе экспериментальных или справочных данных с помощью встроенного модуля Shape Editor. Все номиналы и параметры элементов могут быть как неизменными, так и зависящими от температуры, времени, частоты, состояния схемы, параметров других компонентов. Анимированные детали (светодиоды, реле, семисегментные индикаторы и некоторые другие элементы) изменяют состояние в соответствии с поступающими на них сигналами. Моделирование включает в себя целый набор различных анализов: переходных процессов, передаточных характеристик по постоянному току, малосигнальных частотных характеристик, чувствительностей по постоянному току, нелинейных искажений, метода Монте-Карло и многих других. Опытные пользователи могут создавать свои макромодели, которые облегчают имитационное моделирование без потерь информации. Допускается одновременно использовать различные стандарты элементов схемы. Полная поддержка SPICE-моделей позволяет применять проекты из других программ (DesignLab, OrCAD, P-CAD).

Из недостатков можно отметить лишь необходимость установки дополнительных элементов, так как объем библиотек Micro-Cap (даже в полной версии) явно недостаточен [3].

Micro-Cap - англоязычный пакет, но желающие могут легко отыскать в сети русификатор программы от известных специалистов по работе с ним - Сергея и Марины Амелиных.

Программа была написана в 1982 году фирмой Spectrum Software, с тех пор она постоянно расширяется и совершенствуется. Фирма, в свою очередь, была основана Энди Томпсоном в феврале 1980 года, изначально позиционируясь на написании программ для Apple. Она расположена в одном из основных городов Силиконовой долины - Саннивейле (штат Калифорния, США).

Стоимость Micro-Cap составляет несколько тысяч долларов, однако на сайте разработчика можно скачать свободно распространяемую Evaluation Version, которая обладает многими возможностями полнофункциональной. Основные отличия - это не более 50 элементов в схеме, урезанная библиотека компонентов, ограничения на построение ряда графиков и медленная скорость работы.

Micro-Cap работоспособен во всех операционных системах семейства Windows. Проблем при работе в Vista и 7 выявлено не было.

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

1.3 LTspice/SwitcherCAD

SPICE-симулятор для проведения компьютерного моделирования работы аналоговых и цифровых электрических цепей.

LTspice (он же SwitcherCAD) представляет собой универсальную среду для проектирования и создания электрических схем с интегрированным симулятором смешанного моделирования. Программа позволяет быстро менять компоненты и параметры электронных схем, испытывать работоспособность новых вариантов, находить оптимальные решения. Возможна загрузка списка соединений, сгенерированного другими инструментами для рисования схем или созданного вручную (расширения *.sp, *.cir, *.net или *.but). От аналогичных программ (Microcap, OrCAD) рассматриваемое ПО отличается малым объемом необходимого дискового пространства и более высокой скоростью моделирования процессов.

LTspice содержит полную библиотеку компонентов компании Linear Technology Corporation (пассивные элементы и интегральные схемы, включая редкие модели импульсных контроллеров и регуляторов). Поскольку программа использует стандартные SPICE-модели электронных деталей, к имеющейся базе можно добавлять библиотеки сторонних производителей, а также создавать свои собственные модели. Редактор имеет иерархическую структуру, рисование электронных цепей средней и большой сложности выполняется с помощью создания подсхем. Глубина иерархии и размер схемы ограничиваются только ресурсами компьютера.

Кроме этого в LTspice можно построить семейство амплитудно-частотных характеристик при пошаговом изменении номинала выбранного элемента. Результаты всех моделирований отображаются в графическом окне, при этом существует возможность их дальнейшего анализа [4].

В отличие от других программ LTspice способен записывать в wav-файл сигнал из любой точки цепи. Частота дискретизации и количество разрядов устанавливаются пользователем, а полученный файл может редактироваться в специализированной программе. Данные из файлов с расширением *.wav, помимо внутренних источников, генерируемых программой, могут являться входными сигналами рабочих схем.

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

Программный комплекс LTspice разработан в компании Linear Technology. Организация была основана в 1981 году и базируется в городе Милпитас (Калифорния, США). Компания проектирует, производит и продает линейные интегральные микросхемы - источники и регуляторы напряжения, компараторы, усилители, линейные регуляторы, зарядные устройства батарей, монолитные фильтры, Ethernet-контроллеры, конвертеры DC-DC и данных. Ее продукция используются в мобильных телефонах, сетевых решениях, ноутбуках и настольных компьютерах, устройствах контроля безопасности, медицинских устройствах, автомобильной электронике, системах спутниковой навигации и управления производственными процессами.

Язык интерфейса LTspice - английский, однако в интернете можно найти самодельный русификатор. Рассматриваемое ПО регулярно обновляется и поддерживает все операционные системы семейства Microsoft Windows.

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

1.4 Среда Multisim

Multisim - это единственный в мире эмулятор схем, который позволяет создавать лучшие продукты за минимальное время. Он включает в себя версию Multicap, что делает его универсальным средством для программного описания и немедленного последующего тестирования схем.

NI Multisim 10.0 позволяет объединить процессы разработки электронных устройств и тестирования на основе технологии виртуальных приборов для учебных и производственных целей Подразделение Electronics Workbench Group компании National Instruments анонсировало выпуск Multisim 10.0 и Ultiboard 10.0, самых последних версий программного обеспечения для интерактивного SPICE-моделирования и анализа электрических цепей, используемых в схемотехнике, проектировании печатных плат и комплексном тестировании. Эта платформа связывает процессы тестирования и проектирования, предоставляя разработчику электронного оборудования гибкие возможности технологии виртуальных приборов. Совместное использование программного обеспечения для моделирования электрических цепей Multisim 10.0 компании National Instruments со средой разработки измерительных систем LabVIEW, позволяет сравнивать теоретические данные с реальными непосредственно в процессе создания схем обычных печатных плат, что снижает количество проектных итераций, число ошибок в прототипах и ускоряет выход продукции на рынок.

Можно использовать Multisim 10.0 для интерактивного создания принципиальных электрических схем и моделирования их режимов работы. «Multisim 10.0 составляет основу платформы для обучения электротехнике компании National Instruments, включающей в себя прототип рабочей станции NI ELVIS и NI LabVIEW. Он дает возможность студентам получить всесторонний практический опыт на всем протяжении полного цикла проектирования электронного оборудования», - заявил Рей Алмгрен, вице-президент компании National Instruments по академическим связям. «При помощи этой платформы студенты могут с легкостью перейти от теории к практике, создавая опытные образцы и углубляя свои знания в основах проектирования схем», - отметил он.

База данных компонентов включает более 1200 SPICE-моделей элементов от ведущих производителей, таких как Analog Devices, Linear Technology и Texas Instruments, а также более 100 новых моделей импульсных источников питания. Помимо этого, в новой версии программного обеспечения появился помощник Convergence Assistant, который автоматически корректирует параметры SPICE, исправляя ошибки моделирования. Добавлена поддержка моделей МОП-транзисторов стандарта BSIM4, а также расширены возможности отображения и анализа данных, включая новый пробник для значений тока и обновленные статические пробники для дифференциальных измерений.

В Multisim предусмотрено множество режимов анализа данных эмуляции, от простых до самых сложных, в том числе и вложенных. Основные виды анализа:

1. DC - анализ цепи на постоянном токе. Анализ цепей на постоянном токе осуществляется для резистивных схем. Это правило следует напрямую из теории электрических цепей; при анализе на постоянном токе конденсаторы заменяют разрывом, катушки индуктивности - коротким замыканием, нелинейные компоненты, такие как диоды и транзисторы, заменяют их сопротивлением постоянному току в рабочей точке. Анализ цепи на постоянном токе выявляет узловые потенциалы исследуемой схемы.

2. АС - анализ цепи на переменном токе. Анализ цепей на переменном токе заключается в построении частотных характеристик.

3. Transient - анализ переходных процессов. Анализ переходных процессов в цепях позволяет определить форму выходного сигнала, то есть построить график сигнала как функции времени.

Кроме встроенных функций анализа есть возможность определить свою функцию с помощью команд SPICE. При подготовке к анализу необходимо настроить его параметры, например, диапазон частот для анализатора переменного тока (AC analysis). Необходимо также выбрать выходные каналы (traces). Плоттер (Grapher) - основной инструмент просмотра результатов эмуляции. Он открывается из меню View/Grapher и автоматически при работе эмуляции. Множество настроек плоттера находятся в окне свойств. Например, можно изменять масштабы, диапазоны, заголовки, стили линий осей [5].

При моделировании схем необходимо соблюдать следующие общие правила:

1. Любая схема должна обязательно содержать хотя бы один символ заземления.

2. Любые два конца проводника либо контакта устройства, встречающихся в точке, всегда считаются соединенными. При соединении трех концов (Т-соединение) необходимо использовать символ соединения (узел). Те же правила применяются при соединении четырех и более контактов.

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

Данная среда полезна для создания и тестирования электронных схем, в отличии от которых, в релейных схемах не используется символ заземления, кроме схем токовых цепей, но это уже исключительный случай и только ради такого случая приобретать столь сложный комплекс программного обеспечения нецелесообразно. Если его (символ заземления) использовать в иных схемах РЗА, то смысл такой схемы изменится, так как даже технически это заземление невозможно куда-либо установить.

Это один из примеров, почему не стоит использовать данную среду в нашей работе. Другой пример состоит в том, что, как и в случае с Electronics Workbench, невозможно собрать такую схему, чтобы она имитировала действие всех защит из-за специфичного оборудования. Как упоминалось выше - есть случаи интеграции цифровых защит (которых, кстати, нет в базе данных Multisim) с релейными. Таков второй недостаток среды разработки и тестирования электронных схем Multisim. Третьим немаловажным недостатком ее является цена. За базовую версию, в которой не поддерживается большое количество функций, придется заплатить почти 2000 долларов, что является очень большой суммой. Pro-версия, со всеми функциями, стоит 5000 долларов. Она стоит своих денег, но не удовлетворяет потребности в моделировании схем релейных защит и автоматики железнодорожного транспорта. Также в Multisim есть функции, которые в принципе не требуются в РЗА (импульсные источники питания, мгновенное измерение параметров цепи, таких, как ток и напряжение и иные) и большое количество электронных элементов, которые также не используются в составлении наших схем (транзисторы, тиристоры и так далее). Учитывая все эти недостатки можно с уверенностью сказать, что среда разработки и тестирования электронных схем Multisim для нашей работы не подходит.

Таким образом, можно с уверенностью сказать, что не существует программного обеспечения, которое соответствовало бы требованиям нашей работы. Ни в одной из перечисленных программ невозможно создать правильную схему релейной защиты и автоматики и невозможно имитировать действие защит. Не менее важным недостатком является цена некоторых программ, из-за чего их приобретение тоже является нецелесообразным на данный момент.

2. РАЗРАБОТКА ТЕХНИЧЕСКИХ ТРЕБОВАНИЙ И ПОСТАНОВКА ЗАДАЧ ДИПЛОМНОГО ПРОЕКТИРОВАНИЯ

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

В настоящее время на рабочих местах на железной дороге используются компьютеры, которые не обладают высокой мощностью, что, как понятно, заставляет задумываться о сложности программы, которая будет моделировать поведение схем релейных защит и автоматики. Оставаясь несложной и нетребовательной к вычислительным ресурсам программа должна соответствовать некоторым требованиям. Например, быстродействие на вычисление всех одновременных операций не должно уходить много времени. Также важна надежность, ведь зависания недопустимы. При этом недопустимы зависания как всей программы, так и отдельных элементов на рабочей области, потому что от зависания какого-либо элемента схемы зависит то, насколько правильно сработает схема РЗА.

Немаловажную роль играет размер программы. В этом отношении все понятно - чем компактнее программа, тем лучше. Требования к оперативной памяти особенно значимы. На всех рабочих компьютерах в сети железной дороги установлены антивирусы Касперского. При этом на этих же компьютерах, по современным меркам, установлено довольно мало RAM-памяти. Антивирус же, при работе, занимает ее почти всю и отключить его невозможно. Поэтому, разрабатываемая программа не должна быть слишком требовательна к оперативной памяти, иначе зависать будет уже компьютер. Все вышеперечисленные технические требования, несомненно, важны, но не стоит забывать и об интерфейсе.

Программа для управления схемами релейной защиты и автоматики в первую очередь разрабатывается для простых работников бригад РЗА. Таким образом, можно точно сказать, что интерфейс не должен быть слишком броским или вычурным, иначе он будет отвлекать от рабочей области, что может приводить к ошибкам в составлении схем. Также, не все работники, которые разбираются в релейных схемах, хорошо владеют компьютером (молодежи не так много, а старики не очень хорошо воспринимают компьютерную технику). Поэтому интерфейс должен быть достаточно простым для быстрого понимания работы всех его элементов. Для этого не главную панель должны быть вынесены только те элементы схем (контакты, кнопки, катушки), которые нужны для составления схемы.

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

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

3. АРХИТЕКТУРА ПРОГРАММЫ

Информационная система (ИС) -- система, предназначенная для хранения, поиска и обработки информациии соответствующие организационные ресурсы (человеческие, технические, финансовые и т. д.), которые обеспечивают и распространяют информацию (ISO/IEC 2382:2015).

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

Достаточно широкое понимание информационной системы подразумевает, что её неотъемлемыми компонентами являются данные, техническое и программное обеспечениеа также персонал и организационные мероприятия.

Более узкое понимание информационной системы ограничивает её состав данными, программами и аппаратным обеспечением. Интеграция этих компонентов позволяет автоматизировать процессы управления информацией и целенаправленной деятельности конечных пользователей, направленной на получение, модификацию и хранение информации. Так, российский стандарт ГОСТ РВ 51987 подразумевает под ИС «автоматизированную систему, результатом функционирования которой является представление выходной информации для последующего использования». ГОСТ Р 53622-2009 использует термин информационно-вычислительная система для обозначения совокупности данных (или баз данных, систем управления базами данных и прикладных программ, функционирующих на вычислительных средствах как единое целое для решения определенных задач.

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

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

Разрабатываются приложения в соответствии с моделью MVC - модель-представление-контроллер, рисунок 3.1. То есть схема использования нескольких шаблонов проектирования, с помощью которых модель приложения, пользовательский интерфей и взаимодействие с пользователем разделены на три отдельных компонента таким образом, чтобы модификация одного из компонентов оказывала минимальное воздействие на остальные. Данная схема проектирования часто используется для построения архитектурного каркаса, когда переходят от теории к реализации в конкретной предметной области.

Концепция MVC позволяет разделить данные (модель), представление и обработку действий (производимую контроллером) пользователя на три отдельных компонента:

1. Модель. Предоставляет знания: данные и методы работы с этими данными; реагирует на запросы, изменяя своё состояние; не содержит информации, как эти знания можно визуализировать.

2. Представление, вид -- отвечает за отображение информации (визуализацию). Часто в качестве представления выступает форма (окно) с графическими элементами.

3. Контроллер -- обеспечивает связь между пользователем и системой: контролирует ввод данных пользователем и использует модель и представление для реализации необходимой реакции.

4. Важно отметить, что как представление, так и контроллер зависят от модели; однако модель (активная) не зависит ни от представления, ни от контроллера. Тем самым достигается назначение такого разделения: оно позволяет строить модель независимо от визуального представления, а также создавать несколько различных представлений для одной модели.

Для реализации схемы «Model-View-Controller» используется достаточно большое число шаблонов редактирования (в зависимости от сложности архитектурного решения), основные из которых -- «наблюдатель», «стратегия», «компоновщик.

Наиболее типичная реализация -- в которой вид отделён от модели путём установления между ними протокола взаимодействия, использующего «аппарат событий» (обозначение «событиями» определённых ситуаций, возникающих в ходе выполнения программы, -- и рассылка уведомлений о них всем тем, кто подписался на получение): при каждом особом изменении внутренних данных в модели (обозначенном как «событие»), она оповещает о нём те зависящие от неё представления, которые подписаны на получение такого оповещения -- и представление обновляется. Так используется шаблон «наблюдатель».

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

Для возможности однотипного обращения с подобъектами сложно-составного иерархического вида -- может использоваться шаблон «компоновщик». Кроме того, могут использоваться и другие шаблоны проектирования -- например, «фабричный метод», который позволит задать по умолчанию тип контроллера для соответствующего вида. Схема концепции показана на рисунке 3.1.

Рисунок 3.1 - MVC-модель в общем виде

Пользователь видит представление (вид) модели, то есть схемы на экране монитора. Он может, используя мышь, перестраивать модель в редакторе, создавать новые схемы и так далее. В имитаторе работы схемы пользователь легко моделирует различные случаи работы схемы и проверяет правильность ее работы. Через контроллер можно внести изменения в схему и вывести ее на печать. Так же код интерфейса не связан напрямую с кодом логики обработки срабатывания элементов схемы, поэтому в любое время можно изменять или добавлять новые элементы интерфейса [7].

В случае моего программного комплекса, как показано на рисунке 3.2, пользователь только получает данные из реальной схемы никак ее не изменяя, то есть не изменяется источник. Далее через интерфейс редактора он создает виртуальную схему по образцу, которым является реальная. В данный момент времени виртуальная схема хранится в оперативной памяти компьютера. Если необходимо, то пользователь выводит эти данные в файл-сохранение. В редакторе же можно сохранение открыть. То есть здесь взаимодействие двухстороннее. Взаимодействие файла-сохранения и программы-имитатора одностороннее.

Рисунок 3.2 - Примерная модель программного комплекса

Сделано это для того, что эта программа необходима только для демонстрации работы схемы, без ее изменения, поэтому функция перезаписи сохранения здесь не требуется. Также взаимодействие пользователя и интерфейсов этих двух программ двустороннее - пользователь что-нибудь делает в программе, программа реагирует и выдает пользователю результаты или сообщения.

4. СТРУКТУРА ДАННЫХ ПРОГРАММНОГО КОМПЛЕКСА

Язык Lua, который используется для написания данной программы, имеет относительно долгую историю. Lua (от португальского “луна”) -- облегченный скриптовый язык c расширяемой семантикой.

Lua был создан и поддерживается представителями Pontifical Catholic University Рио-де-Жанейро. У него нет официального стандарта, и стандартом считается описание в руководстве пользователя.

В настоящее время Lua является самым популярным скриптовым языком в индустрии игр и используется в ряде приложений в других предметных областях.

Lua является сравнительно новым языком и позаимствовал черты и идеи из ряда более старых языков:

- синтаксис структур управления логикой программы -- из Modul;

- семантику более поздних версий -- из Scheme;

- концепцию локальных переменных -- из C++;

- концепцию наличия единственной встроенной структуры данных, используемой несколькими способами -- из Lisp;

- использование ассоциативных массивов -- из SNOBOL;

- множественные присвоения и возвраты из функций -- из CLU etc.

Основополагающим принципом Lua является расширяемость семантики, т.е. предоставление мета-механизмов для реализации переменного набора инструментов вместо предоставления фиксированного набора инструментов. Это позволяет языку быть небольшим и простым, в то же время сохраняя мощность. Таким образом, Lua можно считать мультипарадигменным языком, поскольку он позволяет вести разработку в различных стилях. Lua поддерживает логические, числовые (по умолчанию -- числа с плавающей точкой двойной точности) и строковые атомарные типы данных. Единственным “родным” сложным типом данных является таблица -- гетерогенный ассоциативный массив, позволяющий использовать разные типы данных для разных пар ключей и значений. Функции являются объектами первого класса, то есть ими можно манипулировать точно так же, как переменными, передавать и получать как аргументы и так далее [8].

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

Например, пустая таблица a={}. До того, как в нее что-либо не будет добавлено, это будет просто пустая таблица, то есть будет зарезервирована переменная с именем a. Если в нее добавить какие-нибудь значения, командой table.insert(a, [pos], data), то, соответственно, в таблице будут храниться уже эти значения на своих местах. В этой функции (table.insert()) a имя таблицы, в которую будет добавлено значение. Необязательный параметр [pos] - позиция в таблице, на которую будет добавлено значение. По умолчанию это значение начинается с первого и каждая последующая позиция увеличивается на единицу.

Допустим, в этой таблице хранятся числа: 1, 3, 5, 7, тогда она будет выглядеть следующим образом - a={1, 3, 5, 7}. Уже сейчас сформировались пары индекс-значение, как в таблице 4.1.

Таблица 4.1 - Графическое представление таблицы a={}

Индекс

Значение

1

1

2

3

3

5

4

7

Только в данном случае индекс не отображается в самой таблице.

Можно внести сразу переменные со значениями, даже если значение будет nil, то есть пустое. Тогда, a1={x=1, y=2, z=3}, пары индекс-значение теперь будут такими, как в таблице 4.2.

Таблица 4.2 - Графическое представление таблицы a1={}

Индекс (поле)

Значение

x

1

y

2

z

3

Можно хранить таблицы в таблице вместе с другими типами данных: a2={{2, 4, 6, 8}, {1, 3, 5, 7}, number=12, name=”name”, 5}.

В данном случае пары индекс-значение будут, как в таблице 4.3.

Таблица 4.3 - Графическое представление таблицы a2={}

Индекс (поле)

Значение

1

{2, 4, 6, 8}

2

{1, 3, 5, 7}

number

12

name

“name”

3

5

При этом таблицы по первому и второму индексам также имеют свои пары индекс-значение, как в таблицах 4.4 и 4.5. Для данного случая есть свое обозначение в коде: первая таблица, находящаяся в таблице a2, называется по первому индексу и носит название a2[1]={}, вторая, соответственно - a2[2]={}.

Таблица 4.4 - Графическое представление таблицы a2[1]={}

Индекс

Значение

1

2

2

4

3

6

4

8

Таблица 4.5 - Графическое представление таблицы a2[2]={}

Индекс

Значение

1

1

2

3

3

5

4

7

Все данные в таких таблицах доступны в любом месте кода, где происходит обращение к ним. Можно получить длину таблицы командой #a (a - имя таблицы) и использовать в цикле for i=1, #a do … end, только нужно учитывать, что длинной в данном случае будет являться номер индекса, поэтому длину таблицы, например b={val=1, val1=3, val2=”string”, val3=function()} получить не удастся, так как при таких обозначениях индексом будет являться имя переменной. То есть длину таблицы можно получить лишь в том случае, если есть значения без указанного индекса, например a={1, 3, 5, 7} - длина таблицы будет равна четырем.

Cуществует возможность получения значения прямо по индексу таблицы. То есть, если использовать такой способ, то не нужно использовать циклы или подобные конструкции, а можно просто использовать команду вывода (print()) по нужному индексу. Например, в таблице a2 по индексу number хранится число 12, чтобы вывести это число на экран, можно использовать функцию print() следующим образом: print(a2.number) - на экран выведется число 12. Чтобы вывести значение по неименованному индексу, нужно использовать конструкцию: print(a2[3]) - выведется 5. Могут быть последовательности индексов, например, чтобы получить значение из вложенной таблицы: print(a2[1][4]) - на экран выведется 8.

Все эти способы удобны для манипулирования данными в программе еще и потому, что можно изменять значения при вычислениях, при этом нужно просто переназначить нужное значение, обращаясь к нему одним из перечисленных выше способов. a2[1][4]=88 - тогда таблица a2 теперь будет выглядеть так: a2={{2, 4, 6, 88}, {1, 3, 5, 7}, number=12, name=”name”, 5}.

Данные способы удобны до того момента, когда нужно работать с многомерными таблицами, то есть когда в одну таблицу вложено еще несколько таблиц с именованными индексами (или полями). В моей программе как раз используются именно такие таблицы. Например, таблица contacts={} - изначально она пустая, но когда происходит чтение из файла, то в нее заносится еще несколько таблиц. В итоге получается примерно так: contacts={{x=20, y=20, h=15, state=”open”, id=1, name=”РТО”, active=false, line=1}, {x=30, y=30, h=15, h1=17, state=”close”, id=2, name=”ПМВ1”, active=true, line=2}, {x=40, y=40, h=15, state=”open”, id=2, name=”ПМВ2”, active=false, line=2}}. x, y - координаты контакта, h - значение, необходимое для отрисовки контакта, h1 - дополнительное значение для отрисовки нормально закрытого контакта, id - значение, необходимое для ассоциации контакта с реле, на котором он находится, name - название контакта, state - состояние контакта (нормально открытый или закрытый), active - имитация проводимости контакта, line - параметр, необходимый для просчета срабатывания выбранной цепи.

Перечисленными способами работать с такой многомерной таблицей очень неудобно. Поэтому существует еще один способ - работа с парами значений. Описывается следующим образом:

for k, v in pairs(contacts) do … end. Здесь k, v - переменные, в которые циклически записываются пары индекс-значение.

Следующий код выведет значения первой таблицы в таблице contacts:

for k, v in pairs(contacts[1]) do print(k, v) end

На экране отобразится следующее:

x 20

y 20

h 15

state “open”

id 1

name “РТО”

active false

line 1.

То есть все, что есть в таблице, только без знаков «равно». Можно вывести отдельно значения k или v, то есть просто в теле цикла написать print(k) или print(v).

При таком способе также можно назначать и переназначать значения полей (индексов) таблицы и сравнивать поля одной таблицы с полями другой. В моей программе есть еще несколько подобных таблиц, например relays={} - таблица со всеми реле схемы. После чтения из файла она становится примерно такой: relays={{x=110, y=110, idrelay=2, active=false, name=”ПМВ”, line=1}, {x=120, y=120, idrelay=3, active=false, name=”ПМО”, line=2}, {x=130, y=130, idrelay=4, active=false, name=”РПЗ”, line=3}}. x, y - координаты реле, idrelay - значение, необходимое для ассоциации реле с контактами, active - подано ли на реле напряжение или нет, name - название реле, line - значение, для выбора цепи, в которой находится реле.

Для того, чтобы сравнить, например, id и idrelay в этих двух таблицах (contacts и relays), необходимо использовать такой код:

for k,v in pairs(contacts) do

for r,f in pairs(relays) do

if v.id == f.idrelay then … end

end

end

Переменные k, v и r, f могут иметь любые имена, важно лишь, чтобы в этих циклах они были разными, иначе они переназначатся и возникнет путаница, в итоге схема не будет работать.

Таблица в языке Lua самый удобный способ для манипуляции большими количествами переменных, которые должны иметь одинаковые поля (индексы), поэтому в своей программе именно их я и использую, язык выбран по причине наличия такого мощного инструмента для работы с данными.

5. РАЗРАБОТКА АЛГОРИТМОВ И ПРОГРАММНОГО КОМПЛЕКСА

Так как программа имеет графический интерфейс, то в этой главе будут продемонстрированы код программы и связанные с ним функции программы.

Код интерфейса строится на использовании библиотеки Wx.lua, которая является портом wxWidgets. Все классы и методы даны на сайте, посвященном этим виджетам [10].

5.1 Программа-имитатор

В первую очередь объявляем некоторые переменные и создаем фрейм.

Рисунок 5.1 - Создание фрейма

Фрейм, в данном случае, как на рисунке 5.1, пустое окно без кнопок и остальных элементов. Так как сейчас демонстрируется программа-имитатор работы схем, то лишних кнопок здесь не установлено.

Необходима для отображения схемы и изменений в ней при работе функция painter(event). Рисуются главные питающие шины и отображается строка срабатывания защиты. Код показан на рисунке 5.2, окно программы - рисунок 5.3.

Рисунок 5.2 - Код изначального окна программы

Рисунок 5.3 - Изначальное состояние окна программы

Так как таблицы контактов, реле и проводов не заполнены, то отображается только такое окно. Для этого в коде осуществляются проверки, как на рисунке 5.4.

Рисунок 5.4 - Проверки таблиц контактов и реле

Данная функция, onDown(event), необходима для обработки события нажатия правой кнопки мыши на одном из элементов. Код показан на рисунке 5.5, действие - рисунок 5.7.

Рисунок 5.5 - Код функции onDown(event)

В программе-имитаторе это выглядит так, как на рисунке 5.6.

Рисунок 5.6 - Изначальное состояние схемы

При нажатии на контакт «РТО» подаем на реле «РПЗ» напряжение. Контакт «РПЗ2» этого реле замыкается. Выводится сообщение о сработавшей защите и такое состояние поддерживается до тех пор, пока первый контакт не вернется в изначальное положение, то есть до тех пор, пока не будет отпущена правая кнопка мыши. За перерисовку схемы отвечает функция repaint().

Рисунок 5.7 - Сработавшая схема

Она необходима для перерисовки схемы. Вызывается из функции onDown (event). В ней просчитываются все изменения в таблицах контактов и реле, как показано на рисунке 5.8.

Функция onUp(event) возвращает схему в исходное состояние. Аналогична функциям onDown(event) и repaint() вместе, то есть перерисовка схемы происходит внутри функции onUp(event) без вызова дополнительных функций, как на рисунке 5.9. Также, нужно пояснить, что слово event в функции обозначает событие, например нажатие кнопки мыши, нажатие клавиши, потеря фокуса указателя, фокус, при наведении указателя мыши и так далее. В программном коде всегда ставится ссылка на функцию, соответствующую необходимому событию. Это делает отдельно, что позволяет удобно и без путаницы в коде подключать события к функциям, а затем вызывать эти функции по какому-либо из указанных в программе событий. Выше говорилось, что для сохранения таблиц используется их сериализация. Для десериализации необходима функция, как показано на рисунке 5.10. Для того, чтобы занести данные в таблицы контактов, реле, проводов и линий используется функция setValues(newTable). Она необходима потому, что в файле-сохранении в одной таблице хранится четыре. Поэтому нужно из одной сохраненной сделать четыре рабочие и код функции показан на рисунке 5.11.

Рисунок 5.8 - Функция repaint()

Рисунок 5.9 - Функция onUp(event)

На фрейм устанавливается панель меню и в нее вносятся файл-меню и меню помощи, как показано на рисунке 5.12.

Рисунок 5.10 - Функция десериализации таблиц

Рисунок 5.11 - Функция setValues(newTable)

5.2 Редактор схем

Программа для редактирования схем строится таким же образом. То есть изначально точно таким же способом, что и в программе-имитаторе работы схем создается фрейм, определяются некоторые необходимые переменные, а также функция painter(event) содержит точно такой же код, как и в первом случае, так как принципы рисования схемы одинаковы в обоих случаях. Таблицы те же самые, чтобы потом можно было легко их ассоциировать в программе-имитаторе. Редактор схем может и сохранять схемы, для последующего их открытия в программе-имитаторе, и открывать сохраненные схемы для их редактирования.

Рисунок 5.12 - Установка элементов интерфейса на фрейм

Так как на панели инструментов находятся незарезервированные инструменты, то для них нужны собственные id. Для этих целей используется соответствующая функция, соответствующие переменные для этих id и конструктор панели инструментов. Хотя в конструкторе нестандартны только названия id. Эта функция позволяет назначать новые инструменты не сбивая порядок между уже существующими и установленными на панель. Код функции и инструментов, а так же интерфейс показаны на рисунке 5.13 и рисунке 5.14.

При выборе инструмента в окне программы высвечивается название выбранного инструмента и по нажатию левой кнопки мыши из функции onLeft(event) вызывается функция данного инструмента, как показано на рисунке 5.15. Инструмент должен работать тогда, когда он выбран на панели инструментов, для того и делаются все проверки.

Рисунок 5.13 - Код функции NewID()

Рисунок 5.14 - Интерфейс с новыми инструментами

Рисунок 5.15 - Выбор необходимого инструмента

Так как инструментов предполагается большое количество и интерфейс будет перерабатываться, то сейчас в один блок сгруппированы только пять инструментов в коде. В интерфейсе сгруппированы в один блок инструменты выбора элемента. Для редактирования отдельного элемента сгруппированы еще два инструмента, а инструмент стирания схемы выделен отдельно, чтобы случайно его не нажать. Отображается это так, как на рисунке 5.16

Рисунок 5.16 - Демонстрация выбора инструмента

При выбранном инструменте «Провод» можно рисовать провода между шинами и контактами и реле, между контактами и между контактами и реле. Показано на рисунке 5.17. Необходимо, чтобы на схеме был хотя бы один контакт и одно реле. Чтобы избежать лишних ошибок при построении схемы сделана эта проверка.

Провода рисуются функциями rightDown(event) и rightUp(event), то есть происходит обработка события нажатия правой кнопки мыши, как показано на рисунке 5.18.

Рисунок 5.18 - Функции rightDown(event) и rightUp(event)

В программе отображение проводов при размещенных на схеме контакте и реле выглядит, как на рисунке 5.19. Геометрия провода просчитывается автоматически.

Рисунок 5.19 - Отображение проводов на схеме

Чтобы редактировать названия элементов используется инструмент «Редактировать». Он работает по двойному клику левой кнопки мыши на элементе. В программе открывается диалоговое окно, в котором вносятся значения этих элементов. Код показан на рисунке 5.20.

Рисунок 5.20 - Код инструмента редактирования элементов

В программе это отображается так, как показано на рисунке 5.21.

Рисунок 5.21 - Диалоговое окно инструмента редактирования элементов

При нажатии на кнопку «Подтвердить» происходит действие, как на рисунке 5.22. То есть изменяется название элемента, контакта, как в данном случае. Также в таблицу элементу вносится изменение переменной line, то есть теперь этот элемент находится в определенной цепи схемы.

Рисунок 5.22 - Результат редактирования элемента

Функция setValues(nameVal, lineVal) необходима для установления значения элемента. Вызывается из функции diaologOfSettings(count, name, line). Код ее показан на рисунке 5.23.

Рисунок 5.23 - Функция установки значений элементов

6. РЕАЛИЗАЦИЯ ПРОГРАММНЫХ МОДУЛЕЙ

Преимущество языка Lua является возможность использования пользовательских функций. То есть выделения части кода конструкцией function name() … end и вызовом этой функций из любой другой. Такой способ позволяет быстро и удобно редактировать код, находить ошибки и исправлять их, изменять программные процессы и так далее. Переменные в этом языке можно объявлять где угодно, то есть либо заранее, до начала основного кода, либо в теле функций. Правда нужно учитывать, что, если переменная объявлена в теле функции и она является локальной (перед ней написано слово local), то она будет доступна только в этой функции. Глобальные же переменные (без слова local) доступны из любой части кода.

Моя разработка состоит из двух программ: имитатора работы схемы и редактора схем. Общее у этих двух программ - таблицы с одинаковыми полями. Такие, как contacts (хранит данные о контактах), relays (содержит данные о катушках реле), wires (хранит данные о координатах проводов), lines (эта таблица содержит данные о «линиях» для нахождения цепи срабатывания контактов и реле).


Подобные документы

  • Анализ методов и средств моделирования мультиагентных схем. Тестирование лабораторных работ "Climatechange", "ElFarol" и "Pagerank". Экспериментальное тестирование и отладка программного комплекса. Оценка качества разработанного программного продукта.

    дипломная работа [4,5 M], добавлен 12.08.2017

  • Функциональная структура приложения. Спецификация и структурная диаграмма программного комплекса. Блок-схемы алгоритмов ряда модулей. Данные для тестирования программных модулей и программного комплекса в целом, инструкция пользователя по работе с ним.

    курсовая работа [58,5 K], добавлен 25.02.2012

  • Этапы тестирования при испытаниях надежности программных средств. Комплексирование модулей и отладка автономных групп программ в статике без взаимодействия с другими компонентами. Испытания главного конструктора. Жизненный цикл программного средства.

    презентация [339,6 K], добавлен 22.03.2014

  • Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Отладка программных модулей с использованием специализированных программных средств. Тестирование программного обеспечения. Оптимизация программного кода.

    курсовая работа [974,0 K], добавлен 21.12.2016

  • Актуальность создания фирменного web-сайта. Разработка, внедрение web-сайта под названием "Удачная постройка". Анализ существующих программных решений, выбор инструментальных средств разработки. Архитектура сайта, структура данных. Тестирование и отладка.

    дипломная работа [4,7 M], добавлен 19.01.2017

  • Проектирование и отладка Windows-приложений для работы с внешними источниками данных. Функциональная блок-схема взаимодействия программных модулей. Описание связей между таблицами. Тестирование программного средства. Требования к техническому обеспечению.

    курсовая работа [2,7 M], добавлен 17.05.2011

  • Характеристика алгоритмов и программных реализаций поведения агентов в двумерной среде. Исследование разработки структур данных и знаний. Особенность создания интерфейса и карты лабиринта. Экспериментальное тестирование и отладка модулей программы.

    дипломная работа [2,4 M], добавлен 12.08.2017

  • Оснащенность предприятия системным программным обеспечением, используемым для организации производственного процесса. Проектирование, внедрение и эксплуатация системного и прикладного программного обеспечения. Тестирование и отладка программного продукта.

    отчет по практике [272,2 K], добавлен 29.12.2014

  • Тестирование и отладка программного обеспечения: понятие, принципы, этапы, цели и задачи. Тестирование методом сандвича как компромисс между восходящим и нисходящим подходами. Сущность метода "белого и черного ящика", отладки программного обеспечения.

    курсовая работа [36,9 K], добавлен 21.07.2012

  • Компоновка роботизированного комплекса. Разработка циклограммы работы объектов. Построение релейно-контактной, логической бесконтактной схем по циклограмме и сети Петри. Выбор программируемого контроллера. Разработка и написание программы управления.

    курсовая работа [922,9 K], добавлен 26.01.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.