Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lection 7-14.docx
Скачиваний:
22
Добавлен:
13.03.2015
Размер:
394.29 Кб
Скачать

7-дәріс тақырыбы. Екілік логика көмегімен программаны құру

Екілік логика көмегімен программаны құру процесін карастырайық. Программаланған логикалық операцияларды пайдаланып, біздің CPU кірістері мен шығыстарына қатынаймыз. STEP7-де программалау мысалдары үш фундаментальді программаланған логикалық операцяларға негізделген. Бірінші екілік логикалық операциясы бұл ЖӘНЕ (AND) функциясы. ЖӘНЕ функциясын екі кілт пайдаланылатын коммутациялық сұлбада жақсы көрсетуге болады.

Егер екі кілтте қосылып тұрса (кілт 1 және кілт 2) онда шам жанады

Екінші екілік логикалық операция бұл – НEMECE(OR) функциясы. НЕМЕСЕ функциясы да коммутациялық сұлбада көрсетілуі мүмкін.

Егер кілт 3 немесе кілт 4 қосылып тұрса, онда шам жанады

Үшінші бинарлы логикалық операциясы жады элементі болып табылады (триггер). SR (SR-триггер) функциясы коммутациялық сұлба ішінде кедергінің белгілі бір күйіне әсер етеді және сәйкесінше ары қарай өткізеді...

Аппараттық және программалық қамтамасыздандыруды біріктіру.

STEP7 программалық қамтамасыздандыру көмегімен жоба ішінде өзіңіздің S7 программасын құра аласыз. S7 программаланатын контроллер қорек көзінен, CPU және енгізу-шығару модульдерінен тұрады. Программаланатын логикалық контроллер (ПЛК) сіздің құрылғыңызды бақылап және оны S7 программасы арқылы басқарып отырады. S7 программасында енгізу/шығару модульдеріне адрестер арқылы қатынайды.

STEP7 пайдаланған кезде негізгі әрекеттер тізбегі.

Жобаны құру алдында сіз STEP 7 жобалары әртүрлі ретте құрылуы мүмкін екендігін білуіңіз керек.

Егер шығысы мен кірісі көп үлкен программа жасалса, онда алдымен аппараттық құрылғыларды біріктіріп алу тиімді болады. Оның ерекшелігі STEP7 мүмкін болатын адрестерді аппаратты біріктіру редакторында көрсетуі мүмкін. Егер сіз екінші вариантты таңдасаңыз, онда сіз таңдалған компоненттерге байланысты әр адресті өзіңіз анықтауыңыз керек, және бұл адрестерді STEP 7 арқылы шақырта алмайсыз.

Аппаратураны біріктірген кезде адрестерді анықтап қана қоймай, модуль параметрлері мен қасиеттерін де өзгертуге болады. Мысалы, егер бірнеше CPU жұмыс істеу қажет болса, онда біз осы CPU-дің МРІ адрестерін сәйкестендіруіміз керек.

Негізгі әдебиет: 1 [180-184].

Қосымша әдебиет: 7 [120,123].

Бақылау сұрақтары.

1. Екі кілті бар коммутациялық сұлба.

2. STEP7 аппараттық және программалық қамтамасыздандыруы.

3. STEP7 жүйесін жасау құрылымы.

4. STEP7-де көп деңгейлі программаларды құру ерекшеліктері.

8-дәріс тақырыбы. Программалаудың стандартты тілдері

ХЭК стандарттанының пайда болу себебі. CoDeSys жобалау жиынтығының ерекшеліктері. CoDeSys жұмысының жүйелілігі.

1979 жылы Халықаралық электротехникалық Комиссия (ХЭК) төңірегінде аппараттық құралдар, монтаж, тестілеу, құжаттама және байланыстарды қоса отырып, ПЛК мәселелері бойынша техникалық эксперттер тобы құрылды. Стандарттың бірінші варианты 1982 жылы баспадан шығарылды. Алынған құжаттың күрделілігіне байланысты оны бірнеше бөлімге бөлуге шешім қабылданды. Қазіргі кезде стандарт келесі бөлімдерді қосады.

1 – бөлім. Жалпы ақпарат.

2 – бөлім. Тесттерге және қоңдырғыларға қойылатын талаптар.

3 – бөлім. Программалау тілі.

4 – бөлім. Қолданушының жеткешілігі.

5- бөлім. Хабарландыру спецификациялары.

6- бөлім. Өнеркәсіптік желілер.

7- бөлім.

8- бөлім. ПЛК тілдерін тарату және қолданудың жетекшілік принциптері.

Бастапқыда стандарт 1131 нөмірі болды, 1997 жылдан бастап 5 сандық белгіленуге көшті. Енді стандарттың мемлекеттік версиясының дұрыс аталуы – ХЭК 61131. 3-ші бөлімдегі программалау тілдің стандарты ХЭК 61131 – 3. Стандартты қабылдағанан кейін аппаратты – тәуелсіз кітапханаларды құру мүмкіндігі пайда болды. Олар реттегіштер, сүзгіштер және т.б.

Машинаны жобалаған инженер басқару программасын өзеркінші жазуға мүмкіндігі болу керек. Электронды сұлбалармен жұмыс істеп үйреніп қалған инженерге LD және FBD тілінде программалау өте жеңіл. Егер ол Pascal және С тілдерін білсе, онда ST тілі оған ешқандай қиындық тудырмайды.

ХЭК стандартының программалау тілдері:

(SFC) Sequential Function Chart – алгоритмдік әрекеттерді программалау үшін тізбектелген функционалды сұлбалар тілі;

Ladder Diagram (LD) - булево операциялары үшін арналған релелі диаграммалар тілі.

Function Block Diagram (FBD) – күрделі циклдық операциялар үшін арналған функционалды блоктар тілі.

Structured Text (ST) - циклдық операциялар үшін арналған құрылымдық мәтіндік тіл.

Instruction List (IL) – төменгі деңгейдегі операциялар үшін нұсқамалар тілі.

8.1. Контроллердің белгіленуі мен құрылымы

Кез келген компьютермен басқарылатын машинаның құрылым бөлігі болып басқару жүйесі табылады. Басқару жүйесі өзара байланысты аппараттық және программалық бөліктерден тұрады. Машинаның логикалық жұмысын немесе компьютермен басқарылатын құрылғы басқару контроллері деп аталады. Техникалық түрде контроллердің қалыптасу жолдары өте көп. Реле, реттеуіштер, таймерлерден және т.б. құрылған контроллерлер белгілі. Олар қатты логикалық жүйені айқындайды. Басқарылатын техниканың қалыптасуы басқару жүйесінің монтажды схемасын қайта жасамай, жұмыс алгоритмін өзгертпеуге болатын басқару құрылғысын құруды қамтамасыз етеді. Нәтижесінде, «қатты» логикалық басқару жүйесін логикалық жұмыс программалы түрде берілген басқару техникасына алмастыру тәсілі туындайды. Осылайша, программаланатын логикалық контроллерлер (ПЛК) дүниеге келді. Алғаш рет ПЛК АҚШ-та автомобиль өнеркәсібінде конвейерлі жинау өндірісін автоматтандыруда қолданылды (1969 ж.).

Кіріс Шығыс

Анал.

Анал.

Сандық

Сандық

Аппараттық және программалық бөліктері

1-сурет. Контроллердің жұмыс істеу принципі

Автоматика жүйесінде аппаратты контроллер қарапайым ПК-дан (микропроцессорлық жүйені ұсынады) 1-суретте көрсетілгендей кіріс пен шығыстар санының көптігімен ерекшеленетін микропроцессорлық жүйені ұсынды. Осыған қарамастан, сәйкесінше аз қуатты электрлік сигналдарына арналған кірістері мен шығыстары аналогты да, дискретті де болуы мүмкін. Кейбір жағдайларда, нақты құрылғыларға немесе автоматиканың басқа түрлеріне арналған арнайы кіріс-шығыстары болады. Бұл контроллерде атқару барысында түрлі деңгей мен түрлі функционалды мүмкіншіліктері бар.

Басым әмбебап болып көп санды функциялардан жасалған программалық контроллерлер табылады. Мұндай контроллерлерді программалы логикалық контроллерлер немесе жай контроллерлер деп атайды. Тұрмыстық техникамен қатар автоматика жүйесіндегі аз деңгейлі автоматтандыру барысында программаланатын микроконтроллерлер немесе программаланбайтын интегралды схемалар қолданылады.

8.2. ХЭК стандарттарының пайда болу себебі

«Пограммаланатын логиаклық контроллерлер» анықтамасында «программаланатын» сөзі негіз болатындықтан, ПЛК-ны қалай программалау керектігі жайлы жедел сұрақ туындайды. Қазіргі уақытта контроллерді программалау үшін персоналды компьютерлер (ПК) қолданылады. Электрониканың дамуы ПЛК-ның кішіреюіне алып келді. Қазіргі таңда үлкен емес дисплей мен программалаудың әдістері орнатылған, кішірейтілген программаланатын контроллелер кездеседі, мұндай контроллерлер программаланатын реле атымен таныс. Қазіргі заманғы бір ПЛК ондаған реттеуіштер, жүздеген таймерлер мен мыңдаған релелерді алмастыра алады.

Жетпісінші жылдар соңында өте қиын жағдайлар туындады. Әрбір өндіруші өзінің жеке программалау тілін құрастырды, сондықтан әрбір өндіруші контроллері программалы түрде сәйкестенбеді. Сонымен қатар аппараттық сәйкес келмеу қиыншылықтары да туындады. ПЛК-ны басқа өндіруші өніміне ауыстыру үлкен мәселеге айналды. ПЛК тұтынушысы тек бір ғана фирма өнімін қолдануға мәжбүр болды, олай болмаса, түрлі тілдерді оқуға немесе сәйкес құрал-саймандарды иемденуге күш жұмсауы керек еді.

Осылайша 1979 жылы Халықараралық Электротехникалық Комиссия (ХЭК) өкілдері көмегімен ПЛК мәселесі бойынша арнайы техникалық эксперттер тобы құрылды. Олардың басты мақсаты аппаратты жүйелерге стандартты талап ету, монтаж ережелері, құжаттандыру болып табылды. 1982 жылы ең бірінші ХЭК 1131 атағына ие болған нұсқа жарық көрді. Құрастырылған құжаттың күрделілігіне орай, оны бірнеше бөліктерге бөлу ұсынылды. Программалау мәселелеріне «ПЛК программалау тілдері» стандартының үшінші бөлімі арналды. 1997 жылдан бастап ХЭК 5 санды белгіленулерге көшуіне орай, қазіргі таңда программалау тілдеріне арналған халықаралық стандаттау бөлігі версиясының дұрыс атауы ПЛК-ХЭК 61131-3. ХЭК жұмысшылар тобымен өте жақсы шешім қабылданды. Сол уақытта ПЛК программалау стандартында болған көптеген тілдер арасынан көп қолданылатын 5 тіл таңдалынды. Тілдер спецификациясы жасалып болғандықтан, кез келген осы тілдерде жазылған программаларда стандартталған элементтер мен типтер жинағын қолдану мүмкін болды. Осы сияқты қадамның өркендеуі ПЛК-ны программалауға білімнің түрлі аясындағы мамандардың ПЛК-ны прогараммалауға мүмкіндік туды. Ол мамандар қатарына: LD-да программалайтын релелі автоматика мамандары (немесе электриктер), FBD тілі ыңғайлы болатын жартылайөткізгішті схематехника мен автоматты реттеуіш мамандары, компьютерге ассемблер тілінде программа жазатын программистер (ПЛК үшін IL тілі сәйкес келеді), жоғары дәрежелі тілдер (ST тілі), программалаудан алшақ маман-технологтың өзі программалаудың құралын – SFC тілін иемденді. ХЭК рпограммалау жүйесін енгізу үшін кәсіби программистер қызметінен толығымен бас тартпағанымен, осы мамандыққа талаптар төмендеп, осыған орай ПЛК программистерінің еңбектері үшін өтемақы мөлшері де азайды. Тілдерді стандарттау ПЛК тұтынушыларының нақты өндірушіге бағынышты болу мәселесін шешуге мүмкіндік берді. Қазіргі заманғы барлық ПЛК ХЭК 61131-3 программалау құралдарымен жабдықталған, ал ол өз кезегінде, контроллер тұтынушыларының жұмысын жеңілдетіп қана қоймай (түрлі фирмалар ПЛК қайта оқымай-ақ қолдануға болады), сонымен қатар, ПЛК өндірушілерінің көптеген мәселелері шешілді (басқа ПЛК өндірушілерінің компонеттерін қолдануға мүмкіндік болды). Кейбір бұрынғы ПЛК өндірушілері қазіргі уақытқа дейін өздерінің жеке тілдерін қолданып жүр. Стандарт ПЛК программалармен айналысатын маманның мүмкіншіліктерін нақты кеңейтті. Құрал-жабдықтарының стандртты жиынтығы бола тұра, кез келген фирма машинасының әрбір түйінін жөндей алатын автомеханик секілді, ХЭК 61131-3 тілдерін меңгерген маман үшін кез келген қазіргі заман ПЛК программасын тәртіпке келтіру оңай болып табылады. Бұл ПЛК-ны программалау маманының фирмаға немесе фирманың маманға байланыстылығын алшақтатты. Осындай мамандандырудың нәтижесі персоналды компьютерлер индустриясы мысалында тамаша көрсетілген: жоғары классты аппараттық жүйелерді шығаратын компаниялар бар, олар оны басқаларға қарағанда өте жақсы жасай алады, және программалық қамтамасыздандыру шығаруды қажет етпейді, осы кезде программалық жүйе саудасында тәжірибе мен технологияға бай өз көшбасшылар қатары көбейді. Стандартизация арқасында бірлестік орнайды және тұтынушы өз еркімен аппараттық, рпограммалық құралдарының ең жақсысын таңдай алды. ХЭК 61131-3 программалау жүйесі облысында түрлі деңгей жүйелеріне бөлшектеу айқындалады. Мәселен, стандартта міндетті талаптар саны көп емес, осыған орай элементтер жиынтығының шекетелуін ұстанатын жеңілдетілген құралды құруға мүмкіндік туды.

Келесі ХЭК 61131-3 жобалау жиынтықтары ең көп танымал болды: CoDeSys, ISaGRAF, MULTIPROG wtOpenPCS. SoftCONTROL, iCon-L.

8.3.CoDeSys жобалау жиынтығының ерекшеліктері

Бүгінгі күні ХЭК программалау жүйелері саудасында CoDeSys Controllers Development System сөздерінен құрылған, неміс компаниясы 3S-Smart Software Solutions GmbH жиынтығы көшбасшылық танытады. Оны бүкіл әлемде 190 компания қолданады, олардың көпшілігі құрылғы өндіру озаттары немесе өндірісті автоматтандыру жүйелері. CoDeSys ПЛК басқарылуымен шығарылатын өнім диапазоны өте үлкен темекіден бастап, яхта, неміс автокөліктеріне дейін қолданады.

Төменде бастау кезеңдеріне көңіл бөліп, программалау аясында жалпы түсінік береміз. Орыс тіліндегі анық ақпаратты www.codesys.ru. сайтында ала аласыздар. CoDeSys-те әрбір стандартты программалау тіліне тілдеріне 5 арнайы редактолар бар: : Instruction List – инструкциялар тізімі (IL), Function Block Diagram - Функционалды блокты диаграммалар (FBD), Ladder Diagram - Релелі-жанасу схемлар (LD), Structured Text- құрамдалған мәтін (ST), Sequential Function Chart-кейінгі функционалды схемалар (SFC). Редакторлар программа енгізілуін жылдамдататын көмекші құралдармен жабдықталған. Бұл енгізу ассистенті ауысулардың автоматты хабарлануы, енгізудің интеллектуалды түзетулері, түрлді-түсті белгілену мен енгізу барысында синтаксистік бақылау, масштабтау, графикалық элементтердің автоматты түрде қосылысы мен ажыратылуы. Бір жобада бірнеше ХЭК тілдерінде жазылған программаларды біріктіруге болды. Тіл таңдауда ешқандай талаптар қойылмайды. Мысалы, Ресейде ST тілі көп тараған. Бұл Паскаль тіліне икемделген мәтіндік тіл. Танымалдылығы бойынша екінші орында FBD графикалық тілі, содан соң LD тіді.

Программаларды дайындау құралынан басқа CoDeSys жобаны басқару мен визуализация құралдарын, Желі мен ПЛК конфигураторы, отладчик пен эмуляторларды енгізеді. CoDeSys негізінде оны ХЭК көшбасшы кешендері тобында ерекшелейтін бірнеше маңызды жобалар енгізілген, CoDeSys бастапқыда кәсіби түрде пайдалану үшін ойластырылған, сондықтан ХЭК тілдерінің қалыптасу барысында ешқандай шектеулер болмайды. Керісінше, стандартқа сай келмейтін толықтауларды ұстанады. CoDeSys қолданбалы программаларды машиналық кодтарға айналдырады., сондықтан тұтынушы құратын программалар тез әрекет етеді. CoDeSys жиынтығы жедел түрде даму үстінде, қазіргі кезде көптеген болжамдарды жобалаудың бақылау жүйелері (ENI), қозғалысты бақылау қосымшаларын құру құралдары (SoftMotion), web-визуалдау, танымал функциялар кітапханасы сияқты кеңейтулер енгізілуде, ұжымдаса құрылған тұтынушы оның қолданбалы CoDeSys программасы САА мүшесі болатын кез келген компанияның кез келген контроллерінде жұмыс істей алатындығында сенімді бола алады. Тұтынушы оның қолданылатын құралдары бүкіл әлемде мыңдаған тұтынушылармен тексерілгендігінде де сенімді бола алады. Тұтынушы әрқашан өзінің қиыншылықтарын осы сияқты мәселелерді бастан кешірген үлкен ұжымда қарастырып, керекті көмегін ала алады.

Программалау ортасынан басқа, CoDeSys жиынтық құрамына: SP RTE (ПК-да ПЛК эмуляциясы), Soft Motion (қозғалысты басқару ортасының жиынтығы – қазіргі заман ЧПУ жүйелерінің көпмөлшерлі интерполяциясына дейін), ARTI (ПЛК ауыспалыларына символды рұқсаттаманы қамтамасыз етеді) және ENI Server (бір жобамен бірнеше тұтынушының жұмыс істеуі қамтамасыз етеді). Сонымен қатар CoDeSys графикалық мүмкіншіліктерге ие.

8.4.CoDeSys жұмысының жүйелілігі

Ең алдымен жобаға жаңа ат беру қажет, ол жоба файлының аты болады.

Ең бірінші программалық компонент (POU Program Organization Unit) жаңа жобаға автоматты түрде орналасып, PLC_PRG атауын алады. Дәл осыдан жүйенің орындалуы басталып, одан программалық блоктар шақырылады (программалық функциялар мен программалық блоктар). PLC_PRG мәтінін қолмен жазу қажеті жоқ, себебі тапсырма конфигурациясы Task Configuration қосымшасында анықталады.

Жеке жобаны құру үшін, ең ладымен ПЛК конфигурациясының өз контроллерінің аппараттық жүйелерімен сәйкестігін анықтау керек. Осыдан кейін мәселенің шешілуіне қажетті программалық компонеттер құрылады. Содан соң құрылған компонеттер үшін таңдалған тілде программалық код жазылады.

Программалау біткен соң, қателер түзетіліп (егер олар бар болса), жоба құрастырылады. Құрастыруды жобалау кезінде де орындауға болады. Барлық қателер түзетілгеннен кейін, жөндеулерге кірісуге болады.

Жөндеу үшін simulation және контроллерге «қосылыңыз» деген жалауша шығады. Программа онлайн режиміне өтеді. Содан соң PLC Configuration терезесі шығып, жобаның дұрыс орындалуы тексеріледі. Ол үшін контроллер шығысы дұрыс сезетіндігін тексеру мақсатында, кіріс деректері өзгертіледі. Ауысулардың мәнін қарау үшін менеджер қолданылады. Мәндерді бақылап отыру үшін, ауысулардың тізімін беруге болады.

Жұмыс коды қате болған жағдайда тоқтату нүктелерін енгізуге болады. Процесс белгіленген нүктеде тоқтаған кезде, осы уақыттағы жобаның ауысу мәндерін қарауға болады.

Жобаны қадам режимімен (single step) орындай отыра, программаның логикалық түзулетулерін көруге болады.

Негізгі әдебиет: 5[264-277],7 [111-169].

Қосымша әдебиет: 9[233-245]

Бақылау сұрақтары:

1. Контроллер дегеніміз не?

2. ХЭК-61131-3 стандартының пайда болуы?

3. ПЛК логикасын құру үшін қандай шартты белгілер қолданылады?

4. CoDeSys жобалау кешенінің ерекшелігі?.

5. ПЛК-дің IL програмалау тілі дегеніміз не?

6. LD тілі көмегімен программалау қалай жүзеге асады?

7. FBD тілінің артықшылығы неде?

9-дәріс тақырыбы. ХЭКтің программасында берілгендері мен айнымалылары.

9.1. Деректердің типтер

ХЭК тілдерінде деректердің айнымалы типтері маңызды роль атқарады. Айнымалының деректер типі, көрсеті диапазоның, ақпарат түрін және көптеген жіберілетін операцияларды анықтайды. ХЭК тілдері деректер типін қатаң тексеру идеологиясын қолданады. Бұл кез келген айнымалыны оны хабарландырғаннан кейін ғана қолдануға болатының білдіреді. Егерде олардың типтері бірдей болса, онда бір айнымалының мәнін басқасы иемдене алады. Кейде өзіне сәйкес типті айнымалы мәнінің иемденуі мүмкін, мысалы, екі мәнді де қабылдай алатын логикалық айнымалыны (логикалық 1 және 0 ) SINT (-128…+127) типті айнымалыға түрлендіруге болады, бірақ керісінше болмайды.

ХЭК - тің деректер типтері екі категорияға бөлінеді – элементарлы және құрама. Элементарлы немесе базалық типтер құрама типтерді тұрғызу үшін негіз болып табылады. Элементарлы типке бүтін сан, логикалық, қисынды типтер, жолдар, уақыт интервалы, тәулік уақыты және уақыты жатады. Құрама типтерге санаушылар, массивтер, құрылымдар, массив құрылымы және т.б. жатады. Төменде 9.1-кестеде берілген типтің бүтін санның өзгеру шектерінің нұсқаулары, сонымен қатар жады көлемі берілген.

9.1 - кесте

Санды өзгертудің шектеулері

Байтпен берілген

п/п

Бүтін санды тип

Төменгі шек

Жоғарғы шек

жады

көлемі

1

BYTE

0

255

1

2

WORD

0

65535

2

3

DWORD

0

4294967295

4

4

LWORD

0

263

8

5

SINT

-128

127

1

6

INT

-32768

32767

2

7

DINT

-231

231-1

4

8

LINT

-263

263-1

8

9

USINT

0

255

1

10

UINT

0

65535

2

11

UDINT

0

232-1

4

12

ULINT

0

264-1

8

Бүтін сандар екілік, сегіздік, оналтылық жүйелерде көрсетіле алады, яғни # белгінің алдында негізгісі жазылады, мысалы:

9.2 - кесте

екілік

2#0100_1110

сегіздік

8#116

оналытылық

16#4Е

ондық

78

Иденфикатор алдында астын сызуға болмайды немесе екі рет белгілеуге болмайды.

Бүтін санды типтер бағдарлама алдында жазылуы қажет. Мысалы, мына түрінде

VAR

wVar0,wVar1: WORD;

END_VAR

VAR басталады және END_VAR жолымен аяқталады. Екі айнымалы бүтінсанды тип WORD берілген. Бұл сөз қос нүкте және айнымалы иденфикатордан кейін жазылады. Сөйлемнің аяғында нүктелі үтір жазылады. Бұл жердегі берілгені Венгерлік деп аталатын формада жазылады және оқуға оңай болу үшін иденфикаторлар W префикстері қолданылады.

Логикалық тип

Базалық типке айнымалы логикалық тип BOOL кіреді, булеволық алгебраға жатады. Бұл айнымалылар мына екі мәннің біреуін таңдайды: FALSЕ (жалған) TRUE (ақиқат). Осы айнымалы типтің бастапқы инициализациясында логикалық мәні FALSЕ болады, егерде берілгені басқа мәнге иемденбеген жағдайда. Төменде айнымалы логикалық типтің берілгені мысалда берілген, яғни солардың біреуі бастапқы мәнмен иемденген.

VAR

bVar1: BOOL:= TRUE;

wVar2: WORD;

END_VAR

Логикалық айнымалы мәнің бүтінге түрдендіру кезінде FALSЕ 0 береді, ал TRUE 1.

Нақты типтер

Базалық айнымалы типке негізгі айнымалы типтер REAL, LREAL жатады, яғни рационалды сандарды экспоненциалды формада келтіру үшін қолданылады.

Уақыт интервалы

Сонымен қатар базалық айнымалы типке бірнеше уақытпен байланыскан тағайындаулары бойынша айырмашылығы бар типтер кіреді. Айнымалы тип TIME T# қысқаша түрде уақыттық интервалды сипаттайды. Интервал әр түрлі сипатталады, мысалы, уақытты секундпен (s) немесе миллисекундпен (ms) сипаттайды. Осы типте уақыт сағатпен, минутпен және секундпен сипатталуы мүмкін. TIME

VAR

TIME: TIME:= t#16h_15m_10s;

END_VAR

Мұнда TIME айнымалы типі жазылған, яғни TIME1 16сағат .15 мин .10 секунд тең болады. Бос орын оқылуға ыңғайлы болуы үшін арналған. Сонымен қатар ХЭК программасы бас әріпті және жолдарды айыра алмайды. Тәуліктің уақытын және күнін анықтайтын типтер DATE (D), TIME_OF_DAY (TOD), DATE_AND_TIME (DT). Оның жазылу ережесін келесі мысалдан қарастыруға болады: күн d #2009-01-01 яғни мынаны білдіреді 1.01.2009; күн уақыты TOD #15:03:20.25, яғни мынаны білдіреді 15 с .3 Мин .20,25 С .; күнтізбелік күн және уақыт dt #2009-01-21-15:05:21.47 бұл 21 қаңтар 2009 ж .15 с .5 М .21,47 С . Бұл берілгендердің типі төрт байтты құрайды.

Базалы айнымалыға сонымен қатар айнымалы типтің жолдары STRING жатады, яғни мәтінді ақпаратты қамтиды. Жолдардың ұзындығы символдардың санымен анықтайды. Кейде айнымалы келесі мысалда берілген жолдар бойынша берілсе иннциализицияланады.

VAR

StrO: STRING (20):= 'Ну!';

END _VAR

Егерде жолға таспа бейнесімен берілмеген кодты сұраса, онда $ белгісі қолданылады, содан кейін 16- жүйедегі код орналасады немесе арнайы құрылған символдар орналасады, мысалы $ р жолдардың аудармасын анықтайды.

9.2. Қолданушылардың типтері

Қолданушылардың берілген типтерінің анықтамасы жоба дейгейінде (матрицадан бөлек) кілтті сөзбен TYPE және END_TYPE жолдарымен аяқталады.

(ARRAY) матрицасы көптікті сипаттайды және бір типті базалы элементтерден құралады. Төмендегі 1 мысалда INT 10 элементтерімен бір өлшемді матрица берілген, ал 2 мысалда BOOL типті элементінде 5 жолды және 7 баєана болатын екі өлшемді матрица берілген.

Мысал 1.

VAR

Xbak: ARRAY[0..9]OF INT;

END_VAR

Мысал 2.

VAR

bbak: ARRAY[0..4,0..6]OF BOOL;

END_VAR

Матрица элементтеріне кіру үшін келесі синтаксис қолданылады:

< матрица аты> [Индекс1, Индекс2,Индекс3].

База элементтерінің жаңа берілген типтерін құру үшін қолданушы типтернінің Құрылымы қолданылады.

Матрицаларға қарағанда құрылым жаңа берілген типті нақты енгізеді. Яғни бұл айнымалыны нақты қолдану үшін кем дегенде екі жариялау қажет. Ең алдымен құрылымын жазу керек. Қўрылымды суреттеуі жалпылай жоба деңгейінде болады . Суреттелген қўрылымды идентификатор ( қўрылым аты ) алады. Бірақ бұл айнымалы емес , бұл жаңа берілген тип. Енді, бұл идентификаторды қолдана отырып, неше айнымалы керек екенін жариялау керек және осы база типтеріне де байланысты. Қўрылымды жариялауы кілтті сөзбен басталады STRUCT және END_STRUCT жолымен жалпы аяқталады, синтаксисты жариялау үшін келесідей болады :

ТУРЕ <құрылым аты>: STRUCT .

<айнымалының жариялауы 1 >;

<айнымалының жариялауы п>;

END_STRUCT

END_ТYPE

Құрылым атымен жариялау мысалы Auto:

ТУРЕ Auto: STRUCT

Start: TIME;

Distance: INT;

Load, Оn: BOOL;

Articl: STRING(16);

END_STRUCT

END_ТYPE

Бастапқы инициализация кезінде барлық элементтердің мәндерін беру қажет емес . Бастапқы берілмеген элементтер ноль мәнін алады.

Қўрылым элементтеріне кіру үшін келесі синтаксис қолданылады :

<Айнымалы аты>. <Элемент аты>

Мысалы:

Auto.On := TRUE;

Құрылымдар басқасында қоса алады , қўрылымдар , матрицалар және өздері матрицалар қўрастыра алады . Егер қўрылым ішіне салынєан қўрылымды құраса , онда ішіне салынєан қўрылым элементтеріне кіру үшін қўрама ат қолдануымен жїзеге асады, екі нїкте құрайды, мысалы, train . start auto , бұл auto құрылымы train қўрылымына ішіне салынєан.

Басқа қолданушы тип - Қайта санау бірнеше тізбекті айнымалы мәндерді анықтауға мүмкіндік береді және аттарын иемдене алады. Сонымен қатар құрылым тәрізді қайта санау берілген жаңа типті құрайды және жоба деңгейінде анықталады:

ТУРЕ <Қайта санау аты> :

(Элемент О>, < Элемент 1>, ... < Элемент n);

END _ТУРЕ

Жарияланған айнымалы тип бўдан әрі қарай < қайта санау аты> саналєан мәндерді ғана қабылдай алады . Инициализация кезінде айнымалы тізімнен бірінші мәнді алады . Егерде қайта санау элементтерінің сандық мәндері айқын көрсетілмесе, оларєа 0 бастап тізбекті көбеюші сандар иемденеді. Қайта санау элементтері бұл - шектеулі мәндер жиынымен INT типінің саны. Егер қажетті жағдайда , элемент мәндеріне қайта санау типінің жариялауы нәтижесінде иеленуге болады.

ТУРЕ ТЕМРО: (Adagio := 1,Andante := 2,Allegro := 4);

END_ТYPE

Элемент идентификаторы айнымалы мәні тәрізді қайта санау бағдарлама бойынша жүзеге асады:

VAR

LiftTemp : ТЕМРО := Allegro;

END_VAR

9.3. Айнымалылар

Бағдарлама бойынша айнымалының аты және типі болады . Айнымалы баєдарламасында кіріс немесе шығыс контроллерді ўсына алады , берілгені шапшаң немесе жадысы тәуелсіз болады. Сонымен қатар айнымалы иденфикатордың атын жазғанда кейбір ережелерді сақтау қажет. Мысалы , цифрды бірінші орынєа қоюға болмайды ; идентификаторда ашық жер қалдыруға болмайды; ашық жер орнына ашық жер символы қолдануєа болады; екі ашық жер рўқсат етілмейді ; астын сызылған символ кез келген символ сияқты қабылданады , т.с.с. а_с и ас_ әр түрлі айнымалыны сипаттайды; идентификатор арасында ашық жер қалдыруға болады; кириллица символдары рўқсат етілмейді .

Программисттің көз қарасы бойынша контроллерде бірнеше әр түрлі облыстар болады, олар:

· кіріс облысы (1 );

· шығыс облысы ( 0 );

· тіке адрестелетін жады облысы ( М );

· пайдаланушының шапшаң жадысы .

Бастапқы үшеуі ПЛК-ға тәуелді. Нақты адреспен байланысы тура адреске бағыттайды . Тура адреске келесі синтаксис қолданылады:

<Идентификатор> АТ%<тура адрес>: тип;.

Тура адрестің бірінші әріпі жады облысымен байланысты болады, т.с.с. I,Q немесе M. Екінші әріп тура адрестің типіне байланысты болады:нет символасимвол жоқ - бит, Х- бит, В-Байт, W -сөз, D- екі сөз, L-ұзын сөз. Айнымалы тура адрестің мысалы dwFAR AT%MD2 BYTE;

Сонымен қатар айнымалылар їшін разряд бойынша адресі қолданылады, бөлек биттермен жұмыстар үшін ыңғайлы болады. Мысалы, адрес көрінісі dwFAR AT%IX64.3: BOOL; логикалық айнымалының адресін контроллердің кірісіндегі екінші биттің 64 байтында көрсетеді.

Негізгі әдебиет: 1[150-250],7 [115-122]

Қосымша әдебиет: 9[230-250]

Бақылау сұрақтары:

1. Базалық деректер типі?

2. Айнымалы дегеніміз не және оларды қалай анықтаймыз?

3. Пайдаланушы деректер типі?

4. ХЭК стандартының деректер типі?

5. Қарапайым деректер типі?

11-дәріс тақырыбы. ST (Structured text) тілі - Құрылымдандырылған мәтін

ST тілі шартты операторда (IF…THEN…ELSE) және циклдарда (WHILE…DO) қолданылуы мүмкін жоғарғы деңгейдегі нұсқаулар жинағын өзімен бірге көрсетеді.

Мысалы:

IF value<7 TNEN

WHILE value<8 DO

value:=value+1;

END_WHILE;

END_IF;

Өрнек

Өрнек – бұл оның есептелуінен кейін анықталған мәнді қайтаратын құрастырма.

Өрнек операндылардан және операторлардан тұрады. Операнд тұрақты, айнымалы, функционалды блок немесе басқа өрнек болуы мүмкін.

Өрнектердің есептелуі

Өрнектердің есептелуі приоритет ережелеріне сәйкес орындалады. Ең жоғарғы приоритеті бар оператор бірінші, ең төменгі приоритеті бар оператор екінші орындалады және т.с.с. барлық операторлар орындалмайынша.

Бірдей приоритеті бар операторлар солдан оңға орындалады.

Келесі кестеде приоритет тәртібінде орналасқан ST операторлар тізімі келтірілген.

11.1 - кесте

Операциялар

Белгіленуі

Приоритет

Жақшадағы өрнек

(Өрнек)

Ең жоғарғы

Функцияларды шақыру

Функциялар аты

(параметрлер тізімі)

Туындыға возведение

EXPT

Белгіні ауыстыру

-

Сандық толықтыру

NOT

Көбейту

*

Бөлу

/

Бөліндіден қалдық

MOD

Қосу

+

Алу

-

Салыстыру

<,>,<=,>=

Теңсіздік

< >

Тендік

=

Логикалық ЖӘНЕ

AND

Логикалық (исключающий) НЕМЕСЕ

XOR

Логикалық НЕМЕСЕ

OR

Ең төменгі

Төменде ST нұсқауларын қолдану мысалы келтірілген:

Нұсқаулар типі

Мысал

Меншіктеу

A:=B; CV:=CV+1; C:=SIN(X);

Функционалды блокты шақыру және FB шығысты қолдану

A:=CMD_TMR.Q

RETURN

RETURN;

Меншіктеу операторы

Меншіктеу операторының алдында операнд (айнымалы немесе адрес) болады, меншіктеу операторынан кейін тұрған өрнектің мәніне меншіктеледі.

Мысалы

Var1:=Var2*10

Бұл операциядан кейін Var1 Var2-ге қарағанда 10 есе көп мәнді қабылдайды.

RETURN нұсқауы

RETURN нұсқауы шарттан тәуелсіз POU шығуға мүмкіндік береді.

IF нұсқауы

IF нұсқауын қолдана отырып, шартты тексеруге болады, және осы шарттан тәуелсіз қандай да бір әрекетті орындау.

Мысалы:

IF temp<17

THEN heating_on:=TRUE;

ELSE heating_on:=FALSE;

END_IF

Бұл мысалда жылыту (heating) қосылады, температура 170 градустан төмен түскенде, әйтпесе ол өшірілген күйде қалады.

CASE нұсқауы

CASE нұсқауы көмегімен бүтінсанды айнымалының бірнеше әртүрлі мәндерімен әртүрлі нұсқауларды қоюға болады.

FOR циклі

FOR көмегімен қайталанатын процестерді программалауға болады.

WHILE циклі

WHILE циклі FOR циклі сияқты қолданылуы мүмкін, тек бір айырмашылықпен (шығыс шарты логикалық өрнекпен анықталады). Бұл берілген шарт дұрыс болғанға дейін цикл орындалады.

Снтаксис.

WHILE <Boolean expression>

<Instructions>

END_WHILE

<Instructions> бөлімі циклды түрде орындалады, егер <Boolean expression> АҚИҚАТ (TRUE) болғанға дейін. Егер <Boolean expression> ЖАЛҒАН (FALSE) тен болса, онда <Instructions> бөлімі бірде бір рет орындалмайды. Егер <Boolean expression> FALSE мәнің ешқашан қабылдамаса, онда <Instructions> бөлімі шексіз орындалатын болады.

REPEAT циклі

REPEAT циклі WHILE циклінен айырмашылығы, циклдан шығу шартының бірінші тексеруі цикл бір рет орындалғаннан кейін іске асырылады. Бұл шығу шартына тәуелсіз цикл бір рет болсын орындалатының білдіреді.

Синтаксис:

REPEAT

<Instructions>

UNTIL <Boolean expression>

END_ REPEAT

<Instructions> бөлімі, <Boolean expression> TRUE бергенге дейін циклды түрде орындалады.

EXIT нұсқауы

Егер EXIT нұсқауы FOR, WHILE, REPEAT циклдарында кездессе, онда цикл шығыс шартының мәніне тәуелсіз өзінің жұмысын аяқтайды.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]