Густав Олссон, Джангуидо Пиани - Цифровые системы автоматизации и управления (1087169), страница 67
Текст из файла (страница 67)
Принципиальные схемы и функциональные блок-схемы не яв ких вгнраягяга статочно мощным средством структурированного описания логических Р Для анализа задач управления методом "сверху вниз" ("Гор-аошп") ПГ Н ОЦИСЭВВЯ" то ый подуя"', равляющих последовательностей был разработан инструмент, который звание функциональные карты (эвдивпгга1)ипсИоп сЬагг). Сегодн фу я ж нкцИОНЛЛЯ карты как средство программирования предлагаются нескольким Р ими п оизводв '.
ми ПЛК вЂ” Сга(сес (Те!ешесап)г(це), СКАРН-5 (51егпепз), Н1-1ЯЕОЧЛ ( ' я,н Н1гасн') Основные идеи, заложенные в зти языки, одинаковы, а различия и имеют вто Рост ный характер. яый яг' Функциональную карту можно рассматривать как специализированяы К для описания управляющих последовательностей в виде графической й схемы. лв Сот'я цу 1970-х годов первый язык функциональных карт — Сга1сег (САЛрйв д к г ~ояэР Егарв-Тгапй!гоп, фр. "Функциональная карта — пошаговыи переход") — бь: Р зо1 опальные карты -я „„яцяон Комментарий Действие П 1 резервуар пуст это вмралгвнив гуяинимает значение "истина", если датчик уронил показывает "пустой" - 1 и выдапа команда "старт" пустой 'старт выпускной клапан закрыт включить насос уровень достиг верхнего ограничиваяпввго клапана полный конец операции эапаяивяил и качало нагрвва выключить насос вкнючать нагреватель достигнута заданпал температура температура отключить нагреватель врвил влгидаиил равняется "сппе оця" время азкидаиил истекло время ожидания - "гяляе оцт" открыть выпускной клапан пустой н нн 72з ' з.
Функциональная карта управления доватором „ви и позже стал основой для разработки международного стандарта , эра .ЛЯ Яэ „По готовка фУнкциональных каРт длЯ УпРавлЯющих систем" ). уб „„ьные карты описывают управляющие последовательности с помо- ' 616(' ,„ кпиона „е опРеделенных пРавил длЯ: я ющих денствин, которые необходимо произвести в определенной поранен о - упраш'я следе ' „овательности' и исполнения каждого шага. ,етялеи ~рувкцио циоиальиая карта, соответственно, разделена на две части (рис.
7.25), По часть (ледивпсв Ранг) описывает последовательность главных УпРавлЯюяляввав чае „ в(левая сторона рис. 7.25 из пяти блоков), но не содержит исполняемых , „, шггов ;гнстянй, нй, которые описываются предметной (оЬ7вст), или управляющей (сопгго)), чалма сост ,ктояшей из блоков справа от "шагов". Каждое действие должно быть связано ";якам-л „и-либо шагом и может быть описано принципиальной схемой, логической цел в лабо булевым выражением. эци !пава /. Комбинационное и последовательностное Упр Раннн циональные карты 14 ,Рункц Порядковая часть функциональной карты в соответствии с! ЕС 848 со столбца пронумерованных блоков, изображающих одиночные шаги. Вертя остен, линия, соединяющая каждый блок с последующим, изображает активные нканьнь ния (прямые связи), Каждый переход от шага к шагу связан с логическим уел ельней Услоннн, называемым условием перехода (Ггапян(оп сопг111хоп) или преемств~„„ (десерт(иту).
Булево выражение для условия перехода записано рядом с ман енно „ ален ьн,, горизонтальнои чертой, пересекающей связь между блоками. Если условие у судан, ворено, т, е, соответствующее булево выражение истинно, происходит перехо одвннь тема выполняет следующий шаг, На рис. 7.25 приведен пример функциональной карты управления дозатор и у, зервуар необходимо заполнить жидкостью, после чего его содержимое должно х ьн! нагрето до определенной температуры. Через установленный промежуток вре, еменн резервуар опорожняется и процесс начинается заново. Сигнал "пустой" указывает на то, что резервуар пуст и его можно наполнить о, ь снь ва. Этот сигнал связан с сигналом "старт" для того, чтобы можно было начать нн.
полнение последовательности операций. На Шаге 2 донный клапан закрываетсн„ запускается насос. Сигнал "полный" вырабатывается, когда достигнут предельннн уровень жидкости. Программа переходит к Шагу 3; насос отключается и включнето нагреватель. Нагреватель работает, пока не будет достигнута заданная тсмпернтвн (сигнал "температура").
В этот момент происходит переход к Шагу 4, нагревагнв отключается и запускается таймер. При истечении времени ожидания ("г(те онП происходит переход к Шагу 5, где подается команда на открытие выпускного князь на. Затем вся последовательность повторяется с самого начала. Синтаксис функциональных карт подразумевает, что в любой момент времени хнх дый шаг может быть либо активным, либо неактивным.
"Активный" означает, 'по як исполняется. Начальный шаг выделяется на функциональной карте двойной Рзит" "Действие" — это описание команд, которые необходимо выполнить на каждом жни С шагом может быть связано логическое условие, шаг становится активным, и сосзн' ствующие команды будут выполняться только тогда, когда логическое условие Уж. летворено. Условное выполнение обеспечивает безопасность управления. С одним шагом можно связать несколько команд. Это могут быть как прог™ тын хн лятоун манды управления, так и более сложные функции — таймер, счетчики, регула окнзнвн процедуры фильтрации или команды для внешнего обмена.
Как уже было пока а г ннянн в функциональной карте присутствует функция перехода, т. е. своего рода гр ия врн" между двумя шагами, которую можно перейти только после завершения актввнин шествующего ей активного шага. После перехода новый шаг становится акт ип "" а предыдущий — неактивным. Переход управляется логическим условием ходит только при его выполнении. сто повтор Синтаксис функциональных карт позволяет гораздо больше, чем просто ющееся исполнение одних и тех же управляхощих операторов. Все три фу ф цвонь" ных элемента — начальный, шаг(и) и переходы — могут быть связаны раз азля яви способами, что позволяет описывать большое количество сложных процес ессов.
можны трн типа комбинаций: — простые последовательности; — ветвление (альтернативная параллельная последовательность); — расщепление (синхронная параллельная последовательность), ой послеДовательности (ЯтР1е хедиепсе) сУЩествУет только оДин пеРехоД 8 простой ° го шага и только один шаг после любого перехода. В альтернативной параллюоого ннсле ° ледовательности (а11егпаг(ое рака!1е1 хедиепсе) существуют два или более после одного шага (рис.
7.26). В этом случае исполнение может пойти по м ход гвям в зависимости от внешних условий. Обычно это условия типа "еслихзвыи в'"' ц " которые полезны при описании, например, аварийных ситуаций. н иначе Рнс 7,2 нРияа 2Я Альтернативные параллельные ветви — выполняются только действия, ндлежащнс одной ветви В альте н еРнатнвнои параллельнои последовательности очень важно удостовеРить '" зто ус„ов нр' овьхе выбора одной из ветвей программы непротиворечиво и однозначно; ' Уганя слов словами, альтернативные ветви нельзя запускать одновременно. Каждая знь альте тернативной параллельной последовательности должна всегда начинаться ' "ячеек нм Условием перехода.
синх ньс Ронной параллельной последовательности (згтийапеоих рага1(е1 хедиепсе) Ле пряе нд Рехода предусматриваются два или более нхагов, которые могут быть активвод ннт д"овременно (рис. 7,27). Таким образом, синхронная параллельная последо'льно ость представляет собой одновременное исполнение нескольких действий. 305 е лава С комоинационное И последовательностное Упр авнв„„ кцИОнальные карты 1д ЯРУИ Рис. 7.27.
Синхронные параллельные ветви лнеиие. 0~" Двойные горизонтальные линии указывают на параллельное исполне емеиио и в" выполнении условия перехода обе ветви становятся активными одновреме м после ВИЮ полняются независимо и параллельно. Переход к шагу, расположенномУ аве шенин не" ней двойной горизонтальной линии, может произойти только после завер ии соЪефп-сое одновременно выполнявшихся ветвей. Это соответствует нотации со языков программирования реального времени (раздел 10.1З). Все три типа конструкций можно использовать вместе, но с извест ной осторох стью, чтобы избежать потенциальных конфликтов.
Например, если ли ветви аль~~р тивной последовательности оканчиваеотся графическим символом конца "ар ', ет ного исполнения — две горизонтальные черты, — то дальнейш р йшее азвитие - ХОТЯ невозможно, так как компьютер будет ждать завершения работы обеих ветвеи юхе из-за альтернативного условия была запущена только одна из н их. Возможна т о рат б ная ошибка; если параллельные ветви, которые должны закончиться ох" — ьная чеР менно, соединены знаком завершения альтернативы — одна горизонтальн азв итие то множество разных шагов могут остаться активными, а дальнейшее р цесса может принять неуправляемый характер.
„чно, компилятор обычно распознает такие несоответствия начала и конца укции и выдает предупреждение пользователю до запуска программы. Но евг „и использовании лучших компиляторов многие ошибки остаются скрытыми дз;ке ,е трУ иораспознаваемыми. Структурный и методичный подход к программировагда является важным требованием. неею в' 742, реализация функциональных карт программы, написанные с помощью функциональных карт, работают в режиме неа „„„ою времени, и аналогичными свойствами должен обладать порождаемый ими иииый код (соответствующие детали обсуждаются в главе 10).
Обычно рсализа- „,„систем реального времени требует больших усилий и значительных затрат вре- еаее Яе труда. Однако в этом конкретном случае большая часть бремени ложится на „рвботчика компилятора языка функциональных карт, а пользователь может ни- ,згь сложные управляющие последовательности сравнительно простым способом. пее проблемы программирования в реальном времени, обсуждаемые в главе 10, име- ют значение и при разработке программируемых логических контроллеров, однако хонечяяого пользователя они касаются опосредованно и в достаточно малой степени.