Автоматизированная информационная система программирования логики промышленных роботов для ООО "ВМЗ"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

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

Требования к функционалу системы описаны выше. Модель системы как будет отображено на рисунке 8.

 

Рисунок 8 - Диаграмма вариантов использования

 

Из представленной модели видно, что программист имеет два варианта использования: создание программы с нуля и модификация написанной ранее программы. Функционал соответствует требованиям к функциям, выполняемым системой, описанным в пункте 1.2.4.

Моделирование данных

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

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

класс-сущность - класс, отображающий классы, которые являются хранилищами данных;

управляющий класс - класс, отвечающий за координацию действий других классов.

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

Граничным классом является форма отображения данных, хранящихся в объектах класса Параметры программы.

Сущностным классом является класс Параметры программы, который хранит данные обо всех параметрах программируемой логики.

Управляющим классом является класс подключения к системе управления версиями Subversion.

 

Рисунок 9 - Диаграмма коммуникации Общая диаграмма классов

 

Класс Параметры программы представляет собой совокупность классов, хранящих информацию о параметрах программируемой логики (см. рис. 10).

В представленной на рисунке 10 диаграмме классов между классами используется отношение композиции. Это отношение является частным случаем отношения ассоциации.

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

 

Рисунок 10 - Диаграмма классов

 

Класс InOut хранит информацию по входным и выходным сигналам.

Name - имя сигнала.

Num - программный номер сигнала.

Comment - описание сигнала.

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

Use - Назначение сигнала (собственный сигнал робота, системный сигнал, сигнал для Slave1, сигнал для Slave2). Определяет параметры генерации (имя и место описания сигнала).

Класс InOutSlave отражает уже обозначенные сигналы роботов Slave. Несколько роботов Slave могут использовать сигналы с одинаковыми названиями и комментриями. Список класса InOutSlave позволяет выбирать уже добавленные сигналы для роботов Slave (без дополнительной обработки списков входов и выходов) и значительно упрощает генерацию кода (программных файлов).

Name - имя сигнала.

Comment - описание сигнала.

InOut - вход/выход (true - вход, false - выход).

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

IndexIn - номер объекта в списке всех объявленных входных сигналов.

WaitStateIn - ожидаемое значение.

Mess - сообщение, выводимое при невыполнении условия.

MessType - тип выводимого сообщения.

Для хранения информации по каждому выходному сигналу используется класс с CondOut, он хранит следующую информацию:

IndexOut - номер объекта в списке всех объявленных выходных сигналов.

StateOut - подаваемое значение.

Pulse - запрос подачи сигнала импульсом.

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

ListCondIn - список условий

ListCondOut - список выходных сигналов

Name - наименование шага

Num - программный номер шага

Методы класса Step:

SetCondOut(Co