Back

ⓘ Мердевинска логика




Мердевинска логика
                                     

ⓘ Мердевинска логика

Мердевинска логика је програмски језик који представља програм преко графичког дијаграма заснованом на шеми кола релејског хардвера. Углавном се користи за развој софтвера за програмабилне логичке контролере који се користе у сврхе индустријске контроле. Име је засновано на чињеници да програми у овом језику личе на мердевине.

                                     

1. Преглед

Аргумент који је помогао почетном коришћењу мердевинске логике је да би велики број инжињера и техничара могао је разуме и користи без додатне обуке, због сличности са познатим харверским системима. Овај аргумент је постао мање важан због тога што већина програмера мердевинске логије већ има искуство у традиционалним програмским језицима, а и у пракси, имплементације мердевинске логике имају каракетеристике као што су секвенцијално извршавање и подршка за контролу тока, што чини аналогију са хардвером непрецизном.

Мердевинска логика се често користи за програмирање PLC-ова, где је потребна секвенцијална контрола процеса или производне операције. Мердевинска логика је корисна за просте али важне контролне системе или за прераду старих хардверских релејских мрежа. Како су програмабилни логички контролери постали комплекснији могуће их је користити и у сложеним системима за аутоматизацију. Често се програм мердевинске логике користи заједно са корисничким интерфејсом на радном компјутеру.

Произвођачи програмабилних логичких контролера обично такође достављају и повезани систем за програмирање у мердевинској логици. Обично језици мердевинске логике два различита произвођача неће бити комплетно компатибилни; мердевинску логику је боље схватити као скуп блиских програмских језика, него као један јединствен програмски језик. IEC 61131-3 стандард је помогао да се непотребне разлике умање, али превођење програма између система и даље захтева незанемарњив труд. Чак и различити модели програмабилних контролера из исте породице могу имати различиту мердевинску нотацију тако да се програми не могу транспарентно користити на више модела.

Мердевинска логика се представља као језик заснован на правилима, а не као процедурални програмски језик. Лествица на мердевини представља правило. Када је логика имплементирана преко релеја и других електромеханичких уређаја, дефинисана правила се "покрећу" сместа паралелно. Имплементације преко програмабилних логичких контролера типично извршавају секвенцијално, у непрекидној петљи. Извршавањем петље довољно брзо, обично много пута у секунди, ефекат симултаног и непосредног извршавања је присутан, унутар толеранције времена које је потребно да се изврши свако правило у дијаграму, време скенирања. Некако је сличан другим језицима заснованим на правилима, као што су табеле или SQL. Међутим, правилно коришћење програмабилних контролера захтева разумевање ограничења редоследа извршавања правила.

                                     

2. Примери простих мердевинских програма

Сам језик може се приказати као скуп веза између логичких провера контаката и актера калема. Ако се може пронаћи путања од леве стране лествице до излаза, кроз "тачне" затворене контакте, лествица је "тачна" и бит излазног калема постаје 1 "тачан". Ако се таква путања не може пронаћи, онда је излаз 0 "нетачан" и калем звог аналогије са електромеханичким калемом се сматра не-напојеним. Аналогија између логичког статуса и статуса рејелских контакта је због дела Клод Елвуд Шенон-а.

Мердевинска логија има контакте који спајају или раздвајају кола да би управљали калемима. Сваки калем или контакт је повезан са статусом једног бита у меморији програмабилног контролера. Насупрот електромеханичким релејима, мердевински програм може један бит користити неограничен број пута, еквивалент релеју са безброј контаката.

Такозвани "контакти" могу реферисати на физичке улазе у програмабилни контролер од стране уређаја као што су дугмад и прекидачи преко интегрисаног или екстерног модула за улаз, или могу представљати статус неког интерног бита који се генерише на неком другом месту у програму.

Свака лествица мердевинског језика обично има један калем на десној страни. Неки произвођачи дозвољавају и више од једног излазног калема по лествици.

  • - - Негативан, или "НЕ" контакт, који је отворен када је његов повезан калем или контролишући улаз напајан.
  • - - Обичан калем, који је напајан када је лествица затворена.
  • - \ - Негативан, или "НЕ" калем, напајан када је његова лествица отворена.

Тај "калем" излаз лествице може представљати физички излаз који управља неким уређајем који је повезан на програмабилни контролер, или може представљати интерни бит који ће се користити на неком другом месту у програму.

                                     

3. Примери

Ево примера како може изгледати једна лествица у програму мердевинске логике. У стварним програмима, може бити стотине или хиљаде оваквих лествица.

На пример:

1. ------------------ run motor

Овако намештена реза је чест идиом у мердевинској логици. Кључ разумевања овакве резе је да се примети да је "старт" дугме моментално (чим корисник отпусти дугме, прекидач је поново отворен. Чим се "run" соленоид укључи, он затвара "run" прекидач, што пребаци соленоид у укљулено стање. После тога, отварање "старт" прекидача нема ефекта.

                                     

4. Додатна функционалност

Додатна функционалност може бити додата у имплементацију мердевинске логике од стране произвођача PLC-а као специјалан блок. Када се такав специјални блок укључи, он извршава инструкције на претходно дефинисаним параметрима. Ти параметри могу бити приказани унутар специјалног блока.

+-------+ -------------------------+ B +---- Interior Unlock +-------+ Interior Counter +--------+ --------------------+ A + B +----------- + into C + +--------+ Adder

У овом примеру, систем ће бројати колико пута су притиснути интерно и даљинско дугме за откључавање. Та информација ће се сместити у меморијске локације А и B. Меморијска локација C ће садржати укупан број колико су се пута врата електронски откључала. PLC-ови имају много врста специјалних блокова. Међу њима могу бити тајмери, аритметичке операције и поређења, увид у податке табела, обрада текста, филтрирање, итд. Моћнији PLC-ови могу радити над групом интерних меморијских локација и извршити операцију на скупу адреса, на пример, како би симулирали Коначан аутомат. У неким случајевима, корисници могу дефинисати своје специјалне блокове, који се понашају као функције или макрои. Велика бибилотека специјалних блокова, као и брзо њихово извршавање је дозволило програмабилним контролерима да имплементирају веома сложене аутоматизоване системе.



                                     

5. Ограничења и напреднији језици

Мердевинска нотација је најприкладнија за проблеме контроле где су једино захтеване бинарне променљиве, и где је секвенца извршавања примарни проблем контроле. Пошто је извршавање лествица унутар програма секвенцијално, и може бити недефинисано унутар лествице, неке логички проблеми утркивања су могући, и који би изазвали неочекиване резултате. Комплексне лествице је најбоље разбити у неколико простијих корака како би се овај проблем избегао. Неки произвођачи избегавају овај проблем тако што експлицитно и комплетно дефинишу извршавање унутар једне лествице, али програмери и тада могу имати проблема у комплетном схватању реултујућих сложених интеракција.

Аналогне количине и аритметичке операције се тешко исказују у мердевинској логици и сваки произвођач има другачије начине проширивања нотације за ове проблеме. Обично постоји веома ограничена подршка за низове и петље, често изазивајући копирање кода како би се изразили сложени случајеви, који би у другим језицима користили индексиране променљиве.

Како су микропроцесори постали све моћнији, нотације као што су секвенцијални функцијски дијаграми и функцијски блок дијаграми могу заменити мердевинску логику за неке ограничене употребе. Веома велики програмски контролери могу имати цело, или део програмирања одражен у неком дијалекту који је сличан језицима BASIC или Програмски језик C, или неком другом програмском језику који има подршку за рад у оркужењу у реалном времену.

                                     

6. Спољашње везе

  • Пример мердевинске логике за почетнике
  • Програмски примери мердевинске логике
  • "Поглавље 6: мердевинска логика" - Tony R. Kuphaldt
  • Примери мердевинске логике
  • Основна мердевинска логика
                                     
  • Уколико сте тражили програмски језик, погледајте чланак мердевинска логика Мердевине стубе, лестве назив је за помоћне алатке која служи за пењање уз

Users also searched:

...