Автоматизированная информационная система программирования логики промышленных роботов для ООО "ВМЗ"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
дразделе описаны только те методы, которые имеют достаточно сложный функционал.
Функция записи списка входных сигналов
Метод SetListIn (ListInOut : list) записывает данные в список ListIn. Этот метод нельзя назвать стандартным, так как он не просто перезаписывает данные, но при перезаписи проверяет наличие в списке записываемых объектов по полям Имя и Номер (см. рис. 27). Эти поля выбраны для проверки, так как при переопределении сигнала может измениться имя уже используемого сигнала или номер.
Рисунок 27 - Алгоритм метода SetListIn
Метод SetListIn(ListInOut : list) сначала проверяет присутствие объектов в списке по полю Имя, затем по полю Номер. Это аргументируется тем, что чаще меняется имя сигнала, чем его номер.
Функция удаления пустых объектов из списка
DelNullObject (ListInOut : list) - метод удаления пустых объектов из списка входных сигналов. В процессе переопределения входных сигналов какие-то сигналы удаляются, какие-то сигналы добавляются. Так как объекты списка Steps ссылаются на номера объектов списка ListIn, то при удалении и добавлении объектов в список ListIn будет теряться связь в списке Steps. Чтобы избежать данной проблемы при удалении входных сигналов, объекты, содержащие эти сигналы, не удаляются, а происходит удаление имени сигнала (см. рис. 28). При перезаписи списка Steps объекты списка ListIn с обнулёнными именами удаляются методом DelNullObject.
Рисунок 28 - Алгоритм метода DelNullObject
Для удаления пустых объектов их списка ListOut используется этот же метод, так в него передаётся список, который необходимо изменить.
Функция чтения списка не добавленных в условия входных сигналов
После определения сигналов и записи их в список ListIn пользователь на форме определяет последовательность сигналов при проверке условий шагов программы. Выбор сигналов происходит из списка сигналов, которые ещё не прописаны в последовательности. Для облегчения функциональности графического интерфейса проверка на отсутствие сигналов в последовательности происходит методом GetListNotAddIn(), который считывает поле AddIn у объектов и формирует список не прописанных в последовательности сигналов (см. рис. 29).
Рисунок 29 - Алгоритм метода GetListNotAddIn
Метод возвращает список имён сигналов, так как для формирования последовательности используется только это поле объекта.
Функция сортировки списков в пользовательской последовательности
Метод SortListInOut (ListNameInOut : list) предназначен для сортировки объектов списков в последовательности, заданной пользователем. При определении сигналов и первой их записи они записываются в список в порядке чтения с таблицы. При определении условий или выходных сигналов пользователь определяет последовательность проверяемых/передаваемых сигналов. Чтобы сохранить эту последовательность для дальнейшего чтения список сортируется. Алгоритм функции сортировки представлен на рисунке 30.
Рисунок 30 - Алгоритм метода SortListInOut
Методы SetListIn, DelNullObject, SortListInOut обеспечивают сохранение связи между списками ListIn и Steps. Методы SetListOut, GetListNotAddOut для списка ListOut аналогичны методам SetListIn и GetListNotAddIn, поэтому нет надобности описания их функциональности. Программный код методов отображён в Приложении А.
Функция генерации файла конфигурации
Вся информация, хранящаяся в объектах, записывается в следующие файлы:
init.src;
update.src;
config.txt;
comment.txt;
machine.dat.
Файл comment.txt является вспомогательным, он хранит комментарии. Остальные файлы являются необходимыми для конфигурации системы и работоспособности технологии. Файл config.txt содержит глобальные переменные, необходимые для работоспособности технологии. Файл config.txt содержит блок данных, который является частью данных файла config.dat. Алгоритм метода GenConfig удобнее описать, так как блок схема будет перегружена строковыми переменными. При описании алгоритма постоянные строки программы не будут прописаны, полный текст файла можно увидеть в Приложении Б.
Алгоритм метода GenConfig:
1.Прописать название фолда (блока данных) и неизменяемые структуры (типы данных).
2.Если список назначений ListUse содержит только два объекта, перейти к шагу 4.
.Прописать структуру данных SLAVEROBTYPE, содержащую перечень сигналов slave из списка ListSigSlave.
.Прописать переменные хранящие количество шагов программы, количество условий и время пульсации.
.Если список назначений ListUse содержит только два объекта, перейти к шагу 8.
.Объявить массив SLAVEROB. Размерность массива соответствует количеству назначений slaveX.
.Для каждого элемента массива SLAVEROB прописать все переменные списка ListSigSlave. Если в списке ListIn/ListOut с соответствующим назначением отсутствует объект ListIn.Name== ListSigSlave(текущий), то после прописи сигнала поставить 0, иначе записать ListIn.Num.
.Прописать закрытие фолда переменных и открытие фолда сигналов.
.Прописать имена и номера сигналов с назначением Robot.
.Прописать закрытие фолда сигналов.
Результаты функций генерации с привязкой к объектам отображены в Приложении В.
Таким образом, в данном подпункте описаны следующие методы:
алгоритм метода SetListIn, реализующий функцию записи списка входных сигналов;
алгоритм метода DelNullObject, реализующий функцию удаления пустых объектов из списка;
алгоритм метода GetListNotAddIn, реализующий функцию чтения списка не добавленных в условия входных сигналов;
алгоритм метода SortListInOut, реализующий функцию сортир?/p>