Текст
                    Э. Парр
2
Программируемые
контроллеры
Руководство для инженера

Programmable Controllers An engineer’s guide Third edition E. A. Parr, MSc, CEng, MIEE, MinstMC Newnes AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO
Э. Парр Программируемые контроллеры Руководство для инженера Перевод 3-го английского издания Б. И. Копылова Москва БИНОМ. Лаборатория знаний 2007
УДК 681.5 ББК 32.965 П18 Парр Э. П18 Программируемые контроллеры : руководство для инже- нера / Э. Парр ; пер. 3-го англ. изд. — М. : БИНОМ. Лабора- тория знаний, 2007. — 516 с. : ил. ISBN 978-5-94774-340-1 (русск.) ISBN 0-7506-5757-Х (англ.) Рассмотрены инженерные аспекты построения систем управления технологическими процессами с использованием программируемых ло- гических контроллеров (ПЛК). Приведена обобщенная структура ПЛК, рассмотрены интерфейс программиста и оператора ПЛК, а также ин- струментальные средства программирования, обмен данными по после- довательным каналам, принципы организации локальных сетей управ- ляющих ПЛК. Для инженеров-практиков, занимающихся автоматизацией произ- водства, студентов вузов, изучающих дисциплины, посвященные техни- ческим средствам автоматизации. УДК 681.5 ББК 32.965 По вопросам приобретения обращаться: БИНОМ. Лаборатория знаний Телефон: (499) 157-5272 e-mail: Lbz@aha.ru, http://www.Lbz.ru Copyright © Е. А. Рагг, 1993, 1999, 2003. All rights reserved. Перевод 3-го издания книги «Programmable Controllers» by Е. А. Parr опубликован по соглашению с Elsevier Ltd, The Boulevard, Langford Lane, Kidlington, OX5 IGB, England. ISBN 978-5-94774-340-1 (русск.) ISBN 0-7506-5757-Х (англ.) © Перевод на русский язык, БИНОМ. Лаборатория знаний, 2007
Памяти Артура Парра, 1913—1992. Самым замечательным из всех компьютеров по-прежнему явля- ется человек. Джон Ф. Кеннеди 21 мая 1961 г. Предисловие Все производственные процессы, которые должны протекать безо- пасно и экономически выгодно, нуждаются в системе управления того или иного вида. В последние годы получило распространение и кардинально изменило технику управления специальное устрой- ство, называемое программируемым контроллером, которое соче- тает в себе за умеренную цену как вычислительную мощность, так и значительную гибкость. Эта книга посвящена применению программируемых контрол- леров. Она не является руководством по программированию и ни- коим образом не служит для сравнения различных моделей про- граммируемых контроллеров, имеющихся на рынке. Выбор программируемого контроллера в известной степени подо- бен выбору текстового процессора. Вы спрашиваете людей об их мне- ниях, опробуете несколько простых моделей в магазине и покупаете наиболее дешевую из всех, которые, по вашему мнению, удовлетво- ряют необходимым требованиям. Только по прошествии нескольких месяцев вы узнаете реальные возможности покупки. С этого момен- та все другие текстовые процессоры кажутся вам неподходящими. Все программируемые контроллеры похожи. Хотя и существуют разумные основания для выбора конкретной модели (имеющийся технический опыт или навыки по эксплуатации, знакомство с обору- дованием, получаемым от внешних поставщиков, и другие подобные условия), все они имеют свои положительные стороны и недостатки (на самом деле, плохие машины уже давно исчезли из продажи). В компании Sheemess Steel, где я работаю, в управлении уста- новкой участвуют около шестидесяти программируемых контрол- леров моделей Allen Bradley PLC 2s и 5s, GEC (ныне CEGELEC) GEM-80s, ASEA (ныне ABB) Masters и Siemens SIMATIC S5s, а так- же небольшие машины, преимущественно компании Mitsubishi. Эти контроллеры представляют собой что-то подобное деревьям в Ущелье Галеонов из сказки про Винни-Пуха; их число никогда, по- видимому, не будет одним и тем же день ото дня, даже если вы об- мотаете кусок бечевки вокруг каждого из них! Предпосылкой для распространения контроллеров в промыш- ленности в основном являются исторические обстоятельства (на-
6 Программируемые контроллеры пример, первый из контроллеров компании Mitsubishi появился от внешнего поставщика как готовое к непосредственному использо- ванию устройство), но причиной для упоминания этих машин в данной книге является их доступность. Даже в пределах указанных выше семейств ПЛК (программиру- емых логических контроллеров) их охват в данной книге не являет- ся полным. Выбранные мною ПЛК, на примере которых я хочу ос- ветить вопросы их применения, не дают полной картины всего, что производится в этой области. В «предыдущих жизнях» я работал с ПЛК компаний AEG, GE, Landys and Gyr, Modicon, Telemecanique, Texas Instruments и многих других. Этим производителям я приношу искренние извинения за то, что уделил их продукции не так много внимания, но в против- ном случае книга получилась бы трудной для восприятия и отвлек- ла бы читателя от вопросов применения, что и было главной моей целью. Я успешно использовал все эти машины, и между ними нет существенной разницы в смысле стиля или философии (произво- дители, возможно, со мной не согласятся!). Поэтому совет будет таков: выбирайте машину, которая устроит вас, и не меняйте производителей по чисто экономическим соображе- ниям. Знание производителя, хорошие отношения с ним и стабиль- ность обеспечения запасными частями являются очень важными. Написание книги наподобие этой требует большой помощи, и я хотел бы поблагодарить Питера Барка и Дейва Уилсона из АВВ, Ад- риана Бишопа, Боба Ханта, Джулиана Филдинга, Джона Хэнском- ба, Хью Пикара, Дженни Холмс и Хенни Джекобс из Allen Bradley, Питера Бэйкниста, Дэвида Слингсби и Стюарта Уэбба из GEC/CEGELEC, Питера Хаулдсворта, Пола Джаджа, Аллана Нор- бэри, Дикона Пэрвиса, Пола Бретта и Аллана Рауорта из Siemens, и Крейга Раузелла, которые предоставили помощь в виде информа- ции об их машинах, сделали конструктивные замечания и обеспе- чили меня необходимым материалом и фотографиями. Мои коллеги-инженеры из Sheemess Steel также заслуживают похвалы за терпеливое отношение к моим ПЛК-системам. Они, не- сомненно, смогут сравнить то, о чем я хотел написать, с нашими действительными достижениями! Написание книги потребовало определенного времени, и моя семья за ее терпение заслуживает большой благодарности. Эндрю Парр, Минстер-он-Си, eaparr2002@yahoo.co.uk
Предисловие 7 Примечание ко второму изданию Это пересмотренное издание включает дополнительный материал, учитывающий последние разработки, и подчеркивает возрастаю- щее значение юридических аспектов безопасности и здоровья. Примечания к третьему изданию Это издание включает новую главу с примером применения много- звенных схем в типовых производственных процессах. Включены снимки экрана Windows, чтобы показать, как вводятся программы. Обновлен раздел, посвященный вопросам безопасности и здоровья, в частности приведены данные относительно стандарта IEC 61508.
1. Компьютеры и управление производством 1.1. Введение Очень немногим промышленным объектам можно позволить рабо- тать самим по себе, большинство же нуждаются в системе управления того или иного вида, чтобы обеспечить их безопасное и экономичное функционирование. На рис. 1.1 представлена типичная установка, состоящая из объекта и связанной с ним управляющей системы. Ее функции заключаются в преобразовании команд человека-оператора в соответствующие воздействия и представлении оператору инфор- мации о состоянии объекта. В простейшем случае объектом может служить вентилятор, вра- щаемый электромотором. Управляющей системой здесь является электрический пускатель с зашитой от перегрузки мотора и повре- ждений провода. Команды оператора заключаются в нажатии кно- пок пуск/стоп, а состояние объекта отображается в виде,«работа- ет/не работает», а также с помощью индикаторов неисправности. Другой крайний случай — когда объект является крупной нефте- химической установкой. Здесь управляющая система будет слож- ной, представляющей собой комбинацию различных видов обору- дования. Связь с оператором также будет совершенно иной, когда выдача команд и отображение информации осуществляются с по- мощью множества устройств. Человек Рис. 1.1. Простая система управления
Компьютеры и управление производством 9 В большинстве случаев оператор будет являться составной частью системы управления. Например, если загорается аварийная лампа «Уровень нефти ниже нормы», оператор обязан будет поднять его. 1.2. Типы стратегий управления Очень легко можно прийти в замешательство и быть потрясенным размерами и сложностью крупных производственных процессов. Большинство из них, если не все, можно упростить, рассматривая их состоящими из множества простых подпроцессов. Эти подпро- цессы в общем случае можно считать принадлежащими к трем раз- личным категориям. 1.2.1. Подсистемы текущего контроля Эти подсистемы отображают оператору состояние процесса и обра- щают его внимание на ненормальные условия или ошибки, требу- ющие его особого внимания. Состояние объекта измеряется соот- ветствующими датчиками. Цифровые датчики измеряют состояния, характеризующиеся дискретными значениями. Типичными примерами являются состоя- ния работа/остановка, вперед/выключено/назад, повреждено/ис- правно, ожидание/низкая/средняя/высокая, высокий уровень/нор- мальный/низкий уровень. Аналоговые датчики измеряют состояния, характеризующиеся непрерывным диапазоном значений, такие как температура, давление, расход или уровень жидкости. Результаты этих измерений представляются оператору с помо- щью индикаторов (для дискретных сигналов) либо стрелочных приборов или самописцев (для аналоговых сигналов). Сигналы могут также проверяться на наличие аварийных ситуа- ций. Типичными дискретными аварийными ситуациями являются срабатывание концевого выключателя при достижении механиз- мом предельного положения или автоматическая остановка элект- родвигателя при его перегрузке. Типичными аналоговыми аварий- ными ситуациями могут быть низкий уровень жидкости или высокая температура. Оператор должен быть проинформирован об этом при помощи предупреждающих сигнальных ламп и звуковой сигнализации. Система текущего контроля часто обеспечивает регистрацию потребления энергии и материалов, необходимую для отчетности, и создает протокол происшествий/аварий с целью анализа эксплу- атации оборудования в историческом плане. Например, насос мо- жет потребовать текущего ремонта после 5000 часов эксплуатации.
10 Программируемые контроллеры 1.2.2. Подсистемы последовательного действия Многие процессы протекают в соответствии с заранее установлен- ной последовательностью. Например, чтобы запустить газовую го- релку, изображенную на рис. 1.2, последовательность действий мо- жет быть следующей: (а) Стартовая кнопка нажата; если датчики показывают, что от- сутствует поток воздуха и нет пламени, то начать последова- тельность действий. (б) Нажать кнопку пуска вентилятора. Если привод вентилятора работает (проверяется нажатием на кнопку) и поток воздуха установлен (проверяется с помощью выключателя потока), то (в) Подождать две минуты (чтобы воздух очистил камеру от не- сгоревшего газа) и тогда (г) Открыть вспомогательный вентиль газа, зажечь воспламени- тель и (д) При наличии пламени (проверяется датчиком наличия/от- сутствия пламени) открыть основной вентиль газа. (е) Последовательность действий завершена. Горелка запушена. Она остается в таком состоянии до тех пор, пока не будет на- Рис. 1.2. Система управления последовательного действия (управление газовой горелкой)
Компьютеры и управление производством 11 жата кнопка остановки, или пока не прекратится подача воз- духа, или пока не погаснет пламя. Приведенная выше последовательность действий справедлива толь- ко в случае дискретных сигналов, но сигналы могут быть и аналого- выми. В процессе выпечки хлеба при замесе теста (рис. 1.3) анало- говые датчики используются для измерения веса и температуры, при этом последовательность действий выглядит так: 1. Открыть вентиль VI, пока не будет введено 250 кг продукта А. 2. Привести во вращение мешалку. 3. Открыть вентиль V2, пока не будет введено 310 кг продукта В. 4. Подождать 120 с (для полного перемешивания). 5. Довести температуру до 80 °C и поддерживать ее в течение 10 мин. 6. Выключить нагреватель. Позволить смеси остыть до 30 °C. 7. Прекратить перемешивание. 8. Открыть вентиль V3, пока вес не уменьшится до 50 кг. 1.2.3. Подсистемы управления с обратной связью Во многих непрерывных системах такие переменные, как темпера- тура, расход или давление, требуется автоматически поддерживать Рис. 1.3. Процесс замеса теста
12 Программируемые контроллеры на заданном уровне или изменять их в соответствии с заданными значениями, изменяющимися во времени. Например, на этапе 5 в приведенной выше процедуре заданную температуру 80 °C требует- ся поддерживать постоянной в течение 10 мин. Системы подобного рода можно представить в виде функцио- нальной схемы, изображенной на рис. 1.4. В ней определенную пе- ременную объекта (например, температуру), обозначенную PV (process variable — переменная процесса), требуется поддерживать на заданном уровне SP (setpoint — уставка). PV измеряется соответ- ствующим датчиком и сравнивается с SP, в результате чего образу- ется сигнал ошибки: ошибка = SP — PV. (1.1) Например, если мы имеем регулятор температуры, для которого уставка имеет значение 80 °C, а действительная температура равна 78 °C, то ошибка составляет 2 °C. Этот сигнал ошибки используется в алгоритме управления. Существует много различных алгоритмов управления, этот вопрос подробно рассматривается в главе 4, а про- стой алгоритм управления можно выразить словами «если ошибка от- рицательна, выключить нагреватель, если же ошибка положительна, то включить нагреватель». Выходной сигнал алгоритма управления поступает на исполни- тельное устройство, которое воздействует на объект. При управлении температурой исполнительным устройством может быть нагреватель, а при управлении расходом им может быть регулирующий вентиль. Алгоритм управления будет воздействовать на исполнительное уст- ройство до тех пор, пока ошибка не станет равной нулю, т. е. пока пе- ременная процесса не примет то же значение, что и уставка. На рис. 1.4 значение PV сравнивается с уставкой, благодаря че- му появляется термин «управление с обратной связью». Можно за- метить, что функциональная схема имеет вид замкнутого контура, Заданное Ошибка значение (SP - PV) Сигнал Воздействия Рис. 1.4. Замкнутая система управления
Компьютеры и управление производством 13 поэтому часто используется также термин «замкнутая система уп- равления». Поскольку процесс управления является непрерывным, то зна- чение управляемой переменной PV можно заставить отслеживать изменяющуюся величину уставки SP. Благодаря этому, например, можно поддерживать заданное соотношение воздух/газ для горел- ки, несмотря на изменяющуюся степень горения. 1.2.4. Управляющие устройства Вышеупомянутые три типа стратегий управления могут быть реали- зованы различными способами. Системы текущего контроля и ава- рийной сигнализации можно реализовать, подключив датчики, уста- новленные на объекте, к дисплеям, индикаторам и сигнальным устройствам. Иногда системы аварийной сигнализации требуют ис- пользования определенного вида логики. Например, когда включает- ся насос, вы можете получить аварийный сигнал о низком давлении в гидравлической магистрали, поэтому необходима некоторая времен- ная задержка, чтобы после начала работы насоса позволить устано- виться давлению. После этого если давление остается низким (на- пример, из-за утечки жидкости), то это приведет к остановке насоса. Системы последовательного действия можно построить на ос- нове реле в сочетании с таймерами, шаговыми искателями и подоб- ными электромеханическими устройствами. В больших системах можно использовать дискретную логику (обычно на основе инте- гральных ТТЛ- или КМОП-схем), хотя изменения в коммутацию печатных плат внести гораздо сложнее, нежели в релейные схемы. Многие машины реализуются на основе логических блоков — аппа- ратных модулей, содержащих логические вентили, элементы памя- ти, таймеры и счетчики, которые коммутируются с помощью клемм на передней панели блока для выполнения заданной опера- ции. Как и в релейной системе, здесь достаточно просто можно внести необходимые изменения. Замкнутую систему управления можно реализовать, используя регуляторы, построенные на основе усилителей постоянного тока, таких как широко распространенные усилители типа 741. В систе- ме, изображенной на рис. 1.4, фукнии управляющего устройства обычно выполняет выпускаемый серийно грехканальный регуля- тор (описываемый подробно в главе 4). В химических (и особенно в нефтехимических) производствах наличие потенциально взрыво- опасных компонентов вынуждает использовать пневматические регуляторы, а все сигналы на рис. 1.4 представляют собой давление сжатого воздуха.
14 Программируемые контроллеры 1.3. Использование компьютера Компьютер — это устройство, которое выполняет заранее установ- ленные операции над входными данными, чтобы образовать новые выходные данные; его можно представить в виде рис. 1.5 (а). Для ком- пьютера, используемого при составлении платежной ведомости, входными данными должны быть фамилии сотрудников, ставки ок- ладов и отработанные часы. Эти данные должны быть обработаны в соответствии с записанными инструкциями, учитывающими теку- щие налоги и пенсионные отчисления, чтобы в результате образовать выходные данные в виде уведомлений о зарплате (или, что более со- временно, осуществить прямые перечисления на банковские счета). Ранние компьютерные системы выполняли в основном ком- мерческие функции: расчет зарплаты, бухгалтерские вычисления, осуществление банковских операций и т. п. Действия сводились, как правило, к групповым (пакетным) операциям, например к еже- дневному обновлению информации о товарах на складе. Схема, изображенная на рис. 1.5 (а), отождествляет управляю- щую систему, представленную отдельным блоком на рис. 1.1, кото- рый можно перерисовать, включив в него компьютер; в результате получим схему вида рис. 1.5 (б). Заметим, что действия оператора не являются инструкциями, а представляют собой часть входных данных. Инструкции же определяют, какое действие следует ис- пользовать в качестве входных данных (как со стороны объекта, так и оператора). Выходные данные соответствуют управляющим дей- ствиям, прикладываемым к объекту, и информации, отображаемой оператору. Инструкции Команды Информация Компьютер -° И Cf СО Компьютер Выходные 'данные р s S Сигналы на исполнительные Объект Рис. 1.5. Компьютер в управлении промышленным объектом: (а) простое представление компьютера; (б) компьютер как часть системы управления
Компьютеры и управление производством 15 В первое время компьютеры были громоздкими, дорогими и медленными. Быстродействие не столь важно при обработке ком- мерческих данных в пакетном режиме (занимающиеся этим про- граммисты, возможно, не согласятся со мной!), но оно имеет наи- высший приоритет в управлении производством, которое должно осуществляться в «реальном времени». Многие аварийные ситуа- ции требуют реакции на них в какие-то доли секунды. Коммерческие компьютеры (слово «коммерческие» означает компьютеры, предназначенные для решения экономических задач) работали также по принципу получения входных данных с перфо- карт или клавиатуры и выдачи выходных данных на принтеры. В производственных процессах необходимы сотни устройств, чтобы в реальном времени считывать данные и посылать сигналы на вен- тили, электродвигатели, измерительные приборы и т. д. Существовала также проблема окружающей среды. Коммерче- ские компьютеры создавались для работы практически в чистой ат- мосфере (как в операционной), свободной от пыли, причем изме- нение температуры окружающей среды допускалось лишь в пределах нескольких градусов. В промышленности такие условия создать практически невозможно. Первое промышленное применение компьютера, по-видимому, относится к системе диспетчерского управления, внедренной на нефтеперегонном заводе в Порт-Артуре (США) в 1959 г. В ту пору на- дежность компьютеров и среднее время между отказами были тако- вы, что это делало их малопригодными для использования в управ- лении, и их роль сводилась к функциям, описанным в разделе 1.2.1. 1.3.1. Архитектуры компьютера Чтобы эффективно использовать компьютер, вовсе не обязательно детально разбираться, как он работает. Тем не менее, чтобы приме- нять компьютер для управления производством, полезно иметь представление о его устройстве. Рис. 1.5 (о) можно представить в развернутом виде, как показано на рис. 1.6. Эта блок-схема (свойственная всему диапазону — от порта- тивного домашнего компьютера до большой универсальной коммер- ческой вычислительной машины) содержит шесть составных частей. 1. Входное устройство, в котором данные из внешнего мира вводятся в компьютер для обработки. 2. Запоминающее устройство, или память, где хранятся инст- рукции, которые должен выполнять компьютер, и данные, которые он должен обрабатывать. Эти данные могут предста-
16 Программируемые контроллеры влять собой информацию, полученную из внешнего мира, или промежуточные результаты вычислений, выполненных машиной. Память состоит из ряда ячеек, каждая из которых хранит одно число и идентифицируется адресом, как показа- но на рис. 1.7. Компьютеры работают с данными, представ- ленными в двоичной системе (описание двоичной, шестнад- цатеричной и других систем счисления см. в Приложении), и память не различает смысл данных, хранящихся в ней. На- пример, в 8-разрядном компьютере (работающем с числами, длина которых составляет 8 бит) число 01100001 можно ин- терпретировать как: (а) Десятичное число 97. (б) Шестнадцатеричное число 61 (см. Приложение). (в) Букву «а» (см. главу 6). (г) Состояние восьми концевых выключателей, заданное дис- кретными сигналами. (д) Инструкцию для компьютера. Если это старый микропро- цессор Z80, то шестнадцатеричное 61 перемещает число ме- жду двумя внутренними ячейками памяти. Типичный настольный компьютер использует 16-разрядные числа (называемые 16-битовыми словами) и имеет более миллиона ячеек памяти. Промышленные компьютеры, кото- рые мы в основном будем рассматривать, имеют гораздо меньшую память — от 32 000 до 64 000 ячеек, что наиболее ти- пично для больших управляющих машин, но имеются и меньшие машины всего с 1000 ячеек памяти. Расширенная (поддерживающая) память Входные данные Входное устройство Запоминающее устройство (память) Выходное устройство Выходные данные Устройство управления Арифметико- логическое устройство (АЛУ) Рис. 1.6. Составные части компьютера
Компьютеры и управление производством 17 Рис, 1.7. Простое представление памяти компьютера 3. Данные из памяти могут быть извлечены очень быстро, но коммерческие компьютеры часто требуют очень больших объемов памяти, чтобы хранить такие детали, как банков- ские счета или имена и адреса. Данные такого типа не требу- ют особенно быстрого доступа и хранятся во внешнем запо- минающем устройстве, роль которого обычно выполняют магнитные диски или ленты, называемые вспомогательной или поддерживающей памятью. В компьютерах, которые мы будем рассматривать, подобные запоминающие устройства используются не так широко. 4. Выходное устройство, с помощью которого данные из ком- пьютера выводятся во внешний мир. 5. Арифметико-логическое устройство (сокращенно — АЛУ), выполняющее операции над данными, хранящимися в памя- ти, в соответствии с заданными инструкциями. 6. Устройство управления, координирующее работу остальных пяти устройств. Часто АЛУ и устройство управления, объеди- ненные вместе, называются центральным процессором (ЦП). Микропроцессор — это ЦП, выполненный в виде од- ной интегральной схемы. Инструкции, выполняемые компьютером, хранятся в памяти и, за несколькими исключениями, которые будут кратко рассмот- рены ниже, исполняются последовательно, как показано на рис. 1.8 (а).
18 Программируемые контроллеры Последова- тельность инструкций, если условие выполнено Рис. 1.8. Выполнение программы в компьютере: (а) простая последовательность операций; (б) условный переход; (в) вызов подпрограммы Устройство управления содержит счетчик, называемый регист- ром команд (или РК), который сообщает, по какому адресу в памя- ти должна быть найдена следующая инструкция. Иногда использу- ется термин «счетчик команд» (сокращенно — СК). После выполнения каждой инструкции устройство управления читает содержимое ячейки памяти, адрес которой хранится в РК. Число, находящееся в этой ячейке, сообщает устройству управле- ния, какую инструкцию необходимо выполнить. Инструкции почти всегда требуют выполнения определенных операций над данными в памяти (например, сложить два числа), поэтому устройство управления должно перенести данные из памя- ти в АЛУ и выполнить необходимое действие. Если инструкция выполнена, устройство управления увеличи- вает на единицу содержимое счетчика команд, поэтому он теперь указывает адрес следующей инструкции. Существует очень немного типов инструкций. Для большинства микропроцессоров доступны следующие: 1. Пересылка данных из одного места в другое (например, по- местить входные данные в ячейку памяти или переслать дан- ные из ячейки памяти в АЛУ).
Компьютеры и управление производством 19 2. Операции АЛУ над двумя элементами данных, один из кото- рых находится в АЛУ, а другой в определенной ячейке памя- ти. Обычно это сложение, вычитание и логические опера- ции, такие как И, ИЛИ. 3. Переходы. На рис. 1.8 (о) подразумевалось, что компьютер по- следовательно выполняет простой перечень инструкций. Обыч- но это именно так, но бывают случаи, когда необходима провер- ка некоторого условия. Это выглядит следующим образом: IF (некоторое условие) THEN Выполнить некоторые инструкции ELSE Выполнить ряд других инструкций Например, чтобы проверить температуру, мы могли бы записать: IF Температура меньше, чем 75 °C THEN Включить индикатор исправности Выключить индикатор неисправности ELSE Выключить индикатор исправности Включить индикатор неисправности Такие операции используют условные переходы. Они поме- щают в регистр команд новый адрес в зависимости от послед- него результата в аккумуляторе. Условные переходы можно определить как действия, зависящие от некоторого результа- та вычислений (положительного, отрицательного или нуле- вого) и позволяющие программе следовать по одному из двух альтернативных путей, как показано на рис. 1.8 (б). 4. Подпрограммы. Многие операции требуют многократного по- вторения в пределах одной и той же программы. В промыш- ленной системе управления, где расход измеряется с помощью пластины с отверстием, требуется многократное обращение к функции извлечения квадратного корня (расход пропорциона- лен квадратному корню из перепада давления на пластине с от- верстием). Вместо того,чтобы несколько раз писать одну и ту же инструкцию (что требует определенных усилий и затрат па- мяти), инструкция-подпрограмма позволяет временно переда- вать действия определенной подпрограмме из разных мест ос- новной программы, возвращаясь к инструкции, следующей после вызова подпрограммы, как показано на рис. 1.8 (в).
20 Программируемые контроллеры 1.3.2. Программирование в машинном коде и на языке ассемблера Последовательность необходимых нам инструкций (называемая «программой») должна быть написана и загружена в компьютер. На самом элементарном уровне, называемом программированием в ма- шинном коде, инструкции записываются в виде используемой ма- шиной строки чисел. Делать это трудно, велика вероятность ошиб- ки, и впоследствии практически невозможно вносить изменения. Последовательность чисел 16 00 58 21 00 00 06 08 29 17 D2 0Е 40 19 05 С2 08 40 С9 в действительности представляет собой подпрограмму умножения, на- чинающуюся по адресу 4000 для микропроцессора Z80, но даже опыт- ному программисту потребуются справочники (и изрядное количество времени), чтобы составить последовательность из этих 19 чисел. Программирование на языке ассемблера вместо кода в виде строки чисел подразумевает использование мнемоники, что позво- ляет программисту записывать инструкции в легко понимаемой последовательности. Например, в случае LOAD Temperature SUB 75 JUMP POSITIVE to Fault_Handler довольно просто понять все, что происходит. Специальная компьютерная программа, называемая ассембле- ром, преобразует программу, написанную программистом с ис- пользованием мнемоники (называемую исходной), в эквивалент- ную программу в машинном коде (называемую объектной), которая затем может быть выполнена. Написание программ на языке ассемблера, однако, сопряжено с затратами труда, поскольку каждой инструкции в машинном коде соответствует одна инструкция на языке ассемблера. 1.3.3. Языки высокого уровня Запись программ на языке ассемблера является достаточно труд- ной, поэтому были разработаны способы написания программ в стиле, напоминающем обычный английский язык. Это достигается с помощью так называемых «языков высокого уровня», из которых, возможно, наиболее известны Pascal, FORTRAN и широко распро- страненный BASIC (существует еще очень много других языков:
Компьютеры и управление производством RPG, FORTH, LISP, CORAL, С и другие — каждый со своими при- влекательными особенностями). На языке высокого уровня программист записывает инструкции в виде, очень похожем на английский. Например, приведенная ни- же программа на языке Pascal выдает распечатку требуемой табли- цы умножения, program multtable (input, output); var number, count: integer begin readln (‘Which table do you want’, number); for count = 1 to 10 do writein (count, ‘times’, number, ‘is’, count*number); end. (of program) Даже если читатель не знаком с языком Pascal, работа программы совершенно понятна (если, например, потребуется изменить таб- лицу и выполнить операцию умножения не десять, а двадцать раз, то очевидно, в какой строке нужно произвести изменение). Исходная программа на языке высокого уровня может быть вы- полнена двумя различными способами. Компилятор — это про- грамма, которая преобразует целиком программу на языке высоко- го уровня в объектную программу в машинном коде. Затем полученная объектная программа может быть выполнена незави- симо от исходной программы или компилятора. В случае использования интерпретатора как исходная програм- ма, так и интерпретатор присутствуют в машине во время выполне- ния. Интерпретатор просматривает каждую из строк исходного ко- да, преобразуя их в эквивалентную инструкцию в машинном коде по мере их выполнения. Объектная программа при использовании интерпретатора не создается. Компилируемая программа выполняется намного быстрее, чем интерпретируемая (обычно в 5—10 раз, поскольку интерпретатор должен осуществлять дополнительные операции), и скомпилиро- ванная объектная программа будет гораздо меньше, чем эквива- лентная исходная программа для интерпретатора. Компиляторы тем не менее не столь просты в использовании, о чем свидетельст- вует следующая типичная последовательность: 1. В компьютер загружается текстовый редактор. 2. Исходная программа вводится с клавиатуры или загружается с диска.
22 Программируемые контроллеры 3. Полученный исходный файл сохраняется на жестком диске. 4. Компилятор загружается с диска и затем запускается на вы- полнение. 5. Исходный файл загружается с жесткого диска. 6. Начинается процесс компиляции (это потребует нескольких минут). Если обнаруживаются какие-либо ошибки, необхо- димо вернуться к шагу 1. 7. Создается объектная программа, которая может быть сохра- нена на жестком диске и/или запущена на выполнение. При обнаружении каких-либо ошибок при выполнении необхо-‘ димо вернуться к шагу 1. Язык интерпретатора намного проще в применении, и для многих прикладных задач потеря скорости не является существенной. Как правило, BASIC является интерпретируемым языком, a Pascal, С и FORTRAN — компилируемыми. Рис 1.9 наглядно представляет ра- боту с компилируемыми и интерпретируемыми языками высокого уровня. 1.3.4. Прикладные программы По мере того как компьютеры получают все более широкое распро- странение, разрабатываются программы, которые позволяют поль- зователю всего лишь указать задачи, подлежащие решению, и не особо заботиться о том, как компьютер будет это делать. Такие про- граммы называются прикладными; их типичными примерами яв- ляются электронные таблицы, такие как Lotus 123 и Excel, а также базы данных, такие как Approach и Access. Работая с ними, пользо- ватель определяет, какие сложные математические действия или операции с базами данных должны быть произведены, не занима- ясь «программированием» компьютера в обычном смысле этого слова. 1.3.5. Требования к компьютерам промышленного назначения К компьютерам, используемым в промышленности, предъявляют- ся совершенно иные требования, чем к машинам, решающим раз- нообразные прикладные задачи. Эти требования необходимо рас- смотреть более детально. Обычный компьютер, схематически изображенный на рис. 1.10 (а), получает данные, как правило, с клавиатуры, а выводит данные на дисплей или принтер. Обрабатываемые данные — это обычно бу- квы или цифры (например, наименования и количества товаров, указанные в инвентарной книге магазина).
Компьютеры и управление производством 23 а Пользователь Рис. 1.9. Компилируемые и интерпретируемые языки высокого уровня: (а) компилируемая программа (например, на языках Pascal, С); (б) интерпретируемая программа (например, большинство версий языка BASIC)
24 Программируемые контроллеры Совсем иначе обстоит дело с управляющим компьютером, изо- браженным на рис. 1.10 (б). На его вход поступают сигналы от боль- шого количества разнообразных устройств. Хотя некоторые из них представлены числами (значения расхода, температуры, давления и других аналоговых величин), большинство будут дискретными однобитовыми сигналами типа «включено/выключено». Аналогично, в данном случае будет иметь место большое количест- во выходных сигналов — как цифровых, так и аналоговых. В неболь- ших системах управления компьютер может иметь около 20 входных и выходных сигналов; для систем средних размеров характерны цифры более 200 входов и выходов. Клавиатура, дисплей и принтер могут ис- пользоваться, хотя и не обязательно, и их функции, по-видимому, бу- дут отличны от тех, которые свойственны обычному настольному компьютеру или универсальной вычислительной машине. Хотя такое количество сигналов и возможно подключить к обычному компьютеру, это требует нестандартных соединительных деталей и внешних блоков. Аналогично, хотя для большого количе- ства входных и выходных сигналов программирование может быть выполнено на языках Pascal, BASIC или С, тем не менее эти языки предназначены совсем для других целей, и результат может быть весьма далеким от желаемого. Дискретные (цифровые) От оператора и датчиков на объекте Дискретные (цифровые) выходы входы б На дисплей оператора и исполнительные устройства Рис. 1.10. Различие между обычным и управляющим компьютерами: (а) обычный компьютер; (б) компьютер, управляющий промышленным объектом
Компьютеры и управление производством 25 На рис. 1.11 (о), например, изображена простая стартовая систе- ма для двигателя. Ее можно представить как цепь, управляемую компьютером, см. рис. 1.11 (б). Два входных сигнала определяются адресами 1 и 2, а выходной сигнал (релейный стартер) — адресом 10. Если предположить, что в программе имеются функция bitread(N), которая определяет состояние двигателя (включе- но/выключено) по адресу N, и процедура bitwrite(M, var), которая пересылает значение переменной var по адресу М, то действия, со- ответствующие рис. 1.11, можно описать следующим образом: repeat start: = bitread(1); stop: - bitread(2); run: = ((start) or (run)) & stop; bitwrite (10, run); until hellfreezesover где start, stop и run являются однобитовыми переменными. Про- грамма, однако, не слишком понятна, и мы имеем всего три под- ключения. L (питание) Пуск (нейтральная шина) дискретного входа дискретного выхода Рис. 1.11. Сравнение схем запуска двигателя: (а) проводная схема с фиксированным монтажом; (б) схема с использованием компьютера
26 Программируемые контроллеры Программа для компьютера, управляющего промышленным объектом, редко когда остается неизменной в течение всего време- ни ее использования. Изменения в работе объекта всегда заставля- ют вносить изменения и в программу. Последние должны осущест- вляться обслуживающим персоналом, причем с минимальным вмешательством (а лучше всего — без такового) в работу объекта. Например, на рис. 1.11 добавление второй кнопки «старт» и второй кнопки «стоп» было бы не слишком простой задачей. • Вообще говоря, управляющий компьютер работает в реальном масштабе времени, т. е. он должен реагировать на возможные слу- чайные события немедленно после их появления. Оператор ожида- ет запуска двигателя (а еще важнее — его остановки!) в течение до- лей секунды после того, как была нажата соответствующая кнопка. Хотя в коммерческих вычислениях желательно использовать быст- родействующие компьютеры, пользователь вряд ли заметит разни- цу между временем вычислений в одну или две секунды при работе с электронной таблицей. При управлении промышленным объек- том такая разница недопустима. Время играет очень важную роль в стратегии управления (на- пример, включить вентилятор, подождать 10 с, чтобы воздух очистил камеру, открыть вспомогательный вентиль газа, подождать 0.5 с, включить воспламенитель, подождать 2.5 с, затем, если пламя поя- вилось, открыть основной вентиль газа). Подобную последователь- ность действий трудно описать с помощью обычных языков про- граммирования. Большинство неисправностей в системах управления обусловли- ваются внешними устройствами (концевыми выключателями, соле- ноидами и т. п.), а не сбоями в работе управляющего компьютера. Например, решение о начале работы объекта может быть принято на основании сигналов, характеризующих наличие потока охлажда- ющей воды, давление масла или температуру (все — в допустимых диапазонах). Для быстрого обнаружения неисправности обслужива- ющий персонал должен иметь возможность контролировать функ- ционирование компьютерной программы во время ее выполнения. Если, как это обычно бывает, имеется порядка десяти блокирующих друг друга сигналов, позволяющих запустить двигатель, персонал в случае неисправности должен быть способен быстро проверить все эти сигналы. При использовании обычного компьютера этого мож- но добиться только путем еще более сложного программирования. Источники питания в промышленности оказывают негативное влияние на аппаратуру и человека: это пуск и остановка мощных электродвигателей, тиристорные усилители, которые накладывают
Компьютеры и управление производством 27 импульсные помехи и высшие гармоники на основные источники питания. Для человека все это ощущается как мерцание света; в компьютерах же это может привести к искажению данных в памя- ти или даже к отказу машины. Из вышеприведенного следует, что компьютер, управляющий промышленным объектом, должен быть способен нормально рабо- тать при таких «грязных» источниках питания и адекватно реагиро- вать на любые пропадания питания. Некоторые выходные сигналы должны возвращаться к тем значениям, которые они имели до про- пажи питания; другие восстанавливаются или отменяются опера- тором путем соответствующих действий. Проектировщик должен знать, что случится после восстановления питания. Немаловажным фактором являются также условия окружающей среды. Большие универсальные вычислительные машины обычно размещаются в помещении, оборудованном кондиционерами, где поддерживается постоянная температура 20 °C и тщательно конт- ролируется влажность. Настольный ПК будет нормально функцио- нировать в относительно постоянных условиях, потому что человек не работает в экстремальной обстановке. Промышленный же ком- пьютер, вероятно, должен будет работать без вмешательства чело- века при температурах от —10 °C зимой до +40 °C летом. Хуже все- го то, что эти колебания температуры приводят к постоянному растяжению и сжатию компонентов компьютера, а это может вы- звать его быстрый отказ, если данный фактор не принять во внима- ние при проектировании системы. К этим температурным перепадам следует добавить наличие пы- ли и грязи. Очень немногие производственные процессы являются чистыми, и пыль проникает повсюду (даже в помещения со степе- нью защиты IP55, потому что эта степень удовлетворяется только тогда, когда двери закрыты и заперты; степени защиты IP рассмат- риваются в разделе 8.4.2). Пыль будет попадать в соединительные разъемы, и, если они низкого качества, возможно возникновение неисправностей, которые очень трудно обнаружить. В большинстве случаев, связанных с применением компьютера, ошибка при программировании или неисправность машины может в конечном счете обойтись очень дорого. Если отказывает компью- тер, управляющий промышленным объектом, или программист плохо представляет себе работу этого объекта, это может быть чре- вато травмами или даже фатальным исходом. В соответствии с дей- ствующим в Великобритании законом об охране здоровья и безо- пасности на производстве, инженеры-проектировщики в подобных случаях могут быть привлечены к суду. Поэтому каждому из них при
28 Программируемые контроллеры проектировании системы управления следует соблюдать чрезвычай- ные меры предосторожности. Требования, предъявляемые к компьютеру, управляющему про- мышленным объектом, являются весьма жесткими и сводятся к следующему: 1. Он должен быть способен функционировать в таких произ- водственных условиях, которые характеризуются темпера- турными перепадами, наличием грязи и некачественной се- тью электропитания. 2. Он должен быть способен работать с дискретными входны- ми/выходными сигналами в виде напряжений, характерных для промышленности (от 24 В постоянного тока до 240 В пе- ременного тока), а также с аналоговыми входными/выход- ными сигналами. 3. Язык программирования должен быть понятен обслуживаю- щему персоналу (например, электрикам), не имеющему спе- циальной подготовки. 4. Он должен иметь возможность непрерывно контролировать работу объекта, чтобы помочь в обнаружении неисправностей. Надо учитывать, что большинство неисправностей будут воз- никать во внешних устройствах, таких как концевые выключа- тели, датчики и исполнительные механизмы, и управляющий компьютер должен быть способен наблюдать за их работой. 5. Для управления в реальном времени система должна обла- дать достаточным быстродействием. На практике «достаточ- ное быстродействие» означает время реакции порядка 0.1 с, но оно может варьироваться в зависимости от конкретной задачи и используемого управляющего устройства. 6. Пользователь должен быть избавлен от применения компью- терного жаргона. 7. Основное внимание должно быть уделено безопасности. 1.3.6. Программируемый контроллер В конце 1960-х гг. компания General Motors, производитель аме- риканских автомобилей, заинтересовалась применением компь- ютеров для замены релейной программы, используемой при уп- равлении сборкой автомобилей на своих заводах. В 1969 г. она разработала требования к промышленному компьютеру, анало- гичные тем, которые приведены в конце раздела 1.3.5. Две компании, Bedford Associates (позже получившая название Modicon) и Allen Bradley, независимо друг от друга откликнулись на
Компьютеры и управление производством 29 Рис. 1.12. Составные части ПЛК: (а) один из ранних ПЛК; (б) типичная стойка с платами требования GM. Каждая компания разработала компьютерную сис- тему, подобную изображенной на рис. 1.12, которая имела некоторое сходство с сегодняшними промышленными мини-компьютерами. Собственно компьютер, называемый центральным процессором, был спроектирован так, чтобы быть способным работать в промыш-
30 Программируемые контроллеры ленных условиях, и связывался с внешним миром с помощью стоек, в которых можно было вмонтировать входные или выходные платы. В этих первых машинах по сути было четыре различных типа плат: 1. Плата дискретного входа постоянного тока (DC). 2. Плата дискретного выхода постоянного тока (DC). 3. Плата дискретного входа переменного тока (АС). 4. Плата дискретного выхода переменного тока (АС). Каждая плата должна была принимать 16 входных сигналов или об- разовывать 16 выходных сигналов. Таким образом, стойка с восе- мью платами могла быть связана со 128 устройствами. Существен- но, что размещение плат определялось самим пользователем, что позволяло добиться большой гибкости. На рис. 1.12 (б) пользова- тель установил одну входную плату DC, одну выходную плату DC, три входные платы АС и две выходные платы АС, оставив одну ре- зервную позицию для использования в будущем. В результате эта стойка может работать • с 16 входными сигналами постоянного тока; • с 16 выходными сигналами постоянного тока; • с 48 входными сигналами переменного тока; • с 16 выходными сигналами переменного тока. Разумеется, не все эти сигналы должны были использоваться. Однако главной идеей было использование языка программиро- вания, основанного на релейной принципиальной схеме, где вход- ные сигналы (от концевых выключателей, кнопок и т. д.) представ- лялись в виде контактов реле, а выходные (к соленоидам, пусковым устройствам двигателей, лампам и т. д.) — в виде обмоток реле (кату- шек). На рис. 1.13 изображен простой гидроцилиндр, перемещение которого вперед или назад можно задать пусковыми кнопками (Кн.). Направление движения определяется концевыми выключате- лями (КВ), которые размыкаются в конечной точке перемещения, а соленоид работает только в том случае, если включен гидравличе- ский насос. Управление гидроцилиндром можно было бы осущест- вить с помощью компьютерной программы, идентичной релейной схеме, изображенной на рис. 1.13 (б), используемой для той же цели. Подобные программы выглядят как ступеньки на лестнице, откуда и появилось название «многоступенчатая схема»1. 1 В литературе чаще используется термин «многозвенная схема». — Прим. пер.
Компьютеры и управление производством 31 . Включение а КВ вперед Включение Соленоид Соленоид вкл. насоса «назад» «вперед» КВ назад Включение Соленоид Соленоид вкл. насоса «вперед» «назад» 1ННН) б Рис. 1.13. Пример применения ПЛК. (а) Гидроцилиндр, управляемый ПЛК. (б) Программа в виде многозвенной схемы для управления гидроцилиндром. В схеме использованы принятые в США обозначения: -] [- обозначает, что сигнал присутствует, -]/[- обозначает, что сигнал отсутствует Программа вводилась с помощью терминала для программирова- ния, на клавишах которого были изображены символы релейных схем (нормально разомкнугые/нормально замкнутые контакты, обмотки, таймеры, счетчики, параллельные ветви и т. д.), с которыми должен быть знаком электрик, обслуживающий систему. На рис. 1.14 изобра- жена клавиатура программиста, использовавшаяся в ранних ПЛК. На- значение большинства клавиш должно быть очевидным. Программа, появляющаяся на экране в виде схемы, подобной рис. 1.13 (б), должна выделять активизированные контакты и обмотки, позволяя использо- вать терминал для оперативного обнаружения неисправностей.
32 Программируемые контроллеры SL О 1 Q СЗ ES Q СЗ 3 Е Ш ЕЯ РТГ1Х1ЛШПСПППП па@® ЛЕШ ELDED Клавиши: 1 - цифровые, 2 - релейные; 3 - таймер/ счетчик; 4 - обработка данных; 5 - арифмети- ческие операции; 6 - редакти- рование; 7 - управление о 31П Н Q СЗ S3 S3 Ш СЗI Рис. 1,14. Клавиатура терминала для программирования первого ПЛК Allen Bradley (с разрешения Allen Bradley) Чтобы предотвратить разрушение памяти процессора или поте- рю программы в случае пропажи питания, были предусмотрены дублирующие батареи. Программы можно было хранить на кассет- ном магнитофоне, что позволяло использовать различные рабочие операции (а следовательно, и программы) для производства раз- личной продукции. Эти машины получили название «программируемые контролле- ры», или ПК. Использовалось также название «программируемый логический контроллер» (ПЛК), но это, строго говоря, была зареги- стрированная торговая марка компании Allen Bradley. К сожалению, позднее аббревиатуру ПК стали использовать для обозначения персо- нального компьютера, и это внесло путаницу в миры программируе- мых контроллеров и персональных компьютеров, тем более что те- перь портативные и персональные компьютеры используются в качестве терминалов для программирования. Чтобы избежать пута- ницы, мы будем использовать аббревиатуру ПЛ К для программируе- мого контроллера, а ПК — для персонального компьютера. Примеры программных средств для современных ПК приведены в разделе 2.12. 1.4. Входные/выходные соединения 1.4.1. Входные платы Внутренние схемы компьютера обычно работают при напряжении питания 5 В постоянного тока. Внешние устройства (соленоиды, электродвигатели, концевые выключатели и т. д.) работают при на- пряжениях до 110 В переменного тока. Смешение этих двух напря- жений может вызвать серьезные и, возможно, неустранимые по-
Компьютеры и управление производством 33 вреждения электронных устройств ПЛК. Менее очевидные пробле- мы могут возникнуть из-за электрических «помех», создаваемых внутри ПЛК скачками напряжения в сигнальных линиях или тока- ми нагрузки в нейтральном проводе источника переменного тока или обратном проводе источника постоянного тока. Определенные проблемы могут также возникнуть из-за разных потенциалов зазе- мления корпуса ПЛК и внешнего объекта управления. Влияние помех обсуждается далее в главе 8, однако совершенно очевидно, что было бы разумным отделить источник питания объ- екта от источника питания ПЛК некоторым электрическим барье- ром, как показано на рис. 1.15. Это гарантирует, что что бы ни слу- чилось на стороне объекта, оно не окажет негативного влияния на ПЛК. Даже повреждение кабеля, вызывающее попадание 415 В пе- ременного тока на вход постоянного тока, приведет всего лишь к выходу из строя входной платы; сам же ПЛК (и остальные платы) от этого не пострадает. Подобную развязку цепей питания можно осуществить оптиче- ски, с помощью светодиода и фототранзистора, как показано на рис. 1.16 (а). Когда через диод D1 проходит ток, он излучает свет, заставляя открыться транзистор TR1. Поскольку между диодом и транзистором отсутствует электрическое соединение, достигается очень хорошая электрическая изоляция (обычно с пробивным на- пряжением 1—4 кВ). Рис. 1.15. Защита ПЛК от внешних повреждений: источник питания ПЛК L1/N1 отделен от источника питания объекта L2/N2
34 Программируемые контроллеры Питание объекта + Сигнал Источник питания схем ПЛК +Ve Сигнал к центральному процессору ПЛК Источник питания схем ПЛК -Ve а б Источник перем, тока Один канал входной платы Питание 'е Сигнал к централь- ному процессору ПЛК Питание -Ve в Рис. 1.16. Оптическая изоляция входов: (а) оптический изолятор; (б) входная плата постоянного тока; (в) входная плата переменного тока
"пьютер! । и управление производством 35 Вход по постоянному току можно организовать так, как пока- зано на рис. 1.16 (б). Если кнопка нажата, через диод D1 будет протекать ток, заставляя TR1 открыться и пропускать сигнал к внутренней логике ПЛК. Светодиод D2 используется в качестве обнаружителя неисправности и указывает, когда входной сигнал присутствует. Такие индикаторы имеются почти на всех входных и выходных платах ПЛК. Резистор R служит для установки диапа- зона напряжения входного сигнала. Входные платы постоянного тока обычно рассчитаны на один из трех диапазонов напряже- ния: 5 В (для ТТЛ), 12-24 В, 24-50 В. На рис. 1.16 (в) показана возможная входная цепь для сигнала переменного тока. Мостовой выпрямитель используется для преоб- разования этого сигнала в пульсирующий сигнал с постоянной со- ставляющей. Резистор /?2 и конденсатор С1 действуют как фильтр (с постоянной времени около 50 мс), чтобы сгладить сигнал, посту- пающий на логику ПЛК. Неоновая лампа LP1 служит в качестве индикатора наличия входного сигнала (а следовательно, и обнару- жителя неисправности), а с помощью резистора Я| устанавливает- ся диапазон напряжения. На рис. 1.17 (а) показана типичная входная плата семейства ПЛК Allen Bradley. На плате отчетливо видны изолирующие барье- ры и контрольные светодиоды. Эта плата принимает восемь вход- ных сигналов и соединяется с внешним миром, как показано на рис. 1.17 (б). 1.4.2. Выходные соединения Выходные платы также нуждаются в некотором изолирующем барьере, чтобы ограничить ущерб от неизбежных неисправностей на стороне объекта и исключить электрические помехи, нарушаю- щие работу процессора. Помехи на выходе могут создать более серьезные проблемы из-за больших значений токов, управляемых платами, и из-за того, что нагрузки часто имеют индуктивный ха- рактер (например, соленоиды и обмотки реле). Существуют два основных типа выходных плат. На рис. 1.18 (о) восемь выходов питаются от общего источника, расположенного рядом с корпусом ПЛК (но отдельно от источника питания самого ПЛК). Такое размещение является наиболее простым и дешевым. Каждый выход имеет собственный отдельный плавкий предохра- нитель на плате и предохранитель общей цепи. Система должна быть спроектирована таким образом, чтобы повреждение, скажем, в нагрузке 3 вызывало срабатывание плавкого предохранителя FS3, но не отключало пи гание всей платы и, следовательно, не влияло
36 Программируемые контроллеры Источник питания объекта б Рис. 1.17. Входная плата ПЛК: (а) восьмиканальная входная плата ПЛК Allen Bradley; (б) монтажная схема входной платы
Компьютеры и управление производством 37 на остальные выходы. Эта проблема, называемая «дискриминаци- ей», рассматривается в главе 8. Часто ПЛК должен управлять выходами, имеющими собствен- ные отдельные источники питания. Типичным примером является центр управления электродвигателями, где каждое пусковое уст- ройство имеет отдельный внутренний источник питания напряже- нием ПО В, которое формируется от шины напряжением 415 В. В данном случае плата, изображенная на рис. 1.18 (о), не может быть использована без дополнительно введенных реле (управляемых ПЛК с помощью контактов в схеме центра управления электродви- гателями). Изолированная выходная плата, изображенная на рис. 1.18 (б), имеет отдельные выходы, каждый с собственной защитой, и дейст- вует просто как переключатель. Она может быть соединена непо- средственно с любой цепью на выходе. Недостатком такой платы является то, что она более сложная (два соединения на каждый вы- ход); более сложной становится также проблема защиты и безопас- ности. Восьмиканальная изолированная выходная плата, напри- мер, должна на своих клеммах иметь напряжение от восьми различных источников. На рис. 1.18 показаны выходные контакты. Могут быть исполь- зованы релейные выходы (при необходимой изоляции), но это обычно не практикуется. Реле — это электромагнитное устройство с движущимися частями и, следовательно, с ограниченным сроком службы. Гораздо большей надежностью обладают полностью элек- тронные устройства. Менее очевидно, однако, что управляемая с помощью реле индуктивная нагрузка может создавать серьезные помехи и приводить к преждевременному износу контактов. На рис. 1.19 (я) изображена транзисторная выходная цепь. Здесь также использована оптическая изоляция, обеспечивающая необ- ходимую развязку между объектом и ПЛК. Диод D1 обеспечивает подавление выбросов напряжения, появляющихся в случае индук- тивной нагрузки. Рис. 1.19 (б) иллюстрирует этот эффект. Состоя- ние выхода можно наблюдать с помощью светодиода LED1. Схема на рис. 1.19 (а) соответствует выходу в виде источника тока. Если используются л-р-л-транзисторы, то источник тока можно реали- зовать по схеме на рис. 1.19 (в). В выходных платах переменного тока обычно используются ти- ристоры; типичная схема выходной платы изображена на рис. 1.20 («). Тиристоры обладают тем преимуществом, что, как показано на Рис. 1.20 (б), при нулевом токе нагрузки они выключены, что ис- ключает возникновение помех при отключении нагрузки индук-
38 Программируемые контроллеры Активи- -зация выхода 1 । Плавкий предохранитель о— Питание От цент- раль- ного про- цес- сора Активи- зация 'выхода 8 FS1 FS2 FS3 FS4 FS5 FS6 FS7 FS8 К нейтр. шине Выход 8 Выход 1 । Выход 2 Лампы -о индикации | сигнала i. шине 8-канальная выходная плата От цент- рального! процессора “Активи- зация выхода 1 Активи- зация выхода 2 источниками питания б (например, узлы центра управления двигателями) Рис. 1.18 Типы выходных плат: (а) выходная плата с общим источником питания; (б) выходная плата с раздельными источниками питания
Компьютеры и управление производством 39 Внут- ренний источник питания ПЛК Активи- зация выхода Внут- ренний источник питания ПЛК Нагрузка на выходе Питание объекта + LED! Г Питание объекта - Оптическая развязка Индикация выхода хранитель di и Транзистор, управляющий нагрузкой Ток нагрузки Диод отсутствует, индуктивность пытается поддержать ток через нагрузку, создавая пик напряжения Диод ограничивает пик на уровне около 1 В б От оптического изолятора Рис. 1.19. Выходные цепи постоянного тока: (а) схема с источником выходного тока; (б) влияние диода, подавляющего пики напряжения; (в) выходная цепь источника тока тивного характера. Поэтому, если возможно, все нагрузки, питае- мые от источника переменного тока, должны управляться с помо- щью тиристоров, а не реле. На рис. 1.21 приведены фотографии выходных плат перемен- ного тока и постоянного тока; на них можно видеть изолирующие
40 Программируемые контроллеры ПЛК Источник питания объекта Выходной сигнал Сигнал в нагрузке Нагрузка остается включенной, пока ток не спадет до нуля б Рис. 1.20. Выходная цепь переменного тока: (а) выходной каскад - источник и приемник не связаны друг с другом; (б) влияние тиристора барьеры, светодиоды индикации состояния и плавкие предохра- нители. Ток, отбираемый от выходной платы, должен быть ограничен, причем обычно это ограничение определяется проводниками печатного монтажа, а не подключаемыми устройствами. Для каждого отдельного выхода предельное значение тока, как пра- вило, равно 2 А, а для всей выходной платы — 6 А. Обычно для всей выходной платы допустимое значение тока меньше, чем
Компьютеры и управление производством 41 Рис. 1.21. Выходные платы сумма допустимых токов отдельных выходов. Поэтому на прак- тике принято уменьшать общий выходной ток платы, комбини- руя ее выходы так, чтобы они не могли быть активизированы од- новременно. 1.4.3. Обозначение входов и выходов В программе для ПЛК должны быть предусмотрены определенные обозначения для входов и выходов. Обычно каждый сигнал обозна- чается его физическим положением в соответствующей стойке, по- ложением платы в этой стойке и указанием, с каким контактом на плате этот сигнал связан. На рис. 1.22, например, лампа подключена к выходу 5 на плате 6 в стойке 2. В обозначениях ПЛК Allen Bradley это соответствует сигналу 0:26/05. Кнопка включения подсоединена к входу 2 на плате 5 в стойке 3, и (снова для ПЛК Allen Bradley) это соответству- ет сигналу 1:35/02. Большинство производителей ПЛК используют аналогичную систему обозначений. Этот вопрос обсуждается далее в главе 2.
42 Программируемые контроллеры Вход 2 на плате 5 в стойке 3 Рис. 1.22. Обозначение сигналов 1.5. Удаленные входы и выходы До сих пор мы предполагали, что ПЛК состоит из процессора и группы входных/выходных плат, вмонтированных в размешенные здесь же стойки. В первых ПЛК так и было принято, но в случае большого и распределенного объекта все сигналы должны были по- ступать в некоторый центральный пункт по многочисленным лини- ям связи. Это делало очень трудным обнаружение неисправностей, поскольку все сигналы в действительности могли наблюдаться толь- ко в точке, значительно удаленной от места их возникновения. В связи с этим производители ПЛК (особенно для малых и де- шевых систем) предусмотрели возможность установки стоек с входными и выходными платами на определенном расстоянии от процессора и обеспечения связи с ним с помощью простой (и де- шевой) экранированной пары или волоконнооптического кабеля.
Компьютеры и управление производством 43 В этом случае стойки могли быть установлены в нескольких кило- метрах от процессора. Такой способ имеет много преимуществ. Прежде всего, он уменьшает стоимость кабельных соединений, так как стойки могут быть расположены рядом с объектом, и для этого требуется только короткий отрезок многожильного кабеля. Длинные отрезки необ- ходимы только для коммуникационных кабелей (которые дешевы и имеют всего несколько жил) и проводов защитной сигнализации (которые в силу своего назначения не должны проходить над кабе- лем удаленных входов/выходов или вблизи ПЛК — эта проблема будет рассмотрена позже в главе 8). Менее очевидное преимущество состоит в том, что удаленные входы и выходы позволяют создать устройства, которые могут быть вмонтированы в стойки и протестированы еще до их поставки и ус- тановки на месте. Стенд, изображенный на рис. 3.2, содержит три удаленные стойки, соединенные с ПЛК, находящимся на расстоя- нии примерно 500 м, с помощью кабеля, плюс несколько источни- ков питания и устройств защитной сигнализации. Это позволяет укомплектовать стенд и протестировать его до того, как он будет ус- тановлен на место. При использовании удаленных входов и выходов следует иметь в виду, что каждая стойка должна иметь свой местный терминал для программирования. Это сводит на нет большинство преимуществ, поскольку оператор может наблюдать за работой только из цент- ральной диспетчерской в нескольких сотнях метров от объекта. К счастью, производители ПЛК отнеслись к этому с пониманием, и в большинстве случаев терминалы могут быть соединены с процес- сором при помощи экранированной витой пары. Последователь- ный способ передачи данных мы рассмотрим позже в главе 5. 1.6. Преимущества управления с помощью ПЛК Любая система управления, начиная с концепции и заканчивая ра- ботающим комплексом, проходит через четыре этапа. На каждом из них ПЛК обеспечивает конкретные преимущества. Первым этапом является проектирование; здесь исследуется объ- ект управления и определяется стратегия управления. В обычных сис- темах проектирование должно быть выполнено до того, как начнется создание. В системах с ПЛК все, что необходимо на данном этапе, — это ориентировочные предположения относительно размеров маши- ны и требования к входным/выходным платам (сколько входов и вы- ходов должен иметь ПЛК). На этом этапе входные и выходные
44 Программируемые контроллеры платы дешевы, поэтому можно предусмотреть их некоторый избыток на предмет неизбежных упущений и будущего расширения системы. Следующим этапом является создание. В обычных системах ка- ждая работа выполняется «одноразово» с присущими такому мето- ду задержками и затратами. Система с ПЛК образуется просто пу- тем объединения стандартных блоков. На этом этапе начинается написание программ для ПЛК (или, по крайней мере, детализуется программная спецификация). Следующий этап — установка. Это утомительное и дорогостоящее занятие, поскольку производится коммутация датчиков, исполни- тельных устройств, концевых выключателей и средств управления оператора. В распределенных системах с ПЛК (рассматриваемых в главе 5) использование последовательных каналов передачи данных и предварительно смонтированных и отлаженных стендов может уп- ростить установку и обеспечить огромный выигрыш в стоимости. Большинство программ для ПЛК пишется именно на этом этапе. Наконец, наступает время ввода в эксплуатацию, и здесь пре- имущества, обеспечиваемые ПЛК, наиболее ощутимы. Ни одна си- стема не начинает работать с первого раза. Человеческая натура та- кова, что наверняка что-то будет упущено из виду. Исправление ошибок в обычной системе связано с затратами времени и средств. Если разработчик системы с ПЛК предусмотрел резервный объем памяти, резервные входные/выходные платы и несколько резерв- ных жил многожильного кабеля, то большинство изменений может быть сделано быстро и с небольшими затратами. Дополнительное преимущество состоит в том, что все изменения записываются в программе ПЛК, и при вводе в эксплуатацию они не остаются не- учтенными, как это бывает в обычных системах. Существует еще один, пятый этап — обслуживание, наступаю- щий после того, как объект управления начинает выполнять свои функции. Всем объектам присущи неисправности, и большинство их имеет склонность значительную часть времени работать в режи- ме, когда возможны те или иные отказы. Системы с ПЛК обладают очень мошны м средством диагностики отказов. Этот вопрос под- робно рассматривается в главе 8. Объект управления также подвержен многим изменениям в те- чение своей эксплуатации. Это происходит из-за увеличения про- изводительности, износа и поломок или из-за изменения техниче- ских требований. Систему с ПЛК можно перенастроить так легко, что все изменения вносятся достаточно просто, а программа ПЛК автоматически фиксирует все произведенные изменения.
2. Методы программирования 2.1. Введение В главе 1 была описана эволюция программируемого контроллера, приводящая к системе, изображенной на рис. 1.12. Она состоит из центрального процессора, связанного с одной или несколькими стойками, которые, в свою очередь, содержат входные и выходные платы, осуществляющие связь с объектом. Система на рис. 1.12 может отличаться в отдельных деталях. Со- временные центральные процессоры имеют тенденцию к уменьше- нию размеров, размещаются в одной из стоек, и их нелегко распо- знать. В самых малых системах все компоненты объединяются в одном блоке, однако взаимодействуют они так, как показано на рис. 1.12. В этой главе мы рассмотрим Mei оды программирования ПЛК. Разумеется, каждый производитель имеет свои собственные стан- дарты, и было бы неразумным ограничиваться только какой-то од- ной машиной. Поэтому данная глава имеет дело с семействами пя- ти производителей: 1. Семейство Allen Bradley PLC-5 (рис. 2.1 (а)). Компания Allen Bradley, ныне принадлежащая Rockwell, была одним из первых разработчиков ПЛК (а в США ей принадлежат авторские пра- ва на название ПЛК). Ей принадлежит заслуга в разработке многих идей, используемых в ПЛК, и в обеспечении высокой степени совместимости снизу вверх, начиная с самой первой машины и не ограничиваясь особенностями самой последней. 2. Семейство Siemens Simatic S5 (рис. 2.1 (б)), получившее ши- рокое распространение в Европе в начале 1990-х гг. 3. Британская модель GEM-80 (рис. 2.1 (е)), разработанная фирмой GEC в результате длительного сотрудничества с компанией English Electric, производителем промышлен- ных компьютеров. В настоящее время часть GEC, занима- ющаяся производством ПЛК, называется CEGELEC и принадлежит французскому филиалу, главным акционером которого является Alsthom. 4. Система ASEA Master (рис. 2.1 (г)), которая ныне произво- дится компанией АВВ, образованной в результате слияния ASEA и Brown Boveri. Система ABB Master обладает особен- ностями, скорее присущими обычному компьютеру, а язык ее программирования обладает рядом интересных и мощных возможностей.
Программируемые контроллеры Рис. 2.1. Четыре ПЛК средних размеров: (a) Allen Bradley PLC-5; (б) Siemens S5-1154;
Методы программирования 47 в г Рис. 2.1 (продолжение), (в) CEGELEC GEM-80; (г) ABB Master. Фотографии любезно предоставлены производителями
48 Программируемые контроллеры 5. Многие из ПЛК в настоящее время обладают малыми разме- рами. Автор недавно обнаружил, что создание систем управ- ления с ПЛК обойдется гораздо дешевле, чем при использо- вании 12 обычных реле с четырьмя парами контактов. Существует много дешевых небольших машин, и в качестве примера мы рассмотрим японскую модель Mitsubishi F2-40, изображенную на рис. 2.12. При выборе ПЛК следует учитывать, что они могут отличаться по ряду признаков (например, PLC-5 имеет три разных типа таймеров, Siemens 115-U имеет пять таймеров, a GEM-80 всего один, но кото- рый может быть использован по-разному). Большинства стандар- тов этих ПЛК придерживаются и другие производители. 2.2. Прогон программы Работу программы ПЛК можно рассматривать как непрерывно вы- полняемый цикл, что иллюстрирует рис. 2.2 (а). Инструкции поль- зователя выполняются последовательно, и когда выполнена по- следняя, то работа вновь начинается с первой. Таким образом, ПЛК не имеет постоянной связи с внешним миром, а действует скорее как «кинопроектор с закольцованной лентой». Работа ПЛК, представленная на рис. 2.2 (о), называется прого- ном программы, а период цикла — временем прогона, которое за- висит от размера программы и быстродействия процессора. В сред- нем время прогона обычно составляет 10—50 мс, что соответствует 2—5 мс на килобайт программы. На рис 2.2 (б) работа ПЛК поясняется более детально. ПЛК не считывает входные данные по мере необходимости (как ясно из рис. 2.2 (а)), поскольку это было бы расточительной тратой време- ни. В начале прогона программы он опрашивает состояние всех подключенных входов и запоминает их состояния в памяти. Если программа ПЛК получает доступ к входным данным, она считыва- ет те значения, которые имели место в начале текущего прогона. В течение прогона программы выходные данные также времен- но не изменяются. ПЛК сначала отводит для этих данных опреде- ленную область памяти, и только в конце прогона программы все выходные данные обновляются одновременно. Следовательно, цикл работы таков: чтение входных данных, прогон программы, обновление выходных данных. Память ПЛК можно считать состоящей из четырех областей, как показано на рис. 2.2 (в). Входные данные считываются в соот-
Методы программирования 49 Программа а б в Рис. 2.2. Прогон программы ПЛК и организация памяти, (а) действие ПЛК; (б) последовательность выполнения программы; (в) организация памяти ПЛК ветствуюгцую виртуальную область в начале прогона программы, а обновление выходных данных производится из аналогичной вирту- альной области в конце прогона. Имеется также область памяти, зарезервированная для внутренних сигналов, используемых про- граммой, но не связанных непосредственно с внешним миром (сигналы таймеров, счетчиков, биты памяти, например, отведен- ные для сигналов неисправности и т. д.). Эти три области часто упо- минаются как таблица данных (в ПЛК Allen Bradley) или база дан- ных (в ПЛК ASEA/ABB). Эта область памяти меньше, чем можно было подумать. ПЛК средних размеров имеет около 1 000 входов и выходов. При запоми- нании этих сигналов отдельными битами это соответствует немно- гим более 60 ячейкам памяти в ПЛК с 16-битовым словом. Анало- говый сигнал, поступающий от объекта или посылаемый к объекту, будет занимать одно слово. Таймеры и счетчики будут использовать Два слова (одно для значения и одно для предварительной установ- ки), а 16 бит внутренней памяти — всего одно слово. Большая часть памяти, следовательно, отводится под четвертую область, где хра- нится собственно программа. Время прогона программы явным образом ограничивает скорость изменения сигнала, воспринимаемого ПЛК. На рис. 2.3 (а) ПЛК ис-
50 Программируемые контроллеры Прогоны программы I2 Подсчет импульсов 0 3 о 2 0 2 D 3 И 14 Рис. 2.3. Влияние прогона программы на подсчет импульсов Подсчет импульсов Подсчет импульсов I3 пользуется для подсчета последовательности импульсов, причем час- тота следования импульсов меньше частоты прогона программы. Подсчет выполняется правильно. На рис. 2.3 (б) частота следования импульсов больше частоты прогона программы, и ПЛК начинает пропускать отдельные импульсы. В случае же, изображенном на рис. 2.3 (в), полностью игнорируются целые группы импульсов. Чтение Обновление Рис. 2.4. Влияние прогона программы на время реакции: (а) лучший случай; (б) худший случай б
Методы программирования 51 В общем случае любой входной сигнал, который воспринима- ет ПЛК, должен иметь длительность больше, чем время прогона; более короткие сигналы могут быть считаны, только если они по- являются в нужное время, но этого нельзя гарантировать. Если наблюдаются серии импульсов, то частота их следования должна быть меньше, чем 1 / (2 х период прогона). ПЛК с периодом про- гона 40 мс теоретически способен отслеживать последователь- ность импульсов с частотой 1 / (2 х 0.04) = 12.5 Гц. На практике, однако, значительное влияние могут оказывать другие факторы, такие как наличие фильтров во входных платах, поэтому при оценке скорости изменения сигналов всегда следует соблюдать осторожность. Менее очевиден факт, что при прогоне программы ПЛК иногда может появиться «сдвиг» между входным и выходным сигналами. На рис. 2.4 входной сигнал должен привести к «немедленному» по- явлению выходного. В лучшем случае, представленном на рис. 2.4 (о), входной сигнал поступает как раз в начале прогона, что приво- дит к появлению сигнала на выходе спустя один период прогона. На рис. 2.4 (б) входной сигнал поступает уже после того, как были опрошены все входы, поэтому один целый прогон будет пропущен, пока ПЛК «увидит» этот входной сигнал, и пройдет еще один про- гон, прежде чем появится сигнал на выходе. Поэтому реакция ПЛК может занимать от одного до двух периодов прогона. В большинстве практических приложений сдвиг в несколько де- сятков миллисекунд не является существенным (его, например, нельзя заметить в реакции объекта на нажатие пусковой кнопки). Однако если требуется быстродействие, этот сдвиг может быть кри- тическим фактором. В типичном примере, с которым довелось столкнуться автору, материал, двигавшийся со скоростью 15 м/с, разрезали на куски с помощью автоматической системы с ПЛК, причем сигнал на ПЛК посзупал от фотоэлемента. При времени прогона в 30 мс отклонение от требуемой длины отрезаемых кусков составляло 0,03 х 15 000 = 450 мм. Производители ПЛК поставляют специальные платы (которые по праву можно было бы назвать небольшими процессорами) для работы в системах, где требуется высокое быстродействие. К этому вопросу мы вернемся в разделах 4.7 и 4.8. Нежелательные задержки могут появиться, если структура про- граммы ПЛК такова, что логика ее выполнения выстроена против направления прогона. При каждом прогоне выполнение програм- мы начинается с первой инструкции, и все остальные инструкции выполняются последовательно до конца программы. Только после
52 Программируемые контроллеры этого программа производит обновление выходов, переходит к чте- нию входов и выполняется еще раз. На рис. 2.5 (а) вход вызывает изменение выхода, но прежде для этого должны быть выполнены пять шагов (это может быть, напри- мер, пошаговая работа счетчика или проверка некоторых заданных условий). Логика программы, однако, выстроена против направле- ния прогона. При первом прогоне вход вызывает событие А. При следующем прогоне событие А вызывает событие Вит. д., пока по- сле пяти прогонов событие D не приведет к изменению выхода. Ес- ли же структура программы имеет вид рис. 2.5 (б), то вся последо- вательность событий займет всего один прогон. Недостаток схемы на рис. 2.5 (а) очевиден, но аналогичный эффект (задержка) часто может возникнуть и тогда, когда струк- тура программы недостаточно продумана. С другой стороны, этот эффект можно использовать преднамеренно для формирования очень коротких импульсов (данная проблема обсуждается в раз- деле 6.4). Проблемы, связанные с временем прогона, могут стать еще бо- лее серьезными, если в системе используются удаленные стойки с последовательно опрашиваемыми входными/выходными платами. Связь с этими стойками осуществляется с помощью опрашиваю- щего устройства, как показано на рис. 2.6, но работа этого устрой- ства обычно не синхронизирована с прогоном программы. В этом случае, если, к примеру, время прогона равно 30 мс, а цикл работы опрашивающего устройства составляет 50 мс, наиболее быстрая ре- акция займет 30 мс, а наиболее медленная — 130 мс (при условии, что чтение входов пропускает начало опроса, а начало опроса про- пускает прогон программы). Ход выполнения программы Ход выполнения программы Рис. 2.5. Образование задержек при прогоне программы: (а) логика программы выстроена против направления прогона, от входа до выхода требуются пять прогонов; (б) логика программы совпадает с направлением прогона, от входа до выхода - только один прогон
Методы программирования 53 Прогон программы Рис. 2.6. Взаимодействие циклов прогона программы и опроса входов/выходов Производители ПЛК предлагают много способов, позволяющих уменьшить влияние времени прогона. Из них можно отметить на- страиваемые быстродействующие входные/выходные платы (см. разделы 4.7 и 4.8) и возможность разбиения программы на секции с различными временами прогона (например, для сигнальных ламп, возможно, будет достаточно времени реакции 0.5—1 с, тогда как другие части программы могут выполняться намного быстрее). Бо- лее подробно методы минимизации времени прогона программ ПЛК рассматриваются в разделе 3.6. 2.3. Обозначение входов/выходов и двоично-кодированные адреса 2.3.1. Стойки, платы и сигналы Программа ПЛК предполагает наличие связей с внешним объек- том и входными и выходными устройствами, которые должны быть Указаны внутри программы. Прежде чем обсуждать способы напи-
54 Программируемые контроллеры сания программ, мы рассмотрим, как разные производители обо- значают входы и выходы. Рис. 1.22 показывает, что ПЛК средних размеров состоит из не- скольких стоек, каждая из которых содержит платы, а каждая пла- та имеет средства сопряжения с 8, 16 или 32 устройствами. Адреса- ция входов/выходов обычно основана на идее стойка/плата/бит. 2.3.2. Allen Bradley PLC-5 ПЛК Allen Bradley PLC-5 (версия 5/25) может иметь до восьми стоек. Стойке, содержащей процессор, автоматически присваивается но- мер 0, а номера остальных стоек (с 1 по 7) определяет проектиров- щик с помощью соответствующих переключателей. Все стойки (кро- ме стойки с номером 0) соединяются с процессором посредством выносного кабельного шнура и опрашиваются последовательно. Стойка ПЛК Allen Bradley может быть сконфигурирована тремя разными способами, но мы рассмотрим наиболее простой и, по- видимому, наиболее логичный. Каждая стойка имеет позиции для 16 плат, сгруппированных по- парно и называемых «гнездами». Таким образом, стойка содержит восемь гнезд с номерами от 0 до 7. Гнездо может содержать одну 16-битовую входную плату и одну 16-битовую выходную плату или две 8-битовые платы обычно (но не обязательно) одного и того же типа. Так, например, на рис. 2.7 гнездо 1 содержит 16-битовую входную плату и 16-битовую выходную плату, а гнездо 2 содержит две 8-битовые выходные платы. Рис. 2.7. Расположение плат в Allen Bradley PLC-5
Методы программирования 55 Причины, по которым иногда вместо 16-битовых выходных плат предпочтительнее использовать 8-битовые платы, будут рас- смотрены в главе 8. Для входов принята следующая адресация: I: Стойка Гнездо/Бит, где Бит имеет два разряда. В ПЛК Allen Bradley принята восьмерич- ная адресация битов, поэтому допустимы числа 00—07 и 10—17. Ад- рес 1:27/14 соответствует входу 14 гнезда 7 в стойке 2. Адресация выходов аналогична: О: Стойка Гнездо/Бит, поэтому 0:35/06 соответствует выходу 6 гнезда 5 в стойке 3. Заметим, что если используются 16-битовые платы, то входы и выходы могут иметь одинаковые адреса стойка/гнездо/бит, отличаясь только обозна- чениями I: (вход, или О: (выход' В случае 8-битовых плат одинаковая адресация стойка/гнездо/бит для входов и для выходов исключается. 2.3.3. Siemens SIMATICS5 В ПЛК Siemens дискретные входы/выходы объединены в группы по 8 бит, называемые байтами (см. Приложение). Сигнал иденти- фицируется по номеру его бита (0—7) и номеру байта (0—127). Для входов используется обозначение 1<байт>.<бит>, а для выходов 0<байт>.<бит>. Например, 19.4 соответствует входу с адресом бита 4 в байте 9, a Q63.6 — выходу с адресом бита 6 в байте 63. Как и Allen Bradley, ПЛК Siemens содержат гнезда с платами в од- ной или нескольких стойках. Платы могут быть 16-битовыми (2 бай- та) или 32-битовыми (4 байта). Стойки ПЛК могут быть расположе- ны компактно в одном корпусе и соединены с помощью параллельной кабельной магистрали либо размещены на удалении при наличии последовательного интерфейса. В первом случае дости- гается большее быстродействие и исключаются некоторые пробле- мы, которые могли бы возникнуть при прогоне программы, когда в задачах, требующих быстродействия, используются удаленные стой- ки с последовательным опросом. Такие стойки должны располагать- ся не более чем в нескольких метрах от процессора. Простейшим видом адресации является жесткая адресация гнезд, показанная на рис. 2.8 (а). Каждому гнезду последовательно отводятся четыре байта: 0—3 первому гнезду, 4—7 следующему гнез- ду и т. д. Таким образом, обозначение 12.4 соответствует входу с би-
56 Программируемые контроллеры том 4 первого байта платы в гнезде 3 первой стойки. Если исполь- зуются 16-битовые (2 байта) платы с жесткой (4-байтовой) адреса- цией, то 2 старших байта в каждом гнезде теряются. В ряде случаев пользователь имеет возможность назначать адреса байтам по своему усмотрению. Такой способ известен как изменяемая адресация гнезд. Адрес первого байта и их количество (2 байта для 16- битовых плат и 4 байта для 32-битовых плат) могут быть заданы неза- висимо для каждого из гнезд с помощью ггереключателей, находящих- ся в адаптере каждой стойки. Хотя можно установить любую разумную комбинацию адресов, все же рекомендуется придерживаться некото- рого логического порядка, наподобие показанного на рис. 2.8 (б). Байты 0 1 2 3 4 5 6 0.0 16 битов 1.7 2.0 16 битов 3.7 4.0 32 бита 7.7 8.0 32 бита 11.7 12.0 16 битов 13.7 14.0 16 битов 19.7 20.0 32 бита 23.7 Байты б Рис. 2.8. Компоновка платы ПЛК Siemens, (а) Жесткая адресация гнезд, (б) Изменяемая адресация гнезд. Адреса и число байтов (2 или 4) устанавливаются для каждой платы переключателями. Последовательная адресация (вверху) не обязательна, но желательна
Методы программирования 57 В разных странах на терминалах для программирования исполь- зуется разный алфавит, поэтому фирма Siemens также использует разные обозначения. В Европе наиболее распространенным стан- дартом является немецкий, где для входов используется символ Е (от немецкого Eingang — вход), а для выходов — символ A (Ausgang — выход). Например, Е4.7 или АЗ.5. 23.4. CEGELEC GEM-80 В GEM-80 входы и выходы внутри стоек также обозначаются номе- рами битов и гнезд. Стойка с процессором может иметь 8 позиций для плат, а дополнительные входные и выходные платы размеща- ются группами по 12 плат в стойках рядом с процессором (они на- зываются основными платами) и соединяются с ним при помощи плоского кабеля либо на удалении. В последнем случае связь с про- цессором осуществляется с помощью последовательного опроса. Если достаточно небольшого количества удаленных входных и вы- ходных плат, то вместо стоек, изображенных на рис. 2.9, могут быть использованы компактные блоки на 8 входов или выходов. Основ- ная конфигурация входов и выходов дополняется магистралью ве- рификации, которая позволяет процессору проверять состояние различных модулей. Адресация входов и выходов производится с помощью 16-бито- вых слов, каждое из которых соответствует одной или двум платам. Для входов используется префикс А, а для выходов — префикс В. Адресация битов — десятичная в диапазоне от 0 до 15. Например, АЗ. 12 соответствует входу с битом 12 в слове 3, а В5.04 — выходу с битом 4 в слове 5. Слово может быть использовано либо только для входов, либо только для выходов; дублирование слов для адресации недопустимо. Входные и выходные платы существуют в 8-битовом, 16-битовом и 32-битовом формате, поэтому каждому гнезду может соответствовать половина слова, одно или два слова, в зависимости от используемых плат. Адреса отдельных гнезд устанавливаются с помощью поворот- ных переключателей на задней панели каждой стойки. Пользователь имеет определенную свободу в выборе адресов, но обычно лучше придерживаться некоторой логической последовательности. На рис. 2.10 приведен типичный пример адресации для GEM-80. 2.3.5. ABB Master Система ABB Master более сложная, чем любая из рассмотренных нами ранее. С точки зрения пользователя, ее организация гораздо ближе к компьютеру, а язык более близок к языкам, используемым
58 Программируемые контроллеры Небольшой выносной логический блок Ср— Канал верификации выносных блоков а б Рис. 2.9. (а) Структура системы GEM-80. (б) Выносные входные/выходные логические блоки GEM
Методы программирования 59 Рис. 2.10. Адресация GEM-80 с 8-битовыми платами программистами. Если рассмотренные выше ПЛК, к примеру, ото- ждествить с языком программирования домашнего компьютера BASIC, то аналогом ABB Master будут языки Pascal или С. Это срав- нение в действительности более тесное, чем могло бы показаться на первый взгляд. BASIC быстр в выполнении и прост в примене- нии, но, если не принять меры предосторожности, может выро- диться в лабиринт «макаронных программ»1. Языки Pascal и С бо- лее мощные, но за задание всех операторов, организацию и структуру программы полностью отвечает пользователь. Система Master скомпонована из плат процессора и стоек так, как показано на рис. 2.11 (а). Каждая входная или выходная плата имеет сзади два разъема; верхний из них служит для связи с процес- сорной шиной, а нижний — с отдельным оконечным блоком, своим для каждой платы, который смонтирован на задней стенке корпуса. Входные и выходные платы идентифицируются не по их положе- нию в стойке, а по адресам, устанавливаемым на плате с помощью 1 Жаргонный термин «макаронная программа» обычно относится к программам, содержащим большое количество ненужных передач управления и тем самым запу- тывающих их структуру. — Прим, перее.
60 Программируемые контроллеры небольшого разъема с запаянными контактами. Таким образом, ад- ресация входов и выходов не связана с положением платы, и ее мож- но переставить на другое место, не меняя выполняемых ею функций (для этой цели внизу каждой платы имеется специальный разъем). Организация памяти процессора показана на рис. 2.11 (б). Вхо- ды и выходы связаны с базой данных, но в отличие от ПЛК, опи- санных ранее, проектировщик может для разных плат задать раз- личные частоты опроса. Проектировщик также имеет большую гибкость в организации программы ПЛК. Как мы увидим далее, она имеет модульную стру- ктуру, и пользователь может задать разным модулям программы разные скорости выполнения. Входная/выходная Основной плата Оконечный блок Рис. 2.11. Система ABB Master: (а) компоновка системы; (б) структура программы; (в) часть базы данных (для дискретной входной платы)
Методы программирования 61 На рис. 2.11 (в) показана база данных для одной входной платы. Имеются два уровня описания: верхний уровень относится к характе- ристикам собственно платы (ее адрес и скорость сканирования), а нижние уровни связаны с характеристиками каждого канала платы (имя канала и должен ли быть инвертирован соответствующий сиг- нал). В базе данных хранятся характеристики всех входов и выходов, на которые в программе можно ссылаться либо по их обозначениям в ба- зе данных (например, DI3.1), либо по уникальным именам (например, HydPump2-StaitPB — т. е. кнопка пуска гидравлического насоса 2). 2.3.6. Mitsubishi F2 Семейство Mitsubishi F2 является типичным представителем малых ПЛК, в которых входные/выходные платы, источник питания и про- цессор находятся в одном блоке, как показано на рис. 2.12. Блок меньших размеров, F2-40M, имеет 24 входа и 16 выходов (это харак- терно для ПЛК, используемых в системах управления, где числа входов и выходов находятся обычно в соотношении 3:2). Для 24 входов используются обозначения от Х400 до Х427 (в восьмеричном представлении), а для 16 выходов обозначения Y430—Y447. По всей видимости, выбранные таким способом номе- ра связаны с ячейками памяти, в которых хранятся значения вход- ных и выходных сигналов. Следующие за ними адреса используют- ся в более крупных ПЛК. Рис. 2.12. ПЛК Mitsubishi F2 (с терминалом для программирования), установленный на двврце центра управления электродвигателями
62 Программируемые контроллеры 2.3.7. Внутреннее битовое запоминающее устройство Кроме входных и выходных сигналов, ПЛК должен каким-то обра- зом хранить внутренние сигналы, соответствующие такой инфор- мации, как «запуск резервного вентилятора», «исправность систе- мы», «отсутствие смазки» и т. д. Было бы весьма расточительным размещать эти сигналы в памяти, отведенной для реальных вход- ных/выходных сигналов, поэтому во всех ПЛК предусмотрено вну- треннее запоминающее устройство того или иного вида с битовой организацией. Такое устройство имеет разные названия; вспомога- тельные реле (Mitsubishi), флажки (Siemens), общая рабочая об- ласть (GEM-80) и битовое ЗУ (Allen Bradley). Разумеется, разные производители для обозначения этих устройств внутри программы используют разные имена. Mitsubishi использует обозначение Мппп, где ппп — номера ячеек в заранее отведенной области памяти (от М100 до М377 в восьмерич- ном представлении). Как и в большинстве малых ПЛК, распределе- ние памяти фиксировано и не может определяться пользователем. В более крупных ПЛК пользователь сам может определить, сколько битов памяти требуется для внутренних сигналов. Siemens использует обозначение FByte.Bit (например, F27.06). GEM-80 имеет разные варианты общей рабочей области. Самый распространенный вариант носит название G-таблица и в програм- мах появляется в виде адреса GWord.Bit (например, G52.14). G-таб- лица очищается, когда ПЛК переходит из неактивного в активное состояние. Память в R-таблице (например, R12.03) сохраняет дан- ные при прекращении работы процессора или отключении питания. В PLC-5 для битового ЗУ используется обозначение ВЗ/n, где п соответствует определенному сигналу (например, ВЗ/192). Символ В есть признак битовой памяти, а цифра 3 обязательна и объясня- ется тем, как в PLC-5 организовано хранение данных в файлах. Би- товой памяти соответствует файл 3, таймерам — файл 4 (Т4), счет- чикам — файл 5 (С5), как мы вскоре увидим. Язык программирования ABB Master не требует внутренней би- товой памяти, ее функции выполняют элементы и связи внутри ба- зы данных и собственно программы. 2.4. Методы программирования 2.4.1. Введение Язык программирования ПЛК будут использовать инженеры, тех- ники и электрики, обслуживающие систему. Поэтому он должен
Методы программирования 63 быть основан на приемах, принятых в промышленности, а не на тех, которые используются при написании компьютерных про- грамм. В данном разделе мы рассмотрим различные методы про- граммирования ПЛК разных производителей. Здесь, по-видимому, заслуживает упоминания довольно инте- ресный прием, используемый компанией Siemens, которая предо- ставляет пользователю на выбор три разных метода программиро- вания для своих машин. Еше более замечательно то, что программа, написанная в одном формате, может быть представлена и в другом. 2.4.2. Многоступенчатые схемы Первые ПЛК, разработанные для использования в автомобильной промышленности, заменили релейные системы управления. При изображении релейных схем использовались следующие обозначе- ния: —| |— для нормально разомкнутого контакта, —1/|— для нор- мально замкнутого контакта и — Q— для выхода объекта. Эти сим- волы были основой языка описания релейных схем. На рис. 1.14 показана клавиатура программиста для этого типа ПЛК; связь с символикой релейных схем очевидна. Предположим, что мы имеем гидравлический объект и хотим с помощью лампы сигнализировать, что он работает исправно, если 1) насос включен (это воспринимается вспомогательным кон- тактом на пусковом устройстве насоса); 2) емкость заполнена маслом (это воспринимается специаль- ным ключом, который замыкается, когда уровень масла до- статочен); 3) давление масла соответствует норме (это воспринимается клю- чом, который замыкается при соответствующем давлении). При использовании обычных реле мы получили бы схему, изобра- женную на рис. 2.13 (а). При использовании ПЛК мы подключаем входные сигналы к входной плате, а сигнальную лампу к выходной плате, как показа- но на рис. 2.13 (6). Обозначения входов и выходов соответствуют принятым в ПЛК Allen Bradley. На рис. 2.13 (в) приведена программа, реализующая те же самые функции. Вертикальную линию слева можно рассматривать как ис- точник, а линию справа как нейтральную шину. Выход изображен в виде катушки — Q—, и он активизируется, когда существует путь от левой шины. Выход 0:22/01 появится тогда, когда одновременно имеют место сигналы 1:21/00, 1:21/01 и 1:21/02.
64 Программируемые контроллеры Насос Уровень Давление Объект L включен достаточен масла испоавен N PLC L Насос включен 1:21/00 Уровень в норме Объект исправен 1:21/01 0:22/01 N Давление в норме б Насос включен 1:21/00 Уровень достаточен 1:21/01 Давление масла 1:21/02 Лампа исправности объекта 0:22/01 Рис. 2.13. От релейной схемы к многоступенчатой схеме: (а) простая релейная схема; (б) схема с ПЛК; (в) многоступенчатая схема Программа вводится с терминала с помощью клавиш, на которых изображены различные символы релейных схем. Терминал можно так- же использовать для контроля состояния входов и выходов, причем «ак- тивизированные» входы и выходы выделяются подсветкой на экране. На рис. 2.14 показано, как можно с помощью двух кнопок заста- вить поршень гидроцилиндра перемещаться вперед или назад. В схеме использованы обозначения, принятые для GEM-80. Недопу- стимо, чтобы оба соленоида были включены одновременно — это почти наверняка приведет к срабатыванию плавких предохраните- лей в источнике питания выходной платы, поэтому необходимо предусмотреть некоторые средства защиты. Это можно сделать с помощью программы, изображенной на рис. 2.14 (б). Здесь использованы нормально замкнутые контакты —1/|—. Выход В2.9, соответствующий включению соленоида прямого хода, будет активизирован, если нажата кнопка «вперед» при условии, что соле- ноид обратного хода не активизирован, или если нажата кнопка «на- зад» при условии, что концевой выключатель (КВ) прямого хода пе- ред этим не сработал.
Методы программирования 65 PLC Кнопка А1.2 А1.3 Кнопка КВ обратногрхода А1.4 А1.5 В2.9 В2.10 Соленоид Клапан Соленоид обратного хода Кнопка «вперед» А1.2 КВ Соленоид Соленоид прямого обратного прямого хода хода хода А1.3 В2.10 В2.9 КВ Соленоид Соленоид обратного прямого обратного хода хода хода Кнопка «назад» А1.4 А1.5 В2.9 В2.10 б Рис. 2.14. Многоступенчатая схема в обозначениях GEM-80: (а) схема с ПЛК; (б) многоступенчатая схема По поводу рис. 2.14 необходимо сделать следующее замечание. Контакты после их использования во входных и выходных цепях можно удалить оттуда и в дальнейшем снова использовать в про- грамме столько раз. сколько необходимо. Рис. 2.14 также показыва- ет, откуда происходит название «многоступенчатая программа». Программа такого вида выглядит как лестница, где каждая инст- рукция образует «ступеньку» на пути от источника к нейтральной шине. Термин «ступенька» применяется только к контактам, веду- щим к одному выходу. Вернемся к примеру, представленному на рис. 2.13, и добавим в схему кнопку для проверки исправности лампы (полезное средст- во, которое должно присутствовать на всех панелях; с его помо- щью можно не только проверять лампы, но также и контролиро- вать работу собственно ПЛК). Новая схема, включающая в себя кнопку для проверки исправности лампы, приведена на рис. 2.15.
66 Программируемые контроллеры Лампа Насос Уровень Давление исправности включен достаточен масла объекта Здесь мы имеем дополнительную ветвь, и выход будет активизиро- ван, когда присутствуют все три сигнала от объекта или когда на- жата кнопка проверки лампы. Мы не будем здесь рассматривать способ представления этой ветви в программе, поскольку разные производители делают это по-разному. Некоторые используют для этого клавиши Start Branch и End Branch (они имеются на клавиа- туре типа представленной на рис. 1.14). Другие используют коман- ды Branch From/To. Все эти методы отличаются простотой. Еще одно использование ветви проиллюстрировано на рис. 2.16. Для этой, по-видимому, наиболее распространенной схемы управ- ления — системы пуска двигателя — использованы обозначения, принятые в ПЛК фирмы Siemens. Действие схемы очень простое: нажатие кнопки пуска активизирует выход Q8.2, и замыкание кон- такта, соответствующего выходу, в дополнительной ветви сохраня- ет выход активизированным, пока не будет нажата кнопка «стоп». Программа, как и ее релейный эквивалент, запоминает, какая кнопка была нажата последней. Необходимо сделать одно важное замечание относительно под- ключения кнопок и программы. С целью безопасности в схеме ис- пользована нормально замкнутая кнопка «стоп», так что когда она не нажата, на входе 112.5 присутствует сигнал. Отсутствие питания, неисправность провода или загрязнение контактов приведет к ис- чезновению этого сигнала; программа интерпретирует это как на- жатие кнопки «стоп», что приведет к остановке двигателя. Если ис- пользовать нормально разомкнутую кнопку «стоп», можно легко обеспечить работоспособность программы ПЛК, но неисправность этой кнопки или схемы ее подключения оставит двигатель вклю- ченным, и единственный способ остановить его — это выключить ПЛК или снять напряжение питания двигателя.
Методы программирования 67 Кнопка Кнопка Пусковое «пуск» «стоп» устройство Рис. 2.16. Представление программы пуска двигателя: (а) схема с ПЛК; (б) многоступенчатая схема Эту проблему мы обсудим в разделе 8.2, а здесь отметим особен- ности программы на рис. 2.16. Смысл кнопки «стоп» (вход 112.5) в программе противоположен тому, что можно было бы ожидать в обычной релейной схеме. Соответствующий вход обеспечивает не остановку двигателя, а, наоборот, разрешает его работу. 2.4.3. Логические символы В цифровых системах (включая платы в составе ПЛК) широко ис- пользуются логические вентили на ТТЛ (транзисторно-транзи- сторных логических схемах) и интегральные схемы на КМОП (комплементарных металлооксидных полупроводниках). Для изо- бражения таких схем используются логические символы, и те же самые символы могут быть использованы для описания работы программы ПЛК. Подобные обозначения приняты в ПЛК Siemens и АВ В; мы сначала будем пользоваться системой обозначений Siemens.
68 Программируемые контроллеры Выход логического элемента, приведенный на рис. 2.17 (а), явля- ется истинным, если (и только если) все входы истинны. Действие элемента на рис. 2.17 (а) можно представить в виде таблицы на рис. 2.17 (б). А на рис. 2.17 (в) мы изобразим действие лампы исправности гидравлического объекта (рис. 2.13) в обозначениях ПЛК Siemens. Используя логические символы, мы получим программу, изображен- ную на этом рисунке. Выходной блок, обозначенный знаком равен- А в с с в ООО О 0 1 О 1 О О 1 1 1 О О 1 0 1 1 1 о 1 1 1 б Z о" о о о о о о 1 Насос включен Давление в норме Уровень в норме Лампа исправности объекта Кнопка «вперед» КВ прямого хода Соленоид обратного хода Соленоид прямого хода Кнопка «назад» КВ обратного хода Соленоид прямого хода Рис. 2.17. Программы ПЛК с использованием логических символов (в обозначениях ПЛК Siemens), (а) логический элемент И; (б) таблица истинности для логического элемента И; (в) лампа исправности гидравлического объекта (рис. 2.13) в логических обозначениях; (г) инвертированный вход; (д) гидроцилицдр (рис. 2.14) в логических обозначениях
Методы программирования 69 ства (=), активизируется, когда его вход является истинным, так что лампа Q8.2 зажжется, если все входы вентиля И истинны. Часто необходимо каким-то образом указать, что сигнал не яв- ляется истинным. Для этого используется обозначение в виде не- большого кружка О. На рис. 2.17 (г) выход вентиля И является ис- тинным, если (и только если) А и В истинны, а С — нет. На рис. 2.14 мы привели схему управления гидроцилиндром с помощью программы, которая препятствует одновременному включению соленоидов прямого и обратного хода. На рис. 2.17 (д) показано, как эту же программу можно реализовать на П ПК Siemens. Обратите внимание, что для этого каждый из вентилей И должен иметь сигналы «ложь». Выход Z вентиля ИЛИ на рис. 2.18 (а) является истинным, если таковым является любой из его входов. Символ внутри вентиля оз- начает следующее: «выход является истинным, если истинны один или больше входов». Инверсия сигнала, как и прежде, обозначает- ся небольшим кружком О. Поэтому на рис. 2.18 (б) выход Z будет истинным, если А является истинным, или В является ложным, или С является истинным. На рис. 2.18 (в) показано, как можно ис- пользовать вентиль ИЛИ для проверки лампы исправности гидра- влического объекта. Рис. 2.18. Логический элемент ИЛИ: (а) вентиль ИЛИ; (б) вентиль ИЛИ с инвертированным входом; (в) схема рис. 2.17 (в) с дополнительной проверкой исправности лампы
70 Программируемые контроллеры В ПЛК ABB Master используются как отдельные логические элементы, так и их комбинации. Схема на рис. 2.19 (а) является комбинацией И/ИЛИ и в виде единого блока соответствует схеме на рис. 2.18 (в). При этом в программе для ABB Master делается ссылка на имена операций в его базе данных. Аналогично, в про- грамме для ABB Master может быть использована комбинация опе- раций ИЛИ/И в виде блока ИЛИ/И, как показано на рис. 2.19 (б). 2.4.4. Список операторов Список операторов представляет собой набор инструкций, кото- рый внешне напоминает инструкции на языке ассемблера для ком- пьютера. Списки операторов, используемые в машинах Siemens и Mitsubishi, предоставляют опытному пользователю большую гиб- кость в написании программ, однако они лишают программу той наглядности, которая присуща многоступенчатым схемам или схе- мам с использованием логических символов. На рис. 2.20 показана простая операция в виде звена многосту- пенчатой схемы и с использованием логического элемента для ПЛК Рис. 2.19. Составные логические элементы ПЛК ABB Master: (а) вентиль И/ИЛИ (эквивалентный рис. 2.18 (в)); (б) вентиль ИЛИ/И
Методы программирования 71 Siemens. Эквивалентный список операторов приведен в табл. 2.1. Здесь А обозначает AND (И), AN — AND/NOT (И/НЕ), а = пере- сылку результата по адресу выхода Q4/11. Таблица 2.1 Номер инструкции Операция Адрес 00 :А 13.7 Кнопка пуска «вперед» 01 :А 13.2 КВ прямого хода задействован 02 :AN Q4.2 Соленоид обратного хода 03 := Q4.11 Соленоид прямого хода На рис. 2.21 изображена операция ИЛИ,-Эквивалентный список операторов приведен в табл. 2.2. Здесь ON обозначает OR/NOT (ИЛИ/HE), а О — операцию OR (ИЛИ). Чтобы исключить неправильную трактовку списка операторов, можно использовать скобки. Этот прием аналогичен использова- нию скобок в обычном программировании, где выражение 3 + 5/2 можно записать как (3 + 5)/2 = 4 или 3 + (5/2) = 5.5. Последний случай, хотя и является для программы выполняемым по умолча- нию, для читателя делает более ясным порядок операций. Таблица 2.2 Номер инструкции Операция Адрес 00 :ON I2.7 Вспомогательный запуск насоса (на месте) 01 :О F3.6 Флаг дистанционного пуска насоса 02 :ON Q4.2 Пусковое устройство насоса (на месте) 03 [= Q4.4 Лампа исправности насоса 13.7 13.2 Q4.2 Q4.11 Рис. 2.20. Эквивалентные программы в виде звена многоступенчатой схемы и с использованием логического элемента в обозначениях Siemens
72 Программируемые контроллеры Рис. 2.21. Эквивалентные представления схемы ИЛИ в обозначениях Siemens На рис. 2.22 показана типичная операция, как обычно, в форме логической схемы и в виде многоступенчатой схемы. Эквивалент- ный список операторов приведен в табл. 2.3. Компьютерному про- граммисту эта таблица покажется очень похожей на операции со стековой памятью (этот вопрос мы обсудим в разделе 7.3). Рис. 2.22. Более сложная программа в разных обозначениях
Методы программирования 73 Таблица 2.3 Номер инструкции Операция Адрес 00 :А( Первая установка скобок 01 :А F3.3 Ручной пуск вперед 02 :О F3.4 Автоматический пуск вперед 03 :) Результат первой установки скобок 04 :А( Результат операции И и вторая установка скобок 05 :А I2.0 Выбран 1-й двигатель 06 :О 12.1 Выбран 2-й двигатель 07 :) Находимся в точке X 08 :А 14.1 Состояние КВ прямого хода 09 :AN Q5.5 Пусковое устройство обратного хода 10 Q5.6 Пусковое устройство прямого хода В ПЛК Mitsubishi также используются списки операторов, хотя руководство для пользователя рекомендует проектировщику снача- ла изобразить многоступенчатую схему, а затем преобразовать ее в список операторов. Схеме на рис. 2.23 в обозначениях Mitsubishi соответствует список операторов, представленный в табл. 2.4. Х401 Х402 Х403 М101 Y430 Рис. 2.23. Многоступенчатая программа в обозначениях Mitsub.shi Таблица 2.4 Строка Инструкция Комментарий 0 LDX401 Запуск звена или ветви с лазерного диска 1 ANDX402 Хппп - это входы 2 ANIХ403 ANI - операция И/НЕ 3 LDY430 Запуск звена новой ветви с лазерного диска 4 ANM100 Мппп - внутреннее запоминающее устройство 5 ORB Операция ИЛИ для двух ветвей 6 ANDM101 7 OUTY430 Конец лестницы
74 Программируемые контроллеры 2.5. Битовое запоминающее устройство Практически каждая программа ПЛК нуждается в некотором виде запоминающей схемы. Типичными примерами являются схема для быстрого включения аварийной сигнализации или схема пуска двигателя на рис. 2.16, где ступенька запоминает, какая кнопка («пуск» или «стоп») была нажата последней. По очевидным причи- нам такие схемы называются запоминающими ячейками. На рис. 2.24 (а) изображен пример такой ячейки как в виде много- ступенчатой схемы, так и в виде комбинации логических элементов. Здесь выход С активизируется, если активизирован вход А, и остает- ся в таком состоянии, пока не будет деактивизирован вход В. Назна- чение входа В диктуется соображениями безопасности; он по сути де- ла воспринимает сигнал «разрешения на активизацию» выхода. Действие ячейки проиллюстрировано на рис. 2.24 (б). Как мож- но видеть, вход В отменяет эффект, произведенный входом А, что и требуется от схемы пуска/остановки. Однако в некоторых случаях требуется, чтобы сигнал «пуск» отменял действие сигнала «стоп». Типичным примером может служить автомобиль: стеклоочистите- ли работают, когда они включены, но если их выключить, продол- жают работать, пока не займут исходное положение. С помощью ПЛК это можно реализовать так, как показано на рис. 2.24 (в), где вход А осуществляет включение стеклоочистителей, вход В соот- ветствует концевому выключателю исходного положения, а С — со- стоянию привода щеток. Вход В снова показан активизированным, что разрешает включение стеклоочистителей. Действие программы проиллюстрировано на рис. 2.24 (г). При проектировании логических схем запоминание обеспечива- ется устройством, которое называется триггером и изображено на рис. 2.25 (а). Триггер имеет два входа, S (для установки в определен- ное состояние) и R (для сброса). Триггер запоминает, какой вход по- следним принял состояние логической единицы. Если оба входа присутствуют одновременно, «выигрывает» верхний (S) вход. Такая схема называется SR-триггером. Если при изображении триггера верхним является вход R, как показано на рис. 2.25 (б), то этот вход доминирует над S-входом в случае, когда они оба присутствуют. Триггеры используются при программировании ПЛК в терми- нах логических символов. На рис. 2.26 (а) показана схема управле- ния пусковым устройством двигателя с помощью ПЛК Siemens. Обратите внимание, что в ней использован триггер RS-типа; это обеспечивает преобладание логических сигналов «стоп» над логи- ческими сигналами «пуск», а сигнал «стоп» действует как разреше- ние на пуск двигателя.
Методы программирования 75 Рис. 2.24. Битовые запоминающие ячейки: (а) схема ячейки, сигнал «стоп» на входе В отменяет действие сигнала «пуск» на входе А; (б) действие программы, показанной в части (а); (в) запоминающая ячейка, где сигнал «пуск» на входе А отменяет действие сигнала «стоп» на входе В; (г) действие программы, показанной в части (в) При написании программ для ПЛК первостепенное значение имеет их «прозрачность», так чтобы даже среди ночи уставший ин- женер мог обнаружить ошибку во время работы программы. Осо- бенности ячеек памяти, изображенных на рис. 2.24, удается понять далеко не сразу. Это легко сделать только тогда, когда задейство-
76 Программируемые контроллеры Рис. 2.25. Два типа триггерной ячейки памяти: (а) SR-триггер (доминирующим является вход S); (б) RS-триггер (доминирующим является вход R) ванным входом всегда является нижняя ступенька в многоступен- чатой схеме или нижний вход вентиля в логической схеме. Символ триггера часто можно увидеть и в многоступенчатых схе- мах. Так, рис. 2.26 (б) является полным аналогом (в обозначениях Siemens) схемы на рис. 2.26 (а). В этих схемах использованы нор- мально замкнутые кнопки «стоп». Обратите внимание, как они вы- глядят в программе, и сравните с ранее приведенной многоступен- чатой схемой на рис. 2.24. В ПЛК ABB Master для триггеров используется почти такое же обозначение, за исключением того, что они имеют пять модифи- каций. Первая — это простой SR-триггер, изображенный на рис. 2.25. Другая модификация предполагает, что собственно триггеру предшествует комбинация логических элементов AND/OR (И/ИЛИ), как показано на рис. 2.26. Остальные модификации - это единые блоки, состоящие из триггера, объединенного с венти- лями AND/OR, набор которых определяется пользователем. На- пример, на рис. 2.26 (в) изображен триггер типа SRAO, у которого на S-входе включен вентиль AND, а на R-входе вентиль OR. Дру- гие возможные модификации — это SRAA (SR-триггер с элемента- ми AND/AND на входах), SROA и SROO. В многоступенчатых схемах для ПЛК Allen Bradley программу можно сделать более понятной путем использования выходов типа защелок (latch/unlatch), как показано на рис. 2.27 (а). Они действу-
Методы программирования 77 Кнопка «стоп» Кнопка «пуск» у объекта Кнопка «стоп» у объекта Кнопка «пуск» на пульте а Кнопка «стоп» Рис. 2.26. Триггерная ячейка памяти: (а) логическое представление; (б) представление с использованием многоступенчатой схемы; (в) триггер ABB SRAO ют как тот же самый бит памяти, устанавливая его, если на выходе —(L)— присутствует 1, и сбрасывая его, когда 1 поступает на выход —(U)—. Если на оба выхода приходит 0, ячейка сохраняет последнее состояние. Аналогичная идея используется в ПЛК Mitsubishi F2, с той лишь разницей, что выходы обозначаются символами S и R (от Set/Reset), как на рис. 2.27 (б). Эту схему можно описать с помощью списка операторов, представленного в табл. 2.5. В обеих схемах на рис. 2.27 приоритет отдается тому из выходов, который был активизирован последним во время прогона програм- мы. Как легко можно видеть, в обоих случаях приоритет имеют сиг- налы «стоп».
78 Программируемые контроллеры Кнопка «пуск» на пульте Кнопка «пуск» у объекта Кнопка «стоп» на пульте Кнопка «стоп» /объекта Пусковое устройство ----(L)— Пусковое устройство ----(U)--- RST [Y432I SET (Y432J Рис. 2.27. Разные виды ячеек памяти: (а) для ПЛК Allen Bradley; (б) для ПЛК Mitsubishi Таблица 2.5 Строка Инструкция Комментарий 0 LDX400 1 ORX401 2 SY432 Установка выхода 3 LDIХ402 4 ORIX403 5 RY432 Сброс выхода В случае исчезновения питания или сбоя в работе ПЛК возникает проблема с памятью. Когда ПЛК включается повторно, то должен ли бит памяти сохранять состояние, в котором он находился до неисправ- ности, или память должна быть очищена? Эго обычно определяется соображениями безопасности и удобства эксплуатации. Очевидно, что насос на водокачке, расположенной у реки в 5 км от населенного пун- кта, должен быть включен, если он работал до исчезновения питания ПЛК; также очевидно, что почти всегда автоматической печатной ма- шине нельзя разрешать вновь включиться в работу. По этим причинам производители ПЛК позволяют проектиров- щику самому определять, должна ли битовая ячейка памяти сохра-
Методы программирования 79 нять свое состояние после исчезновения питания (это — так назы- ваемая сохраняемая память) или очищаться, когда ПЛК снова включается (это — несохраняемая память). В Allen Bradley PLC-5 это определяется схемотехническим пу- тем; простой катушке на рис. 2.24 соответствует несохраняемая па- мять, а пусковому устройству на рис. 2.27 — сохраняемая память. В других ПЛК используется битовая адресация. В ПЛК Siemens 115 адреса флажков F0.0—F127.7 могут быть сделаны сохраняемыми. В ПЛК Mitsubishi вспомогательные реле Ml00—М277 соответствуют несохраняемой памяти, а М300—М377 сохраняемой. В GEM-80 G-таблица памяти является несохраняемой, тогда как аналогичная R-таблица — сохраняемой, поэтому если в схеме на рис. 2.24 катуш- ке присвоить адрес R3.4, то ячейка будет сохранять свое состояние после исчезновения питания. Язык программирования ПЛК ABB Master является сильно структурированным, и это требует от программиста соблюдения соответствующего стиля. Тип ряда компонентов, таких как память, и их поведение при первом включении ПЛК определяются при описании элементов программы. Сохраняемая память может представлять определенную опас- ность, так как объект после исчезновения питания может неожи- данно вновь возобновить работу. Поэтому проектировщик должен принять меры предосторожности, чтобы случайно не выбрать адре- са битов памяти, при которых она будет обладать свойствами сохра- нения состояния. В частности, в ПЛК GEM-80 поощряется исполь- зование R-таблицы, т. к. адреса ее ячеек вряд ли можно выбрать ошибочно. 2.6. Таймеры Время практически всегда играет важную роль в системах управле- ния. Вот типичные примеры: «Дать команду на снятие тормоза, подо- ждать 0.5 секунды, чтобы он был отпущен, проехать до упора и пре- кратить движение, подождать 1 секунду и зафиксировать тормоз» и «Включить гидравлический насос, если вспомогательный контакт че- рез 0.7 секунды не сигнализирует о неисправности привода, а если привод работает, то подождать 2 секунды и активизировать управля- ющий клапан, если затем через 3 секунды не установится требуемое давление, то выдать сигнал о неисправности гидравлической системы и выключить насос». Поэтому ПЛК должен иметь в своем составе таймеры как часть языка его программирования. Существует много типов таймеров, некоторые из них показаны на рис. 2.28.
80 Программируемые контроллеры Наиболее распространенным является таймер, осуществляю- щий задержку включения, действие которого проиллюстрировано на рис. 2.28 (а). На его основе, приложив некоторую смекалку, можно смоделировать все другие типы таймеров. Переход из 0 в 1 осуществляется с задержкой на заранее заданное время Т, но пере- ход из 1 в 0 происходит совершенно без запаздывания. Входной сигнал длительностью менее Т игнорируется. В ПЛК GEM-80 ис- пользуется только этот тип таймера. Таймер, осуществляющий задержку выключения, обеспечивает мгновенный переход из 0 в I, но переход из 1 в 0 — с задержкой. Его действие проиллюстрировано на рис. 2.28 (б). Задержка выключе- ния обычно используется для устранения эффекта дребезга контак- тов или шума из входного сигнала. Задержку выключения можно получить на основе задержки включения, используя инверсию входного сигнала и инверсию выходного сигнала таймера (хотя ре- зультирующей программе немного недостает «прозрачности»). На рис. 2.28 (в) проиллюстрировано действие запускаемого фрон- том входного сигнала импульсного таймера, который обеспечивает формирование импульса фиксированной ширины для каждого пере- хода из 0 в 1 на входе таймера. В состав PLC-5 входит однопроходный таймер, который вырабатывает импульс, длительность которого рав- на времени одного (и только одного) прохода программы. Импульсы полезны для восстановления исходного состояния счетчиков или для управления переносом некоторых данных из одного места в дру- гое. Типичным примером является сигнализатор (описываемый в разделе 6.4). Таймер любого типа имеет несколько параметров, которые долж- ны быть установлены пользователем. Важнейшим параметром являет- ся базовая единица времени (в этих единицах измеряются все времен- ные интервалы). Типичными единицами являются 10 мс, 100 мс, 1 с, 10 с и 100 с. Базовая единица не влияет на точность таймера; эта точ- ность обычно совпадает с точностью цикла выполнения программы. Следующим параметром (preset) является длительность задавае- мого таймером интервала времени (этот параметр часто называется уставкой). Длительность измеряется в базовых единицах времени; например, при базовой единице 10 мс таймер с уставкой 150 будет формировать длительность 1.5 с. В малых ПЛК уставка задается программистом; в больших ПЛК длительность может задаваться и изменяться внутри программы. Например, таймер, осуществляю- щий задержку выключения и используемый в системе торможения автомобиля, может иметь различные уставки в зависимости от того, с какой скоростью движется автомобиль — с высокой или низкой.
Методы программирования 81 Вход Выход Задержка Рис. 2.28. Различные типы таймеров: (а) задержка включения; (б) задержка выключения; (в) формирование импульса фиксированной ширины Работу таймера можно описать с помощью ряда сигналов. На рис. 2.29 изображены сигналы таймера PLC-5, осуществляющего задержку включения (называемого TON) и задержку выключения (называемого TOF). Обозначения сигналов следующие: • EN (от английского enable) — имитация входа (запуска) таймера. • ТТ (от английского timer timing) - присутствует, пока идет отсчет времени. • DN (отанглийского done) — сообщает, что работа таймера за- кончена.
82 Программируемые контроллеры В больших ПЛК программным способом может быть получено истекшее время (часто называемое суммарным временем) для ис- пользования в тех или иных целях (например, от программы мож- но потребовать, чтобы она зарегистрировала, сколько времени за- нимает определенная операция). Производители ПЛК программируют таймер по-разному. В неко- торых ПЛК, например в GEM-80, таймер используется как элемент задержки, работа которого проиллюстрирована на рис. 2.28 (о), при- чем значение уставки хранится в блоке VALUE. Компания Siemens использует аналогичную идею, но применяет другие типы таймеров. Что касается PLC-5, то в нем таймер используется в качестве оконеч- ного устройства звена многоступенчатой схемы, а его сигналы вы- полняют роль контактов в других цепях. На рис. 2.30 приведен типичный пример программирования конкретной задачи для PLC-5, GEM-80 и Siemens 115U (с исполь- зованием логических обозначений). Эта программа управляет пус- ковым устройством двигателя, которое включается и выключается при помощи кнопок. Пусковое устройство имеет вспомогательный контакт, который, если это устройство активизировано, сигнализи- рует, что двигатель вращается. Если вращение прекращается из-за перегрузки, или если нажата кнопка аварийной остановки, или ес- ли пропадает питание, то сигнал от вспомогательного контакта ис- чезнет. Однако состояние этого контакта не может быть проверено, пока не истекут 1.5 с с момента активизации пускового устройства, Рис. 2.29. Сигналы таймера ПЛК Allen Bradley: (а) таймер типа TON; (б) таймер типа TOF
Методы программирования 83 поскольку именно столько времени требуется для срабатывания контакта. Если возникает одна из указанных выше проблем, то схе- ма на рис. 2.30 проверяет состояние вспомогательного контакта и сигнализирует о неисправности привода. Обратите внимание на различия в использовании таймера и способе запоминания сигнала неисправности. Кнопка Кнопка Неисправность Пусковое «пуск» «стоп» устройство Кнопка Кнопка Неисправность «пуск» «стоп» А2.5 А2.6 G50.2 Пусковое устройство В3.1 В3.1 Вспомог. устройство т . к°н1акт по1 Таймер А2.7 неисправности — I—(Задержка)-(Уставка)—------------ Неисправность G50.2 Кнопка Неисп- «прием» равность А2.8 G50 2 б Рис. 2.30. Использование различных типов таймера в одной и той же задаче: (а) в обозначениях PLC-5; (б) в обозначениях GEM-80
84 Программируемые контроллеры Рис. 2.30 (продолжение). (в) в логических обозначениях Siemens Истекшее (суммарное) время в таймере, о котором говорилось выше, сбрасывается до нуля каждый раз, когда становится равным нулю входной сигнал. Это проиллюстрировано на рис. 2.31 (а). Та- кой таймер называют несохраняющим. Но иногда полезно иметь таймер, который запоминает текущее значение времени даже если входной сигнал становится равным нулю. Когда входной сигнал появляется снова, таймер продолжает отсчет времени с того значе- ния, при котором он прекратил работу, как показано на рис. 2.31 (б). Неудивительно, что такой таймер называют сохраняющим. Для сброса показаний таймера на ноль должен быть использован отдельный сигнал. Если в каком-либо ПЛК отсутствует сохраняю- щий таймер, те же самые функции могут быть реализованы с по- мощью счетчика, о чем речь пойдет в следующем разделе. Типичный таймер может отсчитывать интервал времени до 32 767 базовых единиц (что соответствует 16 двоичным разря- дам). Некоторые ПЛК старых моделей, работающие в двоично- десятичной системе, содержат таймеры, которые могут считать только до 999 При базовой единице в 1 с максимальное время отсчета составит чуть более 546 мин, или около 9 ч. Если необхо- димо получать большие интервалы времени (или отсчитывать время с разрешением менее 1 с), то для этого можно использо- вать комбинации таймеров и счетчиков, как описано в следую- щем разделе.
Методы программирования 85 Рис. 2.31. Типы таймеров: (а) несохраняющий таймер; (б) сохраняющий таймер; (в) таймер в обозначениях Allen Bradley: (г) таймер в обозначениях Siemens 2.7. Счетчики Существенной особенностью многих программ для ПЛК является подсчет чего-либо. Например, от ПЛК можно потребовать подсчи- тать число предметов в партии или зарегистрировать, сколько раз произойдет некоторое событие, а для больших электродвигателей — зафиксировать количество включений. Поэтому неудивительно, что все ПЛК содержат те или иные виды счетчиков.
86 Программируемые контроллеры Счетчик можно изобразить в виде рис. 2.32, хотя не все ПЛК об- ладают возможностями, которые мы опишем. Работа счетчика ха- рактеризуется двумя числами. Первое из них — это собственно от- счет (часто называемый накопленным значением), который увеличивается, когда происходит переход 0 -» 1 на суммирующем входе счетчика, или уменьшается, когда переход 0 -» 1 происходит на вычитающем входе. Накопленное значение может быть сброше- но до нуля путем подачи 1 на вход очистки счетчика. Как и время, заданное таймером, подсчитанное число можно прочитать и ис- пользовать в других фрагментах программы. Следующее число — это уставка (preset), которую можно рассма- тривать как заданную цель для счетчика. Если подсчитанное значе- ние достигает уставки, подсчет заканчивается и появляется сигнал Задание уставки Суммирование Вычитание Уставка Подсчет О Некоторые счетчики игнорируют входные импульсы при достижении уставки, а некоторые продолжают подсчет, сохраняя последнюю уставку Сброс Завершение подсчета Обнуление б Рис. 2.32. Счетчик с суммированием и вычитанием: (а) организация счетчика; (б) работа счетчика
Методы программирования 67 об окончании работы счетчика. Значение уставки может быть изме- нено программным способом; например, если речь идет о последо- вательности предметов, оператор может изменить количество предметов в партии, введя это значение с клавиатуры или при по- мощи видеотерминала. Иногда используется сигнал сброса показа- ний счетчика на ноль, как показано на рис. 2.32 (б). Производители ПЛК наделяют счетчики (так же, как и тайме- ры) несколько отличающимися функциями. В PLC-5 и Mitsubishi счетчик с суммирующим входом (CTU), вычитающим входом (CTD) и входом сброса (RES), а также с сигнализацией окончания подсчета (например, C5:4.DN) может использоваться как оконеч- ное устройство, выполняя роль обычного контакта. В Siemens S5, ABB Master и GEM-80 счетчик используется как вспомогательный блок в логической схеме или звено многозвенной логической схемы, от которых могут быть получены требуемые вы- ходные сигналы. На рис. 2.33 приведен простой пример использования счетчика в PLC-5, Siemens S5 и GEM-80. Детали, движущиеся по конвейеру, обнаруживаются фотоэлементом, и производится их подсчет. Ког- да партия деталей сформирована, конвейер останавливается и заго- рается индикаторная лампа, сообщающая оператору, что партию надо удалить с конвейера. Как только он это сделает, с помощью кнопки перезапуска конвейера устанавливается режим формирова- ния следующей партии. Хотя программы для GEM и Siemens более простые, они обла- дают недостатком, который, на первый взгляд, не является очевид- ным. Если в них добавить кнопку проверки индикаторной лампы, то нажатие этой кнопки вызовет остановку конвейера. В обоих слу- чаях эту проблему можно преодолеть, если использовать внутрен- нее запоминающее устройство, дающее понять, что «подсчет завер- шен». Тогда для конвейера следует использовать контакт —1/|—, а для лампы контакт —| |—. Это требует добавления в каждую про- грамму одного звена. Проблемы подобного рода относятся к так называемой «технике программирования» — вопросу, который мы рассмотрим в следующей главе. В большинстве ПЛК счетчик позволяет получить максимальное число 32 767. Если требуется большее значение, то можно использовать каскадное включение счетчиков, причем сигнал завершения работы первого счетчика запускает второй счетчик и одновременно обнуляет первый. Предположим, что счетчик 1 хранит числа в диапазоне 0—999, а счетчик 2 хранит тысячи. Тогда если в счетчике 2 накоплено число 23 516, а в счетчике 1 — 457, то общее значение будет равно 23 516 457.
88 Программируемые контроллеры Рис. 2.33. Пример использования счетчика в обозначениях: (a) Allen Bradley; (б) GEM-80 Рис. 2.34 демонстрирует, как эту идею можно использовать для построения таймера, отсчитывающего очень большие времена. Пример приведен в обозначениях PLC-5, но аналогичную реализа- цию можно осуществить на любых ПЛК. Первое звено за один цикл работы генерирует на выходе импульс; период несинхронизированной последовательности таких импульсов задается таймером. (Если таймер не закончил отсчет заданного вре-
Методы программирования 89 Фотоэлемент „ J12.5 F58.0 Индикаторная лампа Q20.0 -и- Индикаторная лампа Q20.0 Конвейер Q20.1 в Рис. 2.33 (предложение), (в) Siemens мени, сигнал DN отсутствует и таймер продолжает работу. Когда от- счет времени достигает уставки, появляется сигнал DN, обнуляющий таймер и запускающий его вновь.) Полученные импульсы с периодом следования в 1 с подсчитыва- ются последовательно включенными счетчиками, давая нарастаю- щим итогом секунды/минуты/часы/дни/годы. Как только каждый счетчик достигает своей уставки, он выдает импульс на следующий счетчик и сбрасывает собственные показания. Этот прием широко используется для регистрации времени работы насосов, вентилято- ров и других подобных устройств, что необходимо для соблюдения графика профилактического обслуживания. В этом случае «заданный интервал времени» во втором звене будет вспомогательным контак- том на пусковом устройстве привода. Таймеры большой длительности, построенные на основе счетчи- ков, обычно являются сохраняющими (т. е. они сохраняют значение времени, если управляющее их работой событие отсутствует). Они могут быть сделаны несохраняющими за счет сброса показаний счет- чиков, когда управляющее событие отсутствует, но это бывает необ- ходимо крайне редко. 2.8. Цифровые применения 2.8.1. Представление чисел До сих пор мы рассматривали только однобитовые операции. Од- нако в системах управления часто приходится иметь дело с числа- ми. От ПЛК можно потребовать вычислить, сколько единиц про-
90 Программируемые контроллеры T4:1.DN 11/1 Топ Т4:1 pre 100 VI Заданный Таймер с базовой единицей 1/100 с и уставкой 100 интервал Т4* 1 DN времени НН-II— каждую секунду выдает на выходе импульс Счетчик секунд сти С5:0 pre 60 C5:C.DN сти С5:1 pre 60 Счетчик минут C5H.DN сти С5:2 pre 24 Счетчик часов C5:2.DN C5:0.DN сти С5:2 pre 366 C5:0 (RES) Счетчик дней C5:1.DN C5:1 (RES)---- C5:2.DN C5:2 (RES)---- Сброс каждого счетчика । при достижении им своей уставки C5;3.DN С5:3 (RES)---- Рис. 2.34. Каскадирование счетчиков дукции в среднем производится в час в течение рабочего дня, или определить количество жидкости в накопительной емкости. Для выполнения таких операций ПЛК должен обладать способностью обрабатывать числовые данные. Большинство ПЛК работают с 16-битовым словом, позволяю- щим представлять положительные числа в диапазоне от 0 до +65 535 или числа со знаком (положительные или отрицатель-
Методы программирования 91 ные) в диапазоне от —32 768 до +32 767 в дополнительном коде (см. Приложение). В последнем случае самый старший бит пред- ставляет знак числа, принимая значение 1 для отрицательных чи- сел и 0 — для положительных. В программах для ПЛК обычно (но не обязательно) используется представление чисел в дополни- тельном коде. Числа, подобные приведенным выше, называются целыми и поэтому могут представлять только любое целое число в соответст- вующем диапазоне. Для получения большего диапазона представ- ления целых чисел можно использовать два 16-битовых слова, при этом диапазон чисел составит от —2 147 483 648 до +2 147 483 647. Этот тип целых чисел доступен в ПЛК ABB Master (где их называ- ют «длинными целыми») и в 135U и 155U семейства Siemens (где используется термин «целое слово двойной длины»). Для представления десятичных дробей (например, чтобы полу- чить значение температуры 45.6 °C) используются числа, которые всем известны по работе с обычным калькулятором. Они называ- ются числами с плавающей точкой и обычно состоят из двух 16-би- товых слов, содержащих мантиссу (цифровую часть) и порядок числа. Например, при основании 10 число 74 057 будет иметь ман- тиссу 7.4057 и порядок (показатель степени) 4, представляющий 104. Разумеется, ПЛК работают в двоичной системе, поэтому ман- тисса и порядок представляются в виде дополнительного двоично- го кода. Среди производителей имеются неизбежные различия в представлении вещественных чисел, но самым новым стандартом является 32-битовый формат с одинарной точностью, установлен- ный IEEE (американским Институтом инженеров по электротех- нике и электронике. — Прим, перев.). Этому стандарту соответству- ет рис. 2.35 (в), что позволяет получать диапазон чисел +(от 1.175Е-38 до 3.402Е38). Некоторые производители жертвуют диапа- зоном порядка, чтобы получить большую точность для мантиссы. Например, в ABB Master диапазон чисел составляет ±(от 5.4Е-20 до 9.2Е18), что дает более высокую точность. Вещественные числа определенно полезны, однако следует чет- ко представлять связанные с ними ограничения. Здесь имеются две проблемы. Первая возникает при совместном использовании боль- ших и малых чисел. Предположим, что мы имеем систему, работа- ющую с основанием 10 с четырьмя значащими цифрами, и хотим сложить 857 800 (записанное как 8.578Е5) и 96 (записанное как 9.600Е1). Поскольку меньшее число находится вне диапазона (че- тыре значащие цифры) большего, оно будет проигнорировано, в результате чего получится 857 800 + 96 = 857 800.
92 Программируемые контроллеры Вторая проблема возникает, когда проверяется равенство веще- ственных чисел. Преобразование десятичных чисел в двоичные мо- жет быть выполнено с разрешением, обеспечиваемым форматом с плавающей точкой (1.175Е-38 в стандарте IEEE с одинарной точ- ностью). Большинство домашних компьютеров хранят числа в формате с плавающей точкой, и может произойти то, что демонст- рирует простая программа на языке BASIC: 100А=3 110 В=6.4 120 0=9.4 130 IF (А+В)=С THEN PRINT (“3+6.4=9.4”): GOTO 150 140 PRINT (“3+6.4 does not = 9.4, it PRINT C 150 PRINT (“Take care with real numbers!”) Эта простая программа не делает того, что вы могли ожидать! При сравнении вещественных чисел использование знака равенства (=) очень важно. Безопаснее использовать составные знаки >= (больше или равно) и <= (меньше или равно), но предпочтительнее все же для проверки использовать целые числа, если это вообще возможно. Бит знака (0 = положительное 16 384 1024 128 число) \ / / / 8 4 2 1 Mnm pin i iiii Знак 8-битовый порядок в дополнительном коде 23-битовая мантисса Рис. 2.35. Представления чисел: (а) обычное 16-битовое целое; (б) длинное 32-битовое целое; (в) 32-битовое вещественное в стандарте IEEE
Методы программирования 93 Последнее представление чисел — двоично-десятичное (BCD — binary coded decimal) — используется для связи с внешними устройства- ми, такими как цифровые индикаторы или барабанные переключатели с цифрами по образующей цилиндра. Такие устройства приспособлены для работы в десятичном формате, причем на декаду отводится 4 двоич- ных разряда. Данное представление является избыточным, так как 6 чи- сел (от 10 до 15 включительно) не используются при кодировании че- тырьмя битами. Однако это очень удобно для соединений с внешними устройствами. Поэтому большинство ПЛК снабжены инструкциями, которые преобразуют BCD во внутренний двоичный формах а также двоичное представление обратно в BCD. Например, в PLC-5 имеются инструкции FRD (from decimal — преобразование десятичных чисел в двоичный формат) и TOD (to decimal — переход от двоичного представ- ления к десятичному). На рис. 2.36 схематически приведен пример по- добных операций. В разделах 9.11 и 9.12 описывается, как можно вы- полнить те же преобразования без использования указанных функций. Используемые в каждом семействе ПЛК типы чисел значительно отличаются в зависимости от модели (и, разумеется, от цены). Напри- мер, в Mitsubishi F2 можно производить только перемещение, сравне- ние и вывод данных в цифровой форме от счетчиков или таймеров, что делает этот ПЛК по сути машиной с побитовыми операциями. В семействе Siemens распространенная модель 115-U использует только 16-битовые целые числа, однако следующая модель семейства, 135-U, может обрабатывать 16-битовые и 32-битовые целые числа, а также числа с плавающей точкой. Аналогичное расширение возмож- ностей можно обнаружить и в семействах Allen Bradley, GEM-80 и ABB. Декадный переключатель Цифровой индикатор Рис. 2.36. Применение двоично-десятичного представления чисел
94 Программируемые контроллеры 2.8.2. Перемещение данных Числа часто требуется перемешать из одного места в другое; напри- мер, может потребоваться изменить значение уставки таймера в со- ответствии с условиями работы объекта; или переслать данные счетчика на выходную плату для их индикации на цифровом табло; или результат некоторых вычислений использовать в какой-либо другой части программы. PLC-5 семейства Allen Bradley для операции переноса использу- ет одно звено, и, по-видимому, это простейший случай, с которого следует начать объяснение. Простота использования одного звена на операцию распространяется на все арифметические функции, которые мы будем рассматривать, но иногда по сравнению с други- ми машинами для данной операции может потребоваться большее количество звеньев. На рис. 2.37 (а) изображен вид звена. Его работа начинается с проверки некоторых условий в двоичной форме; если все эти усло- вия выполнены, вырабатывается команда MOV (от move — переме- стить), приказывающая перенести данные от их источника по адре- су назначения. Источник и пункт назначения могут быть любыми местами размещения числовых данных, например: Уставка счетчика или таймера, например С5:17. PRE или Т4:52. PRE Накопленное значение счетчика или таймера, например С5:22.АСС или Т4:6.АСС Входные или выходные данные (WORD), например 1:23 (плата 3 в стойке 2, все 16 бит) или 0:47 (плата 7 * в стойке 4, все 16 бит) Заметим, что все эти данные представляются в двоичной форме. Если требуется двоично-десятичное представление, то могут быть использованы инструкции FRD и TOD (см. рис. 2.36). Внутреннее ЗУ для целых чисел, например N7:24 Внутреннее ЗУ для чисел с плавающей точкой, например F8:32
Методы программирования 95 Условие(я) для перемещения Mov N7:34 - ь TC6.PRE- н Источник (откуда) Пункт назначения (куда) Источник б А12 (AND) G24 (OUT) в Рис. 2.37. Перемещение данных в ПЛК: (a) Allen Bradley; (б) Siemens; (в) GEM-80 Если данные переносятся из источника, где они хранятся в форма- те целого числа, в пункт назначения, где данные имеют вид чисел с плавающей точкой, то преобразование выполняется автоматически. Однако следует соблюдать осторожность, если переносимые данные связаны с преобразованием чисел с плавающей точкой (в источни- ке) в целые числа (в пункте назначения). В данном случае может возникнуть ошибка, если число в формате с плавающей точкой на- ходится вне диапазона целого числа. И наконец, в качестве источ- ника может служить обычная константа (например, 3, 17 или 4057). На рис. 2.37 (а) приведен пример, когда в случае выполнения ус- ловий срабатывания данного звена число, хранящееся по адресу N7:34, пересылается в качестве уставки таймера по адресу Т4:6. В ПЛК Siemens и GEM используется несколько отличный спо- соб пересылки, который делает программу более компактной и уменьшает ошибки округления за счет менее очевидного выполне- ния действий. Оба этих типа ПЛК осуществляют перемещение дан- ных с помощью двух отдельных инструкций через специальный ак-
96 Программируемые контроллеры кумулятор (ячейку хранения одного слова). В ПЛК Siemens для пе- ремещения данных из источника в аккумулятор используется инст- рукция Load, а для перемещения данных из аккумулятора по месту назначения — инструкция Transfer, как показано на рис. 2.37 (6). Данные могут быть взяты из любой области памяти (или направле- ны в такую область); вот некоторые из таких областей: FW — 16-битовое входное слово QW — 16-битовое выходное слово Т — слово таймера С — слово счетчика DW — 16-битовое слово в ячейке памяти данных Так, для рис. 2.37 (б) можно написать следующую программу: : L Т113 (переслать значение таймера в аккумулятор) :Т DW45 (из аккумулятора в слово данных 45) В GEM-80 использование аккумулятора не столь очевидно. При по- мощи инструкции —<AND>— двоичное число помещается из опреде- ленного места (из внутреннего ЗУ или входной/выходной платы) в звено, а инструкция —<OUT>— служит для пересылки числа из звена по определенному адресу. На рис. 2.37 (в) двоичное число из 16-бито- вого входного слова А12 помещается в 16-битовую ячейку памяти G24. Преобразование из двоично-десятичного формата в двоичный и наоборот осуществляется с помощью инструкций —<BCDIN>— и —<BCDOUT>— (направление преобразования очевидно). Различие между рис. 2.37 (б, в) и рис. 2.37 (а) станет понятным, когда мы рассмотрим арифметические операции в разд. 2.8.4. В ABB Master точки, между которыми осуществляется перенос данных, просто соединяются между собой на логической схеме. 2.8.3. Сравнение данных В программах ПЛК часто требуется производить сравнение чисел. Типичными примерами могут служить счетчик, определяющий, достигнуто ли требуемое количество предметов в партии, или цепь аварийной сигнализации, устанавливающая, не превысило ли, ска- жем, значение температуры некоторый безопасный уровень. Эти сравнения производятся элементами, которые можно пред- ставить в виде рис. 2.38. Они имеют два цифровых входа, соответ- ствующих сравниваемым величинам, и двоичный выход, принима- ющий значение «истина», если выполняется заданное условие.
Методы программирования 97 Величина 1 Величина 2 Сравнение Двоичный результат: «истина» или «ложь», 1 или О Рис. 2.38. Пояснение сравнения данных Большинство ПЛК способны производить следующие сравнения: А больше, чем В А больше или равно В А равно В А меньше или равно В А меньше, чем В, где Аи В — числовые данные. Проверку вещественных чисел (чисел с плавающей точкой) на строгое равенство следует избегать по при- чинам, рассмотренным в предыдущем разделе. Существует много других видов сравнений; в PLC-5, например, имеется инструкция Limit, проверяющая, находится ли А между В и С, a GEM и Siemens способны проверять числа на условие «не равно». Рис. 2.39 демонстрирует установку и сброс флажка аварийной сигнализации ВЗ/21 (в многозвенной схеме PLC-5) и F21/02 (в ло- гических обозначениях Siemens). Бит аварийного сигнала устанав- ливается, если температура (значение которой отсчитывается с аналоговой входной платы в формате пп.п °C и хранится по адресу N7:15 в PLC-5 или DW42BSiemens 115-U) становится выше 50.0 °C. Будучи установленным, этот бит сохраняется до тех пор, пока тем- Рис. 2.39. Пример сравнения данных: (а) в ПЛК Allen Bradley; (б) в ПЛК Siemens (в логических обозначениях) б
98 Программируемые контроллеры 2.8.4. Арифметические операции Числовые данные подразумевают возможность совершать над ни- ми арифметические операции, и все ПЛК, которые мы рассматри- ваем (кроме простейшего F2), способны выполнять по крайней ме- ре четыре математические функции — сложение, вычитание, умножение, деление. В разделе 2.8.1 мы рассматривали целые числа и числа с плава- ющей точкой. При операциях с целыми числами следует соблюдать осторожность. 16-битовые целые числа, представляемые в допол- нительном коде, имеют диапазон от —32 768 до +32 767 (см. Прило- жение). Если арифметическая операция выводит результат за гра- ницы этого диапазона, то число будет искажено. Например, 26 732 8 647 —30 157 в 16-битовом дополнительном коде, что совсем не соответствует ожидаемому результату. ПЛК имеет фла- жок переполнения, который может быть использован для предупре- ждения об опасности или для установки результата, скажем, в ноль с помощью инструкции Move. Аналогичные меры предосторожности необходимы при операциях вычитания и умножения (последняя, в частности, чувствительна к переполнению: 200 х 200 = 40 000, что выходит за границу диапазона). Надо иметь в виду, что арифметическое переполнение может возникнуть из-за неисправности аналоговой входной платы или датчика или даже самого объекта, причем иным способом эту неис- правность бывает невозможно установить. Известен достоверный случай ложного предупреждения о ракетной атаке, имевший место в США в 1960-е годы, когда радарная система зафиксировала эхо от Луны. Расстояние до мишени (вычисленное умножением времени запаздывания отраженного сигнала на скорость света) значительно превосходило границу диапазона целых чисел (произошло пере- полнение), но проверка не была произведена, и результат был вос- принят как правильный, соответствующий отраженному сигналу от летящих ракет. Это заставило вооруженные силы США принять высшую степень боевой готовности. К счастью, через несколько минут вмешался персонал, и ситуация разрешилась. Более серьезная предосторожность нужна при выполнении де- ления. Ошибка в программировании или неисправность объекта управления или входной платы ПЛК могут привести к появлению ошибки типа «деление на ноль». Это вызовет остановку работы
Методы программирования 99 многих ПЛК с сообщением «ошибка в программе». Поэтому на практике рекомендуется упредить любую инструкцию проверкой того, что она будет выполнена только в том случае, если ожидаемый результат будет осмысленным. Рис. 2.40 иллюстрирует типичный пример, с которым мне дове- лось столкнуться. Надо было измерять скорость движения объекта; для этого измерялся интервал времени Т между моментами прохо- ждения передней частью объекта мимо двух фотоэлементов, в ре- зультате скорость вычислялась по формуле v = d/T. Все было нор- мально до тех пор, пока несколько месяцев спустя не отказал фотоэлемент ФЭ2; в результате возникло деление на ноль и рано утром ПЛК сигнализировал о неисправности. Прежде чем эта не- исправность была обнаружена, обслуживающий персонал был вы- нужден заменить несколько устройств (в том числе и сам ПЛК, по- скольку постоянно была включена лампа неисправности). Автору при этом было стыдно. Каждый производитель ПЛК организует выполнение арифме- тических операций по-своему, с различной степенью простоты и удобочитаемости. Но нет ничего проще, чем использование для этой цели языков высокого уровня, таких как BASIC или Pascal, но и их возможности обычно ограничиваются четырьмя математиче- скими функциями плюс извлечение квадратного корня в наиболее дорогих машинах. PLC-5 использует такие математические блоки, как ADD, SUB, MULT и DIV, которые позволяют создавать простые, но несколько длинные программы. Рис. 2.41 показывает, как с помощью само- корректирующейся программы с усечением длины слова можно выполнить простые вычисления. Более мощные машины семейст- ва PLC-5 (такие как 5/40) содержат блок выполнения инструкций, позволяющий вычислять математическое выражение с помощью единственной инструкции. Рис. 2.40. Пример ошибки «деление на ноль»
100 Программируемые контроллеры Заданная длина слова - Фактическая длина = Ошибка Ошибка х Коэффициент = Коррекция Коррекция + Усеченная длина = Усеченная длина На языке высокого уровня: Усеченная длина: = Коэффициент х (заданная длина - фактическая длина) + + усеченная длина Рис. 2.41. Арифметические операции в PLC-5 ПЛК 115-U выполняет арифметические инструкции в формате STL (statement list — список операторов). Выше речь шла об аккуму- ляторах; инструкции загрузки (L) и переноса (Т) используют внут- ренний аккумулятор. Фактически имеются два аккумулятора, и ин- струкция загрузки перемещает содержимое аккумулятора 1 в аккумулятор 2, а после этого перемещает данные из источника в ак- кумулятор 1, как показано на рис. 2.42. Арифметические инструк- ции (сложения, вычитания и т. д.) применимы к содержимому обо- их аккумуляторов. На рис. 2.42 показано, как складываются два числа и результат переносится в запоминающее устройство. DW40 АСС1 ।_____ I-----1 Содержит данные -----1 “------1 из DW40 DW41 АСС1 АСС2 Здесь результат Рис. 2.42. Арифметические операции в ПЛК Siemens S5 LD DW40 LD DW41 ADD TDW42
Методы программирования 101 Процедуре в нотации Siemens, изображенной на рис. 2.41, соот- ветствовала бы следующая программа: L DW30 (заданная длина слова) L DW31 (фактическая длина) SUB (ошибка остается в аккумуляторе 1) L DW32 (коэффициент) MULT (остающаяся поправка) L DW40 (старое слово усеченной длины) ADD (добавить поправку, чтобы получить новую длину) Т DW40 (перенести результат обратно в ЗУ) Очевидно, наиболее легкими для восприятия являются представле- ния той же программы в обозначениях GEM-80 и ABB Master, изо- браженные на рис. 2.43 (а) и 2.43 (6) соответственно. Они практиче- ски не нуждаются в пояснении. Читатель, знакомый с языком FORTH (см. раздел 7.3), поймет, что схемы, представленные на рис. 2.42 и 2.43, основаны на использовании идеи стека магазинного типа. Заданная длина G45 ----(AND)----- Коэффициент G56 (SUB)-(LINCON)-(VALUE)-(ADD) ( ) Г< > Усеченная длина G50 । -----(OUT)---- Фактическая длина G42 ---(AND)----- Усеченная длина G50 ---(AND)— а Заданная длина Фактическая длина Коэффициент Усеченная длина Рис. 2.43. Математические функции в GEM-80 и ABB Master. (а) В GEM-80 арифметическая функция UNCON используется, чтобы избежать ошибок усечения при работе с целыми числами. (6) В ABB Master доступ к переменным осуществляется по их именам в базе данных
102 Программируемые контроллеры Все математические операции, особенно те, которые имеют де- ло с числами с плавающей точкой, связаны с большими затратами времени. Поэтому при программировании соответствующие инст- рукции рекомендуется использовать только тогда, когда они дейст- вительно необходимы, и не тратить лишнее время на их многократ- ное выполнение при каждом проходе программы ПЛК. 2.9. Комбинаторная и событийно-управляемая логика 2.9.1. Комбинаторная логика Любую систему управления, работающую с цифровыми сигналами, можно представить в виде рис. 2.44 (а), где состояния выходных сигналов Z, Y, X, Wh т. д. определяются значениями входов А, В, С, D и т. д. Работу системы управления можно организовать, исполь- зуя комбинацию двух основных методов. Самым простым из этих методов является комбинаторная логика, когда систему можно разбить на более мелкие блоки, как на рис. 2.44 (б), с одним выходом у каждого блока, причем состояние выхода опре- деляется только значениями соответствующих входов. Например, на- грузочный вентиль гидравлического насоса будет задействован, если: Насос включен AND (Выбран режим «повысить» AN D не сработал верхний концевой выключатель) OR (Выбран режим «понизить» AND не сработал нижний концевой выключатель) Работу этого нагрузочного вентиля можно организовать с помощью простой программы в виде многоступенчатой схемы или логической структуры, как на рис. 2.45, но предпочтительнее разработать стандарт- ный способ создания программы на основе комбинаторной логики. Первый этап заключается в разбиении системы управления на ряд небольших блоков, каждый из которых имеет один выход и несколько входов. Далее для каждого выхода надо составить так называемую таб- лицу истинности, в которой должны быть записаны все возможные со- стояния входов и соответствующие им требуемые состояния выхода. На рис. 2.46 (о) мы имеем выход Z, зависящий от четырех входов А, В, С, D. Всего имеется 16 возможных комбинаций состояний входов, a Z акти- визируется (т. е. является истинным) только для четырех из них. Это сразу можно отобразить в виде многоступенчатой схемы на рис. 2.46 (б) или логической схемы на рис. 2.46 (в), где каждое звено или вентиль AND соответствуют одной строке таблицы истинности. Использование
Методы программирования 103 Входы д а Выходы 14t в “W с — А V D ж ’Г Е £. Рис. 2.44. Комбинаторная логика: (а) представление на высоком уровне; (б) разбиение на меньшие блоки Ключ Насос Нагрузочный «повысить» Верхний КВ включен вентиль Рис. 2.45. Комбинаторная логика в многоступенчатой схеме и в логических обозначениях
104 Программируемые контроллеры таблиц истинности для синтеза схем комбинаторной логики непосред- ственно приводит к структуре, состоящей из элементов AND/OR и на техническом языке называемой «суммой произведений». Рис. 2.46. Комбинаторная логика как следствие таблицы истинности: (а) таблица истинности; (б) лестничная реализация таблицы истинности; (в) реализация в виде логической схемы
Методы программирования 105 Возникает естественный вопрос: «Является ли такая структура простейшей?» Ответ будет отрицательным, так как существуют такие методы, как карты Карно и булева алгебра, дающие более простое решение. Если структура создается из логических венти- лей или реле, то желательно обойтись минимальным количеством вентилей или контактов, чтобы снизить расходы на проектирова- ние. При написании программы для ПЛК дополнительных контак- тов не требуется, поэтому главной целью должна быть прозрач- ность работы программы, а не ее простота. Одно из упрощений, которое всегда рекомендуется делать (опять же для прозрачно- сти), заключается в вынесении из звеньев общего контакта, как показано на рис. 2.47. В качестве примера рассмотрим пульт управления приводом на- сосов, изображенный на рис. 2.48 (а). Ради дешевизны трехпозици- онный переключатель соединен напрямую с двумя группами кон- тактов, как показано на рис. 2.48 (6) (на практике так делать не Сводится к следующему: Рис. 2.47. Упрощение комбинаторной логики
106 Программируемые контроллеры рекомендуется, так как при отказе источника питания оба насоса будут включенными). Таблица истинности для этого случая приво- дит к многоступенчатой схеме на рис. 2.48 (в), но схема минималь- ной сложности имеет вид рис. 2.48 (г). Последняя, однако, не отра- жает работу переключателя и поэтому несколько затрудняет обнаружение неисправностей. Вкл. । о не используется I * о---------С Только Рис. 2.48. Минимизация не способствует прозрачности: (а) пульт управления; (б) подключение пульта; (в) программа на основе таблицы истинности; (г) программа минимальной сложности Только насос 2 g Вкл. Насос 1 Только насос 1 Вкл. Насос 2
Методы программирования 107 2.9.2. Событийно-управляемая логика В комбинаторной логике состояния выходов определяются исключи- тельно входными сигналами. В событийно-управляемой логике (из- вестной также как схема последовательности) состояние выхода зави- сит не только от состояния входов, но и от того, что с ним произошло до этого. Поэтому невозможно составить таблицу истинности, на основа- нии которой можно было бы получить требуемую логическую схему. Рассмотрим, например, простую схему пускового устройства двигателя, изображенную на рис. 2.49 (о). Если ни одна кнопка не нажата, двигатель должен быть включен или выключен в зависимо- сти от того, в каком состоянии он находился до этого. Эта ситуация может быть представлена в виде рис. 2.49 (б), известного под назва- нием диаграмма переходов состояний (для краткости ее часто на- зывают просто диаграммой состояний). Квадратные блоки соответствуют состояниям, в которых может на- ходиться система (т. е. двигатель должен быть включен или выключен), а стрелками обозначены переходы, заставляющие систему изменить состояние. Если двигатель включен, то нажатие кнопки «стоп» приве- дет к остановке двигателя. Черта над сигналом (например, StopPBOK) означает, что этот сигнал отсутствует; отметим связь иежду положени- ем кнопки «стоп» и значением соответствующего сигнала. Обычно принято состояния обозначать цифрами, а переходы — буквами. Диаграммы переходов состояний можно построить из элементов памяти, количество которых на единицу меньше, чем число состоя- ний, причем одно состояние по умолчанию подразумевает отсутствие других. Таким образом, для изображения диаграммы перехода состо- яний в примере с пусковым устройством двигателя (рис. 2.49) необхо- дим всего один элемент памяти (например, защелка или SR-триггер). Рис. 2.49. Диаграмма перехода состояний: (а) пусковое устройство двигателя; (б) диаграмма перехода состояний; (в) таблица выхода Пусковое Нажаты устройство обе кнопки Нажата кнопка «стоп»
108 Программируемые контроллеры На рис. 2.50 представлен более сложный пример, взятый из ре- альной жизни (дозировка негашеной извести). Известь заранее ус- тановленного веса засыпается в дозатор, подготовленный для оче- редной разгрузки, которая начинается (что неудивительно) с нажатия соответствующей кнопки. После этого защитный чехол опускается (чтобы уменьшить распыление извести) и известь вы- гружается. После разгрузки защитный чехол возвращается в исход- ное положение и дозатор наполняется в очередной раз. Аварийная кнопка позволяет прервать разгрузку, а ключ разрешения наполне- ния останавливает подачу извести в дозатор. Существуют две ситуации, нарушающие нормальную работу ус- тановки: невозможность получить вовремя требуемый вес партии (из-за «заклинивания» материалом подающего механизма) и веро- ятность получить нулевой вес очередной партии после разгрузки дозатора (также к определенному моменту времени и по той же причине). В каждом из этих случаев система должна быть переведе- на из автоматического режима работы в ручной, чтобы можно бы- ло определить причину неисправности. Теперь мы можем изобразить диаграмму состояний — она предста- влена на рис. 2.50 (б). Рекомендуется, хотя это и не обязательно, марки- ровать основной путь последовательными цифрами (для состояний) и буквами (для переходов). Состоянием по умолчанию является такое состояние, которое будет вводить систему из ручного режима работы в автоматический, и при его выборе требуется крайняя осторожность. В данном случае наиболее критичным является состояние «подача»; если дозатор уже заполнен, система немед ленно перейдет в состояние 1 (го- товность); если нет, то дозатор будет заполняться. Выбор л юбого друго- го состояния по умолчанию может привести к бесполезному циклу пе- рехода через все состояния при отсутствии материала в дозаторе. К определению переходов также следует подходить с осторожно- стью, так как параллельные пути обычно недопустимы. Если переход А был определен как «Подача завершена», а переход G как «Время ожидания OR подача не разрешена», то система должна работать правильно, но по какому-либо стечению обстоятельств однажды оба сигнала появятся одновременно, что нарушит нормальную работу системы и приведет в большое недоумение программиста. Правильным определением перехода А является: Подача завершена AND время ожидания не превышено AND пода- ча разрешена, а для перехода G: Время ожидания превышено OR подача не разрешена.
Методы программирования 109 Задание клапана а б Режим Лампа Время ожидания Подача Состо- яние Пода- ча Чехол опу- щен Чехол поднят Весы «Авто» разре- шен Лампа готов- ности неис- прав- ности 0 1 0 0 0 1 0 0 Готовность 1 0 0 0 0 1 1 0 Чехол опущен 2 0 1 0 0 1 0 0 Разгрузка 3 0 0 0 1 1 0 0 Чехол поднят 4 0 0 1 0 1 0 0 Неисправность 5 0 0 0 0 0 0 1 в Рис. 2.50. Диаграмма перехода состояний для реального объекта: (а) схема объекта; (б) диаграмма перехода состояний; (в) таблица выхода
110 Программируемые контроллеры Это отдает переходу в состояние «неисправность» приоритет по сравнению с нормальным переходом. Аналогичные рассуждения применимы к переходам F, D и Н Теперь можно сформировать таблицу, связывающую выходы с состояниями. Это достаточно просто, и результат представлен на рис. 2.50 (в). Следующий этап заключается в преобразовании диаграммы со- стояний в программу для ПЛК. Шаги, проделанные нами до сих пор, являются общими для всех методов программирования ПЛК. Мы получим полную программу в формате многоступенчатой схе- мы, но каждая операция должна быть представлена в эквивалент- ном логическом формате. Программа в значительной степени основана на идее прогона программы, рассмотренной в разд. 2.2. Разбив программу на четыре области в соответствии с диаграммой состояний, как показано на рис. 2.51, мы можем контролировать порядок выполнения каждого шага. В действительности разбивка программы на модули вида рис 2.51 не является столь критичной, главное — это хранить переходы и состояния в отдельных областях и не смешивать их. Разбивка про- граммы, полученной на основе диаграммы состояний, на отдельные модули является одним из принципов методики EDDI (Error Detection and Diagnostic Indication — обнаружение ошибок и диагно- стическая индикация), рассматриваемой в разд. 8.5.7. Программирование начинается с выбора режима работы (авто- матический/ручной); это обеспечивается простым звеном на рис. 2.52. Автоматический режим разрешен только тогда, когда нет не- исправностей и защитный чехол поднят. Далее предстоит заняться переходами, первые три из которых показаны на рис. 2.53. Они достаточно очевидны и практически не нуждаются в комментариях. Заметим, что первый контакт в каждом звене представляет состояние, поэтому все, что необходимо, — это иметь информацию о значениях входов в нужных местах последо- вательности. Собственно состояния приведены на рис 2.54. За исключением состояния 0, для всех состояний и выбора режима работы (руч- ной/автоматический) использованы простые триггеры-защелки, так что после отказа источника питания система возобновит рабо- ту в ручном режиме. В итоге мы получаем выходы, представленные на рис. 2.55. Выход активизируется соответствующим состоянием(ями) в авто- матическом режиме или нажатием нужной кнопки при ручном управлении.
Методы программирования 111 Рис. 2.51. Прогон программы и диаграмма перехода состояний Кнопка Разреше- «Автомати- ние автома- ческий Верхний тического Кнопка «Ручной режим» Задание автомати- ческого Режим «автоматический» выбран Рис. 2.52. Выбор режима работы (ручной/автоматический)
112 Программируемые контроллеры Состоя- Время Пере- ние Подача ожидания ход О завершена превышено А Это нормальное положение, Введена для того, чтобы в случае при нажатии КВ размыкается одновременного появления сигналов от нижнего КВ и аварийной кнопки приоритет имел переход F Рис. 2.53. Первые три перехода Состоя- Состоя- Состоя- Состоя- Состоя- Выбор авто- Состоя- —L-Пере- Пере- Пере- Выбор авто- " ход ход ход магического .В С F режима hi-hMHI- Рис. 2.54. Три из шести состояний
Методы программирования 113 Метод диаграммы состояний является весьма эффективным, но он может привести к путанице, если не понимать его основной филосо- фии. Наиболее часто приводимый аргумент заключается в том, что этот метод требует использования гораздо большего количества звень- ев или логических элементов, чем при непосредственном программи- ровании относительно выходов. Это действительно так, но программи- рование относительно выходов может привести к очень запуганным и с трудом воспринимаемым программам. На рис. 2.56 приведена схема, Выбор Состоя- автоматического ние Подающий Рис. 2.55. Два из выходов системы Рис. 2.56. Пример макаронного программирования, соответствующий состоянию 2
114 Программируемые контроллеры соответствующая состоянию 2 нашей диаграммы состояний. В ней смешаны операции, имеющие место как при ручном, так и при автома- тическом управлении, и ее действие отнюдь не является очевидным (подобный прием известен как макаронное программирование). Проблемы могут также возникнуть, если переходы совершаются в на- правлении против хода программы, как, например, переход Е на рис. 2.50 (б). Если не предусмотреть соответствующие меры предосторож- ности, последовательность операций, ориентированная исключитель- но на выходы, может запросто прерваться — возможно, произойдут од- новременно два события (перехода) или, наоборот, вообще ни одного. Метод прямого программирования также обладает тем недос- татком, что в программу трудно вносить изменения, тогда как это достаточно просто сделать при использовании диаграммы состоя- ний. Предположим (как часто бывает в реальной системе), что тре- буется добавить вентилятор для удаления пыли, чтобы уменьшить ее распространение. Это должно происходить в течение разгрузки и еще примерно одну минуту после окончания разгрузки, до того как чехол будет поднят. Новая диаграмма состояний показана на рис. 2.57. Все, что нужно сделать, — это добавить новое состояние 6 (вытяжка по окончании цикла работы). (На практике все состояния и переходы необходимо переобозначить, чтобы сохранить последовательность номеров для состояний и букв для переходов, но мы показываем их соответствен- но ситуации изменения/проверки.) Вентилятор должен быть вклю- чен в состоянии 3 или в состоянии 6. Поэтому в программу вносятся простые изменения: это новый переход J и новое состояние 6, изме- нения в состоянии 0 (добавление контакта —]/[— для состояния 6) и в состоянии 4 (вход через J, а не через D), добавление 1 -минутного тай- мера (для перехода J) и новый выход для запуска вентилятора. Формы диаграмм состояния устанавливаются Международной электротехнической комиссией (IEC) и Британским институтом стандартов (BSI), а также уже действует французский стандарт Grafset. Все они в основном идентичны методике, рассмотренной выше, но вводят идею использования параллельных путей, которые могут быть задействованы одновременно. Схема, представленная на рис. 2.58 (а), называется дивергенцией (разветвлением): состоя- ние 0 может привести к состоянию 1 при выполнении условия s или к состоянию 2 при выполнении условия t, причем переходы s и t яв- ляются взаимоисключающими. Это соответствует диаграммам со- стояния, рассмотренным выше. Рис. 2.58 (6) демонстрирует одновременную дивергенцию, когда состояние 0 приводит одновременно к состоянию 1 и к состоянию
Методы программирования 115 Рис. 2.57. Внесение изменений в диаграмму перехода состояний 2 в случае перехода и. Состояния 1 и 2 далее могут запускать парал- лельное выполнение следующих последовательностей. Рис. 2.58 (в) опять-таки соответствует диаграммам состояния, рассмотренным выше; эта схема известна под названием кон-
116 Программируемые контроллеры Рис. 2.58. Символы стандарта Grafset: (а) дивергенция; (б) одновременная дивергенция; (в) конвергенция; (г) одновременная конвергенция вергенция (объединение). Последовательность может перейти от состояния 5 к состоянию 7, если истинным является переход v, или от состояния 6 к состоянию 7, если истинным является пере- ход W. Схема на рис. 2.58 (г) называется одновременной конвергенци- ей (это отражено двойной горизонтальной линией): переход к со- стоянию 7 будет совершен, если левая ветвь находится в состоянии 5 и правая ветвь находится в состоянии 6 и переход х является ис- тинным. Диаграмма состояния является настолько эффективным ме- тодом, что большинство ПЛК средних размеров включают ее в той или иной форме в язык программирования. Фирма Telemecanique дает ей название Grafcet (с буквой «с»), другие ис- пользуют имена Sequential Function Chart (SFC, фирма Allen Bradley) или Function Block (Siemens). К этому вопросу мы вер- немся в следующей главе. Даже простой ПЛК Mitsubishi F2 поддерживает диаграммы состояния посредством инструкций STL (Stepladder). Они име- ют префикс S и номера от S600 до S647. Их особенность заклю- чается в том, что, если устанавливается одна или несколько та-
Методы программирования 117 ких инструкций, все другие, действовавшие до этого, автомати- чески сбрасываются. Инструкция RET завершает выполнение последовательности. Диаграмма состояния на рис. 2.59 (а) пре- образуется в многоступенчатую схему на рис. 2.59 (б), которой будет соответствовать программа (представлены первые пять инструкций): LD X 400 S S 601 STL S 601 ОСТ Y 431 LD X 401 S S 602 ит. д. Если программа не содержит ветвлений и последовательность опе- раций представляет собой простой цикл (функционирующий на- подобие шагового искателя), то выполнение последовательности может задаваться счетчиком, который выбирает требуемый шаг. Счетчик скачком увеличивает свое значение, если все переходы для текущего шага выполнены. В ПЛК GEM-80 имеется инструкция SEQR (sequence — последовательность), которая действует как 16- позиционный шаговый искатель. PLC-5 имеет две инструкции, выполняющие ту же самую роль. Их имена — Sequencer Input (SQI) и Sequencer Output (SQO), и они задействуются счетчиком, который задает текущий шаг (или состояние). Каждая инструкция имеет таблицу, в которой одна строка соответствует номеру каждого шага (состояния). Для инструкции SQI таблица хранит значения входов, соответствую- щих требуемым переходам для изменения каждого состояния. Для инструкции SQO таблица хранит набор выходов, которые должны быть активизированы при каждом состоянии. Если по- являются входы, соответствующие текущему состоянию, как по- казано на рис. 2.60, то выход SQI скачком изменяет значение счетчика в SQO. Хотя SQI и SQO дают достаточно компактные программы, тот факт, что доступные данные можно наблюдать только в таблице типа консервной банки, по мнению автора, де- лают обнаружение ошибок весьма затруднительным.
118 Программируемые контроллеры Х400 S602 S [S601]----- (Y431)---- S [S602]---- S' -[S6O4J--- -(Y432)--- S •(S6031--- Рис. 2.59. Диаграммы состояния в обозначениях Mitsubishi F2: (а) диаграмма состояния (в стандарте Grafset); (6) часть многоступенчатой схемы, соответствующая началу диаграммы (а)
Методы программирования 119 Номер шага SQI SQO 1001100110110 Опро- шенные входы 00001 1 0001 1 о Активизи- рованные выходы Рис. 2.60. Инструкции задатчика последовательности в ПЛК Allen Bradley 2.10. МикроПЛК Последней новинкой на рынке явились очень маленькие ПЛК с ог- раниченным количеством входов и выходов. Они были разработа- ны для таких применений, как системы смазки, отопления и кон- диционирования воздуха, в которых единожды написанные программы инсталлируются и продаются как часть конечного про- дукта или системы. Во многих случаях конечный пользователь да- же не будет знать, что ПЛК представляет собой управляющую сис- тему. Низкая стоимость таких ПЛК (до 100 фунтов стерлингов к моменту написания книги) делает их весьма рентабельными даже в сравнений с одним или двумя реле. Типичным микроПЛК является LOGO! фирмы Siemens, пока- занный на рис. 2.61. Он имеет 6 входов и 4 выхода. ПЛК LOGO! мо- гут быть изготовлены по требованию заказчика с различным коли- чеством и типом входов и выходов. LOGO! программируется с использованием функциональных блоков, которые можно разделить на три группы: • Соединения (Со) Сюда относятся входы (11—16), выходы (QI—Q4), блоки вы- ходов (В01, В02 и т. д.), а также блоки фиксированных сигна- лов высокого и низкого уровня. • Универсальные функции (GF) Сюда относятся стандартные логические функции, такие как AND, OR, NAND, NOR, XOR и инверторы. • Специальные функции (SF) Сюда относятся 11 специальных функций, включая обычные типы таймеров (задержки включения, задержки выключе-
120 Программируемые контроллеры Рис. 2.61. Фотография ПЛК LOGO! Все входы и выходы подключаются непосредственно к ПЛК, в отдельных платах или источнике питания нет необходимости. Фото любезно предоставлено фирмой Siemens ния, сохраняющий и т. д.) плюс RS-триггеры, счетчики и очень полезные часы истинного времени с настраиваемыми модулями. На рис. 2.62 приведены часы, предназначенные для использования в такой задаче, как кондиционирование воздуха; параметры модулей были установлены так, чтобы сигнал на выходе присутствовал между 9 и 16 часами с поне- дельника по пятницу, с 10 до 13 часов по субботам и отсутст- вовал по воскресеньям. Дисплей на рис. 2.61 показывает блок часов с тремя независимо программируемыми модуля- ми. Выходы нескольких независимых часов затем могут быть объединены путем использования вентилей, реализующих универсальные логические функции.
Методы программирования 121 Рис. 2.62. Простая программа, использующая функцию часов. По цене LOGO! конкурентоспособен с обычным таймером Как ни странно, но вход в программу начинается с выхода. Про- граммист сначала выбирает, какой выход должен быть задейство- ван, затем определяет требуемую для этого группу функций (Со, GF или SF) и, наконец, конкретный тип блока. Далее определяет- ся, какие входы должен иметь этот блок, и т. д. до тех пор, пока не будет выстроена полная логическая последовательность, приводя- щая к выбранному выходу. Аналогичным образом выстраивается логическая последовательность для каждого из выходов. На рис. 2.63 изображена простая схема, обеспечивающая автома- тическое открывание и закрывание двери. Такая ситуация характер- на для супермаркетов, универмагов и гаражей. Дверь открывается, когда детекторы движения II или 12 обнаруживают перемещение с любой ее стороны. Выходы Q1 и Q2 соединены с пневматическими соленоидами открывания и закрывания двери. Концевые выключа- тели 14 и 13 говорят о том, что дверь полностью открыта или полно- стью закрыта, и отключают в этих случаях соответствующие выхо-
122 Программируемые контроллеры Рис. 2.63. Программа автоматического управления открыванием и закрыванием двери для LOGO! В основу программы положены стандартные схемы фирмы Siemens
Методы программирования 123 ды, тем самым сохраняя воздух в помещении. Заметим, что оба вы- хода блокируют друг друга, не допуская, во избежание повреждения, чтобы оба соленоида были включены одновременно. Соединения с блоками ВОЗ и В04, обозначенные символом «х», означают, что эти входы блоков не используются. Вход R таймеров означает сброс, а стандартный вентиль OR имеет три входа, только два из которых используются в этой задаче. Блок ВОЗ соответствует таймеру задержки выключения. Его вы- ход появляется сразу же, как только обнаружено любое передвиже- ние с любой стороны двери, и остается включенным в течение 10 секунд, пока передвижение не прекратится. Заметим, что блоки ВОЗ и В04 используются в обоих выходных каналах. Схема для вы- хода Q1 была создана полностью. Схема для выхода Q2 была созда- на с использованием предшествующего инвертора В06, вход кото- рого был ранее выбран как Со (соединение), что является следствием ВОЗ (выхода существующего блока ВОЗ). Удивительно, но LOGO! можно запрограммировать, пользуясь всего шестью кнопками на его лицевой панели. Его можно также за- программировать автономно с помощью обычного персонального компьютера. После отладки программы она обычно хранится в сти- раемом постоянном ЗУ и отображается на лицевой панели ПЛК. 2.11. IEC 1131 -3: к общему стандарту Существует несколько различных способов программирования ПЛК. В последние годы Международная электротехническая ко- миссия (IEC) работала в направлении определения стандартов ар- хитектуры и методов программирования ПЛК. Результатом явилось опубликование весной 1993 г. IEC 1131-3, стандарта, который при- зван помочь как разработчикам при определении технических усло- вий, так и конечному пользователю, который не должен долго раз- думывать при выборе одной из множества машин. Части 1 и 2 IEC 1131 охватывают вопросы проектирования аппаратных средств. Самым первым и, по-видимому, до сих пор остающимся наибо- лее популярным методом программирования, описываемым в IEC 1131-3, является многоступенчатая схема (LD). Функциональные блок-схемы (FBD) основаны на использовании логических вентилей (AND, OR и т. п.) для дискретных сигналов и цифровых функциональных блоков (арифметических, фильтров, управляющих устройств и т. п.) применительно к цифровым сигна- лам. FBD похожи на программы для ПЛК семейств ABB Master и SIMATIC фирмы Siemens. Существует некоторая тенденция осуще-
124 Программируемые контроллеры ствлять дискретное программирование в виде LD и аналоговое программирование в виде FBD. Многие системы управления создаются на основе диаграмм пе- рехода состояний, которые в IEC 1131-3 называются последова- тельными функциональными схемами (SFC). За основу здесь взят французский стандарт Grafset, упомянутый выше в разд. 2.9.2 и проиллюстрированный на рис. 2.58. Наконец, существуют два языка программирования, основан- ные на использовании текста. Один из них — структурированный текст (ST) — является языком высокого уровня, очень похожим на Pascal или С. Другой язык — список инструкций (IL) — содержит простую мнемоническую символику команд, таких как LD, AND, ADD и т. п. IL очень близок методу программирования малых ПЛК, описанному в разд. 2.4.4, где пользователь сначала изображает на бумаге программу в виде многоступенчатой схемы, а затем перево- дит ее в последовательность простых инструкций. На рис. 2.64 приведены простые примеры всех этих методов про- граммирования. Следующие четыре рисунка иллюстрируют использо- вание стандарта IEC 1131 в современных средствах программирования. Как и большинство средств программирования, Siemens S7 со- ответствует стандарту 1ЕС 1131, и на рис. 2.65 приведены одни и те же простые инструкции в форматах LD, FBD и IL. Следующие три примера иллюстрируют применение программ- ного средства Control Logix фирмы Rockwell. На рис. 2.66 приведена достаточно сложная схема аварийной сигнализации о превышении уровня в резервуаре (в виде FBD), рис. 2.67 иллюстрирует програм- мирование в виде структурированного текста, и, наконец, рис. 2.68 представляет пример программирования в виде SFC. В конкретном проекте не обязательно придерживаться какого- то одного метода программирования; они могут быть использова- ны в любом сочетании. Верхним уровнем, например, может быть SFC, а состояния и переходы могут быть отражены в виде много- ступенчатой схемы или FBD (как удобнее проектировщику). Главная цель IEC 1131-3 заключается в том, чтобы устранить привязку программы для ПЛК к конкретным аппаратным средст- вам производителя. Это, в принципе, должно позволить с миниму- мом усилий перенести программу, написанную, скажем, для ПЛК Siemens, на ПЛКАВВ. На практике, видимо, произойдет то, что ка- жется более привлекательным: программы для ПЛК будут подгота- вливаться на персональных компьютерах в формате, не характер- ном для IEC 1131, а затем с помощью специального приложения преобразовываться в формат, используемый ПЛК конкретного
AUTO CMD AUTO.MODE RUN.CMD -1C—-3 c----------------—c > MAN CMD MAN.MODE AUTO.MODE -j E—J E— Язык многоступенчатых схем (LD) LD AUTO.CMD AND AUTO.MODE OR (MAN.CMD AND MAN.MODE ANDN AUTO.MODE ) ST RUN.CMD Язык списка инструкций (IL) Методы программирования RUN CMD •’AUTO.CMD A AUTO.MODE OR (MAN.CMD A MAN.MODE A NOT AUTO.MODE)j Язык структурированного текста (ST) Язык последовательных функциональных схем (SFC) Рис. 2.64. Пять методов программирования, определенных стандартом IEC 1131 ю сл
126 Программируемые контроллеры а б Рис. 2.65. Пример использования программного средства Siemens S7 в стандарте IEC 1131: (а) программирование на языке многоступенчатых схем (LD); (б) программирование на языке функциональных блок-схем (FBD)
Методы программирования 127 Рис. 2.65 (продолжение), (в) программирование на языке списка инструкций (IL) Золи the tank f iftaf out th* high Oenv* alarms for sansar output frequency nouta T arfc Laval Scale__L*vtl R«mova_Nois* Tank_Lev«l_Afarm Рис. 2.66. Программирование на языке FBD с использованием программного средства ControlLogix фирмы Rockwell Схема обеспечивает аварийную сигнализацию при превышении уровня в резервуаре
128 Программируемые контроллеры <* Wait Cor operator to aalact product on HKI ♦) IF HMI_3*lect_PZ3_Frothy THIS <♦ Check that we have enough Raw Materiel» *) IF <P23BulkT*rik.Laval >- Quant ityRequasted/24.356) and Frothavail able THIN <* OK, select the product *) Product: -P_23_Frothy; CASS ₽Z3_Consistsncy OF 1 : KixSpaad:-123; Wat er Add: «0; 2 : KxxSpaad:-ISO; Vater Add: -24; 3 : ИхxSpeed:-175; VaterAdd:-45; END_CASE; ELSE (* Indicate error on HHI *) HMI_IndicateErrorInSelection:-42; XND_IF,-~ ELSIF HHI_Salect_F29_Saooth THEN <* Check that we have tnough Raw Materials *) IF (FZSBulkTank.Level ►» QuantitуRoquestad/12.554) THIS (♦ OK, select the product *) Product: -F_29_S»ooth; ELSE (* Indicate error on HHI *) HMI_IndicateErrorInSelection: «43; END_IF;~ ELSE (* Ho product selected yet *) Product:-0; ENI__IF; Рис. 2.67. Программирование на языке структурированного текста (ST) с использованием программного средства ControlLogix фирмы Rockwell производителя. Этот метод принесет большую выгоду производи- телям в известной степени типовых ПЛК, чьи клиенты, по понят- ным причинам, будут приобретать тот тип ПЛК, который гаранти- ровал бы им полную стандартизацию. Программа преобразования, имеющаяся в стандарте IEC 1131, позволяет производителям ма- шин написать программу для ПЛК всего один раз, а затем просто трансформировать ее в формат, используемый каждым клиентом. Будет интересно увидеть эффект от введения стандарта IEC 1131-3. Большинство попыток стандартизации потерпели неудачу по причинам национальной и коммерческой гордыни. Протокол МАР, а позднее и Fieldbus имели проблемы с получением широко- го признания. Стандарт будет полезен на стадии проектирования и может быть принят конечным пользователем, если терминалы для программирования будут иметь одинаковый вид независимо от ма- шины, к которой они подключаются. Надо надеяться, что это не
Методы программирования 129 Рис. 2.68. Программирование на языке последовательных функциональных схем (SFC) с использованием программного средства ControlLogix фирмы Rockwell сдерживает искусство программирования и не препятствует даль- нейшему усовершенствованию. 2.12. Средства программирования Первоначально производители ПЛК комплектовали их такими терминалами для программирования, которые предназначались для работы только с их машинами. Типичным примером является клавиатура ПЛК Allen Bradley, показанная на рис. 1.14. По мере того как портативные компьютеры становились все де- шевле и доступнее, производители перешли к выпуску программ- ных средств, которые могли работать на стандартных портативных ПК. Часто связь с ПЛК осуществляется через простой двухточеч- ный канал передачи данных RS232 с использованием порта С0М1. Если ПЛК и ПК связываются через многостанционную сеть, то для этого необходим специальный драйвер, либо в виде внутренней платы в шине PCI, либо в виде гнезда ISA, либо в виде внешнего устройства, подключаемого через разъем к порту PCMCIA.
130 Программируемые контроллеры Терминал для программирования предназначен для длительной работы, поэтому надо позаботиться, чтобы он был достаточно прочным. Автору не нравятся небольшие ноутбуки; они не очень прочные, и ввиду их малого размера вы должны использовать внешние источники питания и навесные устройства спецификации PCMCIA. Источники питания многих ноутбуков подключаются только к сети напряжением 240 В, причем не через розетки 55/055, используемые в промышленных условиях. Они могут, конечно, ра- ботать от батарей, но только ограниченное время. Батареи к тому же имеют способность разрядиться как раз к тому моменту, когда они необходимы! Ноутбуки также легко могут быть украдены. Мас- сивные промышленные «дорожные» компьютеры допускают ис- пользование внутренних плат ISA или PCI и могут работать от лю- бого источника напряжения. Будучи большими и тяжелыми, они менее привлекательны для воришек. Ранние версии программ для ПЛК работали под управлением MSDOS, а многие функционируют так и до сих пор. Программы, ориентированные на DOS, простые, быстрые в выполнении, устой- чивые и не предъявляют жестких требований к процессору. Их мож- но легко создать даже на 280-й машине с жестким диском емкостью 20 мегабайт. Типичным примером является прикладной графический интерфейс фирмы Allen Bradley для создания программ, основанных на DOS (рис. 2.69). Сердцевиной его является «дерево», управляемое десятью функциональными клавишами. Например, начиная с верх- него уровня, сначала клавишей [F3] выбирается режим редактирова- ния (Edit), затем клавишей [F2] режим записи (Append), после чего одной из показанных клавиш выбирается тип инструкции. В настоящее время все программы, разумеется, работают под ОС Windows. На рис. 2.70 приведен пример использования современ- ной программы RSLogix5. В редактируемое звено мотут быть пере- тащены контакты и катушки. Дерево в левой части экрана обеспе- чивает доступ к таблицам данных, файлам программ и функциям обработки данных. Примеры использования программы Siemens S7 были приведены в предыдущем разделе. Программы, работающие под Windows, более интуитивны и наглядны, но поскольку их вы- полнение организуется с помощью мыши, могут работать медлен- нее, чем их аналоги в DOS. Использование мыши может быть за- труднительным при наличии терминала для программирования, ненадежно закрепленного поверх салазок. Ноутбуки выпускаются с различными видами встроенной мыши, но все они очень неудобны в обращении. Довольно хорошо работают мыши, перемещаемые ру- кой и имеющие небольшой шаровой манипулятор.
Методы программирования 131 IFFLINF 'год I I I I F orce No Proi;PICB00K RUNG 12'3/4 Cooling Hater_Flow NNNN t/niri r—LES-—----------- Less Tban (fi<B) Й: R N? 58 3220 1000 оо ling Water_Flow NNNN_l/i»in В: N7:S0 3220 1200 Low Flow filarn_Event 1-Fault B3 55 Lott. Flow filar» Event 1-Fault B3 .1 I X I I I 1 X I J I I I X I th: Io Edit fippe. fxanine if 0 n Fl 12 I ;i rtVtSO i.od- l: (V CIU CPi CMP ither . Рис. 2.69. Редактирование программы, основанной на MSDOS. Программа создается с помощью функциональных клавиш Рис. 2.70. Редактирование программы RSLogix5, основанной на Windows
132 Программируемые контроллеры Тем не менее визуальная природа Windows упрощает решение многих, прежде считавшихся сложными, задач. На рис. 2.71 две копии экрана демонстрируют ввод данных и выбор масштаба для аналоговой входной платы, а также установку уровней аварийной сигнализации в одном канале этой платы. Раньше это можно бы- ло сделать только с помощью нескольких звеньев программы. Module Properties Local:! (17S6-1F61 1.1) а Channel :---------—;—- 0 I 1 |~Z~ 3 | 4 5 j PtocettAlam»: ,, | HjhHigh: 13572152 L; | High J54.01532 -tor | I Low |-10 Low Low. |-46 07955 , H | Г* Disable Ai Alarms Г* Latch Process Alarms Г” Latch Rate Alarm Deadband |5 Rate Alarm. pr I - . I Carrel [ < Bark | Next > | Frisk >> | Help 6 Рис. 2.71. Простое конфигурирование аналоговой входной платы с помощью программы ControlLogix: (а) задание диапазона значений на инженерном пульте; (б) установка уровней аварийной сигнализации путем перетаскивания мышью
Методы программирования 133 Современное программное обеспечение также снабжается многи- ми полезными средствами диагностики, о чем речь идет в следую- щем разделе. 2.13. Инструментальные средства программирования Средства программирования позволяют не только писать собственно программы, они также помогают обнаруживать ошибки. В данном раз- деле описываются некоторые типичные особенности сопровождения современного программного обеспечения и обнаружения ошибок. Даже если управляющая программа была отлажена, почти наверняка те или иные неисправности будут возникать в устройствах, связанных с объектом (например, концевых выключателях, датчиках, соленоидах, контакторах и т. д.). Все программы в виде многоступенчатой схемы или функциональной блок-схемы отражают состояние дискретных уст- ройств. Обычно состояние выделяется изменением цвета или подсвет- кой. Подобным же образом отображаются значения дискретных сигна- лов, чтобы иметь возможность контролировать их. На рис. 2.72 изображено типичное устройство индикации, работающее в режиме он- лайн, на котором отчетливо можно видеть состояние каждого сигнала, дискретного и цифрового. Дискретный сигнал, имеющий состояние «Включено», выделяется широкой линией по обе стороны контакта. Рис. 2.72. Контроль программы RSLogix в режиме он-лайн
134 Программируемые контроллеры Полезно также контролировать данные, представленные в таб- личной форме. На рис. 2.73 отображена таблица информационных битов для PLC-5, позволяющая одновременно наблюдать состоя- ние каждого бита. Одновременно могут быть открыты несколько окон, что дает возможность проследить путь сигнала от входа к вы- ходу, не переключаясь на выполнение программы. Могут быть так- же созданы заказные устройства индикации, позволяющие собрать воедино все сигналы, относящиеся к отдельной задаче. На рис. 2.74 приведен пример использования программного средства Siemens S7. Программа контроля позволяет также осуществлять запись зна- чений в основную программу с целью ее тестирования. При управлении объектом с помощью ПЛК большинство неис- правностей будут связаны с устройствами, обслуживающими этот объект. Среди них наиболее уязвимыми являются входные и выход- ные платы. Если появляется какая-либо неисправность, программа ПЛК устанавливает ее причину, обычно указывая, в каком устрой- стве это произошло. Рис. 2.75 иллюстрирует реакцию программы Siemens S7 на преднамеренно введенную для целей демонстрации неисправность. Рис. 2.73. Контроль табличных данных в программе RSLogix
Методы программирования 135 Рис. 2.74. Контроль данных в программе Siemens S7 Рис. 2.75. Диагностика процессора в программе Siemens S7
136 Программируемые контроллеры В обнаружении неисправностей обычно помогает принудитель- ное вмешательство в работу системы. Оно позволяет с терминала для программирования задать заранее заданные состояния входных или выходных сигналов и аннулировать их истинные состояния. Такое вмешательство используется в трех случаях. В первом случае, при вводе системы в эксплуатацию, это дает воз- можность протестировать программу без подключения входных и вы- ходных устройств. Однако наиболее часто этот прием используется в процессе обнаружения неисправностей, когда для целей тестирования выходные сигналы могут быть заданы непосредственно с терминала. Например, можно задать выходной сигнал вентиля гидравлической си- стемы, чтобы проверить, нарастает ли создаваемое насосом давление до требуемого значения. Аналогичным образом можно инициировать вы- полнение последовательности операций, задав входной сигнал фото- элемента, свидетельствующий о наличии перед ним некоторого пред- мета. И наконец, в чрезвычайных обстоятельствах можно прибегнуть к вмешательству, чтобы позволить объекту некоторое время продолжать работу в случае отказа какого-либо из связанных с ним устройств. Вмешательства достаточно полезны, но вместе с тем и весьма опасны. Обычно терминал для программирования расположен на удалении от объекта, и оператор не может видеть, чем он управля- ет. Поэтому вмешательство часто может иметь непредвиденные ре- зультаты, особенно если объект находится в неисправном состоя- нии. Прежде чем применять вмешательство, следует тщательно продумать его возможные последствия. Должны быть вывешены предупреждения об опасности около всех частей объекта, которые могут в результате вмешательства в программу прийти в движение. Кроме того, если объект не виден с терминала для программирова- ния, необходимо иметь те или иные средства наблюдения за ним. Отдельные вмешательства, применяемые для устранения неис- правностей объекта, могут быть допустимы лишь на короткое время, и то если они не несут последствий для безопасности. Но часто о ре- зультатах вмешательства знает лишь только тот человек, который его осуществлял, а объект при этом работает без какой-либо защиты в течение многих месяцев или даже лет. Поэтому необходимо иметь регистрационный журнал, где должна храниться вся информация о причинах и результатах вмешательства. Если регулярно отказывает конкретный датчик, обратите еше раз внимание на проект. Не требу- ется ли какая-нибудь механическая зашита для этого датчика или устройства его подключения? И нужен ли вообще этот датчик? Очень трудно обнаруживать перемежающиеся неисправности. В программы часто вводятся средства контроля, позволяющие
Методы программирования 137 наблюдать состояния сигналов. На рис. 2.76 изображено дейст- вие средства Histogram (гистограмма) программы RSLogix5. Здесь в одном окне представляются в цифровой форме значения сигна- лов в момент каждого их изменения. Данные могут быть выведе- ны на экран в любой системе счисления, в данном случае выбра- на двоичная система. Ниже те же самые данные представлены в графической форме. Их также можно записать в файл и пронаб- людать позже; это очень полезно для отслеживания перемежаю- щихся неисправностей. Для цифровых данных также предусмотрены средства контроля их тенденций. На рис. 2.77 показаны тенденции выходного сигна- ла фильтра первого порядка, подробно рассматриваемого далее в разд. 9.5. Современные ПЛК являются очень мощными устройствами и поэтому снабжаются подробными руководствами, описывающими все их возможности. По этой же причине их средства программиро- вания имеют меню Help с вытеснением нижней строки. Это меню обычно контекстно-зависимо, поэтому, например, щелкнув мы- шью на счетчике в программе Siemens S7, а затем щелкнув на Help, вы получите на экране окно с полной информацией о счетчике и инструкцией по его использованию, как это показано на рис. 2.78. Рис. 2.76. Средство Histogram программы RSLogix
138 Программируемые контроллеры Рис. 2.77. Средство Trending (контроль тенденции) программы RSLogix. На экране показано действие фильтра первого порядка Рис. 2.78. Оперативная подсказка по использованию счетчика в программе Siemens S7
3. Стиль программирования 3.1. Введение «...а гидравлическая система должна иметь три гидронасоса плюс насос для циркуляции масла». Так заканчивается типичное тех- ническое условие на проектирование системы управления. По- добно большинству технических условий, это простое предложе- ние вызывает много вопросов, остающихся без ответа: должны ли работать все три насоса, или только один, или два? Если меньше трех, то каким образом должен (должны) быть выбран (выбраны) работающий насос (насосы)? Если используется менее трех насо- сов, то должен (должны) ли неработающий насос (насосы) нахо- диться в резерве с автоматическим переключением? Как запуска- ются насосы — по отдельности или все вместе? Ко всем ли насосам применяется аварийная остановка (если нет, то почему)? Включается ли насос для циркуляции одновременно с основны- ми насосами или его включение является предусловием для включения основных насосов? Если выключается циркуляцион- ный насос, то должны (должен) ли выключаться основные (ос- новной) насосы? Какие имеются сигналы защиты (например, по температуре/уровню)9 Если таковых нет, то почему, и не ошиб- лись ли вы? Если такие сигналы имеются, то должны ли они вы- зывать остановку насосов или просто информировать об опасно- сти? Такие вопросы часто показывают, что снабженцы думают только о том, какое оборудование необходимо, а не о том, как оно будет использоваться. Проектировщик системы управления с ПЛК должен создать та- кую программу, которая удовлетворяла бы этим часто плохо опре- деленным требованиям. Кроме того, необходимо назначить вход- ные и выходные платы для всех сигналов, имеющих отношение к объекту и управляющим воздействиям оператора, а также решить, как должна быть реализована связь первостепенной важности меж- ду объектом и человеком-оператором. Программисты, имеющие дело с коммерческими программны- ми средствами, сталкиваются с аналогичными проблемами и для описания того, как проект по разработке ПО проходит путь от ис- ходных (и, возможно, неточных) идей пользователя до успешно ра- ботающей системы, придумали термин «программотехника» (тех- ника программного обеспечения). В этой главе мы рассмотрим факторы, которые необходимо учитывать при проектировании си- стемы управления с ПЛК.
140 Программируемые контроллеры 3.2. Программотехника На рис. 3.1 представлены шесть этапов, которые должно пройти программное обеспечение каждого проекта в течение его существо- вания. Хотя не все проекты могут описываться этой схемой, тем не менее основные принципы применимы ко всем из них. Первый этап заключается в анализе проблемы, подлежащей ре- шению. Снабженец или программист должен встретиться с другими участниками проекта и пользователем, чтобы определить, какие не- обходимы средства управления и как должны осуществляться упра- вляющие воздействия. На этом этапе должны быть четко сформули- рованы основные требования к средствам управления оператора. Необходимо снять все вопросы по поводу возникающих проблем (таких как в случае с гидравлическими насосами из разд. 3.1). Анализ является наиболее трудным из всех этапов, поскольку конечный пользователь и другие участники проекта, возможно, не учитывали всю сложность стратегии управления и не обладают дос- таточным опытом, чтобы решить, как лучше управлять объектом — с помощью рукояток, кнопок или сенсорного дисплея. Важный момент, который на этом этапе часто упускают из внима- ния, — это необходимость предусмотреть тот или иной вид устройств, позволяющих «вручную» протестировать или «выручить» полностью автоматизированный объект или управляющую последовательность, которые по неясным причинам не действуют должным образом. Результатом этапа анализа должно быть описание того, как ра- ботает объект, какими станциями и устройствами управления дол- жен располагать оператор (и как они должны быть реализованы), какие необходимо предусмотреть вспомогательные средства для обслуживания системы и обнаружения неисправностей, и, наконец (что не менее важно), должен быть подготовлен полный перечень всех относящихся к объекту входных и выходных сигналов с указа- нием требований к ним по напряжению/току. Следует признать особую важность этого первого этапа. Если все спорные моменты и проблемы прояснить в самом начале, то последу- ющие этапы не вызовут затруднений. Выяснить на этапе ввода в экс- плуатацию, что пользователь хотел иметь изменяемую скорость вен- тиляторов и сигнализацию об опасном снижении давления и «думал, что вам об этом известно», — это не дает уверенности, что при запус- ке объекта все пройдет гладко. Если вы в чем-то сомневаетесь — спро- сите; а даже если и не сомневаетесь — все равно спросите еще раз и от- бросьте в сторону ваши догадки и предположения. На этом этапе также должны быть определены требования к те- стированию системы. Если вы не продумали, как будете проверять
Стиль программирования 141 Рис. 3.1. Этапы проекта ее работоспособность, то как вы узнаете, что выполняются все вы- двинутые пользователем технические требования? На худой конец, в завершение этого этапа проектировщик дол- жен составить описание того, что входит в состав системы управле- ния, как она должна работать, и как ее следует тестировать. В дей- ствительности это просто фиксация всего того, о чем пришли к соглашению на первом этапе. Следующим этапом является проектирование системы, где оп- ределяется ее конфигурация: основные модули, пульты управле- ния, структура программы. Эта деятельность, известная как проек- тирование сверху вниз, рассматривается в следующем разделе. По окончании программирования производится компоновка структуры системы, определенной на этапе проектирования. Заме- тим, кстати, что ни одна программа не должна создаваться непо- средственно с клавиатуры; этот путь ведет к макаронному програм- мированию. По оценке профессиональных программистов, этот этап обычно отнимает не более 10% общих усилий.
142 Программируемые контроллеры После завершения программирования и подготовки к работе объекта можно приступать к тестированию системы и вводу ее в эксплуатацию. Необходимо проверить, действует ли система в соот- ветствии с требованиями, сформулированными на этапе 2. Если только система не является простейшей, проверка всех маршрутов передачи информации и всех действий, определенных технически- ми требованиями, может быть связана с очень большими затратами времени. Это обычно сдерживает передачу системы «из рук в руки», когда все основные операции проверены, но остались неопробован- ными вспомогательные, редко используемые варианты. Довольно часто такие проверки опускают и в первую очередь тестируется ре- жим «скрытого отказа», хотя данный эффект может возникнуть, возможно, спустя годы после начала работы объекта. Если речь идет о новом объекте, то ввод системы в эксплуатацию, определенно, бу- дет последним этапом проектирования, поэтому инженер-управле- нец заканчивает выполнение своей работы позже, чем кто-либо другой. Очень важно определить, какие испытания должны быть проведены до того, как система начнет работать, и что можно про- верить позже, в режиме он-лайн. Последнее, однако, может быть очень трудным и связанным с большими временными затратами. Никогда не следует упускать из виду проверки, связанные с обес- печением безопасности; если оказывается, что в процессе эксплуата- ции системы при возникновении опасности не срабатывает аварий- ная защита, это гарантирует посещение вашего предприятия представителями комиссии по охране труда и технике безопасности. Последний этап обычно заключается в наблюдении над работой системы. Если процесс сдан в эксплуатацию, то система управле- ния подлежит обслуживанию, причем этот термин означает обслу- живание не в чисто механическом смысле, а в смысле обнаружения неисправностей, устранения технических дефектов («мы никогда не думали, что может случиться что-то подобное») и (к счастью, го- раздо реже) внесения корректив в случае изменения режима рабо- ты объекта. Ни один процесс не представляет собой нечто неизмен- ное в течение всего жизненного цикла: изменяются требования рынка, появляются технологические новшества, и все это требует внесения изменений в стратегию управления. В промышленности обычно считается, что на обслуживание за- трачивается более 50% усилий на протяжении жизненного цикла проекта. Поэтому крайне важно разработать и документировать стра- тегию управления и программу таким образом, чтобы на последнем этапе в них легко могли быть внесены изменения, причем, возможно, даже людьми, не принимавшими участия в предыдущих пяти этапах.
Стиль программирования 143 3.3. Проектирование сверху вниз Нередки случаи, когда ПЛК должен реализовывать несколько тысяч звеньев многоступенчатой схемы или логических сегментов. Неструк- турированную программу столь большой длины очень трудно напи- сать и еще более трудно прослеживать ее выполнение и обнаружи- вать ошибки. Поэтому программист не должен пытаться написать одну длинную программу, а обязан разбить ее на множество неболь- ших сегментов. В идеале каждый такой сегмент должен содержать не более десяти звеньев многоступенчатой схемы или логических эле- ментов, поскольку это почти тот максимум, который одномоментно доступен человеческому разуму. Структура этих сегментов — вот один из самых важных моментов этапа проектирования на рис. 3.1. Лучший способ реализовать рациональное разбиение — это исполь- зовать метод, называемый проектированием сверху вниз. При этом си- стема управления разбивается на области, которые в свою очередь де- лятся на подобласти и т. д., пока не будут получены легко поддающиеся контролю фрагменты. Эту идею лучше всего проиллюстрировать на примере. На рис. 3.2 изображен объект управления — сталеплавильная печь. Управление осуществляется единственным ПЛК, программа ко- торого содержит около 1750 звеньев многоступенчатой схемы. Рис. 3.2. Сталеплавильная печь компании Sheerness Steel, управляемая с помощью ПЛК (фото любезно предоставлено Sheerness Steel)
144 Программируемые контроллеры Систему управления объектом можно разбить на девять облас- тей, как показано на рис. 3.3, причем каждая область в свою оче- редь разбивается на более мелкие фрагменты. Программирование фрагментов нижних уровней можно выполнить, используя всего несколько звеньев многоступенчатой схемы. На рис. 3.4 изображе- ны два блока нижнего уровня и их входные и выходные сигналы. Например, блок кВт-ч включает в себя два счетчика, значение ко- торых пошагово наращивается импульсами, соответствующими потреблению энергии 100 кВт-ч при включенном питании (сигнал о включенном питании является внутренним и поступает с другого блока). Оба счетчика сбрасываются в начале процесса плавки, а счетчик команд сбрасывается также в начале новой последователь- ности команд. Выходом блока являются две итоговые суммы, ис- пользуемые другими блоками для представления их оператору и для автоматического управления. Полученная структура программы должна быть включена в до- кументацию на систему управления и использована как основа для фактического программирования. Одно из преимуществ данного метода (правда, не сразу бросающееся в глаза) заключается в том, что подробно детализированную структуру системы с ясно опреде- ленными сигналами можно распределить для дальнейшей работы между несколькими программистами. 3.4. Структура программы в различных ПЛК Из языков высокого уровня программисты предпочитают исполь- зовать Pascal и С, которые хорошо структурированы благодаря встроенным в них конструкциям, а к «неструктурированным» языкам, таким как BASIC или FORTRAN, относятся несколько пренебрежительно. Это отчасти несправедливо; и на языке BASIC можно писать отлично структурированные программы, но ответ- ственность за это возлагается на программиста, а программа на языках Pascal или С может легко выродиться в макаронную, если не принять меры, препятствующие этому. Аналогичные наблюдения можно сделать в отношении про- грамм для ПЛК. Многие машины средних возможностей (и все ма- лые машины) вообще не имеют встроенных структурных компо- нентов, предоставляя программисту самому решать, как разбить программу на модули и придерживаться строго установленного по- рядка. На рис. 3.5 приведена программа для небольшого ПЛК, вхо- дящего в состав системы управления трехступенчатым умягчителем воды; структура программы достаточно проста, и ошибку, скажем,
Стиль программирования 145 в строке Fast Rinse (быстрая промывка) ступени 2 легко можно об- наружить в теле программы. Более крупные и более совершенные машины обладают встро- енными структурными конструкциями. Они в значительной степе- ни защищают программиста от совершения ошибок подобно тому, как это имеет место в языках Pascal или С. Эти ПЛК предоставляют программисту методы разбиения программы на небольшие, легко понимаемые модули (некоторые большие машины, такие как Allen Bradley 5/250, имеют конструкции Repeat/Until, Whiledo/Endwhile, For/Next, позволяющие многократно выполнять одну и ту же опе- рацию над блоками данных). Наиболее структурированным языком, по-видимому, является АВВ Master, который подобен компилируемым языкам высокого уровня в том, что все переменные и процедуры обязательно должны быть декла- рированы. Основная программа разбивается на более мелкие програм- мы, обозначаемые PCI, РС2 и т. д. Рекомендуется, чтобы каждая из них относилась к определенной, отличной от других, сфере действия объек- та, причем эти программы могут иметь различные скорости прогона. Эти программы содержат управляющие модули, которые могут» быть задействованы или заблокированы либо могут включаться на выполнение через определенные интервалы времени. Внутри управ- ляющих модулей находятся функциональные модули и модули по- следовательности операций, причем последние содержат шаги, соот- ветствующие диаграммам состояния, описанным в разд. 2.9.2. Функ- циональные модули или шаги последовательности операций реали- зуются при помощи реальных логических элементов. Таким образом, полная программа может выглядеть так, как на рис. 3.6 (а), а на рис. 3.6 (6) показано, какую древовидную структуру она имеет для кон- кретного примера (почти как в MSDOS или UNIX). Фактически структура является более гибкой по сравнению с тем, как здесь было описано: так, функциональные модули могут содержать управляю- щие модули, может быть образована иерархия модулей по принципу главный/подчиненный, но основная идея должна быть очевидной. Для обозначения модулей принят иерархический порядок вплоть до элементного уровня; так, на рис. 3.7 вентиль AN D, обозначенный PC 1.2.3.2, представляет собой второй логический элемент функцио- нального блока 3 в управляющем модуле 2 программы РС1 (и имен- но так должен быть продекларирован как часть построения базы данных). Это формальное правило обязывает программиста соблю- дать определенную дисциплину. В ПЛК Siemens используется структура, состоящая из организа- ционных блоков (ОВ), программных блоков (РВ), функционалы
Рис. 3.3. Структура системы управления сталеплавильной печью с помощью ПЛК и разбиение одной ветви
Стиль программирования 147 Начало Начало последова- процесса тельности команд Питание включено Импульс, соответствующий 100 кВт-ч Целые числа последова- тельности От отдельной платы Коэффициент „ _ мощности Откло---«► нение ---------------- >. мощ- Без фильт- -► рации С фильт- рацией Целое число х 1000 ности Рис. 3.4. Два блока из рис. 3.3 с соответствующими сигналами Cooling Water Sy«tea...water Softener* Program Listing 6th June 199® Page t 1 Paget 3 Paget b Paget IO Paget IB Paget 13 Pagei 1* Paget IS Paget 17 Paget 19 Paget BO Paget B3 Paget B6 Paget BS Paget B6 Paget B7 Paget BS Paget 30 Paget BS Paget B9 Paget 32 Paget 33 Paget Эй Paget 35 Paget 36 Paget 37 Paget 39 Paget 61 Paget 62 Paget 63 65 Rungi 1 Rungs 7 Rung t 12 Rungt 15 Rungt B7 Rungt SB Rung 1 B9 Rungt 30 Rungt 31 Rung t 32 Rung t 65 Rungt 60 Rungt &B Rungt 7Ц Rungt 75 Rung I 76 Rungt 77 Rungt 78 Rungt 79 Rungt 92 Rung t 107 Rungt 109 Rungs IBl Rungt 122 Rungt 1ВЭ Rungs 126 Rungi IBS Rungt iB6 Rung t 139 Rungt 156 Rungt 1S7 Rungt 160 Rungt 172 Hiac Common Control water Puep* Sof tener 1 Common ...Transition* .•.State* Duty ......Backwa*h .Brine Inject .Fa*t Rin*e .Standby ...Mimic Diaplay Lamp* ...Valve Output* Softener В Common ...Tran*ition* ...State* Duty ......Backwaah ......Brin* Inject .Faat Rina* ......Standby ...Mimic Diaplay Lamp* ...Va ive Output* Softener 3 Common ...Tran*ition» ...State* Duty .Backwash .Brine Inject ......Faat Rinae .Standby .Mimic Diaplay Lamp* ...Valve Output* Brine Overtime Alar* Brine Level Alarm Sum Valve Control Alarm Mar«hailing Page: 66 Data Table Report Рис. 3.5. Хорошо структурированная и документированная программа для ПЛК, разбитая на области из приблизительно десяти звеньев. Это позволяет легко обнаруживать ошибки
148 Программируемые контроллеры PCPGM (резервуар с водой) Управляющий модуль (индикация) РС1 РС1.1 РС1.1.1 РС1.1.2 РС1.1.3 РС1.1.4 ---MUL --COMP-R ---AND ---AND РС1.2 Управляющий модуль (ручное упр.) РС1.2.1 РС1.2.1.1 Функциональный модуль (заполнение) SR-00 РС1.2.2 РС1.2.2.1 РС1.2.2.2 Функциональный модуль (очистка) ---SR ---TON Рис. 3.6. Внутренняя структура ABB Master: (а) типичная структура программы Master; (б) программа в виде дерева ных блоков (FB), файлов подпрограмм, которые мы рассмотрим чуть ниже, и блоков последовательностей (соответствующих диа- граммам состояния). Основными структурными модулями являют- ся программные блоки, которые эквивалентны элементам нижнего уровня в проектировании сверху вниз. При составлении програм- мы все начинается с организационного блока ОВ1, из которого впоследствии могут быть вызваны программные блоки и функцио-
Стиль программирования 149 нальные блоки, как показано на рис. 3.8. Еще раз заметим, что по- добное описание является несколько упрощенным. Рис. 3.8. Типичная внутренняя организация ПЛК Siemens
150 Программируемые контроллеры Allen Bradley в своих PLC-5 использует аналогичную идею. Про- граммист разбивает программу высокого уровня на более мелкие программные модули, к которым при необходимости можно обра- титься из основной программы. В PLC-5 все программы связыва- ются с помощью схемы последовательности функций (SFC), кото- рая очень напоминает диаграмму перехода состояний, описанную в разд. 2.9.2. Каждое состояние и соответствующий переход — это не- большая программа типа многоступенчатой схемы; типичный при- мер приведен на рис. 3.9. ПЛК Allen Bradley и Siemens поддерживают концепцию под- программ (в Siemens они называются функциональными блока- ми). Это небольшие программы, которые используются для вы- полнения определенных задач и которые могут многократно вызываться из программы более высокого уровня (рис. 3.10). На- пример, некоторые ПЛК непосредственно обеспечивают вычис- Рис. 3.9. Схема последовательности функций в PLC-5 Allen Bradley
Стиль программирования 151 Рис. 3.10. Подпрограммы, используемые во многих ПЛК ление тригонометрических функций (синус, косинус, тангенс). Синус угла достаточно просто вычислить, используя разложение в ряд х3 х5 sin х = х-^-+^--..., (3-1) где значение углах задается в радианах. В большинстве прикладных задач для достижения приемлемой точности достаточно первых трех членов. Например, синус угла 6 (theta) в градусах можно найти с помощью последовательности операций, изображенной на рис. 3.11, используя всего несколько звеньев многоступенчатой схемы или логических элементов. Давайте создадим подпрограмму пол именем Sine (а как же иначе?), которая имела бы на входе угол в градусах и возвращала значение синуса предназначенной для этого переменной, как на рис. 3.11. Входная и выходная переменные на- зываются параметрами. Каждый раз, когда нам необходимо вычис- лить синус угла, мы теперь можем вызвать подпрограмму Sine. Мы можем пойти еще дальше. Косинус угла определяется выра- жением cos (theta) = sin (90 — theta), (3.2) где угол 0 (theta) задается в градусах, поэтому мы можем написать еще одну подпрограмму для вычисления косинуса, она представле- на на рис. 3.12 (о). Заметим, что она имеет всего два блока и вызы- вает подпрограмму Sine (которая выполняет большую часть рабо- ты). Наконец, зная, что
Рис. 3.11. Подпрограмма для вычисления sin 0 Программируемые контроллеры
Стиль программирования 153 tan (theta) = sin (theta)/cos (theta), (3.3) мы можем создать подпрограмму Tangent, представленную на рис. 3.12 (б). Она вызывает как подпрограмму Sine, так и Cosine. Под- программы, вызываемые из подпрограммы более высокого уровня, называются «вложенными». Бесспорным преимуществом подпрограмм является эконо- мия памяти процессора и минимизация затрат на программиро- вание. Они также делают более легким отслеживание всей про- граммы, так как при необходимости внесения изменений обслуживающему персоналу или программисту достаточно ис- следовать выполняемую процедуру (иногда весьма сложную) всего в одном месте. Многие ПЛК позволяют разбивать программу на исполняе- мые блоки; в PLC-5 Allen Bradley это можно сделать с помощью инструкции MCR (сокращение от Master Control Relay), а в GEM-80 - с помощью команды Start/End Block. Они позволяют пропустить (игнорировать) ряд звеньев, если управляющая ин- струкция на входе блока не является истинной, как показано на рис. 3.13. Эти инструкции кроме того, что позволяют разбить программу на небольшие блоки, способствуют также сокраще- нию времени ее выполнения за счет игнорирования звеньев, ко- торые в данный момент не являются необходимыми. Однако они могут среди ночи привести в замешательство обслуживающий персонал, поскольку разбиение программы является далеко не очевидным. Cos (alpha) Theta 90 - alpha Sin (theta) Tan (beta) Sin (beta) Cos (beta) a Tan sin/cos 6 Рис- 3.12. Подпрограммы Cosine и Tangent (использующие подпрограмму Sine): (a) Cosine; (6) Tangent
154 Программируемые контроллеры Автома- /- тически^" I Подъем (автоматически) Опускание Автоматически) I Start I | block j Пусковое устройство (подъем) Пусковое устройство (опускание) I Эти звенья выполняются 1 в автоматическом режиме -I End I— ] block j Автоматически Подъем (вручную) Пусковое устройство (подъем) Опускание Пусковое устройство J End I_____ j block j аэти- > в ручном режиме Рис. 3.13. Пример структуры с использованием команд Start/End Block 3.5. Действия по обслуживанию и реализация хороших программ Все компьютерные программные средства (независимо от того, для чего они используются — для обработки данных, в коммерческих целях или для управления) должны: а) надежно выполнять свои функции; б) работать предсказуемым образом, даже если входные данные по- вреждены (такое поведение на жаргонном языке называется «ро- бастным», т. е. устойчивым к нарушениям исходных данных); в) быть простыми для понимания и сопровождения.
Стиль программирования 155 Первое из этих требований очевидно, и большинство программ для ПЛК будут (как мы надеемся) выполнять ту работу, ради которой они были созданы. Два других требования, однако, часто игнорируются, и их важность не учитывается до тех пор, пока не возникнут определен- ные проблемы спустя месяцы (или даже годы) после того, как система сдана в эксплуатацию, а группа проектировщиков расформирована. Робастная программа имеет внутренние средства защиты от ис- порченных данных, причиной которых могут быть повреждения датчиков или ошибочные действия оператора с клавиатурой. На рис. 3.14 приведен пример системы, действующей на предприятии, где работает автор. Заказчику поставляется материал определенно- го веса, но разрезается он по длине, измеряемой количеством им- пульсов, поступающих от вращающихся валков. Оператор вводит желаемый вес, и ПЛК преобразует его в эквивалентную длину. По- лученный после резки материал взвешивается, его вес сравнивает- ся с желаемым значением, а ошибка используется для коррекции следующей резки. Ошибочные данные могут появиться в различных местах этой си- стемы: это ввод оператором неправильного значения веса, искаже- ния при считывании показаний системы взвешивания, электриче- ские помехи, наложенные на импульсы от вращающихся валков, — этот перечень можно было бы продолжить. Каждый из этих случаев может вызвать проблемы, если полученные входные искаженные данные были обработаны как якобы правильные. Детектор Вращаю- Резка Рис. 3.14. Система автоматической резки
156 Программируемые контроллеры Необходимо использовать некоторый вид проверки. Оператор в системе на рис. 3.14 может вводить значения веса только в опреде- ленном диапазоне, а для точной настройки длины используются лишь те данные системы взвешивания, которые находятся в преде- лах «окна», задаваемого как определенная доля от заданного веса. Ошибка оператора при вводе или вес. выходящий за пределы «ок- на», идентифицируются как аварийные ситуации. Подобным же образом можно рассчитать временное окно для отрезания: когда инициируемый импульсами момент резки попадает в пределы это- го окна, тогда процесс идет в нормальном режиме, если же истека- ет максимальное время, а импульсы не дают разрешения на резку, то появляется сигнал об аварийной ситуации. Естественно, что робастная программа является более длинной и сложной; около 25% всей программы для системы на рис. 3.14 ис- пользуется в нормальном режиме, а остальные 75% относятся к не- нормальным ситуациям, которые редко (если вообще когда-либо) могут возникнуть. Тем не менее защита необходима, чтобы опера- торы и производственный персонал были уверены в надлежащей работе системы. Программисты иногда упрямствуют в правоте по поводу своего изящества в попытках минимизации количества используемых ин- струкций. Таким тенденциям следует противостоять в большей сте- пени, чем в коммерческом программировании, поскольку реальный процесс и сопровождение программы подлежат обслуживанию людьми, которые должны ясно понимать все операции. «Делай как можно проще» — таким должен быть девиз; не используйте сложные приемы и старайтесь избегать самых бестолковых инструкций, ко- торые находятся в наборе данного ПЛК. Помните, что какой-то не- квалифицированный работник захочет посмотреть, как все это ра- ботает, где-то в три часа ночи. На рис. 3.15 приведен пример из моей практики, показывающий, как не надо писать программу для ПЛК. В этом примере один ПЛК управляет тремя идентичными объектами. Программист начал с со- здания мультиплексора, представляющего собой трехпозиционный галетный переключатель, с помощью которого все входные данные для одного выбранного объекта записывались во внутренние ячейки памяти. Одна программа (общая для всех трех объектов) обрабатыва- ла данные, хранящиеся во внутренней памяти, формировала выход- ные данные и снова записывала их во внутреннюю память, чтобы за- тем вывести их во внешние устройства через демультиплексор. Мультиплексор и демультиплексор пошагово переключались при каждом прогоне программы, так что программа имела дело с объек-
Стиль программирования 157 том А при прогоне 1, с объектом В при прогоне 2, с объектом С при прогоне 3, затем возвращалась снова к объекту А при прогоне 4 и т. д. Такое решение было изящным и экономило память, но делало не- возможным понять причину возникновения ошибки и обнаружить ее. В нормальном режиме нельзя было проследить за выполнением операций, и все, что можно было наблюдать на терминале для про- граммирования, это расплывшееся пятно, так как мультиплексоры циклически подключали ПЛК к различным объектам. Когда в ка- ком-либо объекте возникала неисправность, мультиплексоры долж- ны были быть подключены именно к этому объекту (и отключены от исправных объектов), чтобы дать возможность наблюдать ход процес- са. Подобных приемов следует избегать (и надо заметить, что данная программа была полностью изменена в течение года). Прогон Прогон Прогон Прогон 4 5 6 7 Прогон Прогон Прогон 1 2 3 А В С А В С А б Рис. 3.15. Как не надо писать программу для ПЛК: (а) организация программы; (б) действие программы
158 Программируемые контроллеры Программа по возможности должна также отражать режим рабо- ты объекта. На рис. 2.48 была приведена распространенная ситуа- ция, когда с помощью переключателя, расположенного на пульте уп- равления, можно заставить работать либо один, либо оба насоса. В целях экономии был использован далеко не лучший переключатель. Наиболее простой программой является однозвенная схема на рис. 2.48 (г), но я полагаю, что двухзвенная схема на рис. 2.48 (е) более по- нятна для человека, впервые встречающегося с подобной ситуацией. Для большей ясности программа должна иметь хорошую докумен- тацию. Большинство ПЛК могут быть запрограммированы автономно на компьютере в MSDOS, причем необходимо предусмотреть средст- ва для описания отдельных сигналов и добавления комментариев, по- ясняющих, как работает программа. Эту возможность следует исполь- зовать в полной мере; сравните, например, недокументированную программу на рис. 8.38 с ее аннотированной версией на рис. 8.39. Одно из общепринятых правил программирования гласит: «Ко- гда вы помещаете в память некоторые данные, обязательно запи- шите, куда вы их поместили». Не сделать этого — все равно, что за- сунуть что-то в шкаф и спустя несколько недель быть не в состоянии найти это. То. как используются входы, выходы и внут- ренняя память, должно быть зарегистрировано. В этом вопросе по- мощь могут оказать комментарии к программе; если вы выбрали внутренний бит памяти для аварийной сигнализации об опасном превышении температуры воды и в программе снабдили его ком- ментарием «Выключить насос 1», то знайте, что тот же самый ад- рес, возможно, был использован дважды или где-то была нарушена схема распределения памяти. Производители ПЛК предлагают пользователям карты распре- деления памяти и входов/выходов, подобные изображенной на рис. 3.16. К их использованию следует относиться со всей тщательно- стью. Программные средства, ориентированные на MSDOS, поз- воляют получать распечатку использования памяти, пример кото- рой (для Allen Bradley PLC-5) приведен на рис. 3.17. Если взаимодействие между данными в программе является сложным, то предпочтительно составлять диаграммы потока дан- ных наподобие представленной на рис. 3.18. Такие диаграммы по- могают планировать программу и очень полезны в ее сопровожде- нии и обнаружении ошибок. Всегда надо ставить цель насколько возможно облегчить работу людей, которые будут иметь дело с ПЛК. Одним из способов дости- жения этого является постоянство в стиле программирования. Ес- ли пусковое устройство двигателя было запрограммировано опре-
Стиль программирования 159 Project. Symbol Description 3/tg РВ1 PhwH«+PB 12.0 1 и Card lype.y.^AHryr':-» т Я-»у u ТЯА и Position... В JtrfrscT 'v №1 7SI* KI В Lift ' м *1 Supply.... Uft KJ В R1 Symbol Description- Byte Bit 7Г РВУ t> М.И- .. .1 РВГ •» •’ T гы 4 “ — .4 WI. 1 .5 V "» I .6 с w 1 .7 Symbo Description 3yte iEffl K!1 'iftrt in _£У1а_ M 1 !Ы С Э IM IKJ РВ7 Trsl IM IU Symbo Description 3yl« о 713 Ifcl - »» IM — «• 1И 1 / IRJ - 1/ IK1 Date 1 P.?..of..lX. — >• 1Ы •ч tf IM — •i IM Рис. 3.16. Первый этап проекта: набросок распределения входов/выходов деленным образом в одном месте программы (например, это может быть проверка отключения защиты двигателя и действия вспомога- тельного контакта), этот стиль и метод надо дублировать и для всех остальных пусковых устройств. Постоянство стиля особенно важно тогда, когда различные части программы пишутся разными людь- ми, и здесь лучше всего разработать свой «фирменный» стиль. Од- ним из примеров такого подхода является разработанная в компа- нии Ford концепция EDDI, рассматриваемая в главе 8.
160 Программируемые контроллеры Mi Hit 11 Гун I I '|мгу Eltenti t 33 Itarto 1 33 М4гк* 15 Bata 0 Mdreei 15 Bata 0 MfrHf 15 Bata 0 вз/ооом Illi НИ IIII Illi 83/MtH Illi Illi Illi IIII 03/00352 Hll IHl Oil! 1110 B3/0N14 Illi Illi Illi Illi ВЗ/М1Я 00M 00M Illi Illi B3/O034B 0И1 I0M 0И1 Hit B3/0W32 1011 Illi IMI III! B3/M20B Illi Illi OMI Illi 03/00304 Hll HH IIII IIII ВЗ/00048 1110 0001 Illi 1Ш 13/00224 IIII nil 0111 »n 03/00400 ИИ 00M ONO HH п/ооо44 Illi 0111 1101 ПП B3/M240 Mil IIII HIO Illi 03/00410 HH IIII 111! HU ВЗ/ОООВО Mil Illi МП 1Ш 03/00234 Nil IHl HH IIII 03/00432 ONO ОН! Ш1 OOM I3/OOH4 Illi 0000 Illi IHl I3/M272 ООП ПП Ш1 HI! 03/00440 III! ПП ОНО Hll ВЗ/И112 UH ПП till Illi 03/00200 Hll 0111 IHl 1011 03/00404 OOM OOM OMI IHl ВЗ/И128 Illi Illi Illi Illi 13/00304 ни пи nil MH B3/M400 1011 Hll Hll IHl ВЗ/И144 1010 пн ini ini 03/00320 Hll IHl ни IIII 03/00414 OMI IIII IIII Hll вз/мш 0011 Illi IHl 1111 R/00334 HU IIIO HH HIX 03/00312 IIII IIII Hll IHl Mi Flit X Гун : T tier Elranti S' fcrii i m 1IIIIIIIII2222222222111111II1I""""" Mem 0|2"547"tlJ"5""0il"S""'l2"S""012"SI7" r*iO 1 I 1 I I.I I I I I 1 1 1 I I I 1.1 I t I I I I I I 1 1 I.. HiSS I I I I I 1 I I 1 Mi Fill IS Тун 1 C counter Elrantt i 12 Vor'i l 33 llllllllll222222222233333SS333ii"ii'i" Mirra • l23i541a''l23i5470''123"47l'0l2"547e'0l23iS47i' CSlO I 1 I 1 1 I 1 I 1 I I I Mi Fili U Тун г 1 control ElMinto i • tori» i 12 lllllll II I 22222222223333333333""""" Mirra 'l23«S'7a"l23'S"a"l23«S"a"l2 3''S"a"l23'S'7a' Ml' 1 I I I I Bitt Fili 17 Тун i a lottytr Elnonto : 2'3 Hrii у 273 1 1 1 1 1 1 1 1 1 122222222223333333333""""" Mirra 'l23«S"8"l23""8"l23'S'7a"l23«S"8"123"t78' «710 I I I I I 1 1 I I I I I I I 1 1 I I I I I I I I I I I I I I I ansa 1111111111111111111111111111111111111111" i it 11 ah loo 111111111111111111111111 fi ....... ii ii i ii ii 1i- a 8110/0 ftMPlSTR Hy4raalic IFvN'1 liter Ik 1 1 Oi 10/1 WZIT1 HyBritlic !Ft<-2. _ (Starter : i. 0110/2 ктгивге... . :MitF«i._. (Starter I I 0:10/3 ЖЯШГС . Mraplic (Neater (Starter 1 1 0110/4 UCEBUIN 1ж« Шм-1* (Starter 1 i . 0:10/5 1ЖЕЯЖ1Т Uoci ISttrtr ( ( 0:10/4 Lance HlMFMt _ . .(Starter. ... (Slerfaet 0110/7 l*K* ISImUcn . (Starter... ISleeSlM (hlO/10 Uki „.JStirttr.. IIMctN 1 0:10/11 № 1ST DOW Lance (Lwer (Starter > J- 6 Рис. 3.17. Типичные сообщения об использовании памяти: (а) использование базы данных; (б) описание базы данных
Заданный расход N7:101 л/мин N7:80 1:21/05 Переключатель, режима! (РУЧН/1 --------- авт.)5--------- 0:22/00 Лампа ручного режима N7:105 Ошибка ПИД- регулятор I N7: 107 N7:108 канал 1 плата 5 стойка 3 UN ANOUT 4-20 мА к исполнит. устр-ву Рис. 3.18. Программа ПЛК, представленная в виде потоков данных
162 Программируемые контроллеры 3.6. Сокращение времени прогона программы Типичное время прогона программы ПЛК составляет от 10 до 20 мс. Этого достаточно для большинства применений, связанных с использованием контакторов, соленоидов и других электромеха- нических устройств. Однако если ПЛК применяется в задачах, свя- занных с быстрым перемещением материала, время прогона и, что более важно, вариации этого времени могут иметь критическое значение. Например, если ПЛК используется в системе резки мате- риала на фрагменты заданной длины, а материал перемещается со скоростью 10 м/с, то отклонение времени прогона на 15 мс будет соответствовать ошибке по длине в 150 мм. В этом разделе рассма- триваются факторы, влияющие на время прогона, и способы повы- шения скорости выполнения программы. На рис. 3.19 приведена типичная многоступенчатая схема. Боль- шинство ПЛК будут реализовывать соответствующую программу в следующем порядке: А, В, С, D, Е, F, G, Н, I, после чего произойдет обновление выхода. Однако чтобы повысить быстродействие, многие ПЛК будут пропускать некоторые ветви, если найдется параллельная ветвь, состояние которой соответству- ет «истине». Если сигналы А и В истинны, то сигналы С, D, Е и F не будут исследоваться, а после сигнала В следующим проверяе- мым будет сигнал G. В лучшем случае, если А, В, G и I находятся в состоянии 1, то надо будет проверить всего четыре контакта, прежде чем будет ак- тивизирован выход. В худшем случае, когда А, В, С, D и G находятся в состоянии 0, а оставшиеся сигналы в состоянии 1, то надо будет исследовать все девять контактов, прежде чем активизируется выход. Рис. 3.19. Простая многоступенчатая схема
Стиль программирования 163 Аналогичные соображения используются при определении ус- ловий деактивизации выхода. Если А, В, С, D, Е и F находятся в со- стоянии 0, то выход сразу будет деактивизирован без исследования состояний G, Н или 1. Таким образом, чтобы обеспечить наибольшее быстродействие, сигналы, которые с большой вероятностью будут иметь состояние 1, или те, которые требуют наиболее быстрой реакции, должны быть размещены в начале многоступенчатой схемы или ближе к ее левой части. Если имеется пара звеньев, выходы которых не могут появиться одновременно (например, «Поднять автоматически» и «Поднять вручную»), то сигнал выбора режима (вручную или авто- матически) помещайте в качестве первого контакта в каждом звене, так что в неиспользованном звене будет исследован только один контакт. В результате схема, изображенная на рис. 3.20 (а), будет более быстродействующей по сравнению со схемой на рис. 3.20 (б). Обратите внимание, что в схеме, обладающей меньшим быстродей- ствием, лишнее время затрачивается на двукратную проверку сиг- нала верхнего концевого выключателя в каждом звене. Пусковое Рис. 3.20. Выбор конфигурации многоступенчатой схемы с целью повышения быстродействия: (а) быстрое срабатывание; (б) медленное срабатывание
164 Программируемые контроллеры Распространенной ошибкой является дублирование сигналов, разрешающих то или иное действие. Самый быстрый способ обра- ботки таких сигналов состоит в том, чтобы сгруппировать их в од- ном разрешающем блоке памяти и затем использовать этот блок в каждом звене многоступенчатой схемы, где требуется разрешение. Математические операции выполняются во много раз медленнее, чем побитовые операции, а действия над числами с плавающей точ- кой медленнее, чем над целыми числами. Если существенным являет- ся быстродействие, старайтесь во всех математических операциях ис- пользовать целые числа, но при этом необходимо позаботиться о том, как избежать ошибок округления и переполнения. 16-битовые числа в дополнительном коде занимают диапазон от —32 768 до +32 767. Следует избегать арифметических действий, в которых замешаны целые числа и числа с плавающей точкой, так как это связано с не- производительными издержками. Например, в случае простой ариф- метической операции Int2 = Float 1 + Inti ПЛК сначала преобразует Inti во внутреннее число с плавающей точкой, сложит его с Float 1, а затем вернет результат в формат целого числа, чтобы получить Int2. Многие арифметические операции выполняются очень редко, а некоторые — всего один раз при включении питания. Много време- ни тратится впустую, если арифметические инструкции выполня- ются при каждом прогоне программы. Выполняйте арифметиче- ские операции только тогда, когда они действительно необходимы. Многие ПЛК обладают управляющими инструкциями, позволя- ющими сократить время выполнения программы. Самой простой из них является инструкция Jump, которая позволяет пропустить неис- пользуемые части программы, как это показано на рис. 3.21 (а). Мож- но также использовать подпрограммы, вызов которых производится только тогда, когда это необходимо, пример приведен на рис. 3.21 (б). В обоих случаях можно добиться значительного повышения быстро- действия, но надо заметить, что это может сбить с толку людей, пыта- ющихся в ранние утренние часы проследить выполнение программы, так как пропущенные звенья или звенья, находящиеся в невызван- ных подпрограммах, могут случайно указать на неисправность ПЛК. Некоторые ПЛК имеют специальные файлы программы, которым может быть отведено определенное время прогона. Семейство PLC-5, например, имеет программу Selectable Time Interrupt (STI), которая выполняется за фиксированный интервал времени, скажем, за 1 мс. Если время прогона основной программы составляет 20 мс, то файл STI в этом случае будет выполнен 20 раз. Однако такая скорость чре- вата издержками для времени прогона основной программы, поэтому ST1 и другие аналогичные файлы должны быть как можно меньших
Стиль программирования 165 Автомати- ческий режим Автомати- чески Автомати- ческий режим Вручную Автомятм - Здесь следуют звенья, чески обеспечивающие автоматический режим Оставшаяся часть программы Вручную Здесь следуют звенья, । । обеспечивающие LBL — ручной режим часть программы Продолжение -Ч LBL — программы Подпрограмма «Автомати- чески» Подпрограмма «Вручную» Рис. 3.21. Методы секционирования программы с целью пропуска операций, не являющихся необходимыми: (а) использование переходов (Jumps, JMP) и меток (Labels, LBL); (б) использование вызовов подпрограмм размеров, чтобы избежать затягивания времени выполнения осталь- ных файлов программы. Многие ПЛК, из которых типичным являет- ся ABB Master, позволяют независимо устанавливать в процессоре времена прогона д ля каждого и любого файла программы. Как было показано в разд. 2.2 и на рис. 2.2, каждый прогон про- граммы ПЛК на простейшем уровне включает в себя: Чтение входов Выполнение программы Обновление выходов
166 Программируемые контроллеры Приемы наподобие файлов STI особенно полезны тогда, когда вы не хотите ждать окончания основной программы, чтобы произо- шло обновление выходов. Поэтому часто используются управляю- щие функции с именами Immediate Input и Immediate Output, кото- рые позволяют прочитать входы или обновить выходы, не дожида- ясь нормального начала и конца программы. ST1 или подобный файл обычно имеет следующую структуру: Immediate Input <используемые входы> Программа Immediate Output Сиспользуемые выходы>, так что доступ к входам и выходам является столь же быстрым, как и прогон программы. Обращение к входным и выходным сигналам путем последова- тельного опроса (часто называемое дистанционным сканировани- ем) дает дополнительный вклад в отклонения времени выполнения программы, поскольку обычно прогон программы и опрос вхо- дов/выходов не синхронизированы. Если важную роль играет бы- стродействие, то входные и выходные платы должны быть смонти- рованы в той же стойке, что и процессор, так как доступ к сигналам в этом случае осуществляется намного быстрее. Наконец, радикального повышения быстродействия можно до- биться путем удаления «мусора» из программы. Многие ПЛК содер- жат ненужные программы, обслуживавшие устаревшее оборудова- ние, тестирующие программы, уже выполнившие свое назначение, или просто звенья, обеспечивающие доступ к элементам объекта уп- равления, которые больше не используются. Эти бесполезные фраг- менты занимают память, создают путаницу для персонала и снижа- ют быстродействие процессора. Считается хорошей практикой периодически подвергать программу проверке (как правило, каждые три месяца) и удалять из нее все, в чем нет необходимости.
4. Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 4.1. Введение До сих пор мы рассматривали сигналы, по своей природе являющи- еся дискретными (включено/выключено), плюс цифровые данные от таймеров и счетчиков. Во многих системах этих сигналов вполне достаточно. Однако часто ПЛК необходим для измерения таких пе- ременных объекта или управления ими, которые могут принимать любые значения в некотором заранее известном диапазоне. Типич- ные сигналы подобного рода соответствуют температуре, расходу, давлению, скорости и т. д. Это так называемые аналоговые сигналы. Аналогично, ПЛК может вырабатывать аналоговые сигналы, управляющие измерительными устройствами или клапанами про- порционального действия, или формировать эталонный сигнал для регулятора скорости электродвигателя. Чтобы выполнить эти требования, ПЛК должен иметь аналого- вые входные и выходные платы. По своим характеристикам они не- сколько отличаются от простых дискретных (цифровых) плат, с ко- торыми мы имели дело ранее. В этой главе рассматриваются аналоговые сигналы, способы их обработки и вопросы, связанные с «интеллектуальными» модулями ПЛК. Сначала имеет смысл дать краткий обзор видов аналоговых сигналов, с которыми чаще всего приходится иметь дело. 4.2. Типичные аналоговые сигналы 4.2.1. Температура Измерение температуры, по-видимому, является самой распро- страненной аналоговой функцией. Простейшим измерительным прибором является обычный ртутный термометр, однако он, к со- жалению, не пригоден для дистанционных измерений. В промыш- ленных условиях для этого используются три способа первичного преобразования температуры. Первый способ связан с применением термопары, изображен- ной на рис. 4.1, где два разнородных металла соединены в точке, температуру которой требуется измерить, и связаны с чувствитель-
168 Программируемые контроллеры ным вольтметром, находящимся на некотором удалении. Показа- ния вольтметра являются функцией двух температур, Tj и Т^. Изме- нение температуры Т2 будет приводить к ошибке, поэтому обычно применяется «компенсация температуры холодных концов»; для этого температура Т2 измеряется некоторым отдельным прибором и добавляется корректирующий сигнал, как показано на рис. 4.1 (б). Для различных диапазонов температуры используется много типов комбинаций металлов, а соответствующие термопары обозначаются буквами. Например, термопара R-типа образована платиной и спла- вом платина/родий и используется в диапазоне от 0° до 1700 °C; наи- более распространенная термопара К-типа использует комбинацию хромель/алюмель и рассчитана на применение в диапазоне 0—1100 °C. Сигналы от всех термопар являются очень слабыми — например, тер- мопара К-типа дает всего 42 мкВ на каждый градус Цельсия. В другом типе термометра используется зависимость сопротивле- ния от температуры. Платиновая проволока с сопротивлением 100 Ом при 0 °C будет иметь сопротивление 138.5 Ом при 100 °C. Та- кие элементы известны как датчики РТ100 (РТ означает платину, а 100 — сопротивление при 0 °C). Такие датчики MOiyr использоваться в диапазоне от —200 °C до +800 °C. Чтобы уменьшить ошибку, вноси- мую сопротивлением соединительных проводов (оно может быть по- < ; v-t(Ti, тг} Измеряемая температура Температура холодных концов Корректирующий сигнал Рис. 4.1. Термопара: (а) принцип действия; (б) компенсация температуры холодных концов
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 169 рядка 1 Ом), применяются трех- и четырехпроводные схемы, пред- ставленные на рис. 4.2. Они позволяют за счет мостового включения точно определять сопротивление РТ100. Разновидностью термомет- ров сопротивления являются датчики на основе полупроводниковых материалов, называемые термисторами; они обладают гораздо боль- шим, но нелинейным изменением сопротивления. Последний тип термометра называется пирометром и измеряет инфракрасное излучение, испускаемое нагретой поверхностью. Преимущество пирометров в том, что они могут быть расположены на удалении от объекта, температура которого измеряется, но ис- пользуются они только при температурах выше 500 °C. Термометр сопротивления б Рис. 4.2. Схемы включения термометра сопротивления: (а) трехпроводная; (б) четырехпроводная
170 Программируемые контроллеры 4.2.2. Давление При измерении давления важно принимать во внимание, что суще- ствуют три различных типа датчиков, хотя все они, по существу, яв- ляются разновидностями преобразователя разности давлений, изо- браженного на рис. 4.3 (а). Его выходной сигнал пропорционален разности давлений в двух отверстиях. Калиброванный преобразо- ватель давления измеряет давление относительно атмосферного; это легко получить, если одно отверстие оставить открытым, как на рис. 4.3 (б). Калиброванные давления обычно имеют суффикс «g», например 1.4 psig (psi - Pounds per Square Inch, т. e. фунты на квад- ратный дюйм. — Прим, перев.). Третий метод предполагает, что одно отверстие соединено с вакуумом, как на рис. 4.3 (в), и таким обра- зом получается абсолютное давление. Если нормальное атмосфер- ное давление составляет около 1 бар, то калиброванное давление в 2.4 бар будет соответствовать абсолютному 3.4 бар. Основной метод измерения, проиллюстрированный на рис. 4.4, предполагает, что два давления действуют на диафрагму, а их раз- ность определяется отклонением диафрагмы или измерением си- лы, создаваемой электрическим соленоидом для удержания диа- фрагмы в центральном положении. Этот метод известен как принцип баланса сил. а Выход = Р1 - ₽2 Открытое отверстие б Выход = - атмосферное давление Выход = Р] Рис. 4.3. Три варианта измерения давления: (а) дифференциальный; (б) калибровочный; (в) абсолютный (В - высокое давление, Н - низкое давление) Р' в Р
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 171 Рис. 4.4. Принцип действия датчика давления 4.2.3. Расход Во многих процессах важную роль играет измерение расхода, кото- рый можно оценивать по-разному. Массовый расход характеризует массу жидкости, проходящей через данную точку в единицу време- ни (например, кг/мин). Объемный расход — это объем жидкости в единицу времени (например, л/с). В случае сжимаемых газов при измерении объемного расхода необходимо учитывать температуру и давление и приводить его к некоторым стандартным условиям (обычно это О °C и 1 бар, называемые STP — Standard Temperature and Pressure). Наконец, можно измерять скорость потока, которая выражается, например, в м/с. Наиболее распространенный метод измерения расхода основан на оценке перепада давления по разные стороны сужающегося от- верстия в трубопроводе. Простейшим примером является пластина с отверстием, изображенная на рис. 4.5 (а) (с характерными разме- рами d и d/2, где d — диаметр трубопровода). Разновидностями это- го устройства являются трубка Вентури (рис. 4.5 (б)) и трубка Пито (рис. 4.5 (в)). Рис. 4.5. Измерение расхода за счет перепада давления: (а) пластина с отверстием; (б) трубка Вентури; (в) трубка Пито (В - высокое давление, Н - низкое давление)
172 Программируемые контроллеры Существует, однако, один недостаток. Перепад давления про- порционален квадрату расхода, т. е. Pd = kF\ где Pd — перепад давления, F— расход, к — масштабирующий коэф- фициент. Это ограничивает отношение максимального расхода к минимальному почти до 4:1 и требует применения операции извле- чения квадратного корня, чтобы линейно связать расход с перепа- дом давления (т. е. F = BPd, где В — постоянный коэффициент). ПЛК способны считывать аналоговые входные сигналы, используя для этого функцию извлечения квадратного корня. Следует также отметить, что для того, чтобы не потерять точность, необходимо использовать числа с плавающей точкой (вещественные числа). Если необходим больший диапазон измерений, то можно ис- пользовать турбинный расходомер, изображенный на рис. 4.6. Вра- щение лопастей турбины воспринимается детектором близости, который обеспечивает формирование сигнала, пропорционального расходу (извлечение квадратного корня при этом не требуется). Этот метод позволяет увеличить отношение максимального изме- ряемого расхода к минимальному до 10:1. Недостатком метода яв- ляется износ подшипников. Вихревой расходомер, изображенный на рис. 4.7, также обеспе- чивает получение сигнала, линейно зависящего от расхода. Изме- рение производится путем обнаружения небольших вихрей, обра- Напряжение ~ расходу Рис. 4.6. Турбинный расходомер
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 173 Ультразвуковой излучатель _ ' И Приемник Преграда уЛьтразВуКа Рис. 4.7. Вихревой расходомер Осциллятор Ультразвуковой "^излучатель Приемник^ ультразвука Преобра- зование разности частот в напряжение -►V ~ расходу Рис. 4.8. Измерение расхода с помощью эффекта Доплера зуемых вдоль течения жидкости резкой преградой. (Подобные вих- ри вы можете наблюдать при движении рукой в воде.) На рис. 4.7 для обнаружения вихрей использован ультразвуковой луч. Наконец, на рис. 4.8 проиллюстрирован метод, в котором для измерения расхода также используется ультразвуковой луч, но из- мерение основано на эффекте Доплера (зависимости частоты от скорости). Преимущество этого метода в том, что не требуется вве- дения в трубопровод никаких элементов. 4.2.4. Скорость Скорость электродвигателей, насосов, транспортеров и т. д. часто является показателем производительности различных процессов. Самым распространенным средством измерения скорости явля- ется тахогенератор, по сути представляющий собой генератор по-
174 Программируемые контроллеры стоянного тока, выходное напряжение которого пропорциональ- но скорости вращения. Типичным устройством данного типа яв- ляется BD Tacho фирмы GEC с выходным напряжением 100 В при 1 000 об/мин. Дискретные импульсные тахометры используют зубчатое колесо, расположенное перед детектором близости, или диск с отверстиями перед фотоэлементом, формируя таким образом последовательность импульсов, частота следования которых пропорциональна скорости. С помощью простой электронной схемы частоту импульсов можно преобразовать в пропорциональное напряжение. 4.2.5. Системы взвешивания Известны два основных метода определения веса объекта — взвеши- вание путем деформации или взвешивание с помощью уравновеши- вающей силы. В первом случае, примером которого являются пру- жинные весы, взвешиваемый объект деформирует поддерживающую опору, и путем измерения этой деформации определяется вес объек- та. Во втором случае, типичным примером которого являются двух- чашечные стрелочные кухонные весы, вес объекта уравновешивается некоторой силой (электрическим, пневматическим или гидравличе- ским способом), которая затем может быть измерена. Большинство промышленных систем взвешивания основаны на эффекте деформации под влиянием нагрузки, а их первичным измерительным элементом является нагрузочная ячейка. В про- стейшем случае эта ячейка представляет собой цилиндр, на кото- ром закреплены тензодатчики. Последние состоят из высокока- чественной сетки тонких проволочек, как показано на рис. 4.9. При деформации этой сетки происходит изменение длины и по- перечного сечения проволоки, и, как следствие, немного изменя- ется сопротивление. Поскольку тензодатчики закреплены на по- верхности цилиндра, их изгиб определяется изменением размеров цилиндра, которое, в свою очередь, вызывается прило- женной нагрузкой. Изменение сопротивления является очень малым (обычно ме- нее 0.1 Ом при номинальном сопротивлении 100 Ом) и по величи- не сравнимо с изменением под влиянием температуры (см. разд. 4.2.1). Поэтому обычно на нагрузочной ячейке закрепляются четы- ре тензодатчика, из которых два воспринимают нагрузку (дефор- мируются), а два, расположенные под углом 90°, являются ненагру- женными. Включение этих тензодатчиков в мост Уитстона позволяет получить выходной сигнал, зависящий только от нагруз- ки и не зависящий от температуры.
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 175 Рис. 4.9. Двухкоординатный тензометр (любезно предоставлено фирмой Welwyn Strain Measurement) Взвешивание представляет собой нечто подобное «черной ма- гии», поэтому нужно принять все необходимые меры, чтобы га- рантировать, что нагрузка приходится только на нагрузочную ячейку, а заедание или нежелательная поддержка, скажем, труб- ками или тросиками отсутствуют. Во избежание повреждений следует также принять во внимание воздействие ударов от пада- ющих предметов. 4.2.6. Уровень Измерение уровня жидкости требуется во многих производствен- ных процессах. Самый простой и наиболее надежный метод осно- ван на том, что величина давления в жидкости прямо пропорцио- нальна высоте столба жидкости, как показано на рис. 4.10. Давление определяется выражением Р = pgh (Па в единицах СИ) или Р= ph (psi в англо-американских единицах), где р — плотность жидкости, g — ускорение свободного падения, h — высота столба жидкости. Всегда нужно следить за тем, чтобы датчик давления был совместим с жидкостью.
176 Программируемые контроллеры б Рис. 4.10. Методы измерения давления: (а) по разности давлений; (б) с помощью радиоактивного источника (В - высокое давление, Н - низкое давление) В других методах применяются поплавки (положение которых может быть измерено) или радиоактивные источники малой мощ- ности (рис. 4.10 (б)), где жидкость задерживает излучение, влияя на величину выходного сигнала детектора (например, счетчика Гейге- ра-Мюллера) на другой стороне резервуара. 4.2.7. Положение Положение часто измеряется не только ради собственно положе- ния (например, положения наконечника сверла), но также чтобы определить значение некоторой другой переменной. Так, напри- мер, измерение уровня иногда производится путем определения положения поплавка.
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 177 Простую систему измерения положения можно реализовать с помощью линейного или поворотного потенциометра и стабилизи- рованного источника питания (рис. 4.11). В этом случае выходное напряжение непосредственно зависит от положения движка потен- циометра. Более точным устройством, не обладающим контактным трени- ем и требующим минимального усилия для перемещения, является линейный дифференциальный трансформатор, изображенный на рис. 4.12. Входной сигнал переменного тока Ивх создает напряже- ния И] и И2 на двух секциях вторичной обмотки трансформатора, амплитуды которых зависят от положения подвижного сердечника. Фазочувствительный выпрямитель формирует выходной сигнал постоянного тока, величина которого зависит от перемещения сер- дечника. Для более точного измерения положения часто также ис- пользуются оптические кодирующие устройства. Они рассматрива- ются позже в разд. 9.10. Движок, связанный с объектом, положение которого измеряется V - положению J___________ Рис. 4.11. Измерение положения с помощью потенциометра Измеряемое положение Фазо- чувстви- тельный выпря- митель ---** ^вых ~ положению Рис. 4.12. Линейный дифференциальный трансформатор
178 Программируемые контроллеры 4.2.8. Выходные сигналы До сих пор мы рассматривали аналоговые сигналы, являющиеся входными для ПЛК. Но выходные сигналы тоже необходимы, и ти- пичными примерами являются сигналы, поступающие на измери- тельные приборы, управляющие клапаны пропорционального дей- ствия, или сигналы, задающие требуемые значения (уставки) для других управляющих устройств. Таким образом, ПЛК, связанный с аналоговыми устройствами, должен быть способен обрабатывать как входные, так и выходные сигналы. 4.3. Сигналы и стандарты Из предыдущих разделов ясно, что не подвергнутые обработке сиг- налы от датчиков весьма разнообразны и диапазон их изменения простирается от нескольких милливольт (для термопары) до более чем сотни вольт для тахогенератора. Кроме того, они могут быть вызваны изменениями напряжения постоянного тока, переменно- го тока или даже сопротивления. Поэтому совершенно очевидно, что если аналоговые входные платы работают лишь в определенном диапазоне сигналов, то необходимо использовать некоторую стан- дартизацию. В результате происхождение входного сигнала можно предста- вить так, как показано на рис. 4.13. Первичный сигнал от датчика на месте преобразуется электронным устройством в определенный стандартный сигнал, а совокупность датчика и этого устройства на- зывается передатчиком или преобразователем. После этого стан- дартизированный сигнал, несущий информацию об измеряемой переменной объекта управления, может быть подан на обычную аналоговую входную плату. Возникает естественный вопрос: каким должен быть этот стан- дартизированный сигнал? Аналоговые сигналы — это сигналы низ- кого уровня и поэтому подвержены электрическим помехам (или Величина, ----► используемая в программе Передатчик или преобразователь Стандартная входная плата Рис. 4.13. Компоненты аналогового входа ПЛК
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 179 Диаграммный Измерительный самописец Входная плата ПЛК (1-5 В) Рис. 4.14. Токовый контур 4-20 мА шумам, как их чаще всего называют). Сигнал, представленный электрическим током, менее подвержен влиянию шумов, чем сиг- нал, представленный напряжением, поэтому обычно выбирается токовый контур. Преобразователь и принимающее устройство со- единяются по схеме, изображенной на рис. 4.14, причем токовый сигнал на приемной стороне преобразуется в напряжение при по- мощи балластного резистора. Токовый контур можно использовать с несколькими приемными устройствами (это могут быть, напри- мер, измерительный прибор, диаграммный самописец или вход ПЛК), соединенными последовательно. Самый распространенный стандарт представляет аналоговый сигнал в виде тока с диапазоном изменения 4—20 мА, где 4мА соот- ветствует минимальному уровню сигнала, а 20 мА — максимальному. Если, например, преобразователь давления дает сигнал 4—20 мА, представляющий давление в диапазоне 0—10 бар, то давлению 8 бар будет соответствовать величина тока 8 х (20 — 4)/10 + 4 = 16.8 мА. Сигнал 4—20 мА часто с помощью балластного резистора величиной 250 Ом преобразуется в сигнал 1-5 В. «Нулевой» сигнал 4 мА (называемый смещением) предназначен для двух целей. Во-первых, он используется как зашита от поврежде- ний преобразователя или кабельного шнура. Если происходит отказ преобразователя или обрыв шнура или же в линии связи возникает короткое замыкание, то ток через балластный резистор будет равен нулю, что соответствует «отрицательному» сигналу 0 В на приемной стороне. Это может быть очень легко обнаружено и использовано как аварийный сигнал «неисправность преобразователя». Ток смещения 4 мА также упрощает компоновку системы. На рис. 4.14 предполагалось, что преобразователь имел местный ис-
180 Программируемые контроллеры Рис. 4.15. Двухпроводный преобразователь 4-20 мА точник питания и обеспечивал токовый сигнал. Подобная компо- новка возможна, но более распространенной (и более простой) яв- ляется схема, изображенная на рис. 4.15. Здесь источник питания (обычно 24—30 В постоянного тока) помещается на стороне прием- ного устройства, а сигнальные линии служат как для питания пре- образователя, так и для передачи тока. Преобразователь отбирает от источника питания ток в диапазоне 4—20 мА в соответствии с из- меряемым сигналом. Этот ток, как и раньше, преобразуется в на- пряжение с помощью балластного резистора. Смещение в 4 мА обеспечивает ток, необходимый преобразовате- лю для его нормальной работы. Очевидно, этого нельзя добиться, ес- ли диапазон сигнала будет составлять 0—20 мА. Преобразователи, включаемые по схеме рис. 4.15, обычно называются двухпроводными. 4.4. Аналоговые интерфейсы 4.4.1. Разрешающая способность Плата аналогового интерфейса преобразует непрерывно изменяю- щийся аналоговый сигнал в цифровую форму для дальнейшего ис- пользования в программе ПЛК. В общем случае аналоговый сигнал представляется (по крайней мере, в начальной стадии) в виде цело- го числа. Это аналого-цифровое преобразование (известное по аббревиа- туре АЦП) неизбежно сопровождается потерей разрешения, кото- рая зависит от числа используемых двоичных разрядов. Например, байт, состоящий из 8 битов, может представлять целое число в диа- пазоне 0—255. Если этот байт используется для представления ана- логового сигнала, соответствующего расходу в диапазоне от 0 до
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 181 1800 л/мин, то один бит, соответственно, будет представлять при- близительно 7 л/мин (т. е. 1800/255). Поэтому любая стратегия уп- равления, определяемая программой, основанная на лучшем раз- решении, не имеет смысла. Надо быть особенно внимательным при операциях сравнения, т. к. некоторые числа никогда не могут быть получены; например, значение расхода 138 л/мин никогда не мо- жет быть закодировано в 8-битовой системе — она будет давать ска- чок от 134 л/мин до 141 л/мин. Для сравнений всегда следует ис- пользовать операции «больше или равно» или «меньше или равно». Более распространенным разрешением является 12 бит. Оно со- ответствует представлению целых чисел в диапазоне от 0 до 4095. В нашем примере с расходом в диапазоне 0—1800 л/мин один бит бу- дет соответствовать менее чем 0.5 л/мин (1800/4095 = 0.44). Подобная «грубость» не является проблемой, как может пока- заться на первый взгляд. Хотя аналоговый преобразователь спосо- бен дать любое значение сигнала в соответствующем диапазоне, он все равно будет получен с некоторой ошибкой. Многие пер- вичные преобразователи имеют точность всего 2%. Если в нашем примере преобразователь расхода имеет такую точность, то изме- ряемая величина будет получена с ошибкой 36 л/мин. По сравне- нию с этой ошибкой разрешение в 7 л/мин, по-видимому, являет- ся вполне приемлемым. Учитывая сказанное, полезно разрешающую способность охарак- теризовать ошибкой, которая должна быть просуммирована с ошиб- кой собственно преобразователя. Данные приведены в табл. 4.1. Таблица 4.1 Количество битов Диапазон чисел Ошибка (%) 8 0-255 0.5 10 0-1023 0.1 12 0-4095 0.025 Немногие промышленные преобразователи обладают точно- стью выше 0.1 %, поэтому в большинстве практических случаев 12- битовое представление чисел будет добавлять очень незначитель- ную ошибку. 4.4.2. Мультиплексированные входы Как мы уже видели, ПЛК обычно работаете 16-битовыми словами. Если аналоговая входная плата занимает одно гнездо в стойке и принимает только один входной сигнал, это будет слишком расго-
182 Программируемые контроллеры чительным расходованием области для входов/выходов (и обойдет- ся достаточно дорого). Для сравнения, обычная цифровая входная плата принимает 16 сигналов, и ее стоимость в четыре раза меньше аналоговой входной платы. Издержки использования входных/выходных плат могут быть уменьшены путем мультиплексирования, проиллюстрированного на рис. 4.16. Здесь четыре аналоговых сигнала, разделенные между собой независимыми усилителями, поочередно выбираются элек- тронными переключателями и преобразуются в цифровую форму общим АЦП. Такие платы обычно принимают 4, 8 или 16 входных сигналов. Если плата занимает единственное гнездо, то очевидно, что ПЛК должен каким-то образом осуществлять последовательное чтение входных сигналов с АЦП. К этой проблеме мы вернемся в разд. 4.4.4 и 4.4.5. 4.4.3. Периодичность преобразования Преобразование сигнала из аналоговой в цифровую форму не про- исходит мгновенно (хотя в цифровом телевидении используются сверхбыстродействующие АЦП, обладающие временем преобразо- вания в единицы наносекунд). В большинстве промышленных си- стем есть большая вероятность помех, наложенных на сигнал от ли- ний переменного тока (с частотой 50 или 60 Гц в зависимости от страны). Выбор канала 12-битовые цифровые сигналы Преобразование выполнено Рис. 4.16. Аналоговая входная плата с четырехканальным мультиплексированием
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 183 Часто периодичность преобразования привязывается к частоте сети переменного тока, что дает высокую степень подавления по- мех от этой сети. При этом периодичность преобразования состав- ляет 20 мс в Великобритании (частота сети 50 Гц) и 16.67 мс в США (частота сети 60 Гн). В случае четырехканального мультиплексора каждый канал оп- рашивается по очереди, поэтому выборки сигнала будут произво- диться с периодом 80 мс. Если аналоговая плата находится в уда- ленной стойке, то к этому времени надо добавить время прогона программы и время доступа к плате. Аналоговая входная плата производит мгновенные выборки сигна- лов, поступающих от объекта. Кроме значений этих выборок, никакой другой информации о сигналах не существует. Как показано на рис. 4.17 (а) и 4.17 (б), если выборки производятся с одним и тем же пери- одом, то оба сигнала (разные!) дадут одинаковый результат, приведен- ный на рис. 4.17 (в). Поэтому возникает естественный вопрос: как сле- дует выбирать частоту квантования непрерывного сигнала, чтобы его дискретные значения точно представляли форму исходного сигнала? На рис. 4.18 (а) синусоидальный сигнал квантуется с достаточно высокой частотой. Интуитивно можно предположить, что эта час- тота является приемлемой. На рис. 4.18 (б) частота квантования совпадает с частотой сигнала. Ясно, что в этом случае частота кван- тования является слишком низкой, так как получаемые выборки соответствуют постоянному сигналу. Рис. 4.17. Сигналы (а) и (б) при квантовании дают одинаковую последовательность выборок (в)
184 Программируемые контроллеры На рис. 4.18 (в) частота квантования меньше частоты сигнала, и по значениям выборок можно составить представление, что речь идет о синусоиде с частотой, много меньшей, чем у исходного сиг- нала. Этот эффект называется смещением частоты. Его можно ви- зуально наблюдать на экране кинотеатра, когда колеса автомобиля часто кажутся вращающимися в обратную сторону. Это происходит из-за того, что кинокамера делает снимки окружающей обстановки примерно 50 раз в секунду. Любой непрерывный сигнал занимает определенную полосу ча- стот. Чтобы по выборкам можно было достаточно точно восстано- вить форму исходного сигнала, частота квантования должна быть по крайней мере в два раза больше полосы частот, занимаемой не- прерывным сигналом. Такова, в несколько упрощенном виде, фор- мулировка импульсной теоремы Шеннона. Ни одна реальная система, конечно, не может иметь конкрет- ной полосы пропускания и резко обозначенной частоты среза. Шу- мы и другие подобные эффекты приводят к тому, что на полезный сигнал будут накладываться составляющие более высоких частот. Из-за этих составляющих может возникать упомянутое выше сме- щение частоты. Поэтому перед квантованием любой сигнал необ- ходимо пропустить через низкочастотный фильтр, чтобы гаранти- ровать, что квантованию подвергается только сигнал, занимающий определенную полосу частот. Большинство сигналов в системах управления занимают полосу частот в несколько герц, поэтому их квантование в соответствии с теоремой Шеннона не вызывает особых проблем. Обычно эта по- лоса заранее не известна, поэтому используется частота квантова- ния, которая в 5—10 раз больше предполагаемой полосы частот, за- нимаемой сигналом. Например, для сигнала с частотой 2 Гц будет вполне достаточно квантовать его с частотой 10 Гц, что соответст- вует периоду 100 мс. К счастью, подобные проблемы возникают редко. На практике промышленные системы, реальные сигналы в которых связаны с объектом, имеющим значительную массу, редко обладают полосой пропускания более 0.5 Гц; поэтому сигнал любой частоты, превы- шающей это значение, можно рассматривать как внешний шум, который должен быть отфильтрован. Например, в системах, содер- жащих тепловые объекты, сигналы часто можно квантовать с пери- одичностью всего один раз в несколько минут без внесения каких- либо ошибок. Проектировщик, однако, всегда должен быть уверен, что выполняется импульсная теорема Шеннона и что время преоб- разования АЦП совместимо с измеряемыми сигналами.
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 165 Рис. 4.18. Влияние частоты квантования: (а) нормальная ситуация; (б) очень малая частота квантования; (в) эффект смещения частоты
186 Программируемые контроллеры 4.4.4. Выбор канала и преобразование в технические единицы измерения Типичная 8-канальная аналоговая входная плата обеспечивает по- лучение восьми 12-битовых сигналов, каждый из которых в необра- ботанной форме изменяется в диапазоне от 0 до 4095. Программа ПЛК должна иметь доступ ко всем этим сигналам и обладать воз- можностью преобразования их в технические единицы измерения, такие как °C, Па, л/мин и т. д. Если, например, диапазон чисел 0—4095 представляет расход от 0 до 1000 л/мин, то теоретически до- стижимо разрешение 0.25 л/мин. Таким образом, ПЛК должен решать две проблемы: как полу- чить доступ к мультиплексированным данным с помощью входной платы и как использовать эти данные в программе. Существуют два основных способа доступа к данным, как это показано на рис. 4.19. На рис. 4.19 (а) ПЛК выбирает номер канала, который необхо- димо опросить, посылая на плату 3- или 4-битовый адрес этого ка- нала вместе с командой «Convert» (преобразовать). Плата возвра- щает оцифрованное 12-битовое значение сигнала вместе с сигналом «Done» (готово), которое может быть прочитано как нор- мальное входное слово. Преимущество этого метода заключается в том, что программист может выбрать разные периоды квантования для различных сигналов. Однако наиболее распространенным является метод, проиллю- стрированный на рис. 4.19 (б). Блок ячеек памяти в ПЛК непосред- ственно связан с аналоговой входной платой. Автономно работаю- щая плата записывает оцифрованные значения в память, откуда они впоследствии могут быть выбраны программой. Например, в ПЛК Siemens с фиксированной адресацией гнезд адреса ячеек па- мяти определяются непосредственно по положению аналоговой платы в стойке; плата, расположенная в гнезде 2 первой стойки, бу- дет записывать оцифрованные значения в блок ячеек памяти, на- чиная с адреса 192. Преобразование необработанного 12-битового сигнала в техни- ческие единицы измерения по неосторожности может иметь труд- но уловимые неприятные последствия. Теоретически это преобра- зование простое. Если N — необработанный сигнал, HR — сигнал, соответствующий верхней границе диапазона (т. е. 4095), a LR — сигнал, соответствующий нижней границе (т. е. 0), то измеренное значение MV определяется выражением MV = N х (HR - LR) 4095 + LR. (4.1)
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 187 Рис. 4.19. Способы связи ПЛК и аналоговой входной платы: (а) непосредственный выбор; (б) автономная работа Если в вычислениях участвуют вещественные числа (с плавающей точкой), никаких проблем быть не должно, и выражение (4.1) мож- но использовать непосредственно. Однако при использовании целых чисел следует проявлять крайнюю осторожность. Если сначала производится умножение
188 Программируемые контроллеры N х (HR - LR), вполне возможно арифметическое переполне- ние, которого можно избежать, только используя 32-битовое представление результата. Если сначала производится деление N/4095, то результат в виде целого числа будет равен нулю, т. к. N всегда меньше 4095. Поэтому всегда, когда это возможно, при вычислении выражения (4.1) следует использовать веществен- ные числа. Чтобы избежать этой проблемы, различные производители ПЛК предложили специальные методы чтения аналоговых вход- ных сигналов. Например, в ABB Master в базе данных для каждого сигнала определяются значения HR, LR, частота квантования и имя, по которому он будет находиться в программе. Существуют, конечно, и специфические отличия, поэтому в следующем разделе мы на примере покажем, как происходит чтение аналоговых сигна- лов в Allen Bradley PLC-5. 4.4.5. Аналоговые входные платы Аналоговая входная плата типа 1771-IFE, устанавливаемая в PLC-5 компании Allen Bradley, в самой простой форме может принимать восемь аналоговых сигналов. ПЛК осуществляет связь с платой посредством инструкций, на- зываемых «поблочными передачами», которые перемещают дан- ные в блок ячеек запоминающего устройства (или из этого блока). Перемещение данных из ПЛК на плату носит название «поблочная передача записи» (BTW), а перемещение данных с платы в память ПЛК, что совершенно естественно, — «поблочная передача чтения» (BTR). Для каждого типа инструкции, несколько упрощенно, про- граммист указывает: 1) направление передачи данных (BTW или BTR); 2) адрес платы (стойка, гнездо и часть этого гнезда — левая или правая); 3) адрес блока памяти; 4) количество 16-битовых слов, подлежащих передаче. Аналоговая входная плата использует обе инструкции, BTW и BTR, но BTW только один раз, после включения питания, чтобы скон- фигурировать модуль, a BTR — вслед за этим, чтобы прочитать дан- ные. Это схематически показано на рис. 4.20. Инструкция BTW, исполняемая после включения питания, как представлено на рис. 4.21, устанавливает образ действий модуля: производит ли он кодирование сигналов в двоичной или двоично-
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 189 Аналоговая входная плата Память ПЛК Рис. 4.20. Инструкции BTW и BTR в ПЛК Allen Bradley Установка ВЗ/5 Стойка 3 Группа 2 Модуль О Файл данных N11:10 Длина 15 Рис. 4.21. Инструкция BTW в несколько упрощенном виде. Это звено пересылает 15 слов данных, начиная с N11.10, на плату, расположенную в левой части гнезда 2 в стойке 3, всякий раз, когда это разрешает ВЗ/5 десятичной форме, использует ли модуль восемь дифференциаль- ных сигналов или 16 сигналов, отсчитываемых от общего эталон- ного уровня О В, а также для каждого канала указываются верхняя и нижняя границы диапазона входного сигнала (HR и LR в выра- жении (4.1)). Плата использует эту информацию, чтобы преобразо- вать отсчеты в технические единицы измерения (в 12-битовом фор- мате целых чисел, в двоичном формате дополнительного кода или в двоично-десятичном коде). Как только произведены все необходимые установки, с помощью инструкции BTR через заданные интервалы времени могут быть прочитаны значения сигналов, как это показано на рис. 4.22 (а). Эти значения вместе с сигналами превышения диапазонов переменных (аварийные ситуации) заносятся в ячейки памяти и могут быть ис- пользованы в программе. На рис. 4.22 (6) приведена схема провер- ки превышения температуры применительно к третьему аналого- вому сигналу из рис. 4.22 (а).
190 Программируемые контроллеры Время выборки ВЗ/72 Стойка 4 Группа 5 Модуль 0 Файл данных N12:0 Длина 20 Прием Превышение аварийного температуры Рис. 4.22. Инструкция BTR. (а) Это звено, снова представленное в несколько упрощенном виде, всякий раз, когда разрешает ВЗ/72, считывает 20 значений данных с платы, расположенной в левой части гнезда 5 в стойке 4. Эти значения (оцифрованные аналоговые сигналы и диагностика ошибок) заносятся в ячейки памяти, начиная с N12:0. (б) Проверка выхода за пределы диапазона третьей переменной из части рисунка (а) 4.4.6. Фильтрация Установочные данные на рис. 4.21 включают в себя и постоян- ную времени фильтра первого порядка для входного сигнала. Фильтр предназначен для устранения любого шума, который мо- жет быть наложен на сигнал. Если аналоговые данные, поступа- ющие от другой системы, не отфильтрованы или необходимо иметь очень большую постоянную времени (плата 1771-IFE на рис. 4.20 может обеспечить постоянную времени не более 1 с), то программист имеет возможность создать отдельную программу фильтрации.
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 191 Фильтр первого порядка описывается простым дифференциаль- ным уравнением „,Ф’ U. тл+г-х’ (4.2) где х — входной сигнал (необработанная величина от входной пла- ты), у — отфильтрованный сигнал и Г — постоянная времени. В системе с ПЛК значения у и х не являются непрерывными, а представляют собой выборки, следующие с интервалами Дг (это оп- ределяется временем обновления входов и выходов платы или час- тотой, с которой производятся выборки). Таким образом, мы получаем входную последовательность хп, хл-1, хи_2, где хп — самый последний отсчет, ахл_1 — предыдущий, и аналогичную выходную последовательность уп,Уп.\ и т. д. Можно воспользоваться аппроксимацией (4.3) dt Д/ Дг Подстановка этого выражения в (4.2) дает: тУп- ТУп-1+Уп^ = хпЫ. Отсюда получаем отфильтрованное значение уп: = уп_1+(М/Т)хп Уп 1 + (ДГ/7) (4.4) (4.5) Это требует всего одной ячейки памяти для хранения последнего значения у (обозначенного ул_]) и легко может быть выполнено с помощью последовательных операций, представленных на рис. 4.23. Заметим, что для того, чтобы выражение (4.5) и соответствую- щие ему операции на рис. 4.23 давали правильный результат, время обновления данных Дг должно быть известным и постоянным. В=-----— И + Д?7) Рис. 4.23. Простой фильтр первого порядка. Если Т » А/ (обычно так и бывает), то А = Af/T, В = 1
192 Программируемые контроллеры 4.5. Аналоговые выходные сигналы От ПЛК часто требуется не только воспринимать аналоговые вход- ные сигналы, но и формировать выходные сигналы, по природе также являющиеся аналоговыми. Типовыми ситуациями являются подключение аналоговых измерительных приборов или диаграмм- ных самописцев и выработка эталонных сигналов, соответствую- щих заданному значению управляемой переменной (например, скорости тиристорного привода). Эти сигналы, так же как и вход- ные, имеют стандартизированные диапазоны изменения 1—5 В или 0—10 В для напряжения или 4—20 мА для тока. Типичная аналоговая выходная плата 1771-OFE для ПЛК Allen Bradley имеет 4 выходных канала, каждый из которых преобразует 12-битовый (0—4095) цифровой сигнал в аналоговый выход. На вы- ходах применяются развязывающие усилители, позволяющие уменьшить влияние помех и обеспечить подключение сигналов к внешним устройствам, питание которых осуществляется от различ- ных электрических источников. Цифровые сигналы извлекаются из ячеек памяти внутри ПЛК, как показано на рис. 4.24. Эта опера- ция называется цифроаналоговым преобразованием, или ЦАП. Для получения лучшего разрешения ПЛК должен использовать полный диапазон 0—4095, но часто это сделать невозможно. На- пример, если ПЛК вырабатывает уставку для скорости вращения двигателя в диапазоне 0—1350 об/мин, это потребует установить ди- апазон изменения тока 4—20 мА. Выражение (4.1) для этого случая может быть трансформировано к виду: Рис. 4.24. Аналоговые выходные сигналы 0 Измерительный прибор Диаграм- мный самописец Гидроцилиндр
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 193 4095 х (N — LR) КЦАП “ (HR _ LR) (4.6) где Ицд]-[ - значение, выводимое в ЦАП (в диапазоне 0—4095), N — число в технических единицах измерения, a HR и LR — соот- ветственно верхняя и нижняя границы диапазона выходного сигна- ла (в цифровом виде). Как и ранее, с выражением (4.6) следует об- ращаться очень осторожно, чтобы избежать переполнения или потери разрешающей способности. Связь между PLC-5 и платой 1771- OFE осуществляется с помо- щью инструкции BTW, описанной ранее. Программист создает блок из 12 слов, как показано на рис. 4.25 (о); первые 4 слова соот- ветствуют значениям, выводимым на плату, а остальные — грани- цам диапазона HR и LR для каждого канала. Затем этот блок с по- мощью инструкции BTW записывается на выходную плату. На рис. 4.25 (б) приведен типичный пример, когда оператор, пользуясь кнопками, может увеличить или уменьшить заданное значение (в аналоговой форме) скорости вращения двигателя. Обратите внима- ние на использование инструкций «больше чем» (GTR) и «меньше чем» (LES), позволяющих удерживать значение счетчика в допус- тимом диапазоне 0—1350 об/мин. Выбор именно такого диапазона на рис. 4.25 позволяет использовать в программе технические еди- ницы измерения; например, счетчик, как показано на рисунке, со- храняет значения скорости непосредственно в об/мин, но это со- провождается потерей разрешения, как объяснялось выше. Для диапазона 0—1350 об/мин разрешение составляет около 0.1% по сравнению с теоретическим значением 0.025%, доступным для вы- ходной платы. 4.6. Функции аналоговых сигналов Существует ряд других операций, которые можно выполнять над аналоговыми сигналами. Перечислим типичные операции, ис- пользуемые в ПЛК GEM-80: SQRT извлечение квадратного корня (характерно при изме- рении расхода по величине перепада давления) LINCON действие X х (А/В) + С с ограничением FGEN генератор кусочно-линейной функции, используемой при линеаризации нелинейной зависимости. Пример приведен на рис. 4.26 (а) LIMIT ограничение сигнала (рис. 4.26 (б))
194 Программируемые контроллеры Кнопка Десятые доли Заданное значение «Увеличить» секунды скорости 1:10/12 ВЗ/0 LES А<В -GTRA>B- А С5:4. Асе В О j-CTU-i 1 С5-4 [ Кнопка Десятые доли «Уменьшить» секунды Заданное значение 1:10/13 ВЗ/0 скорости —MOV— С5:4. Асе N10:2 Десятые доли секунды ВЗ/0 BTW N10:2 — значе- ние в блоке данных для BTW б Рис. 4.25. Использование аналоговой выходной платы: (а) блок данных (несколько упрощенно) для аналоговой выходной платы Allen Bradley; (б) задание уставки для скорости двигателя с помощью счетчика и аналоговой выходной платы RAMP ограничение скорости (с различными уровнями для возрастания и убывания) DEDBAND зона нечувствительности, представленная на рис. 4.26 (в). Часто применяется для предотвращения само воз-
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 195 Рис. 4.26. Специальные функции аналоговых сигналов в GEM-80: (а) функция FGEN, генерируемая по N точкам с равными интервалами Дх; (б) функция LIMIT (верхний и нижний уровни ограничения не обязательно должны быть одинаковыми); (в) функция DEDBAND без смещения и со смещением буждения замкнутой системы управления в случае близости уставки и действительного значения выход- ного сигнала ANALAG задержка на один такт. Применяется при фильтрации сигнала (см. разд. 4.4.6) 4.7. Замкнутая система управления 4.7.1. Введение в теорию управления Во многих производственных процессах выходную переменную объекта управления (например, температуру, давление или расход) требуется поддерживать постоянной или изменять по заданному закону. В подобных случаях обычно система управления строится
196 Программируемые контроллеры по принципу, иллюстрируемому на рис. 4.27, где действительное значение переменной объекта с помощью обратной связи сравни- вается с ее желаемым (заданным) значением. Такая система назы- вается системой с обратной связью, или замкнутой системой. При сравнении заданного значения переменной, обозначаемого SP (от английского Setpoint — уставка), с ее действительным значе- нием PV (от английского Process Variable) образуется ошибка Е, т. е. £=SP-PV. (4.7) Умножение ошибки на коэффициент К дает выходной сигнал упра- вляющего устройства ОР: OP = KE = A'(SP - PV). (4.8) Воздействие этого сигнала на объект является причиной измене- ния PV. В случае безынерционного объекта сигнал PV будет прямо пропорционален ОР, т. е. мы можем записать РУ = Я хОР, (4.9) где А — обычный коэффициент усиления. Выражения (4.7)—(4.9) позволяют сразу получить зависимость PV= (1+ЛА) XS₽’ (4.10) т. е. выходной сигнал объекта PV просто будет равен уставке SP, ум- ноженной на масштабирующий коэффициент АК/(\ + А К). Член АК называют коэффициентом усиления разомкнутой системы и ча- сто обозначают через G, поэтому можно записать PV = -^FxSP. (4.11) 1 + и Ошибка = SP - PV SP (заданное значение) Действительное значение Рис. 4.27. Простая замкнутая система с пропорциональным управлением
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 197 Можно видеть, что при больших значениях G разность между PV и SP будет достаточно малой. Например, при G = 10 мы получим PV = 0.91SP Большие значения Смежно обеспечить увеличением ко- эффициента усиления К. К сожалению, на практике это часто при- водит к неустойчивости системы. Проблему устойчивости мы обсу- дим в следующем разделе. На рис. 4.28 представлен модифицированный тип стратегии уп- равления, когда сигнал ОР образуется как сумма ошибки и инте- грала по времени от ошибки, т. е. ОР = К (E+M$Edt). (4.12) По очевидным соображениям такой закон управления называют пропорционально-интегральным, или ПИ-законом. Интегральный член будет заставлять ОР изменяться до тех пор, пока существует ошибка, а когда ошибка станет равной ну- лю (при SP = PV), ОР примет постоянное значение. Таким обра- зом, ПИ-регулятор в установившемся режиме будет обеспечивать нулевую ошибку без необходимости увеличения коэффициента усиления. В регуляторах, применяемых на практике, коэффициент М в выражении (4.12) заменяется на 1/7}: ОР = А'(Т+ (4.13) 1i где 7} — время (постоянная) интегрирования. Необходимость такой замены обусловлена чисто математическими соображени- ями. Дальнейшая модификация ci рукгуры системы управления при- ведена на рис. 4.29. Здесь дополнительно введена компонента про- изводной по времени, пропорциональная скорости изменения ошибки, в результате чего мы имеем Рис. 4.28. Пропорционально-интегральное управление
198 Программируемые контроллеры 1 г dE ОР = K(E+—$Edt+Td—). (4.14) Нет ничего удивительного в том, что такой трехканальный регуля- тор называют ПИД-регулятором (т. е. пропорционально-инте- грально-дифференциальным). Множитель известен как время (постоянная) дифференцирования. Наличие канала дифференцирования выгодно по двум причинам. Поскольку он реагирует на скорость изменения ошибки, то при рез- ком скачке уставки он будет давать на выходе «бросок» сигнала, как показано на рис. 4.29 (б). За счет дифференцирования также улучша- ется устойчивость системы и уменьшается перерегулирование. Пока что мы рассмотрели случай, когда выходной сигнал объ- екта должен был отслеживать уставку. Но замкнутый контур управ- ления полезно иметь тогда, когда объект подвержен внешним воз- мущениям, как показано на рис. 4.30. Например, в системе управ- ления уровнем таким возмущением может быть изменение выходного потока, в системе управления температурой — измене- ния температуры окружающей среды и нагреваемого материала, в системе управления расходом — изменение напора. Поскольку все Рис. 4.29. ПИД-регулятор: (а) структура регулятора; (б) эффект канала дифференцирования
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 199 Возмущение Рис. 4.30. Влияние возмущения подобные возмущения приводят к изменению сигнала PV, регуля- тор будет реагировать на это и стремиться так скорректировать уп- равляющий сигнал ОР, чтобы восстановить равенство PV = SP и тем самым устранить влияние возмущения. 4.7.2. Устойчивость и настройка контура В идеальном случае хотелось бы, чтобы сигнал PV был равен SP во все моменты времени. Но реальные объекты обладают конечным временем реакции и нелинейностями, поэтому идеальную реакцию получить невозможно. На рис. 4.31 приведены некоторые возмож- ные реакции на ступенчатое изменение SP (аналогичные кривые могут быть получены и при ступенчатом возмущении). На практике обычно удовлетворительной считается реакция, в известной степени подобная недодемпфированному процессу вида рис. 4.31 (г). Типичным стандартом, известным как «затухание в четверть амплитуды», является такая реакция, при которой каждое перерегулирование составляет 25% от предыдущего. Инженер имеет возможность влиять на вид реакции путем на- стройки коэффициента усиления К, постоянной интегрирования 7} и постоянной дифференцирования 7j. Эти параметры можно подобрать методом проб и ошибок (хорошей отправной точкой обычно являются значения К= 0.5, 7} = 20 с, 7j = 5 с), но можно также потратить время, чтобы решить ту же задачу путем математи- ческого анализа системы управления объектом (см., например, книгу автора Industrial Control Handbook). Требуемые параметры регулятора можно также определить экс- периментально (но при этом читатель должен отдавать себе отчет в том, что воздействия на объект могут оказаться очень серьезными, и поэтому нужно принять во внимание соображения безопасно- сти). Описанный ниже экспериментальный метод, известный как метод Зиглера—Никольса, должен обеспечить реакцию с затухани- ем в четверть амплитуды.
200 Программируемые контроллеры Рис. 4.31. Виды реакции на ступенчатый входной сигнал: (а) желаемая реакция; (б) передемпфирование; (в) критическое демпфирование; (г) недодемпфирование; (д) неустойчивость; (е) колебания с постоянной амплитудой Сначала регулятор настраивается как только пропорциональный (7] = оо, 7j = 0). При изменении коэффициента К вид переходной ха- рактеристики будет меняться от недодемпфированной (рис. 4.31 (г)) до расходящихся колебаний, соответствующих неустойчивой системе (рис. 4.31 (д)). Найдется такое критическое значение коэффициента Кс, при котором возникнут колебания с постоянной амплитудой (рис. 4.31 (в)). Необходимо измерить период этих колебаний Тс. Требуемые настройки регулятора тогда определяются следующим образом: ПИ-регулятор ПИД-регулятор А'=0.45Х'с, 7} = 0.8Тс; К= 0.6Кс, Т; = 0.5Тс, Td=0.\2Tc.
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 201 Эти значения следует рассматривать только как первое приближе- ние, которое затем можно уточнить, добиваясь более приемлемой реакции. Увеличение К или уменьшение 7} делает реакцию более быстрой, но вместе с тем ухудшает устойчивость. Если использует- ся канал дифференцирования, то, как показала практика, наилуч- шим является соотношение 7j = 7} /4. Другие методы настройки приведены в книге автора Industrial Control Handbook. 4.7.3. Замкнутая система управления с ПЛК Общий вид замкнутой системы управления, построенной на осно- ве ПЛК, приведен на рис. 4.32. Переменная объекта PV читается аналоговой входной платой, а выходной сигнал ОР формируется аналоговой выходной платой. Уставка SP задается оператором (с помощью графического терминала на рис. 4.32) или в виде некото- рой программной последовательности. ПИД-алгоритм управления реализуется программными средствами. Такую программу можно написать, используя четыре математические операции (+, —, х, / ), но при этом нужно проявлять осторожность. Суть в том, что для подпрограмм интегрирования и дифференцирования должно быть известно время прогона основной программы, и, кроме того, необ- ходимо предусмотреть средства защиты от насыщения исполни- тельного устройства, которое может наступить из-за накопления интегральной составляющей сигнала ОР. Для большинства, если не для всех ПЛК, способных поддержи- вать аналоговые входные и выходные платы, производитель в биб- Рис. 4.32. Замкнутая система управления с ПЛК
202 Программируемые контроллеры лиотеку программ включает функцию PID, реализующую П ИД-ал - горитм управления. В данном разделе мы рассмотрим, как работа- ет ПЛК GEM-80 в замкнутой системе управления. GEM-80 принимает значения сигналов извне с помощью адрес- ных инструкций AND, а выводит их на внешние устройства с помо- щью инструкций OUT, как показано на рис. 4.33 (а) (как и в разд. 4.4.5 и 4.5, это лишь упрощенное представление того, что происхо- дит в действительности). Адреса входов имеют вид Ал (например, А4), а адреса выходов — вид Вл (например, ВЗ). GEM-80 может так- же хранить числа в ячейках W (например, некоторое значение (value) может храниться по адресу W112). Сначала мы рассмотрим простой регулятор пропорционального действия, где Е = SP — PV. Учитывая, что OP = K(SP — PV), мы мо- жем выполнить все операции, использующие математические функции, работающие с целыми числами, как показано на рис. 4.33 (б). Однако здесь имеется тот недостаток, что выход будет изме- няться большими скачками. Например, при К = 4 скачки на выхо- де будут величиной 4 единицы. GEM-80 имеет много встроенных функций, работающих с ве- щественными числами. Одна из них — это линейная функция Y = АХ + В, имя которой LINCON-S11. Ее можно использовать только для умножения на целое число, положив В = 0. Выражая функцию I Адрес ----(AND). I Вход Значение Значение Выход Адрес (OUT)- Коэффициент ОР (AND)- (SUB)-----(MULTI)------(OUT) (AND)-----1 'AND) (SUB)----(LINCON)--(VALUE)----(OUT) S11 W200 Рис. 4.33. Упрощенное представление GEM-80 в системе управления: (а) аналоговые вход и выход, (б) ПИ-закон управления; (в) пропорциональное управление с использованием функции LINCON
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 203 вычитания в более компактной форме и объединяя ее с функцией LINCON, мы получим одно звено многоступенчатой схемы, изо- браженное на рис. 4.33 (в). Аргументы Л и В функции LINCON хра- нятся по адресам, определенным функцией VALUE. Можно реализовать полный блок ПИД-регулятора с именем PID- ABS-S34, простейший вид которого изображен на рис. 4.34. Адреса хранения параметров К, 7} и 7j указываются в блоке VALUE, следу- ющем после блока PIDABS. Как показано на рисунке, эти адреса на- чинаются с ячейки W220. Всего функция PIDABS требует использо- вания 15 ячеек памяти. Они предназначены для следующих целей: Код ошибки Задание К, Tj, Ограничения выхода Ограничения скорости Режим фиксации Режим сброса эти параметры могут быть изменены программистом или самой программой, чтобы, например, использовать их в раз- личных обстоятельствах задают максимальную скорость измене- ния выхода устанавливает постоянное значение выхода приводит значение выхода к нулю Все эти ячейки доступны для программы и могут быть использова- ны для создания сложных конфигураций системы управления. С функцией PIDABS тесно связана другая функция — PIDINC, которая используется, если регулятор управляет клапаном с элект- рическим приводом, как показано на рис. 4.35. В данном случае электродвигатель действует как интегратор, поэтому создаваемое им перемещение ^пер=1°рл <415> Если здесь используется обычный ПИД-регулятор, то замкнутая си- стема управления будет неустойчивой. Функция PIDINC является производной от PIDABS, и ее действие определяется выражением PV SP ОР (AND)---(SUB)----(PIDABS)---(VALUE)-----(OUT) S34 W220 Рис. 4.34. Реализация ПИД-регулятора в GEM-80
204 Программируемые контроллеры Клапан, управляемый двигателем Рис. 4.35. Необходимость пошагового (incremental) ПИД-управления d lr dE ОР = К— (Е + — JE dt + Td—). (4.16) dt I i u dt С учетом интегрирующих свойств электропривода это эквивалент- но действию обычного ПИД-регулятора. До сих пор мы предполагали, что система управления работает только в автоматическом режиме. Но часто требуется и ручной ре- жим работы с возможностью переключения в автоматический ре- жим, как показано на рис. 4.36. Здесь существует скрытая проблема. Когда выбирается ручной режим управления и при этом ПИД- регулятор продолжает работать, тогда в этот момент значение PV не обязательно будет равно SP, поэтому за счет интегральной состав- ляющей выходная переменная ПИД-регулятора будет либо нарас- тать до своего максимального значения, либо стремиться к нулю. Когда происходит возврат к автоматическому режиму, то PV будет некоторое время иметь широкий размах колебаний, пока ПИД-ре - гулятор не восстановит свои функции управления. Автоматический Ручной Рис. 4.36. Выбор режима работы (ручной/автоматический)
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 205 Все, что в данном случае необходимо, — это безударный переход, при котором в момент переключения из одного режима в другой вы- равниваются значения выходного сигнала регулятора. В GEM-80 это достигается с помощью трех звеньев многоступенчатой схемы, как показано на рис. 4.37. Требуемый режим работы, автоматический или ручной, выбирается переключателем, соединенным с дискретным входом А2.0, активизированным для автоматического режима. (Практическая рекомендация для проектировщика: при пропаже пи- тания переключателя должен происходить переход в ручной режим с сохранением последнего значения выходного сигнала регулятора.) Первое звено служит для выбора выхода от функции PIDABS (при автоматическом режиме) или от задатчика ручного управле- ния. Функция RAMP ограничивает скорость изменения сигнала при ручном управлении. Второе и третье звенья выполняют выравнивание сигналов. Ячейка W112 хранит значение выхода функции PIDABS (совместно SP — (ANDI А5 PV 1SUB)-----PIDABS- A6 S34 AUTOSW ACTUATOR —(OUT)— B7 -VALUE W100 А2.0 MANOUT AUTOSW —(AND) LINCON—VALUE—RAMP—VALUE—| /1 AB S11 W140 S33 W120 " ' A2.0 PIDABSOP AUT0.SW W112 A2.0 AUTOSW ACTUATOR | Л —(AND)-----l/| B7 A2.0 AUTOSW RAMPOP । ; —(AND)----l/I W132 r । A2.0 ACTUATOR AUT0SW —(AND)--- В7 A2.( PIDABSOP —(OUT)— W112 RAMPOP -(OUT)-- W132 Рис. 4.37. Безударный переход в GEM-80 Упра- вля- ющее звено Вы- рав- нива- ние при авто- мати- че- ском ре- жиме Вы- рав- нива- ние при руч- ном ре- жиме
206 Программируемые контроллеры с блоком, начинающимся с адреса W100), a W132 — значение выхо- да функции RAMP (в блоке, начинающемся с адреса W120). В автоматическом режиме звено 2 не действует, а звено 3 запи- сывает значение выхода В7 назад в ячейку W132. При переключе- нии из автоматического режима в ручной выход RAMP начнется с последнего значения, имевшего место в автоматическом режиме. Точно так же в ручном режиме звено 2 записывает значение вы- хода В7 в ячейку W112, где хранится значение выхода функции P1DABS, так что при переходе из ручного режима в автоматический выход функции PIDABS начнется с последнего значения, имевше- го место в ручном режиме. Звено 3 в ручном режиме не действует. Таким образом, безударный переход осуществляется в обоих на- правлениях. 4.8. Специализированные управляющие процессоры Разумеется, ПЛК — не единственное устройство, на основе которо- го можно реализовать замкнутую систему управления. Для этой це- ли могут также применяться обычные ПИД-регуляторы (даже в ви- де сменных модулей в стойке ПЛК), а многие производители в известной степени совмещают функции ПЛК, поставляя на рынок программируемые аналоговые регуляторы. Типичным представите- лем этой группы устройств является TCS Tactician, в котором с по- мощью метода графического программирования объединяются стандартные блоки обработки сигналов. «Программа» создается на экране с помощью мыши. На рис. 4.38 приведена схема системы регулирования температу- ры печи с газовой горелкой. Система включает три ПИД-регулятора, один из которых используется в контуре регулирования температу- ры, а два других, соответственно, в контурах регулирования расхода газа и воздуха. В системе поддерживается определенное соотноше- ние между потоками газа и воздуха, причем для увеличения степени нагрева ведущую (опережающую) роль играет подача воздуха, а для уменьшения степени нагрева, наоборот, подача газа (такой процесс называется управлением с опережением/отставанием). Приведенная структура буквально перерисована с экрана видеодисплея. Системы типа представленной на рис. 4.38 намного легче про- граммировать при использовании регуляторов наподобие Tactician, но в системах, требующих выполнения множества арифметических и последовательных операций, проще использовать ПЛК. Вопрос о том, какой структуре отдать предпочтение, в каждом конкретном случае оставляется на усмотрение инженера-проектировщика.
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 207 Рис. 4.38. Более сложная система: управление газовой горелкой 4.9. Штрихкоды Все товары, продаваемые в супермаркетах, снабжаются штрихко- дом, который несет информацию о стране, где произведен товар, о предприятии-производителе и собственно о товаре. На контроле эти штрихкоды считываются сканером, стоимость товаров автома- тически находится в памяти магазинного компьютера и включает- ся в счет покупателя. Это типичное применение технологии штрих- кодов, которая широко внедряется в промышленность и торговлю с целью отслеживания движения материальных ценностей и упра- вления их учетом и хранением с минимальным участием персона- ла. Например, шифры ISBN, используемые для идентификации книг, в настоящее время в библиотеках определяются считываю- щими устройствами и служат для контроля выдачи книг во времен- ное пользование по принятой в Великобритании схеме PLR (Public Lending Right). Структура штрихкода показана на рис. 4.39. Он состоит из серии штрихов и пробелов, используемых для кодирования алфавитно-
208 Программируемые контроллеры Символы для чтения человеком Полоса признака Рис. 4.39. Структура штрихкода цифровых символов в формате, доступном для машинного чтения. На каждом конце находится свободная зона, позволяющая считы- вающему устройству почувствовать начало и окончание штрихко- да. Необходимость этой зоны объясняется тем, что не все предста- вления штрихкода имеют одинаковую длину. Полосы признака добавляются в том случае, когда существует опасность, что непра- вильно настроенное считывающее устройство может не захватить все штрихи с закодированной информацией. В этом случае полоса признака даст широкий импульс, который считывающее устройст- во обнаружит и отменит результат чтения кода. Не существует единого универсального штрихкода, и в мире ис- пользуется много различных систем кодирования. Некоторые из наиболее распространенных приведены на рис. 4.40. В системе Code 39 на каждый символ отводится девять штриховых элементов, три из которых являются широкими. Эти девять элементов всегда состоят из пяти штрихов и четырех пробелов между ними. 1234567890 Mill Чередование 2 из 5 100864-216736 и UPC ABCDEF Code 39 Рис. 4.40. Распространенные штрихкоды 4014561780123 И ЕЛЯ
Анвлоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 209 Система EAN (сокращение от European Article Number) ведет свое происхождение от более ранней американской версии UPC, или Universal Product Code. В обеих этих системах символы кодиру- ются двумя штрихами и двумя пробелами, занимающими семь по- зиций. В этих системах могут быть представлены только цифровые данные. Для EAN и UPC характерен длинный поток данных, кото- рый может быть разбит на подмножества с помощью более широ- ких сдвоенных штрихов. В супермаркетах Великобритании для ко- дирования товаров применяется система EAN с тремя группами цифр, обозначающими страну (5 для Великобритании, 3 для Фран- ции и т. д.), фирму-производителя (например, 012427 для шотланд- ской фирмы Baxter, выпускающей пакетированные супы) и собст- венно продукцию (например, 020108 для продукта Royal Game Soup). Система EAN также используется для маркировки книжной продукции кодом ISBN. Система «чередование 2 из 5» используется также только для ко- дирования цифровых данных; символы в ней представляются пара- ми, один штрихами и один пробелами. На каждый символ отводит- ся пять позиций, две из которых являются широкими. Количество данных, которые могут содержаться в линейном штрихкоде, определяется его длиной. Если необходимо закодиро- вать большое количество данных, можно использовать двумерный штрихкод. Некоторые типы таких кодов приведены на рис. 4.41. С их помощью можно закодировать более 3 килобайт данных. Обыч- но на площади 50 х 50 мм можно разместить 1800 символов. Все эти коды снабжены специальными средствами обнаружения и коррек- ции ошибок. Существуют два метода кодирования данных в двух измерениях. Первый из них, называемый многорядным кодированием, по сути, основан на выстраивании обычных линейных кодов в несколько рядов. Наиболее распространенными являются PDF-417 (широко используемый в автомобильной промышленности) и Code 16К. PDF-417 может иметь от 3 до 90 рядов, a Code 16К — до 16 рядов. Во втором методе, матричном кодировании, используется мат- рица квадратов (например, система Data Matrix) или шестиуголь- ников (например, Maxicode) для кодирования информации и неко- торый способ позиционирования матрицы. На рис. 4.41 четко можно видеть окружности, используемые для этой цели в системе Maxicode. Многорядные коды могут считываться обычными сканирующи- ми системами, но необходима их тщательная настройка. Матрич- ные коды должны восприниматься как единое целое, они считыва-
210 Программируемые контроллеры Многорядные коды PDF417 in и । mu ii in n i mil ii Code16K Матричные коды Maxicode Data Matrix Code One Vericode Рис. 4.41. Примеры двумерных штрихкодов CP Code ются телевизионной камерой (по сути прибором с зарядовой свя- зью), а оцифрованное изображение анализируется компьютером. Это позволяет сделать результат считывания в значительной степе- ни независимым от необходимости сканирования; достаточно лишь иметь приемлемо высокий и равномерный уровень освеще- ния без ярких бликов и отражений. По этой причине, по-видимо- му, приборы с зарядовой связью получат применение также для чтения линейных штрихкодов. Все системы кодирования оснащены эффективными средствами самоконтроля. Структура штрихкода имеет определенный формат, легко доступный для чтения и контроля машиной (например, соот- ношение 3/9 в системе Code 39). Кроме того, последняя цифра кода обычно является контрольной и образуется подобно методу цикли- ческого избыточного кода, который рассматривается в разд. 5.2.7. В отличие от супермаркетов, в промышленности обычно ис- пользуются автоматические системы маркировки изделий штрих- кодом и считывающие устройства, также работающие в автомати- ческом режиме. Считывание производится путем сканирования
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 211 штрихкода лучом света и фиксации отражения. В качестве источ- ников света могут быть использованы светодиоды или маломощ- ные лазеры, создающие видимое или инфракрасное излучение. В промышленности предпочтительнее использовать инфракрасное излучение, так как в этом случае считывание можно производить сквозь слой масла или смазочного покрытия. Сканирование обыч- но осуществляется колеблющимся зеркалом. Отражение может быть направленным (как от зеркала) или рассе- янным (как от листа бумаги). Считывающие устройства работают ис- ключительно с рассеянным отражением. Систему считывания штрихкода можно представить в виде рис. 4.42. Луч света не должен пересекать штрихкод под углом 90°, как можно было бы предполо- жить, так как в этом случае отраженный луч мог бы «ослепить» при- емник. Обычно сканирование производится под углами от 60° до 80°. Штрихкод сканируется непрерывно, а не однократно, и резуль- тат признается правильным, если одна и та же информация была получена несколько раз подряд. Количество необходимых для это- го считываний определяется проектировщиком, но пять обычно считается достаточным. Физическое отношение между сканированием и штрихкодом влияет на то, сколько попыток считывания может быть предприня- то. Штрихкод может быть ориентирован вертикально (это называ- ется лестничной ориентацией) или горизонтально (это называется забором или частоколом). Луч света 60-80° Рассеянное отражение Фото-' детектор Направленной' уСилитеЛЬ Г””дёкодй- 1 Чтение •--рование—“ правильное -------* Данные в коде ASCII отражение Рис. 4.42. Принцип действия устройства для считывания штрихкода
212 Программируемые контроллеры Считывающее устройство, находящееся на определенном рас- стоянии от штрихкода, будет иметь фиксированную длину прохода при сканировании. На рис. 4.43 приведен пример, когда считываю- щее устройство с длиной прохода 20 см и временем сканирования 5 мс (200 проходов в секунду) используется для чтения штрихкода размером 16x8 см. Штрихкод перемещается в горизонтальном на- правлении со скоростью 65 см/с. При лестничной ориентации он будет оставаться в поле просмотра в течение 8/65 = 0.123 с, что по- зволит произвести 24 операции считывания (на каждую затрачива- ется 5 мс). При ориентации штрихкода в виде частокола он успеет пройти только 4 см, оставаясь полностью в поле просмотра, и ана- логичные вычисления показывают, что за это время считывание бу- дет произведено только 12 раз. Вероятность получения пяти (см. выше) одинаковых результатов при чтении штрихкода увеличива- ется с ростом числа просмотров, поэтому в данном примере лест- ничная ориентация является предпочтительной. Надежность системы считывания штрихкода оценивается по ча- стоте первого чтения (FRR — first read rate), показывающей, сколь- ко раз первый же проход дает правильный результат. FRR опреде- ляет, сколько должно быть получено одинаковых результатов, прежде чем считывание будет признано правильным. Типичным значением FRR считается 90%, при котором требуется от 3 до 5 идентичных результатов. При работе системы считывания можно Рис. 4.43. Оценка времени считывания штрихкода при различных его ориентациях
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 213 принять меньшее значение FRR, если увеличить требуемое количе- ство идентичных результатов. В производственных системах, где необходима идентификация изделий, устройства считывания штрихкода обычно управляются ПЛК. Например, в семействе ПЛК Allen Bradley считывающие уст- ройства могут быть непосредственно подключены к стойке ПЛК через соответствующую плату интерфейса. Здесь используется по- блочная передача чтения/записи (см. разд. 4.4.5) для настройки считывающего устройства, запуска процедуры чтения и получения информации, содержащейся в штрихкоде, которым маркировано изделие. Данный раздел основан на материале, предоставленном компанией Allen Bradley. 4.10. Быстродействующие счетчики В разд. 2.2 мы видели, что время прогона программы ограничивает ча- стоту подсчитываемых ПЛК импульсов значением около 10 Гц. Если требуется более высокое быстродействие или время прогона програм- мы является причиной недопустимой случайной ошибки, то можно использовать специальные платы быстродействующих счетчиков. На рис. 4.44 счетчик управляется шифратором импульсов, кото- рый, как показано, генерирует две последовательности сдвинутых относительно друг друга импульсов, позволяющих следить за на- правлением счета. Значение счетчика может быть загружено из ПЛК и в случае необходимости прочитано в обратном направле- нии. ПЛК может также загрузить в счетчик уставку, и плата послед- него определяет соотношение между уставкой и результатом под- счета. Эти выходные сигналы представляются в виде напряжения постоянного тока, чтобы минимизировать задержки (сигнал часто- той 50 Гц обладает неопределенностью 10—20 мс). 4.11. Интеллектуальные модули Большинство ПЛК могут быть укомплектованы разнообразными ин- теллектуальными модулями. Кроме описанных выше устройств счи- тывания штрихкода и быстродействующих счетчиков сюда относятся системы технического зрения (крайне полезные при контроле каче- ства), системы управления положением для станков с ЧПУ и роботов, а также преобразователи сигналов от термопар и термометров сопро- тивления РТ100. Все эти модули позволяют минимизировать затраты на написание основной программы. Имеются также модули сопро- цессоров, позволяющие описывать сложные математические опера-
214 Программируемые контроллеры Рис. 4.44. Интеллектуальный модуль: быстродействующий счетчик ции на языках высокого уровня, таких как BASIC или С, и затем свя- зывать эти фрагменты с основной программой ПЛК. 4.12. Особенности монтажа Аналоговые сигналы в системах управления, как правило, являют- ся низковольтными и поэтому подвержены влиянию электриче- ских помех. Во многих случаях один и тот же ПЛК может управлять мощными электроприводами с напряжением 415 В и потребляе- мым током 100 А и принимать сигналы от термопар величиной не- сколько милливольт. Поэтому следует принимать надлежащие ме- ры защиты от помех, создаваемых высоковольтными сигналами. Первой мерой предосторожности является осуществление пра- вильного заземления. Система с плохо реализованной топологией будет иметь общую цепь заземления, как показано на рис. 4.45, и ток нагрузки, потребляющей большую мощность, протекая по об- щей цепи с импедансом Ze, будет наводить ошибку (напряжение по- мехи) в маломощной цепи аналогового сигнала. Следует ясно пред- ставлять, что в системе существуют три различных вида заземления: 1. Надежное заземление (для дверей, корпусов приборов и т. д.). 2. Грубое заземление (для высоковольтных и сильноточных сигналов). 3. Чистое заземление (для низковольтных аналоговых сигналов).
Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули 215 Все заземления должны иметь одну и только одну общую точку (это означает, что все аналоговые сигналы должны иметь одну и ту же опорную точку). Для всех аналоговых сигналов необходим экранированный провод, причем экрану из фольги следует отдавать предпочтение перед оплеткой. Экран нельзя заземлять на обоих концах, т. к. любая разность потенциалов между двумя точками заземления приведет к тому, что по экрану будет протекать ток (см. рис. 4.46), индуцирующий помеху в сигнальной линии. Экран должен быть заземлен только в одной точке, в идеале — на приемной стороне. Если экранированный провод проходит через промежуточные распределительные коробки, необходимо сохранять целостность экрана и заключать его в рукав, чтобы исключить касание корпу- са распределительных коробок. По опыту автора, это почти все- гда требует личного участия, поскольку электрикам обычно ка- жется, что они вопреки письменным инструкциям должны заземлять экраны везде, где только возможно! Неправильное за- земление экранированных проводов может привести к очень серьезным проблемам. Рис. 4.46. Контур, образованный заземлением экрана в двух точках
216 Программируемые контроллеры Высоковольтные и низковольтные сигнальные линии должны быть основательно разнесены; большинство производителей ПЛК рекомендуют, чтобы между линией с напряжением 415 В и низко- вольтными линиями расстояние было по крайней мере 1 м, но на практике это бывает трудно осуществить. В любом случае разнесе- ние линий должно быть проведено еще до того, пока кто-то, не зна- комый с особенностями системы, не исхитрится проложить линию с напряжением 415 В в том же желобе, где и многожильный провод, по которому передаются сигналы от термопар. Автор обычно стара- ется использовать для низковольтных сигналов отдельные марки- рованные каналы, чтобы монтажники могли их легко распознать. Некоторые для той же цели применяют провода с разноцветной по- ливиниловой изоляцией. Идеальным решением было бы использовать отдельные корпу- са для высоковольтных и сильноточных цепей и для низковольтных схем, но это редко когда бывает экономически выгодно. Когда оба типа схем должны находиться в одном корпусе, то подводящие провода должны быть проложены отдельно, на разнесенных рас- стояниях, а соответствующие платы следует устанавливать как можно дальше друг от друга (см. рис. 4.47). Провода с маломощными Провода с сигналами и аналоговыми сигналами большой мощности Максимальное * разнесение * Стойка низкой мощности Стойка высокой мощности Рис. 4.47. Разнесение подводящих проводов
5. Распределенные системы | 5.1. Параллельная и последовательная передача данных Монтаж проводки в любой системе управления требует наиболь- ших затрат. Сюда относятся стоимость собственно кабелей, кре- пежных конструкций и кабельных желобов плюс затраты труда на прокладку кабелей и установку на концах разъемных соединений. Если в процессе сдачи системы в эксплуатацию обнаруживается, что необходимы линии для дополнительных сигналов, а резервные жилы отсутствуют, то потребуется прокладка дополнительного ка- беля с вытекающими отсюда последствиями (лишние материаль- ные затраты и задержка во времени). На рис. 5.1 изображены два ПЛК, между которыми происходит обмен данными. Здесь 8 сигналов передаются в одном направлении и 12 в другом (все в виде напряжения НОВ переменного тока), а также два 16-битовых числа (в виде напряжения 24 В постоянного тока). С учетом шин питания, нейтральной шины и обратного про- вода по постоянному току всего для связи между ПЛК требуется 56 линий — возможно, один 27-жильный и один 37-жильный кабели, заключенные в металлорукав, три 8-битовые цифровые выходные платы и столько же аналогичных входных плат (для обмена сигна- лами 110 В), две цифровые выходные платы и столько же аналогич- ных входных плат (для обмена сигналами 24 В). Необходимо затра- тить немало усилий для установки этих плат в корпусах на каждой стороне. Короче говоря, это не самый дешевый способ. Примеры, аналогичные приведенному на рис. 5.1, являются весьма типичными. На предприятии, где я работаю, имеются элек- тродуговые печи (каждая из них управляется ПЛК), дым из кото- рых удаляется вытяжными устройствами (каждое управляется от- дельным ПЛК). Для обмена информацией необходимы 2 ПЛК на каждую печь, с помощью которых задается требуемая скорость ра- боты вентиляторов, степень вытяжки и т. д., что характеризует ка- чество работы печи и обеспечивает ее взаимодействие с вытяжным устройством. В главе 1 было описано, как с помощью удаленных от ПЛК входных и выходных плат можно снизить затраты на кабельную проводку. В данной главе мы покажем, как можно применить ана- логичный подход для связи между ПЛК, компьютерами и микро- процессорными устройствами. Схема на рис. 5.1 иллюстрирует параллельную передачу данных, при которой последние пересылаются одновременно. Этот метод
218 Программируемые контроллеры Всего 56 жил Рис. 5.1. Параллельная передача данных широко используется (в случае низковольтных сигналов) для связи компьютеров с принтерами и для инструментальных средств с шинной организацией, одним из стандартов которой является ши- на IEEE-488, рассматриваемая в гл. 7. На рис. 5.2 единственная линия данных (не считая обратного провода) связывает передатчик и приемник, и по ней информация передается в виде последовательной строки битов. Поскольку ком- пьютеры, периферийные устройства, ПЛК и т. д. работают с парал- лельным кодом (что повышает скорость обработки информации), то на передающей стороне необходимо осуществлять преобразова- Ввод данных для передачи Вывод принятых данных Рис. 5.2. Последовательная передача данных
Распределенные системы 219 ние параллельного кода в последовательный, а на приемной сторо- не — наоборот. Наиболее просто это сделать, используя сдвиговые регистры, как показано на рис. 5.2. Например, на передающей сто- роне данные в такой регистр загружаются в параллельном коде, а затем направляются в линию связи последовательно по одному би- ту. Подобное преобразование, а также управляющие функции реа- лизуются специальными интегральными схемами, называемыми универсальными асинхронными приемопередатчиками (UART — universal asynchronous receivers-transmitters). Неудивительно, что та- кой метод получил название последовательной передачи данных. Преимущество последовательного метода передачи данных за- ключается в его дешевизне и гибкости. Для установления двусто- ронней связи необходим один-единственный, как правило четы- рехжильный (две пары) экранированный провод, хотя уровни передаваемых сигналов обычно малые, и расплатой за дешевизну является прокладка специального желоба для дополнительной за- щиты информации. После ввода в эксплуатацию системы последовательной переда- чи данных она не имеет никаких ограничений в отношении коли- чества передаваемой информации (хотя при очень большом объеме данных критическим фактором может быть время их передачи). К недостаткам последовательного метода передачи данных сле- дует отнести потерю скорости, подверженность помехам и слож- ность программирования. Совершенно понятно, что последова- тельная передача данных выполняется гораздо медленнее, чем параллельная (пропорционально количеству параллельных кана- лов). Однако это не столь серьезная проблема; даже в достаточно сложных системах с ПЛК можно добиться времени передачи дан- ных 0.5 с (а при использовании удаленных плат ввода/вывода и то- го меньше — около 30 мс). В сетях наподобие Ethernet время пере- дачи данных может быть намного больше, но это обычно не столь критично в смысле связи между человеком-оператором и объектом управления. При последовательной передаче данных сигналы обычно являют- ся низковольтными (порядка 10 В), и, следовательно, подвержены влиянию помех. Поэтому необходимо принимать все возможные ме- тоды защиты, включая экранирование, и методы обнаружения оши- бок и повторных сообщений о повреждении информации. Несмотря на наличие схем обнаружения и исправления оши- бок, систему последовательной передачи данных никогда не следу- ет рассматривать абсолютно защищенной, и в ней не должны ис- пользоваться функции наподобие аварийных остановок. Эти
220 Программируемые контроллеры Включение Запуск насоса удаленного насоса другим ПЛК Запуск насоса Дистанционный удаленным ПЛК запуск насоса Рис. 5.3. Последовательная связь между ПЛК функции должны выполняться исключительно аппаратными сред- ствами. К вопросу безопасности мы вернемся в гл. 8. И наконец, о воспринимаемости программы пользователем. Идеологическую основу принципа последовательной связи бывает трудно понять, когда какая-то неисправность происходит, напри- мер, в 3 часа ночи. Все, чем мы располагаем в этом случае, — это связью между двумя областями памяти в разных ПЛК, как показа- но на рис. 5.3. Если данная связь не подкрепляется надлежащей до- кументацией по поводу эксплуатации объекта управления, то это может привести персонал в большое замешательство. 5.2. Стандарты последовательной передачи данных 5.2.1. Введение Для нормального функционирования системы последовательной передачи данных необходимо обеспечить согласованную работу передатчика и приемника. Должно быть четко указано следующее: 1. Уровни сигналов (по напряжению). 2. Код передачи (определение того, что означают битовые ком- бинации и как формируется сообщение). 3. Скорость передачи (скорость, с которой посылается битовая комбинация). 4. Синхронизация. На рис. 5.2 на каждом конце линии связи показаны генераторы тактовых импульсов. Если частота их работы отличается даже незначительно (а такие отличия не- избежны), то приемник не будет согласован с передатчиком.
Распределенные системы 221 Необходимо обеспечить тот или иной способ синхронизации работы передатчика и приемника. 5. Протоколы. Не говоря уже о передаваемых данных, должен существовать некоторый метод обмена управляющими сиг- налами между передатчиком и приемником, типа «в данный момент я не могу принять сообщение». 6. Методы проверки на наличие ошибок и процедуры восста- новления («последнее сообщение не имеет смысла, пожалуй- ста, передайте его еще раз»). Приобретая оборудование у разных производителей, часто бывает трудно обеспечить его согласованную работу при последователь- ной передаче данных. Проблемы обычно возникают, если имеются различия в одном или нескольких из вышеупомянутых пунктов. 5.2.2. Синхронизация Самый простой метод синхронизации состоит в том, чтобы иметь один общий генератор тактовых импульсов для передатчика и при- емника, т. к. два, даже теоретически, никогда не могут быть согла- сованы. Этот метод известен под названием синхронной передачи. Большинству систем, однако, свойственно асинхронное взаи- модействие, при котором используются два отдельных генератора, как показано на рис. 5.4. Сообщение разбивается на символы (обычно длиной 5—8 бит), и два генератора синхронизируются в начале передачи каждого символа. Состоянию незанятости линии соответствует сигнал 1 (в сетях связи называемый «меткой»). Передача символа начинается с сиг- нала 0 (называемого паузой), за которым следуют биты данных, и обычно первым передается самый младший бит. Иногда после би- Следую- Рис. 5.4. Асинхронная передача символа
222 Программируемые контроллеры тов данных добавляется бит исправления ошибки (называемый контрольным битом четности). Более подробно об этом будет сказа- но в разд. 5.2.7. И наконец, перед тем как будет передан следующий символ, сигнал снова возвращается к метке состояния незанятости. Это состояние сигнала называется стоповым битом, и его ширина в зависимости от системы может быть равна длительности 1, 1.5 или 2 битов данных. Следующий символ может поступить в линию спустя случайное время после стопового бита. Генераторы тактовых им- пульсов передатчика и приемника синхронизируются в момент по- явления стартового бита (состояние 0) и остаются согласованными в течение порядка 10 битов, необходимых для передачи символа. Казалось бы, из-за влияния помехи переход метки в паузу при передаче данных может быть ошибочно воспринят как стартовый бит. В действительности через несколько символов канал связи ав- томатически вернется в режим синхронизации, как это показано на рис. 5.5. Универсальный асинхронный приемопередатчик, получив сигнал 0 вместо ожидаемого стопового бита, выдаст сообщение об ошибке кодирования. 5.2.3. Коды символов За многие годы были созданы различные виды кодирования симво- лов, но в настоящее время практически универсальным стандартом является код ASCII (American Stantard Code for Information Interchange — американский стандартный код для обмена инфор- мацией), известный также как ISO 646. Этот код представлен в табл. 5.1. Разновидностями данного кода являются алфавит CCITT № 5 и национальные версии наподобие £-symbol, используемой в Великобритании. ASCII — это 7-битовый код, дающий 128 различных комбина- ций, охватывающий полный набор буквенно-цифровых символов верхнего и нижнего регистров плюс знаки пунктуации и 32 управ- ляющих символа, к которым мы вернемся в разд. 5.2.6. 5.2.4. Скорость передачи Скорость передачи сигналов выражается в бодах, измеряемых числом дискретных переходов или событий в секунду. В большинстве систем последовательной передачи данных, которые мы будем рассматри- вать, имеются только два сигнальных состояния (0 и 1), поэтому 1 бод = 1 бит/с. Для связи ПЛК с инструментальными и измерительными устройствами характерна скорость передачи 1200 бод. Для связи ПЛК друг с другом или ПЛК с удаленными входными/выходными платами при наличии высококачественного кабеля могут использоваться ско-
H e L L О Пауза <----'---' <--' > 1~ - ---< <-------1 t --- 1 t——— -1 Передача О J О О 1 О О q 1 (0)1 100101011011001011011001011011111001000001 Стар- Дан- то- ные вый бит Сто- ло- вый бит Переход 00 в 11 за счет помехи Прием 0 10 0 10 *----------- Н О О 1C11J1100101011011001011011001011011111 Стартовый бит пропущен 0 0 1 0 0 0 0 0 1 Пропущены Сообщение об ошибке кадрирования Пропущены Пауза (возврат к синхро- низации) Рис. 5.5. Ошибки кадрирования и способность асинхронной передачи данных к самовосстановлению после повреждения информации (используются 7 битов данных и один стоповый бит, система кодирования ASCII, контроль четности отсутствует) Распределенные системы_____________________________223
224 Программируемые контроллеры роста передачи до 115 килобод. Это не следует понимать как способ- ность передавать по кабелю 115 000 битов данных за 1 с. На рис. 5.4 было показано, что разбиение данных на символы с добавлением стартовых/стоповых битов связано с определенными издержками, которые еще более возрастают, когда передача полного сообщения включает в себя также проверку на наличие ошибок. Таблица 5.1 Коды ASCII Управляющие символы Десятичный Шестнадца- теричный Символ Десятичный Шестнадца- теричный Символ 0 00 NUL 14 OF SO 1 01 SOH 15 OF SI 2 02 STX 16 10 DLE 3 03 ЕТХ 17 11 DC1 4 04 EOT 18 12 DC2 5 05 ENQ 19 13 DC3 6 06 АСК 20 14 DC4 7 07 BEL 21 15 NAK 8 08 BS 22 16 SYN 9 09 НТ 23 17 ETB 10 0А LF 24 18 CAN 11 ОВ VT 25 19 EM 12 ОС FF 26 1А SUB 13 0D CR 27 1В ESC Управляющие символы могут быть получены путем использования клавиши CONTROL и символа в правом столбце таблицы. Например, возврат на одну позицию (BS) можно осуществить с помощью комбинации клавиш Ctrl + Н. Печатаемые знаки Десятичный Шестнадца- Символ теричный Десятичный Шестнадца- теричный Символ 28 1C FS 38 26 & 29 1D GS 39 27 30 1Е RS 40 28 ( 31 1F US 41 29 ) 32 20 Пробел 42 2A * 33 21 I 43 2B + 34 22 w 44 2C / 35 23 # 45 2D - 36 24 $ 46 2E 37 25 % 47 2F /
Распределенные системы________________________________________________225 Таблица 5.1 (продолжение) Печатаемые знаки Десятичный Шестнадца- теричный Символ Десятичный Шестнадца- теричный Символ 48 30 0 88 58 X 49 31 1 89 59 Y 50 32 2 90 5А Z 51 33 3 91 5В [ 52 34 4 92 5С \ 53 35 5 93 5D ] 54 36 6 94 5Е 55 37 7 95 5F - 56 38 8 96 60 1 57 39 9 97 61 а 58 ЗА 98 62 b 59 ЗВ 1 99 63 с 60 ЗС < 100 64 d 61 3D — 101 65 е 62 ЗЕ > 102 66 f 63 3F ? 103 67 g 64 40 @ 104 68 h 65 41 А 105 69 i 66 42 В 106 6А j 67 43 С 107 6В к 68 44 D 108 6С I 69 45 Е 109 6D m 70 46 F 110 6Е П 71 47 G 111 6F 0 72 48 Н 112 70 p 73 49 1 113 71 q 74 4А J 114 72 r 75 4В К 115 73 s 76 4С L 116 74 t 77 4D М 117 75 u 78 4Е N 118 76 V 79 4F 0 119 77 w 80 50 Р 120 78 X 81 51 Q 121 79 У 82 52 R 122 7А z 83 53 S 123 7В { 84 54 Т 124 7С I 85 55 и 125 7D } 86 56 V 126 7Е 87 57 W 127 7F DEL
226 Программируемые контроллеры 5.2.5. Модуляция дискретных сигналов До сих пор мы считали, что при последовательной передаче данных цифровые сигналы имеют «сырой» вид, т. е. представляют собой ряд уровней напряжения, соответствующих определенной комби- нации битов. Такой способ называется прямой (немодулирован- ной) передачей. Дискретный сигнал занимает полосу частот от 0 Гц (сигнал по- стоянного тока, соответствующий сплошной последовательности нулей или единиц) до почти половины частоты передачи битов. Многие средства связи, такие как радиоканалы и телефонные сети, объективно имеют ограничения на передачу низкочастотных сиг- налов и поэтому не могут непосредственно работать с видеосигна- лами. По этой причине дискретные данные путем модуляции пре- образуются в колебания несущей частоты. Существуют три разных способа модуляции: амплитудная модуляция (AM), частотная мо- дуляция (ЧМ) и фазовая модуляция (ФМ). Все они проиллюстри- рованы на рис. 5.6. Одним из премуществ модуляции является то, что несколько независимых сигналов, преобразованных в колеба- ния различных несущих частот, могут быть переданы по одной и той же линии связи. В этом случае говорят, что модулированный дискретный сигнал занимает широкую полосу частот или передает- Частотная модуляция Фазовая модуляция) Дискретный сигнал _ (имеющий вид и видеосигнала) Амплитудная модуляция Рис. 5.6. Различные виды модуляции дискретных сигналов
228 Программируемые контроллеры 5.2.6. Стандарты и протоколы RS232E Для успешного осуществления связи должен существовать набор правил, в соответствии с которыми производится передача данных. Эти правила можно разделить на стандарты, которые устанавлива- ют уровни напряжений, соединение и управление взаимодействи- ем между DTE и DCE, и протоколы, определяющие содержание и контроль собственно сообщений. Многие из первых работ по передаче данных были выполнены в США компанией Beil Telephone, и их результат был оформлен Ас- социацией отраслей электронной промышленности (EIA) как «Стандарт взаимодействия между DTE и DCE, использующий по- следовательный обмен данными в виде двоичного кода». Этот стан- дарт известен как RS232, в настоящее время распространена его версия Е. Общемировые стандарты установлены организацией Comite Consultatif International Telephonique et Telegraphique (CCITT), яв- ляющейся частью Международного телеграфного союза ООН. CCITT публикует стандарты и рекомендации, которые для переда- чи данных имеют префиксы V или X. Для всех практических при- менений стандарт V24 идентичен RS232. Уровни сигналов, установленные стандартами RS232 и V24, со- ставляют от +6 В до +12 В на передающей стороне для паузы (ноль) и от —6 В до —12 В для метки (единица). На приемной стороне до- пускается уменьшение этих сигналов до +3 В и —3 В. Кроме того, устанавливаются также другие характеристики, такие как пропуск- ная способность линии связи и скорость нарастания фронта сигна- лов. Соединения выполняются при помощи 25-штырькового разъ- ема D-типа. На рис. 5.8 приведена схема основных соединений между DTE и DCE с пояснением функции каждого из них. Это только часть полной спецификации (представляющей собой доста- точно объемный документ, который трудно привести целиком). Существует много причин беспокойства по поводу стандарта RS232. Этот стандарт устанавливает правила соединения между DTE и DCE. Соединение ПЛК с принтером — это связь между дву- мя DTE. Теоретически «безмодемный кабель», который соединяет контакты 2 и 3 (служащие для передачи и приема данных), должен был бы выполнять свои функции, но обычно этого не происходит. Поэтому производители часто используют свои собственные и весьма оригинальные идеи для определения назначения контактов. Например, многие производители принтеров используют контакт 2

230 Программируемые контроллеры для приема данных и тем самым превращают принтер в DCE. Даже фирма IBM для соединений своих компьютеров семейства АТ в стандарте RS232 использует 9-штырьковый разъем D-типа (вместо обычного 25-штырькового). Фирма Acorn по причинам, известным только ей самой, в своих компьютерах ВВС применила 4-штырько- вый разъем типа DIN, и это было распространено также на другое оборудование. В связи с этим и использование управляющих сигналов имеет достаточно произвольную интерпретацию. Поэтому нет ничего не- обычного в том, что устройство, совместимое со стандартом RS232, может иметь всего два соединения (соответствующие контактам 2 и 7 в DTE на рис. 5.8). Такое устройство может вообще не иметь ни- какого контроля за потоком данных. Таким образом, «совместимость с RS232» почти всегда подразу- мевает наличие коммутационного бокса или анализатора состоя- ния линии (оба этих устройства принципиально необходимы в слу- чае последовательной связи) и набора гнезд и разъемов D-типа. К этой проблеме мы вернемся в разд. 5.2.8. RS422uRS423 Стандарт RS232 был разработан для связи между DTE и DCE не- большой протяженности, обычно в пределах одной и той же комна- ты. Если использовать RS232 для высокоскоростной передачи дан- ных на большие расстояния (более нескольких метров), то здесь будут возникать проблемы. Ассоциация отраслей электронной промышленности (EIA), признавая ограниченные возможности RS232 для связи между DTE и DCE, разработала и выпустила два других стандарта, проиллюст- рированные на рис. 5.9. Одной из основных проблем, связанных с RS232, является отсчет всех сигналов относительно «подвешенной земли» (контакт 7 на рис. 5.8), как показано на рис. 5.9 (а). В RS423 и RS422 (рис. 5.9 (6) и (<?)) применяются дифференциальные при- емники, позволяющие обойтись без общего заземления и скомпен- сировать влияние помех. В передатчике номинальные значения напряжений установле- ны в виде ±6 В, а смысл сигнала определяется его относительной полярностью. Для метки (единица) контакт А имеет отрицатель- ный потенциал относительно В, а для паузы — наоборот. В RS423 используются передатчик с несимметричным выходом и приемник с дифференциальным входом, что позволяет в случае применения передатчика, работающего в стандарте RS232, обеспе- чить разность потенциалов земли, не превышающую 4 В. В RS422
Распределенные системы 231 Рис. 5.9. Стандарты передачи данных: (a) RS232; (б) RS423; (в) RS422 как передатчик, так и приемник являются дифференциальными. Механические детали (37-штырьковый разъем) определяются стандартом RS449. Токовая петля 20 мА Неофициальным ранним «стандартом» является токовая петля 20 мА. Его происхождение связано с распространенными прежде электро- механическими телетайпами, но до сих пор этот стандарт еще можно встретить во многих приложениях. Стандарт включал в себя ключ, управляемый данными в передатчике, источник тока и датчик тока на приемной стороне. Наличие тока в цепи соответствует метке (едини- ца), а отсутствие — паузе (ноль). Токовая петля, изолированная от земли, обеспечивает невос- приимчивость к помехам и игнорирование различий в потенциалах земли на обоих концах петли. Это основная причина, по которой продолжается ее практическое использование. К сожалению, не существует общепринятых стандартов для уп- равления токовой петлей, и даже отсутствует соглашение о том, на каком конце петли должен находиться источник тока. Схема, изо- браженная на рис. 5.10 (о), известна под названием «активная пе- редача/пассивный прием», а схема на рис. 5.10 (б) — под названи-
232 Программируемые контроллеры Рис. 5.10. Два способа передачи данных по токовой петле 20 мА: (а) активный передатчик, пассивный приемник; (б) пассивный передатчик, активный приемник ем «пассивная передача/активный прием». Ограниченная связь может иметь место между пассивным передатчиком и пассивным приемником. Протоколы сообщений Описанные выше стандарты имеют отношение к «механике» передачи данных, а содержание сообщения определяется используемым прото- колом. Кроме определения формы сообщения (т. е. какая группа битов образует символы и какие группы символов образуют сообщение) про- токол должен устанавливать, как инициируется и завершается связь и какие необходимо предпринять действия, если связь прерывается во время передачи сообщения. Протокол также должен определять, как обнаруживаются ошибки и какие за этим следуют действия. По существу получили распространение три типа протоколов, как показано на рис. 5.11. Знак-ориентированные протоколы (рис. 5.11 (о)) для форматирования сообщения используют управляющие символы из набора ASCII (см. табл. 5.1). В некоторой степени боль- шинство таких протоколов основаны на стандарте BISYNC корпо- рации IBM. Бит-ориентированные протоколы, такие как SDLC корпорации IBM и HDLC и CCITT Х25 Международной Организации по стан- дартизации, построены по схеме, приведенной на рис. 5.11 (б). На- чало и конец сообщения определяются флажками признака, при- чем флажку конца предшествует контроль на наличие ошибок. Последним типом протоколов является протокол с подсчетом байтов. Начало сообщения отмечается флажком, за которым следует подсчет, показывающий общее количество символов в сообщении. Приемник подсчитывает символы в сообщении и после проверки на наличие ошибок подтверждает получение. Из протоколов этого типа наибольшее распространение имеет DDCMP фирмы DEC.
Распределенные системы 233 SYN SYN SOH Заго- ловок STX Текст ЕТХ вес Начало Конец Фла- жок начала Адрес Управ- ление Данные Конт- роль ошибок Фла- жок конца Начало Конец б SYN SYN Под- счет Управ- ление CRC 1 Данные CRC 2 Начало Конец Рис. 5.11. Три типа протоколов, обычно используемых при передаче данных: (а) основной вид знак-ориентированного протокола; (б) основной вид бит-ориентированного протокола; (в) основной вид протокола с подсчетом байтов. Обратите внимание на двукратный контроль на наличие ошибок - один для заголовка (подсчет и управление) и один для данных Из перечисленных выше протоколов, по-видимому, наиболее распространенными являются знак-ориентированные протоколы — разновидности стандарта BISYNC (иногда обозначаемые аббревиа- турой BSC — Binary Synchronous Protocols, протоколы двоичной синхронной передачи данных). Они легко реализуемы и обладают тем преимуществом, что позволяют с обычного терминала просле- живать прохождение сигналов по линиям связи. Здесь обычно используются следующие управляющие символы из набора ASCII: • Шестнадцатеричное 04 EOT (End of transmission — конец пе- редачи); этот символ часто используется как сигнал сброса для освобождения линии. • Шестнадцатеричное 16 SYN (Synchronizing character — син- хронизирующий символ); обеспечивает синхронизацию (т. е. начало передачи) и иногда используется как заполняющий символ. • Шестнадцатеричное 05 ENQ (Enquiry — запрос); используется для запроса линии в многоабонентской системе (см. разд. 5.3.4). • Шестнадцатеричное 02 STX (Start of Text — начало текста); вслед за этим символом идет собственно сообщение.
234 Программируемые контроллеры • Шестнадцатеричное 01 SOH (Start of header — начало заго- ловка); за этим следует информация, содержащаяся в заго- ловке, например тип сообщения. • Шестнадцатеричное 17 ЕТВ (End of transmission block — ко- нец передачи блока); указывает, что данные, начинающиеся с STX или SOH, закончились. • Шестнадцатеричное 03 ЕТХ (End of text — конец текста); ука- зывает,что данные, начинающиеся с STX или SOH, закончи- лись и закончена передача последовательности блоков дан- ных. Обычно после ЕТХ следует некоторая информация, необходимая для проверки на наличие ошибок; получив эту информацию, приемник посылает один из двух ответов: • Шестнадцатеричное 06 АСК (Acknowledgement — подтвер- ждение приема) — «Сообщение принято, ошибок нет и я го- тов к приему следующих данных». Используется также для подтверждения выбора линии в многоабонентской системе (см. ниже). Или: • Шестнадцатеричное 15 NAK (Negative acknowledgement — от- рицательное квитирование) — «Сообщение принято с ошиб- ками, пожалуйста, передайте повторно». Используется также для ответа «нет доступа» при выборе линии в многоабонент- ской системе. 5.2.7. Контроль ошибок Наложение шума на дискретный сигнал не обязательно приводит к искажению информации. На приемной стороне исходный сигнал может быть восстановлен, если шум не настолько интенсивен, что- бы превратить 1 в 0 и наоборот. Шум обычно имеет распределение спектральной плотности мощности, приведенное на рис. 5.12, с нулевым средним значением и «хвостами», простирающимися в обе стороны до бесконечности. Если уровни напряжения дискретного сигнала имеют значения + V и 0, то в области А шум будет превращать 0 в 1, а шум в области В — 1 в 0. Таким образом, вероятность ошибки равна сумме площадей А и В, деленной на общую площадь под кривой распределения. Эта вероятность зависит от отношения уровней сигнала и шума. Отношение сигнал/шум (SNR — signal to noise ratio) определяется как SNR _ Среднеквадратичное значение сигнала $ Среднеквадратичное значение шума Обычно можно достичь значения SNR = 20. Однако это не означает полной «отсечки» шума, и каким бы ни было значение SNR, вероят-
Распределенные системы 235 Спектральная плотность мощности Рис. 5.12. Спектральная плотность мощности шума. Шум в областях А и В будет приводить к искажениям дискретного сигнала напряжением V вольт между значениями 1 и О ность ошибки все же существует. Эту вероятность можно вычислить, используя статистические методы, и она имеет вид графика на рис. 5.13. Из этого графика видно, что при SNR = 20 вероятность ошибки будет равна 10-5. Казалось бы, это хорошо, но тем не менее при пере- даче информации, записанной на гибком диске емкостью 360 Кбайт (что эквивалентно 2.88 Мбит), какие-то 30 битов будут искажены. Отношение сигнал/шум Рис. 5.13. Связь между вероятностью ошибки и SNR
236 Программируемые контроллеры Весьма интересно то, что если сигнал будет намного слабее шу- ма (SNR < 1), то вероятность ошибки будет стремиться не к 1 (как можно было бы предположить), а к 0.5. Принимаемые данные при этом будут представлять собой поток из единиц и нулей, половина из которых в среднем имеет шанс быть правильными. Даже при очень больших значениях SNR нельзя гарантировать на 100 % уверенный прием сообщения. Всего один ошибочный бит может иметь тяжелые последствия — изменение знака числа или изменение команды «открыть» на «закрыть», поэтому всегда необ- ходима определенная проверка на наличие ошибок. Появление ошибок с вероятностью 1/105 предполагает, что на 99 999 правильных битов придется единственный ошибочный бит. Но это не совсем так. Каждый, кто пользуется телефоном, подтвер- дит, что помехи обычно имеют вид «щелчков» или «потрескиваний», создаваемых коммутацией индуктивных нагрузок близ линии связи. Это аналогично шуму, появляющемуся в каналах передачи данных. При разговоре по телефону щелчок длительностью 0.05 с не играет никакой роли, но при скорости передачи данных 1200 бод приведет к потере 60 битов информации. Таким образом, шум приводит к по- явлению кратковременных пакетов ошибок, разделенных периода- ми безошибочной передачи, и вероятность ошибок представляет со- бой среднюю частоту их появления за длительный период времени. Существуют два способа действий при наличии ошибок. Самый простой, используемый почти во всех промышленных системах, за- ключается в том, что при обнаружении ошибки приемное устрой- ство запрашивает повторение передачи. Этот метод известен под названием автоматический запрос повторной передачи или ARQ (automatic transmission on request). Для квитирования и контроля здесь используются упомянутые в разд. 5.2.6 символы АСК и NAK из набора ASCII. Второй способ основан на обнаружении и исправлении любых ошибок путем добавления в сообщение избыточных символов. Этот метод носит название опережающего контроля ошибок или FEC (forward error control). Английский язык обладает значитель- ной избыточностью (что позволяет обмениваться речевыми сооб- щениями в трудных условиях). Если мы имеем предложение: Tod?? t?e w?a??er ?s su??y, в котором 40 % ошибок, и знаем, что речь идет о погоде, то нетруд- но заполнить пропущенные позиции символами, чтобы получить «Today the weather is sunny».
Распределенные системы 237 Метод FEC необходим при радиосвязи через спутники, а также при передаче страниц в телетексте (в последнем случае использует- ся так называемый код Хемминга). Это существенно увеличивает длину сообщения и поэтому не столь широко используется в про- мышленных сетях. Простейшим способом обнаружения ошибки является исполь- зование контрольного бита четности. Это дополнительный бит, с помощью которого гарантируется, что количество битов в одном символе или байте всегда нечетное, как показано на рис. 5.14 (а). Это называется проверкой на нечетность; можно осуществить так- же проверку на четность (контрольный бит добавляется, чтобы сде- лать количество битов в каждом символе четным), но проверка на нечетность используется гораздо чаще. В коде ASCII символ содер- жит 7 битов, поэтому добавление бита четности увеличивает длину до 8 битов. Для 8-битового символа контроль четности легко осуществляет- ся с помощью вентилей «исключающее ИЛИ», как показано на рис. 5.14 (6). Существуют специальные интегратьные схемы для опреде- ления четности, такие как ТТЛ-схема 74180 и КМОП-схема 4531. Контроль по четности (или, используя его полное название, по- разрядный контроль четности) может обнаружить один (или 3, 5, 7) ошибочный бит, но будет нарушен при четном количестве (2, 4, 6) ошибочных битов. 11 |о|111 |o|l |o|l | Данные Бит a четности Рис. 5.14. Контроль ошибок с помощью бита четности: (а) бит четности делает количество битов в слове нечетным; (б) схема определения четности для 8-битового слова с использованием вентилей «исключающее ИЛИ» (XOR)
238 Программируемые контроллеры Дополнительной защиты можно добиться путем разбиения сооб- щения на блоки, каждый символ которых защищен битом четности, а каждый блок завершается контрольным символом блока (ВСС — block check character), содержащим один бит четности для каждого столбца, как показано на рис. 5.15. Для столбцов обычно использует- ся проверка на четность. Этот прием известен как продольный кон- троль четности. Каждый символ ВСС имеет свой собственный бит проверки на нечетность, значение которого определяется по симво- лу ВСС, а не по контрольным битам четности в сообщении. Началь- ные управляющие символы STX или SOH исключаются из вычисле- ний по ВСС, однако завершающие ЕТВ или ЕТХ учитываются. С помощью ВСС можно обнаружить все нечетные количества ошибок и их многобитовые комбинации. Однако этот метод не да- ет результата в случае четного количества ошибок, расположенных симметрично внутри блока. STX р DO Р D1 Р D2 Р D3 Р D4 Р ЕТХ Р ВСС Р Строка Рис. 5.15. Использование контрольного символа блока для проверки на наличие ошибок
Распределенные системы 239 Самый эффективный метод обнаружения ошибок основан на использовании циклического избыточного кода (или CRC — cyclic redundancy code). Как и в методе ВСС, сообщение здесь также раз- бивается на блоки. После этого каждый блок обрабатывается как большое двоичное число, которое делится на заранее установлен- ное число. Остаток от деления, называемый собственно CRC, от- правляется вслед за сообщением в виде 16-битового числа (два сим- вола по 8 битов). Точно такие же операции производятся на приемной стороне, и ошибки выявляются по различиям в CRC. Вычисление CRC производится с помощью сдвигового регистра и вентилей «исключающее ИЛИ»; типичный пример такой схемы приведен на рис. 5.16. Аналогичная схема, используемая в линиях связи GEM-80, поз- воляет определить: • все ошибки в одном разряде кода, • любое нечетное количество ошибок, • все одиночные и двойные ошибки в формате сообщения GEM, • любые два пакета ошибок из двух битов в формате сообще- ния GEM, • любой одиночный пакет ошибок из 16 или менее битов, • все пакеты ошибок, кроме одного из 32 768 размером точно 17 битов, • все пакеты ошибок, кроме одного из 65 536 размером более 17 битов. Использование блоков контроля ошибок с помощью CRC значи- тельно увеличивает вероятность обнаружения ошибок. Обычно удается повысить эту вероятность примерно в 105 раз, что оставля- ет необнаруженной 1 ошибку из общего количества 10'° при исход- ной вероятности 1/105. Обычно в системах с ARQ инициирующему устройству или про- цедуре на передающей стороне приемник посылает сигнал о под- тверждении приема или о наличии ошибки в сообщении. В первом случае (хороший прием) передатчик получает от приемника символ АСК, В случае отрицательного квитирования (либо приходит символ NAK, либо ответ вообще не поступил в заранее обусловленный срок) передатчик отправляет сообщение повторно. Чтобы не заблокиро- вать линию повторными передачами, количество этих передач обыч- но ограничивается (часто тремя или пятью), пока не будет признано наличие ошибки. Эта процедура проиллюстрирована на рис. 5.17.
Рис. 5.16. Проверка на наличие ошибок с помощью CRC-CCITT Программируемые
Распределенные системы 241 Передатчик Сообщение АСК Сообщение NAK Повторная передача АСК Сообщение NAK Повторная передача Нет ответа, повторная передача NAK Приемник Хороший прием Успешный прием после одного повтора Помеха в линии. После двух (или оговоренного числа) повторов поступает сигнал об ошибке Рис. 5.17. Повторные передачи в системе с ARQ 5.2.8. Двухточечная связь ПЛК часто используются для осуществления простой последова- тельной связи с различными устройствами. Типичными примерами являются получение информации от измерительного прибора или устройства, считывающего штрихкод, задание уставки управляюще- му устройству или распечатка отчета на принтере. В данном разделе мы рассмотрим, как это осуществляется с помощью типичного уст- ройства — модуля 177 I DA ASCII фирмы Allen Bradley, который об- менивается информацией с PLC-5 посредством инструкций BTW и BTR, описанных в разд. 4 4.5. ПЛК других производителей действу- ют аналогично (хотя и не полностью идентичным образом). Отме- тим, что приводимое ниже описание является сильно упрошенным и приводится только с целью пояснения принципа действия (пол- ное руководство занимает 150 страниц).
242 Программируемые контроллеры Двухточечные связи обычно являются достаточно простыми, и самое большее, что в них используется, это контроль по четности на наличие ошибок. Когда происходит чтение данных с какого-ли- бо устройства, то вполне возможно, что выходной порт этого уст- ройства был создан исключительно для связи с принтером, поэто- му будут использованы лишь несколько (если вообще какие-то) управляющих сигналов, представленных в схеме на рис. 5.8. Пер- вое, что надо сделать для чтения или записи данных, это опреде- лить следующее: а) способ подключения прибора или устройства; б) скорость двоичной передачи в бодах; в) формат данных (ASCII, количество битов, применение кон- троля по четности, число стоповых битов); г) способ использования управляющих сигналов; д) способ инициации передачи сообщения; е) вид сообщения. К счастью (правда, редко), модуль ASCII бывает снабжен штекер- ным разъемом и может работать как обычный DTE. Его рабочие параметры (скорость передачи в бодах и пр.) задаются с помощью данных, посылаемых с ПЛК посредством инструкции BTW. Действие модуля проиллюстрировано на рис. 5.18. Данные, ко- торыми модуль обменивается с внешними устройствами, буфери- руются. Общая емкость этих буферов равна 2 К байтов, а распреде- ление ее для входных и выходных данных задается как часть конфигурации BTW. I Рис. 5.18. Работа модуля ASCH с инструкциями поблочной передачи
Распределенные системы 243 Данные из внешнего мира поступают во входной буфер и пере- даются в блок памяти PLC-5 с помощью инструкции BTR. Во внешний мир данные записываются через выходной буфер с помо- щью инструкции BTW. Типичное входное сообщение может поступить от датчика тем- пературы в виде, приведенном на рис. 5.19. Нам необходимо знать, когда именно сообщение было получено. Оно будет введено от внешнего устройства во входной буфер, и ПЛК получит разреше- ние выполнить инструкцию BTR в следующих двух случаях: 1. Когда буфер заполнен (т. е. отведенный буферу размер в точ- ности совпадает с длиной сообщения) или 2. Если принят символ, который в конфигурации BTW опреде- лен как «признак конца». Обычно это символ возврата карет- ки <CR> или <ЕТХ> или даже символ, специально выделен- ный для конкретного приложения. На рис. 5.19 для этой цели могут быть использованы символы <С> или <CR>. После записи в память данные должны быть преобразованы в цифровую форму. Из табл. 5.1 видно, что для получения цифры из кода ASCII необходимо вычесть шестнадцатеричное 30 (деся- тичное 48). Это выполняется с помощью процедуры, изображен- ной на рис. 5 20 (с учетом соответствующей проверки диапазона чисел, чтобы воспрепятствовать попаданию в память ненужной информации). Запись данных осуществляется аналогично, за исключением то- го, что строка кода ASCII должна быть сформирована в ПЛК. Это требует разбиения числа на байты для каждого разряда, как показа- но на рис. 5.21, После этого данные посылаются в буфер с помощью инструкции BTW. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15161718 19 20 SP День День / Месяц Месяц Sp Ч ч Мин Мин Sp т т т с CR CR Например, 30/9 17:56 185'С Запрошенные данные Рис. 5.19. Типичная ASCII-строка от датчика (SP - пробел; С, CR - возврат каретки)
244 Программируемые контроллеры Проверка Данные диапазона срис.5.19 0<Л/С9 (вычитание десятичного 48) Рис. 5.20. Преобразование цифр из ASCII в двоичный код Целочисленное деление Рис. 5.21. Преобразование двоичного кода в символы ASCII
245 Распределенные системы 5.3. Вычислительные сети 5.3.1. Введение До сих пор мы рассматривали двухточечные связи. Для распреде- ленной системы управления необходим метод, с помощью которо- го можно было бы объединить несколько ПЛК или компьютеров, что позволит легко осуществлять связь между любыми компонен- тами системы. Чтобы выполнить эту задачу, нам потребуется установить топо- логию соединений, определить способ совместного использования общей сети, устраняющий конфликтные ситуации, связанные с ожиданием соединения, и разработать систему адресов, позволяю- щую обмениваться сообщениями между компонентами системы. Подобные системы известны как локальные вычислительные сети (LAN — local area network) или широкомасштабные вычислитель- ные сети (WAN — wide area network), в зависимости от размеров об- ласти охвата и количества станций. 5.3.2. Линии передачи В основе любой сети, как известно, лежат кабельные соединения, и если речь идет о высокоскоростной передаче сообщений, то пред- варительно нужно рассмотреть некоторые вопросы теории связи. Рассмотрим простую цепь, изображенную на рис. 5.22 (о). В мо- мент замыкания ключа источнику напряжения неизвестна величи- на нагрузки на другом конце линии. Поэтому начальный скачок то- ка i определяется не нагрузкой, а характеристиками кабеля (зависящими от индуктивности и емкости, приходящихся на еди- ницу длины). Характеристический импеданс линии обычно равен 75 Ом или 50 Ом для коаксиального кабеля и 120— 150 Ом для двух- жильной или экранированной витой пары. Таким образом, началь- ный скачок тока будет равен V/Z, где Z — характеристический им- педанс. Спустя некоторое время этот скачок тока достигает нагрузки R и создает скачок напряжения iR. Если R * Z, то скачок напряжения на нагрузке не будет равен V и произойдет отражение. Типичные случаи приведены на рис. 5.22 (б). Данный эффект характерен для всех кабелей и обычно не пред- ставляет интереса, т. к. отражения сохраняются только в течение короткого интервала времени. Однако если задержка распростра- нения тока по линии имеет тот же порядок, что и период, соответ- ствующий максимальной частоте передачи сигнала, то отражения могут вызвать определенные проблемы. Отсюда следует, что линия
246 Программируемые контроллеры V.---------1 I —- Время прохождения сигнала б по линии Воспринимается Z Воспринимается Z Рис. 5.22. Линия передачи и характеристический импеданс: (а) линия передачи; (б) влияние согласующего резистора; (в) эффект ветвления передачи должна заканчиваться сопротивлением, равным ее харак- теристическому импедансу. Как правило, устройства, подключае- мые к линии передачи, имеют высокий входной импеданс, что по- зволяет устанавливать их где угодно, используя согласующие резисторы на обоих концах линии. Побочный эффект состоит в том, что не допускается применение Т-образных коннекторов, или разветвителей (за исключением слу-
Распределенные системы 247 чаев, когда разветвление имеет небольшую длину). На рис. 5.22 (в) изображено Т-образное соединение. Для сигнала, приходящего сле- ва, два участка цепи оказываются соединенными параллельно, соз- давая кажущийся импеданс Z/2 и приводя к появлению отражений. 5.3.3. Топологии сетей Из предыдущего раздела должно быть ясно, что наиболее рацио- нальной структурой любой сети может быть только кольцевая (не требующая согласующих резисторов) или линейная (предполагаю- щая наличие согласующих резисторов на обоих концах). На рис. 5.23 изображена система с главным и подчиненными элементами, в которой общий «хозяин» желает принимать данные от подчиненных компонентов (или посылать им данные), но эти подчиненные компоненты никогда не могут общаться друг с дру- гом. Все подчиненные компоненты имеют свои адреса, позволяю- щие «хозяину» отдавать им команды типа «Станция 3, сообщите мне значение аналогового входа 4» или «Станция 14, ваша уставка равна 751.2». Такие системы часто используют стандарт RS422. В звездообразной сети, изображенной на рис. 5.24, «хозяин» также осуществляет двухточечную связь с отдельными станциями. Такая конфигурация обычно используется в компьютерных систе- мах высокого уровня. Управление связью осуществляет главная станция. Связь между подчиненными станциями возможна через главную станцию и при ее участии. На рис. 5.25 все станции объединены в кольцо. Здесь нет стан- ции-хозяина, и все станции могут общаться с любой из себе подоб- ных и имеют равные права доступа. Применительно к такой кон- фигурации часто используется термин «соединение равноправных узлов». В схемах на рис. 5.23 и 5.24 все управление сосредоточено в руках главной станции. В кольцеобразной сети должен быть преду- смотрен некоторый способ предотвращения конфликтов, когда две станции хотят одновременно использовать линию связи. Этот воп- рос мы обсудим в следующем разделе. Рис. 5.23. Сеть с главной и подчиненными станциями
248 Программируемые контроллеры Рис. 5.24. Звездообразная сеть Рис. 5.25. Объединение в сеть равноправных узлов (кольцо) Конфигурация, изображенная на рис. 5.26, по-видимому, явля- ется наиболее распространенным типом объединения ПЛК в сеть. Здесь имеется одна общая магистральная линия с согласующими резисторами и, как и в кольцеобразной сети, все станции равно- правны в смысле общения друг с другом. Согласующий резистор Рис. 5.26. Соединение равноправных узлов с единой магистральной линией и согласующими резисторами
Распределенные системы 249 5.3.4. Совместное использование сети Связь посредством соединения равноправных узлов позволяет многим станциям использовать одну и ту же сеть. Нет ничего не- обычного в том, что две станции захотят одновременно воспользо- ваться сетью для передачи сообщений. Если не предусмотрены ме- ры предосторожности, возникнет полный беспорядок. В связи с этим разработаны различные методы управления доступом в сеть. Одна из идей заключается в том, что для каждой станции уста- навливается определенный отрезок времени, в течение которого она может отправлять свои сообщения. Этот метод известен как мультиплексирование с разделением времени, или TDM (time divi- sion multiplexing). Хотя это и исключает конфликтные ситуации, но может оказаться неэффективным, т. к. каждая станция должна бу- дет ожидать выделенного ей отрезка времени, даже если ни одна другая станция не имеет сообщения для передачи. Несоответствие между частотами сообщений от разных станций в некоторой степе- ни можно устранить, выделив большие временные интервалы наи- более загруженной станции. Если в сети, куда входят пять станций, обозначенных буквами от А до Е, наибольшую нагрузку имеет А, то можно принять следующий порядок предоставления времени: ABACADAEAB и т. д. Иногда это называют статическим TDM. В схеме на рис. 5.27 используется специальный сегмент для со- общений в виде пустого пакета, непрерывно циркулирующего по кольцу. Если станция желает отправить свое сообщение, она ожи- дает, когда к ней подойдет пустой пакет, и помещает в него сооб- щение. Представим себе, что на рис. 5.27 станция А желает отпра- вить сообщение станции D. Она ожидает, когда подойдет пустой пакет, и затем направляет сообщение в сеть вместе с указанием ад- реса D. Это сообщение проходит мимо станций В и С, но игнори- рует их, потому что оно направлено не по их адресу. Станция D сверяет адрес и читает содержание сообщения (присоединяя к не- му маркер, обозначающий, что сообщение принято). Станции Е—Н игнорируют его, но пропускают дальше. Станция А получа- ет назад свое сообщение, видит подтверждение его приема и уда- ляет его из пакета, оставляя последний по-прежнему циркулиро- вать по кольцу. Аналогичная идея подразумевает передачу маркера, когда по се- ти циркулирует специальный маркер «разрешения на передачу со- общения». Станция имеет право передавать сообщение, только ес- ли она обладает этим маркером, который удаляется сразу после получения подтверждения о приеме сообщения.
250 Программируемые контроллеры Рис. 5.27. Пустой сегмент и передача маркера в сети И пустой пакет, и маркер требуют, чтобы был какой-то способ их установки в новое состояние, если сеть была повреждена поме- хой или передача сообщений прервана. Это обычно выполняется главной станцией, или станцией-монитором, однако в данном слу- чае ее роль несколько отличается от той, которая принадлежит ей в схемах на рис. 5.23 и 5.24. Циркуляция пустого пакета и передача маркера обычно реали- зуются в кольцеобразных сетях, хотя их можно использовать и в си- стеме с шинной организацией, если станции размещены в виде ло- гического кольца. В системах с шинной организацией обычно применяется метод, когда станция, желающая передать сообщение, прислушивается к тому, что происходит в сети. Если сеть занята, станция ожидает, а если свободна, то станция посылает свое сообщение (блокируя тем самым все другие станции, пока ее сообщение не завершится). Этот метод известен как многостанционный доступ с контролем несу- щей (CSMA — carrier sense multiple access). Однако могут возникать ситуации, когда две станции одновре-. менно начинают посылать свои сообщения, и появляется конфликт (и засорение сообщений). Подобную ситуацию легко обнаружить, тогда обе станции прекращают работу и в течение случайного отрез- ка времени ожидают следующей попытки. Отрезок времени выбран случайным именно для того, чтобы воспрепятствовать двум станци- ям снова вступить в конфликт друг с другом. Этот метод известен
Распределенные системы 251 как множественный доступ с контролем несущей и предотвращени- ем конфликтов (CSMA/CD — carrier sense multiple access with colli- sion detection). Существует принципиальное различие между методами TDM, пустого пакета и маркера передачи права использования сети (со- ставляющими одну группу) и методом CSMA. В первом случае не- которое количество времени тратится впустую, но каждой станции в определенный момент гарантирован доступ к сети. В случае CSMA время впустую практически не тратится, но теоретически станция не застрахована от повторных конфликтов и вообще может никогда не получить доступа к сети. Поучительной аналогией, за которую автор признателен Ал- лану Роуорту их фирмы Siemens, является управление дорожным движением. TDM и маркер права использования сети подобны светофору, a CSMA - объездной дороге. При высокой интенсив- ности движения наилучшим решением является использование светофоров: каждый имеет одинаковые права двигаться дальше или ожидать разрешающего сигнала. Объезд может создать на дороге пробку, если движение напряженное и в одном направле- нии неравномерное. Использование светофоров, однако, при наличии объездных путей позволяет поддерживать равномер- ность движения; нет ничего более раздражающего, чем быть ос- тановленным на красный свет и не иметь иного выбора как по- вернуть обратно. 5.3.5. Иерархия связи Прежде наблюдалась тенденция создавать системы управления на базе одного большого компьютера или ПЛК. Появление дешевых ПЛК с хорошими средствами коммуникации привело к созданию иерархии машин с разделением между ними основных функций. Это обобщенно представлено на рис. 5.28 (а), где иерархия разбита на четыре уровня. Уровень 0 соответствует реальному объекту вместе с физически- ми устройствами, которые соединяются со следующим уровнем на- прямую или с помощью каналов последовательной передачи дан- ных стандартов RS232/422. Уровень 1 — это тот уровень, которому посвящена большая часть данной книги; сюда относятся ПЛК и малые компьютеры, непосредственно управляющие работой объекта. Уровень 2 - это мини-компьютеры наподобие VAX фирмы DEC, действующие как супервизоры по отношению к множеству объектов управления.
252 Программируемые контроллеры а Локальная сеть (типа Ethernet) Шлюз Уровень 3 (универсальные ЭВМ) Частные сети Уровень 2 (машины-диспетчеры) См. разд. 5.5.1 Уровень 1 ___(ПЛК)___ Уровень О (устройства, связанные с объектом) Сеть Ethernet Газовые Печь Энерго- б горелки система Рис. 5.28. Иерархии связи: (а) сеть в масштабе предприятия; (б) реальная система Уровень 3 — это большие универсальные компьютеры, такие как AS400 корпорации (ВМ. Обычно топология иерархии бывает не столь четко очерченной, как на рис. 5.28. Отдельные предприятия представляют ее по-раз- ному: некоторые нумеруют уровни сверху вниз, а некоторые игно- рируют уровень 0. Считается, что в иерархии все функции должны быть однозначно распределены между уровнями; на предприятии, где работает автор, за решение технических задач отвечают уровни 0 и 1, а за обработку информации — уровни 2 и 3. Распределенные системы имеют много преимуществ. Дерево уровней иерархии отличается простотой структуры и, как следст- вие, удобством проектирования, обслуживания и модификации. Надлежащим образом спроектированная система некоторое время будет отказоустойчивой и способной в определенных случа- ях справиться с неисправностями отдельных станций. В процессе написания книги автор участвовал в проектирова- нии новой электродуговой печи, в управлении которой были задей-
Распределенные системы 253 ствованы четыре ПЛК и компьютер VAX, что отражено на рис. 5.28 (б). Такое разбиение позволяет проектировать отдельные части и вводить их в эксплуатацию независимо друг от друга, а также обес- печивать безопасную работу объекта, если отказывает какой-либо ПЛК или нарушается определенная линия связи. Распределенная система может также повысить качество процесса управления, т. к. машины более низкого уровня снимают часть работы с машин более высокого уровня. На рис. 5.28 (б) ПЛК-посредник вы- дает основные команды контроллерам более низкого уровня, а сам за- нимается главным образом сбором информации для системы VAX. Машины низкого уровня непосредственно управляют работой объек- та и следят за возникновением аварийных ситуаций, передавая любую требуемую для оператора информацию через тот же ПЛК-посредник, который выводит ее на устройства визуального отображения. 5.4. Модель ISO/OSI Отвлекаясь от рис. 5.28, очевидно, что взаимосвязь между различ- ными машинами может создать гораздо больше проблем, чем при взаимодействии двух «В5232-совместимых устройств». Эти пробле- мы связаны с различными скоростями двоичной передачи, управ- лением потоком данных, маршрутизацией и протоколами передачи сообщений. В J977 г. Международная организация по стандартизации (ISO) приступила к созданию стандартов, позволяющих обеспечить со- вместимость аппаратных средств разных производителей. Этот проект известен под названием «взаимодействие открытых систем» (OSI — open systems interconnection), и изначально он предусматри- вал связь между уровнями 2 и 3 на рис. 5.28 (а). OSI определяет семь уровней взаимодействия, представленных на рис. 5.29. Каждый уровень на своей передающей стороне имеет непосредственную связь с соответствующим уровнем на приемной стороне. Начиная снизу, функции каждого уровня заключаются в следующем: 1. Физический уровень — осуществляет кодирование и физиче- скую передачу сообщений. Определяющим требованием яв- ляется скорость передачи. 2. Канальный уровень — осуществляет обнаружение и исправ- ление ошибок. Он обеспечивает сохранность сети и управля- ет доступом к ней с помощью CSMA/CD или маркера пере- дачи права сообщения.
254 Программируемые контроллеры Система 1 Прикладное программное обеспечение Уровни OSI Локальна управленческая- систем 7 Прикладной 5. Сеансовый 6. Пред- ставление 4. Транс- портный 6 Прикладное -►программное обеспечение Система 2 5 3 3. Сетевой 2. Канальный 1. Физи- ческий 2 Канал передачи Рис. 5.29. Модель OSI 3. Сетевой уровень — отвечает за переключение и связь между подсетями через всю среду OSI. 4. Транспортный уровень — обеспечивает обнаружение и ис- правление ошибок во всем сообщении с помощью ARQ, а также контролирует прохождение сообщения, чтобы предот- вратить перегрузку на приемной стороне. 5. Сеансовый уровень — выполняет функции установки, под- держания и прекращения связи, а также реализует методы восстановления соединения, если возникают проблемы с ли- нией связи. 6. Уровень представления — определяет способ представления информации в стандартном формате (который может потре- бовать преобразования данных из их исходного вида в при- кладной программе). 7. Прикладной уровень — связывает пользовательскую про- грамму с процессом коммуникации и определяет, какие функции для этого необходимы. В качестве грубой аналогии рассмотрим оформление заказа по те- лефону. Эта аналогия основана на материале, опубликованном компанией Siemens в брошюре «Communications Setting the Расе in Automation».
Распределенные системы 255 1. Физический уровень — поднимается телефонная трубка и происходит подключение к сети. Слышен гудок вызова. 2. Канальный уровень — линия исправна, помехи отсутствуют. 3. Сетевой уровень — набирается цифра 9 для выхода в город- скую сеть, а затем собственно номер абонента. На другом конце линии раздается звонок. 4. Транспортный уровень — на другом конце поднимается теле- фонная трубка. «Это компания «АСМЕ products», не могли бы вы немного подождать, я сейчас принимаю другой заказ... Теперь я вас слушаю. Извините, я не понял, повторите, по- жалуйста.» 5. Сеансовый уровень — «Это фирма «Aphrodite Glue Works», я хочу сделать заказ, номер САР4057, номер моего счета в бан- ке 7322D.» На случай, если связь внезапно прервется, прини- мающий записывает эти данные. 6. Уровень представления — «Я использую номер заказа из ка- талога от июня 1998 г.». 7. Прикладной уровень — «Мне нужно 100 экземпляров 302-706 и 50 экземпляров 209-417 с доставкой по почте». «Вас понял, 100 штук 302-706 и 50 штук 209-417 будут отправлены вам почтовым переводом сегодня днем. Общая стоимость 147.20 фунтов стерлингов, счет-фактура прилагается». На любом из этапов более низкие уровни могут взаимодействовать друг с другом. Например, при появлении неожиданных помех в ли- нии транспортный уровень может запросить повторения последне- го сообщения. Из сказанного следует, что уровни 1—4 имеют отношение собст- венно к коммуникации, а уровни 5—7 занимаются обработкой дан- ных конкретного приложения. 5.5. Собственнические системы 5.5.1. Введение Модель ISO/OSI используется главным образом на высоких уров- нях коммуникации, например для связи между мини-компьютера- ми. На уровне, которому посвящена данная книга, нас в первую очередь интересует связь между ПЛК. Для этого каждый произво- дитель стремится использовать свой собственный стандарт (это MOD-BUS фирмы Modicon, TIWAY компании Texas Instruments, ESP фирмы CEGELEC), позволяющий очень просто осуществлять
256 Программируемые контроллеры связь между выпускаемыми им аппаратными средствами. Если, на- пример, на рис. 5.28 ПЛК 1, 2 и 3 — производства Allen Bradley, 4 и 5 — GEM-80, а 6, 7 и 8 — Siemens, то связь между ПЛК одного про- изводителя не должна вызывать проблем. Для первых трех надо ис- пользовать стандарт Data Highway (магистраль данных), для GEM — стандарт CORONET фирмы CEGELEC, а для 6-й, 7-й и 8-й машин — SIN ЕС L1 или L2 компании Siemens. Каждый из этих способов связи является достаточно простым и, по личному опыту автора, весьма надежным. Однако все не так просто, когда требуется осу- ществить связь между различными системами. В этом разделе мы рассмотрим различные собственнические си- стемы и обсудим попытки, предпринимаемые для создания стан- дартов, которые позволили бы осуществлять связь между машина- ми разных производителей. Все они в принципе похожи и содержат полезные внутренние диагностические средства для обнаружения ошибок, которые, однако, не столь эффективны по сравнению с использованием для той же цели зеленых и красных светодиодов на платах ПЛК. По соображениям экономии места мы рассмотрим только, как осуществляют связь между своими ПЛК фирмы Allen Bradley, CEG- ELEC и Siemens. Хотя и другие производители ПЛК имеют свои собственные средства связи между отдельными машинами. Ниже приводятся некоторые компании и используемые ими стандарты: • АВВ • Gould / Modicon • General Electric • Mitsubishi • Square D • Texas Instruments Mastemet и Master Fieldbus Modbus GENET MelsecNET SYNET TIWAY Все они используют похожие идеи, но часто держат их в секрете; это проблема, к которой мы вернемся в разд. 5.5.6. 5.5.2. Магистраль данных Allen Bradley Связь между PLC-5 осуществляется на основе равноправных узлов (отсутствует главная станция) с передачей маркера по сетевой ма- гистрали, образованной коаксиальным кабелем; скорость передачи данных составляет 57.6 Кбод. Эта связь имеет фирменное наимено- вание Data Highway Plus (более ранняя версия под названием Data Highway применялась для связи между предшественниками PLC-5, машинами семейства PLC-2). Адреса станций устанавливаются на
Распределенные системы 257 каждом ПЛК с помощью пакета миниатюрных переключателей, впаиваемого в печатную плату, и в одной линии могут существовать до 64 станций с восьмеричными адресами от 0 до 77. Связь устанавливается с помощью одной инструкции MSG. Эта инструкция может определять чтение или запись блока данных, при этом программист должен указать: а) начальный адрес в местном абонентском пункте, б) начальный адрес в целевом абонентском пункте, в) длину передаваемого блока данных (количество слов), г) адрес станции на приемном конце линии. На рис. 5.30 (а) показано, что станция 5 выполняет инструкцию MSG (запись), посылая 6 слов, начинающихся с адреса N 10:40, в блок на станции 12, начинающийся с адреса N7:0. На рис. 5.30 (б) станция 7 выполняет инструкцию MSG (чтение), принимая 8 слов, начинающихся с адреса N10:0 на станции 56, и копируя их в свой блок, начинающийся с адреса N7:32. Станция с адресом 12 Станция с адресом 5 Управляющая сторона Станция с адресом 56 Станция с адресом 7 Управляющая сторона б Рис. 5.30. Инструкция MSG для связи между ПЛК Allen Bradley: (а) запись сообщения; (б) чтение сообщения
258 Прогоаммирурмые контроллеры Инструкция MSG в программе выглядит так, как показано на рис. 5.31 (а); передача данных инициируется каждый раз, когда зве- но схемы принимает значение «истина». Если передача завершена успешно, то бит DoNe принимает значение 1. Если появляется ка- кая-либо ошибка, то признак ошибки ERRor принимает значение 1. Наиболее распространенными ошибками являются не! справ- ность линии, несуществующий адрес на конце линии или отключе- ние ПЛК на передающей стороне. Причина неисправности указы- вается установкой соответствующего флажка в контрольном слове сообщения. Статистика связи (например, количество повторных попыток) хранится в процессоре для целей диагностики. Подробности инструкции MSG программист задает на экране подобно тому, как показано на рис. 5.31 (б). В большинстве случаев они самоочевидны, но бывают и исключения, когда имеет место ONLINE:Prog Edits.No Force:No l'ro.j. VAULTPLC RUNG 2:t14/114 Sts:44 Message Instruction Data Entry for Control Block: N7:10 F1) Read/Hrite: Write F2) PLC-5 Data Table Address: N52:O F3) Size in Elements: 10 F4) Local/Remote: Local F5) Remote Station: N/A F6) Link ID: N/A F7} Remote Link Type: N/A F8) Local Node Address 56 F9) Processor Type: PLC-5 F10) Destination Data Table Address: N26:0 Message Control Block Sizer 9 Hords Path:Top:Edit APPEND Cad.E Ins=Symbol Help B-BST C-CPT F-X1O L-OTL O-OTE T-TON U-OTU X-XIC Fl F2 F3 F4 F5 F6 F7 F8 F9 F1O Mode Addr Sise Lcl/rem Reasta link Id realinK lolNode preType Deatadr 6 Рис. 5.31. (а) Использование инструкции MSG; (б) детализация данных для инструкции MSG, как это выглядит на терминале для программирования
Распределенные системы 259 дистанционная связь, характеризуемая передачей данных через шлюз в другую магистраль, возможно, иного типа. Магистраль данных используется также терминалом для про- граммирования, поэтому программист имеет возможность подсо- единиться к ней где угодно и связаться с любой машиной, входя- щей в сеть. Фирма Allen Bradley придерживается иерархии, приведенной на рис. 5.28, и одним из ее продуктов является Pyramid Integrator, объ- единяющий в одной стойке PLC-5 (модель 5-250) и компьютер MicroVax, что позволяет осуществлять непосредственную связь (на общей плате) между таблицей данных ПЛК и программой Vax. 5.5.3. Stamet, ESP и CORONET фирмы GEM-80 GEM-80 использует два метода связи между машинами по последо- вательному каналу. Первый и наиболее простой метод, известный как Stamet, обеспечивает двухточечные коммуникации при нали- чии главной и подчиненных станций (наподобие рис. 5.23) с токо- вой петлей 20 мА и протоколом, известным как ESP (extended sim- ple protocol). Этот метод позволяет осуществлять связь только между главной и подчиненной станциями, но коммуникация меж- ду двумя подчиненными станциями возможна путем ретрансляции сообщения главной станцией. В разд. 2.3.4 была рассмотрена обладающая большой гибкостью таблица данных GEM. Для последовательной коммуникации ис- пользуются таблицы J, К и Р (таблица предварительной установки). Основной вид механизма связи приведен на рис. 5.32. Адреса в таблице К используются для хранения данных, подле- жащих последовательному выводу, а адреса в таблице J — для по- следовательно вводимых данных. Таблица Р используется для пред- варительной установки основных параметров связи: скорость пере- Управляющая станция Подчиненная станция Рис. 5.32. Таблицы J и К GEM-80
260 Программируемые контроллеры дачи в бодах, является ли данная машина главной или подчинен- ной (GEM использует терминологию «управляющая/подчинен- ная»), размер подлежащих передаче блоков, а также происходит ли передача данных автономно или инициируется программой. В автономном режиме пользователь лишен возможности на- блюдать, как осуществляется связь; например, данные, записанные в таблице К7 в главной машине, будут автоматически появляться в таблице J7 подчиненной машины в порте с адресом 0. В действи- тельности все происходит более гибко, чем можно было бы пред- ставить из этого простого описания; на практике гибкость разме- щения таблицы данных предоставляет больше возможностей для управления передачей данных и повышения ее скорости. Второй метод коммуникации, используемый GEM и предпола- гающий передачу между равноправными узлами в сети при отсутст- вии главной машины, носит название CORONET. При этом линия связи представляет собой экранированную витую пару, а передача осуществляется со скоростью 9.6 Кбод в стандарте RS485. Линия связи может иметь длину до 4 км, а основная конфигурация сети может включать до 32 станций. Таблицы J и К хранят выходные/входные данные, а таблица Р, как было замечено ранее, используется для предварительной уста- новки основных параметров связи для каждой станции. Связь не является автономной, и каждый сеанс должен инициироваться программой. Это осуществляется с помощью таблицы I, в которую записывается целевой адрес и бит отправки сообщения, позволяю- щий начать передачу. В таблице I предусмотрены также контроль- ные биты, сигнализирующие о том, что сообщение было получено. Оба вида коммуникации обеспечивают установку флажков в таблице F (от англ, fault — ошибка) и статистику связи, указываю- щую количество повторных передач и неудавшихся сообщений. 5.5.4. SINEC фирмы Siemens ПЛК фирмы Siemens могут быть объединены в четыре типа сетей под общим названием SINEC (Siemens Architecture for Automation and Engineering). Два из них, имеющие префикс L, являются сетями низкого уровня, а два с префиксом Н — сетями высокого уровня. SINECL1 является сетью с главной и подчиненными станциями (одна главная и до 30 подчиненных). Она организована на основе двойной витой пары и работает в стандарте RS485. Программист имеет возможность задавать последовательность опроса станций, включая повторные соединения, как было описано в разд. 5.3.4. Эта сеть в основном обеспечивает связь между главной и подчиненны-
Распределенные системы 261 ми станциями, хотя возможна также связь между отдельными под- чиненными станциями, когда «хозяин» выполняет роль ретрансля- тора; этот режим характерен для сети Stamet компании CEGELEC. SINECL2, известная под названием Fieldbus, основана на связи равноправных узлов с циркуляцией маркера передачи права сооб- щения. Она использует открытую архитектуру и является вероят- ным кандидатом для будущего стандарта (об этом будет сказано в разд. 5.5.6). SINELECH1 — это сеть с передачей немодулированных сигналов, работающая со скоростью передачи 10 Мбод на основе коаксиально- го кабеля с максимальной длиной 2.5 км. Она обеспечивает связь первых четырех уровней модели OSI, рассмотренных в разд. 5.4, и работает в стандарте IEEE 802.3, более известном под названием «толстая» Ethernet (см. также разд. 5.5.5). Сеть может поддерживать до 1024 станций с контролем доступа при помощи CSMA/CD. SINELECH2B — это широкополосная сеть, также работающая со скоростью 10 Мбод на основе коаксиального кабеля. Она ис- пользует стандарты IEE 802.4 и IEE 802.7, согласованные с МАР (см. разд. 5.5.6). Управление доступом, как того требует МАР, осу- ществляется с помощью маркера передачи права сообщения. По- мимо передачи данных, преобразованных в несущую частоту, ка- бель может выполнять и другие функции, например передавать телефонные сообщения и телепрограммы. 5.5.5. Ethernet Ethernet — это очень популярная локальная сеть с шинной тополо- гией, созданная компаниями DEC, Xerox и Intel и обычно исполь- зуемая для связи между компьютерами уровня 2 на рис. 5.28. Связь осуществляется при помощи коаксиального кабеля с волновым со- противлением 50 Ом; максимальная длина кабеля составляет 500 м (хотя она может быть увеличена за счет использования повторите- лей). Сеть может включать до 1024 станций, хотя на практике это число гораздо меньше. Передача сигналов осуществляется в рабо- чей полосе (без модуляции), а управление доступом производится с помощью CSMA/CD. Скорость передачи необработанных данных равна 10 Мбод, что обеспечивает при загрузке высокое быстродей- ствие — примерно 20—30% от теоретического максимума. После этого начинают возникать конфликтные ситуации. Станции подключаются к кабелю с помощью трансиверов, из- вестных как узлы присоединения к сети. Для этих трансиверов обычно используется «технология вампира», как показано на рис. 5.33 (а). Трансивер зажимается на кабеле, а острый штырек прока-
262 Программируемые контроллеры а Рис. 5.33. Соединения сети Ethernet: (а) соединитель-вампир; (б) монтаж кабелей сети Ethernet, обеспечивающий разделение соединений
Распределенные системы 263 Рис. 5.33 (продолжение), (в) винтовой разъем, при котором происходит разрыв линии лывает кабель и осуществляет контакт с центральной жилой. За- щитный колпак на штырьке препятствует его контакту с экраном. Этот прием позволяет добавлять или удалять трансиверы, не нару- шая конфигурацию сети. Я должен признать, что слабо разбираюсь в технологии вампира, но она тем не менее работает. Чтобы избе- жать отражений (об этом говорилось в разд. 5.3.2), между узлами должно выдерживаться минимальное расстояние 2.5 м, а чтобы об- легчить работу пользователя, кабель сети Ethernet имеет точки «от- ветвления», обозначенные на его защитной оболочке. Если в одном месте размещается большое количество узлов, то применяется раз- водка, изображенная на рис. 5.33 (б). Альтернативой трансиверам-вампирам является трансивер с разъемами для подключения коаксиального кабеля, как показано на рис. 5.33 (в). Такие трансиверы более надежны, но имеют один недостаток — при добавлении или удалении узла сеть разрывается. Трансиверы подключаются к локально установленному конт- роллеру, который управляет доступом к сети. Ethernet имеет три уровня (рис. 5 34), которые почти соответствуют функциям, вы- полняемым аналогичными уровнями в модели OSI, рассмотренной в разд. 5.4. По-видимому, Ethernet является наиболее удачной и широко ис- пользуемой локальной сетью. Сети Masterview компании АВВ и SINECH1 компании Siemens по сути не что иное, как Ethernet (хо- тя в своих материалах эти компании их так не характеризуют).
264 Программируемые контроллеры Рис. 5.34. Архитектура сети Ethernet 5.5.6. По пути к стандартизации Ранее мы уже говорили о трудностях, с которыми приходится стал- киваться при связи между различными аппаратными средствами. Если речь идет о связи между сетями ПЛК и компьютерами более высокого уровня, то проблем обычно не возникает. Производители ПЛК предают гласности свой формат сообщений и соответствую- щие протоколы, а для всех распространенных компьютеров и ПЛК уже написаны программы-интерфейсы (называемые «драйвера- ми»). Проблемы возникают, когда вы хотите установить связь меж- ду двумя машинами на уровне 1 на рис. 5.28. Во многих случаях единственным экономически оправданным решением является ре- ализация этой связи через компьютеры на более высоком уровне. Столкнувшись с этой проблемой, корпорация General Motors (GM) в США попыталась создать локальную сеть для использова- ния в промышленных условиях. Она получила название МАР (Manufacturing Automation Protocol). Тогда же появилась очень по- хожая учрежденческая сеть под названием TOP (Technical Office Protocol). С учетом покупательской способности GM она вовлекла в
Распределенные системы 265 себя ряд производителей средств автоматизации. Эта фирма, объ- явив себя приверженной модели OSI, создала сеть на основе широ- кополосной эстафетной передачи в соответствии со стандартом IEEE 802.4 (ср. с Ethernet, узкополосной передачей с CSMA/CD, вплоть до IEEE 802.3). Эстафетная магистраль была выбрана ввиду определенности ее характеристик, в частности, можно предсказать время реакции (см. обсуждение по поводу информационного обме- на в разд. 5.3.4). МАР (во время написания книги это версия 3.0), по-видимому, немного «сошла с рельсов». Для данной главы было выбрано пред- варительное название «Что случилось с МАР?». При сборе матери- алов для этой книги автору пришлось посетить основных произво- дителей ПЛК. Каждый имел возможность согласования своей аппаратуры с МАР, но для каждого (за исключением фирмы Siemens с ее сетью SINECH2B) казалось слишком дорогим созда- вать дополнительные периферийные устройства, которые потреби- тель легко мог бы «иметь в распоряжении, если бы действительно в этом нуждался». Здесь имеются несколько причин для отсутствия энтузиазма. Первая причина — это бюрократическая организация и изменяю- щиеся технические требования. Различными производителями не- зависимо друг от друга в ряде случаев был использован термин «дви- жущаяся цель». Второй причиной является стоимость; каналы связи МАР часто обходятся дороже, чем ПЛК, с которыми они соединя- ются. В данном случае было в ходу выражение «Создано большими организациями, и для больших организаций», которое выглядит вполне уместным. Третья причина — быстродействие; при исполь- зовании маркера передачи права сообщения МАР работает медлен- нее по сравнению с Ethernet, а модель OSI в действительности не ориентирована на критические по времени практические приложе - ния. Недетерминистский характер CSMA/CD, по-видимому, не вы- зывает никаких проблем вплоть до 30 % от теоретического максиму- ма загрузки сети, а реальные системы обычно работают с загрузкой ниже 10 %. Последнее и, возможно, самое решающее обстоятельст- во — это то, что МАР, скорее всего, предназначена для установки на уровне, где она является прямым конкурентом популярных локаль- ных сетей наподобие Ethernet, а не на уровне 1 рис. 5.28, где распо- лагаются собственнические системы. В середине 80-х годов МАР была на пути к тому, чтобы стать об- щим стандартом для всех промышленных систем управления. Сис- темы МАР были установлены как в Европе, так и в США, но до сих пор не получили какого-либо одобрения.
266 Программируемые контроллеры Типичной проблемой, с которой может столкнуться система с шинной организацией, является появление новых идей. Все рас- смотренные до сих пор системы коммуникации основаны на так называемой модели источник/пункт назначения (source /destina- tion). Если станция А имеет информацию для станции В, то сооб- щение посылается в следующем формате: Source А | Destination В | Data | CRC Если эту информацию нужно отправить нескольким станциям, то каждой должно быть подготовлено персональное сообщение. В случаях, когда различные установочные данные должны быть направлены множеству контроллеров, проблемы могут возник- нуть из-за сдвига по времени между сообщениями, хотя их в не- которой степени можно преодолеть путем использования груп- повых или глобальных адресов, как это имеет место в шине Profibus. Кроме того, если станция А хочет получить информацию от станции В (например, состояние взаимоблокировки), она должна выполнять чтение каждый раз, когда ей требуются данные. В последней разработке, называемой моделью поставщик/по- требитель, используется иной подход. Здесь данные размещаются в сети без указания, кому именно они адресованы. Формат сообще- ния теперь проще: Identifier | Data | CRC Все станции, использующие эти данные, принимают их одновре- менно, исключая необходимость множества сообщений. Это зна- чительно уменьшает количество сообщений и, следовательно, по- вышает быстродействие сети. Размещение данных в сети может быть осуществлено двумя способами. Первый и наиболее быстрый называется «уведомле- ние об изменении». При этом станция помещает информацию в сеть только тогда, когда ее новое значение отличается от старого. Станции, заинтересованные в этих данных, считают, что состоя- ние или значение остаются одними и теми же, пока не будет объ- явлено об их изменении. Это таит в себе определенную опас- ность, поэтому применяется регулярный предопределенный «тактовый импульс» (в принципе действующий так же, как пока- зано позже на рис. 5.37), говорящий о том, что станция является активной в сети.
Распределенные системы 267 Второй метод основан на обновлении данных во времени, при- чем каждый элемент данных имеет свое собственное, или глобаль- ное, время обновления. На момент написания книги единственной сетью с шинной ор- ганизацией типа поставщик/потребитель являлась Foundation Fieldbus, и фирма Rockwell (Allen Bradley) также переняла этот метод для своей сети ControlNet. Последняя интересна тем, что объединя- ет в одной системе удаленные входы/выходы и магистраль данных, а также позволяет совместно и равноправно использовать стойки ПЛК (и соответствующие данные) нескольким процессорам, а не одному, как это было ранее. В Европе также имеются попытки стан- дартизации. Совместно с ISA (Instrument Society of America) возни- кла идея разработки технических условий для дешевой (на основе витой пары) сети низкого уровня, названной Fieldbus. Полная спе- цификация должна была быть составлена к 1992 г., но (что неизбеж- но случается) появилась с задержкой из-за коммерческих и полити- ческих противоречий. Эта сеть уже эксплуатируется (одним из примеров является SIN ECL2 фирмы Siemens), а демонстрации того, как осуществляется связь между оборудованием разных производи- телей, можно увидеть на большинстве выставок по автоматизации и управлению. Возможно, не последнюю роль в этом сыграла разрек- ламированная МАР. Другими вероятными кандидатами на стандартизацию являют- ся созданная в Германии сеть Profibus (см. ниже), которая поддер- живается рядом компаний, и французская сеть FIP. Обе они схожи, но не полностью идентичны сети Fieldbus. 5.5.7. Profibus В настоящее время Profibus является одним из наиболее распро- страненных кандидатов на роль стандарта сетей с шинной органи- зацией, главным образом потому, что она принята фирмой Siemens и многими другими немецкими электротехническими компания- ми. Существуют три версии Profibus, разработанные для трех раз- личных сфер применения. Во всех них используется передача мар- кера, и все они основаны на модели ISO/OSL Первая версия, называемая Profibus DP (от Decentralized Periphery — децентрализованная периферия), является наиболее простой и раз- работана для связи микропроцессорных ведущих станций (напри- мер, ПЛК) с подчиненными устройствами, такими как датчики, приводы или исполнительные механизмы. Эта сеть охватывает толь- ко уровни 1 и 2 модели ISO/OSL Для передачи данных используется витая пара в стандарте RS485 или волоконно-оптический кабель.
268 Программируемые контроллеры Вторая версия, Profibus FMS (от Field Message Specification), раз- работана для более высокого уровня, содержащего множество веду- щих станций, и позволяет осуществлять коммуникацию между рав- ноправными узлами. Она включает уровни 1, 2 и 7 модели ISO/OSI, а для передачи данных используется стандарт RS485 или волокон- но-оптический кабель. Обе версии, DP и FMS, используют один и тот же стандарт пе- редачи данных и, следовательно, могут работать в одной обшей сети. Последняя из трех версий, Profibus РА (от Process Automation), разработана для эксплуатации в опасных условиях и позволяет формировать сеть высокой надежности. В версии РА используются несколько иные стандарты, чем в DP и FMS, но их объединение возможно с помощью сегментного соединительного устройства. Все эти сети являются системами с линейной магистральной шиной, т. е. прямым каналом связи. Скорость передачи может варь- ироваться от 9.6 Кбит/с (при длине линии до 1200 м) до 12 Мбит/с (при длине линии до 100 м). Канал связи представляет собой экра- нированную витую пару с согласующими резисторами на обоих концах шины. Каждый сегмент может содержать до 32 станций, ка- ждая со своим уникальным адресом. Сегменты могут быть связаны с помощью повторителей, что позволяет довести общее число стан- ций-адресатов до 127. Адреса назначаются глобальные или группо- вые, тем самым уменьшается количество сообщений и исключают- ся задержки, если одновременно изменяются данные, предназначенные для нескольких устройств. Подключение к главным или подчиненным станциям произво- дится с помощью стандартных 9-штырьковых разъемов типа D, как показано на рис. 5.35 (а). Согласующие резисторы либо помещают- ся внутри оконечных станций, либо находятся непосредственно в штекерных разъемах. Заметим, что согласующие резисторы нужда- ются в источнике питания; для этого обычно используется источ- ник, находящийся внутри станции. Производитель каждого устройства, входящего в состав сети, снабжает его дисковым файлом, называемым GSD, который явля- ется описанием поддерживаемого этим устройством информаци- онного обмена (например, эталонная скорость приема данных и команд управления, предусматриваемый ток нагрузки, режим ра- боты дисковода и т. д.); файл также содержит рабочие параметры, такие как поддерживаемые скорости передачи. Файл GSD имеет уникальный идентификационный номер (IN), присвоенный Орга- низацией пользователей Profibus. Файлы GSD для всех устройств,
Распределенные системы 269 Штырек 6, +5 В 390 Ом Штырек 3 (данные к приему/передаче), (+) 220 0м Штырек 8 (данные к приему/передаче), (-) 390 Ом Штырек 5 (земля для источника 5 В) Рис. 5.35. Сеть Profibus DP: (а) соединение сети с оконечным устройством. Устройства, не требующие согласования, используют только штырьки 3 и 8. Источнику питания 24 В постояного тока для внешних устройств часто отводятся штырьки 2 (+V) и 7 (-V). Штырек 1 предназначен для экрана; (б) распределение памяти между устройством и главной станцией
270 Программируемые контроллеры входящих в сеть, вместе с адресами станций образуют общее описа- ние сети, которое хранится в главной станции. Поскольку Profibus DP использует только уровни 1 и 2 модели ISO/OSI, обмен данными отображается в виде карты в заранее оп- ределенных областях памяти ведущего регулятора (обычно это ПЛК), как показано на рис. 5.35 (б). Например, чтобы изменить скорость привода, пользователь просто записывает новое значение скорости в отведенную область памяти, и эта информация пересы- лается без каких-либо дополнительных действий. Аналогичным образом данные и состояние подчиненной станции считываются из соответствующей области памяти. Таким образом, сеть Profibus DP совершенно прозрачна для пользователя. 5.6. Безопасность и практические соображения На рис. 5.36 представлена довольно распространенная ситуация, когда выключатель, запускающий и останавливающий двигатель, соединен с одним ПЛК, а команда на включение или выключение передается от другого ПЛК по последовательному каналу связи. Предположим, что двигатель запущен, а связь разорвана. Бит, соот- ветствующий состоянию «двигатель включен» и установленный в ПЛК В, при неисправности линии не будет сброшен и ПЛК А не сможет остановить двигатель. Если отдается команда на выключе- ние, то устройство управления связью в ПЛК А выдаст сигнал об ошибке, но для ПЛК В это не играет никакой роли, т. к. он не зна- ет, что ПЛК А пытается с ним связаться. В зависимости от конкрет- ного приложения, это может (или не может) вызвать определенные проблемы, но совершенно очевидно, что имеются ситуации, требу- ющие особого рассмотрения. Одно из решений заключается в том, чтобы определить, как долго позволено устройству, находящемуся на конце линии, оста- ваться неуправляемым (пусть это будет 2 с). В этом случае ПЛК, инициирующий связь, посылает сигнал на переключение, имею- щий небольшую длительность, например 1.5 с, как показано на рис. 5.37. В ПЛК В этот сигнал в прямом и дополнительном коде запускает два триггера TOF (задержка выключения), установлен- ных на значение 2 с. В случае исправной линии катушка активизи- руется и устройство может отработать соответствующий сигнал. Ес- ли линия неисправна, один TOF будет неакгивизирован (а другой останется активизированным), что приведет к сбросу сигнала «связь исправна» и приведению всех управляемых через эту связь устройств в безопасное состояние.
Распределенные системы 271 Рис. 5.36. Соображения безопасности при последовательной связи 11.5 с| I I Рис. 5.37. Способ проверки последовательной связи Сеть вносит дополнительные задержки в систему управления. Они, естественно, зависят от загрузки сети, но в собственнических сетях обычно составляют около 0.2—0.5 с и немного меньше в сетях Ethernet и МАР. Главным источником проблем являются помехи, которые обыч- но проявляют себя в виде увеличения времени задержки, вносимо- го сетью (что связано с большим количеством повторных передач). Благодаря наличию контроля и CRC, рассмотренных ранее, помехи редко приводят к возникновению проблем с эксплуатацией сети, а
272 Программируемые контроллеры если это и случается (в действительно серьезных ситуациях), эффект почти всегда заключается в том, что что-то не работает так, как тре- буется (а не в том, что что-то неожиданно начинает работать). По- мехи мешают прохождению сигналов по линии связи, но это обыч- но не является причиной появления сигналов о неисправности. Очевидными мерами защиты от влияния помех являются удале- ние линии связи от силовых кабелей и использование металлорука- вов или специальных экранов (главным образом, чтобы можно было отличить линии передачи сигналов низкого уровня). Экраны долж- ны быть сплошными и иметь заземление в одном и только одном ме- сте. Особо тщательно надо следить за тем, чтобы заземление экранов случайно не было произведено внутри распределительных коробок. Большинство собственнических сетей оснащены средствами контроля. На рис. 5.38 приведены диагностические средства, при- меняемые в Data Highway Plus фирмы Allen Bradley. Некоторые ошибки неизбежны во всех системах (см. рис. 5.13), и имеет смысл зафиксировать частоту их появления, когда сеть впервые сдается в эксплуатацию. Это позволит впоследствии осуществлять контроль и обращать внимание на любые ухудшения в работе сети, прежде чем начнут возникать проблемы. Волоконно-оптические линии связи, рассматриваемые в следую- щем разделе, практически полностью избавлены от влияния помех. 5.7. Волоконно-оптические линии связи Когда луч света выходит из одной среды в другую, он изменяет свое направление, как показано на рис. 5.39 (а). Это явление называется преломлением, и кажущаяся глубина воды представляется меньше, чем на самом деле. Если угол падения а больше некоторого критиче- ского угла 6С, то луч света не может пересечь поверхность, а претерпе- вает внутреннее отражение, как показано на рис. 5.39 (б). Это явление известно как полное внутреннее отражение, и можно показать, что sin 6С = 1/р, где ц — коэффициент преломления для двух материалов. На рис. 5.39 (в) показана стеклянная трубка небольшого диа- метра. Луч света, входящий в трубку под небольшим углом, будет отражаться от ее стенок с небольшими потерями за счет много- кратных внутренних отражений. На этом принципе, называемом волоконной оптикой, основана передача данных, свободная от влияния помех.
Распределенные системы 273 Who Active - Active Station Status DH« Messages Transmitted 27516 Messages Received 27519 Commands Generated 0 Requests Executed 27519 Reply Sent 27518 PLC 5/25 Series:A Revision:»] Operational Mode:Run Rack Errors 123456 Timeouts 104 100 92 153 118 0 CRC 0 0 0 О 0 о Block Transfers 0 0 О 0 0 0 Retries 4 4» 4 8 28 0 Ack Timeouts 0 Nsk No Men Rcvd 0 Claim Tokens 1 Nak No Men Sent 0 CRC Errors 0 Duplicate Packets 0 Token Timaouts 18 Retr i es О Adapter Timeouts 0 Undeliverable 0 158 Memory: 13824 Hords U Memory Unprotected 0 53 Data Files 4 4 Program Files No Forces F2 - Clear Counters F3 - Freeae/Un-Freese Counters Esc - Exit Diagnostic Display ONLINE:Run Edits:No Force:No Proj:VAULTPLC RUNG 2:114/115 Message Instruction Data Entry for Control Block: N7:10 Read/Nrlts: Write PLC-5 Data Table Address: N52:0 Sise in Elements: 10 Local/Remote: Local Renote Station: N/A Link ID: N/A Remote Link Type: N/A Local Node Address: 56 Processor Type: PLC-5 Destination Data Table Address: N28:0 Error Code: 131 Message Control Block Sise: 9 Hords Syn: Des: N7:10/8 = Fl F2 F3 F4 F5 Ignore if Timed-Out: 0 TO To be Retried: 0 NR Awaiting Execution: 0 EW Continuous: 0 CO Error: 1 ER Message Done: 0 DN Message Transmitting: 0 ST Message Enabled: 0 EN F7 F8 F9 F10 Next Prev neNaddr Help Рис. 5.38. Диагностика локальной сети с терминала для программирования: (а) диагностика станции сети; (б) страница диагностики для инструкции MSG. Станция назначения (56) отключена от линии, вследствие чего на передающей станции будет установлен бит ошибки Принцип весьма прост. Подлежащие передаче данные преобра- зуются в световые импульсы, которые направляются в оптический кабель и детектируются фотодатчиком на приемной стороне. Воло- конно-оптический кабель имеет очень широкую полосу пропуска- ния, поэтому модуляция сигнала или мультиплексирование позво- ляет в одном кабеле совмещать несколько высокоскоростных последовательных каналов передачи.
Программируемые контроллеры Рис. 5.39. Передача данных по волоконно-оптическому каналу: (а) преломление; (б) полное внутреннее отражение; (в) волоконно-оптический кабель; (г) волокно с плавным отражением Волоконно-оптические линии связи имеют много преиму- ществ. Передача сигналов полностью избавлена от проблем, свя- занных с шумами, перекрестными помехами и заземлением, и при этом обеспечивается полная изоляция между передатчиком и при- емником. Кроме того, передача сигналов совершенно защищена от грозовых разрядов и взрывов в атмосфере, т. к. при этом не может произойти обрыв кабеля. Существуют два основных типа волокна. Волокно с резким отра- жением действует так, как показано на рис. 5.39 (в), где отражения происходят на стенках волокна. Волокно с плавным отражением об- ладает неоднородной степенью отражения, заставляя луч света рас- пространяться по слегка искривленному пути, как показано на рис. 5.39 (г). Искривленный путь обеспечивает меньшие потери. При прохождении оптического сигнала по кабелю происходит его затухание; эти потери обычно измеряются в децибелах на кило- метр (типичное затухание составляет 5—20 дБ/км). Дополнитель- ные потери возникают на изгибах (потери обычно сильнее зависят от минимального радиуса изгиба, чем от механических поврежде- ний) и на соединениях на каждом конце кабеля. Типичная линия связи может работать на расстоянии 1—2 км без повторителей. Кабель, по которому передаются данные, обычно состоит из двух световодов (по одному для каждого направления) диаметром 200 мкм, свободно проложенных внутри защитной оболочки. Эта
Распределенные системы 275 оболочка уменьшает вероятность повреждения. На каждом конце оболочка должна быть удалена, а на отдельные волоконно-оптиче- ские жилы надеты защитные муфты, как показано на рис. 5.40. Наиболее часто используется разъем типа SMA (см. рис. 5.40). Он дает возможность подключения и отсоединения оптических ка- белей так, как это осуществляется в случае обычных электрических кабелей. Однако подсоединение этих разъемов к кабелю требует особой квалификации. Лучше всего применять способ, когда дости- гается наименьшее ослабление сигнала — использование эпоксид- а Рис. 5.40. (а) Волоконно-оптический кабель, используемый для связи между двумя ПЛК. (б) SMA-разъем для волоконно-оптического кабеля Обратите внимание, что на обеих фотографиях отчетливо видны минимальный радиус изгиба кабеля и его расщепление
276 Программируемые контроллеры ной смолы и тщательной шлифовки, но это требует больших затрат времени. Более простой (и чаше используемый) метод заключается в применении режущего инструмента и специального фрезерова- ния. В обоих случаях конечная процедура заключается в проверке с помощью микроскопа того, что луч света, посланный с другого конца линии, был зафиксирован на приемной стороне. Связь по волоконно-оптическому каналу имеет ряд недостатков. Во-первых, это строго двухточечное соединение. Топологии, ис- пользующие дерево связей, многоабонентские линии или магист- ральные шины, могут быть реализованы только за счет применения повторителей на каждом конце линии, что обходится недешево. Во-вторых, волоконно-оптические линии связи подвержены повреждениям. Такой кабель не только менее прочен, чем обычный электрический кабель, но и его не так легко (и быстро) заменить. В случае обычного коаксиального кабеля поврежденный отрезок можно быстро вырезать и вставить на его место с помощью разъ- емов новый участок практически без каких-либо последствий. Та- кие переходные соединения возможны и при использовании воло- конно-оптических линий связи, но они вносят очень большие по- тери и даже могут привести к полной потере связи. Правда, не было случаев, когда в результате повреждения кабеля потребовался бы новый его отрезок или повторитель. Волоконно-оптический кабель всегда должен быть хорошо защи- щен от возможных повреждений. Хотя из чисто технических сообра- жений ничто не препятствует прокладке волоконно-оптической ли- нии связи в одном канале вместе с кабелем под напряжением 33 кВ, это не рекомендуется, т. к. при прокладке в этом канале каких-то других силовых кабелей может произойти нарушение связи. И наконец, еще одно замечание по поводу безопасности. В большинстве волоконно-оптических линий связи используются источники света большой мощности (иногда такими источниками являются лазеры). Никогда не заглядывайте в кабель с одного кон- ца, «чтобы убедиться, работает ли передатчик». Если существует ка- кое-то сомнение по поводу целостности кабеля, отсоедините его с обоих концов (в случае многокабельного соединения убедитесь, что был выбран именно тот кабель, который вы хотите проверить) и для испытания используйте лампу накаливания малой мощности. Во многих случаях, однако, излучение источника, используемого для передачи данных, лежит вне видимого диапазона и его нельзя воспринять визуально. Но тем не менее это может представлять опасность для зрения.
6. Человекомашинный интерфейс 6.1. Введение До сих пор мы обсуждали проблемы связи ПЛК с объектом управ- ления и способы реализации управления. Но ПЛК также должен быть «связан» с человеком-оператором, принимая от него команды и отображая состояние объекта управления в легкодоступной и по- нятной форме. Такая связь известна под названием «человекома- шинный интерфейс», и ее можно представить в виде рис. 6.1. Исследование и проектирование такого интерфейса называется эргономикой и имеет целью гарантировать, чтобы оператор выпол- нял свою работу эффективно, в комфортных условиях и с миниму- мом ошибок. Наиболее важной проблемой, по-видимому, является оборудо- вание непосредственного рабочего места оператора и окружающая обстановка. Довольно трудно ожидать уверенных и безошибочных действий от оператора, у которого через час после начала работы начинает болеть голова или спина. На способность оператора со- средоточиться оказывают влияние такие факторы, как шум, пыль, запахи, вибрация, влажность, температура (и ее изменения), уров- ни освещения (особенно яркий свет). Важную роль играют и пси- хологические факторы, такие как стресс и степень необходимой концентрации внимания, поэтому время от времени на короткий период оператор должен иметь возможность отдохнуть и «рассла- биться». В директиве 90/270/ЕЕС и брошюре Комитета по охране здоровья и безопасности (HSE) Working with VDUs приводятся зако- Окружающая среда Рис. 6.1. Оператор как часть контура управления
278 Программируемые контроллеры нодательные нормы, касающиеся экранов устройств отображения информации. Очень важно размещение органов управления, дисплеев и кре- сел. Многие пульты управления, которые довелось видеть автору, были спроектированы для операторов ростом 1.5 м с диапазоном действия рук 3 м. На рис. 6.2 приведены удобные положения для операторов, работающих сидя и стоя, а на рис. 6.3 — границы, дос- тупные для восприятия человеком. Рис. 6.2. Удобные рабочие положения
Человекомашинный интерфейс 279 30° Движение головы 30° Верхняя граница Угол кругозора цвета Нормальный угол зрения Положение ступни 100 Поверх- ность стола min 660, max 760 (— Минимум —j 410 (— Оптимальное движение ноги и максимальная глубина основания пульта 620 Плохое восприяти цвета Плохое воспр>.ят.1е Мини- мальное расстоя- Регулируе- ние640 мое расстоя- ние 460-600 Нижняя гран <ща 75' 'Угол кругозора Уро- вень глаз 1250 Рис. 6.3. Сидящий оператор и границы его восприятия 6.2. Простые средства управления и индикаторы дискретного действия Большинство органов управления, которыми располагает опера- тор, это простые устройства дискретного действия, такие как пере- ключатели, кнопки, джойстики и индикаторные лампы. Все они должны располагаться так, чтобы быть легкодоступными и види- мыми оператору, как показано на рис. 6.2 и 6.3. Функции органов управления должны быть, насколько это возможно, интуитивно понятны. Очень полезно группировать органы управления по выполняемым функциям (с обозначением границ их расположения на пульте) или по производителям (на-
280 Программируемые контроллеры пример органы фирмы Siemens с фиксацией положения и орга- ны фирмы Telemecanique, требующие простого нажатия). Один из самых плохих пультов, который довелось видеть автору, имел 14 визуально идентичных джойстиков (но с разными осями пе- ремещения), расположенных в одну линию в верхней части пульта длиной 3 м (и это при одном операторе!). На атомных электростанциях в США операторы в подобном случае разбива- ют джойстики на группы, закрепляя на их рукоятках банки от напитков: банки от кока-колы для движения вдоль, банки от фанты для движения поперек, банки от пепси для подъема и опускания и т. д. Это действительно великолепная идея, если она к тому же реализована в изящном стиле! Расположение элементов на пульте должно подчиняться опре- деленной логике, особенно если оператор с регулярными интерва- лами времени изменяет характер работы (это только приветствует- ся, т. к. сохраняет интерес, не позволяет заскучать и способствует приобретению опыта). Например, на пультах, которые пришлось разрабатывать автору, кнопка аварийной остановки обычно распо- лагалась вверху справа, кнопка проверки ламп — внизу слева, а ава- рийное сигнальное устройство — вверху слева. Подобное располо- жение, конечно, не обязательно, но определенная логика в этом есть. Для операторов-правшей положение кнопки аварийной оста- новки в правой верхней части пульта является наиболее удобным и исключает ее непреднамеренное нажатие. Не менее важным является логика действия органов управле- ния. Так, для запуска какого-либо устройства совершенно естест- венным (и интуитивно понятным) является поворот выключателя по часовой стрелке, а если где-то еще для этого предусмотрен пово- рот против часовой стрелки, то это легко может сбить с толку. На рис. 6.4 приведены ожидаемые реакции для распространенных ор- ганов управления. Если орган управления предназначен для пере- мещения объекта (например, задавать движение вдоль или попе- рек), то он должен имитировать данный объект. Цвета кнопок также помогают понять их назначение. Согласно стандарту BS-2771, рекомендуются следующие цвета: Красный Стоп, Выкл., Аварийная остановка Зеленый Пуск Черный Другие функции (например, замедление, сброс, про- верка) Желтый Вмешательство (например, продолжение работы после устранения неисправности)
Человекомашинный интерфейс 281 Увеличение Подъем Выкл. Вкл. ‘ ' Уменьшение Понижение Увеличение Рис. 6.4. Интуитивно воспринимаемое действие органов управления Для выполнения «других функций» можно использовать белый, се- рый или синий цвет, но в промышленных условиях загрязнение ме- шает правильному восприятию цвета и, следовательно, назначения кнопки. Следует избегать применения кнопок для включения и вы- ключения различных устройств, особенно если при этом не исполь- зуется индикация состояния устройства (включено/выключено). Аналогичные рекомендации существуют для цветов индикатор- ных ламп: Красный Неисправность, опасность, предупреждение, тре- буемое действие Желтый Осторожность, предупреждение, оповещение опе- ратора. отклонение от нормальной работы, пере- грузка Зеленый Безопасность, нормальный ход процесса, готовность Синий/белый Информирующий, например, о выбранной скорости Человек очень хорошо распознает визуальные образы и легко мо- жет обнаружить произошедшие изменения. При нормальной рабо- те весь пульт должен быть «зеленым», возможно, с кратковремен- ным появлением синего или белого цвета. Желтый и красный цвета информируют о том, что необходимо предпринять некоторое дей- ствие. Где бы ни находились индикаторные лампы, обязательно должна быть предусмотрена кнопка проверки их исправности. Чтобы уменьшить площадь пульта, обычно применяются светя- щиеся кнопки. При нажатии такой кнопки, которая в исходном со- стоянии была темной, она загорается, а следующее нажатие вновь делает ее темной, как это показано на рис. 6.5. Кнопки включения
282 Программируемые контроллеры Стоп нажата ишлияние Состояние работы остановки Рис. 6.5. Нормальное действие светящихся кнопок. При нажатии темной кнопки она загорается различных устройств должны светиться зеленым (а кнопки выклю- чения — красным), чтобы весь пульт был «зеленым». Если каждое действие каким-то образом подтверждается, это придает оператору уверенность. Во многих случаях такое подтвер- ждение происходит автоматически в виде светового или звукового сигнала. Если нельзя непосредственно наблюдать работу какого- либо агрегата (например, находящегося на удалении от оператора), то должен быть предусмотрен подтверждающий индикатор (воз- можно, действующий от вспомогательного контакта на пусковом устройстве). Интуитивно оператор ожидает, что реакция на его дей- ствие последует менее чем через одну секунду, после чего у него по- является растущее чувство беспокойства. Не следует, однако, сверх меры оснащать объект управления средствами индикации его работы. Оператор просто-напросто мо- жет быть ошарашен избыточной визуальной информацией. Боль- ше всего избегайте множества мигающих ламп. Мигающий свет требует немедленного действия, а его постоянное присутствие озна- чает, что при проектировании была допущена серьезная ошибка. 6.3. Цифровые выходы и входы 6.3.1. Цифровые выходные устройства На пульте оператора часто должны отображаться данные в цифро- вом виде — время, положение, температура и т. д. Эти данные обыч- но хранятся в ячейках памяти ПЛК. Большинство цифровых уст-
Человекомашинный интерфейс 283 N7:40 Четырехдекадный 16-битовая а выходная плата -TOD-------------- Источник N7:40 Назначение 0:23 Рис. 6.6. Управление двоично-десятичным индикатором: (а) физическое соединение; (б) инструкция TOD ройств индикации работают в двоично-десятичной системе кодиро- вания (см. Приложение), поэтому четырехразрядному индикатору (способному отображать числа от 0000 до 9999) будут необходимы 16 выходных сигналов от ПЛК — обычно это напряжение 12 или 24 В. На рис. 6.6 показано, как выполняются соответствующие операции в PLC-5: число из ячейки памяти N7:40 пересылается на цифровой индикатор, соединенный с 16-битовой выходной платой, установ- ленной в гнезде 3 стойки 2. Небольшая сложность заключается в том, что все операции внутри ПЛК выполняются в двоичном коде, а на индикатор выводятся десятичные цифры. Но все ПЛК имеют простую инструкцию преобразования чисел из двоичного кода в де- сятичное представление (BCD) В PLC-5 эта инструкция имеет имя TOD (ТО Decimal instruction), как показано на рис. 6.6 (б). 6.3.2. Мультиплексирование выходов Схема на рис. 6.6 является вполне приемлемой при наличии одного индикатора, но если индикаторов много, то иметь одну выходную плату на каждый индикатор становигся слишком дорогим и расто- чительным с точки зрения использования плат и кабельных соеди- нений. В этом случае наиболее экономичным решением является
284 Программируемые контроллеры использование мультиплексного выхода. Основная идея проиллю- стрирована на рис. 6.7 (а) для четырех индикаторов, хотя она имеет силу и для сколь угодно большого количества индикаторов. Цифровые индикаторы 16-битовая выходная 16-битовая выходная плата (используемая плата (4 выхода для 4 декад данных используются в двоично-десятичном для строб-импульсов) коде) а Рис. 6.7. Мультиплексирование индикаторов: (а) физическое соединение; (б) принцип действия
Человекомашинный интерфейс 285 Цифровой индикатор, как и ранее, имеет 16 линий данных плюс дополнительная линия для стробирующего импульса. Ес- ли по этой линии посылается стробирующий импульс, то инди- катор считывает число с линий данных. Если строб-импульс от- сутствует, индикатор запоминает (и отображает) последние поступившие данные. Четыре индикатора совместно использу- ют одно и то же выходное слово, которое циклически принима- ет значение данных, подлежащих отображению. Строб-импуль- сы генерируются в центре каждого слова данных, как показано на рис. 6.7 (б). Программа, позволяющая реализовать все эти действия, при- ведена на рис. 6.8. Счетчик действует как генератор тактовых им- пульсов, запускаемый импульсами из определенного места про- граммы ПЛК (например, GEM-80 имеет флажки синхронизации в таблице данных Е). На каждый индикатор отводится три такто- вых импульса; первый помещает 16-битовые данные в выходное слово, второй возбуждает строб-импульс, а третий не участвует в программе, но не позволяет сбросить строб-импульс, пока дан- ные не поступят на выход. (Как только данные были записаны на выход, они остаются там до тех пор, пока не поступят следующие данные, несмотря на то, что катушка будет деактивизирована, ес- ли ее входные условия становятся ложными.) Таким образом, сег- мент программы запускает строб-импульс в центре данных, как показано на рис. 6.7 (6). Одним недостатком данного метода является малое быстро- действие. При восьми индикаторах на каждый цикл потребуется 24 тактовых импульса. Типичный тактовый импульс имеет дли- тельность 30 мс, так что время обновления показаний составит чуть более 0.7 с. Обычно это вполне приемлемо, за одним воз- можным исключением, когда индикатор используется для ввода чисел с клавиатуры (наподобие ввода данных на карманном каль- куляторе). Изложенную идею можно развить далее, воспользовавшись мультиплексированием отдельных разрядов. Восьмиразрядным индикатором можно управлять, используя всего четыре линии передачи данных, трехразрядную шину выборки и строб-им- пульс. Для управления восемью индикаторами данного типа по- требуется всего 11 битов: четыре линии передачи данных, три разрядные линии, три линии выбора индикатора и одна линия для строб-импульса. Хотя в этом случае программа будет доволь- но длинной (но простой), а скорость реакции — достаточно мед- ленной.
286 Программируемые контроллеры Тактовый импульс - Move- Вых. данные 1 Счетчик- мультиплексор EQU------ Mux count 1 г EQU----- Мих count 2 EQU------ Mux count 4 EQU EQU------ Мих count 12 , Индикатор 1 Строб- импульс 1 — Move- Вых. данные 2 Индикатор 2 Строб- импульс 2 Для данных 3,4- аналогично Индикаторы 3,4- как для 1, 2 (4 ступени) Сброс счетчика Рис. 6.8. Программа в виде многоступенчатой схемы для управления четырьмя индикаторами на рис. 6.7. EQU проверяет равенство двух значений (например, значения счетчика Mux counter и числа), a Move переносит данные на выходную плату 6.3.3. Подавление нулевых головных цифр Если мы на четырехразрядном индикаторе отображаем число 25, то мы хотим видеть 25, а не 0025. Это называется подавлением нуле- вых головных цифр. Цифровой индикатор, работающий в двоично- десятичном коде, обычно использует один из незадействованных двоичных кодов — от 1010 до 1111 — для получения пустого места (как правило, это 1111, или F в шестнадцатеричной системе). Дру- гие неиспользуемые коды применяются для отображения знаков +, - и десятичной точки. Подавление нулевых головных цифр для четырехразрядного индикатора можно обеспечить с помощью трехступенчатой логи-
Человекомашинный интерфейс 287 ческой схемы, изображенной на рис. 6.9. Она просто обнаружива- ет 0, 00 или ООО и вводит в индикатор шестнадцатеричные F, FF или FFF. Для подавления нуля в младшем (крайнем правом) раз- ряде эта схема не используется, поэтому 0 там появляется как 0. Схема на рис. 6.9 одинаково хорошо работает и с мультиплексиро- ванными индикаторами. Инструкция «ввода F» — это просто дан- ные, подвергнутые операции OR с шестнадцатеричным F000, на- пример: Данные 0000 0100 1001 0111 (0497 в двоично-десятичном коде) 1111 0000 0000 0000 (F000 в шестнадцатеричном коде) OR 1111 0100 1001 0111 (F497 в двоично-десятичном коде, старший разряд пустой) Все 4 бита = 0, если в разряде ноль Ввод 16-ричного F(двоичное 1111) в старший разряд В старшем разряде 0 Бит 11 Бит 10 Бит 9 Битв В старшем разряде 0 И-И-И—И Ввод 16-ричного FF в 2 старших разряда В обоих старших разрядах 0 В обоих Бит 7 Бит 6 Бит 5 Бит 4 старших разрядах и Ввод 16-ричного FFF в 3 старших разряда Биты в выходном слове Рис. 6.9. Подавление нулевых головных цифр
288 Программируемые контроллеры 6.3.4. Цифровые входы Простые входные устройства дискретного действия (кнопки, джой- стики, переключатели) обычно при каждом движении производят один входной сигнал и не требуют каких-либо специальных при- способлений. Для переключателей на несколько положений (на- пример, галетного переключателя на 8 положений) их действие можно упростить, если использовать двоичное кодирование контактов; например, положение 6 можно представить кодом 110 на трех выходных линиях. Однако часто требуется вводить числа, и в этом случае сущест- вуют две основные схемы ввода. Первая из них основана на исполь- зовании декадных переключателей с двоично-десятичным кодиро- ванием. Каждый такой переключатель имеет 10 положений и позволяет получать 4-битовый выходной сигнал в двоично-деся- тичном коде. Чтобы прочитать четырехразрядное число, потребует- ся 16-битовая входная плата, как показано на рис. 6.10. Если необходимо ввести более одного числа, снова можно при- менить мультиплексирование, что позволит уменьшить количество входных плат. Для трех четырехдекадных переключателей принцип действия проиллюстрирован на рис. 6.11. Диоды на выходе каждого Действие переключателя десятичном коде Рис. 6.10. Опрос декадных переключателей
Человекомашинный интерфейс 289 Рис. 6.11. Мультиплексированное чтение данных с декадных переключателей переключателя препятствуют образованию скрытых путей через не- опрашиваемые переключатели. Эти диоды обычно являются неотъ- емлемой частью конструкции переключателя, и все, что должен сде- лать проектировщик, — это только определить полярность сигналов. Мультиплексирование управляется программным счетчиком, как показано на рис. 6.12. Как и при мультиплексировании выхо- дов, основными недостатками являются малая скорость обновле- ния и сложность понимания программы. Методы мультиплексирования также можно использовать для минимизации количества линий связи от кнопок или переключате- лей. На рис. 6.13 показано, как 16 входов читаются с помощью че- тырех выходных, четырех входных сигналов и 8-жильного кабеля. Опять-таки здесь необходимы диоды, препятствующие образова- нию скрытых путей. Как и прежде, недостатки здесь те же — ско- рость реакции и понимаемость программы.
290 Программируемые контроллеры Рис. 6.12. Пример программы для мультиплексирования входов. Инструкция LIM (предел) служит для проверки нахождения значения в диапазоне внешних чисел. Например, LIM в верхней части рисунка дает значение «истина» для MuxCount = 0,1 или 2 Второй метод аналогичен работе калькулятора с десятью кноп- ками для набора числа, кнопками Enter (ввод) и Cancel (отмена) и цифровым индикатором (управляемым, как было описано в преды- дущих разделах). Вводимое число создается поразрядно в буфере путем умножения величины в буфере на десять и добавления к чис- лу значения при каждом нажатии кнопки. Эти действия проиллю- стрированы на рис. 6.14.
Человекомашинный интерфейс 291 Рис. 6.13. Опрос входных контактов с помощью мультиплексора Число, записываемое в буфер 7 8 9 4 5 6 1 2 3 CLR 0 ENT Рис. 6.14. Блок-схема действий с клавиатурой
292 Программируемые контроллеры 6.4. Аварийная сигнализация Во всех объектах управления неизбежно возникают неисправно- сти, поэтому даже простейшая система управления должна быть оснащена средствами аварийной сигнализации, чтобы обратить внимание оператора на появившиеся проблемы. Система аварий- ной сигнализации может быть столь примитивной, как, например, лампа, говорящая о том, что «насос выключился», или столь слож- ной, как большая система SCADA, которая способна генерировать тысячи аварийных заголовков на компьютерных экранах. Все, что требуется для простой системы, — это лампа для каждо- го аварийного сигнала, действующая так, как показано на рис. 6.15. При возникновении неисправности лампа начинает мигать. Если аварийный сигнал опознан (принят) оператором, и если опасность еще существует, то лампа горит постояно, или она выключается, ес- ли опасность была кратковременной и она ликвидирована. Обыч- но звуковая сигнализация остается включенной до тех пор, пока оператор не отреагирует на аварийный сигнал. Полезно иметь две лампочки для каждой аварийной сигнализации, а также предусмо- треть кнопку проверки их исправности. Системы аварийной сигнализации обычно устанавливаются без тщательного обдумывания, и это может обернуться серьезными проблемами. Подобная система на АЭС Тримайл Айленд дала опе- раторам неверную информацию. Система на нефтеочистительном заводе в Милфорд Хэйвн давала избыточную информацию, кото- рая приводила операторов в замешательство. Когда произбшел по- жар в туннеле под Ла-Маншем, система аварийной сигнализации дала неверную оценку серьезности ситуации и тем самым задержа- ла начало спасательных операций. В Чернобыле сама система была перегружена, и аварийные сигналы автоматически были отключе- ны до того как поступить к операторам. Кнопка приема аварийного сигнала Аварийная ситуация -—* Сигнальная лампа ——Л-П-П-Г п Рис. 6.15. Действие простого устройства аварийной сигнализации При возникновении опасной ситуации лампа начинает мигать, а звуковой сигнал подается до тех пор, пока оператор не отреагирует на эту информацию. Эта простая система, однако, уязвима к потоку аварийных сигналов, который может ошеломить оператора
Человекомашинный интерфейс 293 Система аварийной сигнализации должна сообщить оператору о возникшей проблеме в тот момент, когда необходимо предпри- нять соответствующие действия, а оператор должен знать, какие именно это действия. Лучше всего будет перечислить основные требования к системе аварийной сигнализации: Аварийные сигналы должны быть четкими, уникальными, выразительными и недвусмысленными. Если, например, появляется сигнал FT205 Низкое, знает ли опера- тор, что это означает? Автору довелось видеть такие аварийные сиг- налы, когда даже проектировщики не могли объяснить их смысл. Аварийные сигналы должны вызывать адекватную реакцию оператора. При появлении любого аварийного сигнала должно последовать определенное действие оператора. Это может быть запуск другого насоса, перевод объекта в режим ожидания или вызов обслуживаю- щего персонала для исправления повреждения. Если оператор не знает, что надо делать, то такая сигнализация просто бесполезна. Аварийные сигналы не должны вызывать ложную тревогу. Если они это делают, уровень доверия ко всем подобным сигналам упадет и, возможно, действительно важные сигналы будут проиг- норированы. Аварийным сигналам требуется безоговорочно доверять. В противном случае объект управления будет продолжать работать, что чревато потенциально опасными ситуациями. Аварийные сигналы должны сообщать оператору только то, о чем он хорошо информирован. Если они заполняют голову оператора несоответствующей инфор- мацией, то действительно важные сигналы могут быть упущены из внимания. Например, если оператор выключает вентилятор, это не должно приводить к появлению каких-либо аварийных сигналов, пока объект не отреагирует на это неожиданным образом. Аварийные сигналы должны появляться только тогда, когда у оператора есть достаточно времени, чтобы отреагировать на них. Дать оператору всего одну секунду для осознания возникшей проб- лемы — это потребовать от него глубоко задуматься и в результате предпринять бессмысленные сложные действия.
294 Программируемые контроллеры Одна из наиболее значительных проблем, связанных с аварий- ной сигнализацией, — это проблема избыточной информации. В течение пяти часов до происшествия на нефтеочистительном заво- де в Милфорд Хэйвн в 1994 г. операторам каждые две-три секунды показывали, как работает новая система аварийной сигнализации, предоставляя им самим понять, что происходит, или предпринять соответствующие действия. Избыточное количество аварийных сигналов можно умень- шить, группируя их так, что поступает только первый, имеющий наивысший приоритет в группе. Например, два насоса гидравличе- ской системы, работающие на гидроцилиндр, могут иметь следую- щие аварийные сигналы: Насос отключен Давление низкое Резервный насос не включается Уровень масла предельно низкий В течение пяти секунд гидроцилиндр не приведен в движение Если произошла утечка масла, то появится сигнал «Уровень масла предельно низкий», насос автоматически будет отключен (чтобы избежать его повреждения), система регулирования давления будет также отключена, резервному насосу будет запрещено включиться, и гидроцилиндр не будет приведен в движение. Таким образом, од- на неисправность вызовет появление пяти аварийных сигналов. Система сигнализации с выбором приоритета естественным обра-, зом запретит появление любых других сигналов, которые юлжны последовать за первым из событий. Встречаются и другие ситуации, когда возможно появление не- прерывного потока аварийных сигналов. Обычно это происходит тогда, когда аналоговый сигнал немного отклоняется в ту или иную сторону от точки срабатывания сигнализации. Этого можно избе- жать, введя гистерезис по уровням срабатывания сигнализации, как будет показано позже на рис. 9.10. Способ реализации данного ме- тода приведен на рис. 9.11 в разд. 9.4. Альтернативный способ ис- ключения повторяющихся аварийных сигналов заключается в том, чтобы дать оператору возможность «затормозить» сигнализацию, т. е. реализовать функцию, которая выполняла бы следующее: «Не сообщай мне об этом еще раз в течение (скажем) тридцати минут». Аварийные сигналы должны иметь различные уровни приори- тета. Приоритет определяется важностью сигнала и скоростью, с которой оператор должен на него отреагировать. Наивысший уро-
Человекомашинный интерфейс 295 вень относится к проблемам, связанным с безопасностью персона- ла, за этим следуют проблемы, требующие немедленных действий, чтобы избежать повреждений объекта, обходящихся слишком до- рого, или существенных потерь продукции. К самому низкому уровню относятся аварийные сигналы, являющиеся менее важны- ми или требующие менее срочных действий. Обычно используются три уровня приоритета аварийных сигналов. Непрерывный поток аварийных сигналов можно снизить, разрешив оператору «отло- жить» реакцию на сигналы самого низкого уровня, имеющие наи- меньшую важность. Системы SCADA неизменно включают в себя системы аварий- ной сигнализации, которые в свою очередь отображают на дисплее произошедшее событие в виде заголовков, понятных для операто- ра. Эти заголовки обычно принято сохранять в специальном файле аварийных ситуаций, где также фиксируется время наступления та- кой ситуации и время, когда соответствующий сигнал был принят. Подобная историческая информация, обычно называемая прото- колом аварий, может быть чрезвычайно полезна для обнаружения неисправностей или последующего анализа произошедших собы- тий. Это особенно важно тогда, когда система имеет средства «предварительной» фильтрации аварийных сигналов. Системы аварийной сигнализации часто имеют слишком боль- шой набор сигналов. Поэтому к ним надо относиться очень внима- тельно — необходимо убедиться, что аварийный сигнал действи- тельно соответствует серьезной ситуации. Если выключается 'компрессор, подающий сжатый воздух, это почти наверняка ава- рийная ситуация. Если же оператор останавливает компрессор по производственной необходимости, это, по-видимому, не является аварийным событием. И для производства, и для технического об- служивания очень полезно хранить регистрацию всех событий, от- носящихся к объекту управления, но нужно отчетливо понимать различие между просто событиями (которые должны быть зареги- стрированы как не требующие вмешательства оператора) и аварий- ными ситуациями (которые потребовали соответствующих дейст- вий оператора). В большинстве систем аварийной сигнализации внимание опе- ратора привлекается звуковыми сигналами. Они действительно требуют внимания, но непрерывное появление таких сигналов мо- жет вызвать у оператора чрезвычайное напряжение и даже может сбить его с толку, когда действительно требуется оперативно ос- мыслить происходящее. Изобилие таких сигналов, когда каждый из них сопровождается назойливым звуком, может быть совершен-
296 Программируемые контроллеры но ошеломляющим. Когда аварийные сигналы появляются доволь- но часто или даже следуют непрерывным потоком, оператор дол- жен иметь возможность отказаться на них реагировать или, по крайней мере, уменьшить их громкость. Сигналы, подаваемые го- лосом, обычно используемые в самолетах для предотвращения столкновений и в наземных системах предупреждения, оказывают- ся эффективными, если они хорошо воспринимаются. Для приня- тия корректирующих действий рекомендуется использовать прият- ный женский голос. В большинстве современных систем SCADA для целей аварийной сигнализации предусмотрена возможность использования звуковых файлов. Часто используется дублирование устройств аварийной сигнали- зации, когда, например, одновременно с включением сигнальной лампы появляется сообщение на экране компьютера или ПЛК. Ес- ли, скажем, оператор по той или иной причине не получает инфор- мацию с помощью сигнальной лампы, то он может переключиться на прием идентичного аварийного сигнала от компьютерной систе- мы. Это, конечно, требует дополнительных затрат времени и увели- чивает напряженность работы оператора. Что совсем плохо и может вызвать серьезное замешательство у оператора — это когда одной и той же аварийной ситуации соответствуют разные описания (напри- мер, «Уровень LE205» на сигнальном устройстве и «Приближающее- ся переполнение отстойника» на экране компьютера). 6.5. Аналоговая индикация Если ПЛК работает с аналоговыми сигналами (например, расход, температура, давление и т. п.), то значения этих сигналов должны быть представлены оператору. В разд. 6.3 были рассмотрены спосо- бы представления информации в цифровой форме. Здесь мы рас- смотрим аналоговые устройства отображения информации, т. е. стрелочные измерительные приборы и столбиковые индикаторы. Для отображения изменяющихся сигналов можно использовать как аналоговые измерительные устройства, так и цифровые инди- каторы, поэтому сначала полезно будет рассмотреть их положи- тельные стороны и недостатки. Цифровой индикатор может ото- бражать значение сигнала с любым достижимым разрешением и точностью; четырехразрядный индикатор имеет разрешение 0.01% от полной шкалы. В свою очередь, аналоговый измерительный прибор может дать разрешение около 1 % от полной шкалы. Если требуется более высокая точность, то предпочтительнее использо- вать цифровой индикатор. Однако аналоговый измерительный
Человекомашинный интерфейс 297 прибор обладает преимуществом, когда оператору нужно иметь лишь общее представление о сигнале, не заботясь о высокой точно- сти. Показания цифровых индикаторов нужно читать поодиночке. Значения температуры в четырех точках, представленные с помо- щью столбиковых индикаторов на рис. 6.16, можно видеть мгно- венно; те же самые данные, представленные с помощью цифровых индикаторов, менее очевидны для восприятия. Другим важным обстоятельством является скорость изменения сигнала. В случае цифровых индикаторов человеку требуется опре- деленное время, чтобы осмыслить информацию. Все, что увидит глаз человека на четырехразрядном цифровом индикаторе при бы- стром изменении сигнала, — это 8888. В ситуациях, когда оператор должен отслеживать быстро изменяющиеся сигналы, предпочти- тельнее использовать аналоговые измерительные устройства. Имеет также значение стоимость системы и простота ее обслу- живания, но это зависит от конкретного применения. Трехразряд- ный цифровой индикатор требует 14 сигнальных шин плюс прово- да для подвода питания. Аналоговому измерительному устройству необходимы всего два провода (но один из них соединен со сравни- тельно дорогой аналоговой выходной платой). Цифровые индика- торы не имеют движущихся частей, тогда как аналоговые измери- тельные устройства менее прочные и легко могут быть повреждены резкими ударами. Шкала измерительного прибора должна легко читаться с нор- мального расстояния. На практике рекомендуется, чтобы размер шкалы прибора был равен примерно 1/15 от расстояния, с которого она наблюдается (например, 20 см при точке наблюдения, находя- щейся на удалении 3 м). На рис. 6.17 приведены различные шкалы прибора, имеющие одинаковую длину. Обычно используется деле- а г 8 в 3 S 9 б г 3 i Рис. 6.16. Представление одних и тех же данных в аналоговой и цифровой формах: (а) аналоговая; (б) цифровая
298 Программируемые контроллеры ние шкалы на 20 равных частей. При правильном соотношении длины шкалы и расстояния, с которого она наблюдается, оператор может отсчитывать показания с точностью до 1/5 деления, что соот- ветствует разрешению 1%. На рис. 6.18 приведены типичные шка- лы, допускающие чтение показаний с точностью до 1%. Существу- ют приборы с более высокой точностью отсчета (например, BS89 имеет девять диапазонов со значениями точности от 0.05% до 5%), но они редко используются в промышленных условиях. Диапазон измерений должен выбираться так, чтобы нормальный отсчет производился в районе от 40% до 60% от полной шкалы. Ес- ли в поле зрения находится группа измерительных приборов, то «нормальному» отсчету должно соответствовать положение стрелки на 9 часов при горизонтальном расположении приборов и на 12 ча- сов при вертикальном расположении, как показано на рис. 6.19. Если на сигнал, отображаемый измерительным прибором, дол- жен воздействовать оператор, то важно осуществлять правильную связь между намерением оператора и движением стрелки или стол- бика по шкале. Каждому намерению «увеличить» должно соответ- ствовать перемещение указателя «вверх» или «по часовой стрелке», как показано на рис. 6.20. 0 2 4 6 8 10 I__I___I__I___I__I___I__।___I__I___I а Рис. 6.17. Различные шкалы, имеющие одинаковую длину: (а) линейная шкала; (б) круговая шкала с углом охвата 100"; (в) круговая шкала с углом охвата 270"
Человекомашинный интерфейс 299 Рис. 6.18. Разметка шкал, допускающая чтение показаний с разрешением около 1 % Рис. 6.19. Группировка измерительных приборов, позволяющая читать показания с достаточной точностью. Показано положение стрелок, соответствующее «нормальному» отсчету Рис. 6.20. Предполагаемые действия человека и их отображение. Стрелками показано направление увеличения (расхода, мощности, скорости, температуры ит. п.). Органы управления, задающие движение (например, подъемного крана), должны в точности отражать перемещение объекта управления
300 Программируемые контроллеры 6.6. Компьютерная графика 6.6.1. Введение До сих пор мы рассматривали лишь отдельные устройства управле- ния, находящиеся в распоряжении оператора — пусковые кнопки, переключатели, индикаторы, аналоговые измерительные приборы и цифровые индикаторы. Но все их функции в большей степени принимают на себя экраны с компьютерной графикой. Это может быть устройство отображения информации, спроектированное специально в расчете на определенное семейство ПЛК (сюда отно- сятся Panelview для Allen Bradley и Imagem для CEGELEC, которые мы рассмотрим в следующем разделе), либо графический дисплей общего назначения (например, великолепное устройство Tesselator компании ABB/ASEA), либо программное обеспечение машинной графики, реализуемое на обычных компьютерах промышленного назначения. Как принято, полезно сначала рассмотреть достоинства и недос- татки использования компьютерных дисплеев. Говоря откровенно, главной причиной их выбора является то, что они привлекательны и производят впечатление на зрителя. К сожалению, слишком час- то случается так, что становится невозможным следить за непре- рывно сменяющимися графическими изображениями в течение бо- лее пяти минут без того, чтобы не приобрести головную боль в поисках действительно полезной информации и не отреагировать на нее в течение нескольких секунд. Там, где я работаю, управление рядом объектов производится с помощью экранов, и они обычно являются более эффективными для наблюдателя и более привыч- ными (в смысле комфортности) рабочими экранами. Главными преимуществами графических терминалов являются простота установки и гибкость. Такой терминал имеет всего два со- единения с внешним миром — последовательный канал связи (см. гл. 5) и подключение источника питания. Если его использовать вместо пульта с большим количеством переключателей и индикато- ров, то экономия затрат совершенно очевидна. На момент написа- ния книги высококачественный переключатель, занимающий на пульте площадь примерно 60 х 40 мм, стоил около £20. Сюда следу- ет добавить '/щ-ю часть его стоимости на входную плату (совмест- но используемый ресурс стойки ПЛК), затраты на, как минимум, три разъема, одну жилу многожильного кабеля, оплату труда по со- оружению пульта и корпуса ПЛК, прокладке кабеля и распайке его жил. Если учесть все эти затраты, то даже одно устройство может оказаться очень дорогостоящим. Графический терминал требует
Человекомашинный интерфейс 301 больших капитальных затрат и средств на создание программного обеспечения, но все же они обходятся значительно дешевле. Инженеру, занимающемуся проектированием пультов или дис- петчерских пунктов, часто приходится иметь дело с изменениями и модификацией (это еще один пример синдрома «мы вам это не го- ворили», который обычно возникает, когда на пульте требуется вместо изначально запланированных органов управления разме- ром 20 мм установить пусковые кнопки размером 30 мм с соответ- ствующими бирками). Создание пульта — это всегда тонкий баланс времени, затрачиваемого на ожидание, пока прояснятся все техни- ческие требования, и минимального времени, необходимого на их выполнение. Модификации, осуществляемые на этапе ввода в экс- плуатацию, редко выполняются хорошо. Дисплеи на графическом терминале можно модифицировать сравнительно просто, и, что самое важное, эти модификации про- ходят совершенно безболезненно. Если проектирование обычного пульта может начинаться только тогда, когда его «начинка» опреде- лена на 95% (что почти всегда так и есть), то графический экран можно создавать уже при 75% ясности. Такая гибкость очень помо- гает, если даже ни одно задание не было выполнено правильно с первого раза. Конечно, имеются и недостатки. Самым главным из них являет- ся ограниченное количество информации, которое может быть вы- ведено на единственный экран. Экран очень легко может быть пе- реполнен (наподобие целой страницы, созданной в текстовом процессоре), что затрудняет оператору выделить действительно 'ценную информацию. Полезное эмпирическое правило — не ис- пользовать более 25—30% площади экрана. Для типичного экрана с размещением 80 х 25 символов это соответствует примерно 500 до- ступным позициям, где могут быть расположены как текст, так и цифровые данные. Например, сообщение «Скорость двигателя NNN об/мин» использует 26 символов. Как следствие, часто необходимо создать иерархию экранов, ко- гда экран высшего уровня дает общую картину, а экраны более низ- ких уровней раскрывают все больше и больше подробностей. Проблема заключается в задержке во времени, необходимой для последовательного просмотра экранов. Непосредственный переход от экрана к экрану возможен путем вызова номера страницы (что требует от оператора хорошей памяти, или клочка бумаги со спра- вочными данными, или увеличенного экранного пространства) либо путем изменений экрана с помощью промежуточной страни- цы каталога (естественно, с дополнительной задержкой). Эти за-
302 Программируемые контроллеры держки во времени невелики (обычно менее секунды), но в целом доставляют большую неприятность. Время, необходимое для обновления данных на экране, также представляет собой проблему, в особенности когда здесь участвует связь между машинами. При этом время реакции также составляет около одной секунды, но нет ничего необычного, если оно будет рав- но и нескольким секундам. Если объект управления подвержен бы- стрым изменениям, то использование графического терминала для обнаружения неисправностей по сути становится невозможным. Существуют два типа графических терминалов. Самый простой из них — устройство блочной графики, в котором для положения каждого символа на экране отведена одна ячейка памяти. Таким образом, дисплей, на котором размещается 80 х 25 символов, тре- бует 2000 ячеек памяти. Каждая ячейка обычно занимает два байта (одно 16-битовое слово), как показано на рис. 6.21. Первый байт хранит код символа, который должен отображаться на экране, что соответствует 256 различным символам. Стандартный код ASCII (см. табл. 5.1) содержит 128 буквенно-цифровых знаков, остальные 128 значений отведены для других часто используемых служебных символов. Второй байт определяет цвет, причем 3 бита используют- ся для цвета изображения (возможны 8 разных цветов) и 3 бита для цвета фона (опять-таки 8 возможных вариантов). Оставшиеся 2 би- та используются для вспомогательных функций, таких как мига- ние, удвоение высоты символа или яркость/затемнение. Второй тип дисплеев имеет дело не с символами как целое, а с отдельными точками на экране, называемыми «пикселами». Сим- волы создаются из пикселов, как правило, 8 в ширину и 14 в высо- ту (графический адаптер EGA в компьютерах IBM PC использует 112 пикселов на символ), а их комбинация для каждого символа хранится в постоянном запоминающем устройстве (ROM), как по- казано на рис. 6.22. Типичный экран со средним разрешением имеет 640 пикселов по горизонтали и 350 по вертикали, что соответствует 224 000 точек. Экраны высокого разрешения в системах автоматизированного проектирования (CAD) используют еще больше пикселов. К каж- дому из них можно получить отдельный доступ, что позволяет ри- совать линии под любыми углами, формировать изображения лю- бого типа и представлять на экране графики изменения переменных объекта управления. Каждый отдельный пиксел может иметь свой собственный цвет (на некоторых дисплеях от 256 цветов и выше) и интенсивность. В результате достигается разрешение, близкое к фотографическому.
Человекомашинный интерфейс 303 80 столбцов Для каждого символа <----------------------> Цвет Рис. 6.21. Распределение памяти в блочной графике Рис. 6.22. Формирование блочной графики
304 Программируемые контроллеры Все сказанное требует дополнительных затрат, значительная часть которых приходится на запоминающее устройство большой емкости. Аппаратные и программные средства системы являются более сложными (и, следовательно, более дорогими), но, как ни странно, пользователь этого совершенно не замечает; дисплеи с пиксельной графикой часто намного легче программировать, чем устройства, использующие блочную графику. Все современные бы- товые компьютеры (начиная с эры моделей ВВС и Spectrum) ис- пользуют пиксельную графику. В следующих двух подразделах рассматриваются примеры дис- плеев, работающих с блочной и пиксельной графикой. Первый пример (Panelview для ПЛК Allen Bradley) — это достаточно простой дисплей для блочной графики, созданный с целью заменить обыч- ные средства управления, расположенные на пульте (пусковые кнопки, стрелочные приборы, столбиковые указатели, цифровые индикаторы и простейшие элементы мнемосхем). Второй пример, Imagem для ПЛК GEM-80, это более сложная система отображения информации, использующая пиксельную графику и мощный язык графических символов. Все производители ПЛК имеют пакеты программ машинной графики, как блочной, так и пиксельной. Например, у Allen Bradley это пакет пиксельной графики Controlview, а у GEM-80 — простой видеопроцессор блочной графики. У фирмы Siemens имеется се- мейство программ SCADIX, у АВВ — программа Tesselator, и т. д. Каждому производителю свойственны различия в методах про- граммирования (хотя основные идеи подобны). Чтобы рассмотреть всех их, требуется затратить много времени, занятие это утомитель- ное и даже сбивающее с толку. Поэтому два примера, которые при- водятся ниже, были выбраны из того оборудования, с которым мне довелось работать, но никоим образом не по рекомендации каких- либо производителей. 6.6.2. Panelview фирмы Allen Bradley Семейство графических дисплеев Panelview фирмы Allen Bradley, приведенное на рис. 6.23, создано для замены переклю- чателей, пусковых кнопок, цифровых индикаторов и других по- добных устройств. Существуют версии с клавиатурой или с сен- сорным экраном, причем обе могут иметь монохромный или цветной дисплей. При наличии клавиатуры действия оператора связаны с функциональными клавишами, а в моделях с сенсор- ным экраном доступны 120 элементов, чувствительных к при- косновению.
Человекомашинный интерфейс 305 Рис. 6.23. Образцы семейства Panelview. Фото любезно предоставлено Rockwell Automation Все устройства Panelview используют экран, работающий в стан- дарте VGA с разрешением 640 х 480, который может отображать полный набор буквенно-цифровых символов верхнего и нижнего регистра (для обычного текста) плюс созданные в ISA (Instrument Society of America — Американское общество контрольно-измери- тельных приборов) символы для двигателей, насосов и т. п. Кроме того, могут быть импортированы программы растрового отображе- ния графических объектов, обеспечивающие вывод на экран созданных пользователем специальных символов или фоновых изображений. Устройство может иметь несколько «страниц» индикации, пре- дел (определяемый памятью) составляет около 40 страниц прием-
306 Программируемые контроллеры лемой сложности. Они программируются с помощью обычных компьютеров, совместимых с IBM PC. Каждый дисплей содержит два разных типа объектов. Статиче- ские объекты фиксированы и неизменны. Они используются для неподвижного текста, неподвижных заголовков и не изменяющих- ся графических изображений. Намного интереснее динамические объекты. Они связаны с входными, выходными и цифровыми дан- ными в управляющих ПЛК. Panelview использует различные типы последовательной связи с ПЛК, включая DeviceNet, ControlNet, магистраль данных Data Highway и стандарт RS485. Версия, которую мы рассмотрим в каче- стве примера в данном разделе, соединяется с ПЛК с помощью обычного кабеля и со стороны ПЛК выглядит как одна стойка со стандартными входными/выходными платами. Тип связи и номер стойки являются частью исходной конфигурации Panelview. Инди- катору на экране Panelview, например, может быть отведен бит 3 платы 5 в стойке 7, и управление этим индикатором производится по адресу 0:75/03 в программе ПЛК. Аналогично, кнопке на экра- не может быть присвоен бит 14 платы 2 в стойке 7, и обратиться к ней в программе можно по адресу 1:72/14. Динамические объекты добавляются путем выбора из меню с вытеснением нижней строки. Сюда относятся: Индикация для оператора: Индикатор многих состояний (Работает, Остановлен, Выключен, Изолирован, Неисправен и т. д.). Цифровые индикаторы с фиксированной или плавающей десятич- ной точкой (например, «Содержимое емкости 4057 литров»). Столбиковые диаграммы и шкалы (вертикальные или горизонтальные). Измерительные приборы с круговой шкалой. Аварийные сообщения (которые появляются в виде окон и могут быть сохранены на странице с историей аварийных событий). Отображение сообщений (заранее созданные сообщения в виде строк в коде ASCII в памяти ПЛК, например «Порядок подготовки теперь выполнен»). Эти строки также могут содержать встроенные данные от ПЛК («Предупреждение: ток двигателя равен NNN ампер»). Ввод данных от оператора: Кнопки. Пять различных типов — нормально разомкнутая, нор- мально замкнутая, зафиксированная, удерживаемая и взаимобло- кирующая (из группы выбирается одна и только одна). С помощью кнопок можно управлять одним битом или записывать численные
Человекомашинный интерфейс 307 значения в ПЛК. Кнопка также является индикатором двух состо- яний, чьими значениями можно управлять с помощью выходного сигнала ПЛК. Ввод цифровых данных, либо с помощью кнопок, либо с высвечи- вающейся на экране клавиатуры. Выбор из списка, обеспечивающий задание одного из нескольких управляющих действий (например, калибровка, испытание, запуск, остановка). Функции управления, такие как выбор другого изображения на эк- ране или прием аварийного сигнала. Экраны Panelview создаются с помощью программы Panelbuilder, выполняемой на обычном персональном компьютере. На рис. 6.24 показаны последовательные этапы по добавлению на экран кнопки. В левой части экрана на рис. 6.24 (а) представлен полный спи- сок опций Panelview. Был выбран экран Timed Cut, а вслед за этим в меню с вытеснением нижней строки — Pushbuttons (кнопки). Щелчок мышью на Momentary выбирает кнопку, которая с помо- щью той же мыши размещается в нижней позиции на экране, как показано на рис. 6.24 (б). Далее кнопку требуется сконфигурировать. Двойной щелчок мышью на кнопке открывает окно, показанное на рис. 6.24 (в). Кнопка выбрана в качестве единственного бита (Single Bit), но кнопки могут также быть сконфигурированы путем записи соот- ветствующих значений в ПЛК. Кнопка имеет две связи с ПЛК: вход, когда должно быть выпол- нено ее действие, и выход, используемый для управления состоя- нием (например, Пуск/Остановка). Связи осуществляются с помо- щью тегов. Они представляют собой текстовые описания связи. Новая кнопка является кнопкой принятия аварийного сигнала, и две связи соответствуют ResetPB (для входа) и Alarm_Present (для выхода). Эта теги могут быть определены заранее (что наиболее быстро осуществляется при первоначальной реализации проекта) или заданы при добавлении каждого объекта. Например, при выбо- ре тега Reset PB и щелчке на Edit Tag кнопка принимает вид тега, представленного на рис. 6.24 (г). Здесь вводятся тип данных (бит) и адрес назначения (1:12/03). Node Name - это ПЛК, к которому этот тег имеет отношение. Простые удаленные входные/выходные пла- ты могут иметь связь только с одним ПЛК, но устройства Panelview с соединением равноправных узлов типа магистральной шины дан- ных могут обмениваться информацией со многими ПЛК. В этом случае Node определяет тот ПЛК, к которому относится тег. На-
308 Программируемые контроллеры а б Рис. 6.24. Добавление кнопки на экран Panelview: (а) выбор типа кнопки из меню; (б) позиционирование кнопки на экране и определение ее назначения;
Человекомашинный интерфейс 309 nwuH | SWM | Ормг 11 • Сз - a Touch QtlEnaUesJ IPuthBuMun» СО 03 pba HokSTwe (KCr.zi...£) kwt Contact» Nwswft'.Ojjoo •If No, *Sta«l n a , “ |^<4wA«y r y<b, з MWTMwxaij’.rusr» c;urcn< бЫиЧГС 4^xwS2Sy-1SB ' ммМиШ'мМ®' к-096 3»я»<| jtP«w»uW«K - OL. 43‘-tirn«°s»» I -tasbi'* - Л »» Рис. 6.24 (продолжение), (в) заданы тип кнопки и названия тегов, один для входа и один для отображения на экране; (г) определение названия одного тега для связи с ПЛК по нужному адресу;
310 Программируемые контроллеры Д Рис. 6-24 (продолжение), (д) ввод текста и выбор цвета для состояний дисплея чальное значение тега определяет данные, посылаемые к ПЛК при включении Panelview. После введения всех необходимых данных производится щелчок мышью на клавише ОК. Тег для выхода Alarm_Present устанавливается аналогичным образом. Далее необходимо определить состояние кнопки на дисплее. Щелчок мышью на States (рис. 6.24 (в)) открывает окно состоя- ний на том же экране. Кнопка должна быть невидима, если от- сутствует аварийная ситуация, и должна появиться, если возни- кает какая-либо аварийная ситуация. Для текста и собственно объекта могут быть установлены отдельные цвета фона и изобра- жения. Состояние 0 соответствует установке черного цвета для фона и изображения и отсутствию текста. Состояние 1 соответст- вует появлению текста Alarm Accept (принят сигнал аварийной ситуации), где /*R*/ означает переход к новой строке. Цвета мо- гут быть заданы в меню с вытеснением нижней строки, как пока- зано на рис. 6.24 (д), или щелчком левой или правой кнопкой мы- ши на палитре цветов, представленной на рис. 6.24 (б). На том же рисунке можно видеть размер шрифта и управление его ориента- цией и начертанием. На рис. 6.25 представлен полный вид экрана Panelview.
Человекомашинный интерфейс 311 Рис. 6.25. Типичный экран Panelview. Изображение любезно предоставлено Rockwell Automation 6.6.3. Пиксельная графика: программа Imagem для ПЛК CEGELEC Экран Panelview создается из мнемонических символов, кото- рые размещаются на нем путем выбора из соответствующего ме- ню. Программа Imagem для ПЛК GEM-80 — это система пик- сельной графики, где программист имеет доступ к каждому отдельному пикселу на экране. Здесь, видимо, следует заметить, что Allen Bradley имеет систему пиксельной графики, называе- мую Controlview, a Siemens — видеопроцессор графических изо- бражений SCADIX. Большинство производителей ПЛК распо- лагают обоими типами. Область изображения, создаваемого Imagem, содержит более четверти миллиона пикселов (по 560 в ширину и по 448 в высоту). Точка на экране определяется координатами X и Y, как показано на рис. 6.26, причем начало координат (0, 0) располагается в левом нижнем углу экрана. (В IBM-совместимых компьютерах точке 0, 0 соответствует левый верхний угол экрана.) На любом экране программист может использовать палитру из 16 цветов. Эти 16 цветов могут быть выбраны из палитры, содержа-
312 Программируемые контроллеры Рис. 6.26. Область изображения Imagem щей 4096 цветов, а их оттенки изменяются с помощью переменных в программе ПЛК. Пиксельная графика обладает большими возможностями по срав- нению с блочной графикой, а это значит, что для их использования должны быть применены адекватные средства программирования. Imagem использует язык работы с изображениями, который содержит команды, характерные для высококачественных настольных компью- теров (move, draw и т. д.), и математические функции, в том числе три- гонометрические, для графических построений. В его состав входит также функция CONSTRUCT, представляющая собой подпрограмму для предварительного создания изображений таких устройств, как клапан, транспортер или дозатор, после чего их можно вызывать про- сто по имени (например, VALVE — клапан). Для изображения симво- лов используется набор ASCII (см. табл. 5.1) со 128 неопределенными символами. С помощью символьного редактора их можно переопре- делить так, чтобы программист получил возможность создавать лю- бые желаемые символы. Символы могут быть заданы любого размера (с различными увеличениями в направлениях X и Y). В оставшейся части этого раздела мы рассмотрим некоторые осо- бенности языка формирования изображений Imagem. Это будет все- го лишь краткий обзор (руководство по программированию Imagem содержит более 200 страниц), но тем не менее он дает представление о методе, используемом в системах пиксельной графики. Язык создания изображений очень тесно связан с языками вы- сокого уровня, такими как BASIC или Pascal. Например, чтобы вы- вести на экран простое сообщение, необходимо записать: FOREGROUND WHITE BACKGROUND BLUE
Человекомашинный интерфейс 313 WINDOW 0,0 559,447 MOVE 205,210 SIZE 2 'Have a Nice Day’ Здесь цвета определяются командами FOREGROUND и BACK- GROUND, команда WINDOW говорит об области, отводимой для изображения (весь экран), команда MOVE помешает курсор в точку с координатами X = 205, Y = 210 (почти в центр экрана), a SIZE 2 да- ет двойную высоту текста. В программе ПЛК к тексту могут быть добавлены данные. Пола- гая, что цвета, размер текста и положение (MOVE) уже были уста- новлены, мы можем записать: ‘Feed Rate=’ DECIMAL'’##.##, W[235] ‘L/min’ NEWLINE ‘Tank Level =’ DECIMALW[236] ‘metres’ Здесь программа ПЛК получает доступ к значениям переменных, которые должны быть выведены на экран. Значение переменной «Feed Rate» (скорость подачи) хранится в ПЛК GEM в ячейке [235], а значение переменной «Tank Level» (уровень в резервуаре) - в ячейке [236] (описание таблицы данных в GEM-80 см. в разд. 2.3.4). Команда DECIMAL говорите том, как должны быть представлены эти данные, определяя как число символов, так и положение деся- тичной'точки. Знак вставки л соответствует пробелу (пустой пози- ции), а знак # — цифре. Приведенный фрагмент программы обес- печит вывод на экран сообщения: Feed Rate = 15.25 L/min Tank Level = 3.7 metres В программе можно использовать и математические функции, на- пример: ‘Total Water Flow =’ DECIMAL, "####, G[17] + 10*G[23] + W[146]/2 ‘gpm’ (gpm = галлонов в минуту. — Прим, перев.)
314 Программируемые контроллеры Цвета изображения и фона были установлены нами ранее по умол- чанию. Программист может задать цвета на каждом из экранов, вы- брав их из палитры в 16 цветов, и даже может изменять их с помощью переменных программы ПЛК. Цвет имеет свое название и, в про- стейшем случае, соотношение красной, зеленой и синей составляю- щих в диапазоне 0—100 %. Например, вы можете определить цвет как COLOUR PINK 80, 10, 20 (Pink = розовый. — Прим, перев.) или сделать его управляемым переменными объекта: COLOUR PWRLEVEL G[ 10], G[ 11 ], G[ 12] В последнем случае конструкция FOREGROUND PWRLEVEL при- ведет к изменению цвета текста (или графического объекта) на сле- дующее значение, определяемое переменными G[ 10]—G[ 12]. Мигающие символы имеют более сложное определение через основные цвета (RGB) в момент появления (их длительность соста- вляет десятые доли секунды) и следующие за ними измененные цвета (также длительностью в десятые доли секунды), например COLOUR ALARM 100,0,0,4;50,0,0,2 приведет к чередованию цвета от ярко-красного до тускло-красного. Символы и мнемонические знаки рисуются с помощью линий, дуг и закрашенных блоков. Линия изображается с помощью коман- ды DRAW X, Y, начиная от текущего положения курсора и до точки с координатами X, Y. Инструкция MOVE 100, 100 DRAW 200, 200 создаст линию, изображенную на рис. 6.27 (а), а MOVE 100, 100 DRAW 200, 200 DRAW 300, 100 DRAW 100, 100 приведет к созданию фигуры на рис. 6.27 (б). В данных примерах все положения на экране заданы в абсолют- ных единицах. Часто бывает полезно использовать относительные
Человекомашинный интерфейс 315 Рис. 6.27. Инструкция DRAW: (а) простая линия; (б) треугольник положения, особенно когда построение изображений производит- ся с участием переменных. Соответствующими командами являют- ся RMOVE и RDRAW. Фигура на рис. 6.27 (б) может быть создана следующим образом: MOVE 100, 100 RDRAW 100, 100 RDRAW 100, -100 RDRAW-200, 0 Ширина линии задается с помощью команды SIZE. Например, ин- струкция SIZE 5 устанавливает ширину линии в 5 пикселов. Тип ли- нии (пунктирная, штрих-пунктирная и т. д.) указывается суффик- сом; например, DRAW 157, 203, 3 создает пунктирную линию (обозначаемую суффиксом 3), продол- жающуюся до положения 157, 203. Команды рисования могут быть связаны со значениями в ячей- ках таблицы данных ПЛК. Например, чтобы нарисовать столбико- вую диаграмму, мы должны написать: SIZE 7 MOVE 0, 400 DRAWW[62], 400 MOVE 20, 20 DRAW 20, W[45]/62.5 + 15
316 Программируемые контроллеры В результате будут нарисованы две столбиковые диаграммы: одна горизонтальная, непосредственно связанная с W[62], и одна верти- кальная, определяемая битом математического выражения, приме- няемого к содержимому W[45]. С помощью команды FOR можно нарисовать блок столбиковых диаграмм. Эта команда действует аналогично циклу FOR/NEXT в языке BASIC или конструкции FOR/BEGIN/END в языке Pascal. Форма команды очень похожа на то, как это делается в языке Pascal, где открывающая скобка «(» используется для начала, а за- крывающая «)» — для конца. Например, SIZE 7 FORA = 1 ТО 10 (MOVE 20 *А, 20 DRAW20*A, W[15 + А]) создает 10 вертикальных столбиковых диаграмм, соответствующих значениям в W[16], W[ 17] и т. д. до W|25], Здесь А есть внутренняя переменная Imagem. Теперь вы можете задать вопрос: а как можно изменить графическое изображение, управляемое переменными объекта, не удаляя их старые значения или не вызывая раздражающего мерцания экрана? Как это можно сделать, показано на рис. 6.28. Imagem имеет два экрана — назо- вем их А и В. Если активен экран А, то экран В в фоновом режиме обно- вляется с помощью программы. Когда это обновление завершено, про- исходит смена экранов: отображается экран В, а экран А в это время обновляется. Пользователь этого переключения не замечает, а само об- новление происходит очень плавно. Это позволяет смоделировать стрел- ку аналогового измерительного прибора с помощью инструкций MOVE 200, 200 DRAW50*COS [90*W[ 127]/1500], 50*SIN [90*W[ 127]/1500] что создает линию длиной 50 пикселов из позиции 200, 200 под уг- лом, определяемым значением в W[127], причем 90° соответствует значению 1500. Дуги можно рисовать с помощью команды VIA: MOVE 100, 100 DRAW 300, 100 VIA 200, 200 создает изображение, приведенное на рис. 6.29 (а), а
Человекомашинный интерфейс 317 Рис. 6.28. Обновление экрана в Imagem Рис. 6.29. Инструкция VIA: (а) дуга; (б) окружность MOVE 100, 100 DRAW 100, 100 VIA 300, 100 дает окружность, изображенную на рис. 6.29 (б). С помощью предопределенных слов можно получить изображе- ние треугольника: TRIANGLE Х1, Y1, Х2, Y2, ХЗ, Y3 и прямоугольника: RECTANGLE X1,Y1,X2,Y2 где координаты двух точек соответствуют противоположным углам. Суффикс, как и в случае команды DRAW, определяет тип линии
318 Программируемые контроллеры (сплошная, пунктирная). Программист может задать очертание не- которого объекта, например транспортера, а затем просто повто- рять его с помощью команды CALL CONVEYOR (список параметров, например, размер, положение, состояние) Очертания сплошных объектов можно получить, указав любую точку внутри CLOSED (т. е. замкнутой) фигуры и используя коман- ду FILL (т. е. заливка, закраска). Чтобы идентифицировать состояние объекта управления, часто необходима проверка некоторого условия; типичными примерами являются аварийные состояния или состояния работает/останов- лен. Это обеспечивается с помощью конструкции IF/THEN/ELSE, которая, в простейшем виде, может привести к изменению цвета: MOVE 50, 450 IF A[14].3THEN FOREGROUND GREEN (‘Running’) ELSE (FOREGROUND RED ‘Stopped’) где сигнал от объекта А[ 14]. 3 изменяет сообщение и цвет объекта на экране. До сих пор у нас речь шла только об одном экране. Однако что- бы быть по-настоящему полезной, графическая система должна иметь возможность отображать несколько экранов и определен- ным образом переключаться с одного на другой экран. Рассмотрен- ные выше экраны (в GEM они имеют название Formats) редактиру- ются и запоминаются в плате ЗУ, к которой имеется доступ из ПЛК GEM-80 и одного или нескольких процессоров Imagem. Imagem может одновременно отображать до четырех экранов (подобно ок- нам в IBM-совместимых компьютерах). Управляющий ПЛК GEM- 80 в своей таблице данных имеет отдельную таблицу L, в которой каждая Imagem в свою очередь имеет четыре ячейки памяти, первая из которых, естественно, обозначается как L0. LI, L2, L3. По этим адресам записываются номера экранов, которые подлежат отобра- жению. Для простоты, из неперекрывающихся экранов может быть использован только один из четырех, а всем остальным будет при- своено значение ноль. На рис. 6.30 приведены типичные экраны Imagem.
Человекомашинный интерфейс 319 Рис. 6.30. Экраны ПЛК GEM-80, представляющие изменения переменных объекта и столбиковые диаграммы (любезно предоставлено CEGELEC)
320 Программируемые контроллеры 6.6.4. Семейство Siemens Simatic HMI Фирма Siemens предоставляет широкий диапазон терминалов для оператора, начиная от простейших, где отображаются только тек- стовые сообщения, до сложных компьютерных систем Scada. Ти- пичные образцы семейства HMI показаны на рис. 6.31. Реализо- ванные на основе Windows ME, они связываются с управляющим ПЛК с помощью шины Profibus DP (см. разд. 5.5.7) и других рас- пространенных стандартов последовательной коммуникации. Терминалы конфигурируются с использованием программы Siemens ProTool, как показано на рис. 6.32. Здесь на сенсорный экран терминала ТР170В добавляется поле для изображения графика тренда. Широкое распространение получают экраны, основанные на пользовательском интерфейсе, имеющемся в распоряжении опера- тора. Среди них отдельного упоминания заслуживает устройство Siemens С7. Вместо того чтобы иметь отдельный ПЛК и отдельный терминал оператора, здесь оба этих компонента объединены в од- ном устройстве. Эта модель использует стандартную программу Siemens S7 для управляющего ПЛК и программу ProTool для кон- фигурации экрана. Рис. 6.31. Некоторые образцы семейства Siemens HMI
Человекомашинный интерфейс 321 -•j-Wh*».»!— ----------------------*------~ Т«/иаыЧр»«4Грг~^>.й|г •« fsn 1(|ЫЙЬ “ ^ам^с-й. ДВМРЯ^Т ' ’ ~ ~ Fw»rfi>toa<«hti> !н«»м **s) эдтшсодр ftfeM : 4J ££ «5? * /ЗЫМККя^ЯВЛ..! ^ЛПя*»Ю ;VStM*nt*r<>TwVFr«„ »« Рис. 6.32. Добавление и конфигурирование поля для графика тренда наТР170В с использованием программы ProTool 6.6.5. Практические рекомендации Одним из основных преимуществ графических дисплеев является то, что они позволяют исправлять ошибки, не оставляя последствий, хо- тя и с некоторыми издержками. Все же гораздо лучше не делать такие ошибки с самого начала. Возможно, наиболее существенная реко- мендация — это добиться того, чтобы система была спроектирована специально для оператора, которому предстоит сидеть перед ней око- ло восьми часов в день, а не для директора или инспекторов. Любым способом старайтесь иметь производящие впечатление «экраны для инспекторов», но помните о несчастном операторе. В первую очередь помните о том, что вы создаете не видеоигру, а нечто более важное. Характерной ошибкой является избыточное использование ми- гающих дисплеев (и мигающих ламп на пульте). Видеодисплей (или пульт) при нормальных условиях работы не должен мигать или мер- цать. Мигание должно использоваться только для того, чтобы при- влечь внимание оператора, скажем, к оставшимся без внимания аварийным ситуациям, и оно должно оставаться до тех пор, пока оператор не предпримет надлежащие действия. Что касается экра- на, то небольшой мигающий прямоугольник рядом с фиксирован-
322 Программируемые контроллеры ным текстом намного лучше для восприятия, чем мигающий текст. Изменение яркости текста (от большой до малой) предпочтитель- нее, чем появление и исчезновение этого текста на экране и изме- нение цветов текста и фона, что очень трудно для восприятия. Другой проблемой являются экраны, которые заставляют вас пользоваться только верхним регистром. Единственное, что может побудить вас к этому, — это полный отказ дисковой системы. Текст, набираемый в нижнем регистре, намного проще читать. Использо- вание прописных букв в качестве символа для первой буквы каждо- го существительного или глагола также облегчает восприятие тек- ста. Обратите внимание на то, как размещается текст на дорожных знаках. Все современные экраны способны работать с текстом, на- бираемым в верхнем и нижнем регистрах. Прописные буквы ис- пользуйте только для того, чтобы привлечь внимание оператора. Не забывайте о правилах оформления текста. Все экраны должны быть между собой согласованы и ни в коем случае не переполнены информацией. Хорошим правилом являет- ся использование 25—35% площади экрана, т. к. это позволяет опе- ратору быстро просмотреть его в поисках нужной информации. Со- гласованность означает, что одинаковые действия на всех экранах выполняются одним и тем же способом, а цвета на разных экранах имеют один и тот же смысл. Например, не должно быть так, чтобы насосы на одном экране управлялись с помощью отдельных кно- пок пуск/стоп, а на другом — с помощью одной кнопки с двойным нажатием. Если концевой выключатель, фиксирующий, скажем, окончание полного хода механизма, на одном экране обозначен желтым цветом, то и на всех остальных экранах он должен быть желтым (а не красным, зеленым или синим). Проблемы согласо- ванности обычно возникают, когда в управлении участвуют не- сколько человек, и их можно избежать, если в самом начале проек- тирования установить определенные стандартные правила. Яркие цвета (желтый/белый) утомляют глаза, и следует избегать их использования на большой площади экрана (а также в качестве цветов фона). В противном случае оператор будет вынужден умень- шать яркость, что может привести к потере информации, высвечи- ваемой темными цветами. Наиболее «спокойным» цветом для фона является серый. Синие символы на черном фоне особенно склонны к исчезновению, если уменьшается яркость или контрастность. Хорошими цветовыми сочетаниями являются черный на зеле- ном, черный на желтом, черный на красном, красный на белом, си- ний на белом, зеленый на белом, красный на черном, зеленый на черном и белый на синем (последняя комбинация очень хороша
Человекомашинный интерфейс 323 для больших областей текста и поэтому часто используется в тек- стовых процессорах). Следует избегать таких сочетаний цветов, как желтый/зеленый и желтый/белый (и наоборот), и синий на черном (в данном случае все зависит от степени контрастности и яркости на экране). Лазур- ный цвет на фоне синего также грозит исчезновением в надписи на блоке голубого или синего цвета. При использовании сенсорных экранов полезно придерживаться правила: цветное изображение на черном фоне для неактивирован- ных кнопок и черное на цветном фоне для их активированного со- стояния. Например, при использовании кнопок пуск/стоп кнопка «пуск» в состоянии остановки должна иметь надпись «Пуск» зеле- ным цветом на фоне черного, а кнопка, соответствующая состоянию остановки, должна иметь надпись «Остановлено» черным цветом на фоне красного. Если нажата кнопка «пуск», это приводит к измене- нию цвета надписи «Пуск» в черный на зеленом фоне, в то же время изменяя надпись «Стоп» в красное на черном фоне. Обратите внима- ние на изменения цвета надписей при соответствующих действиях. Необходимо уделять особое внимание окружающей среде, в ко- торой будет эксплуатироваться дисплей. Большинство экранов ус- танавливаются под некоторым углом, и они могут досаждать отра- жениями от окон и верхнего освещения. Очень яркое освещение (и особенно прямой солнечный свет) может сделать изображение на экране совершенно нечитаемым. На дисплеи также отрицательно влияют магнитные поля. Бли- зость к электродвигателям, трансформаторам или сильноточным кабелям будет приводить к пропаданию изображения и изменению цветов. Этого можно избежать путем экранирования монитора спе- циальными каркасами из магнитных сплавов (обычные стальные или железные каркасы здесь не пригодны). Часто не считаются с размерами и весом мониторов, что затруд- няет их аккуратную установку и делает еще более сложной замену. Доступ к ним должен быть как можно проще; попытка удержать на месте одной рукой дисплей весом 25 кг, пока вы другой рукой от- винчиваете «бесконечно длинные» монтажные болты, ни к чему хорошему не приведет. Дисплеи тоже выходят из строя, и это надо учитывать при про- ектировании. Если все управление объектом производится с помо- щью экранов, то что может случиться за время порядка десяти ми- нут, необходимое для поиска запасного прибора и замены отказавшего? Чтобы справиться с этой проблемой, часто использу- ют дублирование дисплеев (один основной и один резервный).
324 Программируемые контроллеры 6.6.6. Ввод данных Оператор, разумеется, должен вводить данные и производить опре- деленные действия. Одним из пригодных для этого средств является клавиатура, но некоторые люди боятся работать с ней (здесь помощь могут оказать домашние компьютеры), а кабель, соединяющий кла- виатуру с устройством, всегда оказывается склонным к поврежде- нию. Наличие грязи вблизи клавиатуры может привести к тому, что клавиши будут заблокированы, поэтому в таких условиях лучше ис- пользовать мембранную клавиатуру с тактильной обратной связью (по ощущению). Другим полезным средством являются сенсорные клавиши. Они представляют собой ряд кнопок (чаще всего 10), расположен- ных на экране ниже группы программно-управляемых блоков. При смене экрана их назначение также может быть изменено с помо- щью кнопок, как показано на рис. 6.31. Если оператору нужно получить доступ к точкам, располо- женным где угодно на экране, то лучшим средством для этого яв- ляется шаровой манипулятор. С его помощью можно управлять перемещением курсора по экрану так же, как это выполняется посредством мыши. Все обычные действия можно выполнить, используя три кнопки на шаровом манипуляторе и цифровую клавиатуру. Шаровые манипуляторы удивительно хорошо рабо- тают в загрязненных условиях, так как они внизу имеют открытое отверстие, куда просто проваливается грязь. Мыши выполняют аналогичные функции, но они подвержены повреждению и за- грязнению и поэтому более пригодны для работы в офисных по- мещениях. Выше уже упоминались сенсорные экраны. Сочетая в себе об- ласть изображения и органы управления, которыми пользуется оператор, они представляют собой очень компактный интерфейс, но к их использованию следует подходить с осторожностью. Дотра- гиваясь до той или иной кнопки, оператор совершенно не имеет та- ктильной обратной связи; по этой причине использование сенсор- ных экранов не рекомендуется в случаях, когда оператор, производя управляющие действия, должен смотреть на объект (а не на экран). Кроме того, очень легко можно по ошибке дотронуться не до той кнопки. То же самое может произойти, когда экран про- тирается, поэтому он всегда должен быть чистым. Непрерывные прикосновения к экрану оставляют на нем жирные отпечатки от пальцев, еще более осложняя проблему.
Человекомашинный интерфейс 325 6.7. Отображение сообщений Когда на экран нужно вывести простое текстовое сообщение, воз- можно, с содержащимися в нем данными, это можно сделать с по- мощью обычного последовательного канала связи, по которому передаются символы в коде ASCII. Управляющий ПЛК просто хранит в своей памяти строку из символов ASCII и выводит ее вместе с переменными данными через устройство типа модуля ASCII, описанное в разд. 5.2.8. Альтернативный способ заключа- ется в том, чтобы хранить заранее закодированные сообщения в самом устройстве отображения, причем ПЛК имеет несколько па- раллельных линий, позволяющих ему, например, послать команду «Вывести сообщение 23». 6.8. Комплексы SCADA Персональные компьютеры обладают гораздо лучшими графиче- скими возможностями, чем ПЛК средней мощности, поэтому не- удивительно, что они все шире используются в качестве промежу- точной связи между человеком и ПЛК. Они обычно называются системами SCADA (Supervisory Control and Data Acquisition — дис- петчерское управление и сбор данных). Как говорит само название, они действуют как супервизор высшего уровня и обычно использу- ются для задания уставок переменным объекта и отображения со- стояния объекта на экранах высокого качества. Они также обеспе- чивают запоминание данных о работе объекта в течение нескольких дней, что позволяет исследовать все, что произошло после того или иного события. Другими распространенными особенностями SCADA явяляют- ся отслеживание тенденций (построение графиков изменения во времени переменных объекта) и аварийная сигнализация. К ис- пользованию последней следует подходить с крайней осторожно- стью. Простота дополнения системы SCADA средствами аварий- ной сигнализации может привести к появлению большого количества сигналов, которые способны ошеломить оператора, и, следовательно, часть из них может быть проигнорирована. Счита- ется, что избыточное количество аварийных сигналов было основ- ным определяющим фактором взрыва на нефтеочистительном за- воде в Милфорд Хэйвн в 1994 г., когда операторы в течение нескольких часов получали аварийные сообщения, следовавшие с частотой более тридцати в минуту. В этом отношении SCADA явля- ются весьма уязвимыми, но любая система аварийной сигнализа- ции должна иметь группы приоритетов и некоторое устройство от-
326 Программируемые контроллеры бора, которое фиксирует важные аварийные сигналы. Проблема аварийной сигнализации была рассмотрена ранее в разд. 6.4. Необходимо также позаботиться об обеспечении безопасности системы. Если происходит отказ системы SCADA, то какие средст- ва управления потребуются в течение тридцати минут или около этого, необходимых для ее замены на запасную, может ли объект работать «вслепую» в течение этого времени, или должна ли всегда быть в наличии вторая, резервная система? На рис. 6.33 изображен типичный дисплей SCADA высокого ка- чества, пристроенный к популярному комплекту Citect. Он содер- жит много объектов, которые связаны с данными, хранящимися в ПЛК. Работа, как и в случае Panelview, описанной в разд. 6.6.2, орга- низуется с помощью тегов. Их можно рассматривать как базу дан- ных, содержащую информацию об объекте, которая накапливается в ПЛК. Описание и составление базы данных с тегами являются ос- новной частью работы по построению системы SCADA; что касает- ся создания экранов, то это просто несравненное удовольствие! На рис. 6.34 приведены два типичных тега. Первый из них — это дискретный сигнал, означающий, что насос включен. Поле Рис. 6.33. Типичный дисплей SCADA, созданный при помощи Citect. Каждый объект на экране может быть связан с данными в ПЛК
Человекомашинный интерфейс 327 б Рис. 6.34. Описание тегов в системе SCADA. Всегда должен быть использован совместимый метод описания тегов: (а) дискретный тег (On/Off). Обратите внимание, что имя тега начинается с буквы d (от digital - дискретный); (б) тег, представляющий целую переменную, имя тега начинается с буквы i (от integer - целое) I/O Device Name определяет, от какого ПЛК может быть получен этот сигнал. Метод связи для получения данных от ПЛК задается в каком-то другом месте (например, в сети Ethernet). Адрес, бит 8 слова N70:0, определяет, откуда могут быть прочитаны данные. Если этот бит находится в состоянии «истина», то активизирует- ся пусковое устройство насоса 1, и эта информация может быть использована на экране, например для изменения цвета графиче- ского символа насоса на зеленый. Второй тег, приведенный на рис. 6.34 (б), соответствует цифро- вым данным и представляет значение температуры. Он получается от ПЛК, обозначенного как Env_C_Pulpit. К цифровым данным мо- жет быть применено масштабирование; в данном случае 0—1000 со- ответствует диапазону температуры 0—100.0 °C. Значение перемен-
328 Программируемые контроллеры б Рис. 6.35. Определение свойств объекта: (а) описание простого текстового объекта; (б) задание цвета для текстового объекта
Человекомашинный интерфейс 329 ной может постоянно представляться в инженерных единицах (на- пример, psi, °C) и в формате с фиксированной точкой (например, ##.#), но в данном примере это не используется. Как только теги определены, они могут быть использованы на дисплее. Объекты выбираются так, как это делается в большинстве пакетов программ графики. Каждый объект имеет большой массив параметров, который может быть связан с тегами. На рис. 6.35 при- веден простой пример текстового объекта. Здесь мы видим два кон- цевых выключателя, сигнализирующих о том, в открытом или за- крытом положении находится регулятор тяги. На рис. 6.35 (а) приведен текст, связанный с этими концевыми выключателями. Если высвечивается только одна строка текста, то она указывает положение. Если не высвечивается ни одна строка, что может, на- пример, иметь место при движении заслонки, то в нижнем поле по- является ???? Если высвечиваются сразу обе строки, то это свиде- тельствует об ошибке. На рис. 6.35 (б) показано, как устанавливается цвет текста для каждого из четырех возможных положений. Для разрешенных по- Рис. 6.36. Прослеживание тенденции случайного процесса в системе SCADA; графики отражают изменение критически важных переменных объекта. Фото любезно предоставлено компанией Citect
330 Программируемые контроллеры ложений (открыто/закрыто) выбран зеленый цвет, для переходного режима — желтый, а для ошибки — красный. Заметим, однако, что для каждого объекта можно использовать и другие ярлыки, соот- ветствующие разным функциям. Диапазон возможностей здесь не- ограничен. Одной из сильных сторон систем SCADA является возможность слежения за характером изменения переменных. Оператор может создать дисплей, предназначенный специально для этой цели, и на него можно вывести любую переменную, снабженную тегом. Мож- но также выбирать и изменять масштабы по оси Y (для перемен- ной) и по оси X (для времени), что, например, помогает в обнару- жении неисправностей. На рис. 6.36 изображен типичный для этого случая дисплей, используемый для наблюдения за случайным процессом. Обратите внимание на наличие на экране средств упра- вления прокруткой и изменением масштабов изображения.
7. Управление производственными процессами с помощью обычных компьютеров 7.1. Введение Большая часть этой книги посвящена применению в системах уп- равления программируемых контроллеров. В данной главе мы рас- смотрим, как для той же самой цели могут быть использованы обычные компьютеры. В разд. 5.3.5 была представлена идея иерар- хии управления, а типичная организация такой иерархии изобра- жена на рис. 5.28 (а). Здесь на высшем уровне 3 находится универ- сальная вычислительная машина компании (или несколько таких машин), используемая для бухгалтерского учета, подготовки отче- тов и организации управления. Основу уровня 2 составляют мощ- ные мини-компьютеры типа DEC-VAX и 11 /73s. В их функции вхо- дит распределение задач, генерация отчетов о поведении объекта и сбор информации. Нижний уровень 1 непосредственно связан с объектом и осуществляет управление им в реальном времени. На этом уровне задействованы ПЛК, а мы рассмотрим, как на нем мо- гут быть использованы компьютеры универсального назначения, часто совместно с ПЛК. Мы уже видели, какими мощными возможностями обладают ПЛК, поэтому возникает естественный вопрос — а зачем тогда во- обще нужно использовать компьютер? Главными преимуществами компьютера являются выдающаяся способность математической обработки данных, высокое быстродействие и простота соедине- ния с принтерами, клавиатурой и другими внешними устройства- ми. Чтобы изменить программу, обычно требуются специальные знания. В зависимости от прикладной задачи это может быть либо преимуществом, либо недостатком. Программа ПЛК проста в по- нимании и легко может быть модифицирована. При управлении техническими системами бывает особенно трудно контролировать и отслеживать изменения в программе. Все ПЛК обладают тем или иным видом контроля доступа с по- мощью клавиш и паролей, но они являются слабозащищенными. Доступ должен быть предоставлен обслуживающему персоналу, ко- торому известны соответствующие коды или пароли. Но всегда найдутся «программисты-полуночники». Компьютер с компилиру- емой программой, написанной на языке С и хранящейся в ПЗУ, за-
332 Программируемые контроллеры щищен так же, как банковское хранилище. Если прикладная зада- ча имеет несколько реальных входов/выходов, требует выполнения множества математических операций, вряд ли будет подвержена изменениям, использует несколько принтеров или графических мониторов, или нуждается в особой защите, то разумнее всего бу- дет выбрать для этого обычный компьютер. В некоторой степени все перечисленные выше особенности мож- но реализовать с помощью специальных модулей, работающих сов- местно с ПЛК. Например, фирма Allen Bradley имеет модуль BASIC (1771-DB), который может быть включен в состав системы PLC-5. Это небольшой компьютер, который можно запрограммировать на языке BASIC и связать его с периферийными устройствами (графи- ческими терминалами, клавиатурами, принтерами и т. д.) через пор- ты RS232, а с данными в ПЛК — через блок передачи чтения и запи- си (описанный в разд. 4.4.5). На рис. 7.1 приведен пример, когда математическая операция выполняется в модуле BASIC (действую- щем наподобие математического сопроцессора). Другой задачей, ча- сто выполняемой подобным модулем, является подготовка печатных отчетов при отсутствии компьютера высшего уровня. В общем случае компьютеры этого уровня делятся на две катего- рии: системы с шинной организацией и предназначенные для ис- пользования в промышленности клоны широко распространенного семейства IBM PC. Дальнейший материал этой главы посвящен крат- кому описанию компьютеров промышленного назначения, принад- лежащих к этим классам. Более подробную информацию можно най- Рис. 7.1. Модуль BASIC фирмы Allen Bradley
Управление производственными процессами с помощью обычных компьютеров 333 ти в книгах Bus Based Industrial Process Control и PC Based Instrumentation and Control. Автором обеих книг является М. Тули (M.Tooley), опубли- кованы они издательством Butterworth Heinemann. 7.2. Машины с шинной организацией 7.2.1. Введение Архитектуру любого компьютера (будь то ПЛК, персональный компьютер, машина для игр или универсальная ЭВМ компании) можно представить в виде рис. 7.2. Она состоит из центрального процессора (ЦП), запоминающего устройства (ЗУ) и устройств вво- да/вывода (УВВ), связанных с внешним миром. Все они взаимо- действуют при помощи системы шин (термин обязан происхожде- нием автобусу или омнибусу — это зависит от того, с каким средством передвижения вы лучше знакомы), которая имеет три компонента. Шина данных служит для передачи данных между от- дельными элементами: из УВВ в ЗУ, из ЗУ в ЦП и т. д. По адресной шине передаются адреса ячеек ЗУ или портов УВВ, связанных с пе- реносом данных, например, «передать данные из порта 17 УВВ в регистр С» или «запомнить содержимое регистра D в ячейке памя- ти с шестнадцатеричным адресом Е147». Последняя шина — это шина управления. По ней передаются сигналы синхронизации и подлежащие выполнению инструкции. Эта структура позволяет реализовать идею расширяемости ком- пьютера. На печатной схеме объединительной платы создается от- дельная шина с установленными местами подключения к ней дан- ных, адресов и управляющих сигналов. Проектировщик в результате может использовать сменные платы с ЦП, памятью, а Внешний мир Рис. 7.2. Архитектура компьютера
334 Программируемые контроллеры также видеоплаты и платы ввода/вывода, чтобы сконфигурировать компьютер, предназначенный для выполнения требуемой задачи. Существует несколько стандартов шин, наиболее распространен- ные из них кратко описаны в разд. 7.2.3. IBM-совместимые персо- нальные компьютеры также имеют подобную архитектуру, но про- ектировщик обладает меньшей свободой в выборе центрального процессора. Термин «машина с шинной организацией» на самом деле ис- пользуется в двух случаях. Второй из них предполагает, что полно- стью укомплектованный главный компьютер связывается плоским кабелем с несколькими внешними устройствами. Эти устройства могут считывать данные из компьютера или записывать их в него. Сначала мы рассмотрим шину GPIB (IEEE-488), которая относит- ся именно к этому второму типу. 7.2.2. Шина параллельного интерфейса IEEE-488 Эта система первоначально была разработана фирмой Hewlett Packard для связи компьютеров HP с аппаратурой HP. Она была известна под названием HPIB (Hewlett Packard Instrumentation Bus). В 1975 г. Амери- канским институтом инженеров по электротехнике и электронике (IEEE) был предложен стандарт IEEE-488, широко известный также как GPIB (General Purpose Interfase Bus — интерфейсная шина общего назначения). Эта шина позволяет соединять с компьютером до 15 внешних устройств при общей длине линии связи 20 м. Шина 1ЕЕЕ-488 может поддерживать три типа устройств: при- емники информации, источники данных и устройства управления. Приемники получают данные от шины — типичными примерами являются принтер или дисплей. Источники данных при наличии запроса помешают их на шину — типичным примером является из- мерительное устройство. Устройство управления присваивает роль любого из других устройств, подключаемых к шине, но в каждый данный момент времени активным может быть только одно уст- ройство управления. Обозначения приемника/источника данных и устройства управления являются их атрибутами (но не описаниями их функций), и многие устройства могут выполнять более чем одну роль. Например, компьютер может действовать как любое из трех перечисленных устройств. Сигналы на шине IEEE-488 могут быть объединены в группы: двунаправленная шина данных (выполняющая три роли — переда- чу данных, выбор адреса и выбор устройства управления), контроль передачи, управление интерфейсом и заземления/экраны, как от- ражено в табл. 7.1.
Управление производственными процессами с помощью обычных компьютеров 335 Таблица 7.1 Сигналы на шине IEEE-488 Группа Обозначение Описание Вывод Шина данных DIO 1 Ввод/вывод данных 1 1 2 2 2 3 3 3 4 4 4 5 5 13 6 6 14 7 7 15 8 8 16 Контроль передачи DAV Данные достоверны 6 NRFD Данные не готовы 7 NDAC Данные не получены 8 Управление IFC Интерфейс свободен 9 интерфейсом SRQ Запрос на обслуживание 10 ATN Обслуживание 11 REN Разрешение дистанционной связи 17 Е01 Окончание или опознавание 5 Заземления/экран Экран 12 DAV Земля 18 NRFD Земля 19 NDAC Земля 20 IFC Земля 21 SRQ Земля 22 ATN Земля 23 LOGIC Земля 24 Передача сигналов осуществляется уровнями ТТЛ, где уровень О В соответствует логической единице, а 3.5 В — логическому нулю (инверсия обычных сигналов ТТЛ). Использование свободных коллекторов позволяет осуществить функционирование двунапра- вленной шины данных и передавать двунаправленные сигналы контроля (такие как NDAC и NFRD). Шина данных используется в нескольких целях. Что само собой разумеется, по ней передаются данные к одному или более прием- никам или данные, поступившие от источников. Она может быть использована в качестве адресной шины, чтобы разрешить или за- претить связь с одним (или более) устройством. Поддерживается до 15 адресов первичных устройств и цо 16 вторичных адресов. Вто- ричный адрес обычно используется для управления вспомогатель- ной функцией первичного устройства. Например, для устройства аналогового входа должен быть выбран канал со вторичным адре-
336 Программируемые контроллеры сом, а значение входного сигнала прочитано по первичному адресу. Адрес 31 выполняет специальную функцию, суть которой в том, чтобы заблокировать все активные приемники. Действие шины данных определяется активным устройством управления, которое использует линию ATN для сообщения о том, передаются по шине данные или информация в виде управ- ляющих сигналов (адресов). При сигнале низкого уровня в ли- нии ATN источник, бывший до этого активным, отключается и может быть выбран новый режим управления в соответствии с табл. 7.2. Таблица 7.2 Выбор режима управления с помощью линии ATN. Бит 7 не используется Функция 7 6 5 4 Бит 3 2 1 0 Передать команду ССССС X 0 0 С С С с с Передать адрес приемника LLLLL X 0 1 L L L L L 11ередать адрес источника 11111 X 1 0 Т Т Т т т Передать вторичный адрес SSSSS X 1 1 S S S S S Главная привлекательность шины IEEE-488 - в простоте ее использования, когда все операции полностью прозрачны для про- граммиста, имеющего дело с языком высокого уровня. Например, инструкция OUTPUT 702, Setpoint служит для передачи данных переменной «Setpoint» в компьютере (адрес 7 представляется как 700 и соответствует передатчику), где приемник имеет адрес 02. Действие шины, соответствующее этой инструкции, состоит из четырех этапов: 1. Отмена выбора всех приемников. 2. Выбор передатчика данных (7). 3. Выбор приемника данных (02). 4. Пересылка данных. Многие устройства, такие как измерительные приборы или компь- ютеры семейства IBM PC, могут быть оснащены интерфейсными платами IEEE-488.
Управление производственными процессами с помощью обычных компьютеров 337 7.2.3. Системы с монтажной шиной Системы с монтажной шиной представляются в виде рис. 7.3. Объ- единительная панель обеспечивает передачу сигналов по шине данных, адресной шине и шине управления, и в нее могут быть вставлены различные платы, чтобы создать систему требуемой кон- фигурации. Преимущества системы с шинной организацией очевидны: это стандартизация, использование имеющихся в наличии плат, лег- кость расширения и возможность ориентации на конкретного пользователя. К сожалению, почти все производители микропро- цессоров и многие производители аппаратных средств изобрели собственные стандарты, с различной длиной слов данных (8, 16 или 32 бита), различными диапазонами адресов и, конечно, различны- ми краевыми разъемами и компоновками выводов. Но, кажется, появляются некоторые обшие стандарты, особенно стандарты шин VME и STE. Шина VME - это система, первоначально разработанная для 16-битовых машин, за основу которой была принята более ранняя 16-битовая шина, известная под названием Versabus. 24-битовая ад- ресная шина обеспечивает большой диапазон адресов. Появление 32-битовых микропроцессоров, таких как Intel 80386 и Motorola 68020, позволило увеличить возможность шины VME, в частности, Рис. 7.3. Компьютер с шинной организацией
338 Программируемые контроллеры используя второй разъем, оперировать с 32-битовыми данными. Таким образом, эта шина существует в двух вариантах — 16-битовом (с одним 96-штырьковым разъемом DIN 41612) или 32-битовом ( с двумя такими разъемами). В 32-битовом варианте адресная шина также была расширена до 32 бит. Любые платы, вставляемые в ши- ну VME, являются полностью совместимыми. При наличии высокой тактовой частоты (24 МГц), 32-битовой шины данных и огромного диапазона адресов шина VME с полным основанием может использоваться в большинстве крупных про- мышленных систем управления. Она незаменима в случаях, когда решающим фактором является быстродействие. Однако она доста- точно сложная и дорогая, и, как сказал один пользователь, «не ез- дите в магазин за покупками на гоночном автомобиле Формулы-1, ходите туда пешком, пользуйтесь велосипедом или семейным лег- ковым автомобилем». К этой последней категории относится шина STE (и все ПЛК, рассматриваемые в оставшейся части данной книги). Шина STE это система с 8-битовой шиной данных, ведущая свое происхожде- ние от более ранней шины STD. Она имеет 20 адресных линий (по- зволяющих иметь доступ к области памяти объемом более 1 мега- байта) и 4 килобайта адресуемых входов/выходов, а также официально признана стандартом IEEE-1000. Это обеспечивает совместимость аппаратуры разных производителей и привело к то- му, что данная шина стала признанным стандартом обшего назна- чения в случаях, когда не требуется более высокое качество, дости- гаемое с помощью шины VME. Шина STE имеет много привлекательных особенностей. Все платы подогнаны под компактный размер Eurocard (100 х 160 мм), а соединение их с объединительной панелью осуществляется с по- мощью прочного разъема, состоящего из двух частей (типа DIN 41612) и устойчивого к вибрации и ударам. Шина STE была задумана как интерфейс между ведущим про- цессором и широким диапазоном входных/выходных плат. Тип ми- кропроцессора особого значения не имеет — это может быть любой микропроцессор, обеспечивающий интерфейс между платой ЦП и объединительной панелью и удовлетворяющий определенным стандартным требованиям. Шина может поддерживать до трех ве- дущих центральных процессоров, хотя, разумеется, только один из них может быть активным в любой данный момент времени. В слу- чаях, когда между разными ведущими ЦП возникает состязание, выбор управления шиной производится с помощью четко установ- ленной процедуры.
Управление производственными процессами с помощью обычных компьютеров 339 7.2.4. Клоны IBM PC До начала 1980-х мир настольных персональных компьютеров (ПК) отличался широким разнообразием моделей при отсутствии какого-либо общего стандарта. Это сочеталось с изобилием опера- ционных систем, причем каждый производитель машин предпочи- тал использовать свою собственную. В 1981 г. на рынок ПК вышел главный производитель универ- сальных ЭВМ — корпорация IBM. Эффект оказался поразитель- ным. IBM занимала лидирующее положение на рынке коммерче- ских компьютеров, и судьба подарила ей благоприятный случай для входа на рынок ПК. Персональные компьютеры быстро падали в цене, которая достигла уровня, гарантирующего большинству ком- паний их массовую продажу. Хотя технические параметры ПК бы- ли не столь выдающимися (а графические возможности ранних ма- шин были очень плохого качества), репутация корпорации IBM способствовала тому, что семейство ее ПК быстро завоевало доми- нирующее положение на рынке. Для выбора программного обеспечения IBM предпочла компа- нию Microsoft и ее операционную систему, которая носила назва- ние PCDOS. Эта операционная система по сути очень напоминала систему СР/М, которая использовалась в ранних моделях компью- теров Z80. К чести корпорации 1ВМ, у нее были развязаны руки в создании аппаратных и программных средств, и она разработала систему с шинной организацией, которая позволяла обеспечить легкое расширение возможностей. Наряду с дешевыми компьюте- рами семейства IBM на рынке появился большой ассортимент плат расширения. Используя это обстоятельство, компания Microsoft предложила операционную систему, идентичную PCDOS (для всех практических применений) и получившую название MSDOS. Начиная с момента своего появления в 1981 г., семейство IBM PC постоянно совершенствовалось. Первая машина с накопителем на гибком диске, известная просто как IBM PC, была основана на мик- ропроцессоре Intel 8086 (и Zilog Z80). Вслед за ней в 1982 г. быстро последовала IBM-XT, машина на основе микропроцессора 8088 с па- мятью на жестком диске. Следующим шагом явилось появление в 1984 г. машины IBM-AT. Она была основана на более мощном микропроцессоре Intel 80286, способном оперировать с большим объемом памяти (16 Мбайт по сравнению с 1 Мбайт для процессора 8088 и 64 Кбайт для более ранних моделей, таких как Z80). К сожалению, MSDOS и PCDOS предназначались для работы с запоминающими устройствами объ-
340 Программируемые контроллеры емом 1 Мбайт и не могли непосредственно использовать все воз- можности 286-го микропроцессора. Микропроцессор 80286 мог также поддерживать многозадачность, когда он одновременно обеспечивал выполнение более чем одной задачи. Машины PC и XT были построены на основе систем с шинной организацией, позволяющих добавлять такие платы, как модемы, интерфейсы и т. п . В машине АТ была использована шина, предо- ставляющая дополнительные возможности (которые оставались совместимыми с более ранними стандартами). Ниже мы кратко опишем эти системы с шинной организацией. В 1987 г. корпорация IBM выпустила новое семейство компью- теров, PS/2 (сокращенно от Personal System 2), с большим количе- ством суффиксов (PS/2-30, PS/2-50 и т. д.). Они были основаны на различных процессорах Intel — от 286 (для PS/2-30, PS/2-50, PS/2-60) до 32-битового 80386 (в PS/2-55, PS/2-70 и PS/2-80) и 80486 (в PS/2-486). Эти машины также обладали более совершенными гра- фическими возможностями и имели полностью обновленную сис- тему шинной организации, называемую MCA (Micro Channel Architecture — микроканальная архитектура). Эта новая система была несовместима с прежними стандартами шин и привела к созданию двух отличающихся систем. Более ран- няя версия шины (в исходных PC и XT) была основана на 62- штырьковом краевом разъеме с 8-битовой шиной данных и 19-би- товой адресной шиной плюс линии управления, синхронизации и питания (+12 В, +5 В, 0 В и -12 В). 8-битовая шина данных облада- ла ограниченными возможностями, и IBM нарастила ее до 16 бит в IBM-АТ с помощью дополнительного 36-штырькового разъема. Оба этих разъема, 36-штырьковый и 62-штырьковый, выполнены в виде платы с печатной схемой и менее прочные, чем разъем из двух частей, используемый с шиной STE. На рис. 7.4 изображены платы двух распространенных стандартов, известных как шины PC и XT, а также плата меньшего (половинного) размера. Эти стандарты из- вестны также как ISA (Industry Standard Architecture — архитектура, соответствующая промышленному стандарту). Конечно, эта аббре- виатура не имеет ничего общего с аналогичной для Instrument Society of America (Американское общество контрольно-измери- тельных приборов). Хотя шина ISA и была разработана IBM, эта корпорация никогда не предпринимала активных юридических действий против других производителей клонов ПК, плат интер- фейса и средств расширения. К шине MCA для компьютеров PS/2 корпорация IBM подошла совершенно иначе. Эта шина гораздо совершеннее шины ISA по
Управление производственными процессами с помощью обычных компьютеров 341 Стандартная 8-битовая плата РС-ХТ 16-битовая плата АТ Плата половинного размера Рис. 7.4. Платы расширения для семейства IBM PC таким качествам, как возможность автоматической конфигурации, быстродействие и большая защищенность от электрических помех, но не совместима с ней. IBM защитила свои права на MCA, устано- вив жесткую плату за выдачу лицензии и сделав менее открытым доступ к технологии. Многие производители ПК предпочли скооперироваться и вы- ступить против IBM, в результате чего в качестве альтернативы со- вместно разработали усовершенствованную версию шины ISA, на- званную EISA (Extended Industry Standard Architecture — расширенная стандартная архитектура для промышленного приме- нения). Таким образом, для семейства IBM PC существуют четыре системы с шинной организацией: шина PC, шина АТ, шина EISA и шина MCA. На момент написания книги неясно, как дальше пой- дет развитие, но в обозримом будущем наиболее доступной оста- нется шина ISA. Хотя ранние ПК обладали плохими графическими возможно- стями, в машинах XT, АТ и PS/2 их удалось улучшить, и распро- страненные стандарты приведены в табл. 7.4. Плохие графические возможности ранних IBM PC подтолкнули сторонних производи- телей к разработке графических плат, таких как монохромный гра-
342 Программируемые контроллеры Таблица 7.3 Микропроцессоры Intel, используемые в PC-совместимых компьютерах 8086 8088 80286 80386 80486 Pentium Шина данных (бит) Максимальная 16 8 16 32 32 32 тактовая частота (МГц) 5 8 10 16 66 >200 Таблица 7.4 Различные графические адаптеры Тип Количество цветов Разрешение (гориз. х верт.) CGA 4 320 х 200 2 640 х 200 Hercules 2 720 х 348 EGA 16 640 х 200 16 640 х 350 VGA 16 640 х 200 16 640 х 350 16 640 х 480 IBM 8514 256 1024 x 768 фический адаптер HGA фирмы Hercules. Позже они были вытесне- ны стандартами EGA и VGA. Последние с успехом применяются в промышленных графических терминалах. ПК промышленного назначения основаны на клонах машин и адаптерных плат и, как правило, используют шину стандарта АТ С помощью последовательных каналов связи они часто действуют как терминалы для программирования ПЛК или станции оператора. 7.3. Программирование при управлении в реальном времени Применение обычных языков программирования было кратко рас- смотрено в разд. 1.3.3. Такие языки, как BASIC, FORTRAN, Pascal и С, были разработаны для общего назначения, решения задач научно- го и вычислительного характера и не имели функций для управления в реальном времени. Тем не менее существуют исключения, когда обычный язык несколько модифицируется, позволяя выполнять операции в реальном времени. Например, MACBASIC (версия язы- ка BASIC) имеет инструкции типа AIN (М, N), согласно которой аналоговый входной сигнал из канала N передается на плату М.
Управление производственными процессами с помощью обычных компьютеров 343 Большинство одноплатных компьютеров и машин с шинной орга- низацией, описанных ранее, работают с нестандартными дополни- тельными инструкциями, включаемыми в языки BASIC или С. На- пример, Pyramid Integrator фирмы Allen Bradley — это стойка, содержащая контроллер 5/250 (лучшая модель семейства PLC-5) и компьютер DEC-Vax. Связь между ними осуществляется через объ- единительную плату. Канал связи PLC-5/Vax организован таким об- разом, что им можно управлять с помощью программы, написанной на языке С, включающей дополнительные инструкции (называемые Data Table Library), обеспечивающие доступ к таблице данных ПЛК. Программист должен обеспечить, чтобы программа компьютера за приемлемое время реагировала на поведение объекта и действия оператора. Один из способов сделать это — просто написать версию прогона программы ПЛК (рис. 7.5), которая имела бы вид: Begin Repeat Read Plant Inputs Work out Required Actions Write Plant Outputs Until Hellfreezesover End. {of program} Возможно, это будет приемлемо для небольших систем, но может быть связано с большими затратами времени на вычисления в слож- ных системах, так как ручные операции ожидают отклика в пределах 0.5 с, но, например, для контроля уровня воды в большой емкости по- требуется около минуты. Если все это объединить в одном прогоне программы, то трудно будет удовлетворить всем этим операциям со столь различными требованиями к быстродействию. В качестве альтернативы можно разбить требуемые действия на ряд задач, решением которых управляет организующая программа (дис- петчер), как показано на рис. 7.5 (б). Эта программа может обращать- ся к задачам с разными интервалами времени. Например, задача 1 со- стоит в переключении между автоматическим и ручным режимами работы с интервалами 0.5 с, задача 2 связана с контролем уровня во- ды в резервуаре, выполняемым с интервалами 60 с, задача 3 предпо- лагает контроль уровня масла, давления и состояния фильтра в гидра- влической системе, который производится каждые 2 с, и т. д. Это способствует рационализации процесса за счет экономии времени и облегчает программирование, т. к. каждая задача полностью обособ- лена от всех остальных, и программы можно писать независимо.
344 Программируемые контроллеры б Рис. 7.5. Сравнение работы компьютера и ПЛК: (а) цикл работы ПЛК; (б) задачи, решаемые компьютером Существуют специальные языки программирования, предназна- ченные для управления в реальном времени — такие как RTL (от Real Time Language) компании ICI, язык ADA, разработанный по заданию министерства обороны США, и CUTLASS компании CEGB (изна- чально предназначавшийся для управления электростанциями). CUTLASS это компилируемый язык, первоначально созданный для мини-компьютеров DEC, в основе которого лежит идея, иллю- стрируемая рис. 7.5 (б). Система управления разбивается на отдель-
Управление производственными процессами с помощью обычных компьютеров 345 ные задачи, выполнение которых запускается с заранее установлен- ными интервалами времени. Программа для каждой задачи начи- нается с ее имени, затем указывается приоритет (в конфликтной ситуации задачи с высшим приоритетом выполняются в первую очередь) и время выполнения, например: TASK AUTOSLEW PRIORITY = 236 RUN EVERY 600 ms Далее следует определение переменных. Они могут быть глобальными (т. е. используемыми во всей программе и для любой задачи) или локальными (только для одной задачи). CUTLASS поддерживает обыч- ные типы переменных — вещественные, целые и булевы (последние носят название логические), но вводит понятие правильных и непра- вильных данных. Любые данные, поступающие из внешнего мира, имеют вероятность быть ошибочными из-за повреждений объекта. В языке CUTLASS данные могут иметь значение или тип неправильные. Например, вещественная переменная может иметь цифровое значе- ние, т. е. быть неправильной. Логическая (булева) переменная может быть истинной, ложной, либо неправильной. Эта ситуация основыва- ется на операциях; например, операция Aver: = (temp 1 + temp2)/2 дает среднее значение температуры, если обе переменные, tempi и temp2, имеют правильные значения, но дает неправильный резуль- тат, если считывание какой-либо из переменных произведено с ошибкой. Некоторые операции могут давать правильные результа- ты, даже если отдельные данные являются неправильными. Голосо- вание по большинству, например по принципу два из трех, даст правильный результат при одном неправильном значении. Команда для ввода цифровых данных имеет вид DIGIN CARD n m, variable где п — номер платы, m — номер канала, a variable — имя перемен- ной в программе, которой присваивается значение, например, DIGIN CARD 36 12, StartPB Команда для вывода цифровых данных имеет вид DIGOUT variable CARD n m, действие 1, действие 2, действие 3
346 Программируемые контроллеры Здесьп и m имеют тот же смысл, адействие 1 выполняется, если пе- ременная variable имеет значение «ложь», действие 2 — если она имеет значение «истина», а действие 3 — в случае, когда она имеет неправильное значение. Например, DIGOUT RUNLAMP CARD 23 7, CLEAR, SET, FLASH Чтобы продемонстрировать принцип применения этой команды, ниже приводится небольшой сегмент кода, являющийся частью за- дачи управления выбором режима работы (автоматический/руч- ной). Переменные (смысл которых очевиден по их именам) были описаны заранее. AutoPermit — это глобальная переменная, объяв- ленная вне этого сегмента программы. DIGINCARD63 15,AutoSW AutoReq := AutoSW AND AutoPermit AUTOMAN AutoReq {Встроенная функция, задающая режим Auto} IF AutoReq = TRUE THEN AutoLamp = TRUE ELSE IF AutoPermit = TRUE THEN AutoLamp := FALSE ELSE AutoLamp := BAD ENDIF {Внутреннее IF} ENDIF {Внешнее IF} DIGOUT AutoLamp CARD 14 7, CLEAR, SET, FLASH Аналоговые входы читаются с помощью инструкции MXANIN (Multiplexed Analog Input), имеющей вид MXANIN CARD m n, variable 1 p, variable 2 и т. д., где m — номер платы, а п, р и т. д. — номера каналов. Например, MXANIN CARD 47 1 Setpoint 2 Actual Value CUTLASS имеет много встроенных функций управления, таких как фильтры, скорость обмена, ограничители и регуляторы. Мы можем использовать входы из приведенной выше инструкции сле- дующим образом:
Управление производственными процессами с помощью обычных компьютеров 347 Error := (Setpoint — Actual Value) Actuator := P1D (Error, Gain, Ti, Td, Tf) где PID — функция трехканального управления. Gain, Ti и Td — пе- ременные, хранящие значения параметров регулятора, a Tf — по- стоянная времени высокочастотного фильтра. Значение перемен- ной Actuator может быть выведено во внешний мир с помощью инструкции ANOUT. Для целей управления в реальном времени был также создан язык Forth. Большинство языков происходит из учебных заведений и науч- но-исследовательских центров. Forth был разработан астрономом для управления телескопом в Киттс Пик (США). Это во многих отноше- ниях необычный язык, но, изучив его особенности, можно заклю- чить, что он идеально подходит для применения в промышленности. Forth использует идею стека магазинного типа, который можно уподобить пружинному механизму подачи тарелок в ресторанах. Когда в механизм закладывается тарелка, стеллаж перемещается вниз. С числами в Forth поступают аналогичным образом; на рис. 7.6 показано, как в стек загружаются числа 3, 5, 27 и 2. Большинство операций выполняются с числами, расположен- ными наверху стека. При этом используется так называемая обрат- ная польская нотация, когда символ арифметического действия или операции указывается после данных. Например, выражение 273 + 28 записывается как 273 28+ и выполняется, как показано на рис. 7.7 (а). Более сложное выра- жение (412 + 27 — 16) х 3 записывается как 412 27+ 16-3* и выполняется, как показано на рис. 7.7 (б). В каждом случае мы ра- ботаем с верхней парой разрядов. Рис. 7.6. Стек языка Forth
348 Программируемые контроллеры а Рис. 7.7. Арифметические действия и стек языка Forth: (а) простая арифметическая операция; (б) вычисление выражения (412 + 27 - 16) х 3 В языке Forth программист имеет возможность расширить его, определив ряд инструкций и присвоив им имена. Например, мож- но написать последовательность инструкций для преобразования температуры из градусов Фаренгейта в градусы Цельсия. Предпола- гается, что значение температуры в градусах Фаренгейта находится в верхнем разряде стека и там же после преобразования остается со- ответствующее значение в градусах Цельсия. Описание новой ин- струкции под именем FTOC имеет вид: : FTOC {: означает, что это есть описание} 32 {помещается в верхний разряд стека, сдвигая вниз xF} {вычитание верхнего разряда из следующего за ним внизу} 5* 9/ {теперь в стеке находится хС} ; {; означает конец описания} Теперь мы можем написать 68 FTOC и в стеке останется значение 20. Предположим, что мы хотим управлять процессом образования смеси, представленным на рис. 7.8, где два химических вещества подаются в бак, перемешиваются, нагреваются до некоторой за- данной температуры, перемешиваются снова некоторое время, и
Управление производственными процессами с помощью обычных компьютеров 349 Рис. 7.8. Управление процессом перемешивания затем смесь вытекает, подготавливая бак к новому смешиванию. Мы можем задать новое слово BATCH : BATCH ADD1 ADD2 MIX1 HEAT MIX2 DRAIN; Сюда входят новые слова со своими описаниями, например : ADD1 OPENV1 BEGIN TESTL1 UNTIL {Это задает цикл в языке FORTH} SHUTV1; и : MIX1 MOTOR ON BEGIN TIME1 UP UNTIL MOTOR OFF; Здесь снова вводятся новые слова (OPENV1, TESTL1), которым за- дается свое описание — и так до тех пор, пока не будут использова- ны «встроенные» слова Forth. OPENV1 использует стандартные слова: : OPENV1 1 {состояние бита 1 = ‘ON’}
350 Программируемые контроллеры 3 {номер канала} 5 {номер платы} ; DIGOUT {стандартное слово для вывода данных в языке Forth} Описание TESTL1 еще проще: : TESTL1 4 {номер канала} 2 {номер платы} DIGIN {оставляет в стеке платы 2 состояние 1 или 0 дискрет- ного входа 4} S Подобным же образом обрабатываются аналоговые входы и выходы. Когда все определенные пользователем слова детализированы через исходные слова языка Forth, последовательность инструкций запускается на выполнение единственным словом BATCH. Программы на языке Forth являются прекрасными примерами нисходящего программирования, когда большая задача разбивает- ся на более мелкие задачи, те в свою очередь на подзадачи и т. д. до тех пор, пока не будут созданы компоненты программы малого раз- мера и минимальной сложности. Если первоочередное значение имеет быстродействие или ис- пользование минимального объема памяти, у программиста не ос- тается иного выхода, как работать в машинном коде. Обычно про- граммы пишутся на языке ассемблера и переводятся в машинный код специальной программой-транслятором, которая поставляется производителями целевых компьютерных систем. Полученная в результате программа будет компактной и быстро выполняемой, но при отсутствии хорошей документации будет представлять трудно- сти для изменения или сопровождения. Возможность проследить выполнение программы (что является обычным для всех ПЛК) не будет доступна, хотя спецификация включает стандартные проце- дуры обнаружения ошибок. 7.4. Программно-совместимые ПЛК По традиции ПЛК имеют свои собственные операционные систе- мы, написанные поставщиками и хранящиеся в постоянном запо- минающем устройстве (ПЗУ). Это обеспечивает большую безопас- ность ПЛК; программы хорошо проверены и не могут быть
Управление производственными процессами с помощью обычных компьютеров 351 случайно или преднамеренно модифицированы конечным пользо- вателем. Кроме того, это обеспечивает практически полную защи- ту от пагубного влияния компьютерных вирусов. Автор поддается искушению сказать «абсолютная защита», поскольку никогда не слышал, чтобы ПЛК был заражен вирусом. Однако когда ПЛК должен иметь связь с компьютерной систе- мой SCADA или иметь доступ к базе данных либо файлам электрон- ных таблиц, могут возникнуть проблемы. Эти соединения обычно производятся с помощью последовательных каналов связи — на простейшем уровне это двухточечное соединение в стандарте RS232 либо сети наподобие Ethernet, включающие более одного ПЛК или компьютера. Для этого случая фирма Allen Bradley предложила ре- шение под названием Pyramid Integrator, которое предусматривает монтаж на общем шасси процессора PLC5 и компьютера VAX, но оно оказалось очень дорогим и было отвергнуто. Производители ПЛК теперь продают и предназначенные для них операционные системы, а типовое решение заключается в том, чтобы такая система работала на обычном персональном компью- тере. Платы, имеющиеся в составе ПК, соединяются с обычными входными/выходными платами ПЛК. Это позволяет легко осуще- ствлять обмен данными между «ПЛК» и остальной частью компью- тера, но в то же время создает некоторые проблемы, с которыми не- обходимо считаться. Первая из них — это безотказность в работе. Компьютеры время от времени отказываются работать, обычно в самый неподходящий момент «зависая», что может подтвердить каждый, кто пользовался текстовым процессором. Обычно отказы вызываются конфликтами между установленными в компьютере программами. Систему можно сделать более надежной путем стро- гого контроля за выполняемыми на компьютере программами и удаления всех ненужных файлов (например, игр и побочных средств, часто устанавливаемых в машине). Вторая проблема связана с моментом включения питания. Пос- ле отказа источника питания ПЛК обычно снова способен рабо- тать примерно через секунду. Однако компьютеру могут потребо- ваться десятки секунд, чтобы возобновить работу, и это может быть критическим фактором. Определенную зашиту можно обес- печить, используя источники бесперебойного питания (Uninterruptable Power Supplies — UPS), но по личному опыту авто- ра они не столько зашишают от исчезновения питания, сколько создают еше больше проблем. Настольные ПК уязвимы к краже. Даже если кто-то не может выйти из помещения с компьютером в руках, то системную плату и
352 Программируемые контроллеры плату памяти легко спрятать и таким образом украсть. Что еще ху- же, вор второпях может украсть защитную заглушку, часто исполь- зуемую для защиты от несанкционированного копирования про- граммных средств. Если система, в которой используется ПК, остается без присмотра, то нужно серьезно отнестись к вопросу ее защиты. И наконец, существуют еще компьютерные вирусы. Лучше все- го с ними бороться, ограничив доступ к компьютеру и регулярно обновляя антивирусные программы. Ни в коем случае не разре- шайте людям использовать компьютер, чтобы посмотреть снимки, сделанные цифровой камерой, или распечатать с помощью тексто- вого процессора файл, принесенный из дому.
8. Практические вопросы 8.1. Введение Программируемые контроллеры—это, говоря простым языком, инстру- менты, которые дают возможность объекту управления функциониро- вать надежно, экономично и безопасно. В данной главе рассматривают- ся некоторые факторы, которые нужно учитывать при проектировании системы управления, чтобы удовлетворить этим критериям. 8.2. Безопасность 8.2.1. Введение Большинство промышленных объектов управления способны нанести человеку увечье или убить его. Поэтому все люди, как наниматели, так и работающие, обязаны нести ответственность за то, чтобы не было на- несено никакого вреда любому человеку, занятому на производстве. Неудивительно, что эта моральная ответственность также под- держивается законодательством. Интересно, что большинство зако- нов в этой сфере являются «реактивными», т. е. ответными мерами на уже происшедшие случаи, имеющими целью предотвратить их повторение. Большинство законов о безопасности касаются общих вопросов. Считается, что работодатели и рабочие должны соблю- дать осторожность, чтобы гарантировать здоровье, безопасность и благополучие работников, посетителей и общественности. Несоб- людение мер предосторожности классифицируется как халатность. Законодательство определяет три уровня необходимых действий. • Безусловные обязанности, которые должны выполняться, не- взирая на затраты. Если такая обязанность не является вы- полнимой, то соответствующие действия и не должны пред- приниматься. • Реализуемые обязанности, которые должны выполняться, ес- ли они в действительности осуществимы. Затраты здесь в расчет не принимаются. Если человек считает, что такая обя- занность не выполнима, то в случае происшествия от него потребуется доказательство такого утверждения. • Разумно осуществимые обязанности, являющиеся наиболее неопределенными, потому что они требуют компромисса ме- жду риском и затратами. В случае какого-либо происшествия от человека потребуют оправдания предпринятых действий.
354 Программируемые контроллеры В разных странах законодательство по поводу безопасности имеет свою специфику, хотя в Европе наблюдается некоторая гармониза- ция. В данном разделе рассматривается безопасность с позиции Ве- ликобритании, хотя общие принципы применимы во всем евро- пейском сообществе и даже во всем мире. Разумеется, их надо рассматривать как общее руководство, поскольку у каждого есть свое личное мнение. Прежде чем принимать какие-либо решения по поводу обеспечения безопасности, читателю полезно познако- миться с основными законами. В Великобритании основные положения об охране здоровья и безопасности на работе установлены соответствующим законом от 1974 г. (HASWA — Health and Safety at Work Act). Он охватывает ши- рокую сферу вопросов и защищает каждого, кто так или иначе свя- зан с производственной деятельностью (как работодателей, так и служащих). В США аналогичную защиту обеспечивает закон о про- фессиональной безопасности и здоровье (OSHA — Occupational Safety and Health Act). HASWA определяет и устанавливает основные обязанности по избежанию всех возможных рисков, и его главное требование опи- сано в разделе 2(1): Каждый работодатель обязан гарантировать, насколько это прак- тически осуществимо, здоровье, безопасность и благополучие на рабо- те для своих сотрудников. В последующих разделах эта обязанность распространяется на по- сетителей, клиентов, рядовую общественность и даже правонару- шителей (последнее — при судебных разбирательствах). В случае какого-либо происшествия бремя доказательства «практически осуществимых» действий возлагается на работодателя. 8.2.2. Оценка риска Совершенно невозможно спроектировать систему, которая была бы абсолютно надежной. Современное законодательство по воп- росам безопасности (например, «пакет шести законов», упомина- емый в разд. 8.2.6) признает необходимость сопоставления стои- мости и сложности системы обеспечения безопасности с вероятностью нанесения ущерба и его тяжестью. В процедуре, из- вестной как оценка риска, используются общие термины со следу- ющими определениями: Опасность — возможность нанесения повреждения.
Практические вопросы 355 • Риск — функция вероятности возникновения опасности и ее тяжести. • Угроза — риск причинения травмы. Оценка риска является обязательным требованием, устанавливае- мым большинством современных законодательных актов. Проце- дура оценки детально представлена в стандарте prEN1050 «Прин- ципы оценки риска». Первым этапом является определение опасностей, связанных с механизмом или процессом. Это можно выполнить путем инспек- ций, проверок, изучения происшествий (что почти невозможно) и, применительно к новому объекту, исследованиями на стадии про- ектирования. Вот примеры возможных опасностей: столкнове- ние/сдавливание; препятствия, ставящие в затруднительное поло- жение; затягивание в механизм; ранения режущими частями; нанесение ударов; отсечения (приводящие к ампутации); пораже- ния электрическим током; температурные воздействия (теплом и холодом); контакт с опасными веществами и т. д. Должны быть так- же проанализированы состояния отказов, для чего используются стандартные методы, такие как HAZOPS (Hazard and Operability Study — исследование опасности и работоспособности) с ключевы- ми словами «слишком большая» и «слишком малая», FMEA (Failure Modes and Effects Analysis — анализ состояний отказов и их последствий) и Fault Tree Analysis (анализ дерева неисправностей). Следующим этапом после документирования опасностей явля- ется оценка связанного с каждой из них риска. Какого-то опреде- ленного метода для этого не существует, поскольку каждому объек- ту соответствуют различные уровни компетентности оператора и нормы эксплуатации. Однако оценка риска должна быть выполне- на, а ее результаты и выводы документально зафиксированы. В слу- чае какого-либо происшествия руководство попросит познако- миться с оценкой риска. Существуют различные методы оценки риска, некоторые из них предполагают количественную оценку в баллах, другие основаны на грубых качественных суждениях. Независимо от того, какой метод используется, должны учиты- ваться несколько факторов. Первым из них является тяжесть воз- можного ущерба. Во многих источниках эта тяжесть классифици- руется следующими категориями: • Фатальный исход — один или более смертельных случаев. • Главная — необратимый ущерб, например ампутация, потеря зрения, инвалидность.
356 Программируемые контроллеры • Серьезная — обратимый ущерб, но требующий медицинского обслуживания, например ожог или перелом конечностей. • Незначительная — небольшие порезы, ушибы и т. п. На следующем этапе необходимо рассмотреть, как часто персонал подвергается риску. Здесь существуют такие оценки: • Часто — несколько раз в день или за смену. • Иногда — один раз в день или за смену. • Редко — меньше раза в неделю. Здесь также имеет значение, как долго человек подвергается риску. Попадает он в опасную ситуацию на несколько секунд или, как на основной работе при эксплуатации объекта, на несколько часов? Необходимо также учитывать количество людей, которые могут быть подвержены риску; часто это является важным фактором на нефтехимических предприятиях. Если скорость протекания процесса или работы установки неве- лики, то человек, подвергающийся риску, легко может на время по- кинуть опасную зону. Здесь риск гораздо меньше, чем при эксплуата- ции бесшумной скоростной установки, которая может нанести ущерб прежде, чем человек покинет опасную зону. На основании анализа функционирования установки можно дать следующие оценки веро- ятности ущерба в случае отказа системы обеспечения безопасности: несомненная, вероятная, возможная, маловероятная После всех этих исследований составляется классификация рис- ков, связанных с каждой деятельностью. Эта классификация будет зависеть от конкретных производственных условий. В некоторых источниках предлагается каждый из перечисленных выше факто- ров оценивать в баллах, после чего путем подсчета общего резуль- тата классифицировать риск как высокий, средний и низкий. Напри- мер, для оценки максимально возможного ущерба (MPL) используется шкала из 50 баллов, в которой 1 соответствует незна- чительной царапине, а 50 — гибели множества людей. С учетом ча- стоты опасной деятельности F и вероятности ущерба Р (также оце- ниваемой по шкале 1—50) получается формула: Классификация риска RR = F х (MPL + Р). На основе этой классификации риска затем вырабатывается линия поведения.
Практические вопросы 357 Альтернативным и более простым методом (но менее детализо- ванным) является использование приведенной на рис. 8.1 таблицы, по которой быстро можно определить требуемое ответное действие. Не существует, однако, единственного рекомендуемого метода, но используемая процедура оценки риска должна соответствовать конкретным условиям применения и быть хорошо документиро- ванной. Основной целью деятельности является исследование рис- ков и снижение возможности их появления. Заключительный этап состоит в разработке методов снижения оставшегося риска до приемлемого уровня. Эти методы должны включать устранение риска путем качественного проектирования (например, исключением «узких мест»), уменьшение риска у ис- точника его возникновения (например, использованием наиболее низких скоростей и давлений, уменьшением количества опасных Тяжесть последствий 9 Фатальный исход 8 Постоянная общая нетрудоспособность 7 Долговременная серьезная нетрудоспособность 6 Продолжительная легкая нетрудоспособность 5 Бюллетень на срок более 3 недель с последующим возмещением ущерба 4 Бюллетень на срок от 3 дней до 3 недель с полным возмещением ущерба 3 Освобождение от работы на срок менее 3 дней с полным возмещением ущерба 2 Небольшая травма без потери рабочего времени 1 Мелкое повреждение Вероятность происшествия 9 Почти наверняка 8 Очень возможно 7 Возможно 6 Выше чем рядовой случай 5 Рядовой случай 4 Ниже чем рядовой случай 3 Невозможно 2 Совсем невозможно 1 Почти невероятно Тяжесть Действие Немедленно прекратить работу и не возобновлят ее, пока не будет найдено решение Неприемлемая ситуация, как можно скорее взять ее под контроль Ситуация приемлема, никаких действий не требуется Рис. 8.1. Простая таблица оценки риска. Она дает только общие рекомендации и должна применяться лишь после подробного исследования и только когда полученные выводы могут быть подтверждены для конкретной опасной ситуации
358 Программируемые контроллеры материалов), применение ограждений, снижение времени подвер- женности риску, обеспечение персонала средствами индивидуаль- ной защиты и составление письменных правил безопасной работы, которые следует неукоснительно соблюдать. Последнее предпола- гает компетентность персонала и наличие соответствующих про- грамм обучения. 8.2.3. ПЛК, компьютеры и безопасность ПЛК может создавать потенциально опасные ситуации по разным причинам. Первая (и, по-видимому, самая распространенная) — это логические ошибки в программе. Они могут возникнуть из-за оплошности или неправильного понимания со стороны разработ- чика, который не учел, что именно такая последовательность дей- ствий может представлять опасность, или в результате последую- щих изменений, сделанных людьми, которые умышленно (или случайно) удалили некоторую защиту, позволяющую избежать от- казов в ночное время. Особенно неприятным фактором является ночное программирование, поскольку обычно нарушителем выступа- ет только один человек, который знает, как оно выполнялось, и опасность может возникнуть по прошествии значительного време- ни (дни, недели, месяцы, годы), когда для нее созреют соответству- ющие условия. Вторая возможная причина — это неисправность входных и вы- ходных модулей, особенно элементов, непосредственно связанных с объектом и подверженных влиянию высоковольтных помех (а возможно, напрямую соединенных с источниками высокого на- пряжения кабелем, который может быть поврежден). Выходные модули могут также пострадать от скачка тока при коротком замы- кании цепи (что также вполне вероятно). Типичными выходными элементами являются симисторы, ти- ристоры и транзисторы. Их отказ невозможно предсказать заранее; все они могут быть повреждены при обрыве или коротком замыка- нии цепи. В этих случаях ПЛК не сможет управлять выходными устройствами. Точно так же входной сигнал, имеющий два состоя- ния (логические 1 и 0), может быть неправильно интерпретирован ПЛК в случае отказа элементов входной платы. Следующий вид неисправностей связан собственно с ПЛК. Его можно подразделить на отказы аппаратуры, сбои в программах и эффекты, обусловленные влиянием окружающей среды. Отказ ап- паратных средств происходит в самой машине — уязвимыми явля- ются источник питания, процессор, память (которая содержит про- граммы, предоставленные поставщиком с учетом особенностей
Практические вопросы 359 ПЛК, пользовательские программы и хранилище данных). Некото- рые из этих отказов имеют предсказуемые последствия; при отказе источника питания все выходы будут отключены, а поставщик ПЛК обязан предусмотреть средства тестирования памяти (напри- мер, с помощью методов, аналогичных описанному в разд. 5.2.7). Окружающая среда оказывает влияние за счет неблагоприятных ус- ловий в месте установки ПЛК, таких как пыль, температура (осо- бенно ее быстрые изменения) и вибрация. Последней причиной являются электрические помехи (обычно называемые шумом). Внутренние схемы почти всех ПЛК работают с сигналами уровня 5 В, но они находятся в окружении высоко- вольтных, сильноточных устройств. Шум может привести к тому, что ПЛК будет воспринимать входные сигналы с искажениями, а в крайних случаях он даже может испортить внутреннюю память ПЛК. Обычно ПЛК снабжается защитой от повреждения памяти и помех, наводимых в линиях последовательной дистанционной свя- зи с входными/выходными устройствами (опять-таки с помощью CRC и аналогичных идей), поэтому самым простым эффектом по- мехи будет выключение ПЛК (и перевод выходов в неактивное со- стояние). В этом, однако, нельзя быть полностью уверенным. Не существует такого понятия, как абсолютно безопасный про- цесс; всегда можно найти потенциально возможные причины отка- зов, которые приводят к опасным последствиям. Но в качественно спроектированной системе такие режимы отказов практически ма- ловероятны. На рис. 8.2 изображена обычная схема пускового устройства двигателя, реализованная без ПЛК. Схемы аварийной остановки будут рассмотрены в следующем разделе, но в данном случае име- ют место следующие меры предосторожности: А. Ключ разъединения в центре управления двигателем (ЦУД) отключает питание. Б. Ключ местного разъединения. Он, так же как и (а), преду- смотрен для защиты во время проведения технического об- служивания двигателя или его нагрузки. В. Нормально замкнутый контакт у кнопок остановки и аварий- ной остановки. Обрыв провода вызовет те же последствия, что и нажатие кнопки «Стоп» или исчезновение питания. Г. Если кнопка аварийной остановки нажата и отпущена, дви- гатель вновь не запустится. Д. Разъединение, остановка и аварийная остановка имеют при- оритет по отношению к пуску.
360 Программируемые контроллеры Рис. 8.2. Обычное пусковое устройство двигателя: (а) физическая компоновка; (6) коммутационная схема С Несмотря на это, можно заранее определить вероятные режимы опасных отказов. Головка кнопки аварийной остановки может от- винтиться и отвалиться или контакты контактора могут оплавиться (хотя для создания опасной ситуации они должны оплавиться сов- местно), но эти режимы отказов чрезвычайно редки, поэтому, не вдаваясь в детали функции кнопки аварийной остановки, схему на рис. 8.2 в принципе можно считать безопасной. На рис. 8.3 показано, как та же самая функция реализуется с по- мощью ненадежного ПЛК. Чтобы уменьшить затраты, вместо ЦУД и местных разъединителей использованы простые переключатели, которые «разъединяют» цепь. Аналогично, для остановки и аварий- ной остановки использованы нормально разомкнутые контакты. Все это устройство управляется ненадежной программой, представ- ленной на рис. 8.3 (б).
Практические вопросы 361 -415 В, 3 фазы —.—о С д. Рис. 8.3. Пусковое устройство двигателя на основе ненадежного ПЛК: (а) физическая компоновка: (б) программа ПЛК Важно понимать, что с точки зрения случайного пользователя схемы на рис. 8.2 и 8.3 работают идентичным образом. Различия (и опасности) проявляются в типе неисправностей или необычных ус- ловиях. В частности: А. Человек, использующий терминал для программирования, мо- жет принудительно изменить входные или выходные сигналы, проигнорировав разъединение. Хотя вряд ли кто-то будет делать это умышленно, но очень легко можно перепутать похожие адре- са и переставить биты (например, вместо 0:32/01 указав 0:23/01). Б. Пропажа питания устройств управления вводом при работа- ющем двигателе будет означать, что его нельзя будет остано- вить никакими средствами.
362 Программируемые контроллеры В. Если нажать и отпустить кнопку аварийной остановки, то двигатель вновь будет запущен. Ни одно из этих условий не является очевидным для пользователя до тех пор, пока о них не придется вспомнить в случае аварии. Таким образом, при использовании в системе управления ПЛК или компьютеров первое правило таково: «Система должна быть по меньшей мере столь же безопасной, как и обычная система». На рис. 8.4 изображена усовершенствованная версия схемы рис. 8.3. Разъединители вместе с дополнительным контактом играют роль входов ПЛК, а для кнопок остановки и аварийной остановки использованы нормально замкнутые контакты. В пусковое устрой- ство добавлен дополнительный контакт, используемый в качестве защелки в программе ПЛК на рис. 8.4 (б). Кнопка аварийной оста- Разъ- едини- тель в ЦУД Мест- ный разъ- едини- тель Допол- нит, контакт от С Разведи- Местный Пуск нитель разведи- Стартер Стоп в ЦУД нитель с Рис. 8.4. Надежное пусковое устройство двигателя на основе ПЛК: (а) физическая компоновка; (б) программа ПЛК
Практические вопросы 363 новки помещена в выходной цепи ПЛК, не зависит от него, и после ее нажатия (размыкания цепи) двигатель нельзя будет вновь запус- тить (поскольку фиксирующий дополнительный контакт в про- грамме будет разомкнут). Пропажу питания устройств управления программа воспримет как нажатие кнопки остановки, и двигатель будет выключен. Таким образом, в случае неисправности схема на рис. 8.4 работает так же, как и схема на рис. 8.2, и удовлетворяет приведенным выше условиям. На рис. 8.5 показано, как аналогичная идея использована для выключения из работы гидравлической системы, когда оператор открывает ограждение, чтобы получить доступ к машине. При от- крытии ограждения снимается питание с выходной платы ПЛК, управляющей соленоидами, и последние будут обесточены незави- симо от того, что выполняет ПЛК. Отдельный вход ПЛК позволяет также программным способом деактивизировать выходы. Один из соленоидов представляет собой нагрузочный клапан, который в случае обесточивания заставляет давление в трубопроводе упасть практически до нуля. Это давление контролируется с помощью сигнальных ламп, установленных на питающем трубопроводе. Здесь были рассмотрены достаточно простые примеры, но и в более сложных системах необходим подобный анализ и меры пре- досторожности. Значительно большую безопасность можно обеспечить с помо- щью сложных электронных систем. На рис. 8.6 показано, как тири- сторный регулятор управляет скоростью мощного электродвигате- Рис. 8.5. Безопасный доступ к машине с управлением от ограждения
364 Программируемые контроллеры Трехфазная сеть переменного тока Двигатель Тиристорный регулятор Якорь Обмотка возбуждения Рис. 8.6. Электродвигатель постоянного тока, требующий возможности аварийной остановки ля постоянного тока. Схема является типичной для данного случая: она содержит разъединитель, позволяющий отключить двигатель для текущего обслуживания, и запускающий контактор по пере- менному току. В эту схему должна быть добавлена кнопка аварий- ной остановки. С ее помощью можно было бы выключить электро- двигатель, но инерционность двигателя и нагрузки в течение нескольких секунд будет сохранять вращение. Однако тиристор- ный регулятор может остановить вращение менее чем через одну секунду за счет рекуперативного режима двигателя, но для этого требуется, чтобы регулятор был в исправности и функционировал нормально. Аварийная остановка предполагает возникновение опасной об- становки, когда требуется как можно более быстрое вмешательство в работу объекта. Средства управления почти наверняка в это вре- мя функционируют нормально, и «скрытые» неисправности отсут- ствуют. Например, неисправности в системе управления скоростью электродвигателя должны обнаруживаться оператором. На основа- нии оценки риска автор пришел к выводу, что при отсутствии огра-
Практические вопросы 365 ждения аварийная остановка должна осуществляться одним из двух способов. Во-первых, с помощью системы управления вводится в действие электронная регенерация, в результате чего двигатель должен остановиться менее чем за одну секунду (хотя и со значи- тельной электрической и механической перегрузкой). Кроме того, кнопка аварийной остановки разблокирует реле с временем вы- держки в 1.5 с, которое размыкает контактор в цепи переменного тока. Это обеспечивает наиболее безопасную из возможных реак- ций на нажатие кнопки аварийной остановки. Таким образом, соображения безопасности не обязательно тре- буют применения релейных, неэлектронных схем, но от проекти- ровщика требуется обоснование используемых им методов и реше- ний. В случае, когда должны использоваться сложные системы управления, лучше всего дублировать датчики, управляющие и ис- полнительные устройства. Это называется избыточностью (резер- вированием). Типичным примером является паровой котел, в который вода подается из цистерны. Отклонения уровня воды представляют опас- ность: если он слишком низкий, то котел перегреется, возможно, до точки плавления подводящих труб; слишком высокий уровень воды может привести к тому, что расположенная ниже турбина будет под- вергнута риску катастрофического повреждения лопастей. С этой целью предусматриваются датчики высокого и низого уровней и ка- ждый из них дублируется. Система управления реагирует на любой ошибочный сигнал, поэтому для того чтобы возникла опасная ситу- ация, оба датчика должны отказать одновременно. Если вероят- ность отказа датчика в момент Травна р (где 0 < р < 1), то вероят- ность отказа обоих датчиков будет равна р1. Если взять конкретный случай, то прир порядка 10 4/Я даст вероятность Id8. При этом существуют два недостатка. Первый заключается в том, что датчик может отказать, хотя постоянно поступает сигнал о его исправности, и эта неисправность будет считаться «скрытой», т. е. невидимой для пользователя, несмотря на то, что по показаниям од- ного датчика объект работает исправно. Вторая проблема состоит в том, что надежность работы объекта будет уменьшаться после того, как число датчиков увеличивается, и отказ любого из них может при- вести к аварийной остановке. Вероятность обеих этих ситуаций можно уменьшить путем использования схем «голосования по боль- шинству», которые принимают сигналы о неисправности по прин- ципу два из трех или три из пяти. До сих пор речь шла только о дублировании датчиков. Чтобы обеспечить действительное резервирование, имеет смысл продуб-
366 Программируемые контроллеры лировать также систему управления с целью защиты от неисправ- ностей в аппаратных и программных средствах собственно систе- мы. На рис. 8.7 показаны три датчика температуры (применяемые для резервирования), соединенные с двумя отдельными и незави- симыми ПЛК, один из которых выполняет функции управления и защиты, а второй имеет отношение исключительно к управлению. Опасная ситуация может возникнуть только при одновременном отказе обоих ПЛК. Резервирование может оказаться бесполезным в случае отказов «общего характера». Это такие отказы, которые одновременно влия- ют на все параллельные каналы. Источники питания, электриче- ские помехи в кабелях, проложенных в одном и том же канале, и идентичные компоненты из одной и той же партии от одного и того же поставщика — все это может привести к отказам общего характе- ра. Чтобы обеспечить действительную надежную защиту, необходи- мо использовать разностороннее резервирование, задействовав от- личающиеся компоненты, разные маршруты и конструктивное исполнение, позволяющие снизить возможность одновременных отказов. Дублирование системы управления, проиллюстрированное на рис. 8.7, также является уязвимым к типу отказов общего характе- ра, называемому «систематическим отказом». Предположим, что внутри программы показания датчиков температуры сравниваются со значением, вызывающим аварийный сигнал. Предположим так- же, что обе системы идентичны и выполняют одну и ту же програм- му, в которой происходит сбой, способный случайно (но редко, так Три датчика температуры Рис. 8.7. Дублирование датчиков и систем управления/защиты
Практические вопросы 367 как он мог не проявить себя во время простого тестирования) изме- нить уставку для аварийного значения температуры (скажем, от 60 °C до 32 053 °C). Такое легко может случиться при неправильном наборе на клавиатуре инструкции move в совершенно не связанной с данной задачей части программы. Подобная ошибка повлияет на обе системы управления и полностью исключит дублирование. Если полагаться на дублирование систем управления, то они должны быть совершенно различными — различные машины с раз- ными входными/выходными устройствами, различные програм- мы, написанные разными людьми, разные источники питания для каждой машины и различные типы датчиков, подключаемых с по- мощью разных кабельных соединений. Вот это и будет означать на- стоящее резервирование. Комитет по охране здоровья и безопасности (HSE), имеющий от- ношение к безопасности прямого цифрового управления технологи- ческими процессами, в 1981 г. издал документ ОР2 «Микропроцессо- ры в промышленности». Вслед за этим в 1987 г. были изданы два буклета: книга 1-я — Programmable Electronics Systems in Safety Related Applications, Introductory Guide, и книга 2-я - General Technical Guidelines. В 1-й книге, как и в публикации от 1981 г., содержится об- щее обсуждение проблемы, а во 2-й книге детально излагаются необ- ходимые этапы проектирования. Они включают в себя следующее: 1. Произвести анализ объекта или процесса с целью оценки ве- роятности возникновения опасных ситуаций (здесь уместно использование ключевых слов «слишком велика», «слишком мала», «выше», «ниже»). 2. На основании этого анализа определить, какие части систе- мы управления имеют отношение к безопасности, а какие — только к эффективности производства. При дальнейшем анализе последние можно исключить из рассмотрения. 3. Определить требуемый уровень безопасности (на основании принятых стандартов или опубликованных материалов). 4. Спроектировать системы защиты, удовлетворяющие требова- ниям этих стандартов или превышающие их. HSE подчеркива- ет важность использования при проектировании понятия «ка- чество»: качество компонентов, качество поставщиков и т д. 5. Оценить достигнутый уровень безопасности (используя прогнозируемую вероятность отказов отдельных частей спроектированной системы). Если требуемый уровень безо- пасности не достигнут, то пересмотреть процедуру проекти- рования.
368 Программируемые контроллеры Критически важным моментом является тестирование системы обеспечения безопасности, но иногда его бывает трудно выпол- нить, находясь под неизбежным давлением быстрейшего ввода объекта в эксплуатацию. Как только все лампы в диспетчерской включены, появляется отношение типа «все прекрасно, пусть так и остается». Этому трудно сопротивляться, особенно если сдача про- екта задерживается, но это может привести к фатальным последст- виям. Единственный способ избежать этой неприятности — иметь заранее согласованный список мер безопасности (составленный при лампах дневного света и лучше всего до начала испытаний), в котором можно было бы проставить «галочки», просматривая его пункт за пунктом. В этом случае инженер не сможет «оставить в по- кое» объект управления до тех пор, пока не рассеет сомнения по ка- ждому из пунктов списка. Пожалуй, наибольшую опасность представляет период эксплуа- тации системы. Катастрофы в Чернобыле, Фликсборо, Три Майл Айленд, Бхопале, Пайпер Альфа и авария в Черинг Кросс — все произошли в результате необдуманных действий во время эксплуа- тации. Автору довелось наблюдать неправильно спроектированные системы защиты, содержащие обходные пути, «оставляющие объ- ект в стороне», причем эти пути существовали и многие недели спустя. Легкость программирования ПЛК делает их очень уязвимы- ми (и именно по этой причине программы, хранящиеся в ПЗУ, же- лательно иметь безопасными в использовании). Перед вводом объекта в эксплуатацию необходимо обеспечить безопасные условия его работы. При этом учитывается, что обяза- тельно должна присутствовать система разъединения электричесих цепей и разрешения на работу объекта (с этой целью в системе на рис. 8.2 как раз и предусмотрены разъединители), но часто игнори- руется опасность, исходящая от пневматических или гидравличе- ских исполнительных устройств. При выключении ПЛК или исчез- новении питания (что вполне возможно во время эксплуатации) все соленоиды будут обесточены, но объект может продолжать функци- онировать. Поэтому процедура разъединения должна охватывать все исполнительные устройства, а не только электроприводы. Путем использования реле можно создать схемы, которые почти отказобезопасны, как это проиллюстрировано на простом примере с лампами светофоров (рис. 8.8). (Разумеется, ни одна схема не мо- жет быть абсолютно отказобезопасна.) Здесь перекрестное соедине- ние контактов реле в совокупности с такими приемами, как пру- жинная фиксация выводов обмоток реле в гнездах, препятствующая размыканию цепи в результате вибрации, гарантирует, что система
Практические вопросы 369 Рис. 8.8. Система обеспечения безопасности на основе реле может дать сбой, только если не горит ни один сигнал, или заблоки- ровано одно направление, или горят оба красных сигнала, но она не может сработать ошибочно, когда горят оба зеленых сигнала. Чтобы обеспечить это, используются высококачественные реле, конструк- ция которых такова, что при внутреннем механическом поврежде- нии нормально разомкнутые и нормально замкнутые контакты не могут сработать одновременно. Идея, проиллюстрированная на рис. 8.8, обладая высокой степенью безопасности, широко исполь- зуется в лифтах, светофорах, регуляторах горелок и в железнодорож- ной сигнализации. Уровни безопасности, обеспечиваемые схемой на рис. 8.8, мож- но реализовать с помощью некоторых ПЛК. Фирма Siemens поста-
370 Программируемые контроллеры вляет на рынок ПЛК типа 115F, который был модернизирован ком- панией TUV Bayern (Техническая инспекция Баварии) для исполь- зования в таких критически важных с точки зрения безопасности областях, как транспортные системы, метрополитен, управление дорожным движением и лифтовое хозяйство. Моделью поддержи- вающего резервирования является система, основанная на двух ПЛК серии 115. Две машины выполняют отличающиеся друг от друга программы и взаимно проверяют свои действия. Однако пользователь несет ответственность за то, чтобы в прикладных про- граммах не было систематических ошибок. Входы обрабатываются так, как показано на рис. 8.9. Питание разных (раздельных) датчиков осуществляется импульсами от вы- ходной платы ПЛК. Сигнал обрабатывается только в случае, если оба ПЛК дают на это согласие. Очевидно, что для целей безопасно- сти важен выбор смыслового значения сигнала. Например, при ог- раничении дорожного движения датчики должны быть доступны в нормальных условиях и отключены при нарушении. Исполнительные устройства используют два выходных сигнала (противоположных значений) и два входных сигнала для проверки их действия, как показано на рис. 8.10. Каждый субблок проверя- ет действие другого с помощью коротких импульсов с выходных плат, позволяя обнаруживать повреждение кабеля, неисправность выходных модулей и обрыв соединений с исполнительными уст- ройствами. Если, например, выход В не находится в состоянии Рис. 8.9. Безрисковая организация входа в ПЛК Siemens 115F
Практические вопросы 371 Последовательность импульсов Рис. 8.11. Динамическая «отказобезопасная» схема Нагрузка «Вкл.», оба входа, А и В, примут высокий уровень в состоянии «Выкл.» (но исполнительное устройство в целях безопасности бу- дет отключено). Действие схем, представленных на рис. 8.9 и 8.10, отличается простотой, но их не следует безоговорочно принимать в качестве обеспечения отказобезопасности ПЛК. Модель 115F действитель- но позволяет реализовать поддерживающее резервирование, хотя находящиеся внутри интегральные схемы взяты разных серий и от разных производителей, а программное обеспечение хорошо отла- жено и обладает самопроверкой. Система, построенная по принци- пу DIY (Do It Yourself — сделай сам), не имеет таких особенностей и
372 Программируемые контроллеры может быть склонна к отказам общего характера или систематиче- ским сбоям. На рис. 8.11 изображена динамическая отказобезопасная схема, которая иногда используется в таких прикладных задачах, как упра- вление газовой горелкой. Здесь выходной сигнал ПЛК представля- ет собой последовательность прямоугольных импульсов фиксиро- ванной частоты (получаемых быстрым переключением выхода). Этот сигнал проходит через узкополосный фильтр и после выпрям- ления активизирует исполнительное устройство. Отказ централь- ного процессора приведет к исчезновению импульсов (или к изме- нению частоты их следования, в результате чего фильтр их не пропустит). Сбой в переключении выхода ПЛК приведет к появле- нию сигнала постоянного тока, который также не будет пропущен фильтром. Повреждение любого компонента фильтра вызовет сдвиг полосы его пропускания и, как следствие, невозможность правильно реагировать на нормальный входной сигнал. Принцип действия, представленный на рис. 8.11, часто используется в каче- стве «контролера» выхода, позволяющего определить, что ПЛК ра- ботает исправно. 8.2.4. Аварийные остановки Многие промышленные объекты имеют движущиеся части, спо- собные нанести телесные повреждения. Поэтому возникает необ- ходимость обеспечить остановку объекта в кратчайшее время после того, как оператор заметит какую-либо опасность. Обычно это осу- ществляется с помощью кнопок аварийной остановки, располо- женных в стратегических точках по периметру объекта. Эти кнопки по форме должны напоминать шляпку гриба, быть красного цвета на фоне желтой поверхности. Они должны обладать фиксацией и допускать возможность того или иного вида ручного воздействия (с использованием ключа, поворота или нажатия). Даже когда нажа- тая кнопка отпущена, нельзя допускать повторного включения объекта в работу без некоторых подготовительных операций. В конвейерах и подобных устройствах используются приспособления аварийной остановки типа натянутого шнура, которые естествен- ным образом должны возвращаться в исходное положение. Еще совсем недавно схема аварийной остановки должна была работать так, как показано на рис. 8.12 (а), и действительно, схема, изображенная на рис. 8.2, осуществляла аварийную остановку именно таким образом. Нажатие кнопки разрывает цепь управле- ния контактором, обесточивая его и отключая тем самым питание электродвигателя. Однако эта схема обладает несколькими видами
Практические вопросы 373 Кнопка аварийной (}- остановки Kli Питание Нагрузка Кнопка аварийной • остановки Возврат f-X Нагрузка Питание Рис. 8.12. (а) Простая схема аварийной остановки. Эта схема обладает несколькими потенциально опасными видами отказов, (б) Усовершенствованная схема аварийной остановки. Однако для правильной работы этой схемы два контактора должны иметь дублирующие друг друга нормально разомкнутые и нормально замкнутые контакты: кроме того, она не обладает достаточной надежностью отказов, которые могут представлять опасность. В частности, у контактора могут оплавиться контакты или сломаться пружина. В этих обстоятельствах аварийная остановка не возымеет действия. На рис. 8.12 (б) показано, как можно повысить надежность схе- мы с помощью резервирования. Но при этом надо позаботиться о том, чтобы отказ одного элемента не повлиял на продолжение нор- мальной работы остальных элементов, обладающих пониженной надежностью. Эта схема окажется неработоспособной, только если откажут оба контактора. Два нормально замкнутых контакта в ле- вой ветви схемы обеспечивают некоторую защиту от залипания или оплавления контактора. Непосредственный отказ одного контак- тора из-за оплавления приведет к тому, что его нормально замкну- тый контакт разомкнется и схема не сможет подать питание на на- грузку. Хотя и эта схема не является идеальной. Чтобы она была работоспособной, должно существовать совмещение нормально разомкнутых и нормально замкнутых контактов (т. е. на небольшом участке цепи они должны быть соединены последовательно). Та- ким образом, контактор может выйти из строя при срабатывании как нормально разомкнутых, так и нормально замкнутых контак- тов. Кроме того, дублирующие контакты должны быть некоторым
374 Программируемые контроллеры способом подпружинены, что создает дополнительные виды опас- ных отказов. Хотя эта схема и гораздо лучше, чем представленная на рис. 8.12 (а), она тем не менее подвержена рискам сбоя. На рис. 8.13 (а) показано, как можно еще более повысить надеж- ность, используя три контактора и безусловно управляемые конта- кты. Эта идея традиционно используется в светофорах и железно- дорожной сигнализации; ее реализация позволяет, например, исключить возможность одновременного движения в двух направ- лениях. Безусловно управляемые контакты сконструированы та- ким образом, что как нормально разомкнутые, так и нормально замкнутые контакты передвигаются одним и тем же механизмом и не могут одновременно сработать даже в случае неисправности. Принцип их действия проиллюстрирован на рис. 8.13 (6). На рис. 8.13 (а) три контактора используются в порядке очеред- ности. Один из них, К1, использует нормально замкнутые контак- ты, а другие — нормально разомкнутые контакты. Таким образом, при правильной работе К1 должен быть обесточен, а К2 и КЗ нахо- диться под током. Когда первый включается или когда кнопка ава- a Питание кгуу КЗ' J J Нагрузка Нормал ь- 9 но замк- нутый н контакт Нормаль- но ра- зомкну- тый контакт Рис. 8.13. (а) Схема аварийной остановки, реализованная без использования дублирующих контактов. После нажатия кнопки аварийной остановки эту схему надо вернуть в исходное состояние, и в случае единственного отказа она сохраняет надежность. (б) Принцип действия безусловно управляемых не дублирующих контактов
Практические вопросы 375 рийной остановки нажимается и отпускается, все контакторы ока- зываются обесточенными. Если нажать кнопку возврата, то снача- ла активизируется К1 при условии, что К2 и КЗ не были задейство- ваны (это «помнят» безусловно управляемые контакты). Затем контакты К1 вводят в действие К2 и КЗ, которые обесточивают К1, но фиксируют свое состояние с помощью собственных контактов. Единственный отказ любого контактора выведет схему из строя или воспрепятствует началу ее работы. Однако она остается уязви- мой к одновременному оплавлению контактов К2 и КЗ, но вероят- ность такого события предполагается достаточно малой. Схема на рис. 8.13 (а) приемлема для нагрузок, потребляющих мощность в несколько кВт, но при значительно больших потребляе- мых мощностях она становится непрактичной (и дорогостоящей). Схема, представленная на рис. 8.14, построена из маломощных реле с безусловно управляемыми контактами, которые в свою очередь упра- вляют двумя зарезервированными контакторами С1 и С2. Безусловно управляемые вспомогательные контакты этих контакторов включены последовательно с кнопкой возврата. Таким образом, отказ контакто- ра в случае возникновения опасности воспрепятствует повторному запуску устройства и, подобно схеме на рис. 8.13 (а), данная схема мо- жет выполнить свои функции, только если оба контактора исправны. И здесь, так же как и в схеме рис. 8.13 (а), существует риск того, что оба контактора откажут во время нормальной работы. Рис. 8.14. Схема аварийной остановки с рис. 8.13 (а), модифицированная для использования с независимыми мощными контакторами
376 Программируемые контроллеры Схемы типа рис. 8.13 (а) и 8.14 имеют широкое распространение и изготавливаются многими производителями управляющих уст- ройств в виде единых надежных релейных блоков. Хотя остаточный риск в этих схемах незначителен, они во мно- гих обстоятельствах могут оказаться неприемлемыми. В частности, схема, основанная на одном контакте, в случае опасности сама мо- жет отказать, а повреждение кабеля может нарушить соединение с кнопкой аварийной остановки (обрыв кабеля, конечно, заставит надежное реле остановить объект). Если в конкретной задаче по оценке остаточный риск должен быть много ниже (часто это быва- ет, когда к кнопке аварийной остановки подводится гибкий ка- бель), то для каждой кнопки может быть предусмотрено два конта- кта — один для коммутации цепи питания обмотки надежного реле и один для кнопки возврата, как показано на рис. 8.15. При исполь- зовании для соединения с такой кнопкой четырехжильного кабеля существует очень большая вероятность того, что любое поврежде- ние кабеля приведет либо к обесточиванию реле, либо к срабатыва- нию защитного плавкого предохранителя или выключателя. Схемы аварийной остановки требуют регулярного текущего об- служивания и тестирования. Автору довелось сталкиваться с ситуа- циями, когда под головкой кнопки, работающей в пыльной и влаж- ной атмосфере, скапливалось такое плотное кольцо грязи, что кнопка не срабатывала даже при ударе по ней молотком! Регуляр- ное обслуживание и тестирование помогут избежать подобных про- блем. Помните, что осмотр и профилактическое обслуживание средств обеспечения безопасности являются необходимым требо- ванием большинства связанных с этим законодательных актов. В разд. 8.2.2 было введено понятие оценки риска. Для этого ев- ропейский стандарт prEN954-l предлагает схему оценки риска (приведенную на рис. 8.16) для средств обеспечения безопасности (включающих схемы аварийной остановки и подвижные защитные приспособления). Она включает следующие категории: Кнопка аварийной - остановки '* L A N В Рис. 8.15. Кнопка аварийной остановки двойного действия для защиты от неисправности контакта или повреждения кабеля. Она используется в схемах рис. 8.13 и 8.14 и при нажатии разъединяет цепь питания и кнопки возврата
Практические вопросы 377 2 3 4 Начало 7 Ч Р2 7 Тяжесть последствий S1 Незначительное (обратимое) повреждение S2 Фатальный исход или серьезное (необратимое) повреждение Частота F1 Нечасто/краткое воздействие F2 Часто/непрерывно/интенсивное воздействие Возможность избежать опасность Р1 Возможно избежать Р2 Трудно/невозможно избежать В Q X Недопустимо Q Возможно допустить • если предприняты иные меры Один из двух вариантов, использовать наиболее простой, если зона объекта в порядке и обслуживание на должном уровне Предпочтительно ----Особо необходимо Рис. 8.16. Схема выбора аварийной остановки Категория В. Минимальные требования, учитывающие такие условия работы объекта, как влажность, температура и виб- рация. Категория 1. То же, что и В, но в системах обеспечения безо- пасности должны использоваться «хорошо опробованные» принципы и компоненты. На этом уровне недопустимо пола- гаться только на электронные или программируемые системы. Категория 2. То же, что и В, но не допускается, чтобы произо- шел запуск установки, если перед этим была обнаружена не- исправность системы обеспечения безопасности. Разрешает- ся иметь один канал воздействия (например, кнопки аварийной остановки или концевые выключатели огражде- ния), если имеется строго документированная процедура ре- гулярного ручного тестирования. Категория 3. То же, что и В, но любой отказ системы обеспе- чения безопасности не должен приводить к потере функции защиты, и, если это возможно, данный отказ должен быть идентифицирован. Это требует резервирования и примене- ния выключателей на два направления, как на рис. 8.15.
378 Программируемые контроллеры • Категория 4. То же, что и В, но любая одиночная неисправ- ность должна быть обнаружена, а любые три одновременных отказа не должны приводить к потере функции защиты. В предыдущем разделе были рассмотрены проблемы безопасности ПЛК и компьютеров. По общему мнению в большинстве сложных систем по финансовым соображениям не используются методы ре- зервирования, необходимые для достижения адекватных уровней безопасности с помощью исключительно электронных или про- граммных средств аварийной остановки. Наилучшее решение — иметь жестко замонтированную систему обеспечения безопасно- сти, включаемую между выходами ПЛК и исполнительными уст- ройствами (контакторами, клапанами и т. п.). Необходимо также обеспечить соединение со входом ПЛК, позволяющее удостове- риться, что эта система работает нормально (на практике, однако, имеют дело со входом, который сообщает о том, что система не ра- ботает, так что неисправность или пропажа питания приводит к ос- тановке движущихся частей). Этот вход через программу приводит к отключению выхода, поэтому для повторного запуска системы в ней помимо устранения сигнала об опасности должны быть преду- смотрены определенные ручные манипуляции. Если при возникновении аварийной ситуации должны быть вы- ключены несколько устройств (например, несколько клапанов, уп- равляемых соленоидами), то с помощью контактов схемы аварий- ной остановки можно просто снять питание с соответствующих выходных плат, как было показано ранее на рис. 8.5. В заключение следует заметить, что требования к схеме аварий- ной остановки можно снизить за счет применения эффективной системы ограждения (т. е. система управления будет прекращать работу всякий раз, когда персонал подвергается риску). Эта проб- лема рассматривается в следующем разделе. 8.2.5. Ограждение Одним из весьма эффективных методов уменьшения риска являет- ся ограничение доступа к опасным частям машины или процесса с помощью фиксированных или подвижных ограждений. Фиксиро- ванные ограждения построить несложно, но к проектированию подвижных ограждений, часто требуемых при необходимости дос- тупа к объекту для его технического обслуживания или производст- ва продукции, надо подходить особенно тщательно. Подвижные ограждения должны выполнять две функции. Во- первых, они должны гарантировать, чтобы машина не могла рабо-
Практические вопросы 379 тать, когда ограждение открыто. Во-вторых, если для остановки машины требуется достаточно большое время, ограждение должно быть некоторым образом заблокировано в закрытом состоянии, пока машина окончательно не остановится. Интуитивным, но неверным способом ограничения доступа к машине, когда ограждение открыто, является использование кон- цевого выключателя, срабатывающего при закрытом ограждении, как показано на рис. 8.17 (а). Это имеет два потенциально опасных недостатка. При таком монтаже (называемом неконструктивным или непринудительным) концевой выключатель замыкается ограж- дением и размыкается пружиной. Повреждение этой пружины мо- жет привести к тому, что контакты будут оставаться замкнутыми, когда ограждение открыто. К тому же при открытом ограждении к концевому выключателю имеется доступ, и операторы легко могут «заблокировать» его, чтобы игнорировать требования безопасности. На рис. 8.17 (б) ограждение само при его открытии размыкает концевой выключатель, а пружина заставляет его замкнуть контак- ты, когда ограждение снова закрывается. Таким образом, поврежде- ние пружины предохраняет машину от включения в работу. Если Рис. 8.17. Ограждение с использованием концевых выключателей: (а) непринудительное выключение (ограждение замыкает контакты, пружина их размыкает); (б) принудительное выключение (ограждение размыкает контакты, пружина их замыкает)
380 Программируемые контроллеры контакты приварятся, то либо ограждение нельзя будет открыть, ли- бо при его принудительном открытии эти контакты будут сломаны или разомкнуты. Когда кнопка концевого выключателя нажимается (вниз) ограждением и отпускается (вверх) для включения машины в работу, этому очень трудно помешать. Это называется принудитель- ным действием. Остаточный риск можно сделать очень малым, ес- ли ограждение оснастить обоими типами концевых выключателей. Другим возможным решением проблемы ограждения является использование фотоэлементов. Это должны быть не обычные фо- точувствительные датчики, а специальные системы с самоконтро- лем, разработанные для целей обеспечения безопасности. Подоб- ная система должна быть смонтирована таким образом, чтобы падающий на фотоэлемент луч света нельзя было миновать, прой- дя над ним или под ним, и чтобы оператор не смог пересечь луч света, войти в зону объекта и выйти из нее с другой стороны. Мож- но также использовать половицы, чувствительные к давлению, но и в этом случае проектирование системы защиты должно быть вы- полнено с особой тщательностью. Применительно к таким устройствам, как ножницы и прессы, хорошую защиту обеспечивают сдвоенные кнопки, предназначен- ные для обеих рук. Их действие основано на описанных выше ре- лейных схемах, поэтому необходимо приобрести специальные реле дуального управления. Следует, однако, заметить, что сдвоенные кнопки защищают только оператора, но не других людей. Регламентные и ремонтные работы обычно требуют доступа к участкам процесса, запрещенным для вмешательства операторов. Это подвергает обслуживающий персонал особо высокому риску получения различных повреждений. Часто единственным спосо- бом достижения приемлемого остаточного риска является наличие системы полного разъединения электрических цепей и разрешения на работу объекта, которая отключает питание в заранее установ- ленных пунктах, таких как центры управления электродвигателя- ми, гидравлические накопители, линии сжатого воздуха и т. п. Не- обходимо проверить, отключено ли питание, заблокировать места разъединения, обесточить коммутационные панели и выдать пись- менное разрешение на возобновление работы. Только после этого работа может быть продолжена. Что касается небольших или крат- ковременных работ с незначительным риском, то вполне может быть приемлемой местная передвижная система защиты с обыкно- венным выключателем. Заметим, что оценка риска должна быть произведена для каждой возможной работы по текущему обслужи- ванию установки.
Практические вопросы 381 8.2.6. Законодательство в сфере обеспечения безопасности Существует большое количество законодательных актов, посвя- щенных охране здоровья и безопасности, и приводимый ниже пе- речень охватывает только те из них, которые обычно применяются в промышленности. Этот перечень, конечно, не является полным, а подробное изложение этих и многих других законов приводится в третьем издании книги автора Industrial Control Handbook. Еще бо- лее детальное описание можно найти в книге Джона Ридли (John Ridley) Safety at Work. Обе книги опубликованы издательством Butterworth-Heinemann. Закон об охране здоровья и безопасности на производстве 1974 г. (первый закон подобного рода в Великобритании). Следующие шесть обязательных постановлений основаны на дире- ктивах Европейского экономического сообщества (ЕЭС) и в сово- купности известны как «пакет шести». Правовые нормы управления охраной здоровья и безопасно- стью на производстве от 1992 г. Правовые нормы по обеспечению и использованию рабочего оборудования (PUWER) от 1992 г. Инструкции по ручным операциям от 1992 г. Правовые нормы по охране здоровья, безопасности и улуч- шению условий труда на рабочем месте от 1992 г. Правила по использованию устройств персональной защиты от 1992 г. Инструкции по работе с экранными устройствами индика- ции от 1992 г. Правила отчетности о ранениях, заболеваниях и опасных происше- ствиях (RIDDOR) от 1995 г. Правовые нормы по конструированию (разработка и эксплуата- ция) от 1994 г. Правила по работе с электрооборудованием от 1990 г. Контроль за веществами, опасными для здоровья (COSHH). 1989 г. Нормативы уровня шума на рабочем месте, 1989 г. Нормативы работы с ионизирующими излучениями, 1985 г. Правила обозначений и сигнализации, связанные с безопасностью, 1996 г. Правила обращения с воспламеняющимися жидкостями и сжи- женным газом, закон о предотвращении пожаров, 1971 г.
382 Программируемые контроллеры Инструкции уполномоченных представителей и Комитета по безо- пасности, 1977 г. Положения об информировании служащих по вопросам охраны здоровья и безопасности, 1996 г. Правила оказания первой помощи, 1981 г. Правила перевозки систем под давлением и контейнеров с газом, 1989 г. 8.2.7. IEC61508 IEC61508 — это стандарт Международной электротехнической ко- миссии (IEC) по электрическим, электронным и программируемым (Е/Е/РЕ) системам безопасности. Как и все современные концеп- ции безопасности, он основан на идее оценки риска и принятия мер, позволяющих снизить риск до приемлемого уровня. Это доста- точно сложный документ, и в данном разделе мы можем дать лишь краткое введение в его основные положения. Читателю настойчиво рекомендуется полностью изучить этот стандарт или воспользовать- ся профессиональной консультацией, прежде чем приступать к про- ектированию системы, в которой основной проблемой является обеспечение безопасности. Поскольку это международный стандарт, не требующий обяза- тельного директивного признания в Великобритании или Европе, официальная точка зрения Комитета по охране здоровья и безопас- ности такова: «1ЕС61508 будет использоваться как эталонный стан- дарт при определении того, достигнут ли практически достаточный уровень безопасности при реализации функций обеспечения безопасно- сти Е/Е/РЕ системами». Стандарт IEC61508 содержит несколько терминов, имеющих конкретный смысл: Опасность — возможность нанесения ущерба людям или оборудо- ванию. Риск — сочетание вероятности опасности и серьезности последст- вий, т. е. Риск = вероятность х последствия. Вы можете снизить риск, уменьшая либо вероятность опасности, либо тяжесть последствий. Например, применение ограничителей скорости в автомобилях снижает как вероятность дорожного про- исшествия, так и возможные его последствия. Мотоциклист, наде- вая шлем, снижает тяжесть последствий происшествия.
Практические вопросы 383 Управляемое оборудование (Equipment under Control — EUC) — все, что подлежит рассмотрению; сюда относятся датчики, логическая система управления и исполнительные устройства. Функциональная безопасность — уверенность в правильном выпол- нении функций обеспечения безопасности, когда это необходимо. К функциям обеспечения безопасности имеют отношение те части объекта, которые именно для этого предназначены, — это датчики расхода, клапаны сброса давления, защитные заслонки, кнопки аварийной остановки и т. д. IEC61508 устанавливает четыре уровня классификации риска, приведенные в табл. 8.1. Уровень приемлемых рисков поразительно отличается в разных отраслях промышленности, но IEC61508 предлагает в качестве ти- пичных классификации, приведенные в табл. 8.2. Таблица 8.1 Классификация рисков Класс риска Интерпретация I Недопустимый риск II Нежелательный, допустимый, только если его невозможно снизить или если затраты на снижение несоразмерны с получаемыми выгодами III Допустимый при условии, если затраты на дальнейшие усо- вершенствования несоразмерны с получаемыми выгодами IV Пренебрежимо малый, приемлемый риск Таблица 8.2 Классификация рисков в соответствии с IEC61508-5 на основании таблицы 8.1 Частота Последствия происшествий Катастрофи- Опасные Незначи- Пренебре- ческие тельные жимые Часто (1 в год) I I I II Предположи- тельно (1 в 5 лет) I I II III Редко (1 в 50 лет) I Очень редко II III III (1 в 500 лет) II Маловероятно III III IV (1 в 5000 лет) III Невероятно III IV IV (1 в 50 000 лет) IV IV IV IV Катастрофические - более одного смертельного случая. Опасные - один смертельный случай или одна или более серьезных травм. Незначительные - одна или более небольших травм. Пренебрежимые - мелкая травма или повреждение объекта, повлекшее потерю про- изводительности .
384 Программируемые контроллеры Потенциально опасный объект можно представить в виде рис. 8.18. Риск определяется вероятностью возникновения опасной си- туации и ее последствиями. Риск можно уменьшить комбинацией внешних устройств (например, ограждений), других систем (на- пример, персональных средств защиты) и находящейся непосред- ственно между ними Е/Е/РЕ системы безопасности. Сочетание этих трех мер позволяет снизить риск до допустимого уровня. Степень снижения риска характеризуется уровнями полной без- опасности (УПБ). Существуют две группы УПБ. Первая группа, называемая классом низких требований, используется очень редко (если вообще используется). Типичным примером является воз- душная подушка безопасности в автомобиле, снижающая вероят- ность причинения пассажирам травмы в случае дорожного проис- шествия. Здесь УПБ определяется как вероятность отказа системой безопасности выполнять требуемые функции (см. табл. 8.3). Таблица 8.3 Класс низких требований УПБ Вероятность отказа 4 3 2 1 От > 105 до 104 От> 104до 103 От > 103 до 102 От> 102 до 10' Вторая группа, называемая классом высоких требований, отно- сится к функции безопасности, заключающейся в непрерывном контроле за работой управляемого оборудования. Типичным при- мером может служить система контроля уровня воды в паровом котле высокого давления. Здесь УПБ определяется как вероятность опасного отказа за один час (см. табл. 8.4). Требуемое снижение Рис. 8.18. Требуемое снижение риска
Практические вопросы 385 Таблица 8.4 Класс высоких требований УПБ Вероятность опасного отказа за час 4 3 2 1 От > 109 до 108 От > 108 до 107 От> 10'7до 106 От> 106 до 105 Исследование структуры, представленной на рис. 8.18, должно указать требуемый уровень полной безопасности. Заметим, что не- обходимо всестороннее исследование с анализом всех возможных видов отказов функций безопасности. Это далеко не то же самое, как определение интенсивности отказов датчика или клапана. Предположим, что мы произвели оценку риска и установили, что он возникает один раз в год и влечет за собой одну травму. Со- гласно таблице 8.2, этот риск относится к классу I. Мы хотим сни- зить данный риск с класса 1 до класса III. Это означает, что жела- тельно снизить частоту риска приблизительно до одного за 5000 лет. Отсюда мы заключаем, что коэффициент снижения риска (КСР) равен 5000. Проектировщикам промышленных установок удается достичь КСР, равного 15, только за счет применения механических деталей повышенного качества. Требование, чтобы Е/Е/РЕ система безо- пасности имела КСР, равный 333, означает, что вероятность ее от- каза должна быть равна 3-102. Согласно таблице 8.3, данная систе- ма относится к классу УПБ-2. Комитет по охране здоровья и безопасности издал превосход- ную книгу под названием «Out of Control» (ISBN 0-7176-0847-6), которую рекомендуется прочитать каждому пользователю ПЛК. Часть этой книги посвящена анализу основных причин происшест- вий, связанных с управлением технологическими процессами, и в ней приводится следующая тревожная статистика: 44% происшествий вызваны плохими или неточными техниче- скими требованиями; 15% вызваны ошибками при проектировании; 6% появились в процессе монтажа и ввода в эксплуатацию; 14% выявлены в процессе работы и текущего обслуживания; 21 % вызван плохо продуманными решениями при модернизации. Иными словами, наиболее распространенными причинами проис- шествий были упущения при составлении исходных технических
386 Программируемые контроллеры условий, где не были предусмотрены или были плохо описаны тре- буемые функции безопасности. В связи с этим стандартом IEC61508 был установлен жизненный цикл безопасности, представленный на рис. 8.19. Каждый этап это- го цикла вырабатывает на выходе документацию, которая исполь- зуется в качестве входной для последующих этапов. Вся эта доку- ментация должна быть доступна в любой момент времени. Суть 16 этапов сводится к следующему: Этап 1. Концепция. Выясняются особенности управляемого обо- рудования и условий, в которых оно работает, с учетом соответству- ющих законодательных норм. Этап 2. Общее описание сферы деятельности. Обозначаются гра- ницы аппаратуры и системы управления во всех режимах работы (например, запуск, нормальная работа и т. д.). Устанавливается масштаб анализа опасности и риска. Этап 3. Анализ опасности и риска. Он должен быть выполнен для всех режимов работы и всех поддающихся предвидению условий, включая неисправности и ошибки оператора. Этап 4. Общие требования к безопасности. Разрабатывается спе- цификация для общих требований к функциям безопасности. Этап 5. Распределение требований к безопасности. Устанавлива- ется, как должны быть достигнуты функции безопасности, и каж- дой функции назначается уровень полной безопасности. Этап 6. Общее планирование работы и текущего обслуживания. Разрабатывается план эксплуатации и обслуживания Е/Е/РЕ систем обеспечения безопасности, гарантирующий их правильную работу. Этап 7. Общее планирование проверки правильности работы сис- тем безопасности. Составляется план проверки правильности ра- боты систем безопасности. Этап 8. Монтаж и ввод в эксплуатацию. Разрабатывается план действий, гарантирующий, что система безопасности смонтирова- на правильно и является работоспособной. Этап 9. Реализация Е/Е/РЕ системы безопасности. Создание Е/Е/РЕ системы безопасности, соответствующей установленным техническим требованиям. Этап 10. Реализация систем безопасности на основе иных техни- ческих решений. Создание систем безопасности, не использующих электрические, электронные или программные средства. Этот этап не является частью IEC61508. Этап 11. Другие факторы снижения риска. Этот этап также не яв- ляется частью IEC61508.
ООСД - общее описание сферы деятельности АОР - анализ опасности и риска ОТБ - общие требования к безопасности РТБ - распределение требований к безопасности РТО - работа и текущее обслуживание ПРСБ - правильность работы систем безопасности МВЭ - монтаж и ввод в эксплуатацию РСБ - реализация Е/Е/РЕ системы безопасности РСБИТР - реализация систем безопасности на основе иных технических рещений РВМСР - реализация внешних мер снижения риска ОМВЭ - общий монтаж и ввод в эксплуатацию ОППРСБ - общая проверка правильности работы систем безопасности ЭТОР - эксплуатация, текущее обслуживание и ремонт ВЭО - вывод из эксплуатации и отключение С бщее планирование- 6 РТО 7 ПРОБ В МВЭ Рис. 8.19. Жизненный цикл безопасности Практические вопросы_____________________________ 387
388 Программируемые контроллеры Этап 12. Монтаж и ввод в эксплуатацию. Реализуется план, раз- работанный на этапе 8. Этап 13. Общая проверка правильности работы систем безопасно- сти. Реализуется план, составленный на этапе 7. Этап 14. Эксплуатация, текущее обслуживание и ремонт. Этот этап охватывает большую часть срока службы объекта. Все системы безопасности должны находиться в рабочем состоянии, обслужи- ваться и ремонтироваться таким образом, чтобы была гарантирована их целостность. Здесь реализуется план, разработанный на этапе 6. Этап 15. Общая модернизация и настройка. Модернизация объ- екта и внесение изменений являются очень опасными действиями, о чем упоминается в изданной Комитетом по охране здоровья и безопасности книге «Out of Control». Катастрофы в Фликсборо и Чернобыле произошли из-за плохо продуманных работ по техниче- скому обслуживанию. Если какие-либо действия по текущему об- служиванию или изменения, вносимые в объект, затрагивают воп- росы безопасности, то необходимо повторно выполнить все процедуры, связанные с жизненным циклом безопасности. Этап 16. Вывод из эксплуатации. Подтверждение того, что функ- циональная безопасность Е/Е/РЕ системы соответствует остановке объекта, и отключение ее от оборудования. IEC61508 также налагает несколько ограничений на архитектуру си- стем. Самым главным из них является то, что система обеспечения безопасности и система управления должны быть разделены. Это является обычным явлением в большинстве систем управления на основе ПЛК, где защитные устройства, такие как схемы аварийной остановки или блокировки, работают непосредственно внутри ис- полнительных механизмов. Однако иногда это трудно реализовать в сложных нефтехимических установках, для отключения которых требуется регламентированная последовательность действий. Другим важным архитектурным ограничением является то, что обязательно должны приниматься во внимание виды отказов уст- ройств и вероятность «безопасных отказов». Для клапана, управля- ющего потоком охлаждающей воды, безопасным отказом является невозможность закрыться. Приведенные выше таблицы стандарта IEC61508 связывают требуемые УПБ и вероятности безопасных от- казов при заданной степени резервирования. Например, при требу- емом значении УПБ-2 и вероятности безопасного отказа исполни- тельного устройства, обеспечивающего защиту, менее 0.6 обязательным будет двойное резервирование, если даже вычислен ный УПБ является достаточным.
Практические вопросы 389 1ЕС61508 также подчеркивает необходимость качественного со- блюдения процедуры проектирования и подбора качественных компонентов системы. Нет нужды говорить, что персонал, имею- щий отношение к проектированию, должен быть квалифициро- ванным и компетентным. 8.3. Критерии проектирования В главе 3 мы рассмотрели вопрос о том, какие функции должен вы- полнять ПЛК. В данном разделе мы с аналогичной точки зрения подойдем к аппаратным средствам ПЛК. Первая (и, возможно, наиболее важная) проблема состоит в том, чтобы установить, сколько дискретных входов, дискретных выхо- дов и т. п. должен иметь ПЛК и, соответственно, сколько для этого потребуется плат. Это может быть очень трудной задачей, посколь- ку во многом зависит от требований пользователя. Рассмотрим, например, простой гидравлический насос, включае- мый и выключаемый с центрального пульта управления. В простей- шем случае для этого нужен один вход ПЛК (включение питания) и один выход (контактор насоса). С учетом кнопок, сигнальных ламп на пульте и соответствующих средств диагностики количество входов мо- жет вырасти до восьми (кнопка пуска, кнопка остановки, вспомога- тельный контактор, проверка срабатывания разъединителя, проверка срабатывания схемы аварийной остановки, проверка срабатывания местного разъединителя, включение центра управления приводом, выключатель гидравлического давления), а количество выходов до пя- ти (контактор насоса плюс не предусмотренные заранее индикаторы работы, остановки, разъединения, неисправности). Проектировщик должен знать, какой выбор захочет сделать пользователь между этими двумя крайностями. Я обычно предпочитаю производить соединения со всеми имеющимися в наличии устройствами, а позже решать, будут ли они использоваться. Оставлять «на потом» то, что можно сделать сразу, — признак расхлябанности и может дорого обойтись. («Мы только что решили, что было бы полезно знать, когда привод отклю- чается, — говорит пользователь. — У нас всего 47 электроприводов, за- пасных контактов у реле перегрузки в центре управления двигателями нет, нет также резервных плат в составе ПЛК, а мы хотели бы завтра уже начать испытания».) Старайтесь избегать подобных проблем. Определить, сколько всего потребуется плат, — это не просто разделить количество сигналов на число каналов, обслуживаемых одной платой. Текущее обслуживание можно облегчить, если сгруппировать функции, выполняемые платой, — типичный при-
390 Программируемые контроллеры мер приведен на рис. 8.20. Платы ПЛК оснашены светодиодами, показывающими состояние сигналов, и при рациональном распре- делении входов/выходов можно сформировать легко распознавае- мые «узоры», помогающие в обнаружении неисправностей. Такая функциональная группировка позволяет также зарезерви- ровать места для дополнительных входных/выходных плат. Никог- да не следует устанавливать ПЛК, не имеющие свободных гнезд, допускающих возможность последующего расширения. Если про- ект имеет хорошую документацию и пользователь ей безоговороч- но доверяет, то реально допустить установку 10% дополнительных плат. Если же не существует письменно оформленных технических требований, то не будет чрезмерно высоким иметь и 50% свобод- ных гнезд для установки дополнительных плат. Входные сигналы и индикаторные лампы имеют тенденцию появляться неизвестно от- куда, поэтому будьте к этому готовы. Наибольшие капитальные затраты связаны с прокладкой кабе- лей, и их можно существенно уменьшить путем использования уда- ленных входных/выходных плат, подключаемых через простой ко- Рис. 8.20. Рациональное распределение входов и выходов помогает при обнаружении неисправностей. Легко можно видеть, что масляный насос отключен, а кнопка аварийной остановки вытяжного вентилятора нажата
Практические вопросы 391 аксиальный или двухжильный кабель. Необходимо изучить «гео- графию» объекта управления, чтобы определить, где следует сгруп- пировать такие платы с целью минимизации кабельной проводки. Например, при конструировании пультов управления часто можно непосредственно установить в них входные и выходные платы, осу- ществляющие связь с внешним миром через кабель, подключен- ный к удаленным платам, источник питания и несколько вмонти- рованных управляющих устройств, таких как кнопки аварийной остановки. Такой подход позволяет провести необходимые испыта- ния без демонтажа перед вводом системы в эксплуатацию. 8.4. Конструктивные особенности 8.4.1. Источники питания Естественно, что для обеспечения работы ПЛК требуется источник питания. В промышленности, как правило, это сеть переменного тока напряжением 110 В. По возможности, питание всей системы должно осуществляться от одного общего источника. Если исполь- зуются раздельные источники питания, то любые импульсные по- мехи в одном источнике мгновенно могут привести к потере связи между отдельными частями системы и вызвать непредсказуемые отключения. При использовании общего источника питания все составные части системы подвергаются одним и тем же воздейст- виям и, следовательно, менее уязвимы к помехам. В каждом корпусе должна быть обеспечена система распределе- ния питания, аналогичная представленной на рис. 8.21. Можно ви- деть, что она обслуживает несколько различных участков, в каждом из которых для защиты имеются размыкающие устройства или плавкие предохранители. Стойки и процессоры ПЛК нуждаются в источнике питания, который должен быть стабильным и помехозащищенным во избе- жание спонтанных скачков напряжения. Сравнительно недавно для этой цели было принято использовать преобразователи посто- янного напряжения (ППН), действующие как преграда для высо- кочастотных наводок на источник питания. К сожалению, они так- же блокируют высокочастотную нагрузку от источника, что может привести к весьма странным последствиям при использовании ис- точников питания, действующих в режиме переключения. Если ПЛК не допускает питания от источников, потенциально склонных к воздействию помех (например, источника напряжением 110 В, получаемым непосредственно от шин питания в центре управления
392 Программируемые контроллеры электродвигателями), то следует отдать предпочтение ППН. ППН имеют очень высокий противоток, что приводит к более высокой степени защиты от обратного влияния на них со стороны кабель- ных соединений, чем это можно было ожидать. Можно использо- вать также фильтры во входных шинах, но и этот способ склонен приводить к непонятным последствиям при работе с источниками питания, действующими в режиме переключения. В схеме на рис. 8.21 использовано одно реле для аварийной ос- тановки. Это позволяет отключить питание от всех выходных плат в гнезде 0 и заблокировать один выход в гнезде 1. При использова- нии такой схемы должны быть предусмотрены демпфирующие уст- ройства, уменьшающие вызванные индуктивностью реле пики на- пряжения при размыкании контакта. Такие пики напряжения могут быть главным источником электрических помех и даже могут вывести из строя транзисторы или тиристоры на выходе ПЛК. Полезно иметь для каждой выходной платы индивидуальную за- щиту, как показано на рис. 8.21. В случае любой внешней неисправ- ности это ограничивает затрагиваемую ей область и облегчает поиск неисправности, связывая возникшую проблему с выходами только одной платы. Обычно выходные платы ПЛК имеют собственную внутреннюю защиту, часто в виде одного плавкого предохранителя на каждый выход (с общим плавким предохранителем, разрываю- щим цепь индикатора). Часто по питанию каждой выходной платы осуществляется обратная связь на вход, что позволяет ПЛК контро- лировать состояние источника питания и выдавать аварийный сиг- нал в случае разрыва цепи плавким предохранителем. В отношении входов существуют два метода защиты. В первом из них все входы одной платы подключаются через один и тот же преры- ватель. Это означает, что плата может быть разъединена в одной точке (но имеет тот недостаток, что внутри пульта управления или распреде- лительной коробки могут существовать несколько различных источ- ников питания). Во втором методе каждая точка в месте размещения одной платы питается от общго источника. Таким образом, имеется только один источник на место размещения, но в то же время одна плата может питаться от многих разных источников. Автор предпочи- тает использовать второй метод, но это лишь его личное мнение. Во время ввода системы в эксплуатацию, текущего обслужива- ния и обнаружения неисправностей часто полезно иметь возмож- ность отключения выходов или входов ПЛК, оставляя систему в ра- бочем состоянии. В схеме на рис. 8.21 это можно осуществить с помощью выключателей, размыкателей или плавких предохрани- телей.
Подвод питания (с защитой в подводной линии) Резерв МИСТОМ РАО К нейтральной шине (или к другому полюсу источника питания) _ § о-Резерв 5 § Выходные платы Входные платы (питание к гнезду О подводится через РАО) 1 Защита отдельного выхода Ср с помощью РАО Рис. 8.21. Типичное распределение питания в стойке для случая «грязных» сигналов от объекта Процессор ПЛК должен питаться от своего собственного «чистого» источника. Это облегчает восстановление исходного состояния системы после выхода из строя источника питания, если процессор и все стойки питаются от одного и того же источника, хотя и имеют индивидуальную защиту. Монтажные соединения стойки и объекта должны удовлетворять соответствующим требованиям электробезопасности (например, иметь надежное заземление) К объекту последовательно с кнопкой аварийной остановки Реле аварий- ной остановки —। (РАО) К клеммам входов Гнездо, I и х используемое (V) » Сигнальная мистом лампа в стойке 0:11/03 Практические вопрсх:ы________________________________393
394 Программируемые контроллеры В одном корпусе кроме ПЛК могут находиться и другие устрой- ства, например источники постоянного тока напряжением 24 В, измерительные приборы и самописцы. Для них также необходима индивидуальная защита. Наконец, обратим внимание на два важных приспособления, которыми часто пренебрегают. При вводе системы в эксплуатацию и обнаружении неисправностей существенную помощь могут ока- зать сигнальные лампы и гнезда, расположенные в корпусе и тер- минале для программирования, а также находящаяся под рукой же- стяная банка с припоем. Автор всегда предусматривает в каждой стойке стандартное гнездо для подключения источника напряже- нием 110 В с потребляемым током 5 А и 15 А. Очевидно, было бы нежелательным, чтобы весь ПЛК отключался при простой неисправности типа «залипания» соленоида перемен- ного тока, приводящего к резкому увеличению тока в цепи и сраба- тыванию основного размыкающего устройства. Поэтому в иерархии наподобие схемы рис. 8.21 необходима определенная дискримина- ция между различными устройствами зашиты, обеспечивающая размыкание цепи только на самом низком уровне. Это сложная за- дача, но грубое правило ранжирования защиты говорит о том, что степень защиты на определенном уровне должна в 5—10 раз превы- шать степень защиты на следующем более низком уровне. Помни- те, что зашита реализуется в кабеле, а не в устройстве, с которым он соединяется. Иерархия подвода питания должна быть рационально промар- кирована. Автор пользуется системой маркировки, в которой на ка- ждом уровне к индексу добавляется одна цифра: L LI L2 L3 Lil L12 L13 L21 L22 L31 L32 L33 L131 L132... Таким способом можно быстро определить исходную точку и мар- шрут распределения питания для любого источника в системе. Один распространенный повод для беспокойства вызывает при- менение источников питания с отводом от средней точки (из них часто используется источник типа 55/0/55). Хотя они позволяют уменьшить напряжение между любой точкой и землей, но ослож- няют обнаружение неисправностей и могут создать повышенную опасность при неправильной установке. Они требуют защиты в ка- ждой ветви (двухполюсных выключателей или двух плавких предо-
Практические вопросы 395 хранителей), а не только для всего источника. Автор однажды чуть не сжег целый блок, который был подключен к источнику 55/0/55 через однополюсный выключатель. Часто обсуждаются достоинства плавких предохранителей и вы- ключателей. Смонтированные на шине выключатели типа DIN, ко- нечно, упрощают текущее обслуживание и обнаружение неисправ- ностей, и в случае неисправности нет необходимости идти в магазин и покупать полный карман плавких предохранителей. В случае при- менения плавких предохранителей необходимо использовать специ- альные держатели, указывающие, какой из предохранителей перего- рел. Для каждой области применения также должна быть проведена стандартизация размеров плавких предохранителей. Нет ничего бо- лее досаждающего, чем попытка установить в корпусе предохраните- ли разных размеров, в то время как все держатели — одинаковые. Для безопасной и надежной работы очень важным является за- земление. Существует много способов заземления, из которых обычно применяются следующие: а) надежное заземление для рам, корпусов, пультов и распреде- лительных коробок; б) грубое физическое заземление для потенциально опасных сильноточных нагрузок, таких как индуктивность катушек реле и соленоидов; в) прецизионное заземление для слаботочных сигналов. Все эти заземления должны иметь одну и только одну общую точку, чтобы воспрепятствовать появлению контуров (о контуре, образо- ванном заземлением экрана в двух точках, речь шла в разд. 4.12). Если устройства наподобие стоек ПЛК устанавливаются на объеди- нительной панели, то не следует полагаться на крепежные винты, а необходимо предусмотреть заземление стоек. Все разводки питания должны осуществляться в соответствии с местными стандартами. В Великобритании для этого существуют правила разводки, установленные Институтом инженеров по элек- тротехнике (IEE). Это уже их 16-е издание. 8.4.2. Защита оборудования Проектировщик должен связать ПЛК и взаимодействующие с ним устройства с объектом управления. Для этого необходимы корпуса, распределительные коробки и кабельные соединения. Корпуса предназначены для защиты ПЛК от воздействия окру- жающей среды (главным образом от пыли и влаги), от вмешатель-
396 Программируемые контроллеры ства неквалифицированных работников и для защиты обслужива- ющего персонала от источников высокого напряжения. Защита, обеспечиваемая заключением устройств в корпус, обозначается числом IP (от англ. Ingress Protection — защита от доступа). Это дву- значное число, первая цифра которого относится к защите от твер- дых объектов, а вторая к защите от жидкостей. Чем больше число IP, тем лучше защита, как это видно из табл. 8.5. Некоторым числам IP соответствуют часто используемые названия, но они не имеют официального признания: IP22 Каплезащищенный IP54 Пылезащищенный IP55 Защищенный от непогоды IP57 Водонепроницаемый В большинстве промышленных применений используется IP55, да- же если устройство находится в помещении (но нужно запомнить, что IP55 — это только IP55 при закрытых дверях). Определенные проблемы могут быть связаны с высокой темпе- ратурой окружающей среды, поэтому всегда полезно оценивать, какое рассеяние тепловой мощности ожидается внутри корпуса. Производители ПЛК обычно приводят соответствующие цифры для своей аппаратуры (как правило, они достаточно низкие), но та- кие устройства, как трансформаторы (особенно ППН), могут выде- лять большое количество тепла. Для стандартного корпуса мощность 5 Вт, приходящаяся на 1 м2 его поверхности, будет приводить к повышению температуры на 1 °C. Например, при рассеянии мощности 400 Вт в корпусе с пло- щадью поверхности 5 м2 температура внутри повысится примерно на 16 °C. При оценке площади поверхности не учитываются осно- вание и боковые стороны, находящиеся в непосредственной близо- сти к стенам помещения. Если при вычислении оказывается, что температура внутри кор- пуса будет превышать наибольшую ожидаемую температуру окружа- ющей среды на величину, указываемую производителем в техниче- ских условиях (обычно около 60 °C), то необходимо предусмотреть принудительное охлаждение или использовать корпус большего раз- мера. При охлаждении путем рециркуляции, как показано на рис. 8.22, допускается мощность 100 Вт, приходящаяся на 1 м2 поверхно- сти, что соответствует повышению температуры внутри корпуса на 1 °C. В крайних случаях можно использовать приспособления типа холодильников.
Практические вопросы 397 Закрытый корпус Рис. 8.22. Охлаждение путем рециркуляции. Воздушные потоки создаются с помощью вентиляторов В любом случае надо иметь соответствующие средства, позволя- ющие сигнализировать об опасном превышении температуры. Для этого могут быть использованы термочувствительные краски или наклейки. Местоположение клеммных колодок можно определить двумя разными способами. На рис. 8.23 (а) клеммная колодка расположе- на так, что соединения с ней производятся в месте расположения объекта (причем неиспользуемые входы/выходы располагаются со- вместно на конце клеммной колодки). На рис. 8.23 (б) группировка входов/выходов производится на стороне ПЛК, что приводит к расщеплению кабельных соединений в месте расположения объек- та. Автор предпочитает использовать второй вариант соединений. Чтобы удачно реализовать первый вариант, еще до начала создания системы должны быть точно известны все входы и выходы объекта и соединения с ними, а любые (неизбежные) более поздние изме- нения так или иначе будут вносить путаницу в распределение внешних кабелей. При использовании схемы на рис. 8.23 (б) созда- ние системы можно начинать сразу после того, как становится из- вестным количество входов и выходов (без знания их распределе- ния), а монтаж является очевидным. В случае последующих модификаций отчетливо видны все незадействованные входы и вы- ходы. Какая бы схема ни использовалась, все задействованные вхо- ды и выходы должны быть размешены на клеммной колодке: про- вод сечением 2.5 мм2, припаянный к плате сменным электриком в 3 часа ночи, выглядит весьма неприглядно в сравнении с тонкими
398 Программируемые контроллеры Таблица 8.5 Степени защиты оборудования от доступа Твердые тела Жидкости Первая цифра Вторая цифра О Нет защиты Нет защиты 2 Защита от крупных твер- 1 дых тел. Рука не может проникнуть внутрь корпуса Oil Водяные капли конден- сата, падающие на кор- пус, не причиняют вреда Защита от твердых тел среднего размера. Палец не может войти в контакт с частями, находящимися под напряжением Протекающая крыша Падающая жидкость причиняет вред при отклонении до 15° от вертикали 2 3 Защита от предметов > 2.5 мм. Инструменты (например, отвертка) не могут достичь частей, находящихся Падающая жидкость причиняет вред при отклонении до 60° от вертикали мм под напряжением Защита от предметов •) размером > 1 мм Защита от разбрызгива- ния в любом направлении Полностью закрытый корпус. Пыль может проникнуть, но не в опасном количестве Защита от опрыскивания водой из шланга в любом направлении. Вода не мо- жет проникнуть внутрь в опасном количестве Пыль не может проникнуть. 6 Полная защита Защита от условий, соот- ветствующих нахождению на палубе корабля. Допус- кается кратковременное погружение в воду. Вода не д олжна проникать внутрь 7 Вода не должна проникать внутрь при постоянном .нахождении на глубине до 1 м 8 Допускается постоянное нахождение на опреде- ленной глубине под дав- лением Наиболее распространенные степени защиты IP11, IP21, IP22, IP23, IP44, IP54, IP55
Практические вопросы 399 проводниками сечением 0.5 мм2, собранными в одном месте разра- ботчиком распределительной панели. На клеммной колодке должны быть удовлетворены техниче- ские требования к подключению внешнего источника питания. Входы/выходы на клеммной колодке организованы соединением с объектом Сигналы от одной платы Стойка ПЛК Соединения с объектом Клеммная колодка а Соединения с объектом Клеммная колодка Стойка ПЛК Рис. 8.23. Соединения входов/выходов между ПЛК и объектом: (а) соединения производятся на стороне объекта; (б) соединения производятся на стороне ПЛК
400 Программируемые контроллеры На рис. 8.24 приведены рекомендуемые монтажные соединения для 8-битовой входной и 8-битовой выходной платы. Эта схема отличается простотой; комментария требует только нейтральная шина входной платы — она облегчает контроль с помощью изме- Питание входных плат 8 входных сигналов Возврат (для контроля) Клеммная колодка Нейтраль или минус источника постоянного тока Входная плата ПЛК а Нейтраль или минус источника б постоянного тока Рис. 8.24. Соединения плат с клеммными колодками: (а) входная плата; (б) выходная плата
Практические вопросы 401 рительного прибора соединений в распределительной колодке на стороне объекта. При вводе системы в эксплуатацию и для обнаружения неис- правностей полезно иметь клеммы, позволяющие производить ме- стное отключение сигналов. На рис. 8.25 приведены такие клеммы SACR производства фирмы Klippon, установленные внутри корпу- са. С их помощью можно при начальном испытании включить пи- тание при полностью отсоединенном объекте, а затем поочередно вводить в строй контактные участки. Аналогичный, но менее кон- тролируемый метод состоит в том, чтобы при первом включении отсоединить все отводы от входных/выходных плат ПЛК и по оче- реди подключать их обратно. Рис. 8.25 также демонстрирует важность использования марки- рованных зажимов, которая имеет существенное значение как при монтаже системы, так и при текущем обслуживании. Все кабель- ные жилы в системе, основанной на использовании ПЛК, должны быть промаркированы так, чтобы связать их с адресацией ПЛК (по- этому, если вы воздействуете на соленоид, то сразу можете видеть, что ему соответствует бит 05 платы 3 в стоике 4). Типичные систе- мы маркировки таковы: Рис. 8.25. Подключения объекта внутри корпуса. Отчетливо видна маркировка (выполненная с помощью компьютера в пакете программ компании Murrelectronic) и использование клемм типа SACR, позволяющих разделить вводы и оформить концы проводов в виде шнурков для ботинок во избежание их сплющивания
402 Программируемые контроллеры • 12413 входной бит 13 гнезда 4 в стойке 2 (для ПЛК Allen Bradley PLC5) • А0212 входной бит 12 слова 02 (для ПЛК GEM-80) • Q63/6 выходной бит 6 байта 63 (для ПЛК Siemens 85) Маркировка обходится недешево; по опыту автора, затраты труда на маркировку многожильного кабеля почти такие же, как на его прокладку и монтаж. Однако эти затраты могут окупиться при пер- вой же крупной неисправности. Из последних достижений отме- тим маркировки, получаемые с помощью компьютера, что также показано на рис. 8.25. Полезным и на этот раз недорогим средством является цветная маркировка проводов внутри корпуса в соответствии с их функци- ональным назначением. Вот некоторые примеры: Источники питания (переменного и постоянного тока) Обратный провод (нейтраль и минус источника постоянного тока) Выходы переменного тока Входы переменного тока Выходы постоянного тока Входы постоянного тока и их аналоги Отдельные выходы и провода, не связанные с ПЛК красный. черный, оранжевый, желтый. синий, белый. фиолетовый. Цветная маркировка помогает при разводке проводов внутри кор- пуса и позволяет моментально убедиться в том, что дополнитель- ные сигналы, появляющиеся при последующих модификациях объекта, имеют правильный тип для платы ПЛК (так, явно непра- вильным будет подключение с помощью концевого выключателя источника переменного тока напряжением ПО В к входной плате ПЛК, выполненное белым проводом). К каждой клемме должно подводиться не более двух проводов, и в идеальном случае при выполнении коммутации на клемму должны приходиться только два провода. И совсем хорошо было бы использовать коммутационные панели. Провода должны иметь завитые концы (называемые бирками типа шнурков от ботинок), как на рис. 8 25, чтобы избавиться от проблем, связанных с их сплющиванием.
Практические вопросы 403 8.5. Техническое обслуживание и обнаружение неисправностей 8.5.1. Введение Каждый проектировщик обязан знать, что в любой новой установ- ке (объекте управления): 1. Имеется по крайней мере один элемент, который является экспериментальным. 2. Имеется по крайней мере один элемент устаревшей конст- рукции. 3. Имеется по крайней мере один элемент со сроком поставки шесть месяцев (и это тот самый элемент, который в данный момент отсутствует на складе). 4. Чертежная документация не предусматривает место для вне- сения изменений при вводе установки в эксплуатацию. Возможно, это и не так, но здесь должен быть лучший способ дей- ствий. Когда проект завершен, вся ответственность за состояние объ- екта возлагается на обслуживающий персонал, жизнь которого трудна и часто недооценивается. Этот персонал в действительности не разделяет восторга по поводу нового объекта и его эффективно- сти и неизбежно принимает на себя вину за все ошибки проекти- ровщика, которые не были выявлены в течение нескольких меся- цев, пока объект находился в стадии конструирования. Обслуживающий персонал рассматривает управление произ- водством как необходимый, дорогостоящий и чреватый неприят- ными последствиями процесс, поэтому он часто ставит перед собой цель достичь нулевого времени простоя объекта из-за его неис- правности. Абсолютно нулевого времени простоя достигнуть не- возможно, но на практике можно обеспечить любой желаемый уро- вень надежности. Удивительно, но это может быть не самым главным, что в действительности требуется. Низкая надежность достигается при низких затратах, но приво- дит к высоким издержкам от потери производительности. С увели- чением надежности растут затраты на техническое обслуживание, но зато уменьшаются издержки производства. В конечном счете достигается точка, где повышение надежности требует увеличения затрат на обслуживание, которые превышают выгоду от снижения издержек производства, что характеризуется кривыми, подобными представленным на рис. 8.26. «Искусство» технического обслужи-
404 Программируемые контроллеры Рис. 8.26. Надежность с финансовой точки зрения вания заключается в том, чтобы найти точку минимальных затрат и поддерживать условия работы в этой точке. Значительные выгоды можно получить, если изначально проек- тировать объект таким образом, чтобы он в некоторой степени был устойчивым к отказам. Большинство промышленных объектов зна- чительную часть времени работают в режимах, характеризующихся определенными видами отказов. При проектировании объекта, ес- ли оно выполняется на высоком уровне, необходимо учесть воз- можное влияние этих отказов и предусмотреть методы, позволяю- щие объекту продолжать экономично и безопасно работать, пока обнаруживается и исправляется повреждение. 8.5.2. Статистическое представление надежности Предсказать, когда откажет тот или иной элемент, невозможно, по- этому для оценки их надежности применяются статистические ме- тоды. Надежность элемента или сложной системы определяется как вероятность (от 0 до 1) того, что они будут правильно выпол- нять свои функции в течение определенного периода времени. На- пример, стойка ПЛК может иметь вероятность безотказной работы 0.98 в течение двух лет. Вычисление надежности основано на испытании большого ко- личества элементов. Если в испытаниях за определенный период участвовали N элементов, и к концу испытаний Nj- из них отказа- ли, a Nr сохраняли работоспособность, то надежность R определя- ется как
Практические вопросы 405 Соответственно, ненадежность Q будет равна Очевидно, Q + R = 1. Надежность вычисляется за определенный период времени (1000 часов, 1 год, 10 лет или любой другой период). Альтернатив- ной оценкой является ожидаемое время службы. Оно определяется как среднее время службы до отказа (mean time to failure — MTTF) для невосстанавливаемых (подлежащих замене) элементов типа электрических ламп и как среднее время между отказами (mean time between failures — MTBF) для восстанавливаемых (подлежащих ремонту) элементов или систем. Обе эти оценки являются стати- стическими результатами, полученными при испытании большого числа элементов. При отказе оборудования важно, чтобы его можно было вернуть в рабочее состояние как можно быстрее. Термин «ремонтопригод- ность» описывает легкость, с которой отказавший элемент установ- ки может быть отремонтирован, и он определяется как вероятность (от 0 до 1), с которой установка может быть возвращена в рабочее состояние за определенное время. Другой оценкой ремонтопригодности является средняя продол- жительность ремонта (mean time to repair — MTTR), которая опре- деляется как среднее время, необходимое для возвращения отка- завшего элемента оборудования в рабочее состояние. Как и MTTF или MTBF, это статистическая цифра, получаемая на основании большого числа наблюдений. Ремонтопригодность определяется как проектировщиком, так и пользователем. При этом важно учитывать следующие факторы: 1. Проектировщик должен гарантировать, чтобы отказы тотчас же обнаруживались и отказавший элемент мог быть легко за- менен работоспособным. Для этого необходимо иметь хоро- шую документацию, рационально выбранные точки контро- ля и модульную конструкцию установки. К этим вопросам мы вернемся позже. 2. Необходимо обеспечить легкий доступ к уязвимым компонен- там. Нет ничего хорошего в том, если электрику надо влезать по 10-метровой лестнице и снимать крышку, закрепленную 16 винтами, чтобы заменить перегоревший предохранитель. 3. Обслуживающий персонал должен быть компетентным, хо- рошо обученным и оснащенным всеми необходимыми инет-
406 Программируемые контроллеры рументами и испытательным оборудованием. MTTR как раз говорит о том, сколько времени потребуется персоналу, что- бы отреагировать на неисправность. 4. Необходимо иметь быстрый доступ к запасным деталям. MTTR значительно увеличивается, если запасные части надо долго искать на складе. MTTR обычно снижается, если при- меняется политика замены отказавшего устройства вместо его ремонта. Из вышеперечисленного на проектировщика возлагается ответст- венность за пункты 1 и 2, а на пользователя — за пункты 3 и 4. Работоспособность объекта — это доля времени, в течение кото- рого все оборудование выполняет свои функции, т. е. Работоспособность = Время исправной работы Общее время Период работоспособного состояния Период работоспособного состояния + Период простоя MTBF ~ MTBF + MTTR + МТ ’ (8'3) где МТ — планируемое время профилактического обслуживания (maintenance time). Если из Nкомпонентов, находившихся в работе, Nj- отказывают за время Т, то интенсивность отказов X определяется как 1 Nf (8.4) (Строго говоря, NfM Т следует определять как приращение числа отказов ДЛу за время АТ при ЛЙЬО.) Для большинства систем интенсивность отказов характеризует- ся «ваннообразной кривой», изображенной на рис. 8.27. Она имеет три области. Первая из них, называемая «периодом детской смерт- ности», имеет короткую протяженность (обычно несколько недель) и характеризуется высокой интенсивностью отказов, поскольку проявляют себя бракованные компоненты, плохо спаянные соеди- нения, недостаточно закрепленные детали и т. п. Здесь сказывают- ся также ошибки, допущенные проектировщиками и разработчи- ками программного обеспечения.
Практические вопросы 407 Рис. 8.27. Ваннообразная кривая Центральная область («область зрелости») характеризуется по- стоянной и очень низкой интенсивностью отказов. В надлежащим образом спроектированной системе период зрелости обычно зани- мает годы. Последний период («период старости») характеризуется возрастающей интенсивностью отказов, обусловленной структур- ными изменениями из-за старения компонентов: окисление конта- ктов, высыхание электролитических конденсаторов, потеря упру- гости контактов штепсельных разъемов, нарушение монтажных соединений на печатных платах из-за циклических изменений тем- пературы и т. д. На этом участке целесообразно производить заме- ну компонентов. Можно показать, что в области зрелости 1 , 1 MTBF илиХ“ MTTF (8’5) в зависимости от того, производится ремонт или замена компонен- тов, а вероятность того, что компонент будет в течение времени / работать безотказно (т. е. его надежность за время /), равна R = е\ (8.6) Например, если система имеет MTBF = 17 500 часов (около двух лет), то вероятность ее безотказной работы в течение 8750 часов (примерно один год) равна R = ехр (-8750/17 500) - 0.6.
408 Программируемые контроллеры 8.5.3. Практика технического обслуживания Даже при хорошо спланированных процедурах профилактического обслуживания неизбежно будут возникать отказы оборудования. Имеется фундаментальное различие между проблемными ситуаци- ями в сложных системах, содержащих ПЛК, и, скажем, отказами механических устройств. В последнем случае даже для человека, не имеющего технической подготовки, отказ является очевидным и его причину легко можно установить. Ремонт механических повре- ждений обычно требует большого времени. В случае с ПЛК причину неисправности установить гораздо труднее, так как она может быть связана с намного большим коли- чеством компонентов. Если не срабатывает какой-либо исполни- тельный механизм, то причиной этого может быть ошибка в про- грамме ПЛК, собственно сам ПЛК, неисправность выходной платы, выход из строя источника питания, исполнительного меха- низма или некоторого устройства, участвующего в последователь- ности операций (например, концевого выключателя, разрешающе- го перемещение исполнительного механизма). Поэтому диагностика может занять определенное время, и если имеется воз- можность обнаружения неисправности путем производимой слу- чайным образом замены компонентов, то время, необходимое для поиска неисправности, можно сократить, используя определенную логическую процедуру. Как только установлена причина неисправ- ности, ремонт обычно производится быстро. По общему мнению, это оказывается трудно выполнимым, если в 3 часа ночи руководи- тель смены задает вам три неизбежных вопроса: «Знаете ли вы, что вышло из строя?», «Полагаете ли вы, что сможете это исправить?» и «Как много это потребует времени?». Надежность современного оборудования такова, что у обслужи- вающего персонала возникают определенные проблемы. Если MTBF измеряется годами, вполне возможно, что специалист при возникновении первого отказа столкнется лишь с частью оборудо- вания (а при этом инструкции по техническому обслуживанию и чертежи либо оказываются потерянными, либо пылятся в книжном шкафу главного инженера). Повышение надежности оборудования означает, что специалисту необходимы более широкие знания о конструкции и технических особенностях установки. Поэтому су- щественное значение приобретает профессиональная подготовка, и к этому вопросу мы вскоре вернемся. Процедуру обнаружения неисправностей можно разделить на обслуживание первой очереди (ремонт, выполняемый на месте,
Практические вопросы 409 обычно связанный с заменой модуля или элемента) и обслужива- ние второй очереди (ремонт компонента системы, выполняемый в мастерской). В любом случае это есть логический процесс, схема- тически изображенный на рис. 8.28. Исследуются признаки неис- правности, и на этом основании определяются ее возможные при- чины. Затем производятся проверки, чтобы подтвердить или отклонить эти причины. Такие проверки дают дополнительную ин- формацию, позволяющую суживать круг возможных причин до тех пор, пока не будет обнаружена неисправность. Одним из мастерских приемов при обнаружении неисправно- стей является сопоставление вероятностей всех их возможных причин со временем, усилиями и оборудованием, необходимыми для проведения проверок, позволяющих подтвердить или опро- вергнуть предположения. На рис. 8.29 приведены вероятности от- казов различных частей типичной системы с ПЛК, которые, что неудивительно, показывают, что 95% отказов «ПЛК» в действи- тельности происходят на стороне объекта управления и характерны для таких элементов, как исполнительные устройства и концевые выключатели. Обслуживание первой очереди Управление техобслуживанием Рис. 8.28. Процедура обнаружения неисправности
410 Программируемые контроллеры Рис. 8.29. Распределение отказов в типичной системе с ПЛК. Несмотря на то, что только 5% отказов приходятся на долю собственно ПЛК, любой отказ в системе, разумеется, регистрируется как «отказ ПЛК» Качественное проектирование оборудования должно предусма- тривать необходимые средства диагностики, позволяющие быстро проверить большую часть возможных причин неисправностей без применения специальной испытательной аппаратуры. Заключительные этапы на рис. 8.28 относятся к управлению техническим обслуживанием и имеют целью анализ поведения объекта. Любой сменный специалист в состоянии выявить только четверть всех неисправностей, тогда как с помощью системы реги- страции отказов можно обнаружить часто повторяющиеся неис- правности или прийти к выводу о необходимости повышения ква- лификации персонала в определенных областях. 8.5.4. Диагностика неисправностей Любое оборудование рано или поздно отказывает, поэтому проек- тировщик системы с ПЛК должен разработать методы, позволяю- щие быстро осуществить диагностику типичных неисправностей. Простые решения наподобие вывода нейтральной линии в распре- делительную коробку для обеспечения тестирования, как показано на рис. 8.30, могут сэкономить несколько драгоценных минут вре- мени при первом отказе. Другими простыми и недорогими приема- ми являются использование разделительных клемм (например, та- ких как клеммы типа SAKR фирмы Klippon, показанные на рис. 8.25) и контроль критически важных сигналов с помощью индика- торных ламп (это важно, в частности, для соленоидов гидравличе- ских и пневматических исполнительных механизмов). Возьмем для примера простое пусковое устройство для электро- привода; в тривиальном случае оно имеет два входа (кнопки «Пуск»
Практические вопросы 411 Рис. 8.30. Обнаружение неисправностей облегчается путем вывода дополнительной нейтральной линии в распределительную коробку и «Стоп») и один выход (контактор), но при отказе привода сменные электрики должны будут полагаться только на свои собственные предположения о его причине. Если использовать пять дополни- тельных входов и три выхода для сигнальных ламп, то это обеспечит получение большей информации и, соответственно, сокращение MTTR. В табл. 8.6 учтены все типичные отказы электропривода. Таблица 8.6 Типичные отказы электропривода Входы Выходы Кнопка «Пуск» Кнопка «Стоп» Вспомогательный контакт контактора Работа контактора на размыкание Работа местного источника питания (т. е. включение ЦУД) Аварийная остановка Срабатывание местного разъединителя Лампа «Включено» Лампа «Выключено» Лампа «Неисправность» Сюда следует добавить амперметр, позволяющий контролировать ток электродвигателя и сравнивать его с номинальным значением, которое все аккуратные инженеры должны зафиксировать до того, как появится первая неисправность. При наличии всех перечислен- ных выше средств ПЛК через терминал для программирования мо- жет определить место неисправности и ее возможную причину. Ото- бражение информации на экране позволит оператору получать подробные сообщения («Насос 1 включить нельзя, т. к. разомкнут местный разъединитель» или «Конвейер 1 остановлен, ПЛК активи- зирует контактор, но вспомогательный контакт не работает»).
412 Программируемые контроллеры При использовании аварийной сигнализации необходим разум- ный подход, и каждый аварийный сигнал всегда должен на что-то обращать внимание. Особую осторожность следует соблюдать в си- туациях наподобие представленной на рис. 8.31, когда часто требу- ется проверять действия механизма — обычно возникновение опас- ных условий: «Если отдана команда на выдвижение штока поршня и КВ2 не сработал через 2.5 с, то сигнализировать об отказе». По- добные соображения могут быть весьма полезны, но приспособле- ния, указывающие на опасность (КВ1 и КВ2 на рис. 8.31), должны обладать значительно большей надежностью, чем устройство, за которым они осуществляют текущий контроль. В противном слу- чае будут появляться ложные аварийные сигналы и доверие поль- зователя к такой системе будет утрачено. Ничуть не лучше ситуа- ция, когда во время нормальной работы объекта на экране появляется полдюжины аварийных сообщений, а оператор про се- бя говорит: «Да не обращай на них внимание, они всегда возника- ют». Если они игнорируются, то либо делайте это с уверенностью, либо просто уберите их с экрана. ПЛК обычно имеют полезные средства диагностики как собст- венного функционирования, так и функционирования объекта уп- равления. На рис. 8.32 приведена страница, выданная диагностиче- ским процессором контроллера PLC-5. 8.5.5 Документация Системы с ПЛК становятся все сложнее и надежнее, и эти обстоя- тельства «действуют против» обслуживающего персонала, у кото- рого не было возможности приобрести опыт распознавания типич- ных неисправностей. Поэтому специалисты по обслуживанию должны полагаться на документацию, которая поможет им обнару- жить неисправность. На рис. 8.33 представлен чертеж, знакомый многим инжене- рам, — это монтажная схема электрооборудования автомобиля. КВ1 КВ2 Рис. 8.31. Контроль за работой оборудования с помощью дополнительных приспособлений
Практические вопросы 413 OHLlHK:Run Kdlte:Ho Koren:No Pro J: VAULTPl.C RUHO 2:0/114 rl Sta:44 DH+ Station:44 Local Rack: 2-Slot Power Loaa Prot: Protection Disabled UPROM Xfer at Fowerup:Ho RAM Backup:Dlaabled Нааюгу:Unprotected Scanner Noda Arithmetic Flags Б:0 I: I V:0 CO Processor Status OOOOOOOO 00000010 PLC-5 in BUN Mode Minor Fault 00000000 00000000 Major Fault 00000000 00000000 Fault Coda........: О Where Fsu1ted-File: 0 Rung.-..: 0 SFC Reatart/Continue.............: О Fault Routine-Fils: О Hatchdog: 500 Startup Protection after pwr lose: 0 Sei Timed INT-Flle: 0 Setpoint: 0 Program Scan [msec] Last: 0 Max: 20 Data/Tims 0000-00-00 02:55:00 File Index 47 Active Node Liat 0 10 20 30 40 60 60 70 00000000 OOOOOOOO 10000000 00000000 00001000 00000000 OOOOOOOO 00000000 VMK Status File: N/A I/O Statue File: 10 Adopter Image File: О Sym: Des:Key switch in Remote Position 8:1/7 = Fl F3 F4 F5 F6 F7 Iostat Clrfelt Des Next F8 F9 F10 Prev neWaddr Help Рис. 8.32. Страница диагностики, как она выглядит на терминале для программирования контроллера PLC-5. Биты неисправности появляются в словах, соответствующих незначительным/серьезным неисправностям, и комментируются текстом справа от слова. F1-F10 - клавиши, функции которых устанавливаются пользователем; например, lostat позволяет отобразить состояние входных/выходных стоек Данная схема предназначена для сборочных целей и вряд ли бу- дет полезна при поиске неисправности. Преобразование ее к ви- ду рис. 8.34, где схема построена по принципу функций, а не раз- мещения элементов, а сигналы логически распространяются слева направо, дает документацию, которая может быть исполь- зована для обнаружения неисправностей. Схемы на рис. 8.33 и 8.34 имеют общий недостаток. Это просто два разных типа чертежей. Первая схема вычерчивается проекти- ровщиком для того, чтобы можно было смонтировать электрообо- рудование и произвести внутренние соединения. Такие чертежи необходимы на начальной стадии разработки, но не так полезны в последующем, если только не случится беда (например, пожар). Эти чертежи скорее отражают характер размещения оборудования или его группировку в виде панелей, как представлено на рис. 8.35, и являются производными общих чертежей типичной системы с ПЛК. Часто такие чертежи представляют собой единственно дос- тупную документацию, что делает обнаружение неисправностей весьма трудной задачей. Для поиска неисправностей важно иметь такие чертежи, где оборудование было бы сгруппировано по выполняемым им функ-
414 Программируемые контроллеры Рис. 8.33. Типичная монтажная схема электрооборудования автомобиля, знакомая большинству людей. Она отражает топологию взаимосвязей компонентов оборудования и. в некоторой степени, их физическое размещение в автомобиле. Это приводит к тому, что на схеме имеется большое количество пересекающихся монтажных соединений и параллельных путей и трудно проследить «направление» сигналов и их смысл. В результате схема выглядит беспорядочной и сложной для восприятия
Практические вопросы 415 W'I’I'I'k--------------- Соленоид стартера Аккумулятор 12 В Указатель уровня топлива Вправо затор на- пряжения Выключатель света Сторона Выкл. КВ педали тормоза W___________ Влева_______ .Индикатор рычага Стоп-сигнвлы Панель J Влево } Вправо Указатели поворота 1 Скорость Отопление Стеклоочиститель Регулятор света Дальний Ближний Лампы на панели (4 - выкл.) Лампы боковые и заднего света (5 - выкл.) Оповещение о дальнем свете Дальний свет (2 - выкл.) Ближний свет (2 - выкл.) Рис. 8.34. Монтажная схема электрооборудования автомобиля, отражающая его функции
416 Программируемые контроллеры циям и в то же время сохранялась информация о его размещении, что позволит проследить пути всех сигналов. На рис. 8.36 информа- ция, содержащаяся в рис. 8.35, представлена в виде, который облег- чает обнаружение неисправностей. К сожалению, проектировщики и производители предоставля- ют потребителям только чертежи конструкции и размещения ком- понентов, делая задачу обслуживающего персонала более трудной, чем хотелось бы. В идеальном случае необходимо иметь оба типа чертежей. На чертежах и схемах также должен быть понятен смысл сигна- лов. Если взять рис. 8.37 (а) (являющийся фрагментом чертежа си- Кабель: HD108 Куда: К местной Откуда: От ПЛК управляющей Тип: 12с SWA станции HD122 в Рис. 8.35. Чертежи, обычно используемые при техническом обслуживании: (а) фрагмент чертежа внутреннего устройства ПЛК; (б) схема местной управляющей станции; (в) схема панели стартера; (г) распределение жил кабеля (одного из четырех, необходимых для обнаружения неисправностей) TS Жила Маркировка Те 42 1 01016 1 43 2 01017 2 45 3 N 3 94 4 11602 4 95 5 11603 5 96 6 11604 6 121 7 L13 7 Е 8 Е Е Жилы 9-12 резервные
Практические вопросы 417 Корпус ПЛК Выключатель СВ13 Корпус ПЛК 120 Стоп Пуск Выбор режима Местная панель управления Пере грузка F1 Выключатель СВ12 —2 5 94 8 8 92 93 6 Кнопка ав. ост. Панель стартера грузка F2 Клемма в панели управления □ Клемма в корпусе ПЛК • Клемма в панели стартера Рис. 8.36. Информация, содержащаяся в рис. 8.35, представленная в виде, удобном для обнаружения неисправностей 95 ПЛК (см. звенья 151-168) д, Хлопка ав. ост. Стоп Выбор режима 8 8 2 5 о 1 ___ Очень ______ а высокий ----Высокий-----о 3 ---- Низкий ----о 4 Очень ---- низкий----о 5 Рис. 8.37. Представление информации в виде, облегчающем обслуживание: (а) кабельная разводка к переключателям, изменяющим уровень (действие непонятно); (б) простые пиктограммы, проясняющие действие
418 Программируемые контроллеры стемы управления уровнем жидкости в резервуаре, т. е. документа- ции, составленной поставщиком системы), то что бы вы ожидали увидеть в случае нормального значения уровня (а при отсутствии нейтральной линии, выведенной в распределительную коробку, или шины питания постоянного тока — как бы вы могли проверить это)? Простые пиктограммы, изображенные на рис. 8.37 (6), или простое текстовое сообщение типа «При нормальных рабочих ус- ловиях все контакты замкнуты. При повышении уровня размыка- ется верхний контакт, при понижении уровня размыкается нижний контакт» могут сэкономить драгоценные минуты в случае появле- ния первой неисправности. Программы для ПЛК также могут быть документированы путем добавления к инструкциям и звеньям или логическим блокам соот- ветствующих описаний. Это очень существенно для облегчения об- наружения сбоев. На рис. 8.38 и 8.39 представлен один и тот же фрагмент программы в простой и в документированной форме. Разница между ними очевидна. В большинстве технических организаций весьма щепетильно относятся к регистрации обновленных версий документации и дат изменений (например, чертеж 702—146 выпущен в версии Е Рис. 8.38. Недокументированная распечатка программы ПЛК
Практические вопросы 419 25/2/98). Программы ПЛК легко можно изменить в месте ис- пользования, поэтому многие компании спустя рукава относятся к аналогичному контролю за программным обеспечением ПЛК. На рис. 8.40 приведена типичная последовательность событий. Такие конфликтные ситуации бывает трудно разрешить, особен- но если инженеры проектного отдела, отдела обслуживания и сменный инженер используют одни и те же адреса для различных функций. 19 Duty_Run Hydraulic Pumps Hydraulic Pump_1 Pump_1 Duty_Run Available ls_Standby Pump_l B15 -------KE [12] 8 B15 -< 13 Hydraulic Pump_2 Available Pump_2 ls_Standby B15 9 Pump_2 Delay DutyStart TON___________ - TIMER ON DELAY -< EN>— TIMER : T4 : 3 BASE (SEC): 1.0"(DN> PRESET: 3 ACCUM: 0 Hydraulic Pump_3 Pump_3 Available ls_Standby B15 B15 -I ZE Pump_3 Delay DutyStart ton____________ - TIMER ON DELAY TIMER : T4 :4 BASE (SEC): 1.0 PRESET: 5 ACCUM: 0 Pump_2 Delay DutyStart T4:3 20 -----1 I— [19] DN Pump_3 Delay DutyStart T4:4 21 -----1 I— Duty_Run Pump_2 B15 ---< )---- 14 Duty_Run Pump_3 B15 ---< )---- 15 Рис. 8.39. Документированная версия программы на рис. 8.38 с добавлением описаний и перекрестных ссылок
420 Программируемые контроллеры Рис. 8.40. Возникновение неразберихи: результат несанкционированного копирования программы Рис. 8.40 выглядит именно так, потому что копии программ ПЛК и изменения в них выполняются персоналом «нижнего уровня». Этого следует избегать любой ценой. Все программы вместе с резервными копиями должны храниться в центральном запоминающем устройст- ве, чтобы в любой момент можно было произвести их повторную за- грузку в нужном месте. Внесение изменений должно производиться в соответствии с утвержденной процедурой, а копии программ, выпол- ненные до внесения в них изменений, должны быть защищены от мо- дификации, способной вызвать непредвиденные побочные эффекты. К программам ПЛК нужно относиться так же, как и к чертежам уста- новки, и применять к ним аналогичный вид контроля. 8.5.6. Профессиональная подготовка Для обнаружения неисправностей требуются хорошие знания экс- плуатируемой системы. В любой сложной системе управления эти знания делятся на две части. Первая часть — это знакомство с обо-
Практические вопросы 421 рудованием, ПЛК, тиристорными приводами, датчиками и испол- нительными устройствами, воздействующими на объект. Не обла- дая этими основными знаниями, мало надежды на то, что удастся обнаружить неисправность. Такой тип профессиональной подго- товки необходим для большинства объектов управления. На вторую часть знаний обычно не акцентируют внимание. Здесь необходимо понять, каким образом все эти различные уст- ройства связаны между собой, чтобы получить полную систему. До- вольно часто инженера по обслуживанию первой очереди направ- ляют на курсы по изучению ПЛК, тиристорных приводов и гидравлических устройств, после чего ему говорят: «Отлично, под- готовку вы прошли, теперь приступайте к своей непосредственной работе». Такой подход таит в себе реальную опасность. Когда появляется неисправность, специалисты, занимающиеся текущим ремонтом, обычно решают проблему в два приема. Сначала они энергично бе- рутся за поиск неисправности. Если им не удается быстро это сде- лать, то они переходят ко второму этапу, когда их больше заботит собственная репутация и, не желая выглядеть профанами, вместо того чтобы действительно искать неисправность, они ожидают, ко- гда придет подкрепление. У специалиста хватает смелости сказать: «К сожалению, я не имею ни малейшего представления, что делать, надо послать за помощью». Если специалист только что вернулся с курсов по обслуживанию воздушных компрессоров, то он обязан незамедлительно направиться к ближайшему компрессору и за- няться его ремонтом. Рассмотрим следующий реальный пример. Установка, в не- сколько упрощенном виде изображенная на рис. 8.41, имеет рычаг, перемещением которого по осям X и Y управляет ПЛК. Перемеще- ние по вертикали осуществляется электродвигателем через нере- версивную коробку передач, а перемещение по горизонтали — гид- роцилиндром, управляемым клапанами пропорционального действия. Перемещения по X и Y (примерно 750 мм) измеряются с помощью линейных потенциометров. В ночное время, когда уста- новка не работала, обслуживающий персонал заменил одно из звеньев цепной передачи, обеспечивающей перемещение по верти- кали, но не проверил действие кониевых выключателей (связанных с роликами цепной передачи, которые могли поворачиваться на угол около 300 градусов). ПЛК был запрограммирован таким образом, что он должен был обеспечивать перемещение рычага до заданного положения по вер- тикали, а затем полностью выдвигать шток гидроцилиндра. Когда
422 Программируемые контроллеры Каретка, перемещаемая цепной передачей Рис. 8.41. Установка, выявляющая необходимость профессиональной подготовки наутро установка начала работать, каретка перемешалась по оси Y до тех пор, пока не сработал (неправильно настроенный) концевой выключатель, в результате чего система оказалась заблокирован- ной. ПЛК не обеспечил достижение заданного положения по Y, по- этому движение по горизонтали не состоялось. Операторы вызвали обслуживающую бригаду и заявили ей, что перемещение по X не осуществляется (такое озадачивающее заяв- ление было воспринято с удивлением). Отключив оба клапана про- порционального действия, бригада начала разбираться с гидравли- кой, обеспечивающей перемещение по горизонтали. Все люди, имевшие отношение к данному случаю, в основном бы- ли подготовленными и не были бестолковыми или делающими все наперекор. Этот инцидент выдвигает несколько важных вопросов. Когда произошел сбой в работе системы, обслуживающий персонал не был знаком с принципом действия установки и последовательно- стью выполняемых операций. Им вбили в голову все, что касается клапанов пропорционального действия, и такая односторонняя под- готовка вызывала у них реакцию типа «Во всех неполадках должны быть виноваты пропорциональные клапаны». Возможно даже, никто из них не удосужился взглянуть на терминал для программирования ПЛК, чтобы узнать, что он пытается делать, или не попробовал упра- влять установкой вручную. Тесно связанной, но самостоятельной
Практические вопросы 423 проблемой является тот факт, что слесарь-монтажник, заменивший в ночную смену звено цепной передачи, не сознавал, что подобное дей- ствие могло повлиять на установку концевых выключателей. В какой-то степени данный инцидент возник из-за разделения сфер деятельности. Имея отношение к электромеханическим про- изводственным установкам, автор убедился в том, что работник, обслуживающий их, должен иметь широкий кругозор, чтобы избе- жать проблем, связанных с недостатком информации. Это требует от работников всех уровней активного участия в мероприятиях по повышению квалификации. Другой вопрос, который, возможно, мог бы заинтересовать чи- тателя, — это как проектировщик системы может помочь избежать упущений информационного характера, подобных описанным вы- ше. Как далеко вы можете продвинуться в этом направлении, зави- сит от временных и финансовых ограничений. Важным уроком является то, что обслуживающий персонал дол- жен знать объект управления, понимать, как он работает, и быть знакомым с документацией. В системах, содержащих ПЛК, суще- ственным является взаимодействие через программу ПЛК, обра- щающую внимание на то, что необходимо предпринять для выпол- нения определенных операций. Знание объекта управления, по-видимому, является более важным, чем знание устройства соб- ственно ПЛК, так как более 95% всех неисправностей будут возни- кать вне корпуса ПЛК (см. приведенный ранее рис. 8.29). Довольно часто обслуживающий персонал вплотную сталкива- ется с новым объектом только при первой неисправности (когда группа разработчиков уже переключилась на новый проект). Время на изучение объекта появляется тогда, когда он разработан, испы- тан и сдан в эксплуатацию. Именно тогда будут изучены все проб- лемы, затруднительные ситуации и полезные советы, а размещение всех компонентов прочно зафиксируется в памяти. Это бесценный опыт, который нельзя приобрести с чьих-то слов. 8.5.7. Вспомогательные средства для обнаружения неисправностей - EDDI и FIM Проблемы, описанной в предыдущем разделе, можно было бы из- бежать путем добавления двух индикаторных ламп, управляемых программой ПЛК, как пока >ано на рис. 8.42. Отсюда возникает ес- тественный вопрос — как много средств диагностики может предо- ставить собственно ПЛК? Разумеется, ПЛК способен сигнализировать о любых условиях, информация о которых ему доступна (и ПЛК, управляющий уста-
424 Программируемые контроллеры Разрешение движения noY Лампа на пульте (горит при движении по Y), Проверка лампы КВ движения noY Лампа на пульте (горит при срабатывании КВ) Проверка лампы Рис. 8.42. Двухзвенная схема, которая могла бы быть полезной при управлении установкой на рис. 8.41. Практикой установлено, что для получения сигнала о достижении предельного положения достаточно использовать второй контакт концевого выключателя, который размыкается при ударе новкой на рис. 8.41, конечно, знал, что произошло). Трудности воз- никают при использовании программ типа приведенной на рис. 8.43, которая является нисколько не преувеличенным примером схемы управления одним гидравлическим насосом, имеющим 12 условий, препятствующих его запуску. Чтобы учесть все эти усло- вия, потребуется 12 ламп, управляемых 12 выходными сигналами и использующих 12 жил дорогостоящего кабеля (и 12 звеньев для ин- дикации в сравнении с двумя звеньями, необходимыми собственно для управления объектом) — и это всего для одного насоса. На стадии проектирования существует дилемма: указать все воз- можные средства аварийной сигнализации либо не указать ни од- ного, причем решение основывается на оценке вероятных неис- правностей. Для схемы на рис. 8.43 можно было бы использовать две сигнальные лампы с надписями «Запуск разрешен» и «Запуск запрещен», предоставив бригаде по обнаружению неисправностей определять причину запрещения запуска либо с помощью термина- ла для программирования ПЛК (на котором непосредственно ука- зывается причина), либо с помощью таблицы контрольных прове- рок (являющейся частью документации по эксплуатации объекта управления). В последнем случае можно дополнительно задейство- вать индикаторы на входных платах ПЛК. Например:
Практические вопросы 425 Кнопка «Пуск» Кнопка ГотовнослЖПусковое '*>. «Стоп» к запуску устр-во насоса Запасной стартер Таймер проверки давления Пусковое устройство насоса Проверка дав- ления после / запуска / I I TON Кнопка Давление Выклю- приема не чатель аварийного в по- давления сигнала рядке Давление не в порядке Рис. 8.43. Вполне обычная программа для управления гидравлическим насосом Если запуск насоса запрещен, проверить исправность следующих входов: Нижний уровень масла в баке А3.2 Открытие входной заглушки АЗ.З Открытие выходной заглушки А5.1 ИТ. д. При использовании рабочих станций, оснащенных графическими средствами, появляются дополнительные возможности; в частно- сти, на рис. 8.44 показано, как на экране можно отобразить состо- яние каждого сигнала, получаемого ПЛК из соответствующего ме- ста. Существенно, что такие дисплеи не нуждаются в программе ПЛК или используют малую ее часть, так что, например, состояние
426 Программируемые контроллеры Кнопка аварийной остановки: Отображение состояния устройств: Зеленый = исправно/ работает Красный = неисправно/ остановлено Работает Остановлен Рис. 8.44. Графическое представление схемы на рис. 8.43 уровня, фиксируемое соответствующим индикатором, можно ото- бразить на экране зеленым или красным цветом. Создание графи- ческих дисплеев, однако, требует значительных затрат времени (и это самая дорогостоящая часть оборудования). Большинство ПЛК позволяют пользователю принудительно за- дать требуемое состояние входных и выходных сигналов с помо- щью терминала для программирования. Например, если повреж- ден концевой выключатель, можно с терминала разрешить перемещение или запустить электродвигатель, несмотря на отсут- ствие разрешающих сигналов. Это может оказать существенную помощь при испытаниях и сдаче системы в эксплуатацию, но может также войти в привычку в рабочих условиях. Объект, получающий принудительные сигналы от ПЛК, может вести себя загадочным образом, если оператор не отдает себе отчет в том, что происходит, и не предвидит возможных последствий. Принудительно изменив состояние концевого вы- ключателя или выходного сигнала ПЛК, чтобы попытаться «обой- ти» незначительную неисправность, очень легко можно вызвать непредвиденную последовательность событий. К этому вопросу необходимо подходить с большой осторожностью и принудитель- ные воздействия осуществлять только на короткое время. Для обеспечения нормальной работы объект не должен подвер- гаться принудительным воздействиям (если это происходит, то объект находится в состоянии риска, когда истинные сигналы ока- зываются ненужными и должны быть отключены). Последовательности событий (диаграммы состояний, см. разд. 2.9.2) могут обусловить серьезные проблемы при обнаружении не-
Практические вопросы 427 исправностей. При использовании рабочих станций (автоматизи- рованных рабочих мест) также очень полезными оказываются уст- ройства визуального отображения информации наподобие рис. 8.45, которые показывают, что выполняет машина в данный мо- мент и каких переходных сигналов она ожидает. Компания Ford Motor (широко использующая ПЛК) установила стандартную форму последовательности программирования, из- вестную под названием методики EDDI (Error Detection and Diagnostic Indication — обнаружение ошибок и диагностическая ин- дикация). Она представляет собой концепцию, которая относится не только к эксплуатации дисплеев, предназначенных для обнару- жения неисправностей, но и к общему методу определения струк- туры программы, ее записи и документирования. Она дает возмож- ность обслуживающему персоналу иметь единый пользовательский интерфейс, независимо от типа применяемого ПЛК. Система EDDI, в ее наиболее простом виде, создается на осно- ве диаграммы переходных состояний (см. разд. 2.9.2), где отображе- ние информации, связанной с эксплуатацией объекта управления, производится в виде типа рис. 8.46. Последовательность операций отображается в виде матрицы, строки которой соответствуют номе- ру шага, а столбцы — условиям, которые должны быть выполнены, чтобы стал возможен переход к следующему шагу. Семисегмент- Sequence Monitor Going to:- Charging Position Step No:- 47 Actions— Lowering Supports Waiting for:- Supports Down LS Главный экран Выбор экрана Предыду- щий экран Рис. 8.45. Пример отображения на экране текущего контроля за ходом процесса. Данные после двоеточия изменяются в соответствии с действием устройства Индикаторы столбцов Индикатор строки г—[ I 1 2 3 4 6 6 7 8 9 10 11 12 13 14 15 16 |В|В| Рис. 8.46. Матричный дисплей системы EDDI и лампы - указатели условий
428 Программируемые контроллеры ный индикатор показывает текущий номер шага (или строку), а лампы сигнализируют об условиях, которые еще не выполнены. Если в системе возникает какая-то неисправность, то такой мат- ричный дисплей позволяет легко установить ее причину. Философия EDDI, однако, обладает гораздо большими возмож- ностями. Важно обеспечить стандартизацию методов структуриза- ции и записи программ, подготовки необходимой документации и разработки средств, позволяющих обслуживающему персоналу легко переориентироваться с одного объекта на другой с мини- мальной подготовкой. Эта стандартизация играет важную роль в облегчении обнаружения неисправностей. В конце 1960-х годов ВМФ Великобритании столкнулся с пробле- мой, вызванной увеличением сложности бортового оборудования и трудностями при его обслуживании. Команда военного корабля «Коллингвуд» придумала оригинальный метод под названием FIMS (от английского Functionally Identified Maintenance System, т. e. систе- ма обслуживания с разбивкой по функциональному признаку). Это диагностическая документация, дополняющая основные структур- ные или функциональные чертежи. Ее основу составляют функцио- нальные модули или блоки, входы и выходы которых можно легко контролировать. Все эти блоки располагаются в порядке иерархии, как показано на рис. 8.47. Каждому блоку соответствует один чертеж, по которому можно найти положение контролируемых точек и опре- делить их состояние. На рис. 8.48 приведена часть схемы FIMS для тиристорного привода. Двигаясь сверху вниз по иерархической стру- ктуре, представленной на рис. 8.47, специалист производит тестиро- вание системы, пока не достигнет требующих замены модуля или платы (обозначенных черным маркером в углу блока). Таким образом сложная система разбивается на блоки, что позволяет обнаружить не- исправность, даже не имея опыта работы с данным объектом. FIMS обходится недешево, но, по опыту автора, она оправдыва- ет себя при работе со сложными объектами. Совершенно естест- венно использовать модульный принцип на ранних этапах проек- тирования системы, и это свидетельствует о том, что уже здесь продумываются все аспекты ее текущего обслуживания. К уже соз- данным объектам, не обладающим модульной структурой, FIMS применить оказывается намного труднее. Команда военного корабля «Коллингвуд» также предложила идею диаграммы зависимости, проиллюстрированную на рис. 8.49. Эта диаграмма отражает связь между действиями, функциями и со- бытием. С помощью таких диаграмм можно обнаруживать неис- правности, прослеживая движение сигнала в обратном направле-
Практические вопросы 429 Рис. 8,47. FIMS: (а) иерархия системы; (б) представление источника питания на верхнем уровне: (в) представление блока F1 на нижнем уровне нии. Например, действие d требует выполнения функции z, кото- рая, в свою очередь, нуждается в сигналах е, f и g. Распространенным средством, помогающим в обнаружении не- исправностей, являются блок-схемы, известные также под назва- ниями диаграмм анализа симптомов или алгоритмически постро- енных схем диагностики. Пример такой блок-схемы приведен на рис. 8.50. Недостаток таких блок-схем заключается в том, что они применимы только для обнаружения простых и очевидных повре- ждений (которые можно было бы обнаружить каким-либо иным способом) и могут не дать результата при поиске «тонких», едва уловимых неисправностей.
F8 Fl 1 Рис. 8.48. Схема Fl MS верхнего уровня для тиристорного привода. Для каждой стрелки должны быть указаны точки контроля и проверяемые условия Программируемые контроллеры
Практические вопросы 431 а Рис. 8.49. Простая система (а) и диаграмма зависимости для нее (б) А Зависимость • Функция Q Событие 8.6. Электромагнитная совместимость (ЕМС) и маркировка бытовой электронной аппаратуры (СЕ) Электронная аппаратура чувствительна к электрическим помехам. Например, плохо отрмулированный двигатель автомобиля или не- удачно установленный любительский радиопередатчик будут оказы- вать заметное влияние на домашний телевизионный приемник. Ана- логичные эффекты имеют место в промышленности, когда мощные системы радиосвязи оказывают влияние на маломощные или циф- ровые электронные схемы. Результаты могут быть катастрофически- ми, в частности, для компьютеризированных систем управления. В качестве шага к согласованию стандартов, способствующих расширению торговли между европейскими странами, была при- нята директива 89/336/ЕЕС (с поправками из 92/31/EEG), которая устанавливает нормативы, гарантирующие, что аппаратура разных
Рис. 8.50. Блок-схема поиска неисправности 432 ______________________________Программируемые контроллеры
Практические вопросы 433 производителей может работать совместно, не вызывая взаимных электрических помех. В связи с этим необходимо рассмотреть два аспекта, проиллюстрированные на рис. 8.51. Работающее электрооборудование создает излучение, часто на- зываемое помехами. Это излучение может иметь высокую частоту (от радиоисточников) или представлять собой гармоники, порож- даемые основной частотой источников питания. Последнее харак- терно для мощных электронных систем, таких как тиристорные приводы. Помехи могут распространяться по воздуху или переда- ваться по проложенным в земле кабелям, причем они способны вызвать проблемы за несколько километров от источника. Обору- дование, удовлетворяющее упомянутой выше директиве, должно обеспечивать уровень излучения ниже определенного значения. Невосприимчивость определяет, насколько чувствительна аппа- ратура к внешним помехам от другого оборудования и из окружаю- щей среды. Возможные эффекты систематизированы в табл. 8.7. Проблемы появляются, когда уровень излучения, создаваемого какой-то одной частью установки, превышает уровень невоспри- имчивости другой части. Если любительский радиопередатчик создает помехи телевизионному приему, то проблему можно ре- шить либо путем уменьшения уровня излучения от передатчика, либо путем увеличения уровня невосприимчивости телевизора. В промышленности главная проблема заключается в том, чтобы ре- шить, какие меры следует предпринять и кто за это отвечает. Дире- ктива EEC направлена на то, чтобы решить эту проблему, установив Рис. 8.51. Уровни электромагнитной совместимости
Таблица 8.7 Проверка на невосприимчивость Явление Имитация Точка приложения Форма Возможные последствия Электростатический Разряд с человека, Органы управления Короткий маломощный импульс Отказ КМОП-схемы. разряд обычно в сухую погоду и корпус прибора напряжения в несколько кВ Повреждение микро- процессора Поле радиочастоты Местный радио- передатчик Корпус прибора Синусоидальный сигнал Сбой в работе в диапазоне 30 МГц-1 ГГц аналоговых схем Кратковременные Искрение контактов, Линии питания Короткие импульсы с резким Отказ КМОП-схемы. вспышки щеток и т. п. и сигнальные линии фронтом, типичное напряжение Повреждение 2 кВ микропроцессора Магнитное поле Поле от силовых кабе- Корпус прибора Магнитное поле частотой 50 Гц Искажения на экранах большой мощности лей, электродвигателей, трансформаторов и т. п. электронно-лучевых трубок. Наведение помех на аудиосхемы Распространение Радиопередатчик Линии питания Синусоидальный сигнал Сбой в работе радиочастот (провода действуют в качестве антенны) и сигнальные линии в диапазоне 0.5-230 МГц аналоговых схем Всплески напряжения Разряд типа молнии Линии питания Мощные импульсы с резким Повреждение полу- фронтом, напряжением проводниковых приборов в несколько кВ Перебой в питании Отпайка соединений или внезапное увеличение нагрузки Линии питания Кратковременное пропадание Срабатывание защиты, питания или падение нарушение последо- напряжения вательности операций
Практические вопросы 435 приемлемые уровни излучения и невосприимчивости. Если на рис. 8.51 уровень излучения расположен ниже определенного уровня невосприимчивости, то считается, что создан запас надежности, гарантирующий, что проблем не возникнет. Когда начинает сказы- ваться влияние помех, то источник их возникновения должен быть легко устанавливаемым. Невосприимчивость имеет еше три дополнительных аспекта. В сухую погоду, выключая двигатель автомобиля, мы часто испыты- ваем короткий резкий электрический удар. Он обусловлен разря- дом в несколько киловольт электростатического заряда, накоплен- ного корпусом автомобиля и изолированного от земли резиновыми шинами. Подобный разряд можно получить от одежды и ковров. Разряд на землю (называемый электростатическим разрядом) мо- жет серьезно повредить электронную аппаратуру, особенно инте- гральные схемы, созданные по КМОП-технологии. Когда прерывается ток, протекающий через индуктивную нагруз- ку, индуктивность, пытающаяся поддержать ток, создает кратковре- менный выброс напряжения. Именно этому эффекту обязаны своим происхождением щелчки и потрескивания в телефонной трубке. В промышленности помехи такого рода часто вызываются включением и выключением электродвигателей или работой гидравлических и пневматических соленоидов. Эти эффекты в некоторой степени мож- но ослабить путем подавления выбросов (типичный способ был при- веден на рис. 1.19), но их никогда нельзя полностью исключить. Наконец, большие скачки напряжения могут передаваться по шинам питания и заземления. Они могут быть вызваны влиянием разрядов молнии на линии питания или переключением устройств, потребляющих большую мощность, или просто возмущениями со стороны нагрузки на сеть электропитания. Обычным источником спадов напряжения является пуск электродвигателей с большой индуктивностью. В каждом из приведенных выше случаев директивным методом устанавливаются требуемые уровни невосприимчивости. Нормативы, связанные с электромагнитной совместимостью, часто путают с похожей, но имеющей более широкий смысл марки- ровкой бытовой электронной аппаратуры. Одним из главных барь- еров в международной торговле являются различные стандарты, ис- пользуемые разными странами. Это создает большие проблемы для производителей, которые должны соблюдать множество разных стандартов, что делает практически невозможным выпускать уни- фицированную продукцию. Многие европейские стандарты (BS1, DIN, VDE и т. д.) приводятся в соответствие с общеевропейской си-
436 Программируемые контроллеры схемой стандартов. (Принято обозначение XX-ENnnnnn, где XX — национальный префикс, например в Великобритании это BS. Пер- вые одна или две цифры указывают на исходный стандарт, напри- мер 2 соответствует ISO, 40 — CENELEC, 50 - CISPR, 60 - IEC, а префикс EN соответствует согласованным, но пока еще не приня- тым стандартам, начинающимся с ENV.) Любой товар, продаваемый внутри Европейского Союза, дол- жен соответствовать какому-либо из принятых стандартов. Снаб- жая товар соответствующей маркировкой, производитель свиде- тельствует, что этот товар удовлетворяет всем требованиям принятых стандартов и директив. Эта маркировка — не одно и то же, что знак качества. Хотя существует большой ряд стандартов и директив (например, маркировку СЕ можно найти на игрушках для детей), промышлен- ная аппаратура, как правило, должна соответствовать по крайней мере одной из следующих директив: • LVDirective 73/23/ЕЕС. Она формулирует, что электрическая аппаратура не будет подвергать опасности людей, домашних животных или наносить ущерб имуществу. • EMC Directive 89/336/ЕЕС. Про нее говорилось выше в дан- ном разделе. • Machinery Directive 89/392/ЕЕС. Механизм (совокупность связанных между собой частей или компонентов, предназна- ченная для определенного применения) должен удовлетво- рять соответствующим требованиям к охране здоровья и без- опасности. Многие люди и организации имеют отношение к производству и применению промышленных механизмов и установок. Это изгото- вители таких компонентов, как приводы, ПЛК, электродвигатели; конструкторы пультов управления, создатели машин, монтажники и конечные пользователи. Каждый должен нести ответственность за свои действия. Например, производитель двигателя с переменной скоростью обязан снабдить его маркировкой СЕ в соответствии с директивой LV, но не пользоваться директивой ЕМС, поскольку от- ветственность за правильную установку привода, монтажные соеди- нения и двигатель несет конструктор пульта или производитель ма- шины. Хотя теоретически возможно выполнить необходимые испытания в специальном центре, для производителей обычной практикой является самостоятельная сертификация продукции и снабжение ее соответствующей маркировкой. Необходимо сохра-
Практические вопросы 437 нять комплект технической документации, чтобы всегда можно бы- ло подтвердить сертификацию. В то же время, поскольку это само- стоятельная сертификация, то при поступлении жалоб к производи- телю могут быть применены соответствующие санкции. 8.7. Другие программируемые устройства Большинство современных устройств, таких как датчики, проводы, исполнительные механизмы и даже целые системы управления, яв- ляются программируемыми. В этом есть много преимуществ. Напри- мер, если раньше на складе надо было хранить десять различных дат- чиков давления, теперь требуется иметь только один, который при установке может быть настроен на определенный диапазон давления. Аналогичным образом, устройство управления электроприво- дом, которое раньше могло иметь полдюжины потенциометров для настройки ускорения, торможения, максимальной скорости и ог- раничения тока, теперь может иметь несколько сотен настраивае- мых пользователем параметров, таких как нежелательные частоты (чтобы избежать резонансных скоростей) и различные напряжения для управления вентиляторами, насосами, нагрузками, требующи- ми большого пускового момента, и т. д. Программируемые устройства обладают многими преимущест- вами, но могут также создать ряд проблем, если не позаботиться об их правильном хранении и содержании в порядке документации. Если сегодня взять со склада датчик расхода, который двадцать лет назад находился в резерве в надлежащем состоянии, то изолирую- щие клапаны могут оказаться зажатыми и характеристики датчика изменятся — обычное дело для устройства с двумя трубками и дву- мя клеммами для электрического сигнала. При работе с программируемым устройством необходимо пред- принимать много дополнительных мер. Наряду с диапазоном изме- рения (максимум и минимум в инженерных единицах) должны быть настроены вид выходного сигнала (напряжение, ток, последо- вательность импульсов), способы его фильтрации, линеаризации, адрес магистральной шины и еще целый ряд параметров. Следова- тельно, при использовании программируемых устройств всегда не- обходимо принимать во внимание следующие обстоятельства. Прежде всего потребуется некоторый способ установки или вво- да в машину многих параметров устройства либо с помощью слож- ных органов управления на передней панели, либо посредством внешнего терминала для программирования (часто эту роль выпол- няет портативный компьютер). Если такой терминал утерян, укра-
438 Программируемые контроллеры ден (поэтому берегите свой ноутбук), поврежден или содержит раз- ряженную батарею, то бригада ремонтников столкнется с реальны- ми проблемами. Сделайте так, чтобы терминалы для программиро- вания находились в безопасности, содержались в порядке и в любой момент были готовы к использованию. Если возможно, то не рассчитывайте только на один терминал, а имейте в запасе и ре- зервный. Позаботьтесь о том, чтобы люди знали, где находится тер- минал для программирования, и не оставляйте его в запертом шка- фу, ключ от которого имеет только один человек. Работа с терминалом может показаться простой, когда он не- сколько раз используется при вводе системы в эксплуатацию, но спустя три года опыт утрачивается, и если невозможно найти спра- вочное пособие, то может потребоваться несколько часов, чтобы выполнить простую установку устройства. Постарайтесь подгото- вить легкодоступное пособие «для чайников». Чем большими воз- можностями обладает программируемое устройство, тем больше может возникнуть проблем при работе с ним. Если возникает необходимость в использовании внешнего тер- минала для программирования, то надо будет обеспечить его связь с тем или иным устройством. Обычно для этого применяется неко- торый вид последовательной связи, часто с помощью простых разъемов D-типа. Однако если в 3 часа ночи не удается найти нуж- ный провод, а руководство по установлению требуемых соедине- ний утеряно, то терминал для программирования и программируе- мое устройство оказываются более чем бесполезными. Поэтому: Храните соединительные кабели там, где их можно легко найти. Для каждого такого кабеля установите место, куда его можно вер- нуть после использования. Чтобы можно было найти нужный кабель, используйте марки- ровку. Не полагайтесь на простые описания типа «9-гнездовой разъем для 25-штырькового разъема», здесь обычно требуется более подробная информация. Например, у многих кабелей, имеющих на концах 9-штырьковые разъемы D-типа, контактные штырьки 2 и 3 бывают перекрещены, а у других — нет. Некоторые линии связи ис- пользуют принцип CTS/RTS (CTS — clear to send, т. е. сигнал воз- можности продолжения передачи, RTS — request to send, т. е. сигнал запроса на передачу. — Прим, перев.), в других же применяется пол- ное квитирование на уровне соединений. На глаз кабели могут вы- глядеть идентично, но не быть взаимозаменяемыми. Обеспечьте, чтобы схемы разводки в кабелях были сделаны так, что при утрате или порче оригинала можно было легко изготовить
Практические вопросы 439 новый кабель. Эта проблема является еще более острой, если на концах кабеля используются нестандартные разъемы. Как было сказано выше, трудности обычно возникают при соединениях кон- тактов 2 и 3 в разъеме D-типа и при определении того, какой прин- цип соединений (например, CTS — RTS) должен быть использован на каждом конце кабеля. С особой тщательностью относитесь к использованию волокон- но-оптических соединительных кабелей; если такой кабель в сере- дине ночи или в выходные был потерян или поврежден, то заме- нить его практически невозможно. Рекомендуется иметь по крайней мере два комплекта кабелей (один для повседневного использования и один резервный), из ко- торых всегда при необходимости можно взять нужный кабель. Подготовьте документацию с указанием параметров, которые по умолчанию могут различаться. Эта документация вместе с пособи- ем «для чайников» должна позволять каждому обладающему мало- мальскими знаниями привести систему в рабочее состояние. Большинство компаний скрупулезно регистрируют все измене- ния в документации (например, чертеж 702-456 — это отредактиро- ванная версия Е от 23 ноября 2001 г.). Очень легко можно изменить режим работы программируемого устройства, но при этом не отра- зить документально сделанные изменения. На приведенном ранее рис. 8.40 показана типичная последовательность событий, которая в начале утренней смены может привести к неразберихе. Обеспечьте, чтобы все модификации фиксировались в регистрационном журна- ле, и убедитесь, что в приказном порядке введено управление обно- влением версий, которое гарантирует в случае изменения программы или параметров устройства сохранение соответствующей информа- ции. Ни в коем случае не храните эту документацию в нижнем ящи- ке чьего-нибудь стола, используйте для этого безопасное место (на- пример, несгораемый шкаф), а также имейте всегда дубликаты. Имейте в виду, что может произойти худшее. Автор был свидете- лем случая, когда во время рождественских каникул все персональ- ные компьютеры, работавшие в системе SCADA, были украдены (из запертых диспетчерских!). Обычно ь каждом компьютере хра- нились резервные копии программ других машин, но поскольку были украдены все компьютеры, система оказалась без какой-либо поддержки! К счастью, в несгораемом шкафу хранились компакт- диски, с помощью которых ситуацию удалось исправить. Всегда имейте план, как вы могли бы оправиться от подобного кошмара, приведи ему случиться.
9. Пример многозвенной логической схемы 9.1. Введение В этой главе приводится многозвенная логическая схема, взятая из реальной жизни, и на ее примере демонстрируется, как можно ре- шить типичные проблемы. Было бы достаточно сложно описать в данной главе методы со- ставления многозвенных логических схем для всех существующих типов ПЛК. Поэтому все приводимые здесь примеры ориентирова- ны на использование в модели PLC5, но путем внесения незначи- тельных изменений их можно адаптировать применительно и к ПЛК других типов. В этих примерах используются следующие об- ласти таблицы данных PLC5: I:rs/bb Ввод вещественного числа из бита bb на плате в гнезде s стойки г (например, 1:35/07) O:rs/bb Вывод вещественного числа в бит bb на плате в гнезде s стойки г (например, 0:41/12) В качестве вводимых и выводимых данных может быть использова- но 16-битовое слово в представлении I:rs, что соответствует 16-би- товому слову из гнезда s в стойке г (например, 1:26). Это оказывает- ся полезным, например, при получении данных от декадных переключателей. Bf/b Запоминание бита — бит в файле двоичных данных f (на- пример, В13/21) Nf:n Целочисленное слово п в файле целых чисел f (например, N27:5). Целочисленное слово может иметь значение в ди- апазоне от —32 768 до 32 767 Ff:n Число п в формате с плавающей точкой в файле таких чи- сел f (например, F8:23). Число с плавающей точкой имеет приблизительно семь значащих цифр и может принимать значения в диапазоне от 1.1754933Е — 38 до 3.4028237Е + 38 (32-битовые числа с одинарной точностью в стандарте IEEE) PLC5 поддерживает также другие типы таблиц данных (например, текст в стандарте ASCII), но в данном примере они не используются.
Пример многозвенной логической схемы 441 В PLC5 используются обычные символы многоступенчатой ло- гики: — ] [— истина, если сигнал присутствует — ]\[— истина, если сигнал отсутствует — ()— выход — ( L )— выход с защелкой; если он был установлен, то остается в таком состоянии и может быть сброшен только с помо- щью символа — ( U )— который снимает защелку (очищает адрес) Эти символы могут быть использованы совместно с вещественны- ми входами и выходами или с битами памяти. Таймеры имеют представление Tf:n, где f — файл, ап — номер таймера (например, Т4:7). Все таймеры в этих примерах использу- ют базовую единицу времени 0.01 с, поэтому установка числа 125 будет соответствовать задаваемому таймером интервалу времени 1.25 с. Таймеры могут осуществлять задержку включения (TON) или задержку выключения (TOF). Инструкция MOV выполняет перемещение данных из одного места в другое. В наших примерах она обычно используется для преобразования числа в формате с плавающей точкой в целое чис- ло, перед тем как переслать его на аналоговую выходную плату. Основными арифметическими инструкциями являются ADD, SUB, MUL, DIV. В инструкции могут участвовать любые комбина- ции чисел — целых и с плавающей точкой. Могут использоваться также константы (постоянные числа). Следует соблюдать осторож- ность при использовании инструкции MUL применительно к двум целым числам для получения целого результата, чтобы избежать переполнения регистра. Если инструкция DIV (деление) применя- ется к двум целым числам, то происходит округление до ближайше- го целого (например, 46 DIV 10 дает результат 5, а 44 DIV 10 дает число 4). Это будет рассмотрено ниже в разд. 9.12. PLC5 имеет также инструкцию СРТ (вычислить), с помощью которой можно получить результат математического выражения. Она используется в нескольких местах, чтобы ограничить машин- ное слово, которое становится слишком длинным, заданным коли- чеством значащих цифр. Любую инструкцию СРТ можно разбить на несколько отдельных инструкций ADD, SUB, MUL и DIV. Используются следующие инструкции сравнения: GRT больше чем GEQ больше или равно
442 Программируемые контроллеры EQU равно LEQ меньше или равно LES меньше чем Описываемая в примерах программа умышленно сделана «много- словной», чтобы отчетливо можно было видеть выполняемые дей- ствия. Это не является недостатком, так как хорошая программа всегда должна быть легко понимаемой. Искушенные программи- сты, работающие с PLC5, обратят также внимание, что я включил в набор инструкций некоторые функции (например, -| ONS ]— для OneShot — генерирования одиночного импульса) с единственной целью — показать, что и для менее мощных ПЛК можно создать специфические функции. 9.2. Функция OneShot Функция OneShot позволяет получить одиночный импульс, дли- тельность которого равна времени прогона программы. Этот им- пульс генерируется в момент, соответствующий переднему или зад- нему фронту входного сигнала, как показано на рис. 9.L В некоторых ПЛК, например в PLC5, эта функция является частью основного набора инструкций. В ПЛК, не имеющих такой отдель- ной функции, одиночный импульс можно получить, используя все- го два звена логической схемы. Эта идея проиллюстрирована на рис. 9.2. В представленной схеме Trigger Input соответствует входному сигналу. Trigger_2 в звене 1 является копией Trigger Input, но он не принимает значение «истина», пока не будет завершена работа зве- на 0. Таким образом, Trigger OneShot примет значение «истина» на время первого прогона программы после того, как станет истинным состояние Trigger Input, после чего вернется к значению «ложь». Звенья, изображенные на рис. 9.3, представляют типичные при- меры использования одиночного импульса, генерируемого с помо- щью функции OneShot. На рис. 9.3 (а) при каждом нажатии кнопки RaiseSetpoint Pushbutton к значению уставки (Setpoint) добавляется число 5. На рис. 9.3 (б) при каждом нажатии кнопки Lubricate выход Lubricate Solenoid активизируется ровно на 4 секунды. В обоих слу- чаях удержание кнопки в нажатом состоянии не оказывает никако- го дальнейшего влияния. На рис. 9.3 (б) использована дополни- тельная ветвь, чтобы можно было получить одиночный импульс с помощью всего одного звена. На рис. 9.4 показано, как путем замены нормально разомкнуто- го контакта Trigger на нормально замкнутый можно получить оди-
Пример многозвенной логической схемы 443 Входной сигнал Реакция на передний фронт Реакция на задний фронт Длительность импульса равна времени одного прогона программы Рис. 9.1. Одиночные импульсы, формируемые передним и задним фронтами входного сигнала One Shot on rising edge Trigger Trigger Input Trigger_2 OneShot 1:010 ВЗ B3 0+---] [--------]/[---------------------------------------------------( ) — 01 1 0 [1] Trigger Input Trigger_2 1:010 B3 1+—] [--------------------------------------------------------------( )---- I 01 1 Рис. 9.2. Генерирование одиночного импульса путем реакции на передний фронт входного сигнала ночным импульс с длительностью, равной времени прогона про- граммы, как реакцию на задний фронт входного сигнала. 9.3. Переключатель двойного действия По принципу переключателя двойного действия (toggle action) дей- ствуют шариковые авторучки, когда первое нажатие на кнопку вы- двигает пишущий узел, а следующее нажатие убирает его. Всего од- ну кнопку можно использовать для запуска и остановки электродвигателя — путем первого нажатия включить его, а путем следующего выключить. (На англ, языке для этого действия обыч- но используется термин «Push On/Push Off». — Прим, лерее.) Данная операция наглядно проиллюстрирована на рис. 9.5.
444 Программируемые контроллеры Raise_Setpoint Raise_SP Raises? Pushbutton Mimic Oneshot 1:020 ВЗ B3 2+------] [------------]/[--------------------------------------------( }---- 05 3 2 [3] Rai se_Setpoint Pushbutton 1:020 3>------1 [------ 05 Raise_SP Mimic B3 — ( )------ 3 Raises? OneShot Setpoint B3 +--ADD------------- 4-fr-] [-----------------------------------------------------+Add 2 A: N17:30 [2] 1100 B: 5 Dest: N17:30 1100 Setpoint ♦--GRT-------------- 5++Greater Than (A>B)- A: N17:30 1100 N17:35 1750 Setpoint +--M0V-- ♦Move Source: Dest: N17:35 1750 N17:30 1100 N17;30 N17:35 [5] [5] В Рис. 9.3. Типичные примеры использования одиночных импульсов (а) изменение числа на заданную величину; На рис. 9 6 показано, как двойное действие реализуется с по- мощью трех звеньев логической схемы. Первое звено просто ге- нерирует одиночный импульс в виде реакции на передний фронт входного сигнала, как это было описано в разд. 9.2. В случае ис- пользования функции OneShot необходимость в этом звене от- падает. Для получения двух устойчивых состояний на выходе служат зве- нья 1 и 2, содержащие бит Toggle В13/10 и Toggle Mimic В13/11 для воспроизведения выходного сигнала. Заметим, что поскольку про- гон программы выполняется сверху вниз, то Toggle Mimic обновляет- ся после Toggle. Поэтому Toggle Mimic отображает состояние Toggle, соответствующее предыдущему прогону программы. Если Toggle Mimic имеет значение «ложь», т. е. Toggle при по- следнем прогоне находился в состоянии «ложь», то верхняя ветвь изменяет состояние Toggle на «истину». Аналогично, если
Пример многозвенной логической схемы 445 Lubricate Lubricate Lubricate RequestPB Pushbutton Mimic 1:013 B3 —] [ 1—]/[---- Request OneShot B3 ( )— 07 5 [6] Lubricate Request_PB Mimic B3 — ( ) — 4 5 Lubricate Lubricate Request OneShot B3 PulseTOF Timer +--TOF ♦ 7- —] [ +Timer Off Delay +-(EN)- 4 16] Timer: T4:1| Base (SEC): 1.0+-(DN) Preset: 51 Accum: 5| ♦ + Lubricate Pulse_TOF Timer T4:l 8+----] (— DN [7] Lubricate Solenoid 1«= Lubricate 0:012 -----( )------ 04 6 Рис. 9.3 (продолжение), (б) включение в работу устройства на заданный промежуток времени при каждом появлении события (в данном случае при каждом нажатии кнопки) One Shot on falling edge Input_Signal 1:011 9>-----]/[---- 01 Not_Input Mimic B3 ♦- — ]/[- 20 [91 Notlnput Mimic B3 +----( )__ 20 OneShot_on Falling l->0_Edge B3 ----( )------ 21 Рис. 9.4. Генерирование одиночного импульса путем реакции на задний фронт входного сигнала
446 Программируемые контроллеры Входной сигнал Выходной сигнал Рис. 9.5. Работа переключателя двойного действия Input Signal 1:010 0+--] [- 05 Input Input Signa12 OneShot B3 B3 ♦—J/l--------( )—♦- 7 € [0] Input SignalJ2 B3 -( )------------+ 7 Input OneShot B3 !♦ — ] l- 6 [0] ToggleJMimic Toggle (LastScan) Output B13 B13 ♦-----]/[--------(L>—->- 11 10 [2] ToggleJMimic Toggle (Last_Scan) Output B13 B13 ♦-----] [--------(U)—+ 11 10 [2] Toggle Output B13 2+--] [- 10 Ill ToggleJMimic (LastScan) B13 -----( )------- 11 Рис. 9.6. Реализация переключателя двойного действия (push-on, push-off). Сигнал OneShot здесь принципиально необходим, без него (т. е. при замене в звене 1 ВЗ/6 на 1:010/05) при наличии входного сигнала цикл включено/ выключено на выходе повторялся бы при каждом прогоне программы Toggle Mimic имеет значение «истина», то нижняя ветвь перево- дит Toggle в состояние «ложь». Таким образом, Toggle и Toggle Mimic изменяют свои состояния при каждом переднем фронте входного сигнала. На рис. 9.7 показано, как переключатель двойного действия можно использовать для деления на 2 частоты входного сигнала. Последовательность выходных импульсов будет иметь одинаковые значения длительности импульса и паузы.
Пример многозвенной логической схемы 447 These three rungs generate a toggle bit with 0.5s ON and 0.5s OFF (period 1 sec) The toggle maintains equal mark/space regardless of the setting of T4:10 FlasherTON 0.5s_Period T4:10 3+-----1/[— DN [31 FlasherTON 0.5s_Period T4:10 -----] DN [3] FlasherJTON 0.5s_Periad +--TON-------------+ +Timer On Delay +-(EN)- Timer: T4:lo| Base (SEC): 0.01+-CDN) Preset: 501 Accum: 0| Flasher Flaeher_Bit Mimic IHzJPeriod B3 ~ B3 +—]/[----------(Lb — 15 16 (5] Flasher Flasher_Bit Mimic lHz_Period B3 B3 + --] [--------(U)- — 15 16 [5] Flasher_Bit Flasher lHz_Period Mimic | 16 15 1141 Рис. 9.7. Получение одинакового отношения импульс/пауза. Выходной сигнал ВЗ/15 (используемый здесь в качестве бита-мигалки для управления лампами аварийной сигнализации) имеет одинаковые длительности импульса и паузы. Период работы таймера Т4’10 не влияет на это отношение 9.4. Аварийная сигнализация Во многих системах управления используются устройства аварий- ной сигнализации, служащие для того, чтобы обратить внимание оператора на те или иные возникшие проблемы. Общие принципы действия таких устройств были рассмотрены в разд. 6.4, здесь же мы покажем, как их можно реализовать с помощью ПЛК в виде многозвенной логической схемы. Основная идея проиллюстрирована на рис. 9.8. Когда возни- кает аварийная ситуация, индикатор на пульте управления (или на экране) начинает мигать, показывая, что аварийный сигнал должен быть принят оператором. Если оператор принимает этот сигнал, индикатор горит непрерывно (в случае сохранения опас- ности) или выключается (в случае временного характера аварий- ной ситуации).
448 Программируемые контроллеры Аварийный сигнал—1 L Световой индикатор—ПТкЛ-П-ГО Аварийный L w н _________________________сигнал при- Звуковая | Аварий- I но вее сигнализация ныйсиг- еще присут- налещенё-] ствует Кнопка принятия--- принят ------------ аварийного сигнала I Аварийный сиг-1 нал сбрасыва- ется до его при-Г-] -----нятйя---- L- Рис. 9.8. Типичный пример действия устройства аварийной сигнализации Для аварийной сигнализации используются три звена логиче- ской схемы, как показано на рис. 9.9. (Все программы в данной гла- ве приводятся по оригиналу книги. Необходимые комментарии имеются в тексте. — Прим, перев.) Аварийный сигнал поступает на вход 1:000/4. Как и большинство аварийных сигналов, он формиру- ется по принципу отказобезопасности, т. е. принимает значение 1 в случае нормальной работы и значение 0 при появлении опасности. Когда возникает аварийная ситуация, первое звено генерирует оди- ночный импульс (см. разд. 9.2). В звене 1 одиночный импульс (Alarm OneShot) используется для установки бита ВЗ/50 (непринятый аварийный сигнал — Unaccepted Alarm), который сохраняет свое значение до тех пор, пока не будет нажата кнопка 1:010/00 (принятие аварийного сигна- ла). Биты непринятых аварийных сигналов от всех их возможных источников могут быть сгруппированы с помощью операции ИЛИ, тем самым вызывая звуковую сигнализацию или мигание лампы при появлении любой аварийной ситуации. Последнее звено управляет лампой аварийной сигнализации или индикацией на экране. Если в ВЗ/50 установлен бит, соответст- вующий непринятому сигналу, то лампа будет мигать (бит-мигалка ВЗ/16 реализован на рис. 9.7). Если аварийный сигнал все еще при- сутствует, но он был принят, второе звено будет обеспечивать по- стоянное свечение лампы. Заметим, что нижняя ветвь звена 2, со- держащая кнопку тестирования лампы 1:010/02, позволяет проверить исправность индикации. Часто кнопки принятия ава- рийного сигнала и тестирования лампы имеют один и тот же адрес, чтобы проверка исправности индикации проводилась каждый раз при возникновении аварийной ситуации. Появление аварийных сигналов часто обусловлено аналоговы- ми величинами, например «Температура в емкости 4 стала слиш- ком высокой» или «Расход охлаждающей воды недостаточен». Би- ты аварийных сигналов обычно устанавливаются в результате
Пример многозвенной логической схемы 449 The first rung generates a oneshot when the alarm event occurs. In this case the alarm signal is ' 1' for the healthy state so a n/c contact is used AlarmEvent 1«Healthy 0 «Alarm 1:000 0+----]/[ — 04 Alarm_Event OneShot B3 !♦-+-----1 I — 48 [0] Unaccepted Alarm B3 *----] [----- 50 11] AlarmAccept PushButton 1:010 -----l/[---- 00 Alarm_Event Alarm_Mimic OneShot B3 B3 к----]/[----------( )------ 47 48 [01 Alarm_Mimic B3 p----( }------------------ 47 Unaccepted Alarm B3 ---------------------( ) —.. 50 The indicator flashes for an unaccepted alarm and is solid for an accepted, but still present, alarm. Alarm Unaccepted Flasher Bit Annunciator Alarm lHz_Period Indication ВЗ B3 0:012 2>-+—-4 (-------------] [----+--------------------------------------( . 50 16 07 [11 [8:4] Al arm_Event 1«Healthy Unaccepted 0« Al arm Alarm 1:000 B3 ♦-----]/[----------] / [--♦ 04 50 [11 Lamp_Test Pushbutton 1:010 +-----j [---------------------- 02 Рис. 9.9. Простая программа работы устройства аварийной сигнализации операций сравнения, но если для этого используется простое срав- нение аналоговой величины с уставкой, соответствующей аварий- ному состоянию, то при колебании этой величины относительно уставки будут часто появляться надоедающие аварийные сигналы, как показано на рис. 9.10 (а). Лучшее решение заключается в ис-
450 Программируемые контроллеры Рис. 9.10. Формирование аварийного сигнала: (а) случай одной фиксированной уставки для появления аварийного сигнала; (б) аварийный сигнал при наличии гистерезиса Analog Alarm event with hysteresis. Alarm occurs when flow drops below 1000 1/min and clears when flow rises above 1200 1/min Cooling Water_Flow NNNN_l/min +--LES------------+ 3-fr-++Less Than (A<B) A: N7:50 1472 B: 1000 Cooling WaterFlow NNNN_l/min ♦ --LES----------♦ ♦-♦Less Than (A<B) ♦ A: N7:50 1472 B: 1200 Low_Flow AlarmJEvent l=Fault B3 ------( )----- 55 LowFlow Al axm_Event 1=Fault B3 к-----] p-_, 55 13] Рис. 9.11. Формирование аварийного сигнала при наличии зоны гистерезиса для аналогового сигнала
Пример многозвенной логической схемы 451 пользовании зоны гистерезиса, как показано на рис. 9.10 (б). В дан- ном случае аналоговый сигнал должен измениться на некоторую величину относительно значения, вызвавшего появление аварий- ного сигнала, прежде чем будет установлен 0 в бите этого сигнала. На рис. 9.11 показано, как с использованием гистерезиса и всего одного звена логической схемы производится установка бита ава- рийного сигнала. Здесь N7:50 соответствует сигналу, поступающе- му с аналоговой входной платы и характеризующему расход охлаж- дающей воды. Бит аварийного сигнала устанавливается в 1, если значение в N7:50 упадет ниже 1000 л/мин, но не будет сброшен, по- ка расход не станет больше 1200 л/мин. 9.5. Фильтр первого порядка На аналоговые сигналы обычно накладывается помеха; она либо обусловлена влиянием других источников, либо присутствует в са- мом сигнале. Например, сигналы, соответствующие значению уровня жидкости, склонны содержать помеху, обусловленную вол- нами на поверхности. Простейший способ уменьшить влияние помехи заключается в использовании фильтра первого порядка, который может быть описан математическим уравнением: dy y + rdF=At}- (91) Непосредственно в ПЛК такое уравнение реализовать трудно, поэтому используется более простая версия, основанная на дис- кретном представлении сигнала, как показано на рис. 9.12. Вход- ной сигнал с наложенной на него помехой подвергается квантова- нию с интервалом Аг (обычно от 0.1 до 5 с в зависимости от конкретного случая). Значение сигнала после фильтрации вычис- ляется при каждой выборке в соответствии с выражением: Значение после фильтрации = Значение после фильтрации + + Кх (Исходное значение — Значение после фильтрации), (9.2) где К — постоянный коэффициент. Это выражение приводит к реакции, изображенной на рис. 9.13, достаточно близкой к реакции простого фильтра первого порядка. При грубом приближении постоянная времени фильтра равна t\t/K (например, в случае ступенчатого изменения входного сигнала, при шаге квантования по времени 0.5 с и К= 0.1 потребуется 10 шагов,
452 Программируемые контроллеры Выполняется каждые ДТ секунд Значение после фильтра- ции Рис. 9.12. Структурная схема фильтра первого порядка чтобы выходной сигнал достиг 66% от своего конечного значения, т. е. постоянная времени будет равна приблизительно 5 с). К выбо- ру параметров А/ и К следует подходить очень осторожно. Выборки необходимо производить достаточно часто, чтобы отслеживать все изменения входного сигнала (обычно Аг берут в диапазоне от 0.1 до 5 с), а К выбирают в диапазоне от 0.01 до 0.1. При очень малых Аг возрастает объем вычислений, требующихся от ПЛК. Малое значе- ние К говорит о том, что частота квантования является слишком большой. Выражение (9.2) можно запрограммировать с помощью пяти звеньев логической схемы, как показано на рис. 9.14. Неотфильтро- ванный сигнал вводится в N7:5 с аналоговой входной платы, а от- фильтрованный сигнал появляется в N7:6. Звено 0 реализует автономно работающий таймер, обеспечива- ющий выполнение действий последующими звеньями в течение
Пример многозвенной логической схемы 453 Т4:2 sets how often the filter updates (delta T) The preset and the gain F8:17 set the time constant Filter_Update TON_Timer T4:2 0+------]/[----- DN [0] Filter_Updat e TON__Timer + - TON-----------+ +Timer On Delay +-(EN}- Timer: T4:21 Base (SEC): 0.01+-(DN) Preset: 50| Accum: 36| N7:5 is the unfiltered input signal, FB:15 is the filtered signal from the last sample Filter_Update TON_Timer T4:2 ------] [----- DN [0] Filter Difference +--SUB------------ +Sub A: N7:5 100 B: F8:15 99.99994 Dest: F8:16 6.103516E-005 F8:17 is the filter gain. This, together with the preset of T4:2 sets the time constant The error times the gain gives the correction to the filtered value FilterUpdate TON_Timer T4:2 2+------] [---- DN [0] Filter Correction + -“MUL- — — — — — — — — —. +Mul A: F8:16 6.103516E-005 B: FB:17 0.06 Dest: F8:1B 3.662109E-006 Рис. 9.14. Простейший фильтр первого порядка. заданного (Preset) интервала, равного времени прогона программы. В данном случае это время установлено равным 0.5 с. В реальной ситуации один таймер может управлять работой нескольких фильт- ров. Звено 1 вычисляет разность между значениями исходного (не- фильтрованного) и результирующего (фильтрованного) сигналов. Звено 2 умножает эту разность на коэффициент К, чтобы опреде- лить, что необходимо добавить к фильтрованному значению или вычесть из него. Эта поправка вводится в звено 3, а звено 4 просто
454 Программируемые контроллеры The correction is added to the old filtered value to give the new filtered value FilterUpdate Filtered TQNTiroer Signal_(Float) T4:2 3+------] [--------------------------------------------- DN [0] +--ADD------------ ♦Add A: F8:15 99.99994 B: F8:18 3.662109E-006 DeSt: F8:15 99.99994 Filtered FilterUpdate TQN_Timer T4:2 4+------] [-------------------------------------------- DN [0] Signal (Integer) +--M0V-- +Move Source: Deet: F8:15 99,99994 N7:6 100 6 Рис. 9.14 (продолжение). Простейший фильтр первого порядка преобразует число из формата с плавающей точкой в целочислен- ное представление. Заметим, что операции в звеньях 2 и 3 должны выполняться над числами с плавающей точкой, так как изменения значения фильтрованного сигнала могут быть очень малыми. При наличии инструкции СРТ действие звеньев 1—3 можно реали- зовать с помощью всего одного звена, представленного на рис. 9.15. Более эффективную фильтрацию можно получить, если продуб- лировать схемы рис. 9.14 или 9.15, результатом чего явится избы- точно демпфированный фильтр второго порядка. Unfiltered input signal is in N7:5. As before FB:17 is the Oain One more rung ie needed if a filtered integer output is required FilterUpdate TONJTimer T4:2 5+------1 [---- DN [0] Filtered Value_(Float) usingCPT +--CPT---------------------+ ♦Compute + Dest: FB:19| 72.28377 Expression: F8:19 + (F8:17 * (N7:5 - F8:19)) Рис. 9.15. Реализация фильтра первого порядка в виде одного звена с помощью инструкции СРТ
Пример многозвенной логической схемы 455 9.6. Регулирование уровня Часто возникает необходимость регулирования уровня жидкости в ре- зервуаре. Это обычно производится путем изменения скорости насоса (с помощью управляемого привода) или открытия/закрытия впускно- го или выпускного клапана. Резервуар часто играет роль накопитель- ной емкости, и необходимость в точном поддержании уровня отсутст- вует. Все, что требуется, — это каким-то образом гарантировать, что резервуар не переполнен или что вся жидкость не вытекла из него. Если требуется точное поддержание уровня, необходимо ис- пользовать ПИД-ретулятор, но настройка системы регулирования может оказаться непростой задачей. Дело в том, что уровень про- порционален интегралу от расхода, и два интегратора (один за счет ПИД-регулятора и один за счет преобразования расхода в уровень) делают контур регулирования склонным к неустойчивости. К тому же подача жидкости в резервуар приводит к образованию волн на поверхности и, как следствие, к помехам в сигнале, соответствую- щем значению уровня. Гораздо проще оказывается система, которая непосредственно связывает скорость насоса с высотой столба жидкости в резервуаре. Таким образом, чем больше уровень жидкости, тем с большей ско- ростью будет работать насос. При максимально допустимом значе- нии уровня насос будет работать с полной скоростью, и при пра- вильной настройке системы можно избежать переполнения резервуара или полного вытекания жидкости. На рис. 9.16 (о) приведен типичный пример системы, в которой насос с регулируемой скоростью осуществляет откачку жидкости из резервуара. Уровень жидкости измеряется с помощью ультразву- кового датчика. Пусть £тах — наибольшее допустимое значение уровня. При этом значении насос должен работать с полной скоро- стью Утах, например 50.0 Гц. Пусть также Z.min — наименьшее до- пустимое значение уровня. При этом значении насос должен иметь почти нулевую скорость, Emin- На практике производительность насоса уменьшается пропорционально квадрату скорости, поэтому типичным значением Emin можно считать 20.0 Гц. Таким образом, мы имеем диапазон изменения уровня Ry = (Z-max - Z-min) и диапазон изменения скорости Ry= (Emax — Emin), что дает коэффициент пропорциональности К= Ry/Ri - Связь меж- ду скоростью насоса и уровнем приведена на рис. 9.16 (б). При любом значении уровня L скорость V определяется выра- жением У ZZ(Z- — Z.mjn) + J'min- (9.3)
456 Программируемые контроллеры Приток жидкости (случайный процесс) Скорость Л Рис. 9.16. Регулирование уровня жидкости в резервуаре: (а) резервуар-накопитель со случайным притоком жидкости и оттоком, задаваемым насосом; (б) характеристика системы регулирования Это выражение реализуется с помощью многозвенной схемы, пред- ставленной на рис. 9.17. Значение уровня в инженерных единицах измерения вводится в N 17:0 с аналоговой входной платы. Констан- ты для уровней £тах (3500 мм), Zmjn (2000 мм) и скоростей Ктах (500 = 50.0 Гц) и Kmin (250 = 25.0 Гц) устанавливаются по адресам с N17:10 по N17:13.
Пример многозвенной логической схемы 457 The first three rungs calculate the slope and offset of the frequency/level graph and are only obeyed once after the PLC goes from halt to run to reduce computational loading on PLC Frequency First Scan Range Completed NN.N Hz В13 +--SUB + Он —]/[ +Sub +-- 0 A: N17:12 13] 500 B: N17-.13 250 Dest: N17-.16 250 First_Scan Completed B13 1+—-]/[— 0 [3] Level_Range NNNN_mm +--SUB----------- +Sub A; N17:10 3500 B: N17:ll 2000 Dest: N17:15 1500 First_Scan Completed B13 2+----]/[- — 0 [3] Frequency Range NN.NHz +--GRT------------- +Greater Than <A>B}- A: N17:16 250 B: 0 +------------------ N17:16 - [2] LevelRange NNNNjITO +--GRT -«Greater Than A: N17:15 1500 B: 0 Freq_to Level_S 1 ope + +--DIV----------- (A>B)+-+Div N17:15 - [2] A: N17:16 250 B: N17:15 1500 Dest: F18.0 0.1666667 First_Scan Completed Рис. 9.17. Регулирование уровня в резервуаре-накопителе; В первых трех звеньях вычисляются значения Rl, Ry и коэффи- циент пропорциональности К. Заметим, что в звене 2 производит- ся проверка правильности введенных значений, которая нужна для того, чтобы убедиться в том, что диапазоны уровня и скорости за- даны верно и отличны от нуля. Последнее важно для того, чтобы избежать деления на ноль в инструкции DIV в конце звена 2. Дан- ные, используемые в этих трех звеньях, будут изменяться редко, ес- ли вообще будут изменяться. Для выполнения математических ин- струкций требуется определенное время, поэтому ячейка В13/0
458 Программируемые контроллеры The tank level arrives in N17:0 in millimetres. N17:13 is the base speed and N17:11 the minimum level The CRT calculates the required pur~p speed. F18:l is 10 * Speed Pump_Speed 10_*_Hz +--CPT------------------------ ♦Compute Dest: P1B:1 Э5В-6667 Expression: N17:13 + (F1B:O • (N17:0 - N17:ll)> Pump_Speed NN.NHz +--MOV------------ ♦Move Source: F1B:1 358.6667 Dest: N17:5 359 The next two rungs set upper and lower limits on the frequency. PumpSpeed Pump_Speed NN.N Hz NN.N Hz ♦- -GRT------------+ 6++Greater Than (A>B)----------------------------------- A: N17:5 359 В: N17:12 500 ♦--MOV------------ ♦Move Source: N17:12 500 Dest: N17:5 359 N17:5 - [6] N17:12 - (6] Pun>p_Speed PuinpSpeed NN.N_Hz NN.N Hz + --LES----------+ 7++Less Than (A<B) +-------------------------------------- A: N17:5 359 B: N17:13 250 N17:5 - [7] N17-.13 - [7] +--MOV------------ ♦Move Source: N17:13 250 Dest: N17:5 359 Рис. 9.17 (продолжение). Регулирование уровня в резервуаре-накопителе; используется, чтобы гарантировать, что звенья 0—2 будут выполне- ны только один раз при переводе ПЛК из режима останова в режим работы. При первом прогоне программы В13/0 не будет активизи- рована, поэтому звенья 0—2 выполнят свое назначение. После это- го В13/0 примет состояние «истина», и при последующих прогонах программы звенья 0—2 будут пропускаться.
Пример многозвенной логической схемы 459 The frequency is passed to the analog output card Pump_Speed NN.NHzfor AnOutCard +--MOV----------- ♦Move Source: N17:5 359 Dest: N20:0 359 The pump starts if the level rises above 2200mm and stops if the level falls below 2000mm. Tank_bevel TankLevel Pump_Run NNNN_rom NNNNjtm Command + --GRT------------+ B13 -♦Greater Than (A>B) +--------------------( )------ A: N17:0 1 +--GRT-------------+ 9+-++Greater Than (A>B}+-+ A: N17:0 2652 B: N17:1B 2200 2652 B: N17:19 2000 N17:0 - (4] Pump_Run Command B13 +—] [------------------ 1 [91 N17:0 - [4] Рис. 9.17 (продолжение). Регулирование уровня в резервуаре-накопителе Инструкция СРТ в звене 4 служит для вычисления выражения (9.3). При ее отсутствии будут необходимы операции вычитания (Z — Zmin), умножения этой разности на К и сложения результата с Ипйп- Заметим, что в инструкции СРТ для получения промежуточ- ных результатов и итогового должны использоваться числа с плава- ющей точкой. Полученное в F18:1 число с плавающей точкой (в диапазоне от 200 до 500, что соответствует скорости от 20 до 50 Гц) преобразует- ся в N17:5 в формат целого числа. В звеньях 6 и 7 оно ограничива- ется диапазоном от Pmin До Ртах- Звено 8 пересылает это число, со- ответствующее скорости привода, в N10:0 для формирования аналогового выходного сигнала. Звено 9 вырабатывает команду на включение привода. В N17:12 хранится значение Zstart> соответствующее уровню, при котором должна начаться откачка жидкости. Это значение устанавливается большим, чем £min, а именно соответствующим 2200 мм; при этом за счет полученного гистерезиса в 200 мм обеспечивается защита от
460 Программируемые контроллеры быстрых включений/выключений привода, которые были бы неиз- бежны при наличии волн на поверхности. Насос начнет откачивать жидкость, когда ее уровень превысит 2200 мм, и будет действовать до тех пор, пока уровень не снизится до Етщ, после чего будет вы- ключен. При очень малых значениях притока жидкости уровень бу- дет колебаться между Lmin и £start, приводя к частым включениям и выключениям насоса. При нормальных значениях расхода насос будет работать со скоростью, обеспечивающей оггок жидкости, в точности равный ее притоку. 9.7. Линеаризация Аналоговые сигналы часто имеют нелинейный характер, и перед их использованием они должны быть линеаризованы. Типичными при- мерами являются термопары и термометры сопротивления, характе- ристики которых нелинейны. Для линеаризации лучше всего исполь- зовать кусочно-линейную аппроксимацию, которая дает на удивление точные результаты. Особой похвалы заслуживает GEM-80 за то, что в нем имеется функция LINCON, позволяющая использовать для лине- аризации уравнения вида (Ах + В) на ограниченных интервалах. На рис. 9.18 приведен типичный пример нелинейной зависимо- сти между входом х и выходом у. Например, входной величиной х могут быть милливол ьты, получаемые от термопары, а выходной у — температура. На графике выбираются 4 известных значения Х{—Х4 для входной величины и соответствующие им значения выходной величины У]—Предполагается, что между каждой парой точек с координатами (Xj, Yj) характеристика имеет вид прямой линии. Начнем с определения коэффициентов наклона четырех отрезков: *1 = Y\/Xi K2 = (Y2-Yl)/(X2-Xi) K3 = (Y3-Y2)/(X3-X2) K4 = (Y4-Y3)/(X4-X3) Далее необходимо проверить, в каком диапазоне находится вход- ная величина, и вычислить значение у в соответствии с выражени- ями: если (х > 0) и (х < Хх), то у = У|Х если (х > X]) и (х < Х2), то у = К2(х — Х}) + Y\ если (х >Х2) и (х < %3), тоу = А3(х — Х2) + Y2 если (х > Х3) и (х < Х4), то у = К4(х — Х3) + У3
Пример многозвенной логической схемы 461 В качестве примера на рис. 9.19 показано, как с помощью многозвен- ной логической схемы производится преобразование микровольт в температуру для термопары типа К в диапазоне от 20 до 400 °C. В дан- ном диапазоне ЭДС термопары связана с температурой следующим образом: Температура, °C (у) ЭДС термопары, мкВ (х) 00 100 4096 200 8138 300 12209 400 16397 Сигнал от термопары, выраженный в микровольтах, поступает с аналоговой входной платы в N37:0. Перед этим предварительно производится компенсация холодного спая. Температуре 200 °C в N37:0 будет соответствовать число 8138. Четыре фиксированных значения ЭДС термопары (Xj—Л4) хранятся в ячейках с адресами N37:ll—N37:14, а соответствующие им значения температуры (К|—У4) — в ячейках N37:21— N37:24 В первых четырех звеньях вычисляются коэффициенты К[— К4, которые запоминаются в ячейках с F38:1 по F38:4. Состояние ВЗЗ/О
462 Программируемые контроллеры The first four rungs calculate the slopes between the fixed points B33/0 ensures the rungs are only obeyed once on the first PLC scan First Scan Point XI Completed ВЗЗ Microvolts «---NEQ + 0ч H— l/l 0 [4] -«-Not Equal (AoB)« A: N37:ll 4096 B: 0 + + N37:ll - t0] FirstScan Completed Point_X2 Microvolts 1 —]/[— 0 [4] — ►Greater Than (A>B) + A: N37:12 8138 B: N37:ll 4096 N37:12 - tU N37:11 - fl] 2 First_Scan Completed B33 —]/[— 0 [4] -4 >oint_X3 <icrovolts i—-GRT + ►•Greater Than (A>B) « A: N37:13 12209 B: N37:12 8138 137:13 - 12] 137:12 - [2] 3 First_Scan Completed B33 Point_X4 Microvolts «•--GRT + 0 [4] A: N37:14 16397 B: N37:13 12209 ----- N37:14 - [3] N37:13 - [3] Slope 0_to_Xl +--DIV------------- •+Div A: N37:21 100 B: N37:ll 4096 Dest: F38:l 0.02441406 Slope Xlto X2 +--CPT----------------------- «•Compute Dest: F38:2 0.02474023 Expression: (N37:22 - N37:21) | (N37:12 - N37:ll) Slope X2_to_X3 +---CPT------------------------ «-Compute Dest: F38:3 0.02456399 Expression: (N37:23 - N37:22) | (N37.-13 - N37.-12) Slope X3_toX4 +--CPT--------------------- «-Compute Dest: F38:4 0.02387775 Expression: (N37:24 - N37:23) | (N37:14 - N37:13) FirstScan Completed B33 -----------------------------------------------------------------{ }----- 0 Рис. 9.19. Программа кусочно-линейной аппроксимации;
Пример многозвенной логической схемы 463 The thermocouple signal arrives in N37:0 as NNNKN microvolts After a range check the correct range is selected and the temperature calculated Thermocouple Thermocouple Input Signal Signal_uV SignaluV is_Valid +--GEQ---------------------+ +--LEQ------------------+ B33 5++Grtr Than or Equal (A>=B) +-+Less Than or Equal (A<-B)+---------( )-------- I A: N37:0l |A: N37;0| 1 11547 11547 B: 0| |B: 1639?| N37:0 - 16] N37:0 ~ [6] Input Signal i8_Valid взз 6+— — ] [------ 1 [5] The rmocouple SignaluV + - LES----------+ +Less Than (A<B) + A: N37:0 11547 B: N37:ll 4096 N37:0 - £61 N37:11 - [7] Temperature Degrees_C +—MOL--——-———-——- -+Mul A: N37:0 11547 B: F38:l 0.02441406 Dest: FSB:10 283.7386 Inputsignal is_Valid B3 3 7+-----] (------ 1 fs] Thermocouple Thermocouple S ignal_uV S ignal_uV + --GEQ-------------------+ +--LES------------+ +Grtr Than or Equal (A>=B) +-+Less Than (A<B) + A: N37:0 11547 B: N37:ll 4096 A: N37:0 11547 B: N37:12 8138 N37:0 - {7] N37;0 - {7] N37:11 - [7] N37:12 - [8] Temperature Degrees_C C+--CPT----- <+Conpute < Dest: F38:10 283.7386 Expression: (F38:2 * (N37:0 - N37:ll)) + N37:21 Рис. 9.19 (продолжение). Программа кусочно-линейной аппроксимации; при первом после включения ПЛК прогоне программы соответст- вует логическому 0, поэтому данные звенья выполняют свои функ- ции только один раз и после этого не используются. Звено 4 пере- водит ВЗЗ/О в состояние 1. В звене 5 производится проверка достоверности сигнала от тер- мопары. Термопары склонны к отказам типа обрыва цепи (что при- водит к очень большим показаниям температуры) или короткого замыкания (что соответствует нулевому показанию). Выход этого звена, ВЗЗ/1, позволяет сделать невозможным действие следующих звеньев, а также может использоваться для включения аварийной сигнализации при поступлении ложного сигнала.
464 Программируемые контроллеры Input_Signal isvalid ВЗЗ 8 +--------] [. 1 [5] Thermocouple S ignaluV + --GEQ-------------------+ +Grtr Than or Equal (A»B)+- A: N37:0 11547 B: N37:12 8138 +------------------------4 N37:0 - (8] N37:12 - t8] Thermocouple Signal_uV +--LES-----------+ > +Lese Than (A<B) +---------> A: N37:0 > 11547 B: N37:13 12209 +---------------+ N37:0 - IS] N37:13 - [9] Temperature Degrees_C <+--CPT----------------------- <+Compute < Dest: F38;10 283.7386 Expression: (F38:3 * (N37:0 - N37:12)) + N37:22 Inputsignal isValid B33 9+----] [---- Thermocouple Signal_uv +--GEQ--------------------- •+Grtr Than or Equal (A>=B) • N37:0 11547 N37:13 12209 B: Thermocouple SignaluV +--LEQ-------------------+> +Less Than or Equal (A<-B)+> N37:0 > 11547 N37:14 16397 B: N37: 0 - [9] N37:13 ~ [9] N37:0 - [9] N37:14 - [3] Temperature Degrees_C : +--CPT----- <~+Compute < Dest: F38:10 283.7386 Expression: (F38:4 * (N37:0 - N37:13)) + N37:23 Рис. 9.19 (продолжение). Программа кусочно-линейной аппроксимации; В звеньях с 6 по 9 производится вычисление температуры для каждого из четырех диапазонов. В каждый данный момент времени только одно из них является активным, а выбор нужного звена про- изводится с помощью инструкций сравнения в начале звеньев. Вы- численное значение температуры помещается в формате числа с плавающей точкой в ячейку с адресом F38.10. Если звено 5 обнаруживает, что входной сигнал не является до- стоверным, то звено 10 вводит в F38:10 значение, присваиваемое по умолчанию. При измерениях температуры это значение обычно по соображениям безопасности выбирается достаточно большим (в данном примере использовано значение 500 °C).
Пример многозвенной логической схемы 465 If input is not valid set temperature to high (over-range) value Input Signal is_valid B33 10+------] / [-- 1 [5] Temperature DegreeB_C +--MOV------------ +Move Source: 500.0 Dest: F38:10 283.7386 Finally transfer floating point value to integer location Temperature NNN_Deg_C + --M0V------------ -+Move Sources F38:10 283.7386 Dest: N37:l 284 Рис. 9.19 (продолжение). Программа кусочно-линейной аппроксимации Наконец, звено 11 осуществляет передачу значения температу- ры в виде целого числа в ячейку N37:l. В звеньях с 6 по 9 вычисле- ния производятся над числами с плавающей точкой, а не над целы- ми числами, чтобы избежать ошибок округления. Значение температуры в N37:l появляется с шагом 1 градус по шкале Цель- сия, что дает достаточно хорошую точность линеаризации. Приведенную программу можно было бы сократить, если вы- полнить некоторые предварительные операции. Звенья 0—4 не яв- ляются строго необходимыми, т. к. коэффициенты К|—К4 изме- няться не будут и их можно вычислить на обычном калькуляторе. Например, К2 = (200 - 100)/(8138 - 4096) = 0.0247402, и это число можно ввести непосредственно в программу. Поэтому инструкцию СРТ в звене 1 можно было бы заменить ячейкой F38:32, записав ту- да число 0.0247402, что сделало бы программу более быстрой и сэкономило бы память. 9.8. Суммирование расхода Типичной операцией в промышленности является измерение рас- хода, и часто требуется подсчитать общий объем вещества, прошед- шего за определенный промежуток времени. Это может потребо- ваться для отчетности (общий объем газа, использованного в данную смену, составил 40.57 м3) или для обеспечения технологиче-
466 Программируемые контроллеры ских норм процесса (добавить 25 литров продукта А, затем 50 лит- ров продукта В). Если расход F измеряется в л/мин, то это соответствует прохож- дению F/60 литров за каждую секунду. В общем случае, если показа- ния расходомера снимаются через каждые Аг секунд, то за время Д/ через данный участок пройдет Дг х F/60 литров. Поэтому суммарный объем мы можем вычислить с помощью следующего псевдокода: Repeat read new flow {с аналоговой входной платы} wait At seconds volume over dt = M • newflow/60 {в предположении, что new flow измеряется в л/мин} total volume - total volume + volume over dt Until hell freezes over Если расход измеряется в л/ч, то строка 4 примет вид volume over dt = At • newflow/3600, поскольку 1 час содержит 3600 секунд. Данная процедура проиллюстрирована на рис. 9.20. В действитель- ности мы измеряем значение расхода через фиксированные интерва- лы времени и подсчитываем общий объем за каждый такой интервал. На рис. 9.21 показано, как данная процедура выполняется с помо- щью трех звеньев. Звено 0 представляет собой несинхронизирован- Рис. 9.20. Простая операция суммирования расхода
Пример многозвенной логической схемы 467 ный таймер, каждые Дг секунд генерирующий импульс, длительность которого соответствует одному прогону программы. Таким образом, звенья 1 и 2 выполняют свои функции каждые Аг секунд. В данном примере уставка (preset) и, следовательно, Дг равны 2 секундам. Мгновенно измеренное значение расхода (в инженерных едини- цах —литры, галлоны, м3 или что-то еще — в минуту) вводится в ячей- ку N7:0. В звене 1 происходит деление этого значения на 30, чтобы получить общий объем за последние 2 секунды, и результат поступа- ет в F8:0. Деление на 30 необходимо потому, что расход измеряется в единицах/мин, а его значение мы получаем через каждые 2 секунды. Звено 2 добавляет объем, вычисленный за последний интервал Д/, к общему объему и обновляет значение общего объема в ячейке F8:1. Рассмотренная процедура суммирования расхода отличается про- стотой, но анализ рис. 9.20 показывает, что мы получаем заниженное Flow Flow Totalisation Update TON Totalisation Update TON T4:4 +--TON + 0ч ]/[ DN [0] +Timer On Delay +-(EN) ~ Timex: T4:4| Base (SBC): 0.01+-(DN) Preset: 2001 Accum: 891 + + Flow arrives in N7:0 in litres/min. It is divided by 30 to give total flow in last two seconds. Flow Total Flow Totali sat ion In Last Two Update ton Seconds T4:4 +--DIV ] [ +Div DN A: N7:0 [0] 36 B: 30.0 Dest: PS : 0 1.2 Flow Totali sat ion Update TON T4:4 TotalFlow +--ADD- ] [ DN [0] A: B; Dest: F8:l 843.2658 F8.0 1.2 F8:1 843.2658 + + Рис. 9.21. Простая программа суммирования расхода
468 Программируемые контроллеры значение общего объема при увеличении расхода и завышенное зна- чение при уменьшении расхода. С течением времени эти погрешно- сти более или менее компенсируются, но более точный результат можно получить, если использовать среднее значение расхода на рас- сматриваемом интервале, как это показано на рис. 9.22. Заметим, что при этом берутся отсчеты в конце предыдущего интервала и в начале следующего интервала и никакие другие значения не используются. Данную процедуру можно представить в виде следующего псев- докода: old flow = 0 {выполняется только один раз, чтобы инициализировать переменную} repeat wait At seconds read new flow {с аналоговой входной платы} average flow = (new flow + old flow)/2 volume over Ar = At • average flow/60 total volume = total volume + volume over Ar old flow = new flow {подготовка к следующему циклу} until hell freezes over Эта процедура известна как интегрирование по методу трапеций, а на рис. 9.23 показано, как она может быть выполнена с помощью многозвенной логической схемы. Как и ранее, здесь использован Рис. 9 22. Интегрирование по методу трапеций
Пример многозвенной логической схемы 469 несинхронизированный таймер, генерирующий импульсы с дли- тельностью, равной времени прогона ипрограммы. В данном при- мере уставка (preset) для таймера задана равной 1 секунде. Таким образом, каждую секунду за время прогона программы выполняют- ся операции во всех четырех звеньях. В звене 1 происходит сложение текущего значения расхода (в N7:10 с аналоговой входной платы) с расходом, измеренным в кон- T4:6.DN fires once per second Flow arrives in N7:10 in litres per minute The flow on the last sample (one second ago) is in N7:li (see rung 4) Trapezoid Last Flow Flcw_Totalise TON Timer Addedto This Flow T4:6 + --ADD + ] [ ON [0] Trapezoid Flow_Totalise TON Timer +Add +- A: N7:10 563 B: N7:ll 563 Dest: N7:12 1126 + + Average FlowOver Last Second T4 :6 +--DIV + 2 ] [ ON [0] - +Div +- A: N7:12 1126 B: 120.0 Dest: F8:5 9.383333 3 Trapezoid Flow Totalise Total Flow TON_ Timer T4:6 __i r________________ +--ADD-- — + [0] ~_J — DN A: B: Dest: + F8; 5 9.383333 F8:6 648.7791 F8: 6 648.7791 Trapezoid Flow_Totalise TONTimer T4:6 -------] [----- DN [0] Flowon LastSample +--M0V----------- - +Move Source: N7:10 563 DeBt: N7:ll 563 Рис. 9.23. Интегрирование расхода по методу трапеций
470 Программируемые контроллеры це последнего прогона программы (это значение хранится в N7:l 1); результат готов для усреднения. В звене 2 суммарный расход делится на 120: деление на 60 необ- ходимо, чтобы преобразовать литры в минуту в литры в секунду, а деление на 2 дает среднее значение расхода. Результат в F8:5 соот- ветствует общему объему в последнюю секунду. В звене 3 объем в последнюю секунду добавляется к общему объему, накопленному ранее (в ячейке F8:6). Последнее звено осуществляет пересылку текущего значения расхода из N7:10 в 147:11, подготавливая тем самым программу к следующему прогону. Оба рассмотренных метода достаточно хороши, но при их реа- лизации необходимо проявлять осторожность. Первое обстоятель- ство связано с частотой измерения значений расхода. Точность тай- меров на рис. 9.21 и 9.23 обычно высокая, но на нее оказывает влияние время прогона программы ПЛК. Если принять за типич- ное время прогона программы значение 20 мс, то при номинальном установленном интервале взятия отсчетов в 1 секунду он будет слу- чайным образом варьироваться между 1.00 и 1.02 с. Этот эффект можно ослабить, если увеличить интервал между последовательны- ми отсчетами. Однако это может привести к тому, что система не будет успевать отслеживать быстрые изменения расхода. В зависи- мости от физических размеров трубопроводов можно считать нор- мальными интервалы между отсчетами расхода от 1 до 30 секунд. В некоторых ПЛК имеются системные биты, управляемые кон- троллером; например, бит S:23/0 в PLC5 переключается из одного устойчивого состояния в другое с периодом 2 секунды. Время про- гона программы не оказывает влияния на эти системные биты, и их использование вместо несинхронизированных таймеров позволяет значительно повысить точность отсчета времени. ПЛК, которые способны работать с подпрограммами, часто поз- воляют запускать программные файлы на фиксированные интервалы времени. В PLC5, например, такие файлы называются STI (Selectable Timed Interrupt). Их использование идеально подходит для суммиро- вания расхода, т. к. скорость переключения обладает высокой точно- стью (воспроизводимость обычно лучше, чем 1 мс), и на них не ока- зывает влияния время прогона программы. В этом случае отпадает необходимость в автономно работающих таймерах и их контактах. Второе обстоятельство связано с разрешением чисел с плаваю- щей точкой. В звене 2 первого примера и звене 3 второго примера мы складываем маленькое число (объем, прошедший за последний интервал времени) с большим числом (общий объем с начала под-
Пример многозвенной логической схемы 471 счета). Число с плавающей точкой обычно обладает разрешением в 7 разрядов, так что числа 87 583.52 и 7.405716 — оба являются дей- ствительно таковыми. Однако при их сложении для результата по- требуется 11 разрядов. Реально это невозможно, поэтому результат будет усечен до значения 87 590.92. Ошибка здесь небольшая, но она будет накапливаться. В конечном счете может возникнуть си- туация, когда сложение вообще станет невозможным; например, 12 345 670 + 6.789 даст результат 12 345 670 и программа подсчета расхода перестанет работать. Предположим, что мы измеряем расход с точностью около 1%. Для представления таких значений нам не потребуется более 4 разрядов. При этом 3 разряда (из семи) остаются для вычисления общего объе- ма, если, конечно, мы не теряем точность за счет отбрасывания более младших разрядов. Теперь допустим, что типичное значение объема, вычисленное на данном интервале, равно N.NNN. До того как будут отброшены младшие разряды, максимальное значение, до которого мы допускаем увеличение общего объема, равно NNNN. NNN. Это можно реализовать с помощью звена, приведенного на рис. 9.24, кото- рое выполняет свои функции один раз за каждый интервал. Trapezoid Flow_Totalise Total TON_Timer Flow T4:6 +--GEQ-----------------------+ [9:0] -rGrtrthan or Equal (A>=B) + ! A: F8:6 | 648.77911 I B: 1000.0; F8 6 — [0] Total Flow +—SUB----------+ -++Sub +• A: F6 6j 648.7791; ; B: 1000.0; ; ; Dest: F8 6 i 648.77911 ; TotaLFIow ; Thousands +-ADD----------+ ++Add + ; A: 1.0! ! B: F8:7; 8; I Dest: F6:7i Рис. 9.24. Сложение большого и малого чисел
472 Программируемые контроллеры Если общий объем (в F8:6) начинает превышать (или равняться) 1000 (для чего требуются 4 разряда), то из F8:6 вычитается 1000 и в F8:7 добавляется единица, соответствующая общему объему, делен- ному на 1000. Обратите внимание, что в этой операции ошибка от- сутствует. В ячейке F8:7 хранится значение в тысячах единиц, а в F8:6 значение изменяется в диапазоне от 0 до 999.999. Например, Объем за dt F8:6 F8:7 Интервал N 7.214 998.327 56 (всего 56 998.327) Интервал W + 1 5.541 57 (всего 57 005.541) Технически преобразование расхода в общий объем производится путем интегрирования. Аналогичные методы могут быть использо- ваны для вычисления расстояния по значению скорости и скорости по значению ускорения. Путем двойного интегрирования можно получить расстояние на основании значений ускорения, что ис- пользуется при запуске ракет. 9.9. Масштабирование Данный пример показывает, как преобразовать входной аналого- вый сигнал в инженерные единицы для использования в програм- ме ПЛК. Предположим, что от датчика температуры в диапазоне от 800 до 1500 °C мы получаем сигнал 4—20 мА и с помощью нагрузоч- ного резистора в 250 Ом подаем его на аналоговую входную плату, обладающую диапазоном 0—10 В. Аналоговая плата позволяет об- разовать 12-разрядное число в диапазоне от 0 до 4095. Схематиче- ски это можно представить в виде рис. 9.25 (а). Аналоговый сигнал, соответствующий температуре, на входе платы ПЛК будет изменяться от 1 до 5 В, что для программы озна- чает число в диапазоне от 410 до 2048. Для облегчения обнаружения неисправностей мы хотели бы, чтобы это число было преобразова- но в инженерные единицы. Для этого мы воспользуемся графиком, представленным на рис. 9.25 (б). Диапазон Es в инженерных единицах составляет (1500 — 800) = 700. Диапазон Is числа, образуемого аналоговой платой, равен (2048 -410)= 1638. Если входной сигнал с платы имеет значение /вх, то в инженер- ных единицах ему будет соответствовать сигнал ^вых = -Emin + (^вх — Anin) * (Es/Is),
Пример многозвенной логической схемы 473 410 Диапазон, 2048 Аналоговый вход б Рис. 9.25. Преобразование аналогового входного сигнала в инженерные единицы: (а) типичная токовая петля 4-20 мА; (б) преобразование в инженерные единицы где /min — минимальный сигнал с аналоговой платы (410), a Emin — минимальный входной сигнал в инженерных единицах (800). Коэффициент Es/Is может быть вычислен при первом прогоне программы (как это было сделано в подпрограмме линеаризации в разд. 9.7), но здесь мы вычислим его независимо от программы и введем в качестве константы 700/1638 = 0.42735. Аналогично, зна- чения /min и £min введем в соответствующие звенья программы в виде констант (410 и 800 соответственно). Программа, выполняющая масштабирование, приведена на рис. 9.26. В звене 0 осуществляется проверка, попадает ли входной сигнал в ожидаемый диапазон. Если нет, то в звене 3 ему по умол-
474 Программируемые контроллеры First check that signal is valid, i.e. in range 410 to 2048 Input_S ignal from_Sensor 410_to_2048 «4_to_20mA +--GEQ---------------------+ O++Grtr Than or Equal (A>«B) + A: N7:60 1234 B: 410 Input_S ignal from_Sensor 410_to__2048 -4_tO_20mA +--LEQ----------------------+ +Less Than or Equal (A<-B) + A: N7:60 1234 B: 2048 Goodinput Signal_Value B3 ------( )------- 12 N7:60 - [1] N7:60 - [1] Top of branch calculates (Iin-Train) where I min is 410 for 4mA Bottom branch multiplies by Espan/lspan (1500-800)/(2048-410) In this particular case the use of an integer for the bottom branch does not cause a significant rounding error Good_Input S ignalValue B3 ►----] [----- 12 [0] S ignal_Minus BaseSignal +—SUB------------- ♦+Sub A: N7:60 1234 B: 410 Dest: N7: 61 824 Signal-Base Time s_S pan +—MUL- ++Mul A: N7:61 824 B: 0.42735 Dest: N7: 62 352 Рис. 9.26. Масштабирование входного сигнала. В этих звеньях сигнал в диапазоне 4-20 мА на нагрузочном резисторе величиной 250 Ом создает напряжение 1-5 В. Это напряжение считывается 12-разрядной аналоговой платой с диапазоном 0-10 В, что соответствует числу в диапазоне от 0 до 4095; чанию присваивается значение 1600. Если проверка дает правиль- ное значение, то в звене 1 вычисляется (/вх — /min) х (£$//$),а в зве~ не 2 для получения результата добавляется Emm- Приведенные четыре звена могут быть использованы для любого линейного преобразования между двумя переменными в соответствии с уравнением общего вида у = Ах + В. Рассмотренный пример отно- сится к преобразованию аналогового входного сигнала. Другим типо- вым применением является получение аналоговых выходных сигна- лов, когда значение 0- 1000 (соответствующее, например, диапазону 0—100%) преобразуется в число от 410 до 4095, чтобы образовать сиг- нал 4—20 мА на аналоговой выходной плате с диапазоном 0—20 мА
Пример многозвенной логической схемы 475 If input signal is good add in base Engineering Units (8OO0C) to give result Good_Input S ignal_Value B3 12 [0] Slgnal_In Engineering Units_oC ♦--ADD------ ♦Add A: Bt Dest: N7-.62 352 800.0 N7:65 1152 If not a good input signal put safe default value into result Good_Input S ignalValue B3 !♦-----]/[----- 12 [0] Signal_ln Engineering Units_oC ♦--MOV------------ ♦Move Source: 1600 Dest: N7:65 1152 Рис. 9.26 (продолжение). Масштабирование входного сигнала. В этих звеньях сигнал в диапазоне 4-20 мА на нагрузочном резисторе величиной 250 Ом создает напряжение 1-5 В. Это напряжение считывается 12-разрядной аналоговой платой с диапазоном 0-10 В, что соответствует числу в диапазоне от 0 до 4095 9.10. Преобразование кода Грея Измерение абсолютного значения положения — часто встречающа- яся задача, и обычно для этого используется оптическое кодирую- щее устройство. Оно состоит из оптической решетки, перемещаю- щейся относительно фотоэлементов. Простой пример такого кодирующего устройства приведен на рис. 9.27. Оно позволяет по- лучать 4-разрядный двоичный код, представляющий 16 различных положений. Подобное двоичное кодирование, однако, имеет потенциаль- ный недостаток. При переходе из положения 7 в положение 8 дво- ичный код на выходе изменяется от 0111 до 1000. Вряд ли состоя- ние всех битов изменится одновременно, поэтому входные платы ПЛК будут воспринимать переходы из логических 1 и 0 в противо- положные состояния с различными временами задержки. Следова- тельно, при этом мы можем получить последовательность перехо- дов 0111 —* 1111 —» 1000 или 0111—* 0000 -» 1000 либо любую другую комбинация четырех битов. Подобные проблемы могут возникнуть при любом изменении положения.
476 Программируемые контроллеры Фотоэлементы Рис. 9.27.4-разрядное кодирующее устройство для измерения абсолютного положения Этот недостаток можно исключить, используя метод кодирова- ния, при котором переход от одного числа к другому сопровождается изменением только одного бита. Такие коды известны под названием коды с одиночным расстоянием. Из них наиболее распространенным является код Грея, для которого битовая комбинация и изменение старшего бита характеризуются следующим образом: Десятичное число Код Грея 0 0 00 000 1 1 01 001 2 11 ОН 3 10 010 4 НО 5 111 6 101 7 100 Четырехразрядный код Грея может быть представлен таблицей со- ответствия: Десятичное число Код Грея О 0000 1 0001 2 ООП
Пример многозвенной логической схемы 477 3 4 5 6 7 8 9 10 11 12 13 14 15 0010 < ОНО < 0111 <* 0101 <* 0100 <* 1100 <* 1101 <* ни <* 1110 < 1010 < 1011 1001 1000 Этот принцип можно распространить на любое количество разря- дов. По поводу данного кода следует отметить два обстоятельства. Во-первых, он симметричен относительно перехода 7/8. Во-вторых, такие коды можно создать для любого четного количества чисел с любой стороны от центра. Десять значений кода Грея помечены символом <, а шесть значений - символом *. Заметим, что каждое из них переходит в другое (например, для десяти значений от 12 до 3) путем изменения только одного бита. Любую последовательность из четного количества чисел можно представить в виде кода Грея. Прежде чем использовать код Грея, каждое его значение необхо- димо преобразовать в обычное двоичное число. Эта операция вы- полняется с помощью вентиля «исключающее ИЛИ», изображен- ного на рис. 9.28 (а), которому соответствует таблица истинности на рис. 9.28 (б). Реализация такого вентиля в виде многозвенной логической схемы приведена на рис. 9.28 (в). Преобразование 4-разрядного кода Грея в двоичный код выпол- няется с помощью схемы, изображенной на рис. 9.29. То же самое можно сделать, используя четыре звена логической схемы, как по- Рис. 9.28. Вентиль «исключающее ИЛИ»: (а) символическое представление; (б) таблица истинности; (в) реализация в виде многозвенной логической схемы
478 Программируемые контроллеры Рис. 9.29. Преобразование кода Грея в двоичный код с помощью вентилей «исключающее ИЛИ» казано на рис. 9.30. Этот принцип может быть распространен на любое количество разрядов. Самый значимый бит кода Грея копи- руется в самый значимый бит двоичного кода. Каждый последую- щий бит двоичного кода Bn определяется исключающим ИЛИ для бита Gn кода Грея и бита Bn+] • Преобразование дает полный диапазон битов; для четырех битов результатом будут числа от 0 до 15 включительно. Если используется ограниченный диапазон, то необходимо вычесть величину смещения. В случае десяти позиций и четырех битов отсчет будет производиться от 3 до 12, после чего произойдет возврат к 3. Чтобы получить десять позиций (чисел) от 0 до 9, из двоичного числа нужно будет вычесть 3. Часто используемое устройство для получения кода Грея имеет 360 позиций (от 0 до 359) на полный оборот и, следовательно, дает результат в угловых градусах. Для этого необходимо иметь 9 разря- дов, что соответствует полному диапазону от 0 до 511. 360 позиций отцентрированы относительно перехода 255/256, и им соответству- ют числа от 76 (которое принимается за 0) до 435 (которое прини- мается за 359). В этом случае код Грея сначала должен быть преоб- разован в двоичный код, как описано выше, а затем из результата необходимо вычесть 76, чтобы получить значения от 0 до 359.
Пример многозвенной логической схемы 479 It ie important to work from MSB to LSB to avoid program flow running in Che opposite direction to the PLC scan. GrayCode Binary Bit-3 Bit_3 I:ООО B3 04.---] [-------------------------------------------------------------( )----- 03 35 GrayCode Binary Bit2 Bit_3 1:000 B3 ----] [------}/[“-*• 02----------35 [01 Gray_Code Binary Bit_2 Bit_3 1:000 B3 *----]/I------1 (—♦ 02 35 [0] Binary Bit_2 B3 — < )---- 34 GrayCode Binary Bitl Bit_2 1:000 B3 2+ +----] [------]/[—+• 01 34 [1] Gray_Code Binary Bit_l Bit_2 I:000 B3 4-—-]/[------] [ — + 01 34 [11 Binary Bit_l B3 .__( )---- 33 GrayCode Binary Bit_0 Bit_l 1:000 B3 34.-4---] [—-----]/[—♦• 00 33 [2] Gray_Code Binary Bit_0 Bit_l I:000 B3 4.---]/[-------] [—4. 00 33 [2] Binary Bit-0 B3 )----- 32 Рис. 9.30. Преобразование кода Грея в двоичный код В общем случае при любом четном количестве позиций N и максимальном количестве значений кода Грея G (которое всегда должно быть кратно двум: 4, 8, 16, 32, 64, 128, 256, 512, 1024 и т. д.) число, которое необходимо вычесть (смещение), определяется формулой: Смещение = (G — N)/2. Для нашего кодирующего устройства, рассчитанного на 360 градусов, Смещение = (512 — 360)/2 — 76.
480 Программируемые контроллеры Прежде чем использовать какое-либо кодирующее устройство (преобразователь в код Грея, в двоичный код или шифратор прира- щений), необходимо иметь в виду несколько важных обстоя- тельств. Подавляющее большинство входных плат ПЛК принима- ют токовый сигнал. Выходные цепи некоторых кодирующих устройств содержат транзисторы п—р—и-типа, которые также вос- принимают токовый сигнал. Если такое кодирующее устройство подключить к стандартной входной плате, то его выходные сигна- лы невозможно будет прочитать. В этом случае можно использо- вать нагрузочные резисторы, по одному на каждый разряд, или входную плату, являющуюся источником тока. В подобных случаях необходимо очень внимательно отнестись к полярности сигнала, принимаемого ПЛК. Некоторые входные пла- ты считают низкое напряжение (т. е. принимаемый токовый сиг- нал) состоянием 1. Они нормально работают с кодирующими уст- ройствами, выходная цепь которых содержит п—р—и-транзистор и которые часто низкий уровень сигнала считают как 1. Но некото- рые входные платы, однако, не обладают этим свойством, и с точ- ки зрения ПЛК они будут давать инверсное значение сигнала. По- этому прежде чем использовать такой сигнал, его еще раз надо инвертировать программными средствами. Это можно сделать, об- рабатывая последовательно бит за битом с помощью нормально замкнутых контактов, связанных с катушками, как показано на рис. 9.31 (а), или, если доступна функция «исключающее ИЛИ», путем однократного использования этой функции, обрабатываю- щей все слово, поступающее от кодирующего устройства. В маске функции «исключающее ИЛИ» для каждого бита входного слова должна быть установлена 1. На рис. 9.31 (б) проиллюстрирован этот случай, когда используется 16-разрядное кодирующее устройство. 9.11. Преобразование двоично-десятичного числа в двоичное Числовые данные в диапазоне 0—9 часто вводятся с помощью га- летных или барабанных переключа гелей. Каждый такой переклю- чатель позволяет получить четыре двоичных разряда. Если они ин- терпретируются как сотни, десятки и единицы, то результатом является число в двоично-десятичном коде. Большинство ПЛК ра- ботают с числами, представленными в дополнительном двоичном коде, поэтому возникает необходимость преобразования двоично- десятичных чисел в двоичные. Некоторые модели ПЛК (в частно- сти, семейства PLC5 и SLC500) располагают для этого специальной
Пример многозвенной логической схемы 481 Input_Bit_O 0-True 1:066 Bit_0 1-True B43 00 14] 0 Input_Bit_l 0-True 1:066 Bit_l 1-True B43 ]/ [ ( ) — 01 [4] 1 2 Input_Bit_2 0-True 1:066 ] / [ 02 [4] B±t_2 l=True B43 ( ) 2 Input_Bit__3 0-True 1:066 Bit_3 l=True B43 34 ]/[ 03 [4] ( - 3 а The data bite appear as numbers on the screen; 3855 is binary 0000 1111 0000 1111, -1 is 1111 1111 1111 1111 and the result -3856 is binary 1111 GOOD 1111 0000 (with each input bit inverted] 16_bit Word 1-True_per_bit +--X0R-------------+ 4+------------------------------------------------------^Bitwise Exclus XOR+-- A: 1:066 3855 В: -1 Dest: B43 : 0 -3856 6 Рис. 9.31. Использование схем с инверсным представлением входных сигналов «истина»': (а) побитовое преобразование сигнала; (б) инвертирование 16-разрядного числа единственным звеном с помощью инструкции «исключающее ИЛИ» функцией (для PLC5 это FRD — FRom Decimal). Для тех ПЛК, ко- торые не имеют такой функции, преобразование может быть вы- полнено следующим образом. Принцип преобразования проиллюстрирован на рис. 9.32. Входной сигнал (в диапазоне 0-999) в виде 12 разрядов снимается со входной платы 6 в гнезде 2, т. е. по адресам 1:26/00,1:26/01 и т. д.
482 Программируемые контроллеры Каждая группа из четырех битов преобразуется в двоичное число в диапазоне от 0 до 9 (в двоичном коде от 0000 до 1001). Число для со- тен (в N17:42) умножается на 100, число для десятков (в N17:41) ум- ножается на 10, и оба результата складываются с числом единиц в N 17:40, давая таким образом конечное значение в виде двоичного кода в ячейке в N17:46. Звенья, с помощью которых выполняются эти операции, показа- ны на рис. 9.33. Всего этих звеньев 12, и они образуют числа по адре- сам N17:40,41 и 42. Для экономии места изображены только 8 из них. Заметим, что можно получить доступ к отдельным битам целого чис- ла: так, в N17:40/0 находится самый младший бит 16-разрядного це- лого числа. Ячейка памяти N 17:45 используется в качестве промежу- точной для хранения частного результата (N17:40 + N17:43). С помощью инструкции СРТ арифметические операции, выполняемые четырьмя звеньями, могут быть реализованы всего одним звеном, но при этом остается потребность в звеньях для 12 битов целого числа. Если ПЛК поддерживает подпрограммы с передачей парамет- ров, то такую подпрограмму для преобразования двоично-десятич- ного числа в двоичное надо написать всего один раз, а обращаться к ней тогда, когда это необходимо. \ \ \ \ \ Десятичное число с поразряд- ным двоич- ным кодиро- ванием Рис. 9.32. Принцип преобразования двоично-десятичного числа в двоичное
Пример многозвенной логической схемы 483 The BCD Number comes from switches via Input Card Rack 2 Slot 6 1:26/00 to 1:26/03 are from units switch Units digit is formed in N17:40 BCD_Bit_0 Units_Switch 1:026 0+-----] (----- 00 Binary_Units Bit_0 N17:40 -----( )------ 0 BCD_Bit_l UnitsSwitch 1:026 ►----] [----- 01 В inary_Un.it в Bit_l N17:40 ------( )------ 1 BCD_Bit_2 Uni t s_Bwi tch 1:026 2+-----] [----- 02 Binary_Units Bit_2 N17:40 -----( )------ 2 BCDBit_3 BinaryUnits Units_Switch Bit_3 1:026 N17:40 3«.----] [--------------------------------------------------------( )----- 03 3 1:26/04 to 1:26/07 are from Tens switch Tens digit is formed in N17:41 BCD_Bit4 BinaryTens TensS witch Bit__0 1:026 N17:41 44.----] (------------------------------------------------------------( ) — 04 0 BCD_Bit_4 TensSwitch 1:026 h----] [ —. 04 Binary_Tens Bit_l N17:41 BCD_Bit_6 Tens_Switch 1:026 >----] [—. 06 Binary_Tens Bit_2 N17:41 2 BCD_Bit_7 Tens_Switch 1:026 -----] 07 BinaryTens Bit 3 N17:41 3 Рис. 9.33. Преобразование двоично-десятичного числа в двоичное,
484 Программируемые контроллеры I The four rungs generating the hundreds digit in N17:44 have been omitted to save space 8+ BinaryTens Digit_*_10 +—MUL------------- -+Mul A: N17:41 7 B: 10 Dest: N17:43 70 В in_Hundreds Digit_*_10 4--MUL- ~ -— — — — -- +Mul A: N17:42 8 B-. 100 Dest: N17:44 800 Intermediat e Addit ion_Store +--ADD------------i +Add A: N17:40 5 B: N17-.43 70 Dest: N17:45 75 Binary Result +--ADD------------ +Add A; N17:44 800 B: N17:45 75 Dest: K17:46 875 Рис. 9.33 (продолжение). Преобразование двоично-десятичного числа в двоичное 9.12. Преобразование двоичного числа в двоично-десятичное Данные часто отображаются на 7-сегментных индикаторах, где на каждую цифру отводится четыре двоичных разряда. Для этого в программе ПЛК должно быть предусмотрено преобразование чис- ла из двоичного кода в двоично-десятичный. В некоторых ПЛК (например, в семействе PLC5) для этого имеется стандартная функция TOD, что означает ТО Decimal. Ниже приводится про- грамма, позволяющая выполнить требуемое преобразование в слу- чае отсутствия функции TOD.
Пример многозвенной логической схемы 485 Принцип преобразования, в сущности, достаточно прост. Число многократно делится на 10 без округления, и каждый раз фиксирует- ся остаток. Цифры, последовательно фиксируемые в остатке, и яв- ляются разрядами двоично-десятичного числа. Например: Двоичное число Деление на 10 Деление на 10 Деление на 10 459 45, остаток 9 4, остаток 5 0, остаток 4 В разрядах двоично-десятичного числа 4 соответствует сотням, 5 — десяткам, и 9 — единицам. Способ деления целых чисел в ПЛК может вызвать определен- ные проблемы. В некоторых случаях происходит округление в меньшую сторону, например 459/10 дает результат 45. Такое преоб- разование выполняется очень просто. В некоторых ПЛК (одним из которых является семейство Rockwell) округление производится до ближайшего числа. Так, итогом деления 459/10 будет 46, а при делении 454/10 в результате будет получено 45. В зависимости от конкретной прикладной задачи, оба метода имеют свои преиму- щества, но округление до ближайшего целого числа делает преоб- разование двоичного числа в двоично-десятичное более сложным. Четыре звена на рис. 9.34 извлекают первый разряд (единицы) двоичного числа и преобразуют его в цифру, представленную в двоич- но-десятичном коде. Так происходит в ПЛК, где округление произво- дится до ближайшего целого. В звене 0 происходит деление входного сигнала (из N7:20) на 10, и результат помещается в N7:30. Затем это число умножается на 10 и полученное значение помещается в N7:40. Если округление производится в большую сторону, то число в N7:40 будет больше, чем исходное значение в N7:20. В звене 2 проверяется, действительно ли это так, и если да, то из числа в N7:30 вычитается единица. Теперь в этой ячейке содержится число из N7.20, деленное на 10 и округленное в меньшую сторону. Оно еще раз умножается на 10, и результат помещается в N7:41. Заметим, что числа в N7:41 и N7:40 не совпадают. Вычитание N7:41 из N7:20 дает в результате в ячейке N7:35 первый разряд двоично-десятичного числа, которое бит за битом может быть перенесено на индикатор в гнезде 5 стойки 2. Распечатка, представленная на рис. 9.34, сделана во время работы ПЛК и, на первый взгляд, свидетельствует об очевидной ошибке в звене 1. В тот момент, когда только что выполнена операция в звене 1, ячейка N7:30 будет содержать 46 (из-за округления), и, следова- тельно, в N7:40 окажется 460. Затем звено 2 произведет вычитание, и
486 Программируемые контроллеры The binary number arrives in N7:20. The first five rungs (0-4) give the first BCD digit in N7:35 and N7:20/10 rounded down ready for finding the next BCD digit lnput_Signal Divided_by_10 +--DIV----------------- Of--------------------------------------------j. DiV ! A: N7:20 ! 459 I ! I B: 10 ; ! ; Dest: N7:30 ; ; 45; ; 4.------------------J. 1 2 Mul_by_10 Again_Should be_<=_N7 20 +-MUL + ; A: N7:30 ! 45 I ; В: 10 I I Dest: N7:40 ! 460 I Mul_by_10 Again_Should lnput_Signal be_<=_N7:20 Divided_by_10 +--GRT г +-SUB + •(—Greater Than (A>B)f + Sub +— ; . ! A: N7.30 ; ; A: N7:4°; : 45 : ! 460! : B: 1 • : B: N7:20> ; ; : Dest: N7:30 ! 4591 ! ar ! -1 4 ; 45 • N7:40-[1] N7:20 —[4] Muttiply_by_10 Again: _ Should be_<=_N7:20 3 .f. Mui -f— ; A: N7:30 ! 45 I I B: 10 ; Dest: N7 41 ; | 450 i Рис. 9.34. Преобразование двоичного числа в двоично-десятичное;
Пример многозвенной логической схемы 487 117:35 contains the first BCD Digit and N7:3O the result ready for the next division by ten. BCD_Uni ts_Digit (Remainder! rocn Divide_by_Ten) ♦ --SUB— -------< ------------------------------------------------------+Sub 1 A: H7:2O 459 B: K7:41 450 Dest: N7135 9 First (ttaits) BCD digit is held in N7:35. The BCD display is driven from outputs in rack 2 slot 5 These four rungs transfer the first digit. Units_BCD Bit_O H7-.35 5*----1 [— 0 [4] BCD_Display Units Bitо 0:025 -----( 00 ttaitsBCD Bit_l N7:35 «♦----J [—- I [4] UnitsJBCD Bit_2 N7:35 7+----] (— 2 E4] Units_BCD Bit_3 N7:35 8+----J [ — 3 [4] BCDDisplay UnitS_Bit_l 0:025 -----( )------- 01 BCD_Display Units_Bit2 0:025 — ( - 02 BCDDisplay Units Bit_3 0:025 ----( . 03 Рис. 9.34 (продолжение). Преобразование двоичного числа в двоично-десятичное в N7:30 останется 45. Так как в результате работы только двух звеньев ячейка N7:30 содержит 46, а во время работы остальной части про- граммы (которое гораздо больше) — 45, а терминал для программиро- вания с регулярными интервалами времени делает мгновенные «снимки», то существует наибольшая вероятность увидеть 45, а не 46. Для глаза значение в N7:30 будет мерцать между 45 и 46, большую часть времени оставаясь равным 45. Будьте готовы к подобным стран- ностям, они могут сбить вас с толку, когда впервые вам встретятся. 9.13. Гидравлическая система В качестве заключительного примера рассмотрим реальную систе- му управления двумя гидравлическими насосами. Технические тре-
488 Программируемые контроллеры бования (написанные, прямо скажем, не слишком хорошо) выгля- дят приблизительно следующим образом: «Промышленная установка имеет два гидравлических насоса. Для нормальной работы необходим только один из них. Оператор должен иметь возможность выбрать, какому насосу предстоит работать. Если действующий насос по какой-либо причине выходит из строя, должен включиться резервный насос. Кроме этого, обслуживающий персонал должен иметь возможность проверить, как функционирует насос, не прерывая нормальной работы». Полная программа, состоящая из 22 звеньев, приведена на рис. 9.35. Напомним, что программа ПЛК должна: Правильно выполнять свои функции Быть понятной Допускать простое внесение изменений Заметим, что вся документация в программе сопровождается тегами. Каждый адрес снабжен тегом, и большинство звеньев имеет необхо- димые комментарии. Хорошая документация облегчает понимание программы. Отметим также наличие расположенных под контакта- ми тегов перекрестных ссылок [N]. Они показывают, откуда прихо- дит сигнал, управляющий состоянием контакта. Например, в звене 12 контакт «Auto_Run Pumpl Command» (B3/23) появляется в зве- не 8, что дает возможность быстро проследить пути распространения сигналов при возникновении сбоев. Все современные средства про- граммирования обладают аналогичными возможностями. В звеньях 0 и 1 производится проверка, может ли быть вклю- чен насос. Здесь предусмотрены шесть реальных входов для каж- дого насоса (от MCC On — включен центр управления двигате- лем, до Filter Healthy — фильтр исправен) и два выхода, общие для обоих насосов (нижний уровень масла в емкости и возврат масла к фильтру). Для каждого насоса существуют два аварийных сиг- нала (насос не включается и отсутствует давление). Эти два звена играют очень важную роль и преднамеренно помещены в самом начале программы с тем, чтобы, например, где-то в 3 часа ночи специалисту было достаточно обратить на них внимание и сразу определить, что происходит. Звенья 2 и 3 формируют сигналы, состояние которых говорит о готовности насосов к работе. В действительности используется только один из этих сигналов (ВЗ/З), но ВЗ/4 добавлен здесь в рас-
Пример многозвенной логической схемы 489 PLC-5 LADDER LOGISTICS Report header (c) ICOM Inc. 19B7-1993 PLC-5 Ladder Listing Duty/Standby Hydraulic Punp Pile #2 Proj:HYDPOMP Page:001 09:33 07/20/02 This PLC program controls two hydraulic pumps. The pumps can be run in Auto mode with Duty/Standby auto changeover, or locally from alongside the pumps for maintenance work. The first two rungs in the program check if the two pumps are available. For normal diagnostic work only these two rungs need to be examined. Pump_l Punp_l Punpl Pump_l Pump 1 Puirp_l E_Stop Isolator Shut_Off Filter MCC_Is_On Oveload_OK Healthy Healthy ValveOpen Healthy 1:023 1:023 1:035 1:035 1:035 1:035 > 0+----] [--------] [--------] [-----] [---------] [--------] [------> 01 02 10 11 12 13 > Punpml Pump_l Oil_Level Return Failedto Pressure Healthy Filter Punpl Start Fault In_Tank Healthy Available < ВЗ B3 1:035 1:035 B3 < —]/[-------]/[-------] [-------] I------( )----- < 31 41 05 06 1 [14] [18] Punp2 Punp_2 Punp_2 Pump2 Pump_2 Punp_2 Isolator E_Stop Shut_Off Filter MCC__Is_On 0veload_0K Healthy Healthy Valve_Open Healthy 1:023 1:023 1:035 1:035 1:035 1:035 > 1+ —— ] [--------] [---------1 [--------1 [------1 [---------] [-------> 03 04 14 15 16 17 > Punp_2 Pump_2 OilLevel Return Failed_to Pressure Healthy Filter Punp 2 Start Fault In Tank Healthy Available < ВЗ B3 *"1:035 1:035 B3 <----l/[--------]/(-------] (--------1 (-------( )----- < 32 42 05 06 2 [15] [19] It is usual to create flags saying if both/one/no pumps are available These can be used for display screens or by higher level conputer. AtLeast Pump_l OnePunp Available Available B3 B3 24.-4.--] [--4-----------------------------------------------------( )----- 1 3 [0] Punp2 Available B3 4.---] 2 [1] PLC-5 LADDER LOGISTICS Report header (c) ICOM Inc. 1987-1993 PLC-5 Ladder Listing Duty/Standby Hydraulic Punp File #2 Proj:HYDPDMP Page:001 09:33 07/20/02 Рис. 9.35. Полная программа управления двумя гидравлическими насосами (работающий/резервный). Обратите внимание на наличие комментариев, важных для диагностики неисправностей. Программа построена таким образом, что для обнаружения типовых неисправностей достаточно только двух первых звеньев;
490 Программируемые контроллеры PLC-5 LADDKR LOGISTICS Report header (c) ICOH Inc. 1987-1993 PLC-5 Ladder Listing Duty/Standby Hydraulic Pucp File #2 Proj:HYDPWfP Page:002 09:33 07/20/02 Purcp_1 Puwp_2 Available Available B3 B3 3+----J/I------]/[— 1 2 10) [1] Mo_Pua₽s Available Latches - (L) - fc - (0) - are used here because a larch maintains its stere when the PLC Lb stopped or turned off. The Duty Selection isn't changed by the PLC power failures. Punp_l DutySelect Pun<)_l_ii PushButton Duty_Purop 1:014 B3 <+----] [----------------------------------------------------------(L)----- 11 11 Punp_2 Dutyselect PushButton 1 = 014 S+----] — 12 Punp_l_ls DutyPunp B3 -----(0)----- 11 Punj>_l_is Duty_Purcp Purop_2 ie DutyJPurop 03 — ( )--------- 12 PLC-5 LADDER LOGISTICS Report header (c) IC0M Inc. 19B7-1993 PLC-5 Ladder Listing Duty/Standby Hydraulic ₽usg> File #2 ProJ:HYDPUM₽ Page:002 09:33 07/20/02 Рис. 9.35 (продолжение). Полная программа управления двумя гидравлическими насосами (работающий/резервный); чете на возможные усовершенствования в будущем (например, для выдачи аварийного сигнала в системе SCADA). В звеньях 4, 5 и 6 производится выбор насоса, который должен быть включен. Здесь используются защелки —(L)— и —(U)—, так что выбор нужного насоса сопровождается временным отключением питания. Заметим, что логика гарантирует включение и работу либо насоса I, либо насоса 2 (только одного из них). Она не допускает си- туации, когда не может быть выбран для работы ни один из насосов. О таких «мелочах» часто забывают!
Пример многозвенной логической схемы 491 PLC-5 LADDER LOGISTICS Report header (c) ICOM Inc. 1987-1993 PLC-5 Ladder Listing Duty/Standby Hydraulic Pump File *2 ProjiHYDPUMP Page:003 09:33 07/20/02 Duty Run tries to start the duty pw If it fails, (i.e. the duty pump is or becomes, not available), an attempt is made to start the standby pump. Note that Duty Run is not permitted unless at least one pump is available. Duty_Run DutyJRun AtLeast Start Stop One_Pump PushButton PushButton Available 1:014 1:014 B3 7+-+----] [-----+-----] (---------] [ —. 13 14 3 (21 Duty_Run Command B3 +—1 I--------* 20 [7] DutyJRun Command B3 •—( )------ 20 Duty_Run Pump_l_is Punpl Command Duty_Pump Available B3 B3 B3 8+---] [-----+----] [--------] ♦ 20 11 1 (71 [5] [0] Pump_2_is Pump_2 Duty_Pump Available B3 B3 +—] [----------]/(—+ 12 2 (6] [1] AutOjRun Pump_l Command B3 — ( )------ 23 Duty_Run Pump2is Punp_2 Command Duty_Pump Available B3 B3 B3 9+—] [-------+— [-------] [----+• 20 12 2 [7] [6] [1] Pump_l_is Pumpl Duty_Pump Available B3 B3 +—] [----------]/[-—+ 11 1 [5] [0] AutoRun Punp_2 Command B3 — ( )------ 24 PLC-5 LADDER LOGISTICS Report header (c) ICOM Inc. 1987-1993 PLC-5 Ladder Listing Duty/Standby Hydraulic Pump File #2 Proj:HYDPUMP Page:003 09:33 07/20/02 Рис. 9.35 (продолжение). Полная программа управления двумя гидравлическими насосами (работающий/резервный);
492 Программируемые контроллеры PLC-5 LADD» LOGISTICS Report beader (c) ICC* Inc. 19«7-1»»3 PLC-5 Ladder Lietlng Duty/8t»ndby Hydraulic Punp File f2 ProjiHYDPOCP Page:004 09:33 07/20/02 The Ршцре can be started ox «topped locally for —intesance or diagnoetlcs. This la independent of the Duty Run Cc—rid. Puap__l Localstart PuahPuttea 1:014 -] [------ 00 »uep~i Local Run Coeecind B3 ♦-----1 [------♦ 21 [10] РигЭ_1 Local_Stop Puap_l PuahButtoc Available 1:014 B3 ----] [----------] 01 1 [0] PiepJ LocalRun CoMMand B3 ....( >— 21 Pvap_2 Pwqp_2 Рицр_2 Localstart Local_Btop Рияр_2 LocalRun PuehButtcti PuabButton Available Co—end 1:014 1:014 ВЗ ВЗ — ] [-------+----] [---------] [.............................( 02 03 2 22 (И Риер 2 Local Run Co—and ВЗ —J 22 [11] PLC-5 LADDER LOGISTICS Report beader <c> ICC* IDC. 1M7-1993 PLC-5 Ladder Lietlng Duty/Standby Hydraulic Римр File #2 Proj:HYDP»P Pago:004 09:33 07/20/02 Рис. 9.35 (продолжение). Полная программа управления двумя гидравлическими насосами (работающий/резервный), Звено 7 вырабатывает команду «Включить насос» (Duty Run). В связи с этим надо отметить два момента. Для кнопки «Стоп» реко- мендуется использовать нормально замкнутый контакт (для надеж- ности), поэтому в программе он фигурирует как нормально разомк- нутый (—] [—) контакт. Кроме того, мы должны иметь доступ по крайней мере к одному из насосов (ВЗ/З из звена 2).
Пример многозвенной логической схемы 493 FLC-5 ЬЮОВК LOGISTICS Report header (с> ICCH Inc. 1RB7-1M3 PLC-5 Ladder Listing Duty/Standby Hydraulic Pump File «2 Proj:HTOPUMP Page005 03:33 07/20/02 Auto (duty) Run and Manual Run bring in th® рилу contactor in the MCC. After a time sat in the TON timers, the auxiliary contact is checked to see if the contactor has gone in. A start fault le signalled if no contect is nee Note that the things Which normally stop a contactor (В-Stop, Overload etc) are caught in the first two rungs, make the pus^> not available and stop this fault from occurlng. Auro_Run [10] Puspl Contactor 0:023 ( )--------------------♦- 01 Pus₽_l StartFault Timer , ♦--TON-----———♦ ♦♦Timer On Delay +(BN)-♦ Timer: T4«1| Base (SBC): 0.01*-(DN) Preset: tool Ассша: o| [11] Auto_ftun Ришр_2 Pusp_2 contactor 0:023 ♦---( )------------------♦ 02 Pusp2 StartFault Timer «---TON----------+ ♦♦Timer On Delay +-{B»}-+ Timer: T4:2| Base (SBC): 0.01+-(EM) Preset: 100I Ассии: o| PLC-5 LADDHR LOGISTICS Report header .(c) ICCH Inc. 19B7-1993 PLC-5 Ladder Listing Duty/Standby Hydraulic Pump File «2 ProjiHYDPOCP Page;005 00:33 07/20/02 Рис. 9.35 (продолжение). Полная программа управления двумя гидравлическими насосами (работающий/резервный); Звенья 8 и 9 вырабатывают сигналы для автоматического запус- ка каждого насоса. Обратите внимание на наличие параллельных ветвей в каждом из звеньев. Если какой-то насос доступен для за- пуска, то выдается запрос на его включение. В случае, когда требу- ется автоматический запуск, а рабочий насос недоступен, будет включен резервный насос.
494 Программируемые контроллеры PLC-5 LADDER LOGISTICS Report header (c) ICOM Inc. 1987-1993 PLC-5 Ladder Listing Duty/Standby Hydraulic Pump File #2 Proj:HYDPUMP Page:006 09:33 07/20/02 Failed to Start Flags (see earlier comments on timers). Note these make the pump not available in the first two rungs нишр 1 Pump 1 Alarm StartFault Timer Т4:1 Contactor AuxContact 1:024 Accept PushButton 1:015 14ч k-Ч —] [— DN [12] Pump 1 Failedto Start B3 ]/[ 01 1/(— 00 +—] [— 31 [14] Pump 1 Failed to Start B3 ----( )------ 31 Pump_2 Pump_2 Alarm StartFault Contactor Accept Timer AuxContact PushButton T4:2 1:024 1:015 15+-+----] [---------]/[------+-----]/[--- DN 02 (13] Pump_ 2 Failedto Start B3 +----j [------------ 32 [15] 00 Pump_2 Failedto Start B3 ----( )----- 32 The next block of program checks that the pumps are delivering pressure. The Timers T11/T12 allow time for the system to reach working pressure. Pump_l Contactor AuxContact 1:024 16+— — ] 01 Pump 1 Pressure FaultTimer +--TON-----------+ ♦Timer On Delay +-(EN)- Timer: T4:ll| Base (SEC): 1.0+-(DN) Preset: 5( Accum: 0| PLC-5 LADDER LOGISTICS Report header (c) ICOM Inc. 1987-1993 PLC-5 Ladder Listing Duty/Standby Hydraulic Pump File #2 Proj:HYDPUMP Page:006 09:33 07/20/02 Рис. 9.35 (продолжение). Полная программа управления двумя гидравлическими насосами (работающий/резервный);
Пример многозвенной логической схемы 495 РЬС-5 IADDKR LOGISTICS Report header (с) ICON Inc. 1907-1393 PLC-5 Ladder Listing Duty/Standby Hydraulic Pump Pile 82 Proj:HYDPOMP Page:007 09:33 07/20/02 Purap_2 Pump_2 Contactor Pressure AuxContact FaultTimer 1:024 +--T0N-----------+ 17+----) [-----------------—----—-------------------+Timer On Delay ♦-(EN)- 02 Timer: T4:12| Base (SEC): 1.0+-(DN) Preset: 5I Accun: o| If we haven't achieved pressure when the timers finish, we declare a Pressure Fault and make the pump not available. Purap_l Accumultor Pressure Pressure PaultTimer Switch T4:11 1:035 18+-+----J [----------j/i— DN 07 [16) Purap_l Pressure Fault B3 +---) [----------------- 41 [18) Alarm Accept PushButton 1:015 -----]/( - 00 Pump^l Pressure Fault B3 — ( ) — 41 Purap_2 Accumul t or Pressure Pressure FaultTimer Switch T4:12 1:035 19+-+----] [----------]/[— DN 07 [17] Purap_2 Pressure Fault B3 +---] t----------------- 42 Alarm Accept PushButton 1:015 ----)/[— 00 Pump_2 Pressure Fault B3 If both pumps are unable to obtain pressure there is probably some form of hydraulic fault. Pump_l Pump_2 Pressure Pressure Fault Fault B3 B3 20+---J [--------) [-- 41 42 [18] [19] Probable Hydraulic Fault B3 PLC-5 LADDER LOGISTICS Report header (c) ICCH Inc. 1987-1993 PLC-5 Ladder Listing Duty/Standby Hydraulic Pump File *2 Proj:HYDPUMP Page:007 09:33 07/20/02 Рис. 9.35 (продолжение). Полная программа управления двумя гидравлическими насосами (работающий/резервный);
496 Программируемые контроллеры PLC-5 LADDER LOGISTICS Report he/’^f <c) 1C0M И». 19B7-1993 Miscellaneous Report >for. »ti°n “d Format KeF Duty/Standb? Hydraulic Pump Mi sc Info Report Page:O^e 09:33 07/20/02 ________________________________________------------------—----------------- PLC-5 Program Information Program Name............: C: \PLC5\PROGS\I?Y?PFM₽. . Processor Type..........: PLC-5/25 Serie^:B R«vlSxon:A 35 Data Table Files use: 152 Words 3 Program Files use...: 145 Words Total number of rungs.___: 21 PLC-5 Memory Free........: 13445 Words PLC-5 Memory Size........: 13824 Words Time done printing Report: 09:33:46 Company Name............: PLC Book Revis ^on Compressed Cross Reference Format Key: * - Xref Address used in rung ft . .. /# - Xref Address used in rung ft as a contact wft - Xref Address used in rung ft as a wo^,, wf# - Xref Address used in rung ft as a wo<d in » 9rou₽ °£ w°rdB u8ad in a £ile such as being used in the 'FILE A:' Pa5?”®te5 m a File-To-File Move instruct {b} - All following xref information is f^r bit/subelement 'b' in the Xref Address [f] - All following xref information is f^r Pro9ram file ft Examples: 1:011/00 - 2,3,4 /7,/8 W25 1:011/00 used as Used as Used in <---Normal Rung ft's usage as OTE, OTL,OTU,XIC <---Slashes indicat^ uaa9G as XIO c____Indicates bit a^dress used as a word in this rung, sue! MOV,TON,etc ' ’ • an an XIC.OTB,OTL,or OTU in run9B„2,i and 4‘ a,. XIO (-I/I-) in rungs n , 8 rung 25 in a word instru<5tlon (such aB a M0V) 1:010 - 5,10,15,f30 indicates addre^? “8ed aB.a “°rd- Buch aB ln a TON.MOV.et. {31,10,15 <-----Indicates a spe^1£lc bit in the cro8B «=£«enced word is used in an OTB,<?TL,OTU,XIC (or XIO if >/' precedes rung ft {5},23,/55 Reference for a<’dreBB 1:010 "ould ** read aB £oJlow»= 1:010 used as a word address in rungs 5.1d'15 and 30- ^9 30 “a® a £11а refere, Bit 1:010/03 used in rungs 10 and 15. .. Bit 1:010/05 used in rungs 23 and 55, and 14X09 55 wae 411 XI° l/l PLC-5 LADDER LOGISTICS Report he^def ^C) Inc- 1987-1993 Miscellaneous Report Infor<0atl°n ®°d Key Duty/StandbV JyfcauUc Pump Misc Info Report Page:®08 09:33 07/20/02 Рис. 9.35 (продолжение). По^ная программа управления двумя гидравлическими насос#ми (работающий/резервный)
Пример многозвенной логической схемы 497 Звенья 10 и 11 предназначены для ручного управления включе- нием насосов. Здесь нет деления насосов на рабочий и резервный и не предусмотрено переключение между ними. В звеньях 12 и 13 объединяются команды на автоматическое и ручное включение насосов. Заметим, что эти команды находятся в разных ветвях и между ними нет взаимодействия. В программе для ручного или автоматического включения могут быть произведены изменения без какого-либо побочного взаимного влияния. Мно- гим, видимо, захочется реализовать функции, выполняемые звень- ями с 7 по 13 включительно, с помощью всего двух звеньев, что вполне осуществимо, но это делает программу не столь простой для понимания и внесения в нее изменений. Два таймера (Т4:1 и Т4:2) являются составной частью первого этапа проверки системы на наличие неисправности. Контакторы двух насосов имеют вспомогательные контакты, которые должны замкнуться вскоре после возбуждения контактора. Два таймера бу- дут обеспечивать установку бита готовности (DN) спустя одну се- кунду после возбуждения катушки. Этого времени более чем доста- точно для срабатывания контактов. В звеньях 14 и 15 производится проверка, сработал ли вспомога- тельный контакт пускового устройства. Если такой контакт не сра- ботал при соответствующем времени выдержки таймера, то про- изойдет установка битов неисправности B3/31 или B3/32 и срабатывание защелки. Это в свою очередь исключит доступ к со- ответствующему насосу в звене 0 или 1 и приведет к переключению на резервный насос в звене 8 или 9. Биты неисправности сбрасыва- ются с помощью кнопки Alarm Accept. Два насоса питают одну общую линию, гидравлическое давление в которой проверяется переключателем с адресом 1:35/07. Он должен сработать в течение 2 секунд после команды на включение насоса, и ес- ли давление в норме, то и далее оставаться в таком состоянии. Тайме- ры Т4:11 и Т4:12 в звеньях 16и 17 служат для проверки состояния пере- ключателя в течение 5 секунд после включения насоса и передачи этой информации в звенья 18 и 19. Если, например, неисправно соединение электродвигателя с насосом, то рабочее давление не будет достигнуто, произойдет установка бита отсутствия давления, а в итоге в звене 0 или 1 к насосу не будет доступа и он будет заменен на резервный. Если оба насоса не создают нужного давления, то, по-видимому, существует серьезная неисправность в виде утечки в гидравличе- ской линии. Это обнаруживается в звене 20. Отказ гидравлики де- лает недоступным оба насоса в звеньях 0 и 1.
Приложение. Системы счисления Мы настолько привыкли к десятичной системе счисления, что с трудом можем представить себе любой другой способ вычислений. Повседневные арифметические действия, которые мы выполняем, основаны на кратности десяти; например, число 4057 означает: = 4 х 10 х 10 х 10 = 4000 = 0х 10 х 10 = 000 50 7 4057 4 тысячи плюс 0 сотен плюс 5 десятков = 5 х 10 плюс 7 единиц = 7 Итого = Каждая позиция в десятичном числе представляет собой степень деся- ти. Наши повседневные вычисления мы выполняем на основании де- сяти, потому что у нас на руках десять пальцев, но вычисления могут производиться и при любом другом основании. Особый интерес пред- ставляют числа с основанием 8 (называемые восьмеричными), с осно- ванием 16 (шестнадцатеричные) и с основанием 2 (двоичные). Ниже мы будем использовать суффикс «о» для восьмеричных чисел, суффикс «Ь» для шестнадцатеричных чисел и «d» для десятичных чисел (иногда для них же во избежание путаницы мы будем пользоваться словесным определением). Например, 124о есть восьмеричное число, 306h — ше- стнадцатеричное, a 255d или двенадцать — десятичные числа. В восьмеричной системе используются цифры 0—7, так что чис- ла образуются в следующем порядке: 0, 1,2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14 и т. д. Восьмеричное число 14о состоит из одной восьмерки и четырех единиц, т. е. 14о = 12d. Аналогично, 317о означает 3x8x8= 192d плюс 1x8 = 8d плюс 7 = 7d Итого = 207d В шестнадцатеричной системе каждая цифра числа равна 16 в соот- ветствующей степени. Поэтому для представления десятичных чи- сел от 10 до 15 необходимо некоторым способом записывать их с помощью одного символа. Для этого используются прописные бу- квы от Адо F, а числа образуются в следующем порядке: 0, 1,2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, Е, F, 10, 11, 12, 13 и т. д. Шестнадцатеричное число 12h представляет собой 1 х 16 плюс 2 единицы, что равно де- сятичному числу 18d. Аналогично C52h означает
Приложение. Системы счисления 499 12 х 16 х 16 = 3072d (Ch = 12d) плюс 5x16 = 80d плюс 2 = 2d Итого = 3154d Чуть позже мы вернемся к восьмеричной и шестнадцатеричной си- стемам. В двоичной системе с основанием 2 для представления чисел необходимы только два символа, 0 и 1. Каждая позиция в двоичном числе представляет собой 2 в соответствующей степени и называет- ся битом (от binary digit). В двоичной системе числа образуются в следующем порядке: 0, 1, 10, 11, 100, 101, 110, 111 и т. д. Длина дво- ичного числа быстро увеличивается. Число в двоичной системе оп- ределяется точно так же, как мы показали выше для десятичных, восьмеричных и шестнадцатеричных чисел. Например, двоичное число 101101 означает 1 х 2 х 2 х 2 х 2 х 2 = 32d плюс 0х2х2х2х2 =0 плюс 1 х 2 х 2 х 2 =8d плюс 1x2x2 = 4d плюс 0x2 = 0 плюс 1 = 1 Итого = 45d Аналогично 1101011 (с учетом того, что 2x2 = 4d, 2x2x2 = 8d и т. д.) дает: 1 х 64d = 64d плюс 1 х 32d = 32d плюс 0 х 16d = 0 плюс 1 х 8d = 8d плюс 0 x 4d = 4d плюс lx 2d = 2d плюс 1 1 Итого = 107d Преобразование десятичного числа в двоичное производится путем последовательного деления на 2 и записи остатка. Чтение ос- татка сверху (самый младший бит. least significant bit — LSB) вниз (самый старший бит, most significant bit — MSB) дает двоичный эк- вивалент. Например, для 23d имеем:
500 Программируемые контроллеры 23 11, остаток 1 (LSB) 5, остаток 1 2, остаток 1 1, остаток 0 0, остаток 1 (MSB) Таким образом, десятичному числу 23 соответствует двоичное 10111. Использование двоичных чисел в компьютерах и ПЛК обуслов- лено легкостью обработки простыми схемами с двумя состояния- ми, 0 и 1. Обычно операции производятся над восемью битами (на- зываемыми байтом) и шестнадцатью битами (называемыми словом). С помощью одного байта можно представить число от 0 до 255, а с помощью слова — число от 0 до 65535. Восьмеричная и шестнадцатеричная системы дают простой спо- соб представления двоичных чисел. Чтобы преобразовать некото- рое двоичное число в восьмеричное, двоичный код разбивается на группы из трех битов (начиная с LSB), ниже которых сразу записы- вается восьмеричное представление. Например, для двоичного числа 11010110 имеем: группы из трех битов 11 восьмеричное число 3 010 НО (LSB) 2 6, что в восьмеричной системе соответствует 326о. Преобразование двоичного числа в шестнадцатеричное выпол- няется аналогично, только группы образуются из четырех битов. Если взять то же двоичное число 11010110, то мы получим: группы из четырех битов 1101 ОНО шестнадцатеричное число D 6, что соответствует D6h. Восьмеричное 326о и шестнадцатеричное D6h являются пред- ставлениями одного и того же двоичного числа 11010110. Внутри ПЛК (и всех компьютеров) действия выполняются над двоичными числами, но для человека это оказывается трудным и непривычным. Поэтому между привычной для нас десятичной си- стемой и внутренним машинным кодом используется промежуточ- ное представление чисел в восьмеричной или шестнадцатеричной системе. Например, в ПЛК семейства Siemens используются вось-
Приложение. Системы счисления 501 миразрядные байты, а в ПЛК Allen Bradley адреса входов и выходов представляются в восьмеричной системе. Один разряд десятичного числа может быть цифрой, лежашей в диапазоне от 0 до 9, поэтому для ее представления необходимы четыре двоичных разряда. Устройства индикации цифр в деся- тичной системе и клавиатуры часто не воспринимают битовые комбинации от 1010 (10d) до 1111 (15d), дающие двоично-коди- рованное десятичное число (BCD). В двоично-десятичной систе- ме каждая декада независимо представляется в виде двоичного кода. Например: Десятичное число 9 4 0 7 6 BCD 1001 0100 0000 0111 ОНО Двоично-десятичная система не столь эффективна, как чисто дво- ичная система. В двоичной системе двенадцатью битами можно представить число в диапазоне 0—4095, но в BCD — только в диапа- зоне 0—999. Однако с помощью BCD намного проще осуществлять связь с внешними устройствами. Двоичная арифметика подобна десятичной арифметике. Рас- смотрим суммирование десятичных чисел: 345 +272 617 Эта операция выполняется в три этапа: а) 5 + 2 = 7, переноса нет б) 4 + 7=11, единицу пишем под чертой (как результат), плюс перенос в следующий разряд в) 3 + 2 + перенос = 6 На каждом этапе мы имеем дело с тремя «входами», т. е. с двумя складываемыми цифрами и возможным переносом единицы из предыдущего (менее значащего) столбца. Каждый столбец имеет два «выхода» — результат и перенос в следующий столбец. Аналогично производится сложение двоичных чисел, с тем лишь исключением, что для каждого разряда и переноса использу- ются два состояния. Это позволяет нам составить простую таблицу истинности, состоящую из восьми элементов (табл. П.1).
502 Программируемые контроллеры Таблица П.1 Входы Выходы Разряд 1 Разряд 2 Входящий перенос Сумма Исходящий перенос 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Приведем пример двоичной арифметики: 101 1010 0101011 10000101 Сумма 1111010 Перенос Реализация сумматора на основании таблицы истинности является простой задачей комбинаторной логики. Отрицательные числа обычно представляются в форме, назы- ваемой дополнительным кодом. Самый старший разряд представ- ляет собой знак числа, 0 для положительных чисел и 1 для отрица- тельных чисел. Значащая часть отрицательного числа образуется путем дополнения (замены единиц на нули и наоборот) и добав- ления единицы. Например, при использовании 8-разрядного ко- да число +12d будет представлено в виде 00001100, а — 12d - в ви- де 11110100. Как и следует ожидать, сложение положительного и отрицатель- ного чисел одинаковой величины в результате дает нуль: +12d 00001100 —12d 11110100 Потеря -* Д00000000 Так как операция производится над 8-разрядными байтами, то старший (девятый) бит теряется, приводя к ожидаемому результату. Таким образом, дополнительный код позволяет выполнить опе- рацию вычитания путем обычного сложения. Например, 12d — 3d выглядит так:
Приложение. Системы счисления 503 + 12d -3d Потеря -* 00001100 11111101 /00001001 Старший бит снова теряется, что приводит к верному результату +9d. 8-разрядный байт в форме дополнительного кода может пред- ставлять числа в диапазоне от — 128d до +127d, а 16-разрядное сло- во — числа от —32768d до +32767d. Целые числа внутри ПЛК обыч- но хранятся в форме 16-разрядного дополнительного кода.
Предметный указатель 8086 339, 342 8088 339, 342 80286 339, 342 80386 340, 342 80486 340, 342 EISA 341 EMC 431 EMC Directive 89/336/EEC 436 ESP 255 Etherne 261 EUC 383 А АВВ45 European Article Number 209 ABB Master 45, 57 АСК 236 Allen Bradley PLC-5 45, 54 ANALAG 195 AND/NOT 71 ARQ 236 ASCII 222 ASEA 45 F Fault Tree Analysis 355 FB 148 FBD 123-124 FEC 236 FGEN 193 FIM 423 FIMS 428 FIP 267 В BCC 238 BCD 93, 501 BISYNC 232 BS-2771 280 BS89 298 BTR 188 BTW 188 FMEA355 Forth 347 FRR 212 Function Block 116 G G-таблица 79 GEM-80 45, 57 Grafcet 116 C CCITT X25 232 CE 431 CEGELEC 45 Code 39 208 ControILogix 124 CORONET 256 CRC 239 CSMA 250 CSMA/CD 251 CUTLASS 344, 346 Grafset 114 GSD 268 H HASWA 354 HAZOPS 355 HDLC 232 Histogram 137 HPIB 334 I D DCE 227 DDCMP 232 DEDBAND 194 DTE 227 IBM-AT 339 IBM-XT 339 IEC 1131 123 IEC61508 382 IEEE-488 334 IL 124 E EAN 209 EDDI 423, 427 E/E/PE 382 Imagem 311 Immediate Input 166 Immediate Output 166 ISBN 207
Предметный указатель 505 J Jump 164 R RAMP 194 RS232 228 L Labels 165 LAN 245 Latch/unlatch 76 LD 123 LIMIT 193 LINCON 193 LOGO! 119 LV Directive 73/23/EEC 436 RS422 230 RS423 230 RS449 231 RSLogix5 130 R-таблица 79 RS-триггер 76 S SCADA 325 SCAD DC 304 M Machinery Directive 89/392/EEC 436 MAP 264 Master Control Relay 153 MCR 153 Mitsubishi F2 61 MPL 356 MSDOS 339 MTBF 405 MTTF 405 MTTR405 SDLC 232 Selectable Time Interrupt 164 SEQR 117 Sequencer Input 117 Sequencer Output 117 Sequential Function Chart 116 SFC 116, 124 Siemens S7 124, 134 Siemens Simatic S5 45, 55 SINEC 260 SP 12, 196 SQI 117 SQO 117 SQRT 193 N NAK236 SR-триггер 74, 76 ST 124 Standard Temperature and Pressure О OB 145 OneShot 442 OR/NOT 71 OSHA 354 171 Stamet 259 Step-ladder 116 STI 164 STL 116 STP 171 P Panelview 304 PB 145 PCDOS 339 Pentium 342 PIDABS 203 PIDINC 203 PLC-5 48 prEN1050 355 prEN954-l 376 Preset 80, 86 Proflbus DP 267 Profibus FMS 268 Profibus PA 268 ProTool 320 PS/2 340 PV 12, 196 T TDM 247 TOF81 TON 81 TOP 264 Trending 198 U UART 219 Universal Product Code 209 UPC 209 V V24 228 W WAN 245
506 Программируемые контроллеры А Абсолютное давление 170 Аварийная сигнализация 292, 447 Аварийные остановки 372 Аварийные ситуации 9 Автоматический запрос повторной передачи 236 Адресная шина 333 Активный передатчик 232 Активный приемник 232 Алгоритм управления 12 АЛУ 17 AM 226 Амплитудная модуляция 226 Анализ 140 Аналоговая индикация 296 Аналоговые входные платы 188 Аналоговые выходные платы 192 Аналоговые выходные сигналы 192 Аналоговые измерительные устройства 296 Аналоговые интерфейсы 180 Аналоговые сигналы 167 Аналого-цифровое преобразование 180 Аннотированная версия 158 Арифметико-логическое устройство 17 Арифметические операции 98 Архитектуры компьютера 15 Асинхронное взаимодействие 221 АЦП 180 Б База данных 49 Базовая единица времени 80 Баланс сил 170 Балластный резистор 179 Безопасные отказы 388 Безударный переход 205 Безусловно управляемые контакты 374 Битовое запоминающее устройство 62, 74 Бит-ориентированные протоколы 232 Блоки последовательностей 148 Блочная графика 302 Бод 222 Быстродействующие счетчики 213 В Ваннообразная кривая 406 Вентиль И 69 Вентиль ИЛИ 69 Ветвь 66 Взвешивание с помощью уравновешивающей силы 174 Вихревой расходомер 172 Вложенные подпрограммы 153 Вмешательство 136 Волокно с плавным отражением 274 Волокно с резким отражением 274 Волоконно-оптические линии связи 272 Время (постоянная) интегрирования 197 Время прогона 48 Вспомогательные реле 62 Входные платы 32 Выходные платы 35 Вычислительные сети 245 Г Гистерезис 294, 451 Гистограмма 137 Голосование по большинству 365 д Датчики РТ100 168 Двоично-десятичное число 93 Двоичные числа 500 Двумерный штрихкод 209 Двухпроводные преобразователи 180 Действия по обслуживанию 154 Декадный переключатель 288 Диаграмма зависимости 428 Диаграмма переходов состояний 107 Диаграмма потока данных 158 Дивергенция 114 Динамическая отказобезопасная схема 372 Директива 89/336/ЕЕС 431 Дискриминация 37, 394 Длинные целые числа 91 Документация 412 Дополнительный код 91, 502 Дублирующие контакты 373
Предметный указатель 507 Ж Жизненный цикл безопасности 386 3 Забор 211 Зажимы 401 Заземление 214, 395 Законодательство в сфере обеспечения безопасности 381 Замкнутая система управления 13, 195 Замкнутый контур 12 Запоминающее устройство 15, 333 Запоминающие ячейки 74 Затухание в четверть амплитуды 199 Защита оборудования 395 Звездоообразная сеть 247 Знак-ориентированные протоколы 232 Зона нечувствительности 194 И Иерархия связи 251 Избыточное количество аварийных сигналов 294 Избыточность 365 Излучение 433 Измерение — давления 170 — положения 176—177 — расхода 171 — скорости потока 171 — температуры 167 — уровня жидкости 175 Изолированная выходная плата 37 И/ИЛИ 70 ИЛИ/И 70 Импульсная теорема Шеннона 184 Импульсный таймер 80 Индикаторы 279 Инструкции 18 Инструкция Limit 97 Инструкция MSG 257 Инструментальные средства программирования 133 Интегрирование по методу трапеций 468 Интеллектуальные модули 213 Интенсивность отказов 406 Интерпретатор 21 Исполняемые блоки 153 Использование памяти 158 Истекшее время 82 Источники данных 334 Источники питания 391 К Калиброванный преобразователь давления 170 Канальный уровень 253 Каскадное включение счетчиков 87 Класс высоких требований 384 Класс низких требований 384 Клеммные колодки 397 Клоны IBM PC 339 Коды с одиночным расстоянием 476 Комбинаторная логика 102 Компенсация температуры холодных концов 168 Компилятор 21 Компьютерная графика 300 Компьютерные системы 14 Конвергенция 116 Контрольный бит четности 222 Контрольный символ блока 238 Контроль ошибок 234 Контроль тенденций 138 Коэффициент снижения риска 385 Коэффициент усиления разомкнутой системы 196 Критерии проектирования 389 КСР 385 Л Лестничная ориентация 211 Линеаризация 460 Линейный дифференциальный трансформатор 177 Линии передачи 245 Логические символы 67 Локальные вычислительные сети 245 М Магистраль данных 256 Макаронное программирование 59, 114 Максимально возможный ущерб 356
508 Программируемые контроллеры Мантисса 91 Маркировка бытовой электронной аппаратуры 431 Массовый расход 171 Матричное кодирование 209 Матричные коды 210 Метка 221 Метод Зиглера—Никольса 199 МикроПЛК 119 Многорядное кодирование 209 Многорядные коды 210 Многостанционный доступ с контролем несущей 250 Многоступенчатая схема 30, 63, 123 Множественный доступ с контролем несущей и предотвращением конфликтов 251 Модель источник/пункт назначения 266 Модель поставшик/потребитель 266 Модем 227 Модуляция 226 Мультиплексирование 182 Мультиплексирование выходов 283 Мультиплексирование с разделением времени 247 Мультиплексированные входы 181 Н Надежность 404 Накопленное значение 86 Настройка контура 199 Неисправность 358 Немодулированная передача 226 Ненадежность 405 Несохраняемая память 79 Несохраняющий таймер 84 О Область зрелости 407 Обнаружение неисправностей 403, 408 Обозначение входов и выходов 41, 53 Обслуживание 142 Объектная программа 21 Объемный расход 171 Ограждение 378 Одновременная дивергенция 114 Одновременная конвергенция 116 Однопроходный таймер 80 Опасность 382 Опережающий контроль ошибок 236 Оптическая изоляция 34 Организационные блоки 145 Организующая программа 343 Особенности монтажа 214 Отказы «общего характера» 366 Отношение сигнал/шум 234 Отображение сообщений 325 Оценка риска 354, 376 Ошибка 196 Ошибка кодирования 222 П Пакет шести 381 Память 15 Параллельная передача данных 217 Параметры 151 Пассивный передатчик 232 Пассивный приемник 232 Пауза 221 Передатчик 178 Передача маркера 249 Передача на несущей частоте 227 Переключатель двойного действия 443 Переменная процесса 12 Перемещение данных 94 Переходы 19, 107, 108, 124 Период детской смертности 406 Периодичность преобразования 182 Период старости 407 ПИД-регулятор 198 ПИ-закон управления 197 Пиксельная графика 304 Пирометр 169 Пластина с отверстием 171 Плата аналогового интерфейса 180 ПЛК 32 Поблочная передача записи 188 Поблочная передача чтения 188 Подавление выбросов 37 Подавление нулевых головных цифр 286 Поддерживающее резервирование 370
Предметный указатель 509 Подпрограммы 19, 150 Подсистемы последовательного действия 10 Полное внутреннее отражение 272 Полоса частот 184 Полосы признака 208 Помехи 433 Поразрядный контроль четности 237 Порядок числа 91 Последовательная передача данных 219 Последовательная функциональная схема 124 Постоянная времени 191 Потоки данных 161 ППН 391 Представление чисел 89 Преобразование — двоичного числа в двоично- десятичное 484 — двоично-десятичного числа в двоичное 480 Преобразователи постоянного напряжения 391 Преобразователь 178 Приемники информации 334 Прикладной уровень 254 Прогон программы 48, 110 Программирование — в машинном коде 20 — на языке ассемблера 20 Программируемый контроллер 28, 32 Программируемый логический контроллер 32 Программисты-полуночники 331 Программно-совместимые ПЛК 350 Программные блоки 145 Программотехника 139—140 Проектирование сверху вниз 143 Производная по времени 197 Пропорциональное управление 196 Протокол с подсчетом байтов 232 Протоколы сообщений 232 Профессиональная подготовка 420-423 Прямая передача 226 Р Работоспособность 406 Разностороннее резервирование 366 Разность давлений 170 Разрешающая способность 180 Разъем типа SMA 275 Распределенные системы 217 Реализация хороших программ 154 Регистр команд 18 Регулирование уровня 455 Регулятор пропорционального действия 202 Режим сброса 203 Режим фиксации 203 Резервирование 373 Ремонтопригодность 405 Риск 382 Робастная программа 155 С Свободная зона 208 Сеансовый уровень 254 Сенсорные клавиши 324 Сенсорные экраны 324 Сетевой уровень 254 Сигнал 1—5 В 179 Сигнал 4—20 мА 179 Синхронизация 221 Синхронная передача 221 Система аварийной сигнализации 293 Система с главным и подчиненными элементами 247 Систематический отказ 366 Система шин 333 Системы взвешивания 174 Системы с монтажной шиной 337 Системы счисления 498 Системы текущего контроля 9 Смещение 179 Смешение частоты 184 Собственнические системы 255 Событийно-управляемая логика 107 Совместное использование сети 249 Согласуюший резистор 247 Соединение равноправных узлов 247
510 Программируемые контроллеры Сохраняемая память 79 Сохраняюший таймер 84 Список инструкций 124 Список операторов 70 Сравнение данных 96 Сравнения 96 Среднее время между отказами 405 Среднее время службы до отказа 405 Средняя продолжительность ремонта 405 Средства программирования 129 Стандартный сигнал 178 Стандарты и протоколы 228 Стандарты последовательной передачи данных 220 Стек 347 Стек магазинного типа 347 Степени защиты IP 27 Стойки 30, 53 Столбиковые индикаторы 296 Столовый бит 222 Стратегии управления 9 Стрелочные измерительные приборы 296 Структура программы 144 Структурированный текст 124 Сумма произведений 104 Суммарное время 82 Суммирование расхода 465 Схема последовательности 107 Счетчики 85 Счетчик команд 18 Т Таблица данных 49 Таблица истинности 102 Таймер задержки включения 80 Таймер задержки выключения 80 Таймеры 79 Тахогенератор 173 Теги 307, 326 Тензодатчик 174 Терминал ввода/вывода данных 227 Терминал для программирования 31-32 Термистор 169 Термометр сопротивления 169 Термопара 167 Тестирование 140 Техническое обслуживание 403 Технология вампира 261 Токовая петля 20 мА 231 Топологии сетей 247 Транспортный уровень 254 Требования к компьютерам промышленного назначения 22 Триггер 74 Трубка Вентури 171 Трубка Пито 171 Турбинный расходомер 172 У Уведомление об изменении 266 Удаленные входные/выходные платы 390 Удаленные входы и выходы 42 Удаленные стойки 52 УПБ 384 Управление в реальном времени 15 Управление обновлением версий 439 Управление с обратной связью 11 Управление с опережением/отставанием 206 Управляемое оборудование 383 Управляющие символы 224, 233 Управляющие устройства 13 Уровень представления 254 Уровни полной безопасности 384 Условные переходы 19 Уставка 12, 80, 86, 196 Устойчивость 199 Устройство передачи данных 227 Ф Фазовая модуляция 226 Файлы подпрограмм 148 Физический уровень 253 Фильтрация 190 Фильтр первого порядка 191, 451 Флажки 62 Флажок переполнения 98 ФМ 226 Функциональная безопасность 383 Функциональная блок-схема 123 Функциональные блоки 148 X Характеристический импеданс 245
Предметный указатель 511 ц ЦАП 192 Цвета кнопок 280 Цветная маркировка 402 Целое слово двойной длины 91 Целые числа 91 Центральный процессор 17 Циклический избыточный код 239 Цифроаналоговое преобразование 192 Цифровой индикатор 285, 296 Цифровые входы 288 Цифровые выходные устройства 282 ЦП 17, 333 Ч Частокол 211 Частота первого чтения 212 Частотная модуляция 226 Человекомашинный интерфейс 277 Чередование 2 из 5 209 Числа 89 Числа с плавающей точкой 91 Число IP 396 ЧМ 226 III Шаровой манипулятор 324 Шина АТ 341 Шина GPJB 334 Шина ISA 340 Шина MCA 340 Шина PC 341 Шина STE 338 Шина VME 337 Шина данных 333 Шина управления 333 Широкомасштабные вычислительные сети 245 Широкополосная передача 227 Штрихкоды 207 Шум 359 Э Экранированный провод 215 Электромагнитная совместимость 431 Электростатический разряд 435 Эргономика 277 Этапы проекта 43, 140 141 Я Языки высокого уровня 20
Оглавление Предисловие .............................................5 1. Компьютеры и управление производством ................8 1.1. Введение ...........................................8 1.2. Типы стратегий управления...........................9 1.2.1. Подсистемы текущего контроля ..................9 1.2.2. Подсистемы последовательного действия ........10 1.2.3. Подсистемы управления с обратной связью.......11 1.2.4. Управляющие устройства .......................13 1.3. Использование компьютера ..........................14 1.3.1. Архитектуры компьютера........................15 1.3.2. Программирование в машинном коде и на языке ассемблера ...............................20 1.3.3. Языки высокого уровня .......................20 1.3.4. Прикладные программы .........................22 1.3.5. Требования к компьютерам промышленного назначения ......................................... 22 1.3.6. Программируемый контроллер....................28 1.4. Входные/выходные соединения........................32 1.4.1. Входные платы.................................32 1.4.2. Выходные соединения...........................35 1.4.3. Обозначение входов и выходов..................41 1.5. Удаленные входы и выходы ..........................42 1.6. Преимущества управления с помощью ПЛК .............43 2. Методы программирования..............................45 2.1. Введение ..........................................45 2.2. Прогон программы...................................48 2.3. Обозначение входов/выходов и двоично-кодированные адреса............................53 2.3.1. Стойки, платы и сигналы.......................53 2.3.2. Allen Bradley PLC-5...........................54 2.3.3. Siemens SIMATIC S5............................55 2.3.4. CEGELEC GEM-80................................57 2.3.5. ABB Master....................................57 2.3.6. Mitsubishi F2.................................61 2.3.7. Внутреннее битовое запоминающее устройство....62 2.4. Методы программирования............................62 2.4.1. Введение......................................62 2.4.2. Многоступенчатые схемы .......................63 2.4.3. Логические символы ...........................67 2 4 4. Список операторов..........................70 2.5. Битовое запоминающее устройство ...................74
Оглавление 513 2.6. Таймеры .......................................... 79 2.7. Счетчики............................................85 2.8. Цифровые применения.................................89 2.8.1. Представление чисел ..........................89 2.8.2. Перемещение данных............................94 2.8.3. Сравнение данных..............................96 2.8.4. Арифметические операции ......................98 2.9. Комбинаторная и событийно-управляемая логика.......102 2.9.1. Комбинаторная логика.........................102 2.9.2. Событийно-управляемая логика.................107 2.10. МикроПЛК .........................................119 2.11. IEC 1131-3: к общему стандарту ...................123 2.12. Средства программирования ....................... 129 2.13. Инструментальные средства программирования .......133 3. Стиль программирования ..............................139 3.1. Введение ..........................................139 3.2. Программотехника.................................. 140 3.3. Проектирование сверху вниз.........................143 3.4. Структура программы в различных ПЛК................144 3.5. Действия по обслуживанию и реализация хороших программ . 154 3.6. Сокращение времени прогона программы ..............162 4. Аналоговые сигналы, управление по замкнутому циклу и интеллектуальные модули..............................167 4.1. Введение ..........................................167 4.2. Типичные аналоговые сигналы ...................... 167 4.2.1. Температура..................................167 4.2.2. Давление.....................................170 4.2.3. Расход ......................................171 4.2.4. Скорость.....................................173 4.2.5. Системы взвешивания..........................174 4.2.6. Уровень......................................175 4.2.7. Положение ...................................176 4.2.8. Выходные сигналы.............................178 4.3. Сигналы и стандарты ...............................178 4.4. Аналоговые интерфейсы..............................180 4.4.1. Разрешающая способность .....................180 4.4.2. Мультиплексированные входы ..................181 4.4.3. Периодичность преобразования ................182 4.4.4 Выбор канала и преобразование в технические единицы измерения.................... 186 4.4.5. Аналоговые входные платы ................... 188 4.4.6. Фильтрация ..................................190
514 Программируемые контроллеры 4.5. Аналоговые выходные сигналы ........................192 4.6. Функции аналоговых сигналов.........................193 4.7. Замкнутая система управления........................195 4.7.1. Введение в теорию управления..................195 4.7.2. Устойчивость и настройка контура..............199 4.7.3. Замкнутая система управления с ПЛК............201 4.8. Специализированные управляющие процессоры ..........206 4.9. Штрихкоды ..........................................207 4.10. Быстродействующие счетчики.........................213 4.11. Интеллектуальные модули............................213 4.12. Особенности монтажа ...............................214 5. Распределенные системы ...............................217 5.1. Параллельная и последовательная передача данных.....217 5.2. Стандарты последовательной передачи данных..........220 5.2.1. Введение......................................220 5.2.2. Синхронизация.................................221 5.2.3 Коды символов .................................222 5.2.4. Скорость передачи.............................222 5.2.5. Модуляция дискретных сигналов.................226 5.2.6. Стандарты и протоколы ........................228 5.2.7. Контроль ошибок ..............................234 5.2.8. Двухточечная связь ...........................241 5.3. Вычислительные сети.................................245 5.3.1. Введение......................................245 5.3.2. Линии передачи ...............................245 5.3.3. Топологии сетей...............................247 5.3.4 Совместное использование сети..................249 5.3.5. Иерархия связи ...............................251 5.4. Модель IS0/0S1 .....................................253 5.5. Собственнические системы ...........................255 5.5.1. Введение......................................255 5.5.2. Магистраль данных Allen Bradley...............256 5.5.3. Stamet, ESP и CORONET фирмы GEM-80 .......... 259 5.5.4. SINEC фирмы Siemens ..........................260 5.5.5. Ethernet......................................261 5.5.6. По пути к стандартизации......................264 5.5.7. Profibus......................................267 5.6. Безопасность и практические соображения ............270 5.7. Волоконно-оптические линии связи ...................272 6. Человекомашинный интерфейс ...........................277 6.1. Введение ...........................................277 6.2. Простые средства управления и индикаторы дискретного действия....................................279
Оглавление 515 6.3. Цифровые выходы и входы.............................282 6.3.1. Цифровые выходные устройства .................282 6.3.2. Мультиплексирование выходов ................. 283 6.3.3. Подавление нулевых головных цифр .............286 6.3.4. Цифровые входы................................288 6.4. Аварийная сигнализация .............................292 6.5. Аналоговая индикация................................296 6.6. Компьютерная графика ...............................300 6.6.1. Введение......................................300 6.6.2. Panelview фирмы Allen Bradley ................304 6.6.3. Пиксельная графика: программа Imagem для ПЛК CEGELEC.......................................311 6.6.4. Семейство Siemens Simatic HMI ................320 6.6.5. Практические рекомендации.....................321 6.6.6. Ввод данных...................................324 6.7. Отображение сообщений ..............................325 6.8. Комплексы SCADA.....................................325 7. Управление производственными процессами с помощью обычных компьютеров............................331 7.1. Введение ...........................................331 7.2. Машины с шинной организацией........................333 7.2.1. Введение......................................333 7.2.2. Шина параллельного интерфейса IEEE-488 ...... 334 7.2.3. Системы с монтажной шиной.....................337 7.2.4. Клоны IBM PC..................................339 7.3. Программирование при управлении в реальном времени......342 7.4 Программно-совместимые ПЛК ......................... 350 8. Практические вопросы......................................353 8.1. Введение ...........................................353 8.2. Безопасность........................................353 8.2.1. Введение......................................353 8.2.2. Оценка риска .................................354 8.2.3. ПЛК, компьютеры и безопасность................358 8.2.4. Аварийные остановки...........................372 8.2.5. Ограждение ................................. 378 8.2.6. Законодательство в сфере обеспечения безопасности.381 8.2.7. IEC61508......................................382 8.3. Критерии проектирования.............................389 8.4. Конструктивные особенности .........................391 8.4.1. Источники питания.............................391 8.4.2. Защита оборудования ..........................395
516 Программируемые контроллеры 8.5. Техническое обслуживание и обнаружение неисправностей .... 403 8.5.1. Введение......................................403 8.5.2. Статистическое представление надежности.......404 8.5.3. Практика технического обслуживания............408 8.5.4. Диагностика неисправностей....................410 8.5.5. Документация .................................412 8.5.6. Профессиональная подготовка...................420 8.5.7. Вспомогательные средства для обнаружения неисправностей - EDDI и FIM .........................423 8.6. Электромагнитная совместимость (ЕМС) и маркировка бытовой электронной аппаратуры (СЕ) ........431 8.7. Другие программируемые устройства ..................437 9. Пример многозвенной логической схемы ................440 9.1. Введение ...........................................440 9.2. Функция OneShot ....................................442 9.3. Переключатель двойного действия ....................443 9 4. Аварийная сигнализация ...........................447 9.5. Фильтр первого порядка .............................451 9.6. Регулирование уровня................................455 9.7. Линеаризация .......................................460 9.8. Суммирование расхода................................465 9.9. Масштабирование ....................................472 9.10. Преобразование кода Грея ..........................475 9.11. Преобразование двоично-десятичного числа в двоичное.480 9.12. Преобразование двоичного числа в двоично-десятичное.484 9.13. Гидравлическая система ............................487 Приложение. Системы счисления ...........................498 Предметный указатель.....................................504
Учебное издание Парр Эндрю ПРОГРАММИРУЕМЫЕ КОНТРОЛЛЕРЫ Руководство для инженера Ведущий редактор Н. Е Которова Художник Н. В. Зотова Художественный редактор О. Г. Лапко Корректор Е. Н. Клитина Компьютерная верстка: Т. Э. Внукова Подписано в печать 17.07.07. Формат 60x90/16. Гарнитура Ньютон. Печать офсетная. Бумага офсетная. Усл. печ. л. 32,5. Тираж 1000 экз. Заказ 5918 БИНОМ. Лаборатория знаний 125167, Москва, проезд Аэропорта, д. 3 Телефон: (499) 157-5272 e-mail: Lbz@aha.ru, http://www.Lbz.ru При участии ООО «ЭМПРЕЗА» Отпечатано в ОАО «ИПК «Ульяновский Дом печати» 432980, г. Ульяновск, ул. Гончарова, 14
Программируемый логический контроллер (ПЛК)— эффек- тивное средство, широко используемое при построении систем управления технологическими процессами. В данной книге рассматривается широкий круг вопросов, посвящен- ных инженерным аспектам применения ПЛК в промышлен- ности В частности, в нее включен материал, охватывающий новые стандарты по охране труда и безопасности на произ- водстве, и раздел, посвященный применению систем SCADA. приведен также пример реализации программы ПЛК, управляющего конкретным промышленным объектом. Автор книги— )н ipio Парр — имеет большой опыт прак- тической работы по проектированию систем управления. Ранее он работал в компании ASW Sheemess Steel, где в управлении технологическим процессом было задействова- но более 60 ПЛК. В последнее время он является техничес- ким консультантом по системам управления в IPS Inter- national (Рочестер, графство Кент, Англия). ISBN 978-5-94774-340-1 785947 743401