Uploaded by Гарик Сергеевич

KRL Reference Guide v4 1 (1)

advertisement
Machine Translated by Google
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
КР С1 / КР С2 / КР С3
Справочное руководство
Версия 4.1
RefGuideR4.1 09.01.00 ru
1 из 135
Machine Translated by Google
e Авторские права KUKA Roboter GmbH
Эта документация или выдержки из нее не могут быть воспроизведены или раскрыты третьим лицам без явного разрешения издателей.
Другие функции, не описанные в этой документации, могут выполняться в контроллере. Однако пользователь не имеет претензий к этим функциям в случае
замены или сервисного обслуживания.
Мы проверили содержание этой документации на соответствие описанному аппаратному и программному обеспечению. Тем не менее, несоответствия не
могут быть исключены, поэтому мы не можем гарантировать полное соответствие. Однако информация в этой документации регулярно проверяется, и
необходимые исправления будут внесены в последующие издания.
Возможны технические изменения, не влияющие на функциональность.
PD Interleaf
RefGuideR4.1 09.01.00 ru
2 из 135
Machine Translated by Google
Содержание
1
Общий ................................................. ........
1.1
Типографские соглашения
1,2
Графические соглашения ....................................... .............
2
Справочный раздел
2.1
Основы ................................................................ ................
2.1.1
Программы, списки данных и модули ................................................
9
................................................. ....
................................................
9
10
11
11
11
2.1.2 Имена и литералы ................................................. ....................
11
2.1.3 Типы данных ...................................................... .......................
11
2.1.3.1 Простые типы данных ...................................................... ...................
11
2.1.3.2 Неявное преобразование типов ...................................................... .............
12
2.1.3.3 Предопределенные типы данных ........................................ ..............
................................................. ..
2.1.3.4 Неявное присвоение типа данных
12
12
2.1.5 2.1.5.1Константы
Системные......................................
переменные .......................................
.................................
....................
2.1.4 Переменные
2.1.6
....................... ................................................. 12
Операторы ...................... ..............................................
13
13
13
2.1.6.1 Арифметические операторы ...................................................... ...............
13
2.1.6.2 Логические операторы ...................................................... ...................
13
2.1.6.3 Реляционные операторы ...................................................... ...............
13
2.1.6.4 Битовые операторы ...................................................... ......................
13
2.1.6.5 Геометрический оператор ...................................................... ...............
13
2.1.6.6 Приоритет операторов ...................................................... ................ 2.1.7
Декларация ...................................... ......................................
14
2.1.8
Инициализация ................................................................ ...................
2.1.9 Выражение ....................................................... ......................
14
14
14
2.1.10 Заявление ....................................................... ......................
14
2.1.11 Комментарий ...................................................... .......................
14
2.1.12 Программирование движения ....................................... ..............
2.1.12.1 Движения PTP (PTP = точка-точка-точка) ................................................
15
2.1.12.2 Движения CP (CP = непрерывный путь) ..............................................
15
15
2.1.13 Структуры управления ...................................................... .................
15
2.1.14 Подпрограммы ....................................................... ....................
2.1.15 Функции ....................................................... .......................
15
2.1.16 Блочная структура ...................................................... ...................
15
2.1.17 Области действия ...................................................... ....................
16
2.1.18 Ключевые слова ...................................................... .......................
16
АНИН ...............................
Указатель команд
..............................................
................................................................ ............... 2.2 2.2.1
20
15
20
2.2.1.1 Краткая информация ....................................... ...................
20
2.2.1.2 Синтаксис ....................................................... .........................
20
2.2.1.3 Описание ....................................................... ......................
20
2.2.1.4 Пример ....................................................... ................................
2.2.2 АНВЫХ ................................................................ ................................
21
2.2.2.1 Краткая информация ....................................... ...................
22
2.2.2.2 Синтаксис ....................................................... .........................
22
22
2.2.2.3 Описание ....................................................... ......................
22
2.2.2.4 Пример ...................................................... ................................
23
RefGuideR4.1 09.01.00 ru
3 из 135
Machine Translated by Google
Справочное руководство
2.2.3.1 Краткая информация ....................................... ...................
24
24
2.2.3.2 Синтаксис ....................................................... .........................
24
2.2.3 ТОРМОЗ ....................................................... .........................
2.2.3.3 Описание ....................................................... ......................
24
2.2.3.4 Пример ...................................................... ................................
2.2.4 ЗАКРЫТЬ ....................................................... .......................
24
25
2.2.4.1 Краткая информация ................................................ ...................
25
2.2.4.2 Синтаксис ....................................................... .........................
25
2.2.4.3 Описание ....................................................... ......................
2.2.4.4 Пример ....................................................... ................................
2.2.5 КАНАЛ ....................................................... ......................
2.2.5.1 Краткая информация ....................................... ...................
2.2.5.2 Синтаксис ....................................................... .........................
2.2.5.3 Описание ....................................................... ......................
2.2.5.4 Пример ....................................................... ................................
2.2.6 ЦИРК .................................................. ...........................
25
25
27
27
27
27
28
2.2.6.2 Синтаксис ....................................................... .........................
29
29
29
2.2.6.3 Описание ....................................................... ......................
31
2.2.6.4 Пример ....................................................... ................................
33
2.2.7 CIRC_REL ....................................................... ................
34
2.2.6.1 Краткая информация ................................................ ...................
2.2.7.1 Краткая информация ....................................... ...................
34
2.2.7.2 Синтаксис ....................................................... .........................
34
2.2.8.1 Краткая информация ....................................... ...................
36
37
38
38
2.2.8.2 Синтаксис ....................................................... .........................
38
2.2.7.3 Описание ....................................................... ......................
2.2.7.4 Пример ....................................................... ................................
2.2.8 ПОДТВЕРЖДЕНИЕ ....................................................... ......................
2.2.8.3 Описание ....................................................... ......................
38
2.2.8.4 Пример ...................................................... ................................
2.2.9 ПРОДОЛЖИТЬ ....................................................... ......................
39
40
2.2.9.1 Краткая информация ....................................... ...................
40
2.2.9.2 Синтаксис ....................................................... .........................
40
2.2.9.3 Описание ....................................................... ......................
2.2.9.4 Пример ....................................................... ................................
2.2.10 КОПИРОВАНИЕ .................................................. ..............................................
40
40
41
2.2.10.1 Краткая информация ................................................ ...................
41
2.2.10.2 Синтаксис ....................................................... .........................
2.2.10.3 Описание ....................................................... ......................
41
41
2.2.10.4 Пример ...................................................... ................................
2.2.11 СОЗДАТЬ ....................................................... ................................
41
42
2.2.11.1 Краткая информация ....................................... ...................
2.2.11.2 Синтаксис ....................................................... .........................
42
42
2.2.11.3 Описание ....................................................... ......................
2.2.12 ЗАПИСЬ ................................................................ ................................
44
48
2.2.12.1 Краткая информация ....................................... ...................
48
2.2.12.2 Синтаксис ....................................................... .........................
48
2.2.12.3 Описание ....................................................... ......................
49
2.2.12.4 Пример ....................................................... ................................
2.2.13 ДЕКЛ .................................................. ..........................
51
2.2.13.1 Краткая информация ................................................ ...................
53
2.2.13.2 Синтаксис ....................................................... .........................
53
2.2.13.3 Описание ....................................................... ......................
2.2.13.4 Пример: ....................................... ................................
53
54
56
RefGuideR4.1 09.01.00 ru
4 из 135
Machine Translated by Google
2.2.14 ОПРЕДЕЛЕНИЕ... КОНЕЦ ................................................ .........................
57
2.2.14.1 Краткая информация ....................................... ...................
57
2.2.14.2 Синтаксис ....................................................... .........................
57
2.2.14.3 Описание ....................................................... ......................
2.2.14.4 Пример: ....................................... ................................
58
59
2.2.15 DEFDATE ... ДАЛЬНЕЙШАЯ ДАТА ..................
60
2.2.15.1 Краткая информация ....................................... ...................
60
2.2.15.2 Синтаксис ....................................................... .........................
2.2.15.3 Описание ....................................................... ......................
60
60
2.2.15.4 Пример: ....................................... ................................
2.2.16 ДЕФФКТ... КОНЕЦ ................................................ .................
61
63
2.2.16.1 Краткая информация ................................................ ...................
63
2.2.16.2 Синтаксис ....................................................... .........................
63
2.2.16.3 Описание ....................................................... ......................
2.2.16.4 Пример ....................................................... ................................
2.2.17 ПРЕДУПРЕЖДЕНИЕ ............................................... ..........................
64
65
2.2.17.1 Краткая информация ................................................ ...................
66
66
2.2.17.2 Синтаксис ....................................................... .........................
66
2.2.17.3 Описание ....................................................... ......................
66
2.2.17.4 Примеры ....................................................... .......................
2.2.18 ENUM ................................................................ ..........................
67
68
2.2.18.1 Краткая информация ....................................... ...................
68
2.2.18.2 Синтаксис ....................................................... .........................
68
2.2.18.3 Описание ....................................................... ......................
2.2.18.4 Пример ...................................................... ................................
2.2.19 ВЫХОД ....................................................... ...........................
68
69
2.2.19.1 Краткая информация ....................................... ...................
70
70
2.2.19.2 Синтаксис ....................................................... .........................
70
2.2.19.3 Описание ....................................................... ......................
70
2.2.19.4 Пример ...................................................... ................................
2.2.20 ВНЕШН.................................................. ............................
70
71
2.2.20.1 Краткая информация ................................................ ...................
71
2.2.20.2 Синтаксис ....................................................... .........................
71
2.2.20.3 Описание ....................................................... ......................
2.2.20.4 Пример ...................................................... ................................
2.2.21 ЭКСТФКТ ............................................... ................................
71
72
73
2.2.21.1 Краткая информация ................................................ ...................
73
2.2.21.2 Синтаксис ....................................................... .........................
73
2.2.21.3 Описание ....................................................... ......................
73
2.2.21.4 Пример ....................................................... ................................
................................................. ......
2.2.22 ДЛЯ... ДО... КОНЕЦ
74
2.2.22.1 Краткая информация ................................................ ...................
2.2.23.1 Краткая информация ................................................ ...................
76
76
76
77
78
78
2.2.23.2 Синтаксис ....................................................... .........................
78
2.2.22.2 Синтаксис ....................................................... .........................
2.2.22.3 Описание ....................................................... ......................
2.2.22.4 Пример ...................................................... ................................
2.2.23 ПЕРЕЙТИ ................................................................ ..........................
76
2.2.23.3 Описание ....................................................... ......................
78
2.2.23.4 Пример ...................................................... ................................
2.2.24 ОСТАНОВ .................................................. ...........................
78
79
2.2.24.1 Краткая информация ...................................................... ...................
79
2.2.24.2 Синтаксис ....................................................... .........................
79
2.2.24.3 Описание ....................................................... ......................
79
RefGuideR4.1 09.01.00 ru
5 из 135
Machine Translated by Google
Справочное руководство
2.2.25 ЕСЛИ... ТО... КОНЕЦ .................................................. ......................
80
2.2.25.1 Краткая информация ................................................ ...................
80
2.2.25.2 Синтаксис ....................................................... .........................
80
2.2.25.3 Описание ....................................................... ......................
80
2.2.25.4 Пример ...................................................... ................................
2.2.26 ИМПОРТ ... ЕСТЬ ... .. ... .................................. .........................
80
81
2.2.26.1 Краткая информация ................................................ ...................
81
2.2.26.2 Синтаксис ....................................................... .........................
81
2.2.26.3 Описание ....................................................... ......................
81
2.2.26.4 Пример ....................................................... ................................
2.2.27 ОТКЛОНЕНИЕ ПРЕРЫВАНИЯ ... КОГДА ... ДЕЛАТЬ ................................................
83
2.2.27.1 Краткая информация ...................... ..............................
83
2.2.27.2 Синтаксис ....................................................... .........................
83
2.2.27.3 Описание ....................................................... ......................
2.2.27.4 Пример ...................................................... ................................
2.2.28 ПРЕРЫВАНИЕ ....................................................... ....................
2.2.28.1 Краткая информация ....................................... ...................
2.2.28.2 Синтаксис ....................................................... .........................
82
84
85
86
86
86
2.2.28.3 Описание ....................................................... ......................
86
2.2.28.4 Пример ....................................................... ................................
2.2.29 ЛИН ....................................................... ............................
90
2.2.29.1 Краткая информация ................................................ ...................
90
2.2.29.2 Синтаксис ....................................................... .........................
90
88
2.2.29.3 Описание ....................................................... ......................
91
2.2.29.4 Пример ....................................................... ................................
93
2.2.30.1 Краткая информация ................................................ ...................
94
94
2.2.30.2 Синтаксис ...................................................... .........................
94
2.2.30 LIN_REL ..................................... .......... ..............
2.2.30.3 Описание ....................................................... ......................
95
2.2.30.4 Пример ...................................................... ................................
2.2.31 РАБОТА... ЗАВЕРШЕНИЕ РАБОТЫ ............................................ ....................
95
96
2.2.31.1 Краткая информация ................................................ ...................
2.2.31.3 Описание ....................................................... ......................
96
96
96
2.2.31.4 Пример ...................................................... ................................
2.2.32 ПТП ....................................................... ............................
96
97
2.2.32.1 Краткая информация ...................................................... ...................
97
2.2.32.2 Синтаксис ....................................................... .........................
97
2.2.31.2 Синтаксис ....................................................... .........................
2.2.32.3 Описание ....................................................... ......................
2.2.32.4 Пример ...................................................... ................................
2.2.33 PTP_REL ...................................................... .......................
2.2.33.1 Краткая информация ....................................... ...................
2.2.33.2 Синтаксис ....................................................... .........................
97
100
101
101
101
2.2.33.3 Описание ....................................................... ......................
101
2.2.33.4 Пример ...................................................... ................................
2.2.34 ИМПУЛЬС .................................................. .........................
103
102
2.2.34.1 Краткая информация ....................................... ...................
103
2.2.34.2 Синтаксис ...................................................... .........................
103
2.2.34.3 Описание ....................................................... ......................
103
2.2.34.4 Пример ...................................................... ................................
2.2.35 ПОВТОРЯТЬ… ДО……………………………………………………….. ...................
104
106
2.2.35.1 Краткая информация ................................................ ...................
106
2.2.35.2 Синтаксис ...................................................... .........................
106
2.2.35.3 Описание ....................................................... ......................
106
RefGuideR4.1 09.01.00 ru
6 из 135
Machine Translated by Google
2.2.35.4 Пример ...................................................... ................................
2.2.36 ВОЗОБНОВЛЕНИЕ ....................................... .......................
106
2.2.36.1 Краткая информация ................................................ ...................
108
2.2.36.2 Синтаксис ...................................................... .........................
108
108
2.2.36.3 Описание ....................................................... ......................
108
2.2.36.4 Пример ...................................................... ................................
2.2.37 ВОЗВРАТ ....................................................... .......................
109
110
2.2.37.1 Краткая информация ................................................ ...................
110
2.2.37.2 Синтаксис ....................................................... .........................
110
2.2.37.3 Описание ....................................................... ......................
110
2.2.37.4 Пример ...................................................... ................................
2.2.38 СИГНАЛ ....................................................... ................................
112
111
2.2.38.3 Описание ....................................................... ......................
112
112
112
2.2.38.4 Пример ....................................................... ................................
2.2.39 ПОСЛЕДОВАТЕЛЬНОСТЬ ....................................... .........................
113
114
2.2.39.1 Краткая информация ................................................ ...................
114
2.2.39.2 Синтаксис ....................................................... .........................
114
2.2.38.1 Краткая информация ................................................ ...................
2.2.38.2 Синтаксис ....................................................... .........................
2.2.39.3 Описание ....................................................... ......................
114
2.2.39.4 Пример ...................................................... ................................
2.2.40 СТРУК .................................................. .........................
116
117
2.2.40.1 Краткая информация ................................................ ...................
117
2.2.40.2 Синтаксис ....................................................... .........................
117
2.2.40.3 Описание ....................................................... ......................
117
2.2.40.4 Пример ...................................................... ................................
2.2.41 ВЫКЛЮЧАТЕЛЬ... корпус... КОНЦЕВОЙ ВЫКЛЮЧАТЕЛЬ ................................................
118
119
2.2.41.1 Краткая информация................................... ..............................
119
2.2.41.2 Синтаксис ....................................................... .........................
119
2.2.41.3 Описание ....................................................... ......................
119
2.2.41.4 Пример ...................................................... ................................
2.2.42 ЗАПИСЬ ....................................................... ................................
120
2.2.42.1 Краткая информация ...................................................... ...................
121
2.2.42.2 Синтаксис ....................................................... .........................
2.2.42.3 Описание ....................................................... ......................
121
121
121
2.2.42.4 Пример ...................................................... ................................
.................................................
2.2.43 ТРИГГЕР, когда расстояние ... сделать
123
124
2.2.43.1 Краткая информация ...................................... ............................
124
124
2.2.43.2 Синтаксис ....................................................... .........................
2.2.43.3 Описание ....................................................... ......................
2.2.43.4 Пример ...................................................... ................................
................................................. ..
2.2.44 ТРИГГЕР, когда ПУТЬ ... делать
124
125
127
2.2.44.1 Краткая информация ................................................ ...................
127
2.2.44.2 Синтаксис ...................................................... .........................
127
2.2.44.3 Описание ....................................................... ......................
2.2.45 ПОДОЖДИТЕ .................................................. .......................
128
130
2.2.45.1 Краткая информация ................................................ ...................
130
2.2.45.2 Синтаксис ....................................................... .........................
130
2.2.45.3 Описание ....................................................... ......................
130
2.2.45.4 Пример ...................................................... ................................
2.2.46 ОЖИДАНИЕ СЕК ............................................... .......................
130
131
2.2.46.1 Краткая информация ................................................ ...................
131
2.2.46.2 Синтаксис ....................................................... .........................
131
2.2.46.3 Описание ....................................................... ......................
131
RefGuideR4.1 09.01.00 ru
7 из 135
Machine Translated by Google
Справочное руководство
2.2.46.4 Пример ...................................................... ................................
2.2.47 ПОКА... КОНЕЦ ПОКА .................................................... ................
131
2.2.47.1 Краткая информация ................................................ ...................
132
2.2.47.2 Синтаксис ....................................................... .........................
132
2.2.47.3 Описание ....................................................... ......................
132
132
2.2.47.4 Пример ....................................................... ................................
132
() .............................
Системные
......................................
функции ...................................................... ............... 2.3 2.3.1 СОСТОЯНИЕ ПЕРЕМЕННОЙ
134
2.3.1.1 Краткая информация ....................................... ...................
134
134
2.3.1.2 Синтаксис ....................................................... .........................
134
2.3.1.3 Описание ....................................................... ......................
134
2.3.1.4 Пример ...................................................... ................................
135
RefGuideR4.1 09.01.00 ru
8 из 135
Machine Translated by Google
1
1
Общий
1.1
Типографские соглашения
Общий
В данном руководстве для отображения синтаксиса используется следующий стиль шрифта:
Пример
Пояснение
ЕСЛИ, ТО ТРИГГЕР,...
Необходимые ключевые слова и символы
печатаются жирным шрифтом в верхнем
регистре.
Сигнал, Имя_интерфейса, Тип
Названия опций команды напечатаны
данных, ...
полужирным курсивом, в верхнем и нижнем
регистре.
Имя, Расстояние, Время,
Термины, напечатанные в верхнем/нижнем
Приоритет, ...
регистре, должны быть заменены
информацией, относящейся к программе.
ЗАДЕРЖКА = Время
+|-
,
ЕЩЕ
, ...
Элементы в квадратных скобках являются необязательными.
Взаимоисключающие варианты разделяются
знаком ИЛИ «|».
RefGuideR4.1 09.01.00 ru
9 из 135
Machine Translated by Google
Справочное руководство
1.2 Графические соглашения
В данном руководстве используются следующие символы:
Символ «ПРИМЕР» встречается в описаниях и иллюстрациях практических примеров.
Перекрестные ссылки на другие разделы или главы руководства, содержащие дополнительную информацию и
пояснения.
Информация , имеющая особое значение или полезная для лучшего понимания.
Символ «СОВЕТ» используется для обозначения фрагментов текста, содержащих рекомендации и советы, которые
облегчат вашу работу.
Значок «ПРИМЕЧАНИЕ» используется для выделения общей или дополнительной информации по конкретному
вопросу или для выделения специальных функций.
« ВНИМАНИЕ!» символ используется там, где несоблюдение полностью и точно инструкций по эксплуатации,
рабочих инструкций, предписанных последовательностей действий и т. п. может привести к повреждению
робототехнической системы.
Этот символ используется, когда несоблюдение полностью и точно инструкций по эксплуатации, рабочих
инструкций, предписанных последовательностей действий и т. п. может привести к травме или несчастному
случаю со смертельным исходом.
RefGuideR4.1 09.01.00 ru
10 из 135
Machine Translated by Google
2
2
Справочный раздел
Справочный раздел
2.1 Основы
2.1.1 Программы, списки данных и модули
KRC сохраняет программный код в файлах с расширением SRC. Постоянные данные сохраняются в так называемых
списках данных, файлах с расширением DAT. Модуль состоит из файла SRC и файла DAT с тем же именем.
2.1.2 Имена и литералы
Литерал представляет фактическое значение, например, символ «1» представляет число «один», а имя или обозначение
представляет объект данных, содержащий значение (например, переменную) или фиксированное значение (например,
константу).
К имени переменной или константы применяются следующие ограничения:
г
Он может иметь максимальную длину 24 символа.
г
Он может состоять из букв (A--Z), цифр (0--9) и знаков «_» и «$».
г
Оно не должно начинаться с цифры.
г
Это не должно быть ключевым словом.
2.1.3 Типы данных
Существуют две различные группы типов данных: типы данных, такие как INT, которые предварительно определены в
системе, и определяемые пользователем типы данных, которые, в свою очередь, основаны на типах данных ENUM и
STRUC.
Эти две группы отличаются на практике в двух отношениях:
г
Типы данных, предварительно определенные в системе, действительны глобально, в то время как типы данных,
определенные пользователем, видны только локально, если только в их объявлении не используется ключевое
слово GLOBAL или они не были объявлены в файле $CONFIG.DAT.
G Ключевое слово DECL можно опустить при объявлении типов данных, предопределенных в
система.
2.1.3.1 Простые типы данных
Тип данных
Ключевое слово
Смысл
Диапазон значений
Целое число
INT
Целое число
--2ПН--1 ... 2ПН--1
Настоящий
НАСТОЯЩИЙ
Плавающая точка
1.1E--38...3.4E+38
количество
логический
BOOL
Логическое состояние
ИСТИНА, ЛОЖЬ
Характер
СИМВОЛ
Характер
ASCII-символ
RefGuideR4.1 09.01.00 ru
11 из 135
Machine Translated by Google
Справочное руководство
2.1.3.2 Неявное преобразование типов
Результатом арифметической операции является только INT, если оба операнда имеют тип данных INT. Если результат
целочисленного деления не является целым числом, он отсекается до десятичной точки.
Если один из операндов имеет тип данных REAL, результат также будет иметь тип данных REAL.
Операнды
INT
НАСТОЯЩИЙ
INT
INT
НАСТОЯЩИЙ
НАСТОЯЩИЙ
НАСТОЯЩИЙ
НАСТОЯЩИЙ
2.1.3.3 Предопределенные типы данных
Следующие типы данных для программирования движения предопределены в программном обеспечении контроллера.
STRUC AXIS REAL A1, A2, A3, A4, A5, A6
Компоненты с A1 по A6 структуры AXIS представляют собой угловые значения (оси вращения) или значения перемещения
(поступательные оси) для характерного для оси движения осей робота с 1 по 6.
STRUC E6AXIS REAL A1, A2, A3, A4, A5, A6, E1, E2, E3, E4, E5, E6
Значения угла или значения смещения для внешних осей сохраняются в дополнительных компонентах от E1 до E6.
STRUC FRAME REAL X, Y, Z, A, B, C
Пространственные координаты хранятся в X, Y, Z, а ориентация системы координат хранится в A, B, C.
STRUC POS REAL X, Y, Z, A, B, C, INT S, T
Дополнительные компоненты S (статус) и T (поворот) могут использоваться для однозначного определения положения осей.
STRUC E6POS REAL X, Y, Z, A, B, C, E1, E2, E3, E4, E5, E6, INT S, T
2.1.3.4 Неявное назначение типа данных
Если имя переменной используется без предварительного объявления в программе KRL, ей автоматически присваивается
тип данных POS.
Неявное назначение типов данных не следует использовать преднамеренно, так как это делает программу менее легкой
для понимания.
2.1.4 Константы
Константа имеет имя, тип данных и фиксированное значение, которое нельзя изменить после инициализации.
Константы должны быть определены и инициализированы в списке данных.
Чтобы иметь возможность использовать константы, параметр константы CONST_KEY в файле Progress.ini в каталоге INIT
должен иметь значение TRUE: CONST_KEY=TRUE
RefGuideR4.1 09.01.00 ru
12 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.1.5 Переменные
Переменная имеет имя, тип данных и область памяти, в которой хранится ее изменяемое значение.
2.1.5.1 Системные переменные
Все имена системных переменных KRL начинаются с символа «$»; поэтому этот символ не должен
использоваться в начале имен пользовательских переменных.
2.1.6 Операторы
Для манипулирования объектами данных доступны следующие операторы:
2.1.6.1 Арифметические операторы
Условное обозначение
Функция
+
Добавление
--
вычитание
/
Разделение
*
Умножение
2.1.6.2 Логические операторы
Символ
Функция
НЕ
Инверсия
И
Логическое И
ИЛИ ЖЕ
Логическое ИЛИ
ЭКЗОР
Эксклюзивный или
2.1.6.3 Реляционные операторы
Условное обозначение
==
Функция
Равно
<
Меньше, чем
>
Больше чем
<=
Меньше или равно
>=
Больше или равно
<>
Не равно
2.1.6.4 Битовые операторы
Условное обозначение
Функция
Б_НЕ
Побитовая инверсия
ГРУППА
Побитовая операция И
Б_ИЛИ
Побитовая операция ИЛИ
B_EXOR
Побитовая операция исключающее ИЛИ
2.1.6.5 Геометрический оператор
Условное обозначение
:
Функция
Выполняет векторное сложение кадров (геометрическое сложение)
между типами данных FRAME и POS.
RefGuideR4.1 09.01.00 ru
13 из 135
Machine Translated by Google
Справочное руководство
2.1.6.6 Приоритет операторов
В сложных выражениях с более чем одним оператором отдельные выражения выполняются в порядке
приоритета операндов.
Приоритет 1
(самый высокий)
Оператор
НЕ, Б_НЕ *, /
2
3
+, --
4
И, Б_И
5
EXOR, B_EXOR
6
ИЛИ, Б_ИЛИ
7 (самый низкий)
==, <, >, <=, >=, <>
Также применяются следующие правила:
г
Выражения в квадратных скобках обрабатываются первыми.
г
Выражения без квадратных скобок выполняются в порядке приоритета их операторов.
г
Логические операции с операторами одного приоритета выполняются слева направо.
2.1.7 Декларация
Объявление назначает тип данных имени.
2.1.8 Инициализация
Инициализация присваивает значение объявлению.
2.1.9 Выражение
Выражение — это конструкция объектов данных и операторов с собственным типом данных и значением.
G Выражение является арифметическим , если его результат имеет тип данных INT или REAL.
G Выражение является логическим , если его результат имеет тип данных BOOL.
G Выражение является геометрическим , если его результат имеет типы данных FRAME, POS, E6POS, AXIS.
или E6AXIS.
2.1.10 Заявление
Операторы — это команды, которые сами по себе не представляют фиксированное значение и тип данных.
Простые операторы состоят из одной командной строки, а составные операторы содержат целую управляющую
структуру.
2.1.11 Комментарий
Комментарий — это текст, который игнорируется компилятором. Он отделяется от кода программы в строке
программы символом «;». символ.
RefGuideR4.1 09.01.00 ru
14 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.1.12 Программирование движения
Одной из особенностей языка программирования роботов является возможность программирования точек,
между которыми перемещается TCP (центральная точка инструмента) робота. Существует два основных режима
перемещения:
2.1.12.1 Движения PTP (PTP = точка-точка-точка)
Робот перемещается в конечную точку с максимальным ускорением оси и скоростью ведущей оси. Он не
придерживается определенного пути.
2.1.12.2 Движения CP (CP = непрерывный путь)
TCP робота движется по линейному (LIN) или круговому (CIRC) пути между начальной точкой и точкой назначения.
Тип движения зависит от запрограммированной скорости и ускорения траектории, управления ориентацией и,
если точное позиционирование не требуется, от характера приблизительного позиционирования, а также от
начальной и конечной точек.
2.1.13 Структуры управления
Доступны управляющие структуры для влияния на выполнение программы. Их можно использовать, чтобы
сделать порядок выполнения строк программы зависимым от условий. Одним из примеров этого является
оператор IF ELSE.
2.1.14 Подпрограммы
Подпрограммы — это программный код, доступ к которому осуществляется посредством ответвлений от основной
программы. После выполнения подпрограммы выполнение программы возобновляется в командной строке
непосредственно после вызова подпрограммы.
В дополнение к основной программе в файлах SRC также могут быть определены дополнительные подпрограммы.
Основная программа распознается глобально, если ее имя совпадает с именем SRC-файла, в котором содержится
ее программный код. Если дальнейшие подпрограммы файла SRC должны распознаваться глобально, необходимо
использовать ключевое слово GLOBAL .
2.1.15 Функции
Функции, как и подпрограммы, являются программными единицами, которые можно вызывать; однако они также
обладают типом данных.
2.1.16 Блочная структура
Язык программирования KRL имеет блочную структуру. Блок состоит из операторов, объявлений, параметров и/
или комментариев. Эти операторы и объявления выполняются системой блок за блоком.
Блоки KRL должны создаваться в соответствии с определенными правилами. Предписанную структуру блоков
можно узнать из описаний синтаксиса объявлений и операторов в указателе инструкций.
Блок содержит либо:
G декларация
G заявление
Оставить комментарий
Также можно использовать пустые блоки. Они состоят только из символа конца блока.
Блок начинается в начале строки без какого-либо специального идентификатора. Блоки также могут начинаться с
одного или нескольких пробелов. Каждый блок завершается нажатием клавиши RETURN. Если блоки слишком длинные
RefGuideR4.1 09.01.00 ru
15 из 135
Machine Translated by Google
Справочное руководство
чтобы они поместились на дисплее, система автоматически перейдет на следующую строку. Максимальная длина строки
составляет 474 символа.
2.1.17 Области действия
Если переменные, константы, подпрограммы, функции или прерывания должны иметь глобальное значение, т.е.
распознаваться во всех загружаемых программах KRL, необходимо использовать ключевое слово GLOBAL . В противном
случае объекты данных распознаются только локально, за одним исключением: переменные, объявленные в файле
$CONFIG.DAT, также распознаются глобально.
Области действия локальных объектов данных:
Локальная переменная GA допустима в программном коде, содержащем объявление переменной и расположенном между
ключевыми словами DEF и ENDDEF.
Локальная константа GA распознается в том модуле, которому принадлежит список данных, в котором была объявлена
константа.
г
Локальные подпрограммы и локальные функции распознаются в основной программе общего файла SRC.
Локальное прерывание GA распознается только на том или более низком уровне программирования, на котором оно было
объявлено.
Если есть локальные и глобальные переменные с одинаковыми именами, компилятор использует локальную переменную в
пределах своей области действия.
Глобальные переменные и константы могут быть объявлены только в списках данных.
Чтобы иметь возможность использовать ключевое слово GLOBAL, для глобальной опции в файле «Progress.ini» в каталоге
INIT должно быть установлено значение TRUE: GLOBAL_KEY=TRUE
2.1.18 Ключевые слова
Ключевые слова — это последовательности букв, имеющие фиксированную функцию. В описании синтаксиса они выделены
жирным шрифтом в верхнем регистре.
Есть зарезервированные и незарезервированные ключевые слова:
G Зарезервированные ключевые слова нельзя использовать иначе, чем в соответствии с определенным для них значением.
Самое главное, они никогда не должны использоваться в качестве имен для объектов данных. Некоторые из ключевых
слов, перечисленных в таблице ниже, действительно распознаются компилятором, но еще не используются в системе.
Таким образом, они не реализованы, но тем не менее зарезервированы.
г
В случае незарезервированных ключевых слов значение ограничено конкретным контекстом. Этот контекст можно
определить по описанию синтаксиса, в котором ключевое слово снова появляется жирным шрифтом в верхнем
регистре. Вне этого контекста незарезервированное ключевое слово интерпретируется как имя. Однако во избежание
путаницы незарезервированные ключевые слова не следует использовать в качестве имен.
RefGuideR4.1 09.01.00 ru
16 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
В следующей таблице приведен список всех ключевых слов, используемых в объявлениях, операторах и
определениях языка программирования роботов KRL:
Ключевое слово
Функция
Краткая информация
АНИН
Заявление
Циклическое чтение аналоговых входов.
АНАУТ
Заявление
Операторское управление аналоговым выходом.
ТОРМОЗ
Заявление
Торможение движения робота в процедурах
прерывания.
КЕЙС
Заявление
Инициирует ветку в SWITCH
утверждение
ЗАКРЫТЬ
Заявление
КАНАЛ
Декларация
Закрытие каналов.
Объявление имен сигналов для входных и выходных
каналов.
ЦИРК
CIRC_REL
Заявление
Заявление
Круговое движение.
Круговое движение с относительными
координатами цели.
ПОДТВЕРЖДАТЬ
Заявление
Подтверждение сообщений подтверждения.
ПРОДОЛЖИТЬ
Заявление
Предотвращение опережающих остановок.
ОТКРЫТЬ
Заявление
Открытие канала ввода/вывода.
СОЗДАЙТЕ
Заявление
Чтение данных из каналов.
ЗАПИСАТЬ
Заявление
Запись данных в каналы.
ДЕКЛ
Декларация
Объявление переменных и массивов.
ДЭФ
Определение
Объявление программ и подпрограмм.
ПО УМОЛЧАНИЮ
Заявление
Инициирует ветку по умолчанию в SWITCH
ДЕФДАТ
Определение
Объявление списков данных.
ДЕФФКТ
Определение
Декларация функций.
ЗАДЕРЖИВАТЬ
Параметр
утверждение.
Инициирует указание задержки в операторах TRIGGER
и ANOUT.
ПРЕДУПРЕЖДЕНИЕ
РАССТОЯНИЕ
Заявление
Циклическое считывание цифровых входов.
Параметр
Инициирует указание точки переключения в
операторе TRIGGER Инициирует как вызов
ДЕЛАТЬ
Заявление
процедуры обработки прерывания в объявлении
INTERRUPT, так и
вызов подпрограммы или присвоение значения в
операторе TRIGGER.
ЕЩЕ
Заявление
Инициирует вторую ветвь инструкции в
оператор ЕСЛИ.
КОНЕЦ
Заявление
Конец подпрограммы (см. DEF).
КОНЕЦ ДАТЫ
Заявление
Конец списка данных (см. DEFDAT).
КОНЕЦ
Заявление
Конец функции (см. DEFFCT).
КОНЕЦ
Заявление
Завершает оператор цикла FOR.
RefGuideR4.1 09.01.00 ru
17 из 135
Machine Translated by Google
Справочное руководство
КОНЕЦ
Заявление
Завершает ветвление IF.
КОНЕЦ РАБОТЫ
Заявление
Завершает ЦИКЛ.
КОНЦЕВОЙ ВЫКЛЮЧАТЕЛЬ
Заявление
Завершает ветки SWITCH.
Я В ДОМЕ
Заявление
Завершает оператор цикла WHILE.
ПЕРЕЧИСЛЕНИЕ
Декларация
Объявление типов перечисления.
ВЫХОД
Заявление
Безусловный выход из циклов.
EXT
Декларация
Объявление внешних подпрограмм.
ЭКСТФКТ
Декларация
Объявление внешних функций.
ЗА
Заявление
Счетный цикл или инициация условия
оператора WAIT.
ГЛОБАЛЬНЫЙ
Декларация
Декларация глобальной области действия.
ПЕРЕЙТИ К
Заявление
Оператор безусловного перехода.
ОСТАНОВИТЬ
Заявление
Аккуратно прерывайте выполнение программы и
ЕСЛИ
Заявление
ИМПОРТ
Декларация
ПРЕРЫВАТЬ
Заявление
останавливайте обработку.
Выполнение операторов в зависимости от
результата логического выражения.
Импортирует переменные из списков данных.
Определение функции прерывания, ее активация
и деактивация.
ЯВЛЯЕТСЯ
Заявление
Инициирует исходные спецификации в
объявлении IMPORT.
Заявление
Линейное движение.
Заявление
Линейное движение с относительными координатами.
ПЕТЛЯ
Заявление
Бесконечная петля.
МАКСИМУМ
Параметр
ЛИН
LIN_REL
Ключевое слово для максимального значения аналоговых
выходов.
МИНИМУМ
Параметр
Ключевое слово для минимального значения аналоговых
выходов.
ПРИО
Параметр
Инициирует указание приоритета при вызове
подпрограммы в операторе TRIGGER.
ПТП
PTP_REL
Заявление
Заявление
Движение точка-точка.
Движение точка-точка с относительными
координатами.
ПУЛЬС
Заявление
ПОВТОРЕНИЕ
Заявление
Активация импульсного выхода.
Цикл программы, который всегда выполняется
хотя бы один раз (неотклоняющий цикл). Условие
завершения проверяется в конце
петли.
ПРОДОЛЖИТЬ
Заявление
Прерывание подпрограмм и процедур
прерывания.
RefGuideR4.1 09.01.00 ru
18 из 135
Machine Translated by Google
2
ВОЗВРАЩАТЬСЯ
Заявление
СПК
Заявление
Справочный раздел (продолжение)
Возврат из функций и подпрограмм.
Инициирует указание времени ожидания в
операторе WAIT.
СИГНАЛ
Декларация
Объявление имен сигналов для входа и выхода.
РЕД
Заявление
Разбивает набор данных на составные части
СТРУК
Декларация
Объявление типов структуры.
ВЫКЛЮЧАТЕЛЬ
Заявление
Выбор между несколькими операторами
ЗАПИСАТЬ
Заявление
Объединение данных для формирования набора данных.
ТОГДА
Заявление
Инициирует первую ветвь инструкции в IF
К
Заявление
части.
ветви.
утверждение.
Разделяет начальное и конечное значения в
операторе FOR и инициирует спецификацию
цифровых входов/выходов в объявлении SIGNAL.
КУРОК
Заявление
Связанное с траекторией срабатывание
переключающего действия, синхронного с движением робота.
ДО ТЕХ ПОР
Заявление
Инициирует запрос «конец» в цикле REPEAT.
Ожидание условия продолжения или
ЖДАТЬ
Заявление
КОГДА
Заявление
указанный период времени.
Инициирует логическое выражение в
объявлении INTERRUPT и спецификацию
критерия расстояния, связанного с путем, в
операторе TRIGGER.
ПОКА
Заявление
Цикл программы; условие завершения
проверяется в начале цикла (отклоняющий
цикл).
RefGuideR4.1 09.01.00 ru
19 из 135
Machine Translated by Google
Справочное руководство
2.2 Индекс команд
АНИН
2.2.1 АНИН
2.2.1.1 Краткая информация
Циклическое чтение аналоговых входов.
2.2.1.2 Синтаксис
Чтение аналогового входа:
ANIN ON Signal_Value = Factor * Signal_Name Offset
Прекращение операции чтения:
ANIN OFF Signal_Name
Аргумент
Тип Описание
Signal_Value REAL Результат циклического чтения сохраняется в
Signal_Value.
Signal_Value может быть переменной, аналоговым сигналом или
объявлением сигнала.
Фактор
REAL Factor может быть константой, переменной или объявлением сигнала.
Signal_Name REAL Signal_Name обозначает объявление сигнала с
аналоговый вход.
Компенсировать
REAL Смещение может быть константой, переменной, объявлением сигнала или
аналоговым сигналом.
Все переменные, используемые в операторе ANIN, должны быть объявлены в списках данных.
Максимум 3 оператора ANIN ON могут быть активны в любой момент времени.
2.2.1.3 Описание
Аналоговый модуль делает доступными аналоговые интерфейсы, которые можно считывать с помощью
предопределенных сигнальных переменных от $ANIN[1] до $ANIN[8]. Аналоговые входы можно считывать в
течение определенного периода времени с помощью ANIN или однократно назначать переменной типа
данных REAL с помощью оператора «=». В случае циклического чтения с оператором ANIN аналоговые
интерфейсы считываются в цикле с низким приоритетом (12 мс). Одновременно можно использовать три
оператора ANIN ON. Два оператора ANIN ON могут записывать одно и то же значение сигнала или обращаться
к одному и тому же аналоговому интерфейсу. Аналоговые входы можно логически комбинировать с другими
операторами и присваивать им значение сигнала с помощью дополнительной арифметики оператора ANIN.
Аналоговый модуль предоставляет 8 аналоговых интерфейсов с разрешением 12 бит (4,88 мВ, без
гальванической развязки). Входное напряжение может варьироваться от -10 В до +10 В, но не может
превышать 35 В. Аппаратным входам можно присвоить номера интерфейсов с помощью системных
параметров. Доступ к аналоговому входу запускает предварительную остановку.
RefGuideR4.1 09.01.00 ru
20 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
Если входное напряжение превышает 35 В, аналоговый модуль или его части могут выйти из строя.
2.2.1.4 Пример
Коррекция пути (системная переменная $TECHIN[1]) должна быть скорректирована в соответствии
с входом датчика $ANIN[2]. Вход датчика $ANIN[2] логически объединяется с символической
переменной SIGNAL_1. Результат умножения переменной FACTOR на текущее значение SIGNAL_1
добавляется к переменной OFFSET и циклически записывается в системную переменную для
коррекции пути $TECHIN[1].
СИГНАЛ СИГНАЛ_1 $ANIN[2]
ANIN ON $TECHIN[1] = FACTOR * SIGNAL_1 + OFFSET
Циклическое сканирование SIGNAL_1 завершается командой ANIN OFF.
СИГНАЛ ВЫКЛ. ANIN_1
СИГНАЛ, АНВЫХ, ЦИФР.
RefGuideR4.1 09.01.00 ru
21 из 135
Machine Translated by Google
Справочное руководство
АНАУТ
2.2.2 АНАУТ
2.2.2.1 Краткая информация
Управление аналоговым выходом.
2.2.2.2 Синтаксис
Запуск аналогового выхода:
ANOUT ON Signal_Name = Factor * Control_Element Offset
ЗАДЕРЖКА = Время
МИНИМАЛЬНОЕ = минимальное_значение МАКСИМУМ = максимальное_значение
Завершение аналогового выхода:
ANOUT ВЫКЛ Signal_Name
Тип аргумента Описание Signal_Name REAL
Signal_Name представляет объявление сигнала, определенное с помощью оператора SIGNAL и
относящееся к аналоговому выходу. Аналоговый выход, например,
$ANOUT[1], нельзя вводить напрямую.
Фактор
REAL Factor может быть переменной, объявлением сигнала, аналоговым сигналом.
или постоянный.
Контроль_
Элемент
REAL Control_Element может быть переменной, объявлением сигнала или аналоговым
Компенсировать
REAL Смещение может быть переменной, объявлением сигнала, аналоговым сигналом
сигналом.
или постоянный.
Время
REAL Время указывается в секундах как действительное число.
Минимальное_значение,
REAL Минимальное_значение и Максимальное_значение должны быть между
Максимальное_значение
--1.0 и +1.0 и ограничить вывод. Фактическое значение не ниже/не выше
указанных минимальных/максимальных значений, даже если расчетные
значения выходят за пределы этого диапазона. Минимальное значение,
конечно, всегда должно быть меньше максимального значения, и должна
поддерживаться последовательность ключевых слов MINIMUM MAXIMUM.
Все переменные, используемые в операторе ANOUT, должны быть объявлены в списках данных.
2.2.2.3 Описание
В отличие от бинарного или цифрового выхода, аналоговый выход управляется не простым присвоением значения, а
посредством оператора ANOUT. Имя сигнала определяется с помощью команды SIGNAL.
RefGuideR4.1 09.01.00 ru
22 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
Выражение, которое можно задать для вычисления значения аналогового выхода, вычисляется
циклически. Однако он не должен быть слишком обширным, чтобы его можно было рассчитать в
рамках времени цикла. Результат выражения должен быть в диапазоне от -1 до +1 или от 0 до +1, в
соответствии с конфигурацией оборудования. Если результат выражения превышает эти пределы,
выход принимает соответствующее конечное значение, и отображается подсказка «Имя предельного
сигнала» до тех пор, пока результат снова не упадет ниже этих пределов. Однако ключевые слова
MINIMUM и MAXIMUM могут использоваться для определения нижних предельных значений вывода.
Необязательное ключевое слово DELAY может использоваться для программирования положительной или отрицательной
задержки. Значение задержки указывается в секундах как действительное число.
Контроллер робота в стандартной комплектации имеет 16 аналоговых выходов ($ANOUT[1] ... $ANOUT[16]).
Аналоговые выходы можно считывать и настраивать.
2.2.2.4 Пример
Аналоговому выходу $ANOUT[5] присвоено символическое имя ANALOG_1. Когда вывод аналогового
значения активирован, произведение переменной FACTOR и системной переменной $TECHVAL[1],
умноженное на значение переменной OFFSET_1, циклически вычисляется и записывается на
аналоговый выход $ANOUT[5]. Аналоговый выход завершается с помощью ANOUT OFF ANALOG_1.
Обратите внимание: чтобы $TECHVAL[i] выдавал нефильтрованный сигнал, соответствующий функции,
зависящей от технологии, $TECH_ANA_FLT_OFF[i] должен быть установлен в значение TRUE.
СИГНАЛ АНАЛОГОВЫЙ_1 $ANOUT[5]
ANOUT ON ANALOG_1 = FACTOR * $TECHVAL[1] + OFFSET_1
...
АНВЫХ ВЫКЛ АНАЛОГОВ_1
Аналоговый выход $ANOUT[1] назначается символическому имени ADHESIVE для управления
дозированием клея пропорционально скорости. Управляющее значение вычисляется из половины
скорости пути (системная переменная $VEL_ACT; чтобы получить неискаженный сигнал,
пропорциональный скорости пути, $VEL_FLT_OFF должен иметь значение TRUE) и постоянной
добавки 0,2. Вывод циклически рассчитанного выходного сигнала задерживается на 0,05 секунды
с помощью дополнительного параметра DELAY. Аналоговый выход завершается с помощью
ANOUT OFF ADHESIVE.
СИГНАЛЬНЫЙ КЛЕЙ $ANOUT[1]
ANOUT НА КЛЕЙКЕ = 0,5*$VEL_ACT + 0,2 ЗАДЕРЖКА = 0,05
...
ANOUT OFF КЛЕЙ
АНИН, СИГНАЛ
RefGuideR4.1 09.01.00 ru
23 из 135
Machine Translated by Google
Справочное руководство
ТОРМОЗ
2.2.3 ТОРМОЗ
2.2.3.1 Краткая информация
Торможение движения робота в процедурах прерывания.
2.2.3.2 Синтаксис
ТОРМОЗ F
Тип аргумента
Пояснение При
Ф
задании параметра F (быстрое торможение) робот будет тормозить с
увеличенным замедлением, как при аварийной остановке. Если с
помощью машинных данных $EMSTOP_PATH для выбранного режима
работы сконфигурирована остановка поддержания пути, то робот
тормозится на пути оптимальным по времени способом. В противном
случае оси тормозятся только синхронно, покидая траекторию.
2.2.3.3 Описание
Оператор BRAKE используется в процедуре прерывания для торможения движения робота, пока он еще активен.
ТОРМОЗ тормозит движение с тем же замедлением, что и при остановке оператором.
Торможение с помощью оператора BRAKE происходит на запрограммированном пути, если аргумент F не
указан.
Процедура прерывания не продолжается до тех пор, пока робот не остановится.
Оператор BRAKE не должен использоваться вне программ прерывания. Несоблюдение этого правила
приведет к прерыванию выполнения программы.
2.2.3.4 Пример
Аварийный останов, не поддерживающий траекторию, выполняется аппаратно во время нанесения клея.
Теперь вы хотели бы использовать программу, чтобы остановить нанесение клея и переместить клеевой
пистолет на траекторию после включения (вход 10).
DEF СТОПСП()
; Процедура прерывания
ТОРМОЗ F
КЛЕЙ = ЛОЖЬ
ПОДОЖДИТЕ $IN[10]
ЛИН $POS_RET
; Переместите пистолет в положение, в котором путь был оставлен
КЛЕЙ = ИСТИНА
КОНЕЦ
ОТКЛОНЕНИЕ ПРЕРЫВАНИЯ, ПРЕРЫВАНИЕ
RefGuideR4.1 09.01.00 ru
24 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ЗАКРЫТЬ
2.2.4 ЗАКРЫТЬ
2.2.4.1 Краткая информация
Каналы ввода/вывода, которые ранее были объявлены с помощью оператора «CHANNEL», могут
быть закрыты с помощью оператора «CCLOSE». «CCLOSE» удаляет все данные, ожидающие чтения.
При отмене выбора и сбросе программы все открытые каналы закрываются.
2.2.4.2 Синтаксис
CCLOSE (дескриптор, состояние)
Аргумент
Тип
INT
Справиться
государственный
Пояснение
Переменная «дескриптор», переданная «COPEN».
STATE_T «CMD_STAT» — тип перечисления, который является первым
компонентом переменной State структурного типа «STATE_T».
Значения компонента «CMD_STAT», релевантные для «CCLOSE»,
следующие:
CMD_OK
Команда успешно выполнена
Команда CMD_ABORT не выполнена успешно
2.2.4.3 Описание
Каналы ввода/вывода, которые ранее были объявлены с помощью оператора «CHANNEL», могут
быть закрыты с помощью оператора «CCLOSE».
Возможные причины «CMD_ABORT»:
Канал
--
уже закрыто;
-- HANDLE недействителен;
-- был открыт другим процессом.
«HANDLE» больше нельзя использовать для операторов канала после успешного вызова этой
функции. Однако значение переменной не изменяется.
«CCLOSE» удаляет все данные, ожидающие чтения. При отмене выбора и сбросе программы все
открытые каналы неявно закрываются.
Полное определение информации о состоянии и режиме для операторов канала можно найти в
главе «КАНАЛ».
2.2.4.4 Пример
Закрытие канала ручкой «РУЧКА». Переменная состояния «SC_T» возвращает информацию о
состоянии.
ЗАКРЫТЬ(РУЧКА,SC_T)
RefGuideR4.1 09.01.00 ru
25 из 135
Machine Translated by Google
Справочное руководство
Полный пример программы можно найти в главе «КАНАЛ».
RefGuideR4.1 09.01.00 ru
26 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
КАНАЛ
2.2.5 КАНАЛ
2.2.5.1 Краткая информация
Оператор «CHANNEL» используется для объявления имен сигналов для входных и выходных каналов.
2.2.5.2 Синтаксис
CHANNEL :Channel_Name: Interface_Name Structure_Variable
Аргумент
Тип
Пояснение
Название канала
Любое символьное
Имя_интерфейса
имя Предопределенная
последовательный
сигнальная переменная
SER_1 интерфейс 1
последовательный интерфейс 2
SER_2 Системно-зависимая
Структура_Переменная
структурная переменная, определяющая протокол.
Оценка не проводится.
2.2.5.3 Описание
Контроллер робота содержит два класса интерфейса:
G простые технологические интерфейсы -- сигналы -- и
г
логические интерфейсы -- каналы.
Все интерфейсы адресуются с использованием символических имен. Определенные имена интерфейсов
(символические имена) логически комбинируются с предопределенными сигнальными переменными
для каналов с помощью объявления CHANNEL.
Предопределенные переменные сигнала для каналов:
G SER_1 и
Г БЭ_2
для последовательных интерфейсов и
G $CMD (например, «RUN....»)
для интерпретатора команд.
Процедура доступа к каналам такая же. Чтобы иметь доступ к каналу, он должен быть объявлен в
объявлении «CHANNEL».
Переменные предопределены в файле «$CUSTOM.DAT» (каталог «....\PROGRAM FILES\KRC\MADA\STEU»)
«:SER_1» и «:SER_2».
Затем канал можно открыть с помощью оператора «COPEN». Оператор «CREAD» может использоваться
для чтения канала, тогда как оператор «CWRITE» используется для записи в канал.
Канал закрывается оператором «CCLOSE».
Информация о состоянии и режиме для операторов канала одинакова.
Информация о состоянии возвращается в переменной предопределенного типа структуры «STATE_T».
«STATE_T» имеет следующее определение:
RefGuideR4.1 09.01.00 ru
27 из 135
Machine Translated by Google
Справочное руководство
STRUC STATE_T CMD_STAT RET1, INT HITS, INT LENGTH
«CMD_STAT» — это предопределенный тип перечисления следующего вида:
ENUM CMD_STAT CMD_OK, CMD_TIMEOUT, DATA_OK, DATA_BLK, DATA_END,
CMD_ABORT, CMD_REJ, CMD_PART, CMD_SYN, FMT_ERR
Режимы, которые можно использовать с операторами «CREAD» и «CWRITE», доступны как
предопределенный тип перечисления:
ENUM MODUS_T SYNC, ASYNC, ABS, COND, SEQ
Значение состояния и режима объясняется в разделах, посвященных отдельным командам.
Используются только перечисленные там параметры.
2.2.5.4 Пример
Назначение имени канала физическому каналу
С заявлением «КАНАЛ»:
Название канала
:SER_2
назначается
физическому каналу
:SER_2
предварительно задан в файле
«$CUSTOM.DAT» (каталог ....\PROGRAM FILES\KRC\MADA\STEU)
КАНАЛ :SER_2 :SER_2 $PSER_2
СИГНАЛ, КОПИРОВАНИЕ, ЗАКРЫТИЕ, CREAD, CWRITE
RefGuideR4.1 09.01.00 ru
28 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ЦИРК
2.2.6 ЦИРК
2.2.6.1 Краткая информация
Программирование кругового движения.
2.2.6.2 Синтаксис
CIRC Auxiliary_Point, Target_Position , CA Circular_Angle
Путь_Приближение
Аргумент
Вспомогательный_
Точка
Тип
Пояснение
ПОС,
Геометрическое выражение, создающее вспомогательную
Э6ПОС,
точку на окружности. Здесь можно использовать только
РАМКА
декартовы координаты.
Система отсчета для декартовой вспомогательной позиции
определяется системной переменной $BASE.
Углы ориентации и спецификации состояния угла S
и T для вспомогательной точки всегда игнорируются.
Если во вспомогательной точке отсутствуют компоненты
конструкции, эти значения берутся без изменений из текущего
положения.
Цель_
Позиция
ПОС,
Геометрическое выражение, определяющее целевое
Э6ПОС,
положение кругового движения. Здесь можно использовать
РАМКА
только декартовы координаты.
Система отсчета для декартовой целевой позиции
определяется системной переменной $BASE.
Спецификации состояния угла S и T для целевой позиции типа
POS или E6POS всегда игнорируются. Если в целевой позиции
отсутствуют компоненты конструкции, эти значения берутся
без изменений из текущей позиции.
!
Вспомогательная точка и целевая точка также могут быть
обучены. Если это нужно сделать позже, знак «!» программируется
вместо вспомогательной точки и целевой позиции.
RefGuideR4.1 09.01.00 ru
29 из 135
Machine Translated by Google
Справочное руководство
Циркуляр_
НАСТОЯЩИЙ
Угол
Арифметическое выражение, позволяющее удлинить
или укоротить дугу в сочетании с ключевым словом CA
(круговой угол). Единица измерения – градусы. Круговой
угол не ограничен. В частности, можно запрограммировать
круговой угол больше 360°.
Если круговой угол положительный, робот движется по
круговому пути в направлении, определяемом начальной
позицией, вспомогательной точкой и целевой позицией. Если он
отрицательный, робот движется по круговой траектории в
обратном направлении.
При указании кругового угла запрограммированное целевое
положение, как правило, не является реальным целевым
положением. Это определяется спецификацией угла.
Приблизительно_
Ключевое слово
Позиционирование
Эта опция позволяет использовать приблизительное
позиционирование. Возможные записи:
C_DIS (значение по
умолчанию)
C_ORI
C_OR
Программирование скорости пути и ускорения TCP:
Скорости
Переменная Тип данных Единица
Функция
$VEL.CP REAL м/с
Скорость движения (скорость
пути)
$VEL.ORI1 REAL $VEL.ORI2
REAL $ACC.CP REAL
Ускорения
$ACC.ORI1 REAL $ACC.ORI2
REAL
/
Скорость поворота
/см/
Ускорение пути
с
Скорость вращения
с0
/
Ускорение поворота
с0
/с0
Вращательное ускорение
Управление ориентацией инструмента с помощью движений CIRC:
Переменная
Эффект
$ORI_TYPE = #CONSTANT Во время движения по траектории ориентация остается постоянной;
запрограммированная ориентация игнорируется для точки назначения
и используемой начальной точки.
$ORI_TYPE = #VAR
Во время движения по траектории ориентация непрерывно
изменяется от начальной ориентации до целевой ориентации.
$CIRC_TYPE = #BASE Управление ориентацией относительно базовой системы
($ БАЗОВАЯ).
$CIRC_TYPE = #PATH Управление ориентацией относительно перемещения с помощью инструмента
рамка на круговой траектории.
RefGuideR4.1 09.01.00 ru
30 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
Системные переменные для определения начала приблизительного позиционирования:
Переменная
Тип данных Единица измерения
Смысл
$APO.CDIS REAL мм Критерий поступательного движения
Ключевое слово
в команде
расстояние C_DIS
Расстояние
$APO.CORI РЕАЛЬНЫЙ $
%
APO.CVEL INT
ориентации
C_ORI
Критерий скорости
C_OR
2.2.6.3 Описание
В случае движений CIRC контроллер рассчитывает круговое движение от текущего положения через
вспомогательную точку до конечной точки, которая, таким образом, однозначно определяется целевой
позицией или круговым углом. Робот перемещается в конечную точку через промежуточные точки,
которые рассчитываются и выполняются с интервалом в один цикл интерполяции.
Как и для движений LIN, для круговых движений также должны быть запрограммированы скорости и
ускорения, а также системные переменные $TOOL и $BASE. Однако скорости и ускорения больше не
относятся к скорости двигателя каждой оси, а относятся к TCP. Системные переменные
G$ВЭЛ
для скорости пути и
G $ACC для ускорения траектории
доступны для их определения.
Контроль ориентации
г
Ориентация, связанная с пространством или ориентация,
связанная с траекторией. В основном вы можете выбирать между управлением ориентацией, связанной с пространством или траекторией.
В случае пространственного управления ориентацией ориентация интерполируется относительно
текущей базовой системы ($BASE); с ориентацией, связанной с траекторией, с другой стороны, она
интерполируется относительно системы координат инструмента (подвижная система координат на
основе инструмента). Тип управления ориентацией определяется с помощью системной переменной $CIRC_TYPE:
-- $CIRC_TYPE=#BASE для управления ориентацией, связанной с пространством, и
-- $CIRC_TYPE=#PATH для управления ориентацией, связанной с траекторией.
г
Переменная и постоянная ориентация
Вы также можете выбирать между переменной и постоянной ориентацией. Если вы выбираете
переменную ориентацию, это означает, что изменение ориентации, происходящее между
начальной позицией и запрограммированной конечной позицией, учитывается. Он выполняется
либо по отношению к пространству, либо по отношению к пути. В случае постоянной
пространственной ориентации ориентация в каждой контрольной точке абсолютно идентична
ориентации в начальной точке. При постоянной ориентации, связанной с траекторией,
относительная ориентация постоянна по отношению к движущейся рамке, основанной на
инструменте. Если для целевой позиции была указана ориентация, она игнорируется при
постоянной ориентации. Системная переменная $ORI_TYPE используется для определения ориентации:
-- $ORI_TYPE=#VAR --
для переменной ориентации и
$ORI_TYPE=#CONSTANT для постоянного управления ориентацией.
Статус угла В
случае движений CIRC статус угла конечной точки всегда такой же, как у начальной точки. По этой
причине спецификации Status S и Turn T для целевой позиции типа данных POS или E6POS всегда
игнорируются.
RefGuideR4.1 09.01.00 ru
31 из 135
Machine Translated by Google
Справочное руководство
Чтобы всегда обеспечивать одинаковую последовательность движения, необходимо сначала однозначно
определить созвездие осей. Следовательно, первой командой движения в программе всегда должна быть
инструкция PTP, определяющая S и T.
Примерное расположение
Точное позиционирование робота по вспомогательным точкам не требуется и занимает много времени. Таким
образом, вы можете начать переход к следующему кадру движения (PTP, LIN или CIRC) на определенном расстоянии
от целевой позиции (так называемое приблизительное позиционирование).
Приблизительное позиционирование программируется в два этапа:
г
Определение приблизительного диапазона позиционирования с помощью системной переменной
$ИЛИ:
-- $APO.CDIS: критерий
поступательного расстояния (активируется C_DIS): приближенный
контур позиционирования начинается на заданном расстоянии (единица измерения [мм]) от целевой
точки.
-- $APO.CORI:
ориентационное расстояние (активируется C_ORI): TCP покидает контур отдельного блока, когда
доминирующий ориентационный угол (поворот или вращение продольной оси инструмента) падает
ниже заданного углового расстояния до целевой точки.
-- Критерий скорости
$APO.CVEL (активируется C_VEL): когда достигается процентное значение $APO.CVEL от скорости,
определенной в $VEL.CP, инициируется контур приблизительного позиционирования. Можно
приблизиться максимум к половине запрограммированного расстояния.
G Программирование команды движения с целевой позицией и режимом приблизительного позиционирования:
-- приблизительное позиционирование CIRC--CIRC или CIRC--LIN В случае
приблизительного позиционирования CIRC--CIRC и CIRC--LIN симметричный приблизительный контур
позиционирования не может быть рассчитан. Примерный путь позиционирования состоит из двух
параболических сегментов, которые также имеют тангенциальный переход между собой и отдельными
блоками. Чтобы определить, где приблизительное позиционирование должно начинаться и
заканчиваться, необходимо запрограммировать одно из ключевых слов C_DIS, C_ORI или C_VEL.
-- CIRC--приблизительное позиционирование PTP
Предпосылкой для приблизительного позиционирования является то, что ни одна из осей робота не
поворачивается более чем на 180° в блоке CIRC и что положение S не изменяется. Начало
приблизительного позиционирования определяется одной из переменных $APO.CDIS, $APO.CORI и
$APO.CVEL, а конец — переменной $APO.CPTP. Одно из ключевых слов C_DIS, C_ORI и C_VEL должно
быть запрограммировано в инструкции CIRC.
RefGuideR4.1 09.01.00 ru
32 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
Для приблизительного позиционирования должен быть включен предварительный прогон компьютера.
Если это не так, появится сообщение «Приближение невозможно». Однако в случае приблизительного
позиционирования CIRC--PTP опережение ограничено до 1!
G Операторы программы, останавливающие предварительный прогон, могут не появляться между
позиционирующие блоки (устранение неполадок с помощью ПРОДОЛЖИТЬ).
G Чем больше скорость и ускорение, тем больше динамические отклонения
от пути будет (следующая ошибка).
G Изменение ускорения значительно меньше влияет на контур траектории, чем изменение скорости.
г
Интерполяция всегда выполняется на пространственной основе в приблизительном диапазоне
позиционирования.
G Исходной ориентацией для приблизительного позиционирования всегда является ориентация, которая
достигается в точке приблизительного позиционирования относительно основания.
г
Если два блока CIRC выполняются с ориентацией, связанной с траекторией, то реориентация в диапазоне
приблизительного позиционирования, тем не менее, связана с пространством.
2.2.6.4 Пример
Круговое движение с обученными вспомогательными и целевыми координатами.
ЦИРК!
Круговое движение с обученными вспомогательными и целевыми координатами; целевая точка
движения определяется круговым углом --35
.
ЦИРК! , ЦА -35
Круговое движение с запрограммированными вспомогательными и целевыми координатами.
ЦИРК {X 5, Y 0, Z 9.2}, {X 12.3, Y 0, Z -5.3, A 9.2, B -5, C 20}
Круговое движение с запрограммированными вспомогательными и целевыми координатами; активировано
приблизительное позиционирование.
ОБЪЕМ {Z 500,X 123,6},POINT1,CA +260 C_ORI
Постоянный контроль ориентации, связанный с траекторией.
$ORI_TYPE=#CONSTANT
$CIRC_TYPE=#PATH CIRC
AUX_POINT,{X 34, Y 11, Z 0}
CIRC--PTP приблизительное позиционирование от точки 2 до точки 3. Приблизительное позиционирование
начинается за 30 мм до точки 2.
$APO.CDIS=30
$APO.CPTP=20
ТОЧКА PTP1
CIRC AUX_POINT,POINT2,AC ANGLE C_DIS
ТОЧКА PTP3
CIRC_REL, PTP, LIN, ПРОДОЛЖИТЬ
RefGuideR4.1 09.01.00 ru
33 из 135
Machine Translated by Google
Справочное руководство
CIRC_REL
2.2.7 ЦИРК_РЕЛ
2.2.7.1 Краткая информация
Круговое движение с относительными координатами.
2.2.7.2 Синтаксис
CIRC_REL Auxiliary_Point,Target_Position
,CA Круговой_угол
Приблизительное_Позиционирование
Аргумент
Тип
Пояснение
Цель_
ПОС,
Геометрическое выражение, указывающее целевое положение
Э6ПОС,
кругового движения. Здесь можно использовать только
РАМКА
декартовы координаты. Их следует интерпретировать
Позиция
относительно текущего положения перед движением CIRC.
Поступательные расстояния выполняются в направлении осей
базовой системы координат $BASE.
Если целевая позиция содержит неопределенные структурные
компоненты, эти значения устанавливаются на 0, т. е.
абсолютные значения остаются неизменными.
Предопределенная переменная $ROTSYS определяет действие
запрограммированных компонентов ориентации.
Спецификации состояния угла S и T для целевой позиции типа
POS или E6POS всегда игнорируются.
RefGuideR4.1 09.01.00 ru
34 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
Вспомогательный_
ПОС,
Геометрическое выражение, создающее вспомогательную
Точка
Э6ПОС,
точку на окружности. Вспомогательная точка указывается в
РАМКА
относительных и декартовых координатах!
Поступательные расстояния выполняются в направлении
осей базовой системы координат $BASE.
Если вспомогательная точка содержит неопределенные
компоненты конструкции, эти значения устанавливаются равными
0, т. е. абсолютные значения остаются неизменными.
Предопределенная переменная $ROTSYS определяет действие
запрограммированных компонентов ориентации.
Углы ориентации и спецификации состояния угла S
и T для вспомогательной точки всегда игнорируются.
Циркуляр_
НАСТОЯЩИЙ
Угол
Арифметическое выражение, позволяющее
удлинить или укоротить дугу в сочетании с ключевым
словом CA (круговой угол). Единица измерения – градусы.
Круговой угол не ограничен. В частности, можно
запрограммировать круговой угол больше 360°.
Если круговой угол положительный, робот движется по
круговому пути в направлении, определяемом начальной
позицией, вспомогательной точкой и целевой позицией. Если
он отрицательный, робот движется по круговой траектории в
обратном направлении.
При указании кругового угла запрограммированное целевое
положение, как правило, не является реальным целевым
положением. Это определяется спецификацией угла.
Приблизительно_
Позиционирование
Ключевое слово
Эта опция позволяет использовать приблизительное
позиционирование. Возможные записи:
C_DIS (значение по
умолчанию)
C_ORI
C_OR
RefGuideR4.1 09.01.00 ru
35 из 135
Machine Translated by Google
Справочное руководство
Программирование скорости пути и ускорения TCP:
Функция
Переменная Тип данных Единица
Скорости
$VEL.CP REAL м/с
Скорость движения (скорость
пути)
$VEL.ORI1 REAL $VEL.ORI2
REAL $ACC.CP REAL
Ускорения
/
Скорость поворота
/см/
Ускорение пути
с
$ACC.ORI1 REAL $ACC.ORI2
REAL
Скорость вращения
с0
/
Ускорение поворота
с0
/с0
Вращательное ускорение
Управление ориентацией инструмента с помощью движений CIRC:
Эффект
Переменная
$ORI_TYPE = #CONSTANT Во время движения по траектории ориентация остается постоянной;
запрограммированная ориентация игнорируется для точки
назначения и используемой начальной точки.
Во время движения по траектории ориентация непрерывно
$ORI_TYPE = #VAR
изменяется от начальной ориентации до целевой ориентации.
$CIRC_TYPE = #BASE Управление ориентацией относительно базовой системы
($ БАЗОВАЯ).
$CIRC_TYPE = #PATH Управление ориентацией относительно движущейся рамки на основе
инструмента по круговой траектории.
Системные переменные для определения начала приблизительного позиционирования:
Переменная
Тип данных Единица измерения
Смысл
Ключевое слово в
команде
$APO.CDIS REAL мм Критерий поступательного движения
расстояние C_DIS
Расстояние
$APO.CORI РЕАЛЬНЫЙ $
APO.CVEL INT
%
ориентации Критерий
C_ORI
скорости
C_OR
2.2.7.3 Описание
Относительная инструкция CIRC в основном работает точно так же, как и абсолютная инструкция CIRC.
Целевые координаты просто определяются относительно текущего положения, а не с помощью
абсолютных пространственных или осевых координат.
Кроме того, здесь применима вся информация, содержащаяся в описании абсолютной инструкции CIRC.
RefGuideR4.1 09.01.00 ru
36 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.2.7.4 Пример
Круговое движение с запрограммированными вспомогательными и целевыми координатами; целевая точка
движения определяется окружностью под углом 500
; активировано приблизительное позиционирование.
CIRC_REL {X 100,Y, 3.2,Z-20},{Y 50},CA 500 C_VEL
LIN--CIRC приблизительное позиционирование из точки 1 в точку 2 и CIRC--CIRC приблизительное
позиционирование из точки 2 в точку 3. Приблизительное позиционирование в точку 1 начинается,
когда скорость снижается до 0,6 м/с (50% от 1,2 м/с). /с). Приблизительное позиционирование точки
2 начинается за 20 мм до точки 2.
$VEL.CP=1.2
$APO.CVEL=50
$APO.CDIS=20 LIN
POINT1 C_VEL CIRC_REL
AUX_POINT,POINT2_REL C_DIS CIRC AUX_POINT,POINT3
CIRC, PTP_REL, LIN_REL, ПРОДОЛЖИТЬ
RefGuideR4.1 09.01.00 ru
37 из 135
Machine Translated by Google
Справочное руководство
ПОДТВЕРЖДАТЬ
2.2.8 ПОДТВЕРЖДЕНИЕ
2.2.8.1 Краткая информация
Подтверждение сообщений подтверждения.
2.2.8.2 Синтаксис
ПОДТВЕРДИТЬ Management_Number
Аргумент
Тип
Пояснение
Управление_
Число
INT
Арифметическое выражение, указывающее номер
управления сообщения, которое должно быть подтверждено.
Указание номера управления 0 означает, что все
сообщения, которые могут быть подтверждены,
подтверждены.
2.2.8.3 Описание
Сообщения подтверждения могут быть подтверждены под управлением программы с помощью
оператора CONFIRM. После того, как сообщение было успешно подтверждено, оно больше не
присутствует.
RefGuideR4.1 09.01.00 ru
38 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.2.8.4 Пример
Подтверждение сообщения подтверждения с номером 27.
ПОДТВЕРДИТЬ 27
Подтверждение сообщения подтверждения с номером M_NUMBER.
ПОДТВЕРДИТЬ M_NUMBER
Подтверждение сообщения подтверждения с номером M_NUMBER+5.
ПОДТВЕРДИТЬ M_NUMBER+5
Подтверждение всех существующих сообщений подтверждения.
ПОДТВЕРДИТЬ 0
После отмены стоп-сигнала (например, аварийного останова) всегда отображается подтверждающее
сообщение. Это должно быть признано в первую очередь, прежде чем вы сможете работать дальше.
Следующая подпрограмма автоматически обнаруживает и квитирует это сообщение при условии, что
выбран правильный режим работы (не ручной режим) и что состояние останова действительно отменено.
Поскольку программа робота не может быть запущена, если активно сообщение подтверждения,
подпрограмма должна находиться в файле Submit.
DEF АВТО_ВЫЙТИ()
ИНТ М
DECL БЕЗ ОСТАНОВКИ СООБЩЕНИЕ
; Предопределенный тип структуры для стоп-сообщений
ЕСЛИ $STOPMESS И $EXT ТО
; Проверить стоп-сообщение и режим работы
M=MBX_REC($STOPMB_ID,MLD); Читать текущее состояние в СООБЩЕНИЕ
ЕСЛИ М==0 ТО
; Убедитесь, что сообщение может быть подтверждено
ЕСЛИ ((MESSAGE.GRO==2) И (MESSAGE.STATE==1)) ТО
ПОДТВЕРДИТЬ MLD.CONFNO; Подтверждение этого сообщения
КОНЕЦ
КОНЕЦ
КОНЕЦ
КОНЕЦ
RefGuideR4.1 09.01.00 ru
39 из 135
Machine Translated by Google
Справочное руководство
ПРОДОЛЖИТЬ
2.2.9 ПРОДОЛЖИТЬ
2.2.9.1 Краткая информация
Предотвращение опережающих остановок.
2.2.9.2 Синтаксис
ПРОДОЛЖИТЬ
2.2.9.3 Описание
Вы можете использовать системную переменную $ADVANCE, чтобы определить, сколько блоков движения
контроллер выполняет заранее. Однако в случае инструкций, относящихся к периферии (например,
инструкций ввода/вывода), опережающее выполнение компьютера всегда останавливается. Если вы не
хотите, чтобы это произошло, оператор CONTINUE должен быть запрограммирован перед соответствующей инструкцией.
Оператор CONTINUE всегда применяется только к следующей строке инструкций, даже если это пустая
строка!
2.2.9.4 Пример
Предотвращение остановки опережающего запуска с помощью $OUT:
ПРОДОЛЖИТЬ
$ ВЫХОД [1] = ИСТИНА
ПРОДОЛЖИТЬ
$OUT[2]=ЛОЖЬ
ANOUT, HALT, WAIT, ПУЛЬС
RefGuideR4.1 09.01.00 ru
40 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ОТКРЫТЬ
2.2.10 ОТКРЫТИЕ
2.2.10.1 Краткая информация
Каналы ввода/вывода, ранее объявленные оператором «CHANNEL», можно открыть с помощью
оператора «COPEN».
2.2.10.2 Синтаксис
COPEN (имя_канала, дескриптор)
Аргумент
Тип
Название канала
Справиться
Объяснение
Имя канала, объявленное в операторе «CHANNEL».
INT
Пользовательская переменная
2.2.10.3 Описание
Каналы ввода/вывода, ранее объявленные оператором CHANNEL, можно открыть с помощью
оператора COPEN, который может быть включен в программы на уровне управления или робота.
Переменная «Handle» идентифицирует соответствующий канал для всех следующих доступов. Если
система отказывается открывать канал, возвращается 0.
Предопределенная переменная «$CMD» доступна для выполнения команды, которая обычно
открыта.
2.2.10.4 Пример
Открытие канала с заявленным именем канала «:SER_2» и дескриптором «HANDLE».
ОТКРЫТЬ(:SER_2,РУЧИТЬ)
Полный пример программы можно найти в главе «КАНАЛ».
RefGuideR4.1 09.01.00 ru
41 из 135
Machine Translated by Google
Справочное руководство
СОЗДАЙТЕ
2.2.11 СОЗДАТЬ
2.2.11.1 Краткая информация
Чтение данных из каналов.
Пример приложения:
Обмен данными (оператор чтения) между KR C1 и устройствомпартнером (ПК, интеллектуальный датчик...).
Оператор «CREAD» используется для чтения данных из открытых каналов. Здесь различают два случая:
G Активное чтение
Программа запрашивает ввод через канал. Драйверы каналов устанавливают запрос на ввод и в
результате возвращают полученные данные оператору CREAD.
G Пассивное чтение
Предопределенная переменная (INT $DATA_SER1 или INT $DATA_SER2), которая увеличивается
драйвером канала после поступления незапрошенных данных, становится доступной для каждого из
каналов «:SER_1» и «:SER_2». Переменные инициализируются 0, когда выполняется теплый перезапуск
или когда канал открывается или закрывается.
Существуют также различия в том, как система ожидает сигнала обратной связи о запросе на чтение:
абсолютно или условно. Абсолютно означает, что система ожидает, пока канал не предоставит
запрошенные данные. В случае условного ожидания система проверяет, доступны ли данные.
2.2.11.2 Синтаксис
CREAD (дескриптор, состояние, режим, время ожидания, смещение, формат,
Var1,..., VarN)
Аргумент
Справиться
Тип
INT
Пояснение
Переменная дескриптора, переданная командой «COPEN».
Примечание: переменная «$CMD» будет отклонена!
RefGuideR4.1 09.01.00 ru
42 из 135
Machine Translated by Google
2
государственный
Справочный раздел (продолжение)
STATE_T «CMD_STAT» — это тип перечисления, который является первым
компонентом переменной «State» типа структуры «STATE_T».
«CMD_STAT» может иметь следующие значения, относящиеся к
«CREAD»:
Команда успешно выполнена;
Нет доступных данных в режиме #COND
CMD_OK
CMD_TIMEOUT Чтение прервано в режиме «ABS» из-за превышения
установленного лимита времени; По каналу
ДАННЫЕ_ОК
получен блок данных. Все данные были
присвоены переменным в соответствии с
описанием формата. Однако не обязательно,
чтобы все переменные были описаны (см. также
переменную состояния «HITS» ниже);
DATA_BLK
Данные были прочитаны, но готовы
дополнительные данные, которые можно
прочитать в режиме «SEQ».
DATA_END
Данные прочитаны. Блок данных полностью
прочитан;
CMD_ABORT Чтение было прервано, например, из-за сообщения
об ошибке из канала или фатальной ошибки
во время считывания данных. Если
спецификация формата и тип переменной не
совпадают, чтение прерывается не CMD_ABORT,
а DATA_BLK; Неправильная спецификация
формата или несоответствующая переменная.
FMT_ERR
Другие компоненты переменной State, важные для
CREAD: Количество правильно прочитанных форматов.
ХИТЫ
ДЛИНА
Длина формата «%s» или «%r», который
встречается первым в формате. Длина всех
следующих форматов «%s» или «%r» не
определяется. При необходимости используйте
несколько операторов «CREAD».
Режим
MODUS_T «MODUS_T» — тип перечисления, который может иметь
следующие значения, относящиеся к «CREAD»: ABS
Активное чтение канала. Функция ожидает, пока канал не
сделает доступным блок данных или пока ожидание
не будет прервано тайм-аутом.
COND Незапрошенное чтение канала.
SEQ Завершение чтения блока данных, начиная с Bytes Offset и
далее, который ранее был запрошен с использованием
«ABS» или «COND» или возвращен в «CWRITE» в качестве
ответа и который еще не был полностью прочитан.
RefGuideR4.1 09.01.00 ru
43 из 135
Machine Translated by Google
Справочное руководство
Тайм-аут
НАСТОЯЩИЙ
Параметр «Timeout» может использоваться для указания времени
в секундах, по истечении которого ожидание блока данных
прерывается. Тайм-аут со значением 0,0 соответствует бесконечному
ожиданию.
Значение более 60 или отрицательные значения отклоняются.
Неточность, связанная с системой, присуща времени ожидания.
INT
Компенсировать
Переменная «Смещение» используется для указания количества
байтов в полученных данных, после которого система должна
начать чтение. Если чтение должно начинаться с начала, для
смещения необходимо установить значение 0 (ноль).
После оператора «CREAD», который не присваивает все
полученные данные программным переменным, Offset указывает
количество символов, которые уже были назначены.
Формат
CHAR[ ] Переменная «Формат» типа «CHAR[ ]» (текстовая строка)
содержит формат текста, который должен быть сгенерирован.
Структура переменной во многом соответствует форматной строке
функции «FPRINTF» языка программирования «C».
Был
Переменные, соответствующие «Формату».
2.2.11.3 Описание
Оператор «CREAD» используется для чтения данных из открытых каналов. Здесь различают два случая:
G Активное чтение
Программа запрашивает ввод через канал. Драйверы каналов устанавливают запрос на ввод и в
результате возвращают полученные данные оператору CREAD.
G Пассивное чтение Другой
партнер записал данные в канал без запроса и ожидает, что данные будут собраны. Предопределенная
переменная доступна для каждого из каналов «SER_1» и «SER_2».
INT $DATA_SER1 или INT
$DATA_SER2, и они
увеличиваются драйвером канала после поступления незапрошенных данных.
Переменные инициализируются 0 (нулем) при запуске системы или при открытии или закрытии канала.
Существуют также различия в том, как система ожидает сигнала обратной связи о запросе на чтение.
Оператор «CREAD» может ждать абсолютно или условно.
-- Абсолютно означает, что система ожидает, пока канал не предоставит данные запрошенного типа.
--
В случае условного ожидания система проверяет, доступны ли данные.
Используя сигнал обратной связи, можно определить, был ли оператор чтения успешным или нет.
Соответствующая процедура определяется параметром «Режим».
Если дескриптор, не полученный из оператора «COPEN» процесса, передается в операторе «CREAD» или
если канал уже был снова закрыт, отображается подтверждающее сообщение «INVALID HANDLE».
RefGuideR4.1 09.01.00 ru
44 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
Задание других режимов или неинициализированных переменных приводит к обнаружению ошибки
в переменной «Статус». Если чтение с помощью «ABS» или «COND» прошло успешно, данные ранее
принятого блока данных перезаписываются, даже если они еще не были полностью считаны.
Возвращаемый текст сегментируется в соответствии со спецификацией формата. Определенные
значения присваиваются соответствующим переменным, при этом система проверяет, является ли
значение допустимым для каждой переменной. Спецификация преобразования для переменной
«Формат» поддерживает форматы, описанные Керниганом/Ритчи (Язык программирования C, Прентис
Холл, 1978), за исключением o, p, n, u и [список].
Характеристики длины «H» и «L» использовать нельзя.
В операторе CREAD можно указать только 9 параметров формата.
Если для форматирования доступно несколько переменных, чтение должно быть продолжено в режиме
#SEQ.
Система не различает прописные и строчные буквы. Чтение прерывается после возникновения первой
ошибки (неподходящий формат или неверное значение).
Также вводится символ преобразования «R», который считывается либо в последовательности байтов
указанной длины (аналогично записи, например, «%2.5r»), либо во всех байтах до конца сообщения.
В отличие от других форматов, чтение отдельного байта должно быть явно указано с использованием
«%1r».
Нет смысла указывать ширину в формате «%c»; поэтому такая спецификация отклоняется.
Последовательность байтов может быть присвоена достаточно большой переменной типа INT, REAL,
CHAR, BOOL, ENUM или одномерным массивам этих типов.
Предполагается, что целочисленные данные представлены в формате «с прямым порядком байтов» и подписаны.
Данные типа Real должны быть представлены в 32-битном представлении в стандартном формате IEEE
754: бит 31 знак, бит 30-23 показатель степени, бит 22-- 0 мантисса.
RefGuideR4.1 09.01.00 ru
45 из 135
Machine Translated by Google
Справочное руководство
Типы и значения проверяются в соответствии со следующей таблицей во время выполнения:
Формат
%d
%f
%я
%и
Переменная
%Икс
%г
(Сигнал)
INT
массив целых чисел
НАСТОЯЩИЙ
НАСТОЯЩИЙ
(3)
%1.
%c %s %1r
(3)
%2r
%2.
%4r
(3)
(4)
(3)
%4.
%р
%.
hWDHi
hWDHi
hWDHi
hWDHi
р
р
р
р
Х -- Х -- Х -- Х -- Х -- Х ---
--
--
ХХ ---
--
--
--
-- Х -- Х -- ХХХ
--
--
--
--
-- Х -- Х --
--
--
--
--
--
-- ХХХ
--
--
-- ИКС --
--
--
-- ХХ
множество
(Сигнал)
БУЛ (1)
BOOL
Х -- Х -- Х -- Х -- Х -- Х ---
--
--
--
-- Х -- Х -- ХХХ
--
-- Х -- Х -- ХХХ
множество
ENUM (2) Х -- Х -- Х -- Х -- Х -- Х -ENUMмассив
СИМВОЛ
--
--
--
--
Х -- Х -- Х ---
--
-- Х -- Х --
СИМВОЛЬНЫЙ массив
Примечания
г
Каждое значение, не равное 0 (нулю), преобразуется в TRUE.
G Система проверяет, является ли значение допустимым значением ENUM. Если это не так, читайте
прерывается. ENUM начинается с 1.
г
Если данных недостаточно для удовлетворения требований формата (например, %2.5r, но
присутствуют только 7 байтов), для этого формата ничего не считывается и оператор
CREAD прерывается. Однако игнорируемые данные по-прежнему готовы для чтения.
г
Читается только столько байтов, сколько может поместиться в переменную. Остальные пока
готовы к прочтению. Если массив на самом деле достаточно велик, но количество доступных
байтов не кратно размеру элемента массива, избыточные байты для следующего формата или
для следующего оператора CREAD оставляются для чтения.
Сообщение, которое не полностью прочитано, может быть прочитано следующими вызовами «CREAD».
Количество фактически прочитанных байтов формата «%s» или «%r», указанных первыми в
строке формата, возвращается в переменной состояния.
Все остальные длины не определены. Поэтому рекомендуется использовать форматы «%s»
и «%r» только один раз в строке формата и повторять вызов «CREAD».
Если формат «%s» или «%r» не входит в число форматов, которые были успешно
прочитаны (см. «HITS» переменной State), значение «LENGTH» не изменяется оператором.
RefGuideR4.1 09.01.00 ru
46 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
В частности, интенсивные по времени операции ввода и вывода могут существенно повлиять на
выполнение программы.
Следующее применимо ко всем операторам:
-- Оператор всегда ждет, пока он полностью не завершится, а затем возвращается в программу.
Это особенно важно для абсолютного оператора CREAD для чтения в текстовые каналы.
-- Независимо от этого, эти операторы могут быть прерваны программами прерывания. Любые
попытки доступа к каналам могут быть прерваны только другими подпрограммами прерывания.
Полные определения информации о состоянии и режиме для команд канала можно найти в
объявлении «CHANNEL». См. Раздел 2.2.5.
Полный пример программы можно найти в главе «КАНАЛ».
RefGuideR4.1 09.01.00 ru
47 из 135
Machine Translated by Google
Справочное руководство
ЗАПИСАТЬ
2.2.12 ПАРАМЕТРЫ ЗАПИСИ
2.2.12.1 Краткая информация
Оператор «CWRITE» позволяет записывать тексты в открытый канал или команды записывать в командный канал.
Пример применения: Обмен данными (оператор записи) между KR C1 и партнерским устройством (ПК,
интеллектуальный датчик...).
2.2.12.2 Синтаксис
CWRITE (дескриптор, состояние, режим, формат, Var1, ..., VarN)
Аргумент
Справиться
Тип
INT
Пояснение
Переменная «Handle», переданная «COPEN», или предопределенная
переменная «$CMD».
государственный
STATE_T «CMD_STAT» — тип перечисления, который является первым компонентом
переменной State структурного типа «STATE_T».
«CMD_STAT» может иметь следующие значения, относящиеся к
CWRITE:
CMD_OK
Команда успешно выполнена; Команда
ДАННЫЕ_ОК
успешно выполнена. Данные готовы для чтения
в качестве ответа;
Команда CMD_ABORT не выполнена успешно, потому что «HANDLE»
недействителен; Только с протоколом Weltronic:
CMD_REJ
CMD_SYN
Ошибка BCC Синтаксическая ошибка в команде.
Синтаксис команды неверен, и поэтому команда
не может быть выполнена. Это также применимо,
когда указан неверный режим.
FMT_ERR
Неверная спецификация формата или
несоответствующая переменная.
Еще одна составляющая переменной состояния, важная для
«CWRITE»: количество правильно записанных форматов.
ХИТЫ
Режим
MODUS_T Переменная типа «MODUS_T» (тип структуры), определяющая способ записи
каналов. Он может принимать следующие значения: Оператор не
выполняется до тех пор, пока данные не будут отправлены на
СИНХРОНИЗАЦИЯ
станцию-партнер.
АСИНХР.
Оператор не выполняется до тех пор, пока
драйвер канала не подтвердит получение данных.
RefGuideR4.1 09.01.00 ru
48 из 135
Machine Translated by Google
2
Формат
СИМВОЛ []
Справочный раздел (продолжение)
Переменная «Формат» содержит формат текста, который
необходимо сгенерировать.
Структура переменной во многом соответствует форматной строке
функции «FPRINTF» языка программирования «C».
Был
Переменные, соответствующие «Формату».
2.2.12.3 Описание
Оператор «CWRITE» позволяет записывать тексты в открытый канал или команды записывать в командный
канал.
Значение «Mode» не имеет отношения к записи в командный канал. Если «Mode» является
неинициализированной переменной в других случаях, оператор прерывается и в переменной «Status»
устанавливается флаг ошибки.
Если «Mode» имеет значение, отличное от SYNC или ASYNC, данные записываются в канал в режиме SYNC.
Спецификация преобразования для переменной Format имеет следующую структуру:
%ФУГА
Здесь применимы следующие определения:
G F Символ форматирования +, --, # и т. д. (необязательно).
G W Ширина, указывает минимальное количество байтов, которые должны быть выведены (необязательно).
G G Точность, ее значение зависит от символа преобразования. '.' или можно использовать '.*' или
'.integer' (необязательно).
G U Допустимые символы преобразования: c, d, e, f, g, i, s, x и %. Система не различает прописные и строчные
буквы. В дополнение к приведенным выше символам преобразования (соответствующим
«FPRINTF» в «C») также доступен символ «r».
Переменная формата «%r» преобразует значение своей переменной не в ASCII, а в двоичную запись. В
формате «%r» система не проверяет, ,инициализирована ли переменная или элемент массива.
Введя ширину («%2r»), вы можете указать, на сколько байтов значение должно быть расширено или сжато.
РЕАЛЬНЫЕ значения являются исключением.
При сжатии значения старшие байты игнорируются; значение расширяется путем добавления нулевых байтов
в конце (формат с прямым порядком байтов).
Если ширина не указана, выводится внутреннее представление: 4 байта для INTEGER, REAL и ENUM, по одному
байту для BOOL и CHAR.
Точность может быть указана только для массивов и интерпретируется как повторяющееся число. Можно
вывести соответствующее количество элементов массива, начиная с первого. Если число повторений больше
массива, элемент массива не записывается и вывод прерывается.
«*»
не может быть указана для точности. Если значение точности опущено, массив записывается целиком.
Переменные «Var1», ..., «VarN» не могут быть структурного типа или массива структурного типа (включая такие
структуры, как «POS»). Типы проверяются в соответствии со следующей таблицей во время выполнения.
Преобразование прерывается, если типы несовместимы или когда система встречает первое значение,
которое не было инициализировано, за исключением случая «%r». Сообщение об ошибке не выводится.
О неправильном формате можно судить по значению HITS (см. ниже).
RefGuideR4.1 09.01.00 ru
49 из 135
Machine Translated by Google
Справочное руководство
Логические значения выводятся как 0 или 1, значения ENUM как числа.
Формат
%d
%f
%я
%и
Переменная
%Икс
(Сигнал)
INT
массив целых чисел
НАСТОЯЩИЙ
НАСТОЯЩИЙ
%c %s %1r %1.
%2р %2.
%г
ХХ ---
hWDHi
hWDHi
hWDHi
hWDHi
р
р
р
р
-- Х -- Х -- Х -- Х ---
--
--
-- Х -- Х -- ХХХ
--
--
--
--
-- Х -- Х --
--
--
--
--
--
--
-- ХХХ
--
-- Х -- Х -- Х -- Х --
--
--
--
-- Х -- Х -- Х -- Х --
--
--
--
--
-- ИКС --
--
--
-- ХХ
-- ИКС ---
%р %.
%4р %4.
--
множество
(Сигнал)
ИКС --
BOOL
--
BOOL
--
-- Х -- Х -- ХХХ
множество
ПЕРЕЧИСЛЕНИЕ
ПЕРЕЧИСЛЕНИЕ
ИКС ---
--
-- Х -- Х -- ХХХ
множество
СИМВОЛ
--
Х -- Х -- Х ---
--
-- Х -- Х --
СИМВОЛЬНЫЙ массив
Оператор «CWRITE», который можно использовать в программах на уровне управления или робота, запускает
предварительную остановку работы.
В частности, интенсивные по времени операции ввода и вывода могут существенно повлиять на
выполнение программы.
Следующее применимо ко всем операторам: Оператор всегда ждет, пока он полностью
не завершится, а затем возвращается в программу. Это особенно важно для абсолютных
операторов CWRITE для командных каналов.
Независимо от этого, эти операторы могут быть прерваны подпрограммами прерывания. Любые
попытки доступа к каналам сами по себе могут быть снова прерваны только другими
подпрограммами прерывания.
Команды, которые могут возвращать сегментированные или несколько сигналов обратной связи, отвергаются
командным каналом.
Полное определение информации о состоянии и режиме для команд канала можно
найти в объявлении «CHANNEL».
RefGuideR4.1 09.01.00 ru
50 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.2.12.4 Пример
Несколько примеров оператора «CWRITE» приведены ниже.
Преобразование значения в десятичный и шестнадцатеричный формат
Преобразование значения «I» в десятичный и шестнадцатеричный формат ASCII:
ИНТ I
я=123
%D,I ;данные передачи 3 байта: 123
%X,I ;данные передачи 2 байта: 7B
Преобразование значения «I» в двоичную запись
ИНТ I
я=123
%R,I ;данные передачи 1 байт:{
(шестн. 7B)
I=123456
%R,I ;данные передачи 3 байта:@â(Hex.40E201)
Запись первых 5 имен массивов R[ ]
Запись значений первых 5 имен массивов «R[ ]». Случайные значения генерируются для элементов
массива, которые не были инициализированы.
НАСТОЯЩИЙ R[10]
%.5R,R[] ; передаваемые данные 20 байт в двоичной записи
Вывод значений всех элементов массива
Следующий оператор используется для вывода значений всех элементов массива:
НАСТОЯЩИЙ R[10]
%R,R[]
Вывод определенных элементов массива
Вывод элементов массива «S», заканчивающихся первым неинициализированным элементом:
СИМВОЛ S[100]
%SS[]
Запись первых 50 элементов массива S
Запись первых 50 элементов массива «S» без учета инициализационной информации:
СИМВОЛ S[100]
%.50R,S[]
Преобразование внутреннего значения переменной ENUM в ASCII
Преобразование внутреннего значения переменной «ENUM» в ASCII. Выводится соответствующее число.
DECL ENUM_TYP E
%D,Е
RefGuideR4.1 09.01.00 ru
51 из 135
Machine Translated by Google
Справочное руководство
Запись двух действительных значений (определенной длины) с именем
НАСТОЯЩАЯ П1,П2
Ж1=3,97
П2=-27,3
CWRITE(..,..,.., "Value1=%+#07.3F Value2=+#06.2F",W1.W2); данные передачи: Value1=+03,970
Value2=-27,30
Полный пример программы можно найти в главе «КАНАЛ».
RefGuideR4.1 09.01.00 ru
52 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ДЕКЛ
2.2.13 ДЕКЛ
2.2.13.1 Краткая информация
Объявление переменных и констант в программах и списках данных.
2.2.13.2 Синтаксис
Объявление переменных в программах:
DECL Data_Type Variable_Name1 , ..., Variable_NameN
Объявление массивов в программах:
DECL Data_Type Array_Name1 [Размер1 , ..., Размер3 ]
, ..., Имя_массиваN [РазмерN1 ,..., РазмерN3 ]
Объявление переменных в списках данных:
DECL GLOBAL Тип_данных Имя_переменной1 , ..., Имя_переменнойN
или с одновременным присвоением значения:
DECL GLOBAL Data_Type Variable_Name = Значение
Объявление массивов в списках данных:
DECL GLOBAL Тип_данных Имя_массива [Размер1 ,..., Размер3 ]
, ..., Имя_массиваN [РазмерN1 ,..., РазмерN3 ]
Объявление и инициализация констант в списках данных:
DECL GLOBAL CONST Data_Type Constant_Name = Значение
Объявление и инициализация константных массивов в списках данных:
DECL GLOBAL CONST Тип_данных Имя_массива [Размер1 ,..., Размер3 ]
Имя_массива[1 , 1, 1 ] = Значение1
...
Имя_массива[Размер1 , Размер2, Размер3 ] = ЗначениеN
RefGuideR4.1 09.01.00 ru
53 из 135
Machine Translated by Google
Справочное руководство
Аргумент
Тип Описание
Тип данных
Простые типы данных:
INT, REAL, CHAR, BOOL
Это могут быть любые типы структур и перечислений,
предопределенные в системных файлах, например:
РАМА, POS, E6POS, AXIS, E6AXIS
Это могут быть самоопределяемые типы данных:
типы структуры (STRUC) или
типы
перечисления (ENUM)
Имя_переменной,
Имя объекта, который необходимо объявить.
имя_массива,
имя_константы,
Имя_Объекта
Размер
INT
Положительная целочисленная константа без знака,
определяющая размер массива. Количество констант определяет
размерность массива. Размерность массива может быть не более
трех.
Стоимость
Индекс_массива
Константа объявленного типа данных.
INT
Константа, которая может принимать значения от 1 до Size. Он
идентифицирует элемент массива, которому присваивается значение.
Глобальные переменные и константы могут быть объявлены только в списках данных.
Чтобы иметь возможность использовать ключевое слово GLOBAL, для глобальной опции в файле «Progress.ini»
в каталоге INIT должно быть установлено значение TRUE: GLOBAL_KEY=TRUE
Чтобы иметь возможность использовать константы, параметр константы CONST_KEY в файле Progress.ini в
каталоге INIT должен иметь значение TRUE: CONST_KEY=TRUE
2.2.13.3 Описание
Все переменные, используемые в программе, должны быть объявлены в объявлении с именем и типом данных.
Для этого доступны простые, сложные и свободно определяемые типы данных.
Объявление начинается с ключевого слова DECL, за которым следует тип данных и список переменных и массивов,
которые должны иметь этот тип данных. При объявлении переменных и массивов предопределенного типа
ключевое слово DECL можно не указывать. Помимо простых типов данных INT, REAL, CHAR и BOOL, среди прочего,
предварительно определены типы данных POS, E6POS, FRAME, AXIS, E6AXIS и т. д. Объявление может быть
полностью опущено для переменных с типом данных POS, так как этот тип данных является стандартным типом
данных и назначается по умолчанию.
Ключевое слово DECL не может быть опущено в объявлении определяемой пользователем структуры или типов
перечисления.
Объявление массивов Как и
в случае с переменными, каждый тип данных может использоваться для массивов. Помимо типа данных и имени
массива, для массива также должны быть объявлены размеры массива и размерность. Размерность определяется
количеством указанных размеров массива. Их может быть максимум три. Размеры массива указываются после
имени массива в квадратных скобках и
RefGuideR4.1 09.01.00 ru
54 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
разделенных запятыми. Каждый размер массива представляет собой целочисленную константу без знака. Оно должно
быть равно или больше 1.
Если массив передается как формальный параметр в вызове подпрограммы или функции, он должен быть объявлен в
определении этой подпрограммы или функции, как и переменная. В этом объявлении должны быть опущены размеры
массива, но не квадратные скобки и запятые, определяющие размерность массива. При вызове подпрограммы или
функции размеры массива определяются соответствующими передаваемыми текущими параметрами.
Объявление переменных с настройкой по умолчанию
Переменные могут быть объявлены в списках данных и одновременно им может быть присвоено начальное значение
по умолчанию. Оператор объявления, содержащий настройку по умолчанию, не может использоваться в разделе
объявлений программ и функций.
В случае переменных с простыми типами данных начальное значение должно быть указано как простая константа.
Для структурных переменных начальное значение является агрегатом.
Оператор объявления для присвоения значения по умолчанию переменной начинается, как и в случае простого
объявления, с ключевого слова DECL, типа данных и имени переменной, которой должно быть присвоено значение по
умолчанию.
За именем переменной следует знак «=» и начальное значение, заданное в виде константы. При объявлении параметра
по умолчанию вы не можете перечислить несколько переменных в операторе объявления. Для каждой переменной,
которой должно быть присвоено значение по умолчанию, требуется отдельный оператор объявления. Ключевое слово
DECL также может быть опущено при назначении настройки по умолчанию.
Тип данных константы справа от знака «=» должен быть совместим с явно указанным типом данных в левой части, но
не обязательно должен быть идентичен ему. Если типы данных совместимы, система автоматически сопоставляет их,
как в случае присвоения значения.
Объявление массивов с настройкой по умолчанию Оператор
объявления, содержащий настройку по умолчанию, не может использоваться в разделе объявлений программ и
функций. Ни одна строка в списке данных не может содержать одновременно объявления и инициализации.
В случае массива с простым типом данных начальные значения должны быть указаны как простые константы. В случае
массивов со структурным типом начальным значением для каждого элемента массива является агрегат.
При объявлении настроек по умолчанию для массивов необходимо написать отдельный оператор для каждого
элемента массива.
Объявление для назначения значения по умолчанию массиву состоит как минимум из двух блоков.
G Первый блок содержит обычное объявление массива с объявлением DECL.
G Второй блок содержит спецификацию элемента массива, за которым следует знак «=» и начальное значение для
этого элемента.
г
Далее могут следовать другие блоки этого типа, в которых настройки по умолчанию назначаются другим
элементам массива.
При назначении параметра по умолчанию более чем одному элементу массива элементы должны быть указаны в
возрастающей последовательности индекса массива. Быстрее всего меняется правый индекс массива.
Тип данных константы справа от знака «=» должен быть совместим с явно объявленным типом данных массива, но не
обязательно должен быть идентичен ему. Если типы данных совместимы, система автоматически сопоставляет их, как
в случае присвоения значения.
Назначение строк символов по умолчанию Если вы
хотите назначить одну и ту же строку символов всем элементам массива типа Character в качестве настройки по
умолчанию, вам не нужно назначать ее каждому элементу массива по отдельности.
Правый индекс массива опущен (т. е. индекс не записывается для одномерного массива), и, таким образом, константа
символьной строки назначается в качестве настройки по умолчанию для всей строки.
RefGuideR4.1 09.01.00 ru
55 из 135
Machine Translated by Google
Справочное руководство
Объявления переменных типа данных «свободно определяемый тип структуры» или «свободно определяемый
тип перечисления»
Здесь должно быть запрограммировано ключевое слово DECL, если следующее имя типа данных не является
предопределенным системным типом данных. Определения типов данных STRUC и ENUM всегда должны
стоять перед объявлением DECL для всех переменных этого типа.
2.2.13.4 Пример:
Декларация без инициализации.
ДЕКЛ ПОЗ P1
; Ключевое слово DECL также можно опустить.
ВНУТРЕННИЙ А1, А2
РЕАЛЬНАЯ УРОВЕНЬ[7],ACC[7],B
ПОЕЗДКА S_PAR_TYPE S_PAR[3]
Объявление массивов с инициализацией (только в списках данных).
ИНТ А [7]
; Массив для 7 целочисленных значений
А[1]=27
; Первому элементу массива присваивается значение 27
А[2]=313
А[6]=11
ТЕКСТ СИМВОЛ1[80]
TEXT1[]="Текст сообщения"
ТЕКСТ СИМВОЛ2[2,80]
TEXT2[1,]="Текст первого сообщения"
TEXT2[2,]="Второй текст сообщения"
Объявление переменных с инициализацией (только в списках данных).
КАДР F1={X 123,4, Y -56,7, Z 89,56}
STRUC, ENUM, DEFDAT
RefGuideR4.1 09.01.00 ru
56 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ЗАЩИЩАТЬ
2.2.14 ОПРЕДЕЛЕНИЕ... КОНЕЦ
2.2.14.1 Краткая информация
Объявление программ и подпрограмм.
2.2.14.2 Синтаксис
GLOBAL DEF Имя_программы (Список_параметров )
DECL Data_Type Parameter_Name1
...
DECL Data_Type Parameter_NameZ
дополнительные объявления
Заявления
КОНЕЦ
Список_параметров = Имя_параметра1 , ...,
Имя_параметраI : IN | OUT Имя_параметраN , ...,
, ...,
Имя_параметраZ : IN | ВНЕ
Аргумент
Название_программы
Тип
Пояснение
Здесь вводится имя определяемой программы. Это
имя объекта и не может быть длиннее 24 символов в
случае глобальных функций. Длина ограничена системой
каталогов контроллера.
Параметр_
Список
Список параметров содержит следующие
характеристики:
Названия параметров.
В случае выходных параметров типа Массив (входные
параметры не могут быть массивами) размерность
массива добавляется к имени массива в следующем
обозначении:
Одномерный массив []
Двумерный массив [,]
[,,] Трехмерный массив
Режим передачи соответствующего параметра:
:IN Входной параметр (вызов по значению)
:OUT Выходной параметр (вызов по ссылке) (значение
по умолчанию)
RefGuideR4.1 09.01.00 ru
57 из 135
Machine Translated by Google
Справочное руководство
Декларация
В разделе объявлений могут появляться только объявления.
Здесь нельзя использовать операторы программы.
Граница между разделом объявления и
раздел оператора определяется первым оператором.
Заявления
В разделе заявлений могут появляться только заявления.
Здесь нельзя использовать объявления. Ты можешь
выйти из локальной подпрограммы с помощью оператора RETURN.
Без оператора RETURN оператор END будет выполняться последним.
2.2.14.3 Описание
По умолчанию первая программа в файле SRC имеет то же имя, что и файл SRC, и распознается глобально, даже
без использования ключевого слова GLOBAL.
При вызове программы существует два вида передачи параметров: передача с входным параметром и передача с
выходным параметром.
Входной параметр (ключевое слово IN)
Здесь передается только значение переменной. Эта прямая передача параметров работает так же, как присвоение
значения по умолчанию переменной в подпрограмме. Значение, которое передается в данный момент, может
быть константой, переменной, вызовом функции или простым или сложным выражением.
Значение не может быть возвращено вызывающему модулю в случае параметра IN (вызов по значению). Он
используется только для передачи значения в подпрограмму.
Если типы данных текущего и формального параметров IN не идентичны, но совместимы, система автоматически
преобразует тип переданного значения. Массивы нельзя передавать как входной параметр (IN).
Выходной параметр (ключевое слово OUT)
Сюда передается имя переменной (вызов по ссылке). Переменная должна иметь значение во время вызова
подпрограммы. Это значение может использоваться в вызываемой подпрограмме.
Параметру типа OUT может быть присвоено (новое) значение в вызываемой подпрограмме.
По этой причине типы данных текущих и формальных параметров должны быть идентичны в случае режима
передачи OUT.
Передача в качестве выходного параметра является настройкой по умолчанию, т.е. OUT указывать не нужно.
Оператор END
Оператор END всегда является последним блоком глобальной или локальной подпрограммы. Последним блоком
подпрограммы, который может быть выполнен, является либо оператор RETURN, либо, если он отсутствует,
оператор END.
RefGuideR4.1 09.01.00 ru
58 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.2.14.4 Пример:
Объявление программы без формальных параметров.
ПРОГРАММА ЗАЩИТЫ()
...
КОНЕЦ
Объявление подпрограммы с формальными параметрами Current и Voltage. Из-за настройки
по умолчанию они являются выходными параметрами.
DEF WELD (ТОК, НАПРЯЖЕНИЕ)
...
КОНЕЦ
Объявление подпрограммы с формальными параметрами Current и Voltage в качестве входных
параметров и RESULT в качестве выходного параметра.
DEF WELD (ТОК: ВХОД, НАПРЯЖЕНИЕ: ВХОД, РЕЗУЛЬТАТ: ВЫХОД)
...
КОНЕЦ
В подпрограмме CALCULATE некоторые переменные подвергаются арифметическим операциям.
После вызова подпрограммы переменные A и B в основной программе имеют следующие
значения: A=11, B=2.
ПРОГРАММА ЗАЩИТЫ()
ЦЕЛОЕ
A,BA=1 B=2
ВЫЧИСЛИТЬ(A,B)
...
КОНЕЦ
DEF ВЫЧИСЛИТЬ(X1:ВЫХОД,X2:ВХОД)
Целое X1, X2
Х1=Х1+10
Х2=Х2+10
КОНЕЦ
КОНЕЦ, ДЕФФКТ, ВОЗВРАТ
RefGuideR4.1 09.01.00 ru
59 из 135
Machine Translated by Google
Справочное руководство
DEFDATE ... ЧЕТНАЯ ДАТА
2.2.15 DEFDATE ... ДАЛЬНЕЙШАЯ ДАТА
2.2.15.1 Краткая информация
Объявление списков данных.
2.2.15.2 Синтаксис
DEFDAT Data_List_Name PUBLIC
Декларации
КОНЕЦ ДАТЫ
Аргумент
Список_Данных_
Имя
Тип
Объяснение
Имя списка данных, который должен быть определен,
вошел сюда. Это имя объекта и может иметь максимальную
длину 24 символа. Длина ограничена системой каталогов
контроллера.
Если имя списка данных идентично имени модуля, то список
данных присваивается этому модулю, в результате чего объявления
списка данных также применяются в модуле с тем же именем. Модуль
и назначенный ему список данных образуют пакет модуля.
ОБЩЕСТВЕННЫЙ
При добавлении этого ключевого слова другие модули и списки данных
также могут получить доступ к этому списку данных, а переменные и т.
д., которые определены здесь, могут использоваться в других пакетах
модулей. Они должны быть объявлены с использованием ключевого
слова GLOBAL.
Декларация
Внешние объявления для подпрограмм и
функциональные модули, которые используются в модуле.
Импорт объявлений для импортируемых переменных.
Объявления для переменных.
сигналов и каналов.
перечисления.
Объявления для имен
Объявления для структур и типов
Объявления переменных в объявлении
раздел списка данных может содержать настройки по
умолчанию.
2.2.15.3 Описание
Помимо предопределенных списков данных, вы можете самостоятельно определить дополнительные списки данных.
Списки данных используются для подготовки объявлений уровня программы и более высокого уровня. Значения
переменных, которые можно сохранить (=настройки по умолчанию), могут быть объявлены в списках данных. В
частности, списки данных могут содержать заученные позиции. Список данных также может существовать как
независимый объект. В данном случае одноименного модуля нет.
RefGuideR4.1 09.01.00 ru
60 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
Оператор ENDDAT всегда является последним блоком каждого списка данных.
Никакие операторы не могут появляться в списках данных, за исключением инициализации переменных
и констант.
2.2.15.4 Пример:
Объявление списка данных.
ДЕФДАТ СВАРКА
...
КОНЕЦ ДАТЫ
Объявление списка данных с глобальной доступностью.
ОБЩЕСТВЕННАЯ ЗАЩИТА
...
КОНЕЦ ДАТЫ
Пакет модулей PROG_1 состоит из модуля и назначенного списка данных PROG_1.
Это опущено в основной программе, так как оно объявлено и инициализировано в списке данных. Если
переменной OTTO в главной программе присваивается новое значение, оно также вносится в список
данных и остается там постоянно.
Таким образом, «новое» значение используется после выключения и повторного включения
контроллера. Это необходимо для онлайн-коррекции и других модификаций программы. Если вы
хотите всегда запускать основную программу с одним и тем же значением, желаемое значение
должно быть присвоено по умолчанию соответствующей переменной в основной программе.
DEFDAT PROG_1
ВНУТРЕННИЙ ОТТО = 0
КОНЕЦ ДАТЫ
DEF PROG_1()
ОСТАНОВИТЬ
ОТТО=25
ОСТАНОВИТЬ
; ОТТО сейчас 0
; Список данных теперь содержит: INT OTTO=25
КОНЕЦ
Глобальные списки данных: переменная OTTO должна быть распознана в PROG_1 и PROG_2. Можно
разрешить внешней основной программе доступ к переменным, определенным в списке данных.
Для этого список данных должен быть определен как PUBLIC, а переменные должны быть объявлены
как GLOBAL.DEFDAT PROG_1 PUBLIC GLOBAL INT OTTO = 0
КОНЕЦ ДАТЫ
DEF PROG_1()
ОСТАНОВИТЬ
ОТТО = 25
КОНЕЦ
DEF PROG_2()
ОТТО=27
КОНЕЦ
RefGuideR4.1 09.01.00 ru
61 из 135
Machine Translated by Google
Справочное руководство
ИМПОРТ
RefGuideR4.1 09.01.00 ru
62 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ДЕФФКТ ... КОНЕЦ
2.2.16 ДЕФФКТ ... КОНЕЦ
2.2.16.1 Краткая информация
Декларация функций.
2.2.16.2 Синтаксис
GLOBAL DEFFCT Тип_данных Имя_функции ( Список_параметров )
DECL Data_Type Parameter_Name1
...
DECL Data_Type Parameter_NameZ
дальнейшие заявления
Заявления
КОНЕЦ
Список_параметров = Имя_параметра1 , ...,
Имя_параметраI : IN | OUT Имя_параметраN , ...,
, ...,
Имя_параметраZ : IN | ВНЕ
Аргумент
ГЛОБАЛЬНЫЙ
Тип
Пояснение
Ключевое слово GLOBAL делает функцию доступной для
всех загруженных программ KRL.
Тип данных
Функция_
Имя
Тип данных функции.
Имя определяемой функции. Это
имя объекта и не может быть длиннее 24
символов. Длина ограничена системой каталогов
контроллера.
Параметр_
Список
Список параметров содержит следующие
характеристики:
Имена параметров.
В
случае выходных параметров типа Массив
(входные параметры не могут быть массивами)
размерность массива добавляется к имени массива
в следующем обозначении:
Одномерный массив []
Двумерный массив [,]
[,,] Трехмерный массив
Режим передачи соответствующего параметра:
:IN Входной параметр (вызов по значению)
:OUT Выходной параметр (вызов по ссылке) (значение
по умолчанию)
RefGuideR4.1 09.01.00 ru
63 из 135
Machine Translated by Google
Справочное руководство
Декларации
В разделе объявлений могут появляться только
объявления. Граница между разделом объявления
и раздел оператора определяется первым оператором.
Заявления
В разделе заявлений могут появляться только
заявления. Возвращаемое значение функции передается
с помощью оператора RETURN.
2.2.16.3 Описание
Функция отправляет возвращаемое значение вызывающему модулю. Вызов функции — это выражение,
поэтому функция может быть присвоена переменной или использована другими арифметическими
операторами. При вызове функции существует два вида передачи параметров: передача с входным
параметром и передача с выходным параметром.
Входной параметр
Значение передается. Прямая передача параметров работает так же, как присвоение значения по умолчанию
переменной в функции.
Значение, которое передается в данный момент, может быть константой, переменной, вызовом функции
или простым или сложным выражением. Значение не может быть возвращено вызывающему модулю в
случае параметра IN (вызов по значению). Он используется только для передачи значения подпрограмме
или функции.
Если типы данных текущего и формального параметров IN не идентичны, но совместимы, система
автоматически преобразует тип переданного значения. Массивы нельзя передавать как входной параметр
(IN).
Выходной параметр
Сюда передается имя переменной (вызов по ссылке). Переменная может иметь значение во время вызова
подпрограммы. Это значение может использоваться в вызываемой подпрограмме.
Параметру типа OUT может быть присвоено (новое) значение в вызываемой функции. Затем это значение
возвращается вызывающему модулю, который может использовать его в дальнейшем. По этой причине
типы данных текущих и формальных параметров должны быть идентичны в случае режима передачи OUT.
Передача в качестве выходного параметра является настройкой по умолчанию, т.е. OUT указывать не нужно.
Оператор ENDFCT
Оператор ENDFCT всегда является последним блоком глобальной или локальной функции. Последним блоком
функции, который может быть выполнен, всегда является оператор RETURN. Если интерпретатор встречает
оператор ENDFCT во время выполнения функции, возникает ошибка времени выполнения.
RefGuideR4.1 09.01.00 ru
64 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.2.16.4 Пример
Объявление функции типа данных INT с именем FCT1 и переданными параметрами
P1 и P2.
ДЕФФКТ INT FCT1(P1,P2)
...
КОНЕЦ
Объявление функции типа данных BOOL с именем WELD и входными параметрами
CURRENT и VOLTAGE.
DEFFCT BOOL WELD (ТОК: ВХОД, НАПРЯЖЕНИЕ: ВХОД)
...
КОНЕЦ
В функции вычисляется разница между двумя переменными и передается в основную
программу.
DEF PROG_1()
EXTFCT INT DELTA(INT:OUT,INT:OUT)
ИНТ А, В, СА
=1
В=25
С=ДЕЛЬТА(А,В)
КОНЕЦ
DEFFCT INT DELTA(X1:ВЫХ,X2:ВЫХ)
Целое X1, X2, X3
Х3=Х2-Х1
ВОЗВРАТ(X3)
КОНЕЦ
ДЕФ, ВОЗВРАТ
RefGuideR4.1 09.01.00 ru
65 из 135
Machine Translated by Google
Справочное руководство
ПРЕДУПРЕЖДЕНИЕ
2.2.17 ПРЕДУПРЕЖДЕНИЕ
2.2.17.1 Краткая информация
Циклическое считывание цифровых входов.
2.2.17.2 Синтаксис
Чтение цифрового входа:
DIGIN ON Значение_сигнала = Коэффициент * Смещение $DIGINX
Прекращение операции чтения:
ДИГИН ВЫКЛ $DIGINX
Аргумент
Тип
Пояснение
Результат операции хранится в Signal_Value.
Signal_Value Реальное
Это может быть переменная или имя сигнала.
Фактор
Настоящий
$DIGINX
Фактор может быть константой, переменной или именем сигнала.
$DIGINX обозначает предопределенное имя цифрового сигнала:
от $DIGIN1 до $DIGIN6.
Компенсировать
Настоящий
Смещение может быть константой, переменной или именем сигнала.
Все переменные, используемые в операторе DIGIN, должны быть объявлены в списках данных.
Доступ к цифровым входам запускает предварительную остановку. Индексы массива оцениваются только один раз в
операторе DIGIN ON. Выражение, полученное после замены индексов массива числовыми значениями, вычисляется
циклически. Цифровые входы не могут использоваться в операторе INTERRUPT.
2.2.17.3 Описание
Контроллер имеет шесть цифровых интерфейсов, которые можно считывать с помощью предопределенных сигнальных
переменных с $DIGIN1 по $DIGIN6. Каждый из цифровых входов может иметь длину 32 бита и связанный стробирующий
выход. Контроллер может интерпретировать эти входные данные со знаком или без него. Цифровые входы настраиваются в
файле «$MACHINE.DAT».
Цифровые входы могут считываться в течение определенного периода времени с помощью DIGIN или могут быть однократно
присвоены переменной типа данных REAL с помощью оператора «=». Одновременно можно использовать два оператора
DIGIN ON. Два оператора DIGIN ON могут считывать один и тот же цифровой вход.
Можно логически комбинировать цифровые входы с другими операторами и назначать их сигнальному значению с помощью
дополнительной арифметики оператора DIGIN. Оператор DIGIN ON также может обращаться к аналоговым входным сигналам
(см. пример).
Циклическое считывание цифровых входов деактивируется с помощью оператора DIGIN OFF, за которым следует имя сигнала.
RefGuideR4.1 09.01.00 ru
66 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.2.17.4 Примеры
Цифровой вход $DIGIN1 назначается двоичным входным сигналам с $IN[1020] по $IN[1026].
Аналоговому входу $ANIN[1] присваивается символическое имя FACTOR. Системной
переменной $TECHIN[1] присваивается результат произведения значения аналогового
входа и цифрового входа, увеличенный на значение переменной OFFSET. Команда DIGIN
OFF деактивирует циклическое считывание цифровых входов.
СИГНАЛ $DIGIN1 $IN[1020] НА $IN[1026]
СИГНАЛЬНЫЙ ФАКТОР $ANIN[1]
ЦИФР НА $TECHIN[1] = КОЭФФИЦИЕНТ * $ЦИФР1 + СМЕЩЕНИЕ
...
ЦИФРОВОЙ ВЫКЛ $DIGIN1
СИГНАЛ, АНИН, АНУТ
RefGuideR4.1 09.01.00 ru
67 из 135
Machine Translated by Google
Справочное руководство
ПЕРЕЧИСЛЕНИЕ
2.2.18 ЭНУМ
2.2.18.1 Краткая информация
Объявление типов данных перечисления.
2.2.18.2 Синтаксис
GLOBAL ENUM Enumeration_Type_Name Enumeration_Constant1
,..., Enumeration_ConstantN
Аргумент
Тип
Пояснение Имя
Перечисление_
Type_Name
нового типа данных перечисления.
Перечисление_
Константы перечисления — это значения, которые
Постоянный
может принимать переменная перечисляемого типа данных.
Имя каждой константы должно быть однозначным в пределах
типа данных.
Ключевое слово GLOBAL в контексте объявления типов данных Enum может использоваться только в списках
данных.
2.2.18.3 Описание
Тип перечисления — это тип данных, состоящий из конечного числа целочисленных констант. Константы
перечисления представляют собой дискретные значения, которые может принимать переменная перечисления.
Переменные с типом перечисления не следуют непрерывной шкале значений, а могут принимать в качестве
значений только те константы, которые перечислены в определении. Константы имеют свободно определяемые
имена и могут быть определены пользователем.
Определение типа перечисления может появиться в разделе объявлений модулей или в списках данных.
Глобальные объявления ENUM разрешены только в списках данных.
Символическое обозначение констант перечисления
Вы можете использовать короткие или полные символические имена.
При использовании коротких символьных имен перед именем константы перечисления вставляется символ
«#», например, #monday.
При использовании полного символического имени константа перечисления идентифицируется по имени типа
перечисления, за которым следует символ «#» и имя константы перечисления, например
WEEK_TYPE#ПОНЕДЕЛЬНИК. В двух случаях необходимо указать полное символьное имя констант перечисления:
1.
Если константа перечисления используется в качестве текущего параметра в подпрограмме или вызове
функции в отдельной команде вне модуля.
2.
Если константа перечисления появляется в левой части сравнения.
Имена типов перечисления должны заканчиваться на _TYPE, чтобы отличать имена переменных от типов
перечисления.
RefGuideR4.1 09.01.00 ru
68 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.2.18.4 Пример
Объявление типа данных перечисления с именем STATE_TYPE и константами S_START,
S_STOP и S_WAIT.
ENUM STATE_TYPE S_STOP, S_START, S_WAIT
Тип данных перечисления с именем SWITCH_TYPE и константами ON и OFF объявлен в следующей
программе. К ним обращаются в программе, используя их короткие символические имена.
ПРОГРАММА ЗАЩИТЫ()
ENUM SWITCH_TYPE ВКЛ., ВЫКЛ.
DECL SWITCH_TYPE КЛЕЙ
ЕСЛИ А>10 ТО
КЛЕЙ=#ВКЛ.
ЕЩЕ
КЛЕЙ=#ВЫКЛ.
КОНЕЦ
КОНЕЦ
ДЕКЛ, СТРУК
RefGuideR4.1 09.01.00 ru
69 из 135
Machine Translated by Google
Справочное руководство
ВЫХОД
2.2.19 ВЫХОД
2.2.19.1 Краткая информация
Безусловный выход из циклов.
2.2.19.2 Синтаксис
ВЫХОД
2.2.19.3 Описание
Оператор EXIT появляется в блоке операторов цикла. Его можно использовать в любом цикле.
Оператор EXIT может использоваться для выхода из текущего цикла. Затем программа продолжается после
оператора ENDLOOP.
2.2.19.4 Пример
Выход из бесконечного цикла.
ПЕТЛЯ
A=(A+1)*0,5/B ЕСЛИ
A>=13,5 ТО
ВЫХОД
КОНЕЦ
КОНЕЦ РАБОТЫ
ЗА, ПОКА, ПОВТОР, ЦИКЛ
RefGuideR4.1 09.01.00 ru
70 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
EXT
2.2.20 ВНЕШНИЙ
2.2.20.1 Краткая информация
Объявление внешних подпрограмм.
2.2.20.2 Синтаксис
EXT Program_Source (Parameter_List )
Список_Параметров = Тип_Данных1 , ...,
Тип_ДанныхI : IN | ВЫХОД Data_TypeN , ...,
, ...,
Data_TypeZ : IN | ВНЕ
Аргумент
Программа_
Тип
Пояснение
Идентифицирует путь и имя используемой подпрограммы.
Источник
Параметр_
Список параметров содержит следующие
Список
характеристики:
Типы данных всех параметров внешней
подпрограммы в определенной последовательности.
В случае параметров массива, размерность
массива с использованием следующих обозначений:
Одномерный массив []
Двумерный массив [,]
[,,] Трехмерный массив
Режим передачи соответствующего параметра:
:В
Входной параметр (вызов по значению)
:ВНЕ
Выходной параметр (вызов по
ссылке) (значение по умолчанию)
Необходимо соблюдать последовательность
списка параметров. Отдельные параметры отделяются
друг от друга запятыми.
Объявления EXT не могут использоваться в подпрограммах.
2.2.20.3 Описание
Объявление EXT используется для идентификации внешних подпрограмм по отношению к программе, в
которой они вызываются. Можно использовать только основную программу (имя программы совпадает с
именем файла SRC), а не другие подпрограммы в том же файле. Другие подпрограммы в файле SRC обычно
можно идентифицировать с помощью ключевого слова GLOBAL.
Объявление EXT должно использоваться для того, чтобы имя и путь вызываемой подпрограммы, а
также используемые параметры были известны компилятору. При указании списка параметров
также четко определяется необходимое пространство для хранения.
RefGuideR4.1 09.01.00 ru
71 из 135
Machine Translated by Google
Справочное руководство
2.2.20.4 Пример
Объявление внешней подпрограммы с именем SP1 в каталоге R1.
ВНЕШНИЙ/R1/SP1()
Объявление внешней подпрограммы с именем SP1 и объявление необходимых
параметров.
EXT /SP1(INT,REAL:IN,CHAR[],INT[,,]:IN)
Объявление внешней подпрограммы с именем SP1 и объявление необходимых
параметров.
ПРОГРАММА ЗАЩИТЫ()
; Основная программа
EXT SP1(INT:OUT,REAL:OUT,BOOL:IN)
ИНТ А
НАСТОЯЩАЯ Б
BOOL С
...
СП1(А,Б,С)
...
КОНЕЦ
DEF SP1 (X1:ВЫХ.,X2:ВЫХ.,X3:ВХ.); Внешняя подпрограмма
ВЫ Х1
НАСТОЯЩИЙ X2
БУЛ X3
...
КОНЕЦ
ОПРЕДЕЛЕНИЕ, ЭКСТФКТ
RefGuideR4.1 09.01.00 ru
72 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ЭКСТФКТ
2.2.21 ЭКСТФКТ
2.2.21.1 Краткая информация
Декларация внешних локальных функций.
2.2.21.2 Синтаксис
EXTFCT Data_Type Program_Source (Parameter_List )
Список_Параметров = Тип_Данных1 , ...,
Тип_ДанныхI : IN | ВЫХОД Data_TypeN , ...,
, ...,
Data_TypeZ : IN | ВНЕ
Аргумент
Тип
Пояснение Тип
Тип данных
данных должен соответствовать объявлению
функции.
Программа_
Определяет путь и имя используемой функции.
Источник
Параметр_
Список параметров содержит следующие
Список
характеристики:
Типы данных всех параметров внешней функции в
заданной последовательности.
В случае параметров массива, размерность
массива с использованием следующих обозначений:
[]
Одномерный массив
Двумерный массив [,]
[,,] Трехмерный массив
Режим передачи соответствующего параметра:
:В
Входной параметр (вызов по значению)
:ВНЕ
Выходной параметр (вызов по
ссылке) (значение по умолчанию)
Необходимо соблюдать последовательность
списка параметров. Отдельные параметры отделяются
друг от друга запятыми.
Объявления EXTFCT нельзя использовать в подпрограммах.
2.2.21.3 Описание
Объявление EXTFCT используется для идентификации внешних функций по отношению к программе, в
которой они вызываются. Можно использовать только основную программу (имя функции совпадает с
именем файла SRC), а не другие функции в том же файле. Другие функции в файле SRC обычно можно
идентифицировать с помощью ключевого слова GLOBAL.
RefGuideR4.1 09.01.00 ru
73 из 135
Machine Translated by Google
Справочное руководство
Объявление EXTFCT должно использоваться для того, чтобы имя и путь вызываемой внешней
функции, а также используемые параметры были известны компилятору. При указании списка
параметров также четко определяется необходимое пространство для хранения.
2.2.21.4 Пример
Объявление внешней функции с именем FCT1 в каталоге R1.
ЭКСТФКТ /R1/FCT1()
ПРОГРАММА ЗАЩИТЫ()
; Основная программа
EXTFCT INT DELTA(INT:OUT,INT:IN)
ИНТ А, В, С
...
А=5
В=20
С=ДЕЛЬТА(А,В)
; Вызов функции
...
КОНЕЦ
Объявление внешней функции с именем FCT1 и параметрами передачи.
EXTFCT /FCT1(INT,REAL:IN,CHAR[],INT[,,]:IN)
Объявление внешней функции с именем FCT1 и параметрами передачи.
EXTFCT FCT1(INT:OUT,REAL:OUT,BOOL:IN)
В функции вычисляется разница между двумя переменными и передается в основную
программу. Значения переменных после вызова функции: A=15, B=20, C=15.
ПРОГРАММА ЗАЩИТЫ()
; Основная программа
EXTFCT INT DELTA(INT:OUT,INT:IN)
ИНТ А, В, С
...
А=5
В=20
С=ДЕЛЬТА(А,В)
; Вызов функции
...
КОНЕЦ
ДЕЛЬТА ВНУТР.ОТКЛ.(X1:ВЫХ.,X2:ВХ.)
; Внешняя функция
Целое X1, X2, X3
Х1=Х2-Х1
Х3 = Х1
ВОЗВРАТ(X3)
КОНЕЦ
RefGuideR4.1 09.01.00 ru
74 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ДЕФФКТ, ВНЕШН.
RefGuideR4.1 09.01.00 ru
75 из 135
Machine Translated by Google
Справочное руководство
ДЛЯ... ДО... КОНЦА
2.2.22 ДЛЯ... ДО... КОНЕЦ
2.2.22.1 Краткая информация
Счетная петля.
2.2.22.2 Синтаксис
FOR Counter = Start TO End STEP Increment
Заявления
КОНЕЦ
Аргумент
Тип
Пояснение
Прилавок
INT
Целочисленная переменная, используемая в качестве счетчика циклов.
Начинать
INT
Арифметическое выражение, указывающее начальное значение
счетчика.
INT
Конец
Арифметическое выражение, определяющее конечное значение
счетчика.
Увеличение
INT
Арифметическое выражение величины, на которую
увеличивается счетчик при каждом выполнении
петля:
Приращение может быть отрицательным
Приращение может быть отличным от
нуля
Приращение может не быть переменной
Если приращение не указано, используется значение по
умолчанию 1.
2.2.22.3 Описание
Определенное количество прогонов можно очень четко запрограммировать с помощью цикла FOR. Проходы
цикла подсчитываются с помощью счетчика.
Условие выполнения FOR следующее:
с положительным приращением: если счетчик больше конечного значения, то цикл завершается.
с отрицательным приращением: если счетчик меньше конечного значения, то цикл завершается.
Условие выполнения проверяется перед каждым запуском цикла. В крайних случаях цикл FOR вообще не
выполняется.
Выражение типа Integer должно быть задано как для начального, так и для конечного значения счетчика.
Выражения оцениваются один раз в начале цикла. Таймер устанавливается на начальное значение и увеличивается
или уменьшается после каждого запуска цикла.
Приращение не может быть нулевым. Если приращение не указано, оно имеет значение по умолчанию 1.
Отрицательные значения также могут использоваться для приращения.
Значение счетчика можно использовать в операторах внутри и вне цикла. Внутри цикла он служит, например, в
качестве актуального индекса для обработки массивов. После выхода из цикла счетчик сохраняет самое последнее
значение.
Для каждого оператора FOR должен быть оператор ENDFOR. После завершения выполнения последнего цикла
программа возобновляется с первой инструкции после ENDFOR. Выполнение цикла может быть прервано досрочно
с помощью оператора EXIT.
RefGuideR4.1 09.01.00 ru
76 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.2.22.4 Пример
Цикл FOR, увеличивающий переменную B на 1 за 10 выполнений.
ДЛЯ А=1 ДО 10
Б=В+1
КОНЕЦ
Цикл FOR, который с шагом в два увеличивает счетчик A после каждого запуска и увеличивает
переменную B на значение счетчика. Если переменная B достигает значения 10, цикл преждевременно
завершается.
ДЛЯ A=1 ДО 15 ШАГ 2
Б=Б+А
ЕСЛИ B==10 ТО
ВЫХОД
КОНЕЦ
КОНЕЦ
ВЫХОД, ПЕРЕКЛЮЧЕНИЕ, ПОВТОР, ПОКА, ЦИКЛ
RefGuideR4.1 09.01.00 ru
77 из 135
Machine Translated by Google
Справочное руководство
ПЕРЕЙТИ К
2.2.23 ПЕРЕЙТИ
2.2.23.1 Краткая информация
Оператор безусловного перехода.
2.2.23.2 Синтаксис
GOTO Маркер
Аргумент
Тип
Маркер
Объяснение
Маркер описывает пункт назначения прыжка
утверждение.
2.2.23.3 Описание
Оператор безусловного перехода GOTO — это инструкция выполнения программы. После обработки
оператора GOTO программа возобновит выполнение в точке, указанной этим оператором.
Пункт назначения должен находиться в той же подпрограмме или функции, что и оператор GOTO. Он
определяется маркером, за которым следует двоеточие.
Переход к месту назначения в операторе IF или в цикле извне или из одного оператора CASE в другой
оператор CASE невозможен.
Программа очень быстро становится запутанной и неструктурированной при использовании GOTO.
Вместо этого лучше использовать оператор ветвления IF или оператор выбора SWITCH.
2.2.23.4 Пример
Безусловный переход на позицию программы MARKER_1.
ПЕРЕЙТИ К МАРКЕРУ_1
Безусловный переход от оператора IF к позиции программы END.
ЕСЛИ Х>100 ТО
ПЕРЕЙТИ В КОНЕЦ
ЕЩЕ
Х=Х+1
КОНЕЦ
А=А*Х
...
КОНЕЦ:
КОНЕЦ
ЕСЛИ, ПЕРЕКЛЮЧАТЬ, ПОВТОРИТЬ, ПОКА, ЦИКЛ
RefGuideR4.1 09.01.00 ru
78 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ОСТАНОВИТЬ
2.2.24 ОСТАНОВ
2.2.24.1 Краткая информация
Прерывает выполнение программы и останавливает обработку.
2.2.24.2 Синтаксис
ОСТАНОВИТЬ
2.2.24.3 Описание
Оператор HALT останавливает выполнение программы. Однако последняя команда перемещения, которая
должна быть выполнена, будет завершена.
Выполнение программы можно возобновить только с помощью клавиши Start. Затем выполняется следующая
инструкция после HALT.
В подпрограмме прерывания выполнение программы останавливается только после полного выполнения
опережающего запуска. С другой стороны, в случае оператора BRAKE выполнение программы немедленно
останавливается.
ПОДОЖДИТЕ, ПОДОЖДИТЕ СЕК, ТОРМОЗ
RefGuideR4.1 09.01.00 ru
79 из 135
Machine Translated by Google
Справочное руководство
ЕСЛИ... ТО... КОНЕЦ
2.2.25 ЕСЛИ... ТО... КОНЕЦ
2.2.25.1 Краткая информация
Выполнение операторов в зависимости от результата логического выражения.
2.2.25.2 Синтаксис
ЕСЛИ Условие ТО
Заявления
ЕЩЕ
Заявления
КОНЕЦ
Аргумент
Тип
Пояснение
Условие BOOL
Логическое выражение, которое может содержать
логическую переменную, вызов логической функции или
логическую операцию с логическим результатом, например, сравнение.
2.2.25.3 Описание
Оператор ветвления IF является инструкцией выполнения программы. В зависимости от условия
выполняется либо первый блок операторов (блок THEN), либо второй блок операторов (блок ELSE). Затем
программа продолжается операторами, следующими за ENDIF.
Количество операторов, содержащихся в блоках операторов, не ограничено. Несколько операторов IF могут
быть вложены друг в друга.
Ключевое слово ELSE и второй блок операторов могут быть опущены. Если условие не выполняется,
программа продолжается с позиции сразу после ENDIF.
Для каждого IF должен быть ENDIF.
2.2.25.4 Пример
Цикл ЕСЛИ без второго блока операторов.
ЕСЛИ А==17 ТО
Б=1
КОНЕЦ
Цикл ЕСЛИ со вторым блоком операторов.
ЕСЛИ $IN[1], ТО
$OUT[17]=ИСТИНА
ЕЩЕ
$OUT[17]=ЛОЖЬ
КОНЕЦ
RefGuideR4.1 09.01.00 ru
80 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ИМПОРТ... ЕСТЬ... .. ...
2.2.26 ИМПОРТ... ЕСТЬ... .. ...
2.2.26.1 Краткая информация
Импорт данных из списков данных.
2.2.26.2 Синтаксис
IMPORT Data_Type Import_Name IS Data_Source..Data_Name
Аргумент
Тип
Тип данных
Пояснение
Данные должны быть импортированы с типом данных, с
которым они объявлены в списке внешних данных.
Import_Name
Импортированным данным можно присвоить имя, отличное
от того, которое они имеют в списке внешних данных.
Источник данных
Источник данных определяет путь и имя списка данных, из
которого данные должны быть импортированы.
Имя_Данных
Имя данных соответствует имени переменной, присвоенной
данным в списке внешних данных.
2.2.26.3 Описание
Оператор IMPORT позволяет получить доступ к спискам внешних данных с атрибутом «PUBLIC». Оператор
IMPORT позволяет импортировать переменные, целые массивы или элементы массивов в ваши собственные
программы или списки данных из внешнего списка данных. Для каждой импортируемой переменной
требуется собственный оператор IMPORT. К переменным, которые уже были импортированы, нельзя
получить доступ с помощью другого оператора IMPORT. Переменные должны быть импортированы из
списков данных, в которых они были изначально созданы.
Данные должны быть импортированы с тем же типом данных, с которым они объявлены в списке внешних
данных. Система не проверяет правильность выбора типов данных, пока не будет выполнена операция
связывания.
Этим данным в вашем собственном списке данных или программе можно присвоить имя, отличное от имени, которое
они имеют во внешнем списке данных.
Каталог и имя списка данных задаются путем. Имя данных соответствует имени, используемому переменной
в списке внешних данных.
Источник данных и имя данных связаны друг с другом двумя точками. Между двумя точками не должно быть
пробелов.
RefGuideR4.1 09.01.00 ru
81 из 135
Machine Translated by Google
Справочное руководство
2.2.26.4 Пример
Импорт значения целочисленной переменной VALUE из списка данных DATA. Имя переменной VALUE
сохраняется.
IMPORT INT VALUE IS /DATA..VALUE
Сокращенная форма
ИМПОРТ ВНУТРЕННЕГО ЗНАЧЕНИЯ
Импорт массива POS POS_EX из списка данных R1/POSITION. Имя переменной должно быть POS 1 в
вашей программе.
ИМПОРТ POS POS1[] IS /R1/POSITION..POS_EX
ДЕФДАТ
RefGuideR4.1 09.01.00 ru
82 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ПРЕРЫВАНИЕ DECL ... КОГДА ... ДЕЛАТЬ
2.2.27 ОТКЛОНЕНИЕ ПРЕРЫВАНИЯ... КОГДА... ДЕЛАТЬ
2.2.27.1 Краткая информация
Объявление прерывания.
2.2.27.2 Синтаксис
GLOBAL INTERRUPT DECL Prio WHEN Событие DO Подпрограмма
Аргумент
Тип
ГЛОБАЛЬНЫЙ
Пояснение
Ключевое слово GLOBAL используется для идентификации
прерываний, в том числе на уровнях выше подпрограммы, в
которой они объявлены. Если прерывание было объявлено в
подпрограмме, оно также распознается в основной программе, в
которой оно вызывается.
Прио
INT
Арифметическое выражение, определяющее приоритет прерывания.
Доступны уровни приоритета от 1 до 128, но диапазон от 40 до 80
зарезервирован для автоматического назначения приоритета
системой.
Прерывание с приоритетом 1 обрабатывается первым.
Событие
BOOL
Логическое выражение, определяющее событие прерывания.
Допускаются:
Булева константа
Булева
переменная
Имя сигнала
Сравнение
Простая
логическая операция: НЕ, ИЛИ, И или
ЭКЗОР
Нельзя использовать следующее:
Компоненты конструкции
Подпрограмма
Имя и параметры подпрограммы (программы обработки
прерывания), которая должна выполняться при возникновении прерывания.
происходит.
Если программа достигла оператора HALT, прерывания все еще обнаруживаются и выполняются (включая
инструкции движения!). После выполнения инструкции программа снова останавливается на операторе HALT.
Объявление прерывания является инструкцией. Поэтому он не должен находиться в разделе объявлений!
При первом объявлении прерывание деактивируется и запрещается.
Переменные среды выполнения не могут быть переданы как параметры процедуры обработки прерывания, за исключением
переменных, объявленных в списке данных.
RefGuideR4.1 09.01.00 ru
83 из 135
Machine Translated by Google
Справочное руководство
Одновременно может быть объявлено до 32 прерываний.
2.2.27.3 Описание
Функция прерывания позволяет пользователю реагировать на событие, которое не происходит синхронно с
выполнением программы, с помощью оператора программы. Такими событиями могут быть аварийный
останов, сообщения об ошибках, входные сигналы и т. д. Возможные причины прерывания и реакция системы
на каждое из них определяются с помощью объявления прерывания. Каждому прерыванию назначается
приоритет, событие и программа обработки прерывания, которая должна быть вызвана. Одновременно может
быть объявлено 32 прерывания. Объявление может быть перезаписано другим в любое время.
Определенное прерывание вызывает реакцию, если выполняются все четыре из следующих условий: 1.
Прерывание должно быть активировано (ПРЕРЫВАНИЕ ВКЛ).
2. Прерывание должно быть разрешено (INTERRUPT ENABLE).
3. Прерывание должно иметь наивысший приоритет.
4. Должно произойти соответствующее событие. Это событие обнаруживается с помощью фронта, когда он
происходит (фронт - срабатывает).
Если одновременно происходит несколько прерываний, то сначала обрабатывается прерывание с наивысшим
приоритетом, а затем прерывания с более низким приоритетом. Прерывание не обнаруживается до уровня,
на котором оно объявлено. На более высоких уровнях программирования, несмотря на активацию, прерывание
не распознается. Другими словами, прерывание, объявленное в подпрограмме, не распознается в основной
программе. Чтобы быть распознанным в основной программе и на всех других уровнях, он должен быть
объявлен глобальным.
После обнаружения события текущее фактическое положение робота сохраняется и вызывается программа
прерывания. Это может быть локальная подпрограмма или внешний модуль подпрограммы.
Как обычно, он завершается оператором RETURN или END. Прерванная программа впоследствии возобновляется
с того места, где произошло прерывание (за исключением RESUME).
Операторы, которые запускают предварительную остановку в обычной программе (например, $OUT[]), не
действуют в подпрограмме прерывания. Процедура прерывания выполняется на командном уровне, т.е. она
выполняется блок за блоком в последовательности.
Прерывания системных переменных $EM_STOP и $STOPMESS также выполняются в случае ошибки, т. е.
операторы INTERRUPT выполняются, несмотря на остановку робота (но инструкции движения игнорируются).
Каждое объявленное и активированное прерывание может быть обнаружено один раз во время остановки
оператора. После перезапуска системы возникшие прерывания выполняются в порядке их приоритета (если
они разрешены). Далее программа продолжается.
При вызове процедуры обработки прерывания параметры передаются точно так же, как и при обычном вызове
подпрограммы.
RefGuideR4.1 09.01.00 ru
84 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.2.27.4 Пример
Определение прерывания с приоритетом 5, которое вызывает подпрограмму STOPSP, если переменная
$STOPMESS имеет значение true.
ПРЕРЫВАНИЕ DECL 5, КОГДА $STOPMESS DO STOPSP()
Определение прерывания с приоритетом 23, которое вызывает подпрограмму SP1 с параметрами
20 и ЗНАЧЕНИЕМ, если $IN[12] истинно.
ОТКЛОНЕНИЕ ПРЕРЫВАНИЯ 23, КОГДА $IN[12]==TRUE DO SP1(20,VALUE)
2 объекта, которые могут быть обнаружены 2-мя датчиками, подключенными к входам 6 и 7, располагаются
на заранее запрограммированной траектории. Робот должен быть последовательно перемещен в эти две
позиции.
ПРОГРАММА ЗАЩИТЫ()
...
; Основная программа
ПРЕРЫВАНИЕ DECL 10, КОГДА $IN[6]==TRUE DO SP1()
ПРЕРЫВАНИЕ DECL 20, КОГДА $IN[7]==TRUE DO SP2()
...
ЛИН START_POINT
ПРЕРЫВАНИЕ ВКЛЮЧЕНО
РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ
ЛИН КОНЕЦ_ТОЧКИ
ПРЕРЫВАНИЕ ВЫКЛ.
ЛИН ТОЧКА1
; Перейти к контрольной точке
ЛИН ТОЧКА2
...
КОНЕЦ
ЗАЩИТА СП1()
; Локальная процедура прерывания 1
POINT1=$POS_INT
КОНЕЦ
ЗАЩИТА СП2()
; Локальная программа прерывания 2
POINT2=$POS_INT
КОНЕЦ
ПРЕРЫВАНИЕ, ТОРМОЗ, ВОЗОБНОВЛЕНИЕ, ТРИГГЕР
RefGuideR4.1 09.01.00 ru
85 из 135
Machine Translated by Google
Справочное руководство
ПРЕРЫВАТЬ
2.2.28 ПРЕРЫВАНИЕ
2.2.28.1 Краткая информация
Активация и деактивация прерываний.
2.2.28.2 Синтаксис
ПРЕРЫВАНИЕ Приоритет действия
Аргумент
Действие
Тип
Объяснение
Ключевое слово
Соответствующее ключевое слово вводится здесь:
ВКЛ .
активировать
ВЫКЛ .
деактивировать
ВКЛЮЧИТЬ , чтобы включить
ОТКЛЮЧИТЬ , чтобы отключить
заявленное прерывание.
приоритет
INT
Арифметическое выражение, указывающее приоритет прерывания,
которое вы хотите активировать или деактивировать.
Если этот параметр опущен, операторы активации и деактивации
прерываний относятся ко всем объявленным прерываниям, а
операторы активизации и деактивации прерываний относятся ко всем
активированным прерываниям.
2.2.28.3 Описание
Этот оператор используется для активации, деактивации, включения и отключения выполнения прерывания.
Если объявленное прерывание активировано, оно циклически отслеживается. При обнаружении события сохраняется
возникновение события и текущее фактическое положение. Деактивированное прерывание не выполняется.
Активированное прерывание может быть разрешено или запрещено. Оператор отключения позволяет защитить части
программы от прерывания. Запрещенное прерывание будет распознано и сохранено, но не выполнено. Как только они
разрешены, возникшие прерывания выполняются в порядке их приоритета. Дальнейшая реакция на событие, которое было
сохранено, отсутствует, если прерывание отключено до срабатывания. Если прерывание происходит несколько раз, когда
оно отключено, оно выполняется только один раз при включении.
Когда происходит прерывание, оно вместе со всеми прерываниями более низкого приоритета блокируется на все время
выполнения. При возврате из процедуры обработки прерывания они снова активируются. Это также относится к текущему
прерыванию, которое немедленно вызывается снова, если, например, сигнал все еще включен после выполнения процедуры
обработки прерывания. Если вы хотите, чтобы прерывание не вызывалось снова, оно должно быть отключено или
деактивировано в процедуре обработки прерывания. Программа прерывания всегда полностью выполняется, независимо
от того, было ли прерывание запрещено или деактивировано.
Само прерывание может быть снова прервано после первого оператора в программе обработки прерывания прерываниями
с более высоким приоритетом. Таким образом, программист может предотвратить это, отключив или деактивировав одно
или все прерывания в первой инструкции. После одного из перерывов
RefGuideR4.1 09.01.00 ru
86 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
более высокий приоритет был завершен, прерванная процедура прерывания возобновляется в точке, в
которой она была прервана.
Одновременно может быть активировано до 16 прерываний. Имейте это в виду, в частности, в случае
глобальной активации прерываний.
RefGuideR4.1 09.01.00 ru
87 из 135
Machine Translated by Google
Справочное руководство
2.2.28.4 Пример
Активируется объявленное прерывание уровня приоритета 2.
ПРЕРЫВАНИЕ НА 2
Заявленное прерывание уровня приоритета 5 деактивируется.
ПРЕРЫВАНИЕ ВЫКЛ. 5
Все объявленные прерывания активированы.
ПРЕРЫВАНИЕ ВКЛЮЧЕНО
Все объявленные прерывания деактивируются.
ПРЕРЫВАНИЕ ВЫКЛ.
Разрешено активированное прерывание уровня приоритета 3.
РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ 3
Активированное прерывание уровня приоритета 2 отключено.
ПРЕРЫВАНИЕ ОТКЛЮЧЕНО 2
Все активированные прерывания разрешены.
РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ
Все активированные прерывания отключены.
ПРЕРЫВАНИЕ ОТКЛЮЧЕНО
Аварийный останов, не поддерживающий траекторию, выполняется аппаратно во время нанесения
клея. Теперь вы хотели бы использовать программу, чтобы остановить нанесение клея и переместить
клеевой пистолет на траекторию после включения (вход 10).
ПРОГРАММА ЗАЩИТЫ()
...
; Основная программа
ПРЕРЫВАНИЕ DECL 1, КОГДА $STOPMESS DO STOPSP()
...
ЛИН ТОЧКА1
ПРЕРЫВАНИЕ ВКЛЮЧЕНО
РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ
ЛИН ТОЧКА2
ПРЕРЫВАНИЕ ВЫКЛ.
...
КОНЕЦ
DEF СТОПСП()
ТОРМОЗ F
; Процедура прерывания
; Быстрое торможение движения
КЛЕЙ = ЛОЖЬ
ПОДОЖДИТЕ $IN[10]
ЛИН $POS_RET
; Позиция, в которой путь был оставлен
КЛЕЙ = ИСТИНА
КОНЕЦ
RefGuideR4.1 09.01.00 ru
88 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ПРЕРЫВАНИЕ DECL, ТОРМОЗ, ВОЗОБНОВЛЕНИЕ, ТРИГГЕР
RefGuideR4.1 09.01.00 ru
89 из 135
Machine Translated by Google
Справочное руководство
ЛИН
2.2.29 ЛИН
2.2.29.1 Краткая информация
Линейное движение.
2.2.29.2 Синтаксис
LIN Target_Position Approximate_Positioning
Аргумент
Тип
Цель_
Позиция
ПОС,
Геометрическое выражение, определяющее целевую точку
Э6ПОС,
линейного движения. Здесь можно использовать только
РАМКА
декартовы координаты.
Пояснение
Система отсчета для декартовой целевой позиции
определяется системной переменной $BASE.
Спецификации состояния угла S и T для целевой позиции типа
POS или E6POS всегда игнорируются.
Если целевая позиция содержит неопределенные
компоненты конструкции, эти значения берутся без
изменений из текущей позиции.
Целевое положение также можно обучить. Если это нужно
сделать позже, знак «!» запрограммировано как целевое
положение.
Приблизительно_
Ключевое слово
Эта опция позволяет использовать приблизительное
позиционирование. Возможные записи:
Позиционирование
C_DIS (значение по
умолчанию)
C_ORI
C_OR
Программирование скорости пути и ускорения TCP:
Переменная
Скорости
Тип данных Единица
измерения $VEL.CP REAL м/с
Функция
Скорость движения (скорость
пути)
$VEL.ORI1 REAL
$VEL.ORI2 REAL $ACC.CP
Ускорения
REAL $ACC.ORI1 REAL
$ACC.ORI2 REAL
/
Скорость поворота
/см/
Ускорение пути
Скорость вращения
с
с0
/
Ускорение поворота
с0
/с0
Вращательное ускорение
RefGuideR4.1 09.01.00 ru
90 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
Управление ориентацией инструмента с помощью движений LIN:
Эффект
Переменная
$ORI_TYPE = #CONSTANT Во время движения по траектории ориентация остается постоянной;
запрограммированная ориентация игнорируется для точки
назначения и используемой начальной точки.
Во время движения по траектории ориентация непрерывно
$ORI_TYPE = #VAR
изменяется от начальной ориентации до целевой
ориентации.
Системные переменные для определения начала приблизительного позиционирования:
Переменная
Тип данных Единица измерения
Смысл
$APO.CDIS REAL мм Критерий поступательного движения
Ключевое слово
в команде
расстояние C_DIS
Расстояние
$APO.CORI РЕАЛЬНЫЙ $
%
APO.CVEL INT
ориентации
C_ORI
Критерий скорости
C_OR
2.2.29.3 Описание
В случае перемещений LIN контроллер вычисляет уравнение прямой линии от текущего положения
до целевого положения, указанного в инструкции LIN. Робот перемещается в конечную точку по
вспомогательным точкам, которые рассчитываются и выполняются с интервалом в один цикл
интерполяции.
Так же, как и для движений PTP, для линейных движений также должны быть запрограммированы
как скорости и ускорения, так и системные переменные $TOOL и $BASE. Однако скорости и ускорения
больше не относятся к скорости двигателя каждой оси, а относятся к TCP. Системные переменные
$ ХОРОШО
$ACC
для скорости пути и
для ускорения пути
доступны для их определения.
Статус угла В
случае перемещений LIN статус угла конечной точки всегда такой же, как и у начальной точки. По
этой причине спецификации S и T для целевой позиции типа данных POS или E6POS всегда
игнорируются.
Чтобы всегда обеспечивать одинаковую последовательность движения, необходимо сначала
однозначно определить созвездие осей. Следовательно, первой командой движения в программе
всегда должна быть инструкция PTP, определяющая S и T.
Ориентация
Вы можете выбирать между постоянной и переменной ориентацией с помощью системной
переменной $ORI_TYPE: G $ORI_TYPE=#VAR Во время линейного движения ориентация равномерно
изменяется от начальной ориентации до целевой ориентации (настройка по умолчанию).
G $ORI_TYPE=#КОНСТАНТ
Ориентация остается постоянной во время линейного движения. Запрограммированная ориентация
конечной точки не учитывается и используется ориентация начальной точки.
RefGuideR4.1 09.01.00 ru
91 из 135
Machine Translated by Google
Справочное руководство
Если угол оси 3 или 5 меняет знак во время движения LIN или CIRC, ориентация может быть сохранена только в
том случае, если некоторые из осей ускоряются и перемещаются с бесконечно большой скоростью. Поскольку
это невозможно, контроллер прервет движение с сообщением об ошибке при превышении предельных значений
двигателя или продолжит движение с уменьшенной скоростью. Реакция может быть определена пользователем.
Системная переменная $CP_VEL_TYPE используется для определения режимов работы, в которых скорость
уменьшается в случае превышения предельных значений оси. Переменная может принимать 3 значения:
#VAR_T1 Снижение скорости только в режиме T1.
#VAR_ALL Снижение скорости во всех режимах.
#CONSTANT Эта функция не активирована.
Пользователь также может определить режим работы, в котором снижение скорости отображается с помощью
сообщения в окне сообщений: $CpVelRedMeld = 1 Снижение скорости отображается только в режимах T1 и T2.
$CpVelRedMeld = 100 Снижение скорости отображается во всех режимах работы.
Примерное расположение
Точное позиционирование робота по вспомогательным точкам не требуется и занимает много времени. Таким
образом, вы можете начать переход к следующему кадру движения (PTP, LIN или CIRC) на определенном расстоянии
от целевой позиции (так называемое приблизительное позиционирование). Можно приблизиться максимум к
половине запрограммированного расстояния.
Приблизительное позиционирование программируется в два этапа:
г
Определение приблизительного диапазона позиционирования с помощью системной переменной
$ИЛИ:
-- Критерий
поступательного расстояния $APO.CDI (активируется C_DIS): приближенный контур позиционирования
начинается на заданном расстоянии (единица измерения [мм]) от целевой точки.
-- Расстояние
ориентации $APO.CORI (активируется C_ORI): TCP покидает контур отдельного блока, когда
доминирующий угол меньше заданного расстояния от целевой точки.
-- Критерий скорости
$APO.CVEL (активируется C_VEL): когда достигается процентное значение $APO.CVEL от скорости,
определенной в $VEL.CP, инициируется контур приблизительного позиционирования.
G Программирование команды движения с целевым положением и режимом приблизительного позиционирования:
приблизительное позиционирование LIN--LIN или LIN--CIRC Для приблизительного позиционирования LIN---
LIN контроллер вычисляет траекторию по параболе.
В случае приблизительного позиционирования LIN--CIRC симметричный контур приблизительного
позиционирования не может быть рассчитан. Примерный путь позиционирования состоит из двух
параболических сегментов, которые также имеют тангенциальный переход между собой и отдельными
блоками. Чтобы определить, где должно начинаться приблизительное позиционирование, необходимо
запрограммировать одно из ключевых слов C_DIS, C_ORI или C_VEL.
-- LIN--PTP примерное расположение
Предпосылкой для приблизительного позиционирования является то, что ни одна из осей робота не
поворачивается более чем на 180
в блоке LIN и что положение S не изменяется. Начало
RefGuideR4.1 09.01.00 ru
92 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
приблизительного позиционирования определяется одной из переменных $APO.CDIS,
$APO.CORI и $APO.CVEL и заканчивается переменной $APO.CPTP. Одно из ключевых
слов C_DIS, C_ORI и C_VEL должно быть запрограммировано в инструкции LIN.
Для приблизительного позиционирования должен быть включен предварительный прогон
компьютера. Если это не так, появится сообщение «Приближение невозможно». Однако в
случае приблизительного позиционирования LIN--PTP опережение ограничено до 1!
Примечания:
Операторы программы, которые останавливают опережение, могут не появляться между
кадрами приблизительного позиционирования (исправить с помощью CONTINUE).
Чем больше скорость и ускорение, тем больше будут динамические
отклонения от траектории (ошибка слежения).
Изменение ускорения оказывает значительно меньшее влияние на контур
траектории, чем изменение скорости.
2.2.29.4 Пример
Линейное движение с обученными координатами цели.
ЛИН!
Линейное движение с запрограммированными координатами цели; активировано приблизительное позиционирование.
ТОЧКА LIN1 C_DIS
Спецификация положения цели в (декартовых) ОСНОВНЫХ координатах.
LIN {X 12,3, Y 100,0, Z -505,3, A 9,2, B -50,5, C 20}
Указание только двух значений для целевой позиции. Старое назначение сохраняется для
остальных значений.
ЛИН {Z 500,X 123,6}
Задание целевого положения с помощью геометрического оператора: производится вычитанием
30,5 миллиметров в направлении X и добавлением 20 миллиметров в направлении Z системы
координат ИНСТРУМЕНТ к точке 1, которая определена в системе координат ОСНОВА.
ТОЧКА LIN1: {X -30,5, Z 20}
Приблизительное позиционирование LIN--PTP от точки 2 до точки 3. Приблизительное позиционирование
начинается за 30 мм до точки 2.
$APO.CDIS=30
$APO.CPTP=20
ТОЧКА PTP1
LIN ТОЧКА 2 C_DIS
ТОЧКА PTP3
LIN_REL, PTP, CIRC, ПРОДОЛЖИТЬ
RefGuideR4.1 09.01.00 ru
93 из 135
Machine Translated by Google
Справочное руководство
LIN_REL
2.2.30 РЕЛ_ЛИН
2.2.30.1 Краткая информация
Линейное движение с относительными координатами.
2.2.30.2 Синтаксис
LIN_REL Target_Position Approximate_Positioning
Объяснение
Тип аргумента
Цель_
ПОС,
Геометрическое выражение, определяющее целевую точку
Позиция
Э6ПОС,
линейного движения. Здесь можно использовать только
РАМКА
декартовы координаты. Они должны интерпретироваться
относительно текущей позиции.
Целевое положение не может быть изучено.
Поступательные расстояния выполняются в направлении
оси базовой системы координат $BASE.
Если целевая позиция содержит неопределенные структурные
компоненты, эти значения устанавливаются на 0, т. е. абсолютные
значения остаются неизменными.
Предопределенная переменная $ROTSYS определяет действие
запрограммированных компонентов ориентации.
Спецификации состояния угла S и T для целевой позиции
типа POS или E6POS всегда игнорируются.
Ключевое слово
Приблизительно_
Позиция
Эта опция позволяет использовать приблизительное позиционирование.
Возможные записи:
C_DIS (значение по
умолчанию)
C_ORI
C_OR
Программирование скорости пути и ускорения TCP:
Переменная
Скорости
Тип данных Единица
измерения $VEL.CP REAL м/с
Функция
Скорость движения (скорость
пути)
$VEL.ORI1 REAL
$VEL.ORI2 REAL $ACC.CP
Ускорения
REAL $ACC.ORI1 REAL
$ACC.ORI2 REAL
/
Скорость поворота
/см/
Ускорение пути
Скорость вращения
с
с0
/
Ускорение поворота
с0
/с0
Вращательное ускорение
RefGuideR4.1 09.01.00 ru
94 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
Управление ориентацией инструмента с помощью движений LIN:
Эффект
Переменная
$ORI_TYPE = #CONSTANT Во время движения по траектории ориентация остается постоянной;
запрограммированная ориентация игнорируется для точки
назначения и используемой начальной точки.
Во время движения по траектории ориентация
непрерывно изменяется от начальной ориентации
до целевой ориентации.
$ORI_TYPE = #VAR
Системные переменные для определения начала приблизительного позиционирования:
Переменная
Тип данных Единица измерения
Смысл
$APO.CDIS REAL мм Критерий поступательного движения
Ключевое
слово в команде
расстояние
C_DIS
Расстояние
$APO.CORI РЕАЛЬНЫЙ $
APO.CVEL INT
%
ориентации Критерий
C_ORI
скорости
C_OR
2.2.30.3 Описание
Относительная инструкция LIN в основном работает точно так же, как и абсолютная инструкция
LIN. Целевые координаты просто определяются относительно текущего положения, а не с
помощью абсолютных пространственных или осевых координат.
Кроме того, здесь применима вся информация, содержащаяся в описании абсолютной инструкции
LIN.
2.2.30.4 Пример
Робот перемещается на 100 мм в направлении X и на 200 мм в отрицательном направлении Z
от текущего положения. Y,A,B,C,S остаются постоянными, а T определяется движением.
LIN_REL {X 100, Z -200}
Приблизительное позиционирование LIN--LIN от точки 1 до точки 2 и приблизительное
позиционирование LIN--CIRC от точки 2 до точки 3. Приблизительное позиционирование до
точки 1 начинается, когда скорость снижается до 0,3 м/с (30 % от 0,9 м). /с). Примерный контур
позиционирования перед точкой 2 начинается за 20 мм до точки.
$VEL.CP=0,9
$APO.CVEL=30
$APO.CDIS=20 LIN
POINT1 C_VEL LIN_REL
POINT2_REL C_DIS CIRC
AUX_POINT,POINT3
LIN, PTP_REL, CIRC_REL, ПРОДОЛЖИТЬ
RefGuideR4.1 09.01.00 ru
95 из 135
Machine Translated by Google
Справочное руководство
БЕГ ... КОНЕЦ БЕГА
2.2.31 РАБОТА… ЗАВЕРШИТЬ РАБОТУ
2.2.31.1 Краткая информация
Программирование бесконечного цикла.
2.2.31.2 Синтаксис
ПЕТЛЯ
Заявления
КОНЕЦ РАБОТЫ
2.2.31.3 Описание
Циклическое выполнение может быть запрограммировано с помощью LOOP. Блок операторов в LOOP
постоянно повторяется. Если вы хотите завершить повторное выполнение блока операторов, вы должны
вызвать оператор EXIT.
2.2.31.4 Пример
Бесконечная петля.
ПЕТЛЯ
А=А+1
ЕСЛИ А==65 ТО
ВЫХОД
КОНЕЦ
КОНЕЦ РАБОТЫ
ВЫХОД, ПЕРЕКЛЮЧЕНИЕ, ДЛЯ, ПОВТОР, ПОКА
RefGuideR4.1 09.01.00 ru
96 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ПТП
2.2.32 ПТП
2.2.32.1 Краткая информация
Движение точка-точка.
2.2.32.2 Синтаксис
PTP Target_Position C_PTP Approximate_Positioning
Аргумент
Тип
Цель_
ПОС, E6POS
Геометрическое выражение, определяющее целевую точку
ОСЬ,
движения. Здесь могут использоваться декартовы и осевые
E6AXIS,
координаты.
Позиция
Пояснение
РАМКА
Система отсчета для декартовой целевой позиции определяется
системной переменной $BASE.
Если целевая позиция содержит неопределенные
компоненты конструкции, эти значения берутся без
изменений из текущей позиции.
Целевое положение также можно обучить. Если это нужно
сделать позже, знак «!» запрограммировано как целевое
положение.
C_PTP
Ключевое слово
Эта опция заставляет робота приблизительно располагаться
в указанной целевой точке движения PTP. Этой
спецификации достаточно для приблизительного
позиционирования PTP--PTP. Опция Approximate_Positioning
также должна быть указана для приблизительного
позиционирования в последующем блоке CP.
Приблизительно_
Позиционирование
Ключевое слово
Эта опция используется для указания критерия
приблизительного позиционирования для ввода
последующего блока движения CP. Его можно использовать
только в сочетании с опцией C_PTP. Возможные записи:
C_DIS
Критерий расстояния (значение по умолчанию)
C_ORI
Критерий ориентации
C_OR
Критерий скорости
2.2.32.3 Описание
Движение «точка-точка» предлагает самый быстрый способ перемещения манипулятора робота из текущего
положения в запрограммированное целевое положение. Оси перемещаются синхронно, т.е. все оси
начинают и заканчивают движение одновременно. Контроллер рассчитывает скорость каждой оси так,
чтобы по крайней мере одна ось двигалась с заданным пределом скорости и ускорения. Максимальная
скорость и максимальное ускорение должны быть запрограммированы отдельно для каждой оси. Системные
переменные
$VEL_AXIS[Нет]
для оси - удельная скорость, а для оси -
$ACC_AXIS[Нет]
удельное ускорение
RefGuideR4.1 09.01.00 ru
97 из 135
Machine Translated by Google
Справочное руководство
доступны. Все значения указаны в процентах от максимума, определенного в машинных данных.
Если эти две системные переменные не были запрограммированы перед первой командой перемещения, при выполнении
программы появится сообщение об ошибке! Это также относится к системным переменным $TOOL и $BASE, если целевое
положение указано в декартовых координатах.
Угловой статус Изза особенностей кинематики робот может достигать одного и того же положения в пространстве с осями, находящимися в
разных угловых положениях. Угловое положение осей можно однозначно определить с помощью спецификаций S (Статус) и
T (Поворот) в геометрическом выражении.
Оба требуют целочисленных входных данных, которые желательно вводить в двоичной системе счисления. Биты имеют
следующее значение:
Положение дел:
----
Бит 1: Положение корня запястья (0 основная область, 1 верхняя область)
Бит 2: Угловое положение для оси 3 (0 отрицательный, 1 положительный)
Бит 3: Угловое положение для оси 5 (0 положительное, 1 отрицательное). Угловое положение в каждом случае
рассматривается относительно фиксированного нулевого положения для каждой оси.
Повернуть:
--
Бит x: угловая позиция для оси x (0 положительный, 1 отрицательный)
Угловое положение в каждом случае рассматривается относительно фиксированного нулевого положения для каждой оси.
Если спецификация для поворота T не указана в движении PTP, робот всегда будет двигаться по кратчайшему пути. Если
спецификация для статуса S опущена, сохраняется статус из предыдущей точки. Чтобы гарантировать, что
последовательность движений всегда идентична, первая инструкция движения в программе всегда должна быть
инструкцией PTP, задающей S и T.
Приблизительное позиционирование
Нет необходимости и затрат времени на точное позиционирование робота по вспомогательным точкам. Таким образом, вы
можете начать переход к следующему кадру движения (PTP, LIN или CIRC) на определенном расстоянии от целевой позиции
(так называемое приблизительное позиционирование). Можно приблизиться максимум к половине запрограммированного
расстояния.
Приблизительное позиционирование программируется в два этапа:
г
Определение диапазона приблизительного позиционирования с помощью системной переменной $APO: -$APO.CPTPAxisial критерий приблизительного позиционирования (активируется C_PTP): приблизительное
позиционирование запускается, когда ведущей осью является $ APO.CPTP Процент максимального угла, определенного
в $APO_DIS_PTP[No] от точки приблизительного позиционирования.
-- Критерий поступательного расстояния $APO.CDIS (активируется C_DIS): контур приблизительного позиционирования
начинается на заданном расстоянии (единица измерения [мм]) от точки приблизительного позиционирования.
-- Расстояние ориентации $APO.CORI (активируется C_ORI): TCP покидает контур отдельного блока, когда
доминирующий угол меньше заданного расстояния от приблизительной точки позиционирования.
-- Критерий скорости $APO.CVEL (активируется C_VEL): когда достигается процентное значение $APO.CVEL от скорости,
определенной в $VEL.CP, инициируется контур приблизительного позиционирования.
RefGuideR4.1 09.01.00 ru
98 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
G Программирование команды движения с целевой позицией и режимом приблизительного
позиционирования:
-- PTP--приблизительное расположение PTP
Запрограммируйте ключевое слово C_PTP в инструкции PTP, содержащей целевое положение,
в котором должен быть приблизительно расположен робот. Приблизительный диапазон
позиционирования определяется путем присвоения значения переменной $APO.CPTP.
Приблизительное позиционирование начинается, когда последняя ось падает ниже заданного
угла к целевому положению. Контур приближенного позиционирования описывает параболу
в пространстве. Это рассчитывается контроллером, программист не имеет никакого влияния на его форму.
Можно запрограммировать только начало (а значит, и конец) приблизительного
позиционирования.
-- PTP--LIN или PTP--CIRC примерное расположение
Предпосылкой для приблизительного позиционирования является то, что ни одна из осей
робота не поворачивается более чем на 180° в блоке LIN или CIRC и что положение S не изменяется.
Начало приблизительного позиционирования определяется переменной $APO.CPTP. Конец
приблизительного позиционирования определяется одной из переменных $APO.CDIS,
$APO.CORI и $APO.CVEL. Теперь запрограммируйте ключевое слово C_PTP в операторе PTP
и одно из ключевых слов C_DIS (значение по умолчанию), C_ORI или C_VEL, чтобы
определить приблизительное позиционирование.
Для приблизительного позиционирования должен быть включен предварительный прогон
компьютера. Если это не так, появится сообщение «Приближение невозможно».
Чем меньше $APO.CPTP, тем меньше будет приблизительный диапазон позиционирования.
Оператор $TOOL не может находиться между двумя приблизительными точками позиционирования.
Чем больше скорость и ускорение, тем больше будут динамические отклонения от
траектории (ошибка слежения).
Изменение ускорения оказывает значительно меньшее влияние на контур траектории, чем
изменение скорости.
Если робот приблизительно позиционируется на точки с использованием $APO.CPTP=0, то
на самом деле робот будет точно позиционироваться на них, но время выполнения тем не
менее сократится (следующую ошибку не нужно устранять).
RefGuideR4.1 09.01.00 ru
99 из 135
Machine Translated by Google
Справочное руководство
2.2.32.4 Пример
Движение PTP с координатами цели еще предстоит обучить.
ПТП!
движение ПТП с запрограммированными координатами цели; активировано приблизительное позиционирование.
PTP ТОЧКА1 C_PTP
Спецификация положения цели в (декартовых) ОСНОВНЫХ координатах.
PTP {X 12.3, Y 100.0, Z 50, A 9.2, B 50, C 0, S 'B010', T 'B1010'}
Спецификация конечной позиции в осевых координатах.
PTP {A1 10, A2 -80,6, A3 -50, A4 0, A5 14,2, A6 0}
Указание только двух значений для целевой позиции. Старое назначение сохраняется для
остальных значений.
ПТП {Z 500,X 123,6}
Задание целевого положения с помощью геометрического оператора: производится
добавлением 100 миллиметров по оси X системы координат ИНСТРУМЕНТ к точке 1, которая
описана в системе координат ОСНОВА.
ТОЧКА PTP1: {X 100}
PTP--LIN аппроксимация из точки 2 в точку 3. Приблизительный контур позиционирования
запускается, когда ведущая ось должна пройти остаточный угол менее 20% от своего
максимального значения, определенного в $APO_DIS_PTP[No] на пути к точке 2.
$APO.CORI=10
$APO.CPTP=20
PTP POINT1 PTP
POINT2 C_PTP C_ORI LIN POINT3
PTP_REL, LIN, CIRC, ПРОДОЛЖИТЬ
RefGuideR4.1 09.01.00 ru
100 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
PTP_REL
2.2.33 PTP_REL
2.2.33.1 Краткая информация
Движение точка-точка с относительными координатами.
2.2.33.2 Синтаксис
PTP_REL Target_Position C_PTP Approximate_Positioning
Аргумент
Цель_
Позиция
Тип
Пояснение
ПОС, E6POS
Геометрическое выражение, определяющее целевую точку
ОСЬ, E6ОСЬ
движения. Здесь могут использоваться декартовы и осевые
координаты. Они должны интерпретироваться относительно
текущей позиции.
Целевое положение не может быть изучено.
Поступательные расстояния выполняются в направлении
осей базовой системы координат $BASE.
Если целевая позиция содержит неопределенные структурные
компоненты, эти значения устанавливаются на 0, т. е.
абсолютные значения остаются неизменными.
Предопределенная переменная $ROTSYS определяет действие
запрограммированных компонентов ориентации.
C_PTP
Ключевое слово
Эта опция заставляет робота приблизительно располагаться
в указанной целевой точке движения PTP. Этой спецификации
достаточно для приблизительного позиционирования PTP--PTP.
Опция Approximate_Positioning также должна быть указана для
приблизительного позиционирования в последующем блоке CP.
Приблизительно_
Позиционирование
Ключевое слово
Если за движением PTP следует движение CP, эту опцию
можно использовать для указания критерия перехода к
движению CP. Его можно использовать только в сочетании с
опцией C_PTP. Возможные записи:
C_DIS
Критерий расстояния (значение по умолчанию)
C_ORI
Критерий ориентации
C_OR
Критерий скорости
2.2.33.3 Описание
Относительная инструкция PTP в основном работает точно так же, как и абсолютная инструкция PTP. Целевые
координаты просто определяются относительно текущего положения, а не с помощью абсолютных
пространственных или осевых координат. Таким образом, вы можете перемещать каждую ось по отдельности
на заданное количество градусов или перемещать робота по заданным пространственным координатам.
RefGuideR4.1 09.01.00 ru
101 из 135
Machine Translated by Google
Справочное руководство
Кроме того, здесь применима вся информация, содержащаяся в описании абсолютной
инструкции PTP.
2.2.33.4 Пример
Ось 2 перемещается на 30 градусов в отрицательном направлении. Ни одна из других осей не перемещается.
PTP_REL {A2-30}
Робот перемещается на 100 мм в направлении X и на 200 мм в отрицательном направлении Z
от текущего положения. Y,A,B,C,S остаются постоянными, а T рассчитывается относительно
кратчайшего пути.
PTP_REL {X 100, Z -200}
PTP--PTP-аппроксимация из точки 1 в точку 2 и PTP--CIRC-аппроксимация из точки 2 в точку 3.
Контур приближенного позиционирования запускается, когда ведущая ось должна покрыть
остаточный угол менее 40% от ее максимального значения, определенного в $APO_DIS_PTP[No]
на пути к точке 1 и точке 2 соответственно.
$APO.CDIS=30
$APO.CPTP=40
PTP POINT1 C_PTP
PTP_REL POINT2_REL C_PTP; C_DIS установлен по умолчанию
CIRC AUX_POINT,POINT3
PTP, LIN_REL, CIRC_REL, ПРОДОЛЖИТЬ
RefGuideR4.1 09.01.00 ru
102 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ПУЛЬС
2.2.34 ИМПУЛЬС
2.2.34.1 Краткая информация
Активация импульсного выхода.
2.2.34.2 Синтаксис
ИМПУЛЬС (Сигнал, Уровень, Длительность_Импульса)
Аргумент
Тип
Пояснение Выход,
Сигнал
BOOL
на который подается импульс. Допускаются:
OUT[No]
Сигнальная переменная
Уровень
BOOL
Логическое выражение:
ИСТИНА представляет положительный импульс на выходе (высокий
уровень)
Пульс_
НАСТОЯЩИЙ
Продолжительность
ЛОЖЬ представляет отрицательный импульс (низкий уровень)
Арифметическое выражение, определяющее длительность импульса.
Диапазон значений от 0,1 до 3,0 секунд. Интервал между импульсами
составляет 0,1 секунды, т.е. длительность импульса соответственно
округляется в большую или меньшую сторону.
2.2.34.3 Описание
Оператор PULSE используется для активации импульсного выхода. Когда оператор программы выполняется, двоичный
выход устанавливается на определенный уровень в течение определенного периода времени. По истечении длительности
импульса выходной сигнал автоматически сбрасывается системой. Выходной сигнал устанавливается и сбрасывается
независимо от предыдущей длины выхода.
Если во время импульса активируется выход с противоположным уровнем, то импульс укорачивается. Если импульсный
выход снова активируется до спадающего фронта, длительность импульса возобновляется. В случае импульсных выходов
с положительным уровнем, бинарный выход устанавливается на ИСТИНА; в случае импульсных выходов с падающим
уровнем двоичный выход устанавливается на ЛОЖЬ.
Поскольку оператор PULSE выполняется внутри контроллера с тактовой частотой с низким приоритетом, создается допуск
в порядке интервала импульса (0,1 секунды). Отклонение по времени составляет около 1% -- 2% в среднем. Отклонение
составляет около 13% для очень коротких импульсов.
RefGuideR4.1 09.01.00 ru
103 из 135
Machine Translated by Google
Справочное руководство
Время импульса за пределами разрешенного интервала определяется только во время выполнения
программы; они вызывают остановку программы.
Максимум 16 импульсных выходов могут быть запрограммированы одновременно.
Запрограммированное время импульса продолжает истекать в случае остановки процесса.
С другой стороны, в случае СБРОСА и ОТМЕНЫ импульс прерывается.
На активный импульс могут влиять прерывания.
Оператор PULSE запускает предварительную остановку выполнения. Только в
операторе TRIGGER он выполняется одновременно с движением робота.
Если программа достигает оператора END во время активного импульса, импульс не
завершается.
Если импульсный выход запрограммирован перед первым кадром движения,
продолжительность импульса также истекает, если снова отпустить кнопку Пуск, а робот
еще не достиг пути (BCO).
Импульс не прекращается в случае аварийного останова, останова оператором или останова по
ошибке!
2.2.34.4 Пример
Если импульсный выход снова активируется до спадающего фронта, длительность импульса возобновляется.
ИМПУЛЬС($OUT[50],ИСТИНА,0,5)
ИМПУЛЬС($OUT[50],ИСТИНА,0,5)
Выход 50
Если выход уже установлен до импульса, он будет сброшен по заднему фронту импульса.
$OUT[50]=ИСТИННЫЙ
ИМПУЛЬС($OUT[50],TRUE,0.5)
Выход 50
Если тот же выход установлен в течение длительности импульса, он будет сброшен по заднему фронту
импульсного выхода.
ИМПУЛЬС($OUT[50],ИСТИНА,0,5)
$OUT[50]=ИСТИНА
Выход 50
Если выход 50 сбрасывается во время длительности импульса, длительность импульса соответственно уменьшается.
RefGuideR4.1 09.01.00 ru
104 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ИМПУЛЬС($OUT[50],ИСТИНА,0,5)
$OUT[50] = ЛОЖЬ Выход
50
Если отрицательный импульс подается на тот же выход в течение длительности положительного импульса,
положительный уровень немедленно устанавливается на Низкий, а затем сбрасывается на Высокий по истечении
длительности импульса.
ИМПУЛЬС($OUT[50],ИСТИНА,0,5)
ИМПУЛЬС($OUT[50],FALSE,0.5)
Выход 50
Если отрицательный импульс подается на выход, для которого установлено значение «Низкий», выход остается «Низким» до
окончания импульса, а затем устанавливается на «Высокий».
$OUT[50] = ЛОЖНЫЙ
ИМПУЛЬС($OUT[50],FALSE,0.5)
Выход 50
Если выход сбрасывается, а затем снова устанавливается во время импульса, выход снова сбрасывается в
конце импульса.
ИМПУЛЬС($OUT[50],ИСТИНА,0,8)
Обработка выходных данных
Выход 50
Если перед оператором END запрограммирован импульс, продолжительность выполнения программы
соответственно увеличивается.
ИМПУЛЬС($OUT[50],ИСТИНА,0,8)
КОНЕЦ заявления
Программа активна
Выход 50
Если выполнение программы сбрасывается или прерывается (RESET/CANCEL) при активном импульсном выходе,
импульс немедленно сбрасывается.
ИМПУЛЬС($OUT[50],ИСТИНА,0,8)
СБРОС или ОТМЕНА
Выход 50
RefGuideR4.1 09.01.00 ru
105 из 135
Machine Translated by Google
Справочное руководство
ПОВТОРЯТЬ... ПОКА
2.2.35 ПОВТОРЯТЬ... ДО
2.2.35.1 Краткая информация
Цикл программы, который всегда выполняется хотя бы один раз (неотклоняющий цикл). Условие завершения
проверяется в конце цикла.
2.2.35.2 Синтаксис
ПОВТОРЕНИЕ
Заявления
ДО Завершения_Условие
Аргумент
Тип
Пояснение
Прекращение
BOOL
Логическое выражение, которое может содержать
_Условие
логическую переменную, вызов логической функции или
логическую операцию с логическим результатом, например, сравнение.
2.2.35.3 Описание
Цикл REPEAT повторяется в зависимости от условия, указанного пользователем.
Это условие завершения проверяется после выполнения каждого цикла. Блок операторов всегда выполняется
хотя бы один раз.
Если логическое условие имеет значение FALSE, блок операторов повторяется. Если логическое условие
имеет значение TRUE, программа возобновляется со следующего оператора после условия.
2.2.35.4 Пример
Цикл выполняется 100 раз. R имеет значение 101 после выполнения последнего цикла.
Р=1
ПОВТОРЕНИЕ
Р=Р+1
ДО R>100
Цикл должен выполняться до тех пор, пока $IN[1] не станет истинным.
ПОВТОРЕНИЕ
Заявления
ДО $IN[1]==ИСТИНА
Цикл выполняется один раз, даже если условие завершения уже выполнено до выполнения цикла.
Условие завершения не проверяется до конца цикла. После выхода из цикла R имеет значение 102.
Р=101
ПОВТОРЕНИЕ
Р=Р+1
ДО R>100
RefGuideR4.1 09.01.00 ru
106 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ВЫХОД, ПЕРЕКЛЮЧАТЕЛЬ, ДЛЯ, ПОКА, ЦИКЛ
RefGuideR4.1 09.01.00 ru
107 из 135
Machine Translated by Google
Справочное руководство
ПРОДОЛЖИТЬ
2.2.36 ВОЗОБНОВЛЕНИЕ
2.2.36.1 Краткая информация
Прерывание подпрограмм и процедур прерывания.
2.2.36.2 Синтаксис
ПРОДОЛЖИТЬ
2.2.36.3 Описание
Оператор RESUME выполняется только во время обработки прерываний. Поэтому его можно
использовать только в модуле, который инициируется прерыванием. Все активные процедуры
прерывания и подпрограммы до уровня, на котором было объявлено текущее прерывание,
прерываются RESUME.
Во время выполнения инструкции RESUME переменная
$ADVANCE должна быть равна 0 (без опережающего запуска). указатель
опережающего запуска не должен находиться на уровне, на котором было объявлено
прерывание; он должен быть как минимум на один уровень ниже этого (иначе
программа останавливается и ее необходимо перезапустить!).
Движение после RESUME не должно быть круговым движением (CIRC), потому что
начальная точка каждый раз разная (разные круги).
Изменение переменной $BASE в подпрограмме прерывания имеет эффект только здесь.
Назначение $ADVANCE не может использоваться в процедуре обработки прерывания.
RefGuideR4.1 09.01.00 ru
108 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.2.36.4 Пример
Робот должен искать деталь по заранее запрограммированному пути. Деталь может быть
обнаружен датчиком, подключенным к входу 15. После обнаружения детали робот не должен
продолжать движение до конечной точки пути, а должен вернуться в положение прерывания, взять
деталь и доставить ее на точка посадки.
ПРОГРАММА ЗАЩИТЫ()
...
; Основная программа
ПРЕРЫВАНИЕ DECL 1, КОГДА $IN[15] DO FOUND()
...
PTP HOMEPOS
...
ПОИСК()
ТОЧКА УСТАНОВКИ LIN
...
; Путь поиска должен быть запрограммирован в подпрограмме!
КОНЕЦ
ОПРЕДЕЛЕНИЕ ПОИСК()
; Подпрограмма для поиска детали
LIN START_POINT C_DIS
LIN TARGET_POINT
$ ДОПОЛНИТЕЛЬНО = 0
; Запрещено опережать
КОНЕЦ
ОПРЕДЕЛЕНИЕ НАЙДЕНО()
ПРЕРЫВАНИЕ ВЫКЛ.
ТОРМОЗ
; Процедура прерывания
; Чтобы процедура прерывания не выполнялась дважды
ЛИН $POS_INT
...
; Возврат к точке, где произошло прерывание
; Забрать часть
ПРОДОЛЖИТЬ
; Прервать путь поиска
КОНЕЦ
ПРЕРЫВАНИЕ DECL, ПРЕРЫВАНИЕ, ТОРМОЗ, ВОЗВРАТ
RefGuideR4.1 09.01.00 ru
109 из 135
Machine Translated by Google
Справочное руководство
ВОЗВРАЩАТЬСЯ
2.2.37 ВОЗВРАТ
2.2.37.1 Краткая информация
Возврат из функций и подпрограмм.
2.2.37.2 Синтаксис
Для функций:
ВОЗВРАТ Function_Value
Для подпрограмм:
ВОЗВРАЩАТЬСЯ
Аргумент
Тип
Объяснение
Функция_
Тип данных
Значение функции – это значение, которое
Стоимость
должен
передается при выходе из функции.
соответствовать функции
тип
2.2.37.3 Описание
Оператор RETURN используется в функциях или подпрограммах. Он завершает выполнение
функции или подпрограммы и заставляет систему вернуться к вызывающему модулю.
Оператор RETURN в функциях
Выполнение функций должно быть завершено оператором RETURN, содержащим определенное
значение функции. Значение функции может быть указано как константа, переменная или
выражение. Тип данных должен соответствовать определенному типу данных функции в
объявлении DEFFCT.
Оператор RETURN в подпрограммах
Оператор RETURN может состоять только из ключевого слова RETURN в разделе операторов
подпрограмм. Он не может содержать выражения. Значения функции не могут быть переданы.
RefGuideR4.1 09.01.00 ru
110 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.2.37.4 Пример
Возврат из функций в вызывающий модуль и передача значения функции 0.
ВОЗВРАТ 0
Возврат из функций в вызывающий модуль и передача значения функции (X*3.1415)/360.
ВОЗВРАТ (X*3.1415)/360
Возврат из функций в вызывающий модуль и передача значения функции X.
ДЕФФКТ ЦЕЛОЕ X ()
ВЫ КУПИЛИ
XRET=10
ВОЗВРАТ
КОНЕЦ
Возврат из подпрограммы в вызывающий модуль.
DEF PROG_2()
Декларации
Заявления
ВОЗВРАЩАТЬСЯ
КОНЕЦ
ДЕФФКТ, ДЕФ
RefGuideR4.1 09.01.00 ru
111 из 135
Machine Translated by Google
Справочное руководство
СИГНАЛ
2.2.38 СИГНАЛ
2.2.38.1 Краткая информация
Объявление имен сигналов для входных и выходных сигналов.
Прерывание передачи состояний системы на периферию.
2.2.38.2 Синтаксис
Объявление имен сигналов для входных и выходных сигналов:
SIGNAL Signal_Name Interface_Name TO Interface_Name
Прерывание передачи состояний системы на периферию:
СИГНАЛ System_Signal_Name ЛОЖЬ
Аргумент
Тип
Пояснение Любое
Signal_Name
символьное имя.
Интерфейс_
Имя
Тип предопределенной сигнальной переменной. Можно выбрать
следующие типы:
$IN[Нет]
бинарные входы
$OUT[Нет]
бинарные выходы
$DIGIN[Нет]
цифровые входы
$ANIN[Нет]
аналоговые входы
$ANOUT[Нет]
аналоговые выходы
No относится к соответствующим входам или выходам контроллера.
Система_
Имя предопределенного выхода двоичной системы, например, $T1.
Signal_Name
ЛОЖНЫЙ
Состояние системы не передается на периферию. Вариант ИСТИНА
недоступен.
2.2.38.3 Описание
Контроллер робота имеет два класса интерфейса:
1.
простые технологические интерфейсы
2.
(сигналы) логические интерфейсы (каналы)
Все интерфейсы адресуются с использованием символических имен. Ваши собственные имена интерфейсов
(символические имена) логически комбинируются с предопределенными сигнальными переменными с помощью
инструкции SIGNAL. Объявления SIGNAL должны появляться в разделе объявлений. Выход может появиться в
нескольких операторах SIGNAL. Количество номеров сигналов соответствует количеству входов или выходов,
которые имеет контроллер. Как видно из предопределенных имен сигнальных переменных, существует еще одно
различие между двоичными и цифровыми входами или выходами. В случае бинарных входов или выходов входы
или выходы адресуются индивидуально. В случае цифровых сигналов несколько входов или выходов объединяются.
Несколько последовательных бинарных входов или выходов также могут быть объединены в один цифровой
вход или выход с помощью инструкции SIGNAL и опции TO. Сигналы, объединенные таким образом, могут быть
опционально адресованы десятичным именем, шестнадцатеричным именем (префикс H) или с помощью
RefGuideR4.1 09.01.00 ru
112 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
имя битовой комбинации (префикс B). Их также можно обрабатывать с помощью логических операторов.
Максимум 32 двоичных сигнала могут быть объединены в один цифровой сигнал. Для объединения
сигналов оба предопределенных имени сигнала должны быть двоичными входами или выходами и
описывать непрерывно возрастающую последовательность своим индексом. Можно объединить до 32 входов или выходов
Контроллер робота может быть оснащен модулем ввода/вывода с 32 входами и 32 выходами. Выходы с 1
по 28 имеют номинальную нагрузку 100 мА, а выходы с 29 по 32 имеют номинальную нагрузку 2 А.
Неиспользуемые выходы можно использовать как флаги. Имя сигнала объявлено внутри как имеющее
тип BOOL в случае двоичных входов или выходов и тип Integer в случае цифровых входов или выходов.
2.2.38.4 Пример
Двоичный выход $OUT[7] назначается символьному имени Switch. Переключатель ($OUT[7])
установлен.
СИГНАЛЬНЫЙ ПЕРЕКЛЮЧАТЕЛЬ $OUT[7]
Переключатель = ИСТИНА
Двоичные входы с $IN[1] по $IN[8] объединяются в один цифровой вход с символическим именем
INWORD.
СИГНАЛ В СЛОВО $IN[1] В $IN[8]
Двоичные выходы с $OUT[1] по $OUT[8] объединяются в один цифровой выход с символическим
именем OUTWORD. Выходы $OUT[3], $OUT[4], $OUT[5] и $OUT[7] задаются цифровым выходом $OUTWORD.
СИГНАЛ OUTWORD $ OUT[1] TO $ OUT[8]
ВНЕШНЕЕ СЛОВО = 'B01011100'
АНИН, АНУТ, ДИГИН, КАНАЛ
RefGuideR4.1 09.01.00 ru
113 из 135
Machine Translated by Google
Справочное руководство
РЕД
2.2.39 ПОСЛЕДОВАТЕЛЬНОСТЬ
2.2.39.1 Краткая информация
Оператор «SREAD» разбивает набор данных (текстовую строку) на составные части.
2.2.39.2 Синтаксис
SREAD (строка1, состояние, смещение, формат, строка2, значение, переменная)
Аргумент
Строка1
Тип
СИМВОЛ [ ]
Пояснение Из
этого массива символов считывается обработанная переданная
строка String2.
государственный
STATE_T Эта структура возвращает информацию о состоянии системы ядра,
которую может оценить пользователь.
STATE.MSG_NO
Если во время выполнения
команды возникает ошибка, эта
переменная содержит номер
ошибки.
CMD_OK
Команда успешно выполнена
CMD_ABORT
Команда не выполнена успешно
FMT_ERR
Неверная спецификация формата
или несоответствующая переменная.
Переменная состояния:
Компенсировать
Формат
INT
ХИТЫ
Количество правильно написанных
форматов
ДЛИНА
Длина формата «%s», который
встречается первым в формате.
Задает позицию, из которой String1 копируется в String2.
CHAR[ ] Переменная «Формат» содержит формат текста
который должен быть сгенерирован.
Строка2
СИМВОЛ [ ]
СТОИМОСТЬ
INT
НАСТОЯЩИЙ
BOOL
Был
String1 копируется в массив символов.
Данные вставляются в эту переменную из String1 в указанном
формате.
Логические значения выводятся как 0 или 1, значения ENUM как
числа.
Переменные, соответствующие «Формату».
2.2.39.3 Описание
Команда «SREAD» используется для обработки строк символов. В отличие от «CREAD», данные считываются
не из открытого канала, а из переменной.
Спецификация преобразования для переменной Format имеет следующую структуру:
RefGuideR4.1 09.01.00 ru
114 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
%ФУГА
Здесь применимы следующие определения:
G F Символ форматирования +, --, # и т. д. (необязательно).
G W Ширина, указывает минимальное количество байтов, которые должны быть выведены (необязательно).
G G Точность, ее значение зависит от символа преобразования.
'.' или можно использовать '.*' или '.integer' (необязательно).
G U Допустимые символы преобразования: d, e, f, g, i, s, x и %.
Система не различает прописные и строчные буквы.
Вводя ширину, вы можете указать, на сколько байтов значение должно быть расширено или
сжато. РЕАЛЬНЫЕ значения являются исключением.
При сжатии значения старшие байты игнорируются; значение расширяется путем добавления
нулевых байтов в конце (формат с прямым порядком байтов).
Если ширина не указана, выводится внутреннее представление: 4 байта для INTEGER, REAL
и ENUM, по одному байту для BOOL и CHAR.
О неправильном формате можно судить по значению HITS (см. ниже).
Типы и значения проверяются в соответствии со следующей таблицей во время выполнения:
Формат
Переменная
(Сигнал)
INT
массив целых чисел
%d
%f
%я
%и
%Икс
%г
ИКС ---
НАСТОЯЩИЙ
ХХ --
НАСТОЯЩИЙ
--
%с %с
(3)
(3)
(3)
(3)
%1.
%2.
%4.
%.
hWDHi
hWDHi
hWDHi
hWDHi
р
р
р
р
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ИКС ---
--
--
--
-- ХХХ
--
--
--
--
--
-- ХХ
множество
(Сигнал)
ИКС --
BOOL
--
БУЛ (1)
-- ИКС ---
--
-- ХХХ
множество
ПЕРЕЧИСЛЕНИЕ (2) X -ПЕРЕЧИСЛЕНИЕ
--
--
-- ИКС ---
-- ХХХ
множество
СИМВОЛ
ИКС ---
-- ИКС --- Х -- Х --
-- ИКС
СИМВОЛЬНЫЙ массив
RefGuideR4.1 09.01.00 ru
115 из 135
Machine Translated by Google
Справочное руководство
Примечания
г
Каждое значение, не равное 0 (нулю), преобразуется в TRUE.
G Система проверяет, является ли значение допустимым значением ENUM. Если это не так, читайте
прерывается. ENUM начинается с 1.
г
Если данных недостаточно для удовлетворения требований формата, для этого формата ничего не
считывается и оператор SREAD прерывается. Однако игнорируемые данные по-прежнему готовы для чтения.
г
Читается только столько байтов, сколько может поместиться в переменную. Остальные пока готовы к
прочтению. Если массив на самом деле достаточно велик, но количество доступных байтов не кратно
размеру элемента массива, избыточные байты для следующего формата или для следующего оператора
SREAD оставляются для чтения.
2.2.39.4 Пример
Чтение содержимого переменной HUGO с использованием символов форматирования
ВНУТРЕННЕЕ СМЕЩЕНИЕ
DECL STATE_T STATE
ДЕКЛ ЧАР ГЮГО[20]
СМЕЩЕНИЕ=0
ГЮГО[]="1234567890"
SREAD(HUGO[],СОСТОЯНИЕ,СМЕЩЕНИЕ,%01d%02d,VAR1,VAR2)
;Результат: VAR1=1; ПЕРЕМЕННАЯ2=23
При чтении с помощью «SREAD» необходимо определить «Формат».
Количество символов для чтения, здесь один,
В нашем примере это соответствует: %01d
поэтому в VAR1 первое число в HUGO, т.е. 1.
%02d
Количество считываемых символов, здесь два,
поэтому в VAR2 второе и третье число в HUGO,
т.е. 2 и 3.
RefGuideR4.1 09.01.00 ru
116 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
СТРУК
2.2.40 СТРУК
2.2.40.1 Краткая информация
Объявление типов данных структуры.
2.2.40.2 Синтаксис
GLOBAL STRUC Структура_Тип_Имя
Data_Type1 Component_Name1 ,..., Component_NameM
,...,
Data_TypeN Component_NameN ,..., Component_NameZ
Аргумент
Тип
Пояснение
Ключевое слово GLOBAL используется для идентификации
ГЛОБАЛЬНЫЙ
структуры, в том числе во внешних программах, и может
использоваться только в списках данных.
Имя типа данных структуры.
Структура_
Type_Name
Тип данных
Любые типы
Компоненты структурного типа могут относиться к любому типу
данных
данных. Типы структур также можно использовать в качестве
компонентов; это называется типом вложенной структуры.
Массивы могут использоваться как компоненты структурного
типа, если они имеют тип CHAR и являются одномерными. В
этом случае предел массива следует за именем массива в
квадратных скобках в определении типа структуры.
Составная часть_
Имя
Отдельные элементы структурного типа называются структурными
компонентами. Тип данных и имя определяются для каждого
компонента структуры. Имя компонента должно быть однозначным
в пределах типа структуры.
Ключевое слово GLOBAL в контексте объявления структурных типов данных может использоваться только в
списках данных.
2.2.40.3 Описание
Структурный тип — это сложный тип данных, состоящий из нескольких одинаковых или разных типов данных.
AXIS, FRAME, POS, E6POS и E6AXIS являются важными предопределенными типами структур. Никакие типы
структур, имеющие эти имена, не могут быть определены пользователем.
Как пользователь, вы можете свободно определять дополнительные типы конструкции с помощью объявления
типа конструкции STRUC. Определение STRUC для свободно определяемого типа структуры должно происходить
до объявления переменных этого типа, как с точки зрения его фактического положения в программе, так и с
точки зрения того, когда он будет достигнут системой. Необходимо соблюдать следующую последовательность:
сначала объявление STRUC, затем объявление переменных.
RefGuideR4.1 09.01.00 ru
117 из 135
Machine Translated by Google
Справочное руководство
Здесь применимо следующее:
G Предопределенный список данных $CONFIG расположен перед списками данных, которые являются локальными для
модуль.
Список данных GA, который является локальным для модуля, располагается перед его модулем.
Доступ к компонентам структурных переменных
Компоненты структурной переменной могут обрабатываться по отдельности. Для их идентификации к
имени переменной добавляется точка, за которой следует название компонентов структуры. Чтобы иметь
возможность доступа к компоненту внутренней структуры в случае гнезда структуры, свяжите имя
переменной, имя компонентов внешней структуры и имя компонентов внутренней структуры вместе,
разделив их точкой. .
Присвоение значений структурным переменным
Значение может быть присвоено отдельно каждому компоненту структурных переменных с помощью
присвоения значения. Чтобы присвоить значения нескольким или всем компонентам структурной
переменной одновременно, используйте агрегат. При объявлении структурной переменной в списке
данных вы можете присвоить ей агрегат в качестве начального значения по умолчанию.
Имена типов структур должны заканчиваться на _TYPE, чтобы отличить их от переменных.
имена.
2.2.40.4 Пример
Объявление структурного типа W1_TYPE с компонентами CURRENT, VOLTAGE и FEED типа данных REAL.
STRUC W1_TYPE ДЕЙСТВИТЕЛЬНЫЙ ТОК, НАПРЯЖЕНИЕ, ПОДАЧА
Объявление типа структуры W2_TYPE с компонентом CURRENT типа данных REAL и компонентом
массива TEXT[80] типа данных CHAR.
STRUC W2_TYPE REAL CURRENT, CHAR TEXT[80]
В подпрограмму для дуговой сварки необходимо передать в переменной следующую информацию:
Скорость провода
Характеристика
С/без дуги в моделировании
ПРОГРАММА ЗАЩИТЫ()
STRUC W_TYPE REAL WIRE,INT CHARAC,BOOL ARC DECL W_TYPE
W_PARAMETER W_PARAMETER.WIRE=10.2; Индивидуальная
инициализация компонентов W_PARAMETER.CHARAC=60 W_PARAMETER.ARC=TRUE
W_UP(W_PARAMETER); Вызов подпрограммы сварки...
; Инициализация с помощью агрегата
W_PARAMETER={WIRE 7.3, CHARAC 50, ARC TRUE}
W_UP(W_ПАРАМЕТР); Очередной вызов подпрограммы сварки...
КОНЕЦ
ПЕРЕЧИСЛЕНИЕ, ДЕКЛ
RefGuideR4.1 09.01.00 ru
118 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ВЫКЛЮЧАТЕЛЬ... КОРПУС... КОНЦЕВОЙ ВЫКЛЮЧАТЕЛЬ
2.2.41 ВЫКЛЮЧАТЕЛЬ... КОРПУС... КОНЦЕВОЙ ВЫКЛЮЧАТЕЛЬ
2.2.41.1 Краткая информация
Выбор между несколькими ветвями оператора.
2.2.41.2 Синтаксис
SWITCH Selection_Criterion CASE
Block_Identifier1 ,Block_Identifier2,...
Заявления
...
CASE Block_IdentifierN, Block_IdentifierM,...
Заявления
ПО УМОЛЧАНИЮ
Default_Statements
КОНЦЕВОЙ ВЫКЛЮЧАТЕЛЬ
Аргумент
Тип
Пояснение
Выбор_
INT, CHAR,
Критерием выбора может быть переменная, вызов
перечисление
функции или выражение указанного типа данных.
Критерий
тип
Блокировать_
INT, CHAR,
Идентификатор
перечисление
только целочисленными символами или константами перечисления.
тип
Тип констант должен соответствовать типу критерия
Идентификаторы для соответствующих блоков CASE могут быть
выбора. Должен быть хотя бы один
идентификатор блока.
Вы можете указать сколько угодно идентификаторов
блоков для одной ветки программы. Если один и тот же
идентификатор блока используется повторно,
выполняется только первая ветвь, имеющая этот
идентификатор. Остальные ветки программы не
учитываются. Несколько идентификаторов блоков отделены друг от друга
запятая.
2.2.41.3 Описание
Оператор SWITCH — это инструкция выбора различных ветвей программы. Критерию выбора
присваивается определенное значение перед оператором SWITCH. Если это значение совпадает с
идентификатором блока, выполняется соответствующая ветвь, и программа переходит прямо к
оператору ENDSWITCH, не принимая во внимание идентификаторы последующих блоков.
Если ни один идентификатор блока не соответствует критерию выбора, выполняется блок операторов
DEFAULT, если он есть; в противном случае программа возобновляется с оператора, следующего за
ENDSWITCH.
Одной ветви программы может быть присвоено несколько идентификаторов блоков. С другой стороны,
нецелесообразно использовать один и тот же идентификатор блока несколько раз, так как будет
учитываться только первая ветвь с соответствующим идентификатором.
RefGuideR4.1 09.01.00 ru
119 из 135
Machine Translated by Google
Справочное руководство
Типы данных критерия выбора и идентификатора блока должны совпадать.
Оператор SWITCH должен содержать хотя бы один оператор CASE; необходимо следить за тем, чтобы между
инструкцией SWITCH и первым оператором CASE не было пустых строк или комментариев.
Оператор DEFAULT можно опустить. Оператор по умолчанию может встречаться только один раз в операторе
SWITCH.
Оператор SWITCH не может быть преждевременно завершен с помощью оператора EXIT.
2.2.41.4 Пример
Критерий выбора и идентификатор блока имеют целочисленный тип. Оператор DEFAULT используется
здесь для вывода сообщения об ошибке.
СМЕНА ВЕРСИИ
ДЕЛО 1
СП_1(); Вызов подпрограммы SP_1
СЛУЧАЙ 2,3
СП_2(); Вызов подпрограммы SP_2
СП_3(); Вызов подпрограммы SP_3
SP_3A(); Вызов подпрограммы SP_3a
ПО УМОЛЧАНИЮ
ОШИБКА_СП(); Вызов подпрограммы ERROR_SP
КОНЦЕВОЙ ВЫКЛЮЧАТЕЛЬ
Критерий выбора и идентификатор блока имеют тип Character. Оператор SP_5() здесь никогда не
выполняется, потому что идентификатор блока «JOHN» появляется дважды.
НАЗВАНИЕ ПЕРЕКЛЮЧАТЕЛЯ
ДЕЛО ”АЛЬФРЕД”
СП_1(); Вызов подпрограммы SP_1
ДЕЛО «БЕРТ», «ДЖОН»
СП_2(); Вызов подпрограммы SP_2
СП_3(); Вызов подпрограммы SP_3
ДЕЛО ”ДЖОН”
СП_5(); Вызов подпрограммы SP_5
КОНЦЕВОЙ ВЫКЛЮЧАТЕЛЬ
ВЫХОД, ЗА, ПОВТОР, ПОКА, ЦИКЛ
RefGuideR4.1 09.01.00 ru
120 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ЗАПИСАТЬ
2.2.42 ЗАПИСЬ
2.2.42.1 Краткая информация
Оператор «SWRITE» позволяет объединить несколько данных для формирования набора данных.
2.2.42.2 Синтаксис
SWRITE (String1, State, OFFSET, Format, String2, VALUE)
Аргумент
Тип
Объяснение
Строка1
СИМВОЛ [ ]
Обработанная строка String2 записывается в этот массив
символов.
Эта структура возвращает информацию о состоянии системы ядра,
государственный
которую может оценить пользователь.
STATE.MSG_NO
Если во время выполнения
команды возникает ошибка, эта
переменная содержит номер ошибки.
CMD_OK
Команда успешно выполнена
CMD_ABORT
Команда не выполнена успешно
STATE_T
Переменная состояния:
ХИТЫ
Количество правильно написанных
форматов.
КОМПЕНСИРОВАТЬ
INT
Задает позицию, из которой String2 копируется в String1.
Формат
СИМВОЛ [ ]
Переменная «Формат» содержит формат текста, который
необходимо сгенерировать.
Строка2
Этот массив символов копируется в массив символов String1.
СИМВОЛ [ ]
Строка2 также может содержать символы форматирования, которые
вставляют содержимое переменной «VALUE» в эту позицию в
указанном формате.
СТОИМОСТЬ
INT
НАСТОЯЩИЙ
BOOL
Содержимое этой переменной вставляется в String2 в указанном
формате.
Логические значения выводятся как 0 или 1, значения ENUM как
числа.
2.2.42.3 Описание
Команда «SWRITE» используется для обработки строк символов. В отличие от «CWRITE», данные записываются
не в открытый канал, а в переменную.
Спецификация преобразования для переменной Format имеет следующую структуру:
%ФУГА
Здесь применимы следующие определения:
G F Символ форматирования +, --, # и т. д. (необязательно).
G W Ширина, указывает минимальное количество байтов, которые должны быть выведены (необязательно).
RefGuideR4.1 09.01.00 ru
121 из 135
Machine Translated by Google
Справочное руководство
G G Точность, ее значение зависит от символа преобразования.
'.' или можно использовать '.*' или '.integer' (необязательно).
G U Допустимые символы преобразования: c, d, e, f, g, i, s, x и %.
Система не различает прописные и строчные буквы.
Вводя ширину, вы можете указать, на сколько байтов значение должно быть расширено или
сжато. РЕАЛЬНЫЕ значения являются исключением.
При сжатии значения старшие байты игнорируются; значение расширяется путем добавления
нулевых байтов в конце (формат с прямым порядком байтов).
Если ширина не указана, выводится внутреннее представление: 4 байта для INTEGER, REAL
и ENUM, по одному байту для BOOL и CHAR.
О неправильном формате можно судить по значению HITS (см. ниже).
Формат
Переменная
(Сигнал)
INT
массив целых чисел
%d
%f
%я
%и
%Икс
%г
%s %c %1.
%2.
%4.
hWDHi
hWDHi
hWDHi
hWDHi
р
р
р
р
--
--
--
--
--
--
--
--
--
--
--
--
-- ХХ
--
--
--
--
--
--
--
-- ХХХ
--
--
--
--
--
--
--
-- ХХХ
--
--
--
--
ХХ ---
--
НАСТОЯЩИЙ
-- ИКС --
РЕАЛЬНЫЙ
--
--
--
-- ХХХ
массив
(Сигнал)
ИКС --
Логический
--
BOOL
--
массив
ПЕРЕЧИСЛЕНИЕ
ENUMмассив
ИКС ---
СИМВОЛ
ИКС --
СИМВОЛ
--
--
-- ИКС --- Х -- Х --
%.
-- ИКС
множество
Оператор «SWRITE», который можно использовать в программах на уровне управления или робота, вызывает
предварительную остановку работы.
RefGuideR4.1 09.01.00 ru
122 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.2.42.4 Пример
Скопируйте содержимое переменной HUGO в переменную BERTA.
ВНУТРЕННЕЕ СМЕЩЕНИЕ
DECL STATE_T STATE
ДЕКЛ ЧАР ГЮГО[20]
ДЕКЛ ЧАР БЕРТА[20]
СМЕЩЕНИЕ=0
ГЮГО[]= "ТЕСТ"
“
БЕРТА[]=”
SWRITE(BERTA[],СОСТОЯНИЕ,СМЕЩЕНИЕ,HUGO[])
;Результат: BERTA[]=“TEST” ;так
как “OFFSET” вызывается по ссылке,
эта переменная теперь имеет
значение 4 ;повторить ту же команду
SWRITE(BERTA[],СОСТОЯНИЕ,СМЕЩЕНИЕ,HUGO[])
;Результат: BERTA[]=“TESTTEST”
СМЕЩЕНИЕ=СМЕЩЕНИЕ+1
SWRITE(BERTA[],СОСТОЯНИЕ,СМЕЩЕНИЕ,HUGO[])
;Результат: BERTA[]=“TESTTEST TEST”
Использование символов форматирования
ВНУТРЕННЕЕ СМЕЩЕНИЕ
ВНУТРЕННИЙ НЕТ
DECL STATE_T STAT
ДЕКЛ ЧАР ГЮГО[20]
ДЕКЛ ЧАР БЕРТА[20]
НЕТ=1
СМЕЩЕНИЕ=0
HUGO[]=”ТЕСТ%d”
“
БЕРТА[]=”
SWRITE(BERTA[],СОСТОЯНИЕ,СМЕЩЕНИЕ,HUGO[],НЕТ)
;Результат: BERTA[]=“TEST1“
СМЕЩЕНИЕ=СМЕЩЕНИЕ+1
НЕТ=22
SWRITE(BERTA[];СОСТОЯНИЕ,СМЕЩЕНИЕ,HUGO[],НЕТ)
;Результат: BERTA[]=“TEST1TEST22”
RefGuideR4.1 09.01.00 ru
123 из 135
Machine Translated by Google
Справочное руководство
ТРИГГЕР, КОГДА РАССТОЯНИЕ ... ДЕЛАТЬ
2.2.43 ТРИГГЕР, КОГДА РАССТОЯНИЕ ... ДЕЛАТЬ
2.2.43.1 Краткая информация
Связанное с траекторией срабатывание переключающего действия параллельно движению робота.
2.2.43.2 Синтаксис
TRIGGER WHEN DISTANCE=расстояние DELAY=время Заявление DO
ПРИО=Приоритет
Аргумент
Расстояние
Тип
Объяснение
INT
Переменная или константа, указывающая, где должна происходить
операция переключения:
РАССТОЯНИЕ=0
в начале
РАССТОЯНИЕ=1
в конце
блока движения. Только эти два значения могут быть присвоены!
Время
INT
Переменная или константа, которую можно использовать для
задержки и опережения операции переключения. Если значение
положительный,
выполнение оператора
delayed
отрицательный, выполнение оператора продвигается на
указанное время.
Единица измерения — миллисекунды.
Инструкция может быть
Заявление
присвоение значения переменной или
оператор
PULSE или
вызов подпрограммы
Подпрограммы выполняются как процедуры обработки прерываний.
Поэтому желаемый приоритет должен быть указан с помощью
операции PRIO.
приоритет
INT
Переменная или константа, указывающая приоритет
прерывания. Каждому оператору Trigger с вызовом подпрограммы
должен быть присвоен приоритет. Доступны уровни приоритета
1...39 и 81...128. Уровни приоритета от 40 до 80 зарезервированы
для системы и назначаются автоматически, если для приоритета
введено значение –1. Прерывание уровня 1 имеет наивысший
приоритет.
2.2.43.3 Описание
Оператор TRIGGER может использоваться для выполнения подпрограммы или для присвоения значения переменной,
параллельной следующему движению робота, в зависимости от критерия расстояния.
Отношение пути определяется указанием того, должна ли операция переключения происходить в начале блока
движения или в конце с помощью параметра Расстояние:
RefGuideR4.1 09.01.00 ru
124 из 135
Machine Translated by Google
2
г
Справочный раздел (продолжение)
Для отдельных блоков DISTANCE=0 указывает начальную точку и
G DISTANCE=1 целевая точка
следующего движения. В случае блоков приблизительного позиционирования DISTANCE=1 означает
середину следующей дуги приблизительного позиционирования. Если предыдущий блок уже является
блоком приблизительного позиционирования, DISTANCE=0 означает целевую точку предыдущей дуги
приблизительного позиционирования.
Можно отложить или ускорить выписку на указанный период времени, используя опцию DELAY. Точка
переключения, однако, может быть отложена или передвинута только настолько, насколько она еще
остается в рассматриваемом кадре. Автоматическое ограничение происходит на границах блока. Таким
образом, в случае одного блока и DISTANCE=1, точку переключения нельзя переместить за целевую точку
и дальше по пути, указав положительное значение DELAY. Указание отрицательного значения DELAY
гарантирует, что операция переключения уже произошла до того, как будет достигнута целевая точка. Но
и здесь точку переключения нельзя продвинуть дальше точки начала движения.
2.2.43.4 Пример
Операция переключения через 130 миллисекунд после начала следующего движения; установка
сигнала.
ЗАПУСК, КОГДА РАССТОЯНИЕ=0 ЗАДЕРЖКА=130 DO $OUT[8]=ИСТИНА
Переключение в конце следующего движения; вызов подпрограммы с приоритетом 5.
ТРИГГЕР, КОГДА РАССТОЯНИЕ=1 ЧАСТНОЕ(ДИВИДЕНД,ДЕЛИТЕЛЬ)ПРИО=5
Диапазоны переключения с различными последовательностями движения и вариантами ЗАДЕРЖКИ.
ПРОГРАММА ЗАЩИТЫ()
...
ТОЧКА PTP0
ЗАПУСК, КОГДА РАССТОЯНИЕ=0 ЗАДЕРЖКА=40 DO A=12
; Диапазон переключения: 0 -- 1
ЗАПУСК, КОГДА РАССТОЯНИЕ=1 ЗАДЕРЖКА=-20 DO SP1() PRIO=10
ЛИН ТОЧКА1
; Диапазон переключения: 0 -- 1
ЗАПУСК, КОГДА РАССТОЯНИЕ=0 ЗАДЕРЖКА=10 DO SP2(A) PRIO=5
; Диапазон переключения: 1 -- 2'B
ЗАПУСК, КОГДА РАССТОЯНИЕ=1 ЗАДЕРЖКА=15 DO B=1
; Диапазон переключения: 2'B -- 2'E
LIN ТОЧКА 2 C_DIS
ЗАПУСК, КОГДА РАССТОЯНИЕ=0 ЗАДЕРЖКА=10 DO SP2(B) PRIO=12
; Диапазон переключения: 2'E -- 3'B
ТРИГГЕР, КОГДА РАССТОЯНИЕ=1 DO SP(A,B,C) PRIO=6
; Диапазон переключения: 3'B --3'E
LIN POINT3 C_DIS
ЗАПУСК, КОГДА РАССТОЯНИЕ=0 ЗАДЕРЖКА=50 DO SP2(A) PRIO=4
; Диапазон переключения: 3'E -- 4
ЗАПУСК, КОГДА РАССТОЯНИЕ=1 ЗАДЕРЖКА=-80 DO A=0
ЛИН ТОЧКА4
...
; Диапазон переключения: 3'E -- 4
КОНЕЦ
RefGuideR4.1 09.01.00 ru
125 из 135
Machine Translated by Google
Справочное руководство
1
СП2(А)
СП1()
2'Б
2
2'
Б=1
2'E
А=12
СП2(Б)
3'В
0
СП(А,Б,С)
3
3'
3'E
А=0
СП2(А)
4
ПРЕРЫВАНИЕ DECL, ПРЕРЫВАНИЕ, ИМПУЛЬС
RefGuideR4.1 09.01.00 ru
126 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ТРИГГЕР, КОГДА ПУТЬ ... ДЕЛАТЬ
2.2.44 ТРИГГЕР, КОГДА ПУТЬ ... ДЕЛАТЬ
2.2.44.1 Краткая информация
Связанное с траекторией и отложенное срабатывание переключающего действия параллельно движению робота.
2.2.44.2 Синтаксис
TRIGGER WHEN PATH=Расстояние DELAY=Время Оператор DO
ПРИО=Приоритет
Аргумент
Расстояние
Тип
Пояснение
INT
Указывает в мм расстояние, на котором запускается операция
переключения относительно целевой точки следующего движения.
Если операция переключения должна быть запущена до целевой точки,
значение Distance должно быть отрицательным. Если Расстояние
положительное, операция переключения запускается после целевой
точки.
Если целевая точка аппроксимирована, начальной точкой для
параметра «Расстояние» является центральная точка движения
аппроксимации позиционирования.
При положительном значении Distance можно сместить точку
переключения до следующей точной точки позиционирования,
запрограммированной после триггера.
При отрицательном значении Distance точка переключения может
быть смещена назад до начальной точки.
Если начальная точка аппроксимирована, точка переключения может
быть смещена до начала аппроксимированного диапазона
позиционирования.
Время
INT
Спецификация «Время» используется для задержки или опережения
точки переключения относительно спецификации пути на определенное
количество времени.
Точка переключения может быть смещена только в пределах
диапазона переключения, указанного выше.
Единица измерения — миллисекунды.
RefGuideR4.1 09.01.00 ru
127 из 135
Machine Translated by Google
Справочное руководство
Заявление
Инструкция может быть
присвоение значения переменной или
оператор PULSE или
вызов подпрограммы
Подпрограммы выполняются как процедуры обработки прерываний.
Поэтому желаемый приоритет должен быть указан с
помощью операции PRIO.
приоритет
INT
Переменная или константа, указывающая приоритет
прерывания. Каждому оператору Trigger с вызовом
подпрограммы должен быть присвоен приоритет. Доступны
уровни приоритета 1...39 и 81...128. Уровни приоритета от 40
до 80 зарезервированы для системы и назначаются
автоматически, если для приоритета введено значение –1.
Прерывание уровня 1 имеет наивысший приоритет.
2.2.44.3 Описание
Если вы используете оператор TRIGGER, относящийся к пути, вы можете инициировать действие
переключения в любой точке пути, указав расстояние. Как и в случае с «Триггером на расстоянии», это
снова может быть дополнительно отложено или перенесено.
Условия, управляющие положением на пути, на котором оценивается критерий расстояния, в зависимости
от приблизительного движения позиционирования, показаны в таблице выше. Критерий времени всегда
рассчитывается из спецификации пути. Диапазон переключения снова зависит от приблизительного
расположения и показан в таблице выше.
Последовательность инструкций:
LIN ТОЧКА 2 C_DIS
ТРИГГЕР, КОГДА ПУТЬ = Y DELAY= X DO $OUT[2]=TRUE
LIN POINT3 C_DIS
LIN POINT4 C_DIS
ЛИН ТОЧКА5
Поскольку точку переключения можно сместить от точки движения, перед которой она была
запрограммирована, мимо всех последующих точек приблизительного позиционирования до следующей
точки точного позиционирования, можно сместить точку переключения с точки начала приблизительного
позиционирования ТОЧКА 2 на ТОЧКУ 5. . Если бы ТОЧКА 2 не была аппроксимирована в этой
последовательности инструкций, точка переключения могла бы быть смещена только до точной точки позиционирован
ПУНКТ 2.
RefGuideR4.1 09.01.00 ru
128 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ТОЧКА2
---
ЗАДЕРЖКА X
ТОЧКА5
+
ПУТЬ Y<0
ЗАДЕРЖКА X
--
+
ТОЧКА3
ТОЧКА4
ЗАДЕРЖКА=0
ПУТЬ=0
ПУТЬ Y>0
+
Числовой пример:
Х= --10, Y= --20
ТОЧКА2
Точка
переключения
ЗАДЕРЖКА = -10
ТОЧКА5
ПУТЬ= -20
ТОЧКА3
ТОЧКА4
ПРЕРЫВАНИЕ DECL, ПРЕРЫВАНИЕ, ИМПУЛЬС
RefGuideR4.1 09.01.00 ru
129 из 135
Machine Translated by Google
Справочное руководство
ЖДАТЬ
2.2.45 ЖДИТЕ
2.2.45.1 Краткая информация
Дождитесь условия продолжения.
2.2.45.2 Синтаксис
ПОДОЖДИТЕ Continue_Condition
Аргумент
Тип
Объяснение
Продолжать_
Условие
BOOL
Логическое выражение, используемое для указания условия
продолжения выполнения программы:
если логическое выражение уже TRUE при вызове WAIT,
выполнение программы не останавливается.
если логическое выражение ЛОЖЬ, программа
выполнение останавливается до тех пор, пока выражение не
примет значение TRUE.
2.2.45.3 Описание
Оператор WAIT останавливает выполнение программы и продолжает его по истечении заданного времени
ожидания. Продолжительность времени ожидания определяется наступлением запрограммированного события.
Если из-за неправильной формулировки выражение никогда не может принять значение TRUE, компилятор
этого не распознает. В этом случае выполнение программы будет навсегда остановлено, поскольку
программа ожидает условия, которое не может быть выполнено.
2.2.45.4 Пример
Прерывание выполнения программы до тех пор, пока $IN[17] не станет ИСТИНА.
ПОДОЖДИТЕ $IN[17]
Прерывание выполнения программы до тех пор, пока BIT1 не станет FALSE.
ЖДИТЕ БИТ1 == ЛОЖЬ
ПОДОЖДИТЕ СЕК
RefGuideR4.1 09.01.00 ru
130 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ПОДОЖДИТЕ СЕК
2.2.46 ОЖИДАНИЕ СЕК
2.2.46.1 Краткая информация
Время ожидания.
2.2.46.2 Синтаксис
WAIT SEC Время ожидания
Аргумент
Тип Описание INT, REAL
Время ожидания
Арифметическое выражение, используемое для указания количества
секунд, на которое выполнение программы должно быть
прервано. Если значение отрицательное, программа не
ждет. При малых временах ожидания точность определяется
кратностью такта интерполяции.
2.2.46.3 Описание
Оператор WAIT останавливает выполнение программы и продолжает его по истечении заданного времени
ожидания. Время ожидания указывается в секундах.
2.2.46.4 Пример
Прерывание выполнения программы на 17,156 секунды.
ПОДОЖДИТЕ 17.156 СЕК
Прерывание выполнения программы в соответствии со значением переменной V_WAIT в секундах.
ПОДОЖДИТЕ СЕК V_WAIT
ЖДАТЬ
RefGuideR4.1 09.01.00 ru
131 из 135
Machine Translated by Google
Справочное руководство
ПОКА... КОНЕЦ ПОКА
2.2.47 ПОКА... КОНЕЦ ПОКА
2.2.47.1 Краткая информация
Цикл программы; условие завершения проверяется в начале цикла (отклоняющий цикл).
2.2.47.2 Синтаксис
ПОКА Повторение_Условие
Заявления
Я В ДОМЕ
Аргумент
Тип
Пояснение
Повторение_
Условие
BOOL
Логическое выражение, которое может содержать
логическую переменную, вызов логической функции или
логическую операцию с логическим результатом, например, сравнение.
2.2.47.3 Описание
Цикл WHILE повторяется в зависимости от условия, указанного пользователем. Это условие повторения
проверяется перед выполнением каждого цикла. Блок операторов никогда не выполняется, если условие
повторения еще не выполнено заранее.
Блок операторов выполняется, если логическое условие имеет значение TRUE, т. е. условие повторения
выполнено. Если логическое условие имеет значение FALSE, программа возобновляется со следующей
инструкции после ENDWHILE. Каждый оператор WHILE должен заканчиваться оператором ENDWHILE.
2.2.47.4 Пример
Цикл выполняется 99 раз. W имеет значение 100 после выхода из цикла.
Вт=1
ПОКА W<100
Ж=Ж+1
Я В ДОМЕ
Цикл выполняется до тех пор, пока $IN[1] не станет истинным.
WHILE $IN[1]==TRUE Операторы
Я В ДОМЕ
Цикл никогда не выполняется, потому что условие повторения еще не выполнено до выполнения
цикла. После выхода W имеет значение 100.
Вт=100
ПОКА W<100
Ж=Ж+1
Я В ДОМЕ
RefGuideR4.1 09.01.00 ru
132 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
ВЫХОД, ПЕРЕКЛЮЧАТЕЛЬ, ДЛЯ, ПОВТОР, ЦИКЛ
RefGuideR4.1 09.01.00 ru
133 из 135
Machine Translated by Google
Справочное руководство
2.3 Функции системы
ВОЗРАСТ()
2.3.1 ВОЗРАСТ()
2.3.1.1 Краткая информация
Опрашивает состояние переменной. VARSTATE() — это функция с возвращаемым значением типа
«VAR_STATE»:
ENUM VAR_STATE ОБЪЯВЛЕН, ИНИЦИАЛИЗИРОВАН, НЕИЗВЕСТЕН
Декларация VARSTATE:
VAR_STATE VARSTATE(CHAR VAR_STR[80]:IN)
2.3.1.2 Синтаксис
DECL VAR_STATE Имя_переменной
Variable_Name = VARSTATE("Переменная")
Тип аргумента Описание Variable_ VAR_STATE
Имя любой переменной.
Имя
переменная любая
Имя переменной, для которой должно быть состояние
определенный.
2.3.1.3 Описание
Функцию VARSTATE можно использовать для определения состояния переменной. Возвращаемое
значение функции может принимать константы Enum DECLARED, INITIALIZED или UNKNOWN.
RefGuideR4.1 09.01.00 ru
134 из 135
Machine Translated by Google
2
Справочный раздел (продолжение)
2.3.1.4 Пример
DEF ПРОГ1()
ИНТ А, В
УЛИЦА СИМВОЛ[5]
А=99
СТР [] = «А»
IF VARSTATE("A")==#DECLARED THEN ; Это
условие IF неверно, так как A не только объявлено, но и уже инициализировано.
$ ВЫХОД [1] = ИСТИНА
КОНЕЦ
IF VARSTATE("A")==#INITIALIZED THEN ; Это
условие ЕСЛИ верно.
$ ВЫХОД [2] = ИСТИНА
КОНЕЦ
IF VARSTATE("A")==#UNKNOWN THEN ; Это
условие ЕСЛИ неверно.
$OUT[3]=ИСТИНА
КОНЕЦ
IF VARSTATE("B")==#DECLARED THEN ; Это
условие ЕСЛИ верно.
$OUT[4]=ИСТИНА
КОНЕЦ
IF VARSTATE("НИЧЕГО")==#UNKNOWN THEN ; Это условие
ЕСЛИ верно, если предположить, что в $CONFIG.DAT нет переменной с именем
«NOTHING».
$OUT[5]=ИСТИНА
КОНЕЦ
IF VARSTATE(STR[])==#INITIALIZED THEN ; Это
условие IF верно, так как A уже инициализирован.
$OUT[6]=ИСТИНА
КОНЕЦ
КОНЕЦ
1
RefGuideR4.1 09.01.00 ru
135 из 135
Machine Translated by Google
Показатель
КОПЕН, 41
Символы
КП движений, 15
:SER_1,
ТВОРИТЬ, 42
27 :SER_2, 27, 41
КВРАЙТ, 48 лет
$CMD, 27, 48
$CUSTOM.DAT, 27
%FWGU, 49, 115, 121 |, 9
Д
Списки данных,
11 Типы данных,
А
11 DATA_BLK, 43
АБС, 43, 45
DATA_END, 43
Активное чтение, 44
DATA_OK, 43, 48 DECL,
АНИН, 20 лет
53 Декларация, 14
АНУТ, 22 года
DEF...END, 57
Области действия, 16
DEFDAT...ENDDAT, 60
Арифметические операторы, 13
DEFFCT...ENDFCT, 63 DIGIN,
АСИНХ, 48
66
ОСЬ, 12
Б
И
Битовые операторы, 13
E6AXIS, 12
Блочная структура, 15
Е6ПОС, 12
БООЛ, 11
ЕНУМ, 68
ТОРМОЗ, 24
Значение ENUM, 46, 116
ВЫХОД, 70
С
Выражение, 14
ЭКСТ, 71
Язык программирования Си, 45
ЭКСТФКТ, 73
КЛОЗ, 25 лет
КАНАЛ, 27
Channel_Name, 27, 41
Ф
ЧАР, 11
FMT_ERR, 43, 48 FOR...
ЦИРК, 29
TO... ENDFOR, 76 Формат, 44, 45,
CIRC_REL, 34
49, 114, 121 FPRINTF, 49 FRAME, 12
CMD_ABORT, 25, 43, 48, 121
Функции, 15
CMD_OK, 25, 43, 48, 121
CMD_REJ, 48
CMD_STAT, 43, 48
CMD_SYN, 48
CMD_TIMEOUT, 43
г
Комментарий, 14
Геометрический оператор, 13
КОНД, 43, 45
ГОТО, 78
ПОДТВЕРДИТЬ, 38
Константы, 12
ПРОДОЛЖИТЬ, 40
ЧАС
Непрерывные движения по траектории, 15
ПРИВАЛ, 79
Структуры управления, 15
Ручка, 25, 41, 42, 48
Преобразование персонажа, 45
ХИТЫ, 43, 48, 121
Индекс -- я
Machine Translated by Google
Показатель
п
я
Стандартный формат IEEE 754, 45
Пассивное чтение, 44
IF ... THEN ... ENDIF, 80 Неявное
Движения точка-точка (PTP), 15
присвоение типа данных, 12 Неявное
ПОС, 12
Предопределенные типы данных, 12
преобразование типа, 12 IMPORT... IS,
Приоритет операторов, 14
81
ПУЛЬС, 103
Инициализация,
14 INT, 11 INT
$DATA_SER1, 42, 44 INT
р
$DATA_SER2, 42, 44
REAL, 11
Interface_Name, 27 INTERRUPT,
Операторы отношения, 13
86 INTERRUPT DECL ... когда ...
REPEAT ... UNTIL, 106 RESUME,
делать, 83
108 RETURN, 110
К
С
Ключевые слова, 16
SEQ, 43
SER_1, 27, 44 SER_2,
л
27, 44 SIGNAL, 112
простых типов
ДЛИНА, 43
данных, 11 SREAD, 114
LIN, 90
State, 25, 43, 45, 48, 114,
LIN_REL, 94
121 STATE.MSG_NO, 121 STATE_T, 27, 43,
литерала, 11
48 Оператор , 14 String1, 114, 121 String2,
формат с прямым порядком
114, 121 STRUC, 117, 121 Structure_Variable,
байтов, 45 логических
27 Subprograms, 15 SWITCH... CASE...
операторов, 13 LOOP ...
ENDSWITCH, 119 SWRITE, 121 SYNC, 48
ENDLOOP, 96 PTP, 97 PTP_REL,
Системные переменные, 13
101
М
Максимальная длина строки, 16
Режим, 43, 48
Модули, 11
МОДУС_Т, 43, 48
Программирование движения, 15
Т
Время
Н
ожидания, 44 ТРИГГЕР, КОГДА РАССТОЯНИЕ ...
ДЕЛАТЬ, 124 ТРИГГЕР, КОГДА ПУТЬ ... ДЕЛАТЬ, 127
Имена, 11
В
О
ЗНАЧЕНИЕ, 114, 121
СМЕЩЕНИЕ, 121
Был, 44, 49
Смещение, 44, 114
Переменные, 13
Операторов, 13
ВОЗРАСТ(), 134
Индекс -- ii
Machine Translated by Google
Показатель
В
Подождите,
44 ПОДОЖДИТЕ, 130
ПОДОЖДИТЕ СЕК, 131
ПОКА... КОНЕЦ ВРЕМЕНИ, 132
Индекс -- III
Download