В РКЭ программы управления выполнено структурирование программы путем разбиения ее на отдельные блоки. Блоки отрабатываются ПЛК последовательно, обеспечивая тем самым заданную последовательность выполнения тактов. В каждом блоке задана инструкция ПБЛ, обеспечивающая переход к заданному блоку. Все это необходимо для того, чтобы исключить возможные сбои и конфликты оборудования. Например, мы не можем начать перемещение промышленного робота в продольных направлениях, пока не убедимся, что рука робота находится в задвинутом положении.
Рассмотрим более подробно первую цепь (рис. 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. Разработка электрической схемы соединений