Система предназначена для управления автоматизированным комплексом хранения подшипников. Она обеспечивает прием подшипников на склад, а также подбор и выдачу по запросу.
Данный документ описывает требования и ограничения на использование приложения.
В настоящем документе приняты следующие определения и сокращения:
| Сокращение | Определение |
|---|---|
| FS | Данный документ. Содержит технические требования, предъявляемые к программному продукту |
| HLD | High Level Design. Содержит описание модульной структуры проекта и взаимодействия его модулей |
| Проект | Проект системы управления автоматизированным комплексом хранения подшипников |
В последующем тексте слово "должен" определяет необходимое требование к продукту. Слова "может", "предполагает" и "способен" определяют направление работ, которое подлежит дальнейшему уточнению.
Комплекс хранения подшипников состоит из:
У каждого из элементов комплекса существует программа управления, реализованная в виде в dll, принимающая на вход высокоуровневые команды и преобразующая их в управляющие воздействия для данного элемента.
(рис 13.1) Структура комплекса
(рис 13.2) Концептуальная схема стеллажа
Склад предназначен для хранения подшипников. Он представляет собой стеллаж с ячейками, имеет входную и выходную ячейку и робот-манипулятор.
Все ячейки имеют координаты - сторона стеллажа (0 или 1), ряд (0 или 1 для каждой стороны), колонка (от 0 до 4 для каждого ряда), а также порядковый номер. Выходная ячейка имеет номер 999 и координаты (9,9,9), а приемная - 0 и координаты (0,0,0). Всего ячеек, кроме приемной и выходной, 20 штук.
Стеллаж имеет две области ячеек: рабочую и резервную (рис. 13.2). В рабочей области хранятся опознанные подшипники, т.е. подшипники, для которых были получены параметры с терминала подшипника и операция по перемещению в ячейку завершилась успешно. В резервную область попадают неопознанные подшипники, т.е. подшипники, при операциях с которыми произошел сбой и нельзя гарантировать достоверность полученных для них параметров.
Как в рабочей, так и в резервной областях, могут существовать сбойные ячейки. Ячейка помечается как сбойная, если робот-манипулятор не может взять из нее подшипник или если он не может положить подшипник в эту ячейку. Каждая ячейка может быть помечена либо как занятая, либо как свободная, либо как сбойная.
| колонка 0 | колонка 1 | колонка 2 | колонка 3 | колонка 4 | ||
| сторона 0 | 1 | 2 | 3 | 4 | 5 | ряд 1 |
| 6 | 7 | 8 | 9 | 10 | ряд 2 | |
| Рабочая зона | ||||||
| сторона 1 | 11 | 12 | 13 | 14 | 15 | ряд 3 |
| 16 | 17 | 18 | 19 | 20 | ряд 4 | |
|---|---|---|---|---|---|---|
| Резервная зона | ||||||
Склад может иметь в каждый момент времени один из следующих статусов:
| Код | Значение |
|---|---|
| 32 | Подшипник во входной ячейке |
| 16 | Подшипник в манипуляторе |
| 4 | Нет нуля |
| 0 | Склад свободен |
(рис 13.3) Граф переходов статусов склада
Склад принимает следующие команды:
| № | Код | Название | Полное название команды |
|---|---|---|---|
| 1 | 1 | GetR |
ПОЛУЧИТЬ ИЗ ВХОДНОЙ ЯЧЕЙКИ |
| 2 | 2 | SendR |
ОТПРАВИТЬ ИЗ ЯЧЕЙКИ В ВЫХОДНУЮ ЯЧЕЙКУ |
| 4 | 4 | PutR |
ПОЛОЖИТЬ В РЕЗЕРВ |
| 5 | 6 | SetN |
ПРОИЗВЕСТИ ЗАНУЛЕНИЕ |
| 7 | 20 | Term |
ЗАВЕРШЕНИЕ КОМАНД ВЫДАЧИ |
Команды имеют формат:
| № | Параметр | Тип | Диапазон допустимых значений | Описание |
|---|---|---|---|---|
| 1 | NameCommand |
int |
1:6,9,10,20 | Название команды (табл. 13.2) |
| 2 | TagSt |
int |
0:1 | Сторона результирующей ячейки |
| 3 | TagCol |
int |
0:4 | Колонка результирующей ячейки |
| 4 | TagRow |
int |
1:2 | Ряд результирующей ячейки |
| 5 | SourseSt |
int |
0:1 | Сторона исходной ячейки |
| 6 | SourseCol |
int |
0:4 | Колонка исходной ячейки |
| 7 | SourseRow |
int |
1:2 | Ряд исходной ячейки |
| № | Код | Описание |
|---|---|---|
| 1 | -4 | Нет свободных ячеек |
| 2 | -3 | Не послать |
| 3 | -2 | Тайм-аут |
| 4 | -1 | Нет клиента |
| 5 | 0 | Успешное получение команды |
| 6 | 1 | Ошибка при получении команды |
| 7 | 2 | Склад не понял команду |
| 8 | 3 | Склад занят |
| № | Код | Описание |
|---|---|---|
| 1 | -1 | Нет склада |
| 2 | 0 | Нет сообщения |
| 3 | 1 | Команда выполнена без ошибки |
| 4 | 2 | Команда выполнена с ошибкой. Не удается взять подшипник из заданной ячейки |
| 5 | 3 | Команда выполнена с ошибкой. Не удается положить подшипник в заданную ячейку |
| № | Код | Описание |
|---|---|---|
| 1 | -3 | Нет обмена |
| 2 | -2 | Тайм аут |
| 3 | -1 | Нет клиента |
| 4 | 0 | Возвращаемый параметр mParametr содержит статус склада |
| 5 | 1 | Нет данных |
Терминал подшипника производит измерение параметров подшипника, и на запрос системы возвращает одно из следующих сообщений.
| № | Код | Описание |
|---|---|---|
| 1 | -3 | Нет обмена |
| 2 | -2 | Тайм-аут |
| 3 | -1 | Нет клиента |
| 4 | 0 | Структура с измеренными параметрами подшипника в буфере |
| 5 | 1 | Нет данных |
Если код сообщения = 0, то в буфере находится структура с параметрами:
| № | Параметр | Тип | Диапазон допустимых значений | Описание |
|---|---|---|---|---|
| 1 | NameMaster |
String |
Любая строка длиной до 255 символов | ФИО мастера, производившего измерения |
| 2 | Factory |
String |
Любая строка длиной до 255 символов | Название депо |
| 3 | ShiftNum |
Byte |
1...2 | Номер рабочей смены |
| 4 | Number |
String |
Любая строка длиной до 255 символов | Номер подшипника |
| 5 | GroupNum |
Int |
12...20 | Номер группы подшипника |
| 6 | Septype |
Byte |
0...1 | Тип сепаратора подшипника |
| 7 | AShift |
Float |
0.01...1 | Осевой сдвиг |
Терминал оси производит измерение ее параметров. В ответ на запрос системы он возвращает одно из следующих сообщений:
| № | Код | Описание |
|---|---|---|
| 1 | -3 | Нет обмена |
| 2 | -2 | Тайм аут |
| 3 | -1 | Нет клиента |
| 4 | 0 | Структура с измеренными параметрами оси в буфере |
| 5 | 1 | Нет данных |
| № | Параметр | Тип | Диапазон допустимых значений | Описание |
|---|---|---|---|---|
| 1 | Name Master |
String |
Любая строка длиной до 255 символов | ФИО мастера, производившего измерения |
| 2 | ShiftNum |
Byte |
1...2 | Номер рабочей смены |
| 3 | Factory |
String |
Любая строка длиной до 255 символов | Название депо |
| 4 | ANumber |
Int |
Любая строка длиной до 255 символов | Номер оси |
| 5 | Side |
Byte |
0...1 | Сторона оси 0-правая, 1-левая |
| 6 | BackDiam |
Float |
12...20 | Посадочный диаметр задний |
| 7 | FrontDiam |
Float |
12...20 | Посадочный диаметр передний |
(рис 13.4) Интерфейсы системыДля получения сообщения от склада:
static public long GetStoreMessage() - возвращаемые значения
описаны в табл. 13.7.
Для получения статуса склада:
static public int GetStoreStat(out long mParametr) - возвращаемые
значения описаны в табл. 13.6. Значения, принимаемые
возвращаемым параметром mParametr, описаны в табл. 13.2.
Для посылки команды складу:
static public int SendStoreCom (int NameCommand, int TagSt,
int TagCol, int TagRow, int SourseSt, int SourseCol,
int SourseRow) - возвращаемые значения в передаваемые параметры описаны в табл. 13.4.
Для получения сообщения от терминала подшипника система должна вызвать следующую функцию модуля Bearing.dll:
static public int GetRollerPar(out string NameMaster, out
string Factory, out string Number, out byte ShiftNum, out
int GroupNum, out byte SepType, out float AShift). Функция должна
возвращать одно из значений, перечисленных в табл. 13.87.
Возвращаемые параметры описаны в табл. 13.9.
Для получения сообщения от терминала оси система должна вызывать следующую функцию модуля Axle.dll:
static public int GetRollerPar(out string NameMaster, out
string Factory, out string Number, out byte ShiftNum, out
int GroupNum, out byte SepType, out float AShift). Функция
должна возвращать одно из значений, перечисленных в табл. 13.10.
Возвращаемые параметры описаны в табл. 13.11.
Система управления комплексом должна:
Произвести опрос статуса склада (вызвать функцию etStoreStat ).
Добавить в журнал сообщений запись "СИСТЕМА: Запрошен статус СКЛАДА". В зависимости от полученного значения произвести следующие действия:
Полученный статус склада = 32. В приемную ячейку склада поступил подшипник. Система должна:
Добавить в журнал сообщений запись "СКЛАД: Статус СКЛАДА = 32".
Получить параметры поступившего подшипника с терминала
подшипника (должна быть вызвана функция GetRollerPar ).
Добавить в журнал сообщений запись "СИСТЕМА: Запрошены параметры подшипника".
В зависимости от GetRollerPar значения) должны быть выполнены действия,
приведенные в табл.:
Полученный статус склада = 16. Склад свободен, т.е. не выполняет никаких команд, но при этом в манипуляторе находится подшипник. В этом случае система должна:
Добавить в журнал сообщений запись "СКЛАД: Статус СКЛАДА = 16".
Поставить на первое место в очереди команду PutR - "ПОЛОЖИТЬ
В РЕЗЕРВ".
Полученный статус склада = 4. Нет нуля. В этом случае складу система должна:
Добавить в журнал сообщений запись "СКЛАД: Статус СКЛАДА = 4".
Поставить на первое место в очереди команду SetN - "ПРОИЗВЕСТИ ЗАНУЛЕНИЕ".
Полученный статус склада = 0. Склад свободен. Никаких действий в ответ на этот статус система предпринимать не должна.
| № | Действие системы | |
|---|---|---|
| 1 | -3 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: -3 - нет обмена" |
| 2 | -2 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: -2 - таймаут" |
| 3 | -1 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: -1 - нет клиента" |
| 4 | 0 | Добавить на первое место команду Добавить в журнал сообщений запись
"ТЕРМИНАЛ ПОДШИПНИКА: 0 - параметры
возвращены |
| 5 | 1 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: 1 - нет данных" |
| 6 | Другое | Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: ОШИБКА: Неопределенный статус" |
При любом другом статусе в журнал должно быть добавлено сообщение "СКЛАД: ОШИБКА: Неопределенный статус".
Произвести опрос терминала оси (вызвать функцию получения
сообщения от терминала - GetAxlePar ). В журнал сообщений должно быть
добавлено сообщение "СИСТЕМА: Запрошены параметры оси". В зависимости
от GetAxlePar
значения) должны быть выполнены следующие действия:
При поступлении команды в очередь система должна отправить команду на выполнение складу (параллельно с продолжающимся опросом терминала оси) и в зависимости от возвращенного функцией посылки команды статуса команды, выполнить следующие действия (табл. 13.4):
Полученный статус: 0 - успешное получение команды. В журнал
сообщений дложно быть добавлено сообщение "СКЛАД: 0 - команда <Полное_название_команды> успешно принята". Команда должна быть
удалена. Система должна получить сообщение от склада о результатах
выполнения команды.
Полученный статус: 1 - при посылке команды произошла ошибка.
В журнал сообщений дложно быть добавлено сообщение "СКЛАД: 1 -
ошибка при посылке команды <Полное_название_команды> ". Команда
должна быть удалена.
| № | Действие системы | |
|---|---|---|
| 1 | -3 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: -3 - нет обмена" |
| 2 | -2 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: -2 - таймаут" |
| 3 | -1 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: -1 - нет клиента" |
| 4 | 0 | Добавить в журнал сообщений запись "ТЕРМИНАЛ
ОСИ: 0 - параметры возвращены Подобрать два подшипника из имеющихся на складе в соответствии со следующими требованиями: Они должны находиться в ячейках с разными номерами Разность группы первого подшипника и группы переднего посадочного диаметра оси (FrontDiam) должна быть меньше либо равна 2 Разность группы второго подшипника и группы заднего посадочного диаметра оси (BackDiam) должна быть меньше либо равна 2 Разность разностей пункта ii и iii должна быть меньше либо равна 2 Выдаваемые подшипники должны иметь одинаковый тип сепаратора. В первую очередь должны выдаваться подшипники, которые находятся на складе дольше всего. При успешном подборе подшипников: В журнал сообщений должно быть добавлено сообщение "ТЕРМИНАЛ ОСИ: ПОДШИПНИКИ подобраны" В конец очереди команд должны быть добавлены две команды " При отсутствии на складе подшипников, удовлетворяющих заданным параметрам, в журнал должно быть добавлено сообщение "ТЕРМИНАЛ ОСИ: Не подобрать ПОДШИПНИКОВ". |
| 5 | 1 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: 1 - нет данных" |
| 6 | Другое | Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: ОШИБКА: Неопределенный статус" |
Полученный статус: 2 - склад не понял команду. В журнал сообщений
должно быть добавлено сообщение "СКЛАД: 2 - склад не понял команду <Полное_название_команды> ". Система должна попытаться послать
команду повторно; после второй неудачной попытки в журнал должно быть
добавлено сообщение "СКЛАД: Не понял команду после двух попыток",
команда должна быть удалена, а система должна приступить к выполнению
следующей в очереди команды, если очередь не пуста.
Полученный статус: 3 - склад занят. Система должна посылать команду в течение 30 секунд, при истечении данного интервала в журнал должно быть добавлено сообщение об ошибке "СКЛАД: 3 - занят более 30 секунд", команда должна быть удалена, а система должна приступить к выполнению следующей в очереди команды, если очередь не пуста.
Полученный статус: -1 - нет склада. Система должна попытаться выполнить команду повторно; после второй неудачной попытки в журнал должно быть добавлено сообщение "СКЛАД:-1 - нет СКЛАДА" и система должна завершить работу.
Полученный статус: -2 - таймаут. Система должна попытаться выполнить команду повторно; после второй неудачной попытки в журнал должно быть добавлено сообщение "СКЛАД:-2 - таймаут при посылке команды" и система должна завершить работу.
Полученный статус: -3 - не посылать. Система должна попытаться выполнить команду повторно; после второй неудачной попытки в журнал должно быть добавлено сообщение "СКЛАД:-3 - не удается послать команду СКЛАДУ" и система должна завершить работу.
Полученный статус: -4 - нет свободных ячеек. В журнал должно быть добавлено сообщение "СКЛАД:-4 - нет свободных ячеек", команда должна быть удалена, а система должна приступить к выполнению следующей в очереди команды, если очередь не пуста.
При получении любого другого статуса в журнал должно быть добавлено сообщение "СКЛАД: ОШИБКА: Неопределенный статус при посылке команды".
После успешного получения складом команды (получения статуса команды = 0) система должна получить сообщение от склада и добавить в журнал сообщение "СИСТЕМА: Запрошено сообщение от СКЛАДА":
Полученное сообщение: -1 - нет склада. Система должна попытаться получить сообщение повторно, после второй неудачной попытки в журнал должно быть добавлено сообщение "СКЛАД:-1 - нет СКЛАДА" и система должна завершить работу.
Полученное сообщение: 0 - нет сообщения. Это означает, что склад еще занят, следует продолжать опрос.
Полученное сообщение: 1 - Команда выполнена без ошибки.
На первое место в очередь должна быть добавлена команда с параметрами удаленной команды, но номер результирующей ячейки в команде должен быть заменен номером другой свободной ячейки, соответственно алгоритму поиска свободной ячейки.
Полученное сообщение: 2 - Команда выполнена с ошибкой, не
удается взять подшипник. Если текущая выполняемая команда: GetR - "Получить из приемника в ячейку":
В журнал должно быть добавлено сообщение "СКЛАД: ОШИБКА: Не взять из входной ячейки".
Текущая команда должна быть удалена.
На первое место в очереди должна быть добавлена команда SetN -
"Произвести зануление".
SendR - "Отправить ячейку на выход":
В журнал должно быть добавлено сообщение "СКЛАД: Не взять из
ячейки <Номер_ячейки> ".
Текущая команда должна быть удалена.
На первое место в очереди должна быть добавлена команда SetN -
"Произвести зануление".
На второе место в очереди должна быть добавлена команда SendR -
"Отправить ячейку на выход" с параметрами удаленной в п. 2 команды.
При получении того же статуса при повторной попытке выполнения
команды SendR:
Ячейка должна быть помечена как сбойная (не должны предприниматься дальнейшие попытки положить в нее подшипники)
В журнал должно быть добавлено сообщение "СИСТЕМА: Ячейка <Номер_Ячейки> <Номер_Стороны> <Номер_Колонки> <Номер_Ряда>
помечена как сбойная"
Текущая команда SendR должна быть удалена.
На первое место в очередь должна быть добавлена команда с параметрами удаленной команды, но номер результирующей ячейки в команде должен быть заменен номером другой свободной ячейки, соответственно алгоритму поиска свободной ячейки.
Полученное сообщение: 3 - команда выполнена с ошибкой, не удается
положить подшипник. Если порядковый номер, результирующей ячейки - 999,
т.е. это выходная ячейка, то:
В журнал должно быть добавлено сообщение "СКЛАД: Не могу положить подшипник в выходную ячейку".
Текущая команда должна быть отложена.
Должна быть выполнена команда SetN - "Произвести зануление"
Должна быть предпринята попытка выполнить отложенную команду.
При получении того же статуса при повторной попытке выполнения команды:
Текущая команда должна быть удалена.
В журнал должно быть добавлено сообщение "СКЛАД: Не могу положить подшипник в выходную ячейку после второй попытки". Если порядковый номер, результирующей ячейки любой другой кроме 999 и 0, то:
В журнал должно быть добавлено сообщение "СКЛАД: Не могу
положить подшипник в ячейку № <Номер_ячейки> ".
Текущая команда должна быть удалена.
На первое место в очереди должна быть добавлена команда SetN -
"Произвести зануление".
На второе место в очереди должна быть добавлена команда с параметрами удаленной в п. 2 команды.
При получении того же статуса при повторной попытке выполнения команды:
Ячейка должна быть помечена как сбойная (не должны предприниматься дальнейшие попытки положить в нее подшипники).
В журнал должно быть добавлено сообщение "СИСТЕМА: Ячейка <Номер_Стороны> <Номер_Колонки> <Номер_Ряда> помечена как сбойная".
Текущая команда должна быть удалена.
На первое место в очередь должна быть добавлена команда с параметрами удаленной команды, но номер результирующей ячейки в команде должен быть заменен номером другой свободной ячейки, соответственно алгоритму поиска свободной ячейки.
Система предназначена для управления автоматизированным комплексом хранения подшипников. Она обеспечивает прием подшипников на склад, а также подбор и выдачу по запросу.
Данный документ описывает требования и ограничения на использование приложения.
В настоящем документе приняты следующие определения и сокращения:
| Сокращение | Определение |
|---|---|
| FS | Данный документ. Содержит технические требования, предъявляемые к программному продукту |
| HLD | High Level Design. Содержит описание модульной структуры проекта и взаимодействия его модулей |
| Проект | Проект системы управления автоматизированным комплексом хранения подшипников |
В последующем тексте слово "должен" определяет необходимое требование к продукту. Слова "может", "предполагает" и "способен" определяют направление работ, которое подлежит дальнейшему уточнению.
Комплекс хранения подшипников состоит из:
У каждого из элементов комплекса существует программа управления, реализованная в виде в dll, принимающая на вход высокоуровневые команды и преобразующая их в управляющие воздействия для данного элемента.
(рис 13.1) Структура комплекса
(рис 13.2) Концептуальная схема стеллажа
Склад предназначен для хранения подшипников. Он представляет собой стеллаж с ячейками, имеет входную и выходную ячейку и робот-манипулятор.
Все ячейки имеют координаты - сторона стеллажа (0 или 1), ряд (0 или 1 для каждой стороны), колонка (от 0 до 4 для каждого ряда), а также порядковый номер. Выходная ячейка имеет номер 999 и координаты (9,9,9), а приемная - 0 и координаты (0,0,0). Всего ячеек, кроме приемной и выходной, 20 штук.
Стеллаж имеет две области ячеек: рабочую и резервную (рис. 13.2). В рабочей области хранятся опознанные подшипники, т.е. подшипники, для которых были получены параметры с терминала подшипника и операция по перемещению в ячейку завершилась успешно. В резервную область попадают неопознанные подшипники, т.е. подшипники, при операциях с которыми произошел сбой и нельзя гарантировать достоверность полученных для них параметров.
Как в рабочей, так и в резервной областях, могут существовать сбойные ячейки. Ячейка помечается как сбойная, если робот-манипулятор не может взять из нее подшипник или если он не может положить подшипник в эту ячейку. Каждая ячейка может быть помечена либо как занятая, либо как свободная, либо как сбойная.
| колонка 0 | колонка 1 | колонка 2 | колонка 3 | колонка 4 | ||
| сторона 0 | 1 | 2 | 3 | 4 | 5 | ряд 1 |
| 6 | 7 | 8 | 9 | 10 | ряд 2 | |
| Рабочая зона | ||||||
| сторона 1 | 11 | 12 | 13 | 14 | 15 | ряд 3 |
| 16 | 17 | 18 | 19 | 20 | ряд 4 | |
|---|---|---|---|---|---|---|
| Резервная зона | ||||||
Склад может иметь в каждый момент времени один из следующих статусов:
| Код | Значение |
|---|---|
| 32 | Подшипник во входной ячейке |
| 16 | Подшипник в манипуляторе |
| 4 | Нет нуля |
| 0 | Склад свободен |
(рис 13.3) Граф переходов статусов склада
Склад принимает следующие команды:
| № | Код | Название | Полное название команды |
|---|---|---|---|
| 1 | 1 | GetR |
ПОЛУЧИТЬ ИЗ ВХОДНОЙ ЯЧЕЙКИ |
| 2 | 2 | SendR |
ОТПРАВИТЬ ИЗ ЯЧЕЙКИ В ВЫХОДНУЮ ЯЧЕЙКУ |
| 4 | 4 | PutR |
ПОЛОЖИТЬ В РЕЗЕРВ |
| 5 | 6 | SetN |
ПРОИЗВЕСТИ ЗАНУЛЕНИЕ |
| 7 | 20 | Term |
ЗАВЕРШЕНИЕ КОМАНД ВЫДАЧИ |
Команды имеют формат:
| № | Параметр | Тип | Диапазон допустимых значений | Описание |
|---|---|---|---|---|
| 1 | NameCommand |
int |
1:6,9,10,20 | Название команды (табл. 13.2) |
| 2 | TagSt |
int |
0:1 | Сторона результирующей ячейки |
| 3 | TagCol |
int |
0:4 | Колонка результирующей ячейки |
| 4 | TagRow |
int |
1:2 | Ряд результирующей ячейки |
| 5 | SourseSt |
int |
0:1 | Сторона исходной ячейки |
| 6 | SourseCol |
int |
0:4 | Колонка исходной ячейки |
| 7 | SourseRow |
int |
1:2 | Ряд исходной ячейки |
| № | Код | Описание |
|---|---|---|
| 1 | -4 | Нет свободных ячеек |
| 2 | -3 | Не послать |
| 3 | -2 | Тайм-аут |
| 4 | -1 | Нет клиента |
| 5 | 0 | Успешное получение команды |
| 6 | 1 | Ошибка при получении команды |
| 7 | 2 | Склад не понял команду |
| 8 | 3 | Склад занят |
| № | Код | Описание |
|---|---|---|
| 1 | -1 | Нет склада |
| 2 | 0 | Нет сообщения |
| 3 | 1 | Команда выполнена без ошибки |
| 4 | 2 | Команда выполнена с ошибкой. Не удается взять подшипник из заданной ячейки |
| 5 | 3 | Команда выполнена с ошибкой. Не удается положить подшипник в заданную ячейку |
| № | Код | Описание |
|---|---|---|
| 1 | -3 | Нет обмена |
| 2 | -2 | Тайм аут |
| 3 | -1 | Нет клиента |
| 4 | 0 | Возвращаемый параметр mParametr содержит статус склада |
| 5 | 1 | Нет данных |
Терминал подшипника производит измерение параметров подшипника, и на запрос системы возвращает одно из следующих сообщений.
| № | Код | Описание |
|---|---|---|
| 1 | -3 | Нет обмена |
| 2 | -2 | Тайм-аут |
| 3 | -1 | Нет клиента |
| 4 | 0 | Структура с измеренными параметрами подшипника в буфере |
| 5 | 1 | Нет данных |
Если код сообщения = 0, то в буфере находится структура с параметрами:
| № | Параметр | Тип | Диапазон допустимых значений | Описание |
|---|---|---|---|---|
| 1 | NameMaster |
String |
Любая строка длиной до 255 символов | ФИО мастера, производившего измерения |
| 2 | Factory |
String |
Любая строка длиной до 255 символов | Название депо |
| 3 | ShiftNum |
Byte |
1...2 | Номер рабочей смены |
| 4 | Number |
String |
Любая строка длиной до 255 символов | Номер подшипника |
| 5 | GroupNum |
Int |
12...20 | Номер группы подшипника |
| 6 | Septype |
Byte |
0...1 | Тип сепаратора подшипника |
| 7 | AShift |
Float |
0.01...1 | Осевой сдвиг |
Терминал оси производит измерение ее параметров. В ответ на запрос системы он возвращает одно из следующих сообщений:
| № | Код | Описание |
|---|---|---|
| 1 | -3 | Нет обмена |
| 2 | -2 | Тайм аут |
| 3 | -1 | Нет клиента |
| 4 | 0 | Структура с измеренными параметрами оси в буфере |
| 5 | 1 | Нет данных |
| № | Параметр | Тип | Диапазон допустимых значений | Описание |
|---|---|---|---|---|
| 1 | Name Master |
String |
Любая строка длиной до 255 символов | ФИО мастера, производившего измерения |
| 2 | ShiftNum |
Byte |
1...2 | Номер рабочей смены |
| 3 | Factory |
String |
Любая строка длиной до 255 символов | Название депо |
| 4 | ANumber |
Int |
Любая строка длиной до 255 символов | Номер оси |
| 5 | Side |
Byte |
0...1 | Сторона оси 0-правая, 1-левая |
| 6 | BackDiam |
Float |
12...20 | Посадочный диаметр задний |
| 7 | FrontDiam |
Float |
12...20 | Посадочный диаметр передний |
(рис 13.4) Интерфейсы системыДля получения сообщения от склада:
static public long GetStoreMessage() - возвращаемые значения
описаны в табл. 13.7.
Для получения статуса склада:
static public int GetStoreStat(out long mParametr) - возвращаемые
значения описаны в табл. 13.6. Значения, принимаемые
возвращаемым параметром mParametr, описаны в табл. 13.2.
Для посылки команды складу:
static public int SendStoreCom (int NameCommand, int TagSt,
int TagCol, int TagRow, int SourseSt, int SourseCol,
int SourseRow) - возвращаемые значения в передаваемые параметры описаны в табл. 13.4.
Для получения сообщения от терминала подшипника система должна вызвать следующую функцию модуля Bearing.dll:
static public int GetRollerPar(out string NameMaster, out
string Factory, out string Number, out byte ShiftNum, out
int GroupNum, out byte SepType, out float AShift). Функция должна
возвращать одно из значений, перечисленных в табл. 13.87.
Возвращаемые параметры описаны в табл. 13.9.
Для получения сообщения от терминала оси система должна вызывать следующую функцию модуля Axle.dll:
static public int GetRollerPar(out string NameMaster, out
string Factory, out string Number, out byte ShiftNum, out
int GroupNum, out byte SepType, out float AShift). Функция
должна возвращать одно из значений, перечисленных в табл. 13.10.
Возвращаемые параметры описаны в табл. 13.11.
Система управления комплексом должна:
Произвести опрос статуса склада (вызвать функцию etStoreStat ).
Добавить в журнал сообщений запись "СИСТЕМА: Запрошен статус СКЛАДА". В зависимости от полученного значения произвести следующие действия:
Полученный статус склада = 32. В приемную ячейку склада поступил подшипник. Система должна:
Добавить в журнал сообщений запись "СКЛАД: Статус СКЛАДА = 32".
Получить параметры поступившего подшипника с терминала
подшипника (должна быть вызвана функция GetRollerPar ).
Добавить в журнал сообщений запись "СИСТЕМА: Запрошены параметры подшипника".
В зависимости от GetRollerPar значения) должны быть выполнены действия,
приведенные в табл.:
Полученный статус склада = 16. Склад свободен, т.е. не выполняет никаких команд, но при этом в манипуляторе находится подшипник. В этом случае система должна:
Добавить в журнал сообщений запись "СКЛАД: Статус СКЛАДА = 16".
Поставить на первое место в очереди команду PutR - "ПОЛОЖИТЬ
В РЕЗЕРВ".
Полученный статус склада = 4. Нет нуля. В этом случае складу система должна:
Добавить в журнал сообщений запись "СКЛАД: Статус СКЛАДА = 4".
Поставить на первое место в очереди команду SetN - "ПРОИЗВЕСТИ ЗАНУЛЕНИЕ".
Полученный статус склада = 0. Склад свободен. Никаких действий в ответ на этот статус система предпринимать не должна.
| № | Действие системы | |
|---|---|---|
| 1 | -3 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: -3 - нет обмена" |
| 2 | -2 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: -2 - таймаут" |
| 3 | -1 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: -1 - нет клиента" |
| 4 | 0 | Добавить на первое место команду Добавить в журнал сообщений запись
"ТЕРМИНАЛ ПОДШИПНИКА: 0 - параметры
возвращены |
| 5 | 1 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: 1 - нет данных" |
| 6 | Другое | Добавить в журнал сообщений запись "ТЕРМИНАЛ ПОДШИПНИКА: ОШИБКА: Неопределенный статус" |
При любом другом статусе в журнал должно быть добавлено сообщение "СКЛАД: ОШИБКА: Неопределенный статус".
Произвести опрос терминала оси (вызвать функцию получения
сообщения от терминала - GetAxlePar ). В журнал сообщений должно быть
добавлено сообщение "СИСТЕМА: Запрошены параметры оси". В зависимости
от GetAxlePar
значения) должны быть выполнены следующие действия:
При поступлении команды в очередь система должна отправить команду на выполнение складу (параллельно с продолжающимся опросом терминала оси) и в зависимости от возвращенного функцией посылки команды статуса команды, выполнить следующие действия (табл. 13.4):
Полученный статус: 0 - успешное получение команды. В журнал
сообщений дложно быть добавлено сообщение "СКЛАД: 0 - команда <Полное_название_команды> успешно принята". Команда должна быть
удалена. Система должна получить сообщение от склада о результатах
выполнения команды.
Полученный статус: 1 - при посылке команды произошла ошибка.
В журнал сообщений дложно быть добавлено сообщение "СКЛАД: 1 -
ошибка при посылке команды <Полное_название_команды> ". Команда
должна быть удалена.
| № | Действие системы | |
|---|---|---|
| 1 | -3 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: -3 - нет обмена" |
| 2 | -2 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: -2 - таймаут" |
| 3 | -1 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: -1 - нет клиента" |
| 4 | 0 | Добавить в журнал сообщений запись "ТЕРМИНАЛ
ОСИ: 0 - параметры возвращены Подобрать два подшипника из имеющихся на складе в соответствии со следующими требованиями: Они должны находиться в ячейках с разными номерами Разность группы первого подшипника и группы переднего посадочного диаметра оси (FrontDiam) должна быть меньше либо равна 2 Разность группы второго подшипника и группы заднего посадочного диаметра оси (BackDiam) должна быть меньше либо равна 2 Разность разностей пункта ii и iii должна быть меньше либо равна 2 Выдаваемые подшипники должны иметь одинаковый тип сепаратора. В первую очередь должны выдаваться подшипники, которые находятся на складе дольше всего. При успешном подборе подшипников: В журнал сообщений должно быть добавлено сообщение "ТЕРМИНАЛ ОСИ: ПОДШИПНИКИ подобраны" В конец очереди команд должны быть добавлены две команды " При отсутствии на складе подшипников, удовлетворяющих заданным параметрам, в журнал должно быть добавлено сообщение "ТЕРМИНАЛ ОСИ: Не подобрать ПОДШИПНИКОВ". |
| 5 | 1 | Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: 1 - нет данных" |
| 6 | Другое | Добавить в журнал сообщений запись "ТЕРМИНАЛ ОСИ: ОШИБКА: Неопределенный статус" |
Полученный статус: 2 - склад не понял команду. В журнал сообщений
должно быть добавлено сообщение "СКЛАД: 2 - склад не понял команду <Полное_название_команды> ". Система должна попытаться послать
команду повторно; после второй неудачной попытки в журнал должно быть
добавлено сообщение "СКЛАД: Не понял команду после двух попыток",
команда должна быть удалена, а система должна приступить к выполнению
следующей в очереди команды, если очередь не пуста.
Полученный статус: 3 - склад занят. Система должна посылать команду в течение 30 секунд, при истечении данного интервала в журнал должно быть добавлено сообщение об ошибке "СКЛАД: 3 - занят более 30 секунд", команда должна быть удалена, а система должна приступить к выполнению следующей в очереди команды, если очередь не пуста.
Полученный статус: -1 - нет склада. Система должна попытаться выполнить команду повторно; после второй неудачной попытки в журнал должно быть добавлено сообщение "СКЛАД:-1 - нет СКЛАДА" и система должна завершить работу.
Полученный статус: -2 - таймаут. Система должна попытаться выполнить команду повторно; после второй неудачной попытки в журнал должно быть добавлено сообщение "СКЛАД:-2 - таймаут при посылке команды" и система должна завершить работу.
Полученный статус: -3 - не посылать. Система должна попытаться выполнить команду повторно; после второй неудачной попытки в журнал должно быть добавлено сообщение "СКЛАД:-3 - не удается послать команду СКЛАДУ" и система должна завершить работу.
Полученный статус: -4 - нет свободных ячеек. В журнал должно быть добавлено сообщение "СКЛАД:-4 - нет свободных ячеек", команда должна быть удалена, а система должна приступить к выполнению следующей в очереди команды, если очередь не пуста.
При получении любого другого статуса в журнал должно быть добавлено сообщение "СКЛАД: ОШИБКА: Неопределенный статус при посылке команды".
После успешного получения складом команды (получения статуса команды = 0) система должна получить сообщение от склада и добавить в журнал сообщение "СИСТЕМА: Запрошено сообщение от СКЛАДА":
Полученное сообщение: -1 - нет склада. Система должна попытаться получить сообщение повторно, после второй неудачной попытки в журнал должно быть добавлено сообщение "СКЛАД:-1 - нет СКЛАДА" и система должна завершить работу.
Полученное сообщение: 0 - нет сообщения. Это означает, что склад еще занят, следует продолжать опрос.
Полученное сообщение: 1 - Команда выполнена без ошибки.
На первое место в очередь должна быть добавлена команда с параметрами удаленной команды, но номер результирующей ячейки в команде должен быть заменен номером другой свободной ячейки, соответственно алгоритму поиска свободной ячейки.
Полученное сообщение: 2 - Команда выполнена с ошибкой, не
удается взять подшипник. Если текущая выполняемая команда: GetR - "Получить из приемника в ячейку":
В журнал должно быть добавлено сообщение "СКЛАД: ОШИБКА: Не взять из входной ячейки".
Текущая команда должна быть удалена.
На первое место в очереди должна быть добавлена команда SetN -
"Произвести зануление".
SendR - "Отправить ячейку на выход":
В журнал должно быть добавлено сообщение "СКЛАД: Не взять из
ячейки <Номер_ячейки> ".
Текущая команда должна быть удалена.
На первое место в очереди должна быть добавлена команда SetN -
"Произвести зануление".
На второе место в очереди должна быть добавлена команда SendR -
"Отправить ячейку на выход" с параметрами удаленной в п. 2 команды.
При получении того же статуса при повторной попытке выполнения
команды SendR:
Ячейка должна быть помечена как сбойная (не должны предприниматься дальнейшие попытки положить в нее подшипники)
В журнал должно быть добавлено сообщение "СИСТЕМА: Ячейка <Номер_Ячейки> <Номер_Стороны> <Номер_Колонки> <Номер_Ряда>
помечена как сбойная"
Текущая команда SendR должна быть удалена.
На первое место в очередь должна быть добавлена команда с параметрами удаленной команды, но номер результирующей ячейки в команде должен быть заменен номером другой свободной ячейки, соответственно алгоритму поиска свободной ячейки.
Полученное сообщение: 3 - команда выполнена с ошибкой, не удается
положить подшипник. Если порядковый номер, результирующей ячейки - 999,
т.е. это выходная ячейка, то:
В журнал должно быть добавлено сообщение "СКЛАД: Не могу положить подшипник в выходную ячейку".
Текущая команда должна быть отложена.
Должна быть выполнена команда SetN - "Произвести зануление"
Должна быть предпринята попытка выполнить отложенную команду.
При получении того же статуса при повторной попытке выполнения команды:
Текущая команда должна быть удалена.
В журнал должно быть добавлено сообщение "СКЛАД: Не могу положить подшипник в выходную ячейку после второй попытки". Если порядковый номер, результирующей ячейки любой другой кроме 999 и 0, то:
В журнал должно быть добавлено сообщение "СКЛАД: Не могу
положить подшипник в ячейку № <Номер_ячейки> ".
Текущая команда должна быть удалена.
На первое место в очереди должна быть добавлена команда SetN -
"Произвести зануление".
На второе место в очереди должна быть добавлена команда с параметрами удаленной в п. 2 команды.
При получении того же статуса при повторной попытке выполнения команды:
Ячейка должна быть помечена как сбойная (не должны предприниматься дальнейшие попытки положить в нее подшипники).
В журнал должно быть добавлено сообщение "СИСТЕМА: Ячейка <Номер_Стороны> <Номер_Колонки> <Номер_Ряда> помечена как сбойная".
Текущая команда должна быть удалена.
На первое место в очередь должна быть добавлена команда с параметрами удаленной команды, но номер результирующей ячейки в команде должен быть заменен номером другой свободной ячейки, соответственно алгоритму поиска свободной ячейки.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.