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