Кіріспе

Өнеркәсіптік контроллерлер үшін бағдарламалау тілі – бағдарламалау тілі. Сатылы логика бастапқыда өндірісте және процестерді басқаруда қолданылатын релелік тізбектердің дизайны мен құрылысын жазбаша түрде құжаттау әдісі болған. Релелік тізбектегі әрбір құрылғы саты диаграммасында осы құрылғылар арасындағы байланыстармен бірге символ арқылы бейнеленген. Сонымен қатар, релелік тізбектен тыс сорғылар, жылытқыштар сияқты басқа да элементтер де саты диаграммасында көрсетілген. Сатылы логика релелік логикалық аппараттық схемаларға негізделген графикалық диаграмма түрінде бағдарламаны көрсететін бағдарламалау тіліне эволюциялады. Сатылы логика өндірістік басқару саласында қолданылатын бағдарламаланатын логикалық контроллерлердің (ПЛК) бағдарламалық жасақтамасын жасау үшін қолданылады. Атау осы тілдегі бағдарламалардың екі тік рельсі мен олардың арасындағы көлденең сатылары бар сатыға ұқсас болуына байланысты берілген. Бұрын саты диаграммалары бағдарламаланатын контроллерлердің бағдарламаларын жазу үшін қолданылатын жалғыз тәсіл болса, бүгінде басқа форматтар IEC 61131 3 стандартында стандартталған (мысалы, графикалық сатылы логикалық формаға балама ретінде, IEC 61131 3 стандартында C тіліне ұқсас Құрылымдық мәтін деп аталатын тіл де бар).

Шолу

Басқыш логикасы ПЛК-ларды бағдарламалау үшін кеңінен қолданылады, онда процестің немесе өндіріс операцияларының реттік басқарылуы қажет. Басқыш логикасы қарапайым, бірақ маңызды басқару жүйелері үшін немесе ескі сымдалған релелік тізбектерді қайта жасау үшін пайдалы. Бағдарламаланатын логикалық контроллерлер күрделенген сайын, ол өте күрделі автоматтандыру жүйелерінде де қолданыла бастады. Көбінесе басқыш логикасының бағдарламасы компьютерлік жұмыс станциясында жұмыс істейтін HMI бағдарламасымен бірге қолданылады. Реттік басқару логикасын басқыш схемасы түрінде бейнелеуге ынталандырған нәрсе – зауыт инженерлері мен техниктеріне FORTRAN немесе басқа да жалпы мақсаттағы компьютерлік тіл сияқты тілді қосымша оқытусыз бағдарламалық жасақтаманы жасауға мүмкіндік беру болды. Дамыту және техникалық қызмет көрсету таныс релелік аппараттық жүйелерге ұқсастығының арқасында жеңілдетілді. Басқыш логикасының іске асырылуы реттік орындалу және басқару ағыны мүмкіндіктерін қолдау сияқты ерекшеліктерге ие болуы мүмкін, бұл аппараттық құралдарға ұқсастықты шамалы дәл емес етеді. Басқыш логикасын процедуралық тіл емес, ережелерге негізделген тіл ретінде қарастыруға болады. Басқыштағы "басқыш" – бұл ережелерді білдіреді. Релелермен және басқа да электромеханикалық құрылғылармен іске асырылған кезде, әртүрлі ережелер бір мезгілде және дереу орындалады. Бағдарламаланатын логикалық контроллерде іске асырылған кезде, ережелер әдетте бағдарламалық жасақтамамен үздіксіз циклде немесе "скандалауда" реттік түрде орындалады. Циклды жеткілікті жылдам орындау арқылы, әдетте секундына бірнеше рет, бір мезгілде және дереу орындалу әсеріне қол жеткізіледі. Бағдарламаланатын контроллерлерді дұрыс пайдалану үшін басқыштардың орындалу ретінің шектеулерін түсіну қажет.

Күрделі логика

Бұл - логикалық баспалдақ бағдарламасындағы екі баспалдақтың мысалы. Шын дүниедегі қолдануларда жүздеген немесе мыңдаған сатылар болуы мүмкін. Әдетте, күрделі баспалдақ логикасы солдан оңға және жоғарыдан төменге қарай "оқылады". Әрбір сызық (немесе саты) бағаланғанда, сатының шығыс тізбегі баспалдақтың келесі сатысына кіріс ретінде жіберіледі. Күрделі жүйеде бағалау ретімен нөмірленген көптеген "сатылар" болады:

Бұл 2-саты үшін сәл күрделі жүйе. Бірінші сызық бағаланғаннан кейін, "А/С" шығыс тізбегі 2-сатыға жіберіледі, содан кейін ол бағаланады және "Салқындату" шығыс тізбегі "Компрессор" шығыс құрылғысына немесе баспалдақтағы 3-сатыға жіберіледі. Бұл жүйе өте күрделі логикалық жобаларды бөліп, бағалауға мүмкіндік береді.

Шектеулер мен кейінгі тілдер

Сатылық белгілеу екілік айнымалылар ғана қажет болатын және екілік шамалардың өзара байланысы мен реттілігі бақылаудың негізгі мәселесі болып табылатын бақылау мәселелері үшін ең қолайлы. Барлық параллель бағдарламалау тілдеріндей, операциялардың орындалу реті анықталмаған немесе шатас болуы мүмкін; логикалық қақтығыстар пайда болуы мүмкін, бұл күтпеген нәтижелерге әкелуі мүмкін. Бұл мәселенің алдын алу үшін күрделі сатыларды бірнеше қарапайым қадамдарға бөлу ұсынылады. Кейбір өндірушілер бір сатының орындалу ретін нақты және толық анықтау арқылы бұл мәселені шешеді, бірақ бағдарламашылар нәтижедегі күрделі семантиканы толық түсінуде қиындықтарға тап болуы мүмкін. Сатылық логикада аналогтық шамаларды және арифметикалық операцияларды көрсету қиын, және әр өндірушінің осы мәселелерді шешу үшін белгілеуді кеңейтудің әртүрлі әдістері бар. Массивтер мен циклдарға қолдау көбінесе шектеулі болады, нәтижесінде басқа тілдерде индекстелген айнымалыларды қолдануды қажет ететін жағдайларды бейнелеу үшін кодты қайталауға түседі. Микропроцессорлардың қуаты артқан сайын, реттік функция кестелері және функциялық блок диаграммалары сияқты белгілер кейбір шектеулі қолданбалар үшін сатылық логиканы алмастыра алады. Кейбір жаңа ПЛК-ларда бағдарламалаудың барлық немесе бір бөлігі BASIC, C немесе басқа бағдарламалау тілдеріне ұқсас диалектте, нақты уақыт қолданбаларына сәйкес келетін байланыстармен жүзеге асырылуы мүмкін.

Танымалдық

2019 жылы IEEE Spectrum журналы бағаналық логиканы танымал бағдарламалау тілдері тізімінде 52-нің ішінде 50-ші орынға қойды.