ЖУРНАЛ СТА 1/1996

не было найдено. Попытка введения международного стандарта для про- граммирования контроллеров отрази- ла сложившуюся картину — именно многофункциональный язык описан наименее четко. Чтобы понять причи- ну этой ситуации, стоит вкратце рас- смотреть особенности основных язы- ков программирования контроллеров. Первые технологические контрол- леры были по преимуществу логичес- кими, и соответствующую специфику имел один из первых технологических языков. Решение было самое простое и в то же время безошибочное — имити- ровать проектирование той техники, на смену которой пришли контролле- ры. Так появился язык релейно-кон- тактных схем. Благодаря сведению но- вой сущности к старой привычной форме был обеспечен психологически безболезненный переход на новую технику. Язык релейно-контактных схем (РКС) обладал и еще одним пре- имуществом: оказалось, что процеду- ры ввода и отладки программ на языке РКС легко могут быть реализованы на примитивных пультах, использовав- шихся тогда для программирования контроллеров. По тем временам пор- тативность пульта могла быть обеспе- чена только существенным ограниче- нием его возможностей, а для про- граммирования на РКС хватало од- нострочного дисплея и полутора де- сятков кнопок. Ограниченные воз- можности техники, имевшей неболь- шой объем памяти и простейший пульт, необходимость оперативной коррекции программ предъявляли и еще одно требование — язык должен был быть реализован как интерпрети- руемый. Язык РКС легко вписывался во все имевшиеся тогда ограничения. Успех программируемых логических контроллеров вскоре разделили однока- нальные и многоканальные программи- руемые цифровые регуляторы. И здесь был использован тот же хорошо себя за- рекомендовавший подход: для програм- мирования был создан язык функцио- нальных блоков, повторявший методику создания систем регулирования на ис- пользовавшейся ранее технической базе, когда отдельные электронные или пнев- матические блоки, реализующие ту или иную функцию, соединяли между собой для получения более сложных функцио- нальных возможностей. У нас в стране язык функциональных блоков был при- менен во всех поколениях широко рас- пространенных контроллеров Ремиконт. Полученный опыт выявил основные недостатки созданных реализаций. Од- ни недочеты были заметны даже в той области применения, для которой эти языки предназначались, другие прояв- ляли себя при попытке решить задачи, где потребность в логическом управле- нии сочеталась с функциями регулиро- вания и вычислений, что характерно, например, для управления периодичес- кими процессами в химии или энерге- тике. Язык РКС оказался неудобен для описания управления такими шаговы- ми процессами, где линейный порядок шагов нарушался разветвлениями, па- раллелизмом и рециклами. Многока- нальные схемы регулирования, пред- ставленные на языке функциональных блоков, были слишком громоздки и ма- лопредставимы на примитивных пуль- тах. Взаимопроникновение языков, ха- рактерное для уже второго их поколе- ния, — вставка функциональных бло- ков в РКС, использование логических функцийв языкефункциональныхбло- ков — решало задачу при небольшом отклонении от функционального пред- назначения языка, но было бессильно в случаеихдействительномногофункци- онального применения. Сложные схе- мы регулирования и вычисления плохо вписывались в логику построения РКС, логические и вычислительные задачи громоздко и ненаглядно решались на языке функциональных блоков. Здесь и начались поиски, которые дали не- сколько вариантов решения проблемы. Первый успех принесли попытки ор- ганизации общей структуры програм- мы. Такой подход позволил произвести декомпозицию задачи за счет введения модульности программ и их иерархи- ческого представления. Удачный при- мер этого подхода – создание француз- ской фирмой Telemecanique языка Графсет, который явился образцом для разработки подобных языков другими фирмамиистал стандартомde facto еще до того, как официальное включение языка шаговых последовательностей в международный стандарт сделало его стандартом de jure. Основные свойства Графсета, явившегося практическим применением разработанных в теории автоматов лет за 15 до его создания се- тей Петри, – это представление про- граммы в виде шагов и переходов, а так- же наличие нескольких одновременно работающих программ и организую- щей программы, которая отвечает за их включение и отключение. Интерес- но, что логика самихшагов и переходов во многих реализациях может быть описана на языке РКС. Введение в язык шаговых последовательностей паралле- лизма шагов, наличие ветвлений, а в некоторых версиях и циклов, обеспе- чило в сочетании с применением РКС и структуризацией задачи достаточ- ную гибкость для потребностей управ- ления подавляющим большинством дискретных и периодических процессов. Необходимость сочетания непре- рывного и дискретного управления на большинстве объектов химии, не- фтехимии, металлургии, энергетики и других отраслей вела к поиску уни- версального технологического языка. Началом пути к нему стала попытка адаптации универсальных языков программирования. В первых свобод- но программируемых контроллерах применялся ассемблер, затем появи- лись языки высокого уровня (Си, Бей- сик), но в любом случае для того, что- бы писать на этих языках, нужны бы- ли профессиональные программис- ты, а сам процесс разработки про- грамм был достаточно трудоемким и требовал кроссовых средств, реализо- ванных на компьютере. Использова- ние пультов для программирования исключалось из-за сложности самих языков, а также значительных ресур- сов, необходимых для компиляции и рекомпиляции в случае внесения из- менений. Предложенное в ряде реали- заций стандарта внешнее представле- ние программы на любом из «гости- рованных» языков с возможностью переключения между ними проблему не сняло, поскольку в практическом применении оказалось ненаглядным. С другой стороны, стремительное раз- витие персональных компьютеров при- вело к тому, что лучшим пультом про- граммирования для любого контроллера стал обычный офисный сначала laptop, а теперь и notebook. В результате огра- ничения на сложность языка были сня- ты и оказалось возможным перейти от программ-интерпретаторов, снижавших требования к памяти, занимаемой при- кладной программой, и облегчавших процесс программирования с помощью специализированных пультов, к компи- ляторам, работающим на инструмен- тальной машине и создающим загрузоч- ный код для исполнения в контроллере. Принцип адаптации универсальных языков программирования был прост: в язык вводились новые типы перемен- ных— «входы» и «выходы» контроллера, а также создавалась некоторая библио- тека подпрограмм, реализующих на- иболее часто встречающиеся алгорит- мы. Программирование упростилось, но все еще оставалось сложным для ря- дового технолога или «автоматчика-ки- повца». И тогда был сделан следующий ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ 111 1/96

RkJQdWJsaXNoZXIy MTQ4NjUy