В РКЭ программы управления выполнено структурирование программы путем разбиения ее на отдельные блоки. Блоки отрабатываются ПЛК последовательно, обеспечивая тем самым заданную последовательность выполнения тактов. В каждом блоке задана инструкция ПБЛ, обеспечивающая переход к заданному блоку. Все это необходимо для того, чтобы исключить возможные сбои и конфликты оборудования. Например, мы не можем начать перемещение промышленного робота в продольных направлениях, пока не убедимся, что рука робота находится в задвинутом положении.
Рассмотрим более подробно первую цепь (рис. 2.1). Остальные цепи строятся аналогично.
Рис. 2.1.
РКЭ программы управления. Цепь 1. Мы сможем включить катушку с фиксацией и подать сигнал ПовЛев только в том случае, если в цепи 1 будет «протекать ток». Для этого необходимо выполнить три условия:
1. Разрешение цикла (замкнуты «контакты» РЦ)
2. Замкнуты контакты кнопки ПУСК
3. ПР находится НЕ в позиции 1 (контакты КПР1 НЕ замкнуты)
Но цепь рисуется в исходном состоянии, т.е. все операторы изображаются в том состоянии, когда катушка с фиксацией НЕ включена, тогда выполнение всех условий приведет к включению катушки. Таким образом, для изображения данной цепи нам нужно инвертировать перечисленные условия (таблица 2.6). В итоге получим цепь, изображенную на рис. 2.1. На этой цепи контакты РЦ и ПУСК – нормально разомкнутые, а КПР1 – нормально замкнутые.
Таблица 2.6. Состояние операторов в цепи 1
Контакт | Условие включения ПовЛев | Инверсия |
РЦ | Замкнут | Разомкнут |
ПУСК | Замкнут | Разомкнут |
КПР1 | Разомкнут | Замкнут |
Еще несколько слов об использовании таймера. Для задания таймера необходимо два слова данных: слово текущего значения и слово уставки таймера-счетчика.
Рис. 2.2. Использование таймера.
В нашем примере мы контролируем гальванообработку в ванне 2 по времени. Гальванообработка должно прекратиться через 60с после начала обработки. Реализуем эту операцию следующим образом:
1. разжимаем и блокируем схват руки ПР, после чего начинаем гальванообработку «подавая ток» на катушку с фиксацией (включение катушки).
2. Запускаем таймер на 60с и только в этом случае переходим в следующий блок.
3. После срабатывания таймера (выход таймера) прекращаем гальванообработку, снова «подавая ток» на катушку с фиксацией, но в этот раз мы выключаем ее.
4. Сбрасываем таймер
С помощью инструкции ЗТС мы запускаем таймер на 60 с. Для этого выбираем режим 1 -таймер с задержкой на включение с дискретностью 0,1 с. А уставка будет равна 0600, т.к. нам нужно отсчитать 600 раз по 0,1 с, чтобы получить задержку 60с.
После срабатывания таймера его нужно сбросить, потому что этот таймер может использоваться в других участках программы. Сброс выполняется инструкцией СТС.
Мы выбрали таймер с задержкой на включение, потому что использовали катушку с фиксацией. На катушку с фиксацией мы в должны «подавать ток» как для ее включения, так и для отключения, поэтому выход таймера - это нормально разомкнутые контакты, которые «замыкаются» (включаются) при срабатывании таймера и выключают катушку с фиксацией.
2.4.2. Разработка текста программы управления
Разработка текста программы управления для ПЛК-256 также выполняется согласно рекомендациям, изложенным в [3]. Текст программы приведен в листинге.
Листинг. Текст программы управления
0001 | НСТ | 00 | Начало сегмента |
0002 | НБЛ | 00 | Начало блока |
0003 | СТС | 020 | Сбросить таймер |
0004 | ПБЛ | 01 | Перейти к блоку 01 |
0005 | НБЛ | 01 | Начало блока 01 |
0006 | 10011 | Разрешение цикла | |
0007 | 10012 | Кнопка «ПУСК» | |
0008 | 10000 | Наличие детали в накопителе 2 | |
0009 | 10001 | Если ПР не над накопителем 2, | |
0010 | 00100 | То начать движение ПР вправо | |
0011 | 10001 | ПР над накопителем 2 | |
0012 | 00100 | Остановить движение вправо | |
0013 | ПБЛ | 02 | Перейти к блоку 02 |
0014 | НБЛ | 02 | Начало блока 02 |
0015 | 10001 | ПР над накопителем 2 | |
0016 | 10006 | Пока не сработает датчик SQ-6 | |
0017 | 00103 | Выдвигаем руку ПР | |
0018 | 10006 | Рука ПР выдвинута | |
0019 | 00103 | Закончить выдвижение руки | |
0020 | ПБЛ | 03 | Перейти к блоку 03 |
0021 | НБЛ | 03 | Начало блока 03 |
0022 | 10007 | Пока не сработает датчик SQ-7 | |
0023 | 00104 | Сжимаем схват | |
0024 | 10007 | Схват сжат | |
0025 | 00104 | Прекратить сжимание | |
0026 | ПБЛ | 04 | Перейти к блоку 04 |
0027 | НБЛ | 04 | Начало блока 04 |
0028 | 10005 | Пока не сработает датчик SQ-5 | |
0029 | 00102 | Задвигаем руку ПР | |
0030 | 10005 | Рука ПР задвинута | |
0031 | 00102 | Закончить задвижение руки | |
0032 | ПБЛ | 05 | Перейти к блоку 05 |
0033 | НБЛ | 05 | Начало блока 05 |
0034 | 10005 | При задвинутой руке | |
0035 | 10002 | До срабатывания датчика SQ-2 | |
0036 | 00101 | Перемещаем ПР влево | |
0037 | 10002 | ПР над ванной 2 | |
0038 | 00101 | Остановить движение ПР | |
0039 | ПБЛ | 06 | Перейти к блоку 06 |
0040 | НБЛ | 06 | Начало блока 06 |
0041 | 10002 | Над ванной 2 | |
0042 | 10006 | До срабатывания датчика SQ-6 | |
0043 | 00103 | Выдвигаем руку ПР | |
0044 | 10006 | Рука ПР выдвинута | |
0045 | 00103 | Закончить выдвижение руки | |
0046 | ПБЛ | 07 | Перейти к блоку 07 |
0047 | НБЛ | 07 | Начало блока 07 |
0048 | 10010 | Пока не сработает датчик SQ-8 | |
0049 | 00105 | Разжимаем схват | |
0050 | 10010 | Схват разжатт | |
0051 | 00105 | Прекратить разжимание | |
0052 | 00106 | Начать гальванообработку детали 2 | |
0053 | ЗТС | 020 1 0600 | Запускаем таймер на 60с |
0054 | ПБЛ | 08 | Перейти к блоку 08 |
0055 | НБЛ | 08 | Начало блока 08 |
0056 | 10005 | Пока не сработает датчик SQ-5 | |
0057 | 00102 | Задвигаем руку ПР | |
0058 | 10005 | Рука ПР задвинута | |
0059 | 00102 | Закончить задвижение руки | |
0060 | ПБЛ | 09 | Перейти к блоку 09 |
0061 | НБЛ | 09 | Начало блока 09 |
0062 | 10005 | При задвинутой руке | |
0063 | 10003 | До срабатывания датчика SQ-3 | |
0064 | 00101 | Перемещаем ПР влево | |
0065 | 10003 | ПР над накопителем 1 | |
0066 | 00101 | Остановить движение ПР | |
0067 | ПБЛ | 10 | Перейти к блоку 10 |
0068 | НБЛ | 10 | Начало блока 10 |
0069 | 10003 | Над накопителем 1 | |
0070 | 10006 | До срабатывания датчика SQ-6 | |
0071 | 00103 | Выдвигаем руку ПР | |
0072 | 10006 | Рука ПР выдвинута | |
0073 | 00103 | Закончить выдвижение руки | |
0074 | При срабатывании таймера | ||
0075 | 00106 | Закончить гальванообработку дет 2 | |
0076 | СТС | 020 | Сбросить таймер |
0077 | ПБЛ | 11 | Перейти к блоку 11 |
0078 | НБЛ | 11 | Начало блока 11 |
0079 | 10007 | Пока не сработает датчик SQ-7 | |
0080 | 00104 | Сжимаем схват | |
0081 | 10007 | Схват сжат | |
0082 | 00104 | Прекратить сжимание | |
0083 | ПБЛ | 12 | Перейти к блоку 12 |
0084 | НБЛ | 12 | Начало блока 12 |
0085 | 10005 | Пока не сработает датчик SQ-5 | |
0086 | 00102 | Задвигаем руку ПР | |
0087 | 10005 | Рука ПР задвинута | |
0088 | 00102 | Закончить задвижение руки | |
0089 | ПБЛ | 13 | Перейти к блоку 13 |
0090 | НБЛ | 13 | Начало блока 13 |
0091 | 10005 | При задвинутой руке | |
0092 | 10004 | До срабатывания датчика SQ-4 | |
0093 | 00100 | Перемещаем ПР враво | |
0094 | 10004 | ПР над ванной 1 | |
0095 | 00100 | Остановить движение ПР | |
0096 | ПБЛ | 14 | Перейти к блоку 14 |
0097 | НБЛ | 14 | Начало блока 14 |
0098 | 10004 | Над ванной 1 | |
0099 | 10006 | До срабатывания датчика SQ-6 | |
0100 | 00103 | Выдвигаем руку ПР | |
0101 | 10006 | Рука ПР выдвинута | |
0102 | 00103 | Закончить выдвижение руки | |
0103 | ПБЛ | 15 | Перейти к блоку 15 |
0104 | НБЛ | 15 | Начало блока 15 |
0105 | 10010 | Пока не сработает датчик SQ-8 | |
0106 | 00105 | Разжимаем схват | |
0107 | 10010 | Схват разжатт | |
0108 | 00105 | Прекратить разжимание | |
0109 | 00107 | Начать гальванообработку детали 1 | |
0110 | ЗТС | 020 1 0200 | Запускаем таймер на 20с |
0111 | ПБЛ | 16 | Перейти к блоку 16 |
0112 | НБЛ | 16 | Начало блока 16 |
0113 | 10005 | Пока не сработает датчик SQ-5 | |
0114 | 00102 | Задвигаем руку ПР | |
0115 | 10005 | Рука ПР задвинута | |
0116 | 00102 | Закончить задвижение руки | |
0117 | ПБЛ | 17 | Перейти к блоку 17 |
0118 | НБЛ | 17 | Начало блока 17 |
0119 | 10005 | При задвинутой руке | |
0120 | 10002 | До срабатывания датчика SQ-2 | |
0121 | 00100 | Перемещаем ПР вправо | |
0122 | 10002 | ПР над ванной 2 | |
0123 | 00100 | Остановить движение ПР | |
0124 | ПБЛ | 18 | Перейти к блоку 18 |
0125 | НБЛ | 18 | Начало блока 18 |
0126 | 10002 | Над ванной 2 | |
0127 | 10006 | До срабатывания датчика SQ-6 | |
0128 | 00103 | Выдвигаем руку ПР | |
0129 | 10006 | Рука ПР выдвинута | |
0130 | 00103 | Закончить выдвижение руки | |
0131 | При срабатывании таймера | ||
0132 | 00106 | Закончить гальванообработку дет 1 | |
0133 | СТС | 020 | Сбросить таймер |
0134 | ПБЛ | 19 | Перейти к блоку 19 |
0135 | НБЛ | 19 | Начало блока 19 |
0136 | 10007 | Пока не сработает датчик SQ-7 | |
0137 | 00104 | Сжимаем схват | |
0138 | 10007 | Схват сжат | |
0139 | 00104 | Прекратить сжимание | |
0140 | ПБЛ | 20 | Перейти к блоку 20 |
0141 | НБЛ | 20 | Начало блока 20 |
0142 | 10005 | Пока не сработает датчик SQ-5 | |
0143 | 00102 | Задвигаем руку ПР | |
0144 | 10005 | Рука ПР задвинута | |
0145 | 00102 | Закончить задвижение руки | |
0146 | ПБЛ | 21 | Перейти к блоку 21 |
0147 | НБЛ | 21 | Начало блока 21 |
0148 | 10005 | При задвинутой руке | |
0149 | 10001 | До срабатывания датчика SQ-1 | |
0150 | 00100 | Перемещаем ПР вправо | |
0151 | 10001 | ПР над накопителем 2 | |
0152 | 00100 | Остановить движение ПР | |
0153 | ПБЛ | 22 | Перейти к блоку 22 |
0154 | НБЛ | 22 | Начало блока 22 |
0155 | 10001 | ПР над накопителем 2 | |
0156 | 10006 | Пока не сработает датчик SQ-6 | |
0157 | 00103 | Выдвигаем руку ПР | |
0158 | 10006 | Рука ПР выдвинута | |
0159 | 00103 | Закончить выдвижение руки | |
0160 | ПБЛ | 23 | Перейти к блоку 23 |
0161 | НБЛ | 23 | Начало блока 23 |
0162 | 10008 | Пока не сработает датчик SQ-8 | |
0163 | 00105 | Разжимаем схват | |
0164 | 10008 | Схват разжат | |
0165 | 00105 | Прекратить разжимание | |
0166 | ПБЛ | 24 | Перейти к блоку 24 |
0167 | НБЛ | 24 | Начало блока 24 |
0168 | 10005 | Пока не сработает датчик SQ-5 | |
0169 | 00102 | Задвигаем руку ПР | |
0170 | 10005 | Рука ПР задвинута | |
0171 | 00102 | Закончить задвижение руки | |
0172 | ПБЛ | 25 | Перейти к блоку 25 |
0173 | НБЛ | 25 | Начало блока 25 |
0174 | 10005 | При задвинутой руке | |
0175 | 10004 | До срабатывания датчика SQ-4 | |
0176 | 00101 | Перемещаем ПР влево | |
0177 | 10004 | ПР над ванной 1 | |
0178 | 00101 | Остановить движение ПР | |
0179 | ПБЛ | 26 | Перейти к блоку 26 |
0180 | НБЛ | 26 | Начало блока 26 |
0181 | 10004 | Над ванной 1 | |
0182 | 10006 | До срабатывания датчика SQ-6 | |
0183 | 00103 | Выдвигаем руку ПР | |
0184 | 10006 | Рука ПР выдвинута | |
0185 | 00103 | Закончить выдвижение руки | |
0186 | ПБЛ | 27 | Перейти к блоку 27 |
0187 | НБЛ | 27 | Начало блока 27 |
0188 | 10007 | Пока не сработает датчик SQ-7 | |
0189 | 00104 | Сжимаем схват | |
0190 | 10007 | Схват сжат | |
0191 | 00104 | Прекратить сжимание | |
0192 | ПБЛ | 28 | Перейти к блоку 28 |
0193 | НБЛ | 28 | Начало блока 28 |
0194 | 10005 | Пока не сработает датчик SQ-5 | |
0195 | 00102 | Задвигаем руку ПР | |
0196 | 10005 | Рука ПР задвинута | |
0197 | 00102 | Закончить задвижение руки | |
0198 | ПБЛ | 29 | Перейти к блоку 29 |
0199 | НБЛ | 29 | Начало блока 29 |
0200 | 10005 | При задвинутой руке | |
0201 | 10003 | До срабатывания датчика SQ-3 | |
0202 | 00101 | Перемещаем ПР влево | |
0203 | 10003 | ПР над накопителем 1 | |
0204 | 00101 | Остановить движение ПР | |
0205 | ПБЛ | 30 | Перейти к блоку 30 |
0206 | НБЛ | 30 | Начало блока 30 |
0207 | 10003 | Над накопителем 1 | |
0208 | 10006 | До срабатывания датчика SQ-6 | |
0209 | 00103 | Выдвигаем руку ПР | |
0210 | 10006 | Рука ПР выдвинута | |
0211 | 00103 | Закончить выдвижение руки | |
0212 | ПБЛ | 31 | Перейти к блоку 31 |
0213 | НБЛ | 31 | Начало блока 31 |
0214 | 10008 | Пока не сработает датчик SQ-8 | |
0215 | 00105 | Разжимаем схват | |
0216 | 10008 | Схват разжат | |
0217 | 00105 | Прекратить разжимание | |
0218 | ПБЛ | 1 | Перейти к блоку 1 |
2.5. Разработка электрической схемы соединений