upatstvo za rabota so ladder diagram

65
Упатство за работа со програмабилниот логички управувач Универзитет Св. Кирил и Методиј – Скопје, Факултет за електротехника и информациски технологии Институт за автоматика и системско инженерство Скопје, Февруари 2010

Upload: nenad-stavrevski

Post on 04-Apr-2015

519 views

Category:

Documents


17 download

TRANSCRIPT

Page 1: Upatstvo za rabota so Ladder Diagram

Упатство за работа со

програмабилниот логички управувач

Универзитет Св. Кирил и Методиј – Скопје,

Факултет за електротехника и информациски технологии

Институт за автоматика и системско инженерство

Скопје, Февруари 2010

Page 2: Upatstvo za rabota so Ladder Diagram

Содржина

I. ВОВЕД ВО ПРОГРАМАБИЛНИТЕ УПРАВУВАЧИ .................................................. 1

I.1-1 Дефиниција ......................................................................................................... 1

I.1-2 Историска основа ............................................................................................... 2

I.1-3 Принципи на работа........................................................................................... 2

I.1-4 Скалести дијаграми и Програмабилните логички управувачи ..................... 5

II. ХАРВЕСКИ АСПЕКТИ НА ПРОГРАМАБИЛНИОТ ЛОГИЧКИ УПРАВУВАЧ .... 8

II.1 Напојување на ПЛУ-то ............................................................................................. 9

II.2 Комуникациски дел ................................................................................................... 9

II.3 Дигитални влезови .................................................................................................. 10

II.4 Дигитални излези .................................................................................................... 10

II.5 Аналогни влезови .................................................................................................... 11

II.6 Аналогни излези ...................................................................................................... 11

II.7 Процесорски дел ...................................................................................................... 12

II.8 ЛЦД Дисплеј ............................................................................................................ 12

III. ИНСТАЛАЦИЈА, И ЗАПОЗНАВАЊЕ СО РАБОТНА ОКОЛИНА НА LDmicro 13

III.1 ИНСТАЛИРАЊЕ НА ПРОГРАМИТЕ .............................................................. 13

III.2 ЗАПОЗНАВАЊЕ СО РАБОТНАТА ОКОЛИНА НА LDmicro ....................... 14

III.2-1 Мени со наредби; ......................................................................................... 15

III.2-2 Мени со икони; ............................................................................................. 18

III.2-3 Работна површина; ....................................................................................... 19

III.2-4 Мени за конфигурирање на влезови и излези и ........................................ 20

III.2-5 Статусно мени .............................................................................................. 21

IV. СОФТВЕРСКА АПЛИКАЦИЈА LDmicro ................................................................ 22

IV.1 ВОВЕД ВО LDmicro ............................................................................................ 22

IV.2 ОСНОВИ .............................................................................................................. 23

IV.3 СИМУЛАЦИЈА ................................................................................................... 24

IV.4 КОМПАЈЛИРАЊЕ НА ПРОГРАМАТА ........................................................... 26

IV.5 Софтвер за надгледување на програмот од компјутер .................................... 26

IV.6 РЕФЕРЕНТНО ИНСТРУНЦИСКО МНОЖЕСТВО ........................................ 27

IV.7 ЗАБЕЛЕШКА ЗА КОРИСТЕЊЕ НА МАТЕМАТИЧКИТЕ ОПЕРАЦИИ ..... 36

Page 3: Upatstvo za rabota so Ladder Diagram

V. ПРИМЕРИ ЗА ПРОГРАМИРАЊЕ НА LDmicro ........................................................ 39

VI. АСИ макета на производна лента ............................................................................. 46

VI.1 ВОВЕД .................................................................................................................. 46

VI.2 СОСТАВНИ ДЕЛОВИ ........................................................................................ 46

VI.3 Електронско поврзување на сите делови од макетата ..................................... 50

VII. УПРАВУВАЊЕ НА РЕАЛНА ПОСТРОЈКА СО ПОМОШ НА

ПРОГРАМАБИЛНИОТ ЛОГИЧКИ УПРАВУВАЧ ........................................................... 51

VII.1 Опис на постројката ............................................................................................ 51

VII.2 Основен пример за програмирање на ПЛУ (Работа со бројачи, дигитални

влезови и дигитални излези) ............................................................................................. 52

VII.3 Напреден пример за програмирање на ПЛУ (ПРИМЕР ЗА работа со тајмери

и аналогни излези) ............................................................................................................. 54

VII.4 ПРИМЕР ЗА УПРАВУВАЊЕ СО ПРОЦЕСОТ НА ПОДВИЖНА ЛЕНТА .. 57

VIII. За авторите ............................................................................................................... 59

IX. ПРИЛОГ 1 - СТАНДАРДОТ IEC 61131 ................................................................... 60

IX.1 СТАНДАРДОТ IEC 61131 И ПРОГРАМИРАЊЕТО НА ПЛУ-ТО ................ 60

IX.2 Вовед во стандардот IEC 661131 ....................................................................... 60

Page 4: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

1

I. ВОВЕД ВО ПРОГРАМАБИЛНИТЕ УПРАВУВАЧИ

Има повеќе дефиниции за програмабилните логички управувачи - ПЛУ. Како и да е,

ПЛУ-ата (анг. PLC - Programmable logical controllers) на најлесен начин може да се

сфатат како индустриски компјутери со специјално дизајнирана внатрешна

архитектура во:

централните единици (самото PLC);

поврзувачките кола со надворешните уреди (влезно/излезните поврзувања со

надворешниот свет).

Секој дел од индустријата – од производството на енергија, боењето во автомобилската

индустрија, до пакувањето на храна – користи програмабилни логички управувачи, со

цел да се зголеми и подобри производството.

Во оваа книга ќе ги изучите сите аспекти на оваа моќно и широко применливо орудие.

Во оваа глава ќе бидете запознаени со основите на PLC-ата – од нивниот начин на

работа, до нивниот широк опсег на примена. Тука ќе биде обрнато внимание што во

суштина претставува еден ваков уред, заедно со кратка историја на нивната еволуција.

Исто така ќе се изврши споредба на PLC-ата со другите начини на управување, за да се

потенцираат добрите и лошите страни на различните типови на управување, а исто

така и да се нагласат клучните ситуации каде PLC-ата работат најдобро.

Со завршување на ова глава, ќе ги имате изучено основите на програмабилните

управувачи, и ќе бидете подготвени да ги проучувате бројните системи кои се

применуваат кај нив.

I.1-1 ДЕФИНИЦИЈА

Прорамабилните логички управувачи, ПЛУ-ата (анг. PLC - Programmable logical

controllers), спаѓаат во класата компјутери, при што користат интегрални кола наместо

електромеханички уреди за имплементација на управувачките функции.

Слика 1-1 Концептуален дијаграм на примена на PLC

Page 5: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

2

При управувањето на една индустриска машина или процес, PLC-ата се способни за

зачувување на инструкции, како што се:

секвенцијално извршување на одредени операции;

извршување на одредени операции во одредено време;

броење;

аритметички пресметки;

манипулација со податоци и нивно пренесување.

На Слика 1-1 е претставен концептуален дијаграм на една PLC – апликација.

Како што ќе може да се воочи низ целата книга, програмабилните логички управувачи

се моќни индустриски управувачи, при што нивниот дизајн е базиран на принципот на

едноставност и практична примена.

I.1-2 ИСТОРИСКА ОСНОВА

Спецификациите на дизајнерските критериуми за првите програмабилни управувачи

биле дадени од страна на корпорацијата ―General Motors‖, во 1968 година. Нивната

примарна цел била да се елиминира високата цена при примената на нефлексибилните,

реле – базирани управувачи. Спецификациите налагале полупроводнички системи, со

компјутерска флексибилност, кои ќе ги исполнуваат следните услови:

1. издржливост во индустриска околина;

2. лесна програмабилност и лесно одржување од страна на инженерите и

техничарите во една фабрика

3. можност за искористување повеќе од еднаш

Таквите управувачки системи би го редуцирале времето на дефекти и би можеле да

бидат проширувани во иднина. Некои од иницијалните спецификации го вклучувале и

следното:

новиот управувачки систем морало да биде поевтин од системите кои

користеле релејна техника;

системот морал да биде издржлив на индустриски услови;

влезно/излезните поврзувања морало да бидат лесно заменливи при

оштетувања;

Управувачот би морал да се дизајнира во модуларна форма, на тој начин

деловите од кои е составен истиот би можеле лесно да се отстранат за да се

изврши нивна замена или поправка;

Управувачкиот систем да има способност за пренесување на збир на

податоци на централен систем;

Системот да може да се користи повеќе од еднаш;

методите кои би се користеле за програмирање на управувачот би морало да

се едноставни, за да можат да бидат лесно сфатени од персоналот во една

фабрика.

I.1-3 ПРИНЦИПИ НА РАБОТА

Програмабилниот управувач илустриран на Слика 1-2, содржи два основни дела:

Page 6: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

3

Централна процесирачка единица (анг. central processing unit - CPU)

Влезно/излезен (анг. input/output - I/O) систем со интерфејси

Слика 1-2 Блок дијаграм на програмабилен управувач

Централната процесирачка единица ги управува сите активности на ПЛУ-то. Следните

три компоненти прикажани на Слика 1-3, го формираат CPU-то:

Процесор

Мемориски систем

Системско напојување

Слика 1-3 Блок дијаграм на главните компоненти на CPU-то

Работата на програмабилниот управувач е релативно едноставна. Влезно/излезниот

систем е физички поврзан до уредите кои се поврзани со машината која е употребена

во управувачкиот процес. Овие уреди може да бидат дискретни или аналогни

влезно/излезни уреди, како што се гранични прекинувачи, трансдусери за притисок,

стартери за мотори, соленоиди итн. Влезно/излезниот интерфејс служи за поврзување

на CPU-то со носителите на информацијата (влезовите) и управувачките уреди

(излезите).

За време на работењето, CPU извршува три процеси (1) чита, или прима податоци од

надворешните уреди преку влезниот интерфејс, (2) ја извршува управувачката

програма која се наоѓа во меморијата и (3) запишува или ги ажурира излезните уреди

преку излезниот интерфејс. Овој процес на секвенцијално читање на влезовите,

Page 7: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

4

извршувањето на програмската меморија и ажурирање на излезите е познат како

скенирање. На Слика 1-4 е илустриран графички приказ на процесот на скенирање.

Слика 1-4 Илустрација на скенирачки циклус

Влезно/излезниот систем формира интерфејс по кој уредите се поврзани со

управувачот (Слика 1-5). Главната улога на интерфејсот е да ги кондиционира

сигналите примени од или пратени до надворешните уреди. Влезните сигнали од

сензорите (на пр. притисни копчиња, гранични прекинувачи, аналогни сензори, и сл.)

се поврзани на терминалот преку влезниот интерфејс. Уредите кои се управуваат, како

стартери на мотор, соленоиди, светла за информирање се поврзани на терминалот

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

напони кои се потребни за функционирање на различните делови од CPU – то.

Слика 1-5 Влезно/ излезен интерфејс

Page 8: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

5

а) б)

Слика 1-6 (а) Персонален компјутер како програмирачки уред; (б) Минипрограматор како

програмирачки уред

Иако не се сметаат како дел од управувачот, уредите за програмирање, обично

персонални компјутери или минипрограматори, се потребни за да се внесе

управувачкиот програм во меморијата (Слика 1-6). Овие програмабилни уреди мора да

се поврзани со управувачите кога се внесува програмот или додека се набљудува

извршувањето на програмот.

I.1-4 СКАЛЕСТИ ДИЈАГРАМИ И ПРОГРАМАБИЛНИТЕ ЛОГИЧКИ УПРАВУВАЧИ

Скалестиот дијаграм претставува традиционален начин на презентација на

електричните секвенци на операции. Овие дијаграми го претставуваат поврзувањето на

уредите на таков начин што активацијата или вклучувањето на еден уред ќе

предизвика вклучување на друг уред според однапред одредена секвенца на настани.

На Слика 1-7 е претставен едноставен скалест дијаграм.

Слика 1-7 Едноставен скалест дијаграм

Page 9: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

6

На почетокот скалестите дијаграми биле составени со цел да прикажуваат жичани

електрични шеми на хартија, кои биле користени за управување со машини или

опрема. Бидејќи овој начин на работа бил стандарден, и скалестите дијаграми станале

стандарден начин на презентација на деталните управувачки информации за

елечктричните шеми како од проектантите на ваквите системи така и од корисниците.

Со воведувањето на програмабилните логички управувачи, овој начин на презентација

продолжил да се користи, поради тоа што е лесен за употреба и веќе широко

распространет во индустријата.

Програмабилните управувачи, можат да го имплементираат „стариот― тип на скалести

дијаграми, но нудат и многу повеќе опции. Нивната намена е да спроведе подоверливо

управување, во однос на претходните техники, за помала цена. ПЛУ-то во својот

процесор ги имплементира скалестите дијаграми со помош на софтверски наредби. Ова

се постигнува со користење на познатите скалести дијаграми со цел програмите да

бидат транспарентни и за инженерите и за програмерите. Како што ќе се види во оваа

книга познавањето на работата на ПЛУ-то е клучно за успешна и целосна

имплементација на системите за автоматско управување. На Слика 1-8 е прикажано

трансформирање на едноставен дијаграм (прикажан на Слика 1-7), во формат погоден

за програмибилниот управувач. Забележете дека влезно/излезните уреди се приклучени

преку соодветен интерфејс, додека кај скалестиот дијаграм овие интерфејси се

пропуштени и тој е вграден, на начин сличен на ожичување, но внатре во ПЛУ-то.

Како што беше претходно спомнато, процесорот ја чита состојбата на влезовите, во

зависност од неа ги активира соодветните елементи во скалестиот дијаграм, за на крај

активираните излези од дијаграмот да ги спроведе на реално приклучените излези на

управувачот, преку соодветен интерфејс.

Слика 1-8 Имплементација на Слика 1-7 со помош на ПЛУ

Подоцна ќе покажеме дека секој елемент во програмабилниот логички управувач има

соодветна адреса, преку која може да се пристапи до неговата вредност. На пример

Page 10: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

7

копчето PB1 во ПЛУ-то е претставено преку името PB1 (кое е наведено во табелата на

симболи) и истото важи за сите симболи кои се појавуваат на Слика 1-8. Овие имиња

тука се претставени преку имињата на реалните елементи со цел да го поедноставиме

примерот. Понатаму ќе зборуваме и за некои техники на адресирање.

Page 11: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

8

II. ХАРВЕСКИ АСПЕКТИ НА ПРОГРАМАБИЛНИОТ

ЛОГИЧКИ УПРАВУВАЧ

Во оваа глава ќе дадеме детален технички опис на електронската плочка која е

моделирана и изработена како основа на целиот хардверски склоп на програмабилниот

логички управувач. PCB плочката е претставена на следната слика:

Слика II-1 Изглед на електронската плочка

Електронската плочка е изработена во двослојна техника. Со црвена боја се исцртани

водовите кои се наоѓаат на горниот дел од плочката, додека со зелена боја се

обележани водовите на долниот дел од плочката. Генерално можеме да ја поделиме

плочката на неколку составни делови, односно поточно кажано, организациски

целости:

1. Напојување на ПЛУ-то

2. Комуникациски дел

3. Дигитални влезови

4. Дигитални излези

5. Аналогни влезови

6. Аналогни излези

7. Процесори

8. ЛЦД Дисплеј

Page 12: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

9

II.1 НАПОЈУВАЊЕ НА ПЛУ-ТО

Делот за напојување на овој уред се наоѓа на средината од левата страна. Како влезови

се користат редните клеми обележани со +24V и GND. На нив се доведува напојување

кое е добиено од надворешен извор- стабилизатор кој обезбедува 24V/2,5A. Уредот е

опремен со стабилизатори на 24,12 и 5V со чија помош може да се напојуваат

надворешни уреди на сите три напони со не повеќе од 1A. Тоа се клемите +12V и +5V.

Делот за напојување е претставен на следната слика:

II.2 КОМУНИКАЦИСКИ ДЕЛ

Комуникацискиот дел е составен од прилагодувач на сигнал (конвертор) кој ја

преобразува UART комуникацијата во RS232. Ова прилагодување е потребно поради

различните нивоа на сигналот при сериска комуникација кои ги користат компјутерите

(+/- 12V) и микроуправувачите (0-5V). Вака прилагодениот сигнал, може да се прати

кон персоналниот компјутер преку стандарден 9-пински порт. Оваа конуникација

обезбедува можност за програмирање на ПЛУ-то, како и за преземање на податоците

во реално време и нивен приказ на компјутерот. Со помош на USB во RS232 конвертор

овој уред може да се користи и на USB порта на PC. Комуникацискиот дел е даден на

следната слика:

Page 13: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

10

II.3 ДИГИТАЛНИ ВЛЕЗОВИ

Овој уред е опремен со 8 дигитални влезови. Секој влез има клема со 2 конектори,

пример за влез 1 : IN1_1 и IN1_2. IN1 го означува бројот на влезот, додека ознаките 1 и

2 го претставуваат бројот на клемата (клема број 1 и клема број 2). На сите клеми со

број 1, кај секој влез одделно е донесен напон од 24V кој може да се користи како влез

на надворешниот давач (реле, тастер, прекинувач,...) додека клемата со број 2 е

реалниот влез во ПЛУ-то кој ја дава информацијата. Истиот е галвански одвоен од

процесорскиот дел со помош на оптокаплер. Блокот со дигитални влезови е даден на

следната слика:

II.4 ДИГИТАЛНИ ИЗЛЕЗИ

Уредот е опремен со 6 дигитални релејни излези 220V/5A, 24/12/5V – 8A. Секој излез

има по 3 клеми (Z,O,C) едната е заедничка и е обележана со Z1, Z2 … Z6 соодветно за

секој излез, и на неа се носи напон од надвор или од напојувањата на самиот уред.

Другите 2 клеми се нормално отворен контакт (ознаката е Oi, од англиското Open и го

активира излезот од ПЛУ-то кога релето е активно) и нормално затворен контакт, кога

релето е активно (ознаката е Ci, од англиското Closed и го активира излезот од ПЛУ-то

кога релето не е активно).

Page 14: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

11

II.5 АНАЛОГНИ ВЛЕЗОВИ

Овој уред е опремен со 2 аналогни влезови селективни со помош на превклучувач

(jumper). Секој од нив може да работи со 0-10V или 4-20mA. Ако се користат

напонските влезови тогаш превклучувачите треба да бидат поставени на Ј2 и Ј4

(надворешните приклучоци) соодветно за првиот и вториот аналоген влез. Доколку пак

се користат струјните влезови тогаш превклучувачите треба да бидат поставени во

позициите Ј1 и Ј3 (внатрешните приклучоци). Возможно е и да се прават комбинации

пример влез 1 да е напонски а влез 2 да е струен влез, тогаш ќе треба да се постави

превклучувач на Ј2 и Ј3.

AI1_1 и AI1_2 се редните клеми за аналоген влез 1. Доколку тој се користи како

напонски тогаш на AI1_1 се поставува + (плусот од напонот кој го носиме) а на АI1_2

се поставува –(GND). Доколку пак влез 1 се користи како струен тогаш во клема AI1_1

треба да влегува струјата а од AI1_2 да излегува. Истото важи и за влез 2.

II.6 АНАЛОГНИ ИЗЛЕЗИ

Уредот е опремен со 2 аналогни излеза кои се напонски излези (0-10V) кои се наменети

да се користат како управувачки сигнал, а не како напоен! Уредот кој се управува

треба да има сопствен напоен сигнал. На пример, може да се управува мотор поврзан

на Винстонов мост кој има извор на напојување со помош на аналоген излез, со цел да

се добие различен број на вртежи на моторот.

Клемите на аналоген излез број 1 се обележани со +U1 и UCON1, на +U1 се поврзува

+(плусот) на напонот додека на UCON1 се поврзува –(GND). Клемите за вториот

аналоген излез се обележани со клемите +U2 и UCON2 и за нив важат истите правила

на поврзување.

Page 15: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

12

II.7 ПРОЦЕСОРСКИ ДЕЛ

Овој уред е опремен со 2 процесори од типот PIC16F877A ,едниот служи за

управување, мерење и контрола а другиот служи за прикажување на моменталните

состојби на ЛЦД екранот со кој е опремен овој уред и праќање на истите до персонален

компјутер со помош на сериска комуникација.

II.8 ЛЦД ДИСПЛЕЈ

Уредот е опремен со ЛЦД дисплеј од графички тип со резолуција 128х64 на кого се

покажуваат моменталните состојби за дигиталните влезови и излези има/нема и

исклучен/вклучен, како и моменталните вредности на аналогните влезови и аналогните

излези.

Page 16: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

13

III. ИНСТАЛАЦИЈА, И ЗАПОЗНАВАЊЕ СО РАБОТНА

ОКОЛИНА НА LDmicro

Во оваа глава на кратко ќе се запознаеме со начинот на инсталирање и подигнување на

софтверската апликација LDmicro, која се користи за програмирање на

програмабилните логички управувачи.

III.1 ИНСТАЛИРАЊЕ НА ПРОГРАМИТЕ

За да ги инсталирате програмите кои доаѓаат во овој комплет (LDmicro, PIC

Bootloader+ и PLC_Monitoring), потребно е само да го ставите дискот кој доаѓа заедно

со ова ПЛУ. После автоматската инсталација потребно е да се појави следниов

прозорец (доколку по прв пат го инсталирате софтверот).

Слика III-1 Прозорецот после првата успешна инсталација на LDmicro и придружниот софтвер

Со самата инсталација потребно е да добиете икони на работната површина на

компјутерот. Доколку сакате да ја инсталирате програмата рачно, потребно е да го

отворите оптичкиот диск и двојно да кликнете на иконата Setup. Ако сакате да ја

избришете програмата од компјутерот потребно е да влезете во директориумот repair-

remove од оптичкиот диск и да изберете Remove_LDmicro, а доколку сакате повторнот

Page 17: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

14

да ја инсталирате програмата, од истиот директориум треба да се избере наредбата

Repair_LDmicro.

Ново инсталираните датотеки се наоѓаат на системскиот диск C:\ во директориумот

Ladder Diagram (C:\Ladder Diagram). Решените примери во LDmicro се наоѓаат во

директориумот C:\Ladder Diagram\primeri.

III.2 ЗАПОЗНАВАЊЕ СО РАБОТНАТА ОКОЛИНА НА

LDMICRO

Изгледот на оваа алатка е претставен на следната слика:

Оваа алатка се состои од неколку функционални делови:

Мени со наредби;

Мени со икони;

Работна површина;

Мени за конфигурирање на влезови и излези и

Статусно мени

Во продолжение на кратко ќе ги објасниме сите составни делови на оваа апликација.

Page 18: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

15

III.2-1 МЕНИ СО НАРЕДБИ;

Менито со наредби изгледа како на следната слика:

Составено е од неколку целини. Во File подменито се наоѓаат наредбите за работа со

датотеки, како отворање, зачувување на датотеки, експортирање на истите во

текстуален формат и сл.

Подменито за едитирање на програмата (Edit) се состои од наредби за менување на

структурата на програмите, како што се додавање на ново скалило (пред или после

селектираното), поместување на тековното скалило на горе или на долу, како и

бришење на некој елемент или цело скалило.

Во подменито за наредби (Instruction) се наоѓаат сите можни наредби кои се

употребуваат за програмирање во скалестиот дијаграм.

Page 19: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

16

Page 20: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

17

Десно од секоја наредба во ова мани (но важи и за другите менија) се наоѓа знак кој ја

означува кратенката на наредбата, односно, како наредбата може да се повика со

притискање на копчиња од тастатурата, без употреба на глувче.

Потоа следуваат подменијата за симулирање на скалестиот дијаграм на компјутер, за

компајлирање на програмата и менито за помош.

Менито за симулација служи за проверување на логиката во скалестиот дијаграм.

Корисно е секогаш пред да се програмира програмабилниот логички управувач да се

провери логиката на скалилата. Со тоа се скратува времето на откривање на грешки,

бидејќи голем дел од грешките лесно се забележуваат во симулаторот.

После проверката на логиката на скалилата и соодветното конфигурирање на влезните

и излезните пинови од ПЛУ-то, програмата може да се компајлира во изворен код и да

се префрли на ПЛУ-то. Тоа се прави со наредбата Compile. Доколку инструкцијата

успешно го составила изворниот код за ПЛУ-то, се појавува прозорец со информација

за истото. Овој прозорец изгледа како на сликата во продолжение:

После потврдувањето на пораката, автоматски се отвора софтверот за префрлување на

програмот на ПЛУ-то. Тука треба да се избере правилната комуникациска порта (од

страната на компјутерот). После ова доколку сакате да го програмирате ПЛУ-то,

потребно е да притиснете на копчето Write и да го притиснете копчето за

програмирање на ПЛУ-то.

Page 21: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

18

Пората може да ја дознаете со притискање на десен клик на иконата My Computer,

потоа изберете Properties и преместете се на табот означен со Hardware, каде имате

поле Device Manager. После ова треба да се појави следниов прозорец. Во делот Ports

(COM &LPT) побарајте го портот означен со Profilic USB-to-Serial Comm Port, и

забележете го бројот на портот кој му е доделен.

III.2-2 МЕНИ СО ИКОНИ;

Менито со икони содржи визуелни знаци за дел од најчесто користените елменти од

инструкциското множество на оваа апликација. Тоа се Контакт, намотка, наредба за

Page 22: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

19

преместување, аналоген влез, наредбите за работа со аналогни излези, наредби за

собирање, одземање и едена наредба за работа со тајмер.

III.2-3 РАБОТНА ПОВРШИНА;

Работната површина е просторот каде корисникот ја пишува програмата. Една

едноставна програма во работната површина е претставена на следната слика:

На левата страна од работната површина е наоѓаат броеви со кои се означени

скалилата. Сите елементи кои се додаваат на работната површина на почетокот се во

иницијална состојба. На пример контактните елементи се додаваат со почетно име

Xnew. Името потоа треба да се промени и да се додели пин од менито за

конфигурирање на влезовите и излезите.

Менито за доделување на име на влезниот или излезен пин од ПЛУ-то е прикажано на

претходната слика. Покрај тоа што овозможува доделување на име, исто така

овозможува и избор на тоа дали контактниот елемент е влезен, излезен или пак

Page 23: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

20

внатрешен мемориски бит. Уште една опција што ја нуди ова мени е опцијата за избор

на тоа дали елементот ќе се користи како нормално отворен или нормално затворен

(негиран).

За различни типови на елементи постојат различни менија, во зависност од тоа за која

наредба кои параметри треба да се нагодуваат.

III.2-4 МЕНИ ЗА КОНФИГУРИРАЊЕ НА ВЛЕЗОВИ И ИЗЛЕЗИ И

Менито за конфигурирање на влезовите и излезите прави поврзување (пресликување)

на имињата кои ги користиме за да ги означиме променливите, во реални пинови од

ПЛУ-то (односно од микро управувачот, кој е искористен како процесор во ПЛУ-то).

Во зависност од типот на елементот при двојно кликнување на соодветното поле се

појавува мени кое ни дозволува да избереме на кој пин од ПЛУ-то ќе го поврземе

соодветниот елемент од листата. Двете основни менија, за дигитални влезови и

дигитални излези се прикажани на следнава слика

Во овие менија се појавуваат само слободните (до тогаш недоделени) влезови односно

излези. Доколку сакате да искористите некој претходно употребен влез/излез, потребно

Page 24: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

21

е да внесе само неговото име на работната површина, а потоа во долното мени

автоматски ќе биде препознаен.

На следнава слика е прикажано менито за конфигурирање на влезовите и излезите ,

при пополнети вредности за сите влезови и излези. Во овој случај, во полето означено

со ―Type‖, се појавува називот на влезот, односно излезот.

III.2-5 СТАТУСНО МЕНИ

Статусното мени прикажува некои фиксни информации, кои се небитни за

програмирањето и работата со софтверската алатка. Тука се прикажува типот на

употребениот микроуправуач, времето на скенирачкиот циклус и фреквенцијата на

осцилаторот кој се користи за генерирање на такт сигналот на микроуправувачот.

Page 25: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

22

IV. СОФТВЕРСКА АПЛИКАЦИЈА LDmicro

IV.1 ВОВЕД ВО LDMICRO

LDmicro претставува софтверска алатка која генерира изворен код за програмабилните

логички управувачи (ПЛУ) FEEIT PLC. ПЛУ-ата најчесто се програмираат во скалеста

логика (скалест дијаграм). На пазарот на ПЛУ-а секој производител снабдува

сопствена софтверска алатка за програмирање на нивните управувачи. И покрај тоа

што постои цела палета на софтверски апликации, принципите на кои истите се

засноваат и начинот на нивна работа е стандардизиран, па секој кој знае еден од овие

„јазици― за програмирање на скалест дијаграм, многу лесно ќе се префрли на друга

апликација која работи на принципот на скалеста логика.

Една едноставна програма во скалест дијаграм изгледа вака:

|| ||

|| Xbutton1 Tdon Rchatter Yred ||

1 ||-------]/[---------[TON 1.000 s]-+-------]/[--------------( )---------- ||

|| | ||

|| Xbutton2 Tdof | ||

||-------]/[---------[TOF 2.000 s]+ ||

|| ||

|| ||

|| ||

|| Rchatter Ton Tnew Rchatter ||

2 ||-------]/[---------[TON 1.000 s]----[TOF 1.000 s]---------( )------- ||

|| ||

|| ||

|| ||

||------[END]------------------------------------------------------------- ||

|| ||

|| ||

(TON претставува тајмер кој го вклучува излезот откога ќе помине зададеното време,

додека TOF претставува тајмер кој го исклучува излезот откога ќе помине зададеното

време. Ознаката --] [-- претставува нормално отворен контакт, кој во општ случај може

да биде некој контактен елемент или пак реле. Ознаката --( )—претставува излезна

променлива која се однесува како намотка или реле

Со помош на LDmicro, може да се црта скалест дијаграм и истиот да се искористи за да

се програмира програмабилниот логички управувач. Исто така софтверската

апликација овозможува симулирање на логиката во реално време на компјутер, без

потреба од поврзување на ПЛУ-то. Доколку програмата се однесува како што треба за

Page 26: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

23

време на симулациите, потоа потребно е да се доделат влезно излезните пинови од

ПЛУ-то на секоја од променливите кои се искористени во програмата, после што може

да се компајлира програмот што резултира со .hex датотека и да се префрли на FEEIT

PLC со помош на USB-to-Serial комуникацискиот кабел.

LDmicro е дизајниран со цел да биде многу сличен на стандардните индустриски

програми за скалесто програмирање. Иако постојат исклучоци за одредени наредби,

сепак секој кој работел на сличен софтвер, брзо ќе се прилагоди на инструкциите во

скалестиот дијаграм. Сепак пред да започнете со работа задолжително е да се прочита

упатството за работа и описот на сите инструкции од софтверот.

IV.2 ОСНОВИ

Кога ќе го отворите, во работниот простор се појавува празна програма. Програмите во

LDmicro се чуваат во сопствен формат, чија ознака завршува со (xxx.ld). LDmicro не

може да отвори програма напишана во друг софтвер.

Доколку не отворите веќе креирана програма можете да започнете да додавате

елементи на празната работна површина. На пример, доколку сакате да додадете

контактен елемент потребно е да го активирате менито Instruction -> Insert Contacts по

што во скалилото ќе се појави нов елемент со име `Xnew'. `X' значи дека контактот ќе

биде пресликан во елемент што носи контактна информација (влез излез или

мемориски бит). Првата буква од имињата на елементите не може да се менува и таа го

претставува типот на елементот.

На пример:

* Xname – пресликување на физички влез од ПЛУ-то

* Yname -- пресликување на физички излез од ПЛУ-то

* Rname – ‗внатрешно реле‘: мемориски бит

* Tname -- тајмер; постојат повеќе типови на тајмери

* Cname -- бројач, може да биде бројач нагоре или бројач надолу

* Aname – целобројна вредност добиена со А/Д претворување

* name -- генерално име кое се користи за целобројни променливи

Препорачливо е да се избираат имињата на променливите на тој начин што ќе ви

опишуваат што претставуваат влезовите, излезите или мемориските битови. Имињата

мора да бидат единствени во целата програма. На пример не е во ред да имате два

тајмери, едниот TON а другиот TOF, со име `Tdelay' во истата програма, бидејќи тие ќе

ја користат истата меморија. Од друга страна, со некои елементи можни се повеќе

операции, па во ред би било ако имате RTO (мемориски) тајмер, со име `Tdelay' и

инструкција за ресетирање на истиот (RES) која е поврзана со името `Tdelay'.

Имињата на променливите можат да се состојат од букви, бројки и долни црти (_).

Името на променливата не смее да започнува со бројка.

Page 27: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

24

Инструкциите за работа со цели броеви (MOV, ADD, EQU, и тнт.) можат да работат со

променливи со било какво име. Тие можат да пристапат до тајмери, бројачи и сл. Ова

во многу случаи е корисно бидејќи, на пример, може да се провери дали вредноста на

бројачот е во одреден опсег.

Променливите по правило се претставуваат со 16 битни цели вредности. Ова значи

дека нивната вредност може да биде од -32768 до 32767.

Во најдолниот дел од екранот ќе забележите листа на сите објекти (елементи) кои се

употребени во програмата. Оваа листа автоматски се генерира за време на вашето

работење со програмот. За поголем дел од елементите не е потребна конфигурација, но

за елементите како `Xname', `Yname', и `Aname' потребно е да се назначи В/И пин од

ПЛУ-то. Ова се прави со двојно притискање на соодветниот елемент.

Програмата може да се менува со додавање, бришење или менување на инструкции.

Курсорот во програмата трепка и го означува моментално селектираниот елемент и

позицијата на вметнување на следната наредба. Можете да го движите курсорот низ

програмата со помош на стрелките од тастатурата или со помош на глувчето. Во

зависност од позицијата на курсорот можете да додавате нов елемент во серија со

претходниот (лево или десно) или паралелно на него (горе или долу). Се разбира некои

инструкции не се дозволени, на пример, не е дозволено да се додава нов елемент на

десно од намотка (излез).

Програмата започнува со само едно скалило. Може да додавате нови скалила со помош

на наредбата Insert Rung Before/After од менијата. Препорачливо е да се користат

повеќе скалила отколку помалку, но премногу густи и комплицирани скалила.

Кога ќе ја направите програмата, потребно е да се провери истата со помош на

симулација. Доколку таа се однесува задоволително во симулациски мод, програмата

треба да се компајлира и да се префрли на програмабилниот логички управувач

IV.3 СИМУЛАЦИЈА

За да се активира симулацискиот мод на апликацијата потребно е да го изберете

менито Simulate -> Simulation Mode или да ја притиснете кратенката <Ctrl+M>.

Програмот визуелно различно се прикажува во симулациски мод, отколку во нормален

работен режим. Во овој случај не се појавува курсорот, а оние елементи кои се

активирани имаат светло црвена боја. Останатите елементи (оние кои не се

активирани) имаат сива боја.

Доколку сакате да направите симулација во траење од еден циклус на ПЛУ-то

потребно е да притиснете на тастерот <space>. За да симулирате континуирано

потребно е да ја изберете опцијата Simulate -> Start Real-Time Simulation, или да ја

притиснете кратенката <Ctrl+R>. Визуелниот приказ на апликацијата се менува во

зависност од промената на состојбата на елементите.

Page 28: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

25

Слика IV-1 Прозорец за симулација во LDmicro

Состојбата на влезовите (активна или неактивна) може да се менува со двојно

притискање на истите на листата која се наоѓа на долниот дел од програмот. Доколку

притиснете двојно на влезот `Xname' тогаш ќе се ажурира истиот во програмот како и

сите елементи кои зависат од него. Доколку сте во мод на реална симулација

промените ќе се направат веднаш, во спротивно, потребно е да притиснете на копчето

за извршување на еден скенирачки циклус на ПЛУ-то (space).

Елементите кои се активни се прикажуваат со светло-црвена боја, додека оние кои не

се активни со помош на сива боја, така што многу лесно, визуелно се следи текот на

скалестиот дијаграм.

Page 29: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

26

IV.4 КОМПАЈЛИРАЊЕ НА ПРОГРАМАТА

Како последна процедура од процесот на програмирање на ПЛУ-то е компајлирањето

на кодот во формат разбирлив за ПЛУ-ата. Пред да се направи ова, потребно е сите

елементи да имаат назначени влезни, односно излезни пинови соодветно. Како што

претходно спомнавме ова се прави со двојно притискање на елементите на листата која

се наоѓа на долниот дел од табелата, после што се избира некој слободен пин од

листата на можни пинови за таа променлива.

За да ко компајлирате програмот потребно е да ја изберете наредбата Compile ->

Compile, или Compile -> Compile As... ако претходно не сте ја компајлирале програмата

или сакате да ја компајлирате под ново име. Ако програмата е исправна,

компајлирањето ќе заврши и на екранот ќе ви се појави нов прозорец кој се користи за

префрлање на програмата на ПЛУ-то. Овој програм може и да се користи независно од

LDmicro и служи за префрлање на веќе компајлирани програми во програмабилниот

логички управувач.

Слика IV-2 Изглед на прозорецот за компајлирање и префрлање на програмата на ПЛУ

IV.5 СОФТВЕР ЗА НАДГЛЕДУВАЊЕ НА ПРОГРАМОТ ОД

КОМПЈУТЕР

Состојбата на управувачот покрај на неговиот дисплеј, може да се надгледува и на

компјутер со помош на алатката PLC_Monitoring_v1. Изгледот на алатката е претставен

на Слика IV-4. На Слика IV-3 е претставен првичниот прозорец на оваа апликација кој

нуди можност за избирање на слободна COMM порта од компјутерот за да се поврземе

со програмабилниот логички управувач.

Page 30: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

27

Слика IV-3 Избор на порта за сериска комуникација со ПЛУ

Слика IV-4 Надгледување на ПЛУ-то од компјутер

IV.6 РЕФЕРЕНТНО ИНСТРУНЦИСКО МНОЖЕСТВО

> НОРМАЛНО ОТВОРЕН КОНТАКТ

CONTACT NORMALY OPEN Xname Rname Yname

----] [---- ----] [---- ----] [----

Page 31: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

28

Нормално отворениот контакт проверува дали е исполнет условот на ВКЛУЧЕНО на

соодветната адреса која тој ја претставува. Адресата референцирана од контактот може

да претставува влезен бит (кој соодветствува на влезен уред), или излезен мемориски

бит, или излезен бит (кој соодветствува на излезен уред).

> НОРМАЛНО ЗАТВОРЕН КОНТАКТ

CONTACT NORMALY CLOSED Xname Rname Yname

----]/[---- ----]/[---- ----]/[----

Нормално затворениот контакт го проверува условот за ИСКЛУЧЕНО на адресата која

тој ја претставува. Како и нормално отворениот контакт, адресата може да претставува

влезен бит (уред), излезен мемориски бит, или излезен бит (уред). Оваа инструкција го

прави спротивното од инструкцијата нормално отворен контакт.

> НОРМАЛНО ОТВОРЕНА НАМОТКА

COIL NORMAL Rname Yname

----( )---- ----( )----

Инструкцијата за нормално отворена намотка врши управување или на реален излез

(поврзан со ПЛУ-то преку излезниот интерфејс) или внатрешно реле (мемориски бит).

Оваа инструкција го користи битот на адресата означена со излезната намотка. По

правило оваа инструкција мора да биде последна во скалилото и не смее да има ништо

десно од неа.

> НОРМАЛНО ЗАТВОРЕНА НАМОТКА

COIL NEGATED Rname Yname

----(/)---- ----(/)----

Нормално затворената намотка е спротивна на инструкцијата за нормално намотка.

Ако не постои континуитет во мрежата, инструкцијата го ВКЛУЧУВА излезот кој е

референциран со истата. Ако постои континуитет, излезот се ИСКЛУЧУВА. Исто така,

кога негираната излезна намотка е вклучена, нејзините референцирани контакти ја

менуваат состојбата (нормално отворените контакти се затвараат, нормално

затворените се отвораат). Ако негираната излезна намотка е ИСКЛУЧЕНА, тогаш се

случува спротивното, нормално отворените референцирани контакти остануваат

отворени, а нормално затворените остануваат затворени.

> ЗАДРЖУВАЊЕ НА НАМОТКА

COIL SET ONLY Rname Yname

----(S)---- ----(S)----

Инструкцијата за задршка на излезната намотка предизвикува излезот да остане

активиран и во случај кога статусот на контактите кои предизвикале активирање на

излезот се промени. Ако која било патека во мрежата има логички континуитет, оваа

инструкција го вклучува излезот и го задржува вклучен, и во случај ако се изгуби

логички континуитетот или настане прекин на електрична енергија. Ваквиот излез ќе

Page 32: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

29

остане вклучен се додека не се ослободи (исклучи) со помош на инструкцијата за

исклучување на вредноста на излезната намотка. Оваа инструкција може да ја промени

вредноста на излезот од исклучена во вклучена, па затоа секогаш се користи во

комбинација со наредбата за исклучување на намотката. По правило оваа инструкција

мора да биде последна во скалилото и не смее да има ништо десно од неа.

> ИСКЛУЧУВАЊЕ НА НАМОТКА

COIL RESET ONLY Rname Yname

----(R)---- ----(R)----

Инструкцијата за исклучување на вредноста на намотка врши ресетирање на

задржаната вредност на излезот на истата референтна адреса (вредноста од вклучено се

префрла во исклучено). Кога постои логички континуитет во било која патека на

мрежата, оваа инструкција ја исклучува намотката на соодветната референцирана

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

Оваа инструкција може да ја промени вредноста на излезот од вклучена во исклучена,

па затоа секогаш се користи во комбинација со наредбата за задржување на намотка.

> ТАЈМЕР СО ЗАДОЦНЕТО ВКЛУЧУВАЊЕ

TURN-ON DELAY Tdon

-[TON 1.000 s]-

Излезната инструкција за Turn-on-delay timer – TON или врши временско доцнење или

го мери времето за кое ќе се случи некој настан. Штом во мрежата ќе се воспостави

континуитет на сигналот, тајмерот ќе почне да брои се додека акумулираната вредност

не се изедначи со однапред зададената вредност. Кога овие две вредности ќе се

изедначат, тајмерот го побудува излезот. Ако се изгуби логичкиот континуитет пред да

изброи тајмерот, тајмерот ја ресетира вредноста на регистерот за акумулирана

вредност, и ја поставува на нула.

Тајмерот брои од нула па нагоре, со резулуција од 5 мили секунди. Вредноста на

акумулаторот на тајмерот (`Tname') претставува цел број на скенирачки циклуси кои

изминале од времето на активирање на тајмерот и може да се употребува во

математички операции и да се префрла во кориснички дефинирани променливи.

> ТАЈМЕР СО ЗАДОЦНЕТО ИСКЛУЧУВАЊЕ

TURN-OFF DELAY Tdoff

-[TOF 1.000 s]-

Излезната инструкција за turn-off-delay timer – TOF дава временски задоцнета акција.

Ако управувачката мрежа нема континуитет, тајмерот почнува да ги брои временски-

базираните интервали се додека акумулираната вредност не се изедначи со

програмираната, однапред зададена вредност. Кога овие две вредности ќе се изедначат,

тајмерот го побудува

Ако се појави логичкиот континуитет пред да изброи тајмерот, тајмерот ја ресетира

вредноста на регистерот за акумулирана вредност, и ја поставува на нула.

Page 33: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

30

Тајмерот брои од нула па нагоре, со резулуција од 5 мили секунди. Вредноста на

акумулаторот на тајмерот (`Tname') претставува цел број на скенирачки циклуси кои

изминале од времето на активирање на тајмерот и може да се употребува во

математички операции и да се префрла во кориснички дефинирани променливи.

> АКУМУЛИРАЧКИ ТАЈМЕР

RETENTIVE TIMER Trto

-[RTO 1.000 s]-

Излезната инструкција за retentive timer – RTO се користи во случаите каде

акумулираната вредност на тајмерот треба да се задржи, дури и ако настане губење на

континуитетот на мрежата, или настане губење на енергија. Ако патеката во мрежата

има логички континуитет, тајмерот почнува да брои се додека акумулираната вредност

не ја достигне однапред зададената вредност. Регистарот за акумулирана вредност, ја

задржува оваа акумулирана вредност, дури и ако настане губење на струјата, или се

изгуби логичкиот континуитет на мрежата, пред да изброи тајмерот. Кога

акумулираната вредност ќе се изедначи со однапред зададената вредност, тајмерот го

побудува излезот. Инструкцијата ресетирање на акумулирачкиот тајмер, врши

ресетирање на акумулираната вредност на акумулирачкиот тајмер и секогаш се

употребува во пар со оваа инструкција.

Пример за работата на овој тајмер е следниов: Ако тајмерот се активира за време од 0.4

секунди, па се исклучи за време од 2 секунди, и ако после тоа повторно се активира за

време од 0.6 секунди, акумулирачкиот тајмер ќе го вклучи излезот, бидејќи вкупното

време за кое тој бил активен ја надминува внесената вредност од една секунда. Сето

ова важи под услов тајмерот да не се ресетира во текот на овие 3 секунди. За да се

исклучи излезот од тајмерот, тој мора рачно да се ресетира.

Тајмерот брои од нула па нагоре, со резулуција од 5 мили секунди. Вредноста на

акумулаторот на тајмерот (`Tname') претставува цел број на скенирачки циклуси кои

изминале од времето на активирање на тајмерот и може да се употребува во

математички операции и да се префрла во кориснички дефинирани променливи.

> РЕСЕТ

RESET Trto Citems

----{RES}---- ----{RES}----

Излезната инструкција за ресетирање на акумулирачкиот тајмер (retentive timer reset -

RTО) е единствениот начин за автоматски да се изврши ресетирање на акумулираната

вредност на овој тајмер. Ако постои логички континуитет во мрежата, тогаш оваа

инструкција врши ресетирање на акумулираната вредност, на тајмерот, на нула. Треба

да се забележи дека адресата на овој тајмер ќе биде иста како и адресата во наредбата

за акумулирачки тајмер, кој треба да го ресетира. По правило оваа инструкција мора да

биде последна во скалилото и не смее да има ништо десно од неа.

> РАСТЕЧКИ РАБ НА СИГНАЛ

ONE-SHOT RISING

Page 34: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

31

--[OSR_/ ]--

Инструкцијата за растечки раб на сигнал генерира импулс кога референцираниот

сигнал прави транзиција од ИСКЛУЧЕНО на ВКЛУЧЕНО (растечка ивица).

Оваа нструкцијата за преоден контакт на растечка ивица ќе го затвори колото за точно

еден програмски скенирачки циклус штом ќе настане преод на тригерираниот сигнал

од ИСКЛУЧЕНО на ВКЛУЧЕНО. Контактот ќе овозможи логички континуитет за тој

еден циклус и повторно ќе се отвори, и во случај кога тригерирачкиот сигнал останува

ВКЛУЧЕН. Тригерираниот сигнал мора да се исклучи па повторно да се вклучи за

преодниот контакт да се затвори повторно. Адресата на контактот (тригерирачкиот

сигнал) може да биде надворешен влез/излез или внатрешен излез.

> ОПАЃАЧКИ РАБ НА СИГНАЛ

ONE-SHOT FALLING

--[OSF \_]--

Инструкцијата за растечки раб на сигнал генерира импулс кога референцираниот

сигнал прави транзиција од ВКЛУЧЕНО на ИСКЛУЧЕНО (опаѓачка ивица). Оваа

инструкција за преоден контакт на опаѓачка ивица, транзицијата на тригерирачкиот

сигнал од ИСКЛУЧЕНО на ВКЛУЧЕНО ќе го вклучи контактот за еден скенирачки

циклус. Адресата на контактот (тригерирачкиот сигнал) може да биде надворешен

влез/излез или внатрешен излез.

> КУСА ВРСКА, ОТВОРЕНО КОЛО

SHORT CIRCUIT, OPEN CIRCUIT

----+----+---- ----+ +----

Излезот од куса врска е секогаш еднаков на влезот, додека излезот од отворено коло е

секогаш еднаков на нула.

> ГЛАВНО УПРАВУВАЧКО РЕЛЕ

MASTER CONTROL RELAY

-{MASTER RLY}-

Главното управувачко реле (анг. master control relay - MASTER RLY) е излезна

инструкција со која може да се врши активирање или деактивирање на извршувањето

на група на мрежи во скалестиот дијаграм. Инструкцијата MASTER RLY (која се става

во една мрежа) се користи во склоп со уште една таква инструкција, за да се означи

групата на скалила помеѓу двете инструкции. Означениот дел се состои од мрежата

MASTER RLY со условни влезови на почетокот на зоната и скалилото со MASTER

RLY која е без условни влезови на крајот на зоната. Кога условот за извршување на

првата инструкција MASTER RLY е исполнет, се активира референтниот излез, со што

се овозможува сите излези од мрежата во рамките на зоната да се управуваат со

соодветниот влезен услов. Кога MASTER RLY излезот ќе се исклучи, тој ќе ги исклучи

сите незадржани излези во рамките на зоната.

Page 35: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

32

> ПРЕФРЛУВАЊЕ НА ВРЕДНОСТ

MOVE {destvar := } {Tret := }

-{ 123 MOV}- -{ srcvar MOV}-

Функциската блок инструкција премести (анг. move) врши пренос на информација од

една локација на друга, при што дестинационата локација може да биде кориснички

дефиниран променлива, додека изворната локација може да биде променлива, тајмер,

бројач или константа. Префрлувањето на вредноста се случува кога е исполнет условот

на влез во скалилото. Во спротивно не се случува ништо.

> АРИТМЕТИЧКИ ОПЕРАЦИИ {ADD kay :=} {SUB Ccnt :=}

-{ 'a' + 10 }- -{ Ccnt - 10 }-

> {MUL dest :=} {DIV dv := }

-{ var * -990 }- -{ dv / -10000}-

Аритметичките операции во ПЛУ-то ги вклучуваат четири основни операции на

собирање, одземање, множење и делење. Кога влезниот сигнал во соодветното скалило

е исполнет се извршува бараната математичка операција. Операндите кои се користат

може да бидат кориснички дефинирани променливи, тајмери, бројачи или константи.

Овие инструкции работат со 16-битни променливи. Вообичаено овие променливи се

употребуваат со растечки или опаѓачки раб на сигналот, бидејќи тие ја извршуваат

математичката операција секогаш кога влезниот услов во скалилото е исполнет.

Инструкциите работат само со цели броеви. По правило овие инструкции мора да

бидат последни во скалилото и не смее да има ништо десно од нив.

> СПОРЕДБА [var ==] [var >] [1 >=]

-[ var2 ]- -[ 1 ]- -[ Ton]-

> [var /=] [-4 < ] [1 <=]

-[ var2 ]- -[ vartwo]- -[ Cup]-

Инструкциите за споредба на податоци, ги споредуваат вредностите зачувани во два

регистри. Тие нудат можност за неколку типови на основни споредби:

споредба на еднакво на,

споредба на поголемо од,

споредба на поголемо и еднакво од,

споредба на различно од,

споредба на помало од и

споредба на помало или еднакво од.

Врз основа на резултатот од овие споредби, процесорот може да ги ВКЛУЧУВА или

ИСКЛУЧУВА излези, како и други акции. Инструкциите за споредба работат со

кориснички дефинирани променливи, тајмери, бројачи или константи.

Page 36: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

33

> БРОЈАЧ

COUNTER Cname Cname

--[CTU >=5]-- --[CTD >=5]--

Постојат два основни типови на бројачи: оние кои бројат нагоре (CTU) и оние кои

бројат надолу (CTD). Бројачите секогаш, по правило, работат со растечки/опаѓачки раб

на сигналот кој е влезен услов во нив. Излезот од овој елемент е вклучен кога

изброената вредност е поголема или еднаква на 5 (во примеров е 5, општо таа вредност

ја задава оној кој го прави програмот). Во една програма може да имате бројач нагоре и

бројач надолу со истото име. Тие се користат како комбиниран бројач.Наредбата за

ресетирање – RES, може да се искористи за да се ресетира (постави на нула) вредноста

на некој бројач.

> КРУЖЕН БРОЈАЧ

CIRCULAR COUNTER Cname

--{CTC 0:7}--

Кружниот бројач работи на ист принцип како и бројачот нагоре, со разлика што кога ќе

се достигне вредноста која треба да ја изброи (во примеров = 7) тој автоматски се

ресетира и ја поставува вредноста 0 во сопствениот акумулатор. На пример, ваквиот

бројач брои во следниов редослед 0, 1, 2, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 2,.... По

правило оваа инструкција мора да биде последна во скалилото и не смее да има ништо

десно од неа.

> ПОМЕСТУВАЧКИ РЕГИСТАР

SHIFT REGISTER {SHIFT REG }

-{ reg0..3 }-

Инструкцијата за поместување во регистар (анг. shift – SHIFT REGISTER) работи со

множество на променливи, и при секој растечки раб на влез од инструкцијата ги

извршува следниве операции (под претпоставка дека овој поместувачки регистар е

поврзан со променливите `reg0', `reg1', `reg2', и `reg3') `reg3 := reg2', `reg2 := reg1'. И

`reg1 := reg0'. `reg0' не се менува. Доколку користите големи множества на регистри,

резервирате голем дел од меморијата. По правило оваа инструкција мора да биде

последна во скалилото.

> ПРЕГЛЕДУВАЧКА ТАБЕЛА

LOOK-UP TABLE {dest := }

-{ LUT[i] }-

Прегледувачката табела претставува множество од подредени вредности ограничено со

некој број n. Кога влезниот услов во скалилото е исполнет, променливата `dest' добива

вредност која ќе биде еднаква на вредноста од прегледувачката табела која одговара на

целобројната променлива `i'. Индексот во прегледувачката табела започнува од нула,

па влезниот параметар мора да биде помеѓу 0 и (n-1). Во спротивно нема да добиете

валиден резултат. По правило оваа инструкција мора да биде последна во скалилото.

Page 37: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

34

> ЛИНЕАРНА ТАБЕЛА ПО ДЕЛОВИ

PIECEWISE LINEAR TABLE {yvar := }

-{ PWL[xvar] }-

Ова е добар начин за да се претстави некоја сложена нелинеарна крива и често се

користи за калибрирање на влезните податоци од некои сензори.

Да земеме дека треба да се претстави некоја функција која ќе ја пресликува влезната

информација (променлива), x, во некоја целобројна променлива, y. Доколку знаете дека

постојат некои референти точки, на пример:

f(0) = 2

f(5) = 10

f(10) = 50

f(100) = 100

што значи дека точките

(x0, y0) = ( 0, 2)

(x1, y1) = ( 5, 10)

(x2, y2) = ( 10, 50)

(x3, y3) = (100, 100)

се наоѓаат на таа крива. Оваа функција ќе врати вредност за y координата на точката, за

дадена вредност на џ координатата така што сите точки (оние претходно внесените и

новата) ќе лежат на една континуирана линија составена од повеќе надополнувачки

прави. Преносната функција на овој елемент изгледа како на следната слика.

Слика IV-5 Излезна функција од по делови линеарна

Логично доколку како влез во функцијата имате точка која се наоѓа помеѓу две точки

од табелата, тогаш излезот у ќе лежи на правата што ги поврзува двете точки. По

правило оваа инструкција мора да биде последна во скалилото.

0

20

40

60

80

100

120

0 5 10 100

Излезна функција

Излезна функција

Page 38: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

35

> АНАЛОГЕН ВЛЕЗ

A/D CONVERTER READ Aname

--{READ ADC}--

Оваа софтверска апликација подржува 9 битно читање на два аналогни влезови од

ПЛУ-то. Доколку влезниот услов во скалилото е исполнет, тогаш се чита вредноста од

аналогниот влез и се зачувува во променливата со име `Aname'. Со оваа променлива

може да се користат математички операции, како и операции за споредба. За влезна

информација може да се избере еден од аналогните влезови кои се наоѓаат на ПЛУ-то.

За сите уреди кои се поврзуваат на аналогните влезови важат следните скалила.

Референтна, нулти напон, се чита како вредност нула, додека максималната вредност

на влезниот напон од 10 волти се интерпретира како бројка - 511. По правило оваа

инструкција мора да биде последна во скалилото.

> АНАЛОГЕН ИЗЛЕЗ 1

SET PWM_2 OUTPUT duty_cycle

-{PWM 1.0 kHz}-

За разлика од аналогните влезови кои се рамноправни и за нив се користи истата

наредба, за аналогните излези постојат одделни наредби. Со помош на наредбата за на

аналогниот излез 1 (на англиски set pwm duty cycle), може да се задаваат аналогни

вредности од 0 до 10 волти. Вредноста на променливата duty_cycle може да се менува

од 0 до 100, што ја претставува и резолуцијата на аналогниот излез.

Причината за изборот на различни операции за секој од аналогните излези е во нивната

различна хардверска реализација. Аналогниот излез 1 е реализиран со помош на

хардверската функција за импулсно ширинска модулација (PWM).

По правило оваа инструкција мора да биде последна во скалилото.

> АНАЛОГЕН ИЗЛЕЗ 2

PREPARE PWM_2 LADDER

SET PWM_2 OUTPUT

||PWM_2 >>> The text below this comment line, ||

|| untill the other one should not be changed!! ||

1 || ||

|| ||

|| [ciklus < ] Pwm2 ||

2 ||---[ temp_pwm]------------------------- ------------------------(PWM2)------ ||

|| ||

|| ||

|| Xnew {temp_pwm :=} ||

3 ||-------] [----------------------------------------------------{ 50 MOV}-- ||

|| ||

|| ||

|| [ciklus ==] {SUB ciklus :=} ||

Page 39: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

36

4 ||---[ 255 ]-------------------------------------------{ ciklus - 255 }--------- ||

|| ||

|| ||

|| {ADD ciklus :=} ||

5 ||-----------------------------------------------------------{ ciklus + 1 }---- ||

|| ||

|| ||

||PWM_2 >>> The text above this comment line, ||

||untill the other one should not be changed!! ||

6 || ||

||------[END]----------------------------------------------------------------------- ||

Наредбата за аналогниот излез 2 е една од ретките наредби во LDmicro која се

повикува во повеќе скалила. Тоа е така заради тоа што оваа наредба всушност

претставува софтверски генериран – импулсно ширински модулиран сигнал, кој

инертните уреди приклучени на аналогниот излез 2 го гледаат како аналогна вредност.

Овие 6 скалила се генерираат автоматски, со притискање на две последователни

наредби. Од кои првата е поготовка на мрежата за вметнување на аналогниот излез 2

(Prepare PWM2 Ladder - PAO2), после која се повикува втората наредба за реално

поставување на аналогниот излез и исцртување на претходно објаснетите скалила (Set

PWM2 Output - AO2).

Вредноста која ја треба да се внеси во оваа наредба е вредноста на променлива

temp_pwm и таа може да се менува од 0 до 33, што кореспондира на излезна вредност

од 0 до 10 волти. Останатите скалила не треба да се менуваат.

IV.7 ЗАБЕЛЕШКА ЗА КОРИСТЕЊЕ НА

МАТЕМАТИЧКИТЕ ОПЕРАЦИИ

Овој програм може да извршува математички операции само со 16 битни целобројни

вредности. Ова значи дека програмерот треба да внимава, ниту една променлива да не

добие вредност надвор од опсегот (-32768, 32767) за време на извршувањето на

програмата.

На пример, доколку сакате да ја пресметате следнава функција y = (1/x)*1200, каде x

може да прима вредности помеѓу 1 и 20. Тогаш y ќе се движи помеѓу 1200 и 60, што се

вклопува во наведените ограничувања, што значи дека можно е да се изврши таа

функција. Постојат два начини за да се пресмета оваа функција. Првиот е да се

направат две скалила во кои во првото се извршува првата операција (1/x), а во второто

се множи резултатот со 1200:

|| {DIV temp :=} ||

||---------{ 1 / x }--------- ||

|| ||

|| {MUL y := } ||

||----------{ temp * 1200}--- ||

Page 40: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

37

|| ||

Или истото може да се направи во едно скалило:

|| {DIV y :=} ||

||-----------{ 1200 / x }------ ||

Математички и двата начини се исти, но доколку ги пробате паралелно, се забележува

дека првиот начин секогаш враќа вредност нула (y = 0). Тоа е заради тоа што

променливата `temp' се заокружува на нула. На пример кога x = 3, (1 / x) = 0.333, но таа

вредност не е целобројна, па при делењето во променливата се внесува вредност нула.

Пото се извршува операцијата y = temp * 1200 = 0. Во вториот случај целата операција

се извршува едновремено па нема проблеми.

Доколку имате проблеми со математичките работи, венаш проверете дали станува збор

за заокружување на вредност, или пак преполнување (кога ќе се достигне

максималната можна вредност; на пример, 32767 + 1 = -32768). Најдобро е да се

избираат вредности во одреден опсег, на пример од -100 до 100.

Кога имате потреба да скалирате некоја вредност со одреден фактор, тоа се прави со

помош на множење или делење. Доколку сакате да скалирате вредност како y = 1.8*x,

потребно е да ја пресметате операцијата y = (9/5)*x (што е исто бидејќи 1.8 = 9/5), па

треба да се внесе следната математичка функција y = (9*x)/5, при што прво треба да се

изврши множењето со 9, а потоа и делењето со 5:

|| {MUL temp :=} ||

||---------{ x * 9 }------- ||

|| ||

|| {DIV y :=} ||

||-----------{ temp / 5 }----- ||

Ова скалило работи за сите вредности на x, каде x < (32767 / 9), односно x < 3640. За

поголеми вредности на х, променливата ќе добива нелогично вредности.

НАЧИН НА ПРОГРАМИРАЊЕ

============

Софтверската алатка дозволува користење на повеќе намотки во исто скалило. Ова

значи дека може да се искористи следново скалило:

|| Xa Ya ||

1 ||-------] [--------------( )--- ||

|| ||

|| Xb Yb ||

||-------] [--+-----------( )-- ||

|| | ||

|| | Yc ||

|| +-------( )------ ||

|| ||

Page 41: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

38

Наместо ова:

|| Xa Ya ||

1 ||-------] [--------------( )--- ||

|| ||

|| ||

|| Xb Yb ||

2 ||-------] [--------------( )--- ||

|| ||

|| ||

|| Xb Yc ||

3 ||-------] [--------------( )--- ||

|| ||

Ова е корисно бидејќи лесно може да се забележи врската помеѓу одредени излези (ако

се групирани во исто скалило), но сепак треба да се избегнуваат премногу големи

скалила кои доста ја усложнуваат програмата и ја прават неразбирлива и тешка за

преуредување.

Page 42: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

39

V. ПРИМЕРИ ЗА ПРОГРАМИРАЊЕ НА LDmicro

Во оваа глава ќе претставиме неколку едноставни примери за програмирање на

софтверската алатка LDmicro. Во првите примери ќе објасниме и некои основни

принципи кои препорачуваме дека треба да се следат. Сепак постојат и одредени

исклучоци од истите, како што ќе биде наведено подолу во текстот.

ПРИМЕР 1. Код зависен од редоследот скалилата.

Генерално се смета за лош начин на програмирање доколку користите код кој при

различен редослед на поставеност на скалилата ќе дава различен резултат. На пример,

следниов код не е добар бидејќи во случај кога ќе се исполнети условите и за Xa и за

Xb секогаш ќе се исполнува само долното скалило.:

|| Xa {v := } ||

1 ||-------] [--------{ 12 MOV}---- ||

|| ||

|| Xb {v := } ||

||-------] [--------{ 23 MOV}---- ||

|| ||

|| [v >] Yc ||

2 ||------[ 15]-------------( )------------- ||

|| ||

Се разбира понекогаш е прифатливо да се напише ваков код, но треба добро да се

внимава бидејќи после тоа може да не се препознаваат проблемите а програмата да се

однесува на различен начин од планираното.

ПРИМЕР 2. Претворање на 4-битен број во целобројна вредност.

Во продолжени е претставена отстапка од препораката дадена во претходниот пример,

со цел да се добие покомпактен код. Во случајов треба да се направи целобројна

вредност од 4-битен бинарен број кој се чита од контактните влезни информации

Xb3:0:

|| {v := } ||

3 ||-----------------------------------{ 0 MOV}------ ||

|| ||

|| Xb0 {ADD v :=} ||

||-------] [------------------{ v + 1 }------------------ ||

|| ||

|| Xb1 {ADD v :=} ||

||-------] [------------------{ v + 2 }------------------ ||

|| ||

|| Xb2 {ADD v :=} ||

||-------] [------------------{ v + 4 }------------------ ||

|| ||

Page 43: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

40

|| Xb3 {ADD v :=} ||

||-------] [------------------{ v + 8 }------------------ ||

|| ||

Доколку првото скалило го поставиме како последно, вредноста на променлива v,

прочитана во друд дел од програмата би била нула. Сепак доколку сакаме да ја

елиминираме зависноста од поставеноста на скалилата би добиле доста посложен код.

Затоа, свесно ја прекршуваме дадената препорака.

ПРИМЕР 3. Проверка на функционалноста на дигиталните влезови и излези.

Како почетен пример за работа со програмабилниот логички управувач ќе направиме

една едноставна програма за проверка на функционалноста на дигиталните влезови и

излези. Треба да се напише програма која на кусо поврзување на даден влез ќе го

активира соодветниот излез. Заради тоа што имаме повеќе дигитални влезови од излези

потребно е некои излези да се активираат при повеќе влезни сигнали.

Во продолжение е претставена програмата која е решение на дадениот пример.

|| ||

|| Xin1 Yout1 ||

1 ||-------] [--------------( )--- ||

|| ||

|| ||

|| Xin2 Yout2 ||

2 ||-------] [--------------( )--- ||

|| ||

|| ||

|| Xin3 Yout3 ||

3 ||-------] [--------------( )----- ||

|| ||

|| ||

|| Xin4 Yout4 ||

4 ||-------] [--------------( )----- ||

|| ||

|| ||

|| Xin5 Yout5 ||

5 ||-------] [----+-------( )------ ||

|| | ||

|| Xin6 | ||

||-------] [---+ ||

|| ||

|| ||

|| Xin7 Yout6 ||

6 ||-------] [----+-------( )------ ||

|| | ||

|| Xin8 | ||

||-------] [---+ ||

|| ||

||------[END]----------------- ||

Page 44: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

41

Се забележува дека излезот 5 ќе се активира при активација на влезовите 5 и 6, додека

излезот 6 ќе се активира при активација на влезовите 7 или 8. Во продолжение е дадена

и табелата на влезови и излези на ПЛУ-то. Доколку саката да го превземете овој

пример побарајте го под името Primer3.ld и отворете го во апликацијата.

ПРИМЕР 4. Проверка на функционалноста на аналогните влезови.

Во следниот пример е прикажано како може да се провери функционалноста на

аналогните влезови во ПЛУ-то. Скалилото дадено подолу пали и гаси различни

сијалици во зависност од состојбата на аналогниот влез. Доколку вредноста на

аналогниот влез е помала или еднаква на 150 (аналогниот влез по правило прима напон

во волти од 0 до 10 волти, кој се пресликува како целобројна вредност од 0 до 511) се

активира излезот 1. Ако вредноста на аналогниот влез 1 е помеѓу 150 и 400, тогаш се

активира дигиталниот излез 2, а доколку таа вредност е поголема од 400, тогаш се

активира излезот три.

Аналогно на оваа постапка за аналогниот влез еден се извршуваат и преостанатите

скалила за аналогниот влез 2, кој ги активира дигиталните излези 4, 5 и 6.

|| Ain1 ||

1 ||---------------------------{READ ADC}---- ||

|| ||

|| ||

- || [Ain1 <=] Yout1 ||

2 ||----[ 150 ]----------------------------( )----- ||

|| ||

|| ||

|| [Ain1 >] [Ain1 <] Yout2 ||

3 ||----[ 150 ]---------[ 400 ]------------( )---- ||

|| ||

|| ||

|| [Ain1 >=] Yout3 ||

4 ||----[ 400 ]----------------------------( )----- ||

|| ||

|| ||

|| Ain2 ||

5 ||---------------------------{READ ADC}---- ||

|| ||

|| ||

|| [Ain2 <=] Yout4 ||

6 ||----[ 150 ]----------------------------( )----- ||

|| ||

|| ||

|| [Ain2 >] [Ain2 <] Yout5 ||

7 ||----[ 150 ]---------[ 400 ]------------( )---- ||

|| ||

|| ||

|| [Ain2 >=] Yout6 ||

8 ||----[ 400 ]----------------------------( )----- ||

|| ||

||------[END]----------------------------------- ||

Page 45: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

42

ПРИМЕР 5. Проверка на функционалноста на аналогниот излез 1.

Во овој пример е покажано како можете да ја менувате вредноста на аналогниот излез

1 во зависност од некој логички услов. Во овој случај го користиме првиот дигитален

влез за да го овозможиме аналогниот излез еден. Во зависност од состојбата на

дигиталниот влез 2, аналогниот излез еден работи со 10% односно со 20% од неговата

моќност, односно, на излез од него се добива напон од 1 и 2 волти соодветно.

|| ||

|| Xin1 duty_c ||

1 ||-------] [--------{PWM 1.00 kHz}- ||

|| ||

|| ||

|| Xin2 {duty_c := } ||

2 ||-------] [--------{ 10 MOV}---- ||

|| ||

|| ||

|| Xin2 {duty_c := } ||

3 ||-------]/[--------{ 20 MOV}---- ||

|| ||

||------[END]-------------------------- ||

ПРИМЕР 6. Проверка на функционалноста на аналогниот излез 2.

Слично на претходниот пример, овој пример објаснува како може да искористите

логички услов за менување на состојбата на аналогниот излез 2. Во зависност од

состојбата на дигиталниот влез 2, аналогниот излез 2 еден работи со 20% односно со

0% од неговата моќност, односно, на излез од него се добива напон од 2 и 0 волти

соодветно.

|| ||

|| ; PWM_2 >>> The text below this comment line, ||

|| untill the other one should not be changed!! ||

1 || ||

|| ||

|| [ciklus < ] Pwm2 ||

2 ||---[ temp_pwm]--------------------------------------------(PWM2)-- ||

|| ||

|| ||

|| Xin2 {temp_pwm :=} ||

3 ||-------] [----------------------------------------------{ 20 MOV}-- ||

|| ||

|| ||

|| [ciklus ==] {SUB ciklus :=} ||

4 ||---[ 255 ]----------------------------------{ ciklus - 255 }--------- ||

|| ||

|| ||

|| {ADD ciklus :=} ||

5 ||------------------------------------------------{ ciklus + 1 }--------- ||

Page 46: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

43

|| ||

|| ||

|| ; PWM_2 >>> The text above this comment line, ||

|| untill the other one should not be changed!! ||

6 || ||

|| ||

|| Xin2 {temp_pwm :=} ||

7 ||-------]/[-----------------------------------------------{ 0 MOV}-- ||

|| ||

||------[END]-------------------------------------------------------------- ||

ПРИМЕР 7. Употреба на MCR и групирање на повеќе скалила во еден услов.

Да се искористи наредбата за Главно управувачко реле при што ќе се извршуваат

различни подгрупи од скалила во зависност од активноста на еден влез.

Поточно во оваа програма ќе покажеме како можеме да го управуваме текот на

програмата со помош на дигиталниот влез Xin1. Ако Xin1 е активен тогаш со помош на

влезот Xin2 се активира Yout2, а со помош на Xin3 се активира Yout3. Спротивно, ако

Xin1 не е активен тогаш со помош на влезот Xin2 се активира Yout3, а со помош на

Xin3 се активира Yout2. Решението е дадено во продолжение.

|| Xin1 ||

1 ||-------] [---------{MASTER RLY}--- ||

|| ||

|| Xin2 Yout2 ||

2 ||-------] [--------------( )------- ||

|| ||

|| Xin3 Yout3 ||

3 ||-------] [--------------( )------- ||

|| ||

|| ||

4 ||-------------------{MASTER RLY}--- ||

|| ||

|| Xin1 ||

5 ||-------]/[---------{MASTER RLY}--- ||

|| ||

|| ||

|| Xin2 Yout3 ||

6 ||-------] [--------------( )------- ||

|| ||

|| Xin3 Yout2 ||

7 ||-------] [--------------( )------- ||

|| ||

|| ||

8 ||-------------------{MASTER RLY}--- ||

|| ||

||------[END]----------------------- ||

|| ||

Page 47: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

44

ПРИМЕР 8.

Да се реализира квадратна функција со помош на „ ПРЕГЛЕДУВАЧКА ТАБЕЛА―, која

во променливата test ќе го зачувува квадратот на променливата index (оваа променлива

може да прима дискретни вредности од 0 до 9). Вредноста на оваа променлива треба да

се инкрементира секогаш кога ќе се активира дигиталниот влез 1. Кога оваа

променлива ќе ја достигне вредноста 9, треба да продолжи да брои од 0. Доколку

вредноста на променливата index постане поголема од 45 потребно е да се активира

дигиталниот излез 1.

Решението на овој проблем е дадено со следниот скалест дијаграм:

|| ||

|| { dest := } ||

1 ||-----------------------------------{ LUT[index]}-- ||

|| ||

|| ||

|| Xin1 C1 {C1 := } ||

2 ||-------] [----------[CTU >=10]-----{ 0 MOV}-- ||

|| ||

|| ||

|| {index := } ||

3 ||-----------------------------------{ C1 MOV}-- ||

|| ||

|| ||

|| [dest >] Yout1 ||

4 ||----[ 45 ]-----------------------------( )------- ||

|| ||

|| ||

||------[END]---------------------------------------- ||

|| ||

Во продолжение е прикажано и како се нагодува блокот за „прегледувачка табела―, за

да задачата ги следи условите зададени во текстот.

Page 48: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

45

Page 49: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

46

VI. АСИ макета на производна лента

VI.1 ВОВЕД

Транспортните ленти, во основа, се состојат од две или повеќе соодветно прицврстени

макари (валјаци) над кои е обвиткан материјал (на пример гумена лента), која може да

ротира околу нив (види Слика 1-1). Еден од валјаците (во одредени изведби може и

двата) се придвижува со помош на мотор, на кој начин лентата се придвижува во

соодветна насока.

Слика 1-1 Точки на контакт помеѓу валјаците и транспортната лента.

Транспортните ленти се едни од најчесто среќаваните компоненти во индустријата, а

исто така има и нивни најразлични изведби кои се користат во комерцијални

апликации. Колку за илустрација, меѓу најразличните примени на транспортни ленти

спаѓаат: нивно користење како дел од производните линии, транспорт на најразлични

материјали, транспорт на патници и багаж во аеродромите, ескалатори, наплатни каси

во супермаркетите, ски лифтови и уште многу други. Нивната широка употреба беше

мотив за изработка на модел со кој би се симулирала нивната работа.

АСИ – макетата на производна лента претставува уред со чија помош може да се

симулира работата на транспортна лента и линија за производство (на пример

детекција на материјали и нивна обработка). Истата е наменета за користење во склоп

со АСИ-ПЛУ.

VI.2 СОСТАВНИ ДЕЛОВИ

АСИ – макетата на производна лента се состои од 8 основни делови (Слика 2-1):

- гумена транспортна лента поставена околу 3 валјаци (1);

- DC мотор со вграден редуктор, кој го придвижува едниот погонски валјак (2);

- 3 близински индуктивни прекинувачки сензори (3);

- 1 фотоелектричен прекинувачки сензор (фотоќелија) (4);

Page 50: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

47

- 3 прекинувачи (2 влезни (5) и 1 за вклучување/исклучување на напонот на

макетата (6));

- 2 притисни копчиња (тастери);

- 9 диоди за индикација на статусот на сензорите (3-те близински и

фотоелектричниот), влезните прекинувачи и тастери, како и статус на вклученост на

макетата (се наоѓаат до секој елемент, соодветно);

- 18 влезни контакти (клеми) на кои се приклучуваат соодветни контакти од

АСИ-ПЛУ.

Слика 2-1 АСИ – макета на производна лента

Page 51: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

48

Во VI.2.1.1.2 се прикажани основните детали на составните компоненти на АСИ –

макетата на производна лента.

КОМПОНЕНТ

А ИЗГЛЕД

ОЗНАКА ВО

ЕЛЕКТРИЧН

А ШЕМА

НАЧИН НА

ФУНКЦИОН

ИРАЊЕ

СПЕЦИФИКАЦИИ

Актуатори

12 V DC мотор

со редуктор

(1:600)

Произведувач:

CONRAD

RB350600-

00201

M

DC моторот е

елeктричен

мотор кој

работи на

еднонасочна

струја (анг.

direct current –

DC)

Номинален напон и работен напон: 12V/DC Максимален товар при движење: 18 kg/cm

Побарувачка на струја при максимален товар: 2.1 A

Однос на запчаниците (редукторот): 1:600 Највисок момент на сила: 60Nсm

Брзина (неоптоварен): 10rpm

Брзина (оптоварен): 9rpm

5mm LED -

диоди кои

емитираат

светлина

LED диодите

емитираат

видлива

светлина

(додека сепак

работат како

нормални

диоди).

Црвена Зелена Жолта

Напон кога

диодата води 2.0V 2.0V 2.1V

Струја кога диодата води

(max.)

30mA 25mA 30mA

Сензори

Индуктивен

сензор

Произведувач:

TURCK

Industrial

Automation

Bi8U-M18-

AP6X

сина (BU): - ;

кафеава (BN): +; црна (BK):

сигнал

Индуктивнит

е сензори се

дизајнирани

за

безконтактна

детекција на

метални

објекти.

Растојание на кое се врши загарантирана детекција:

6.48mm

Работен напон: 10...30V/DC Работна струја: 200mA

Струја кога сензорот не е оптоварен: 15mA

Излез: 3 жици, нормално отворен, pnp

Фотосензор –

дифузно

рефлектирачки

светлински

скенер

Произведувач:

LEUZE

Electronic

HRTR 3B/66

S8

А-зелена

диода за

индикација

B-жолта

диода за

индикација

D-

ротирачки

потенциоме

тар за

нагодување

на опсегот

Фотоелектрич

ните

прекинувачи

се опто-

електронски

уреди

составени од

извор на

светлина

(предавател)

и приемник

на светлина.

Тие се

користат за

детектирање

на прекин или

рефлексија на

светлосниот

зрак. Постојат

три вида на

фотоелектрич

ни

прекинувачи:

со помош на

зрак, ретро-

рефлексивни

Овој сензор е од третиот тип, каде предавателот и

приемникот се соединети во една целина. Светлинскиот зрак генериран од предавателот е

насочен кон призматичен рефлектор кој го враќа

зракот кон приемникот. Прекинувањето на зракот доведува до активирање на прекинувачот во

приемникот.

Се поврзува со кабел со 4 жици:

кафеава (BN): +; сина (BU):GND -; црна (BK):

OUT1 – ИЗЛЕЗ 1; бела (WH): OUT2 – ИЗЛЕЗ 2; Опсег: 15...400mm;

Работен напон: 10...30V/DC;

Струја кога сензорот не е оптоварен: 15mA;

Има 2 елекронски излези:

1. OUT 1: Нормално отбворен (NO) контакт. Ако

како сигнал за детекција на објект се поврзе ИЗЛЕЗ 1, тогаш при детекција на објект, жолтата сијаличка

од исклучена преминува во вклучена состојба

2. OUT 2: Нормално затворен (NC) контакт. Ако како сигнал за детекција на објект се поврзе ИЗЛЕЗ 2,

тогаш при детекција на објект, жолтата сијаличка од

вклучена преминува во исклучена состојба.

Page 52: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

49

на

детекција

и светлински

скенер.

Притисно

копче (тастер)

Притисните

копчиња

овозможуваат

течење на

струја само во

моментот

кога се

притиснати.

ВКЛУЧИ/ИСК

ЛУЧИ

прекинувач

Едноставен

прекинувач

кој може да

се користи, на

пример за

вклучување

на напојување

во едно

електронско

коло.

Додатни елементи

Реле

Произведувач:

SUN HOLD

THU-1203

поглед

одоздола

калем

NCNO

C

Електронски

е релеа се

чисто

електронски

уреди, при

што се

користат во

многу

апликации,

особено при

вклучување

на

оптоварување

какви што се

моторите.

Кај електронските релеа двата влезни приклучоци се аналогни на калемот кај електромагнетното реле, а

двата излезни приклучоци се аналогни на контактите

при електромагнетното реле (обично NO). Влезот или управувачкиот напон на електронското

реле е типично 5V DC, 24V DC или 220 V AC.

Во овој случај, влезниот напон е 12V/DC;

Отпорник

Се користи во

серија со LED

диодите за да

се избегне

поголема

струја од

30mA, при

која би

изгорела

диодата.

2200

VI.2.1.1.2 Основните детали на составните компоненти на АСИ –

макетата на производна лента

Page 53: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

50

VI.3 ЕЛЕКТРОНСКО ПОВРЗУВАЊЕ НА СИТЕ ДЕЛОВИ ОД

МАКЕТАТА

Во е дадено електронското поврзување на сите составни електронски елементи од кои

е составена АСИ-макетата на производна лента.

Пред да се изврши поврзувањето за соодветно направениот програм и апликација,

треба да се внимава на следното.

1. Моторот се поврзува на 12V/DC преку пиновите [- М] и [+ М 12V]. Овие два

пина можат да се поврзат или од адаптер или директно од ПЛУ-то.

a. Ако моторот се поврзе директно од адаптер, тогаш пинот [- М] е на

различен потенцијал од пинот [- (GND) od ПЛУ];

b. Ако моторот се поврзе на 12V/DC преку ПЛУ-то, тогаш пинот [- М]

може надворешно да се поврзе со пинот [- (GND) od PLU];

Page 54: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

51

VII. УПРАВУВАЊЕ НА РЕАЛНА ПОСТРОЈКА СО ПОМОШ

НА ПРОГРАМАБИЛНИОТ ЛОГИЧКИ УПРАВУВАЧ

VII.1 ОПИС НА ПОСТРОЈКАТА

Постројката која во овој случај служи за симулирање на производна лента за полнење,

броење и пакување на шишиња.

Изгледот на постројката е претставен на Слика VII-1. Истата се состои од три

индуктивни сензори (IS1, IS2 и IS3), еден прекинувачки (фото) сензор, сите работат на

24 волти напојување директно од влезовите во ПЛУ-то, како и дополнителни

прекинувачки сензори – две копчиња и два прекинувачи. Сите наброени сензори можат

да се искористат за поврзување на програмабилниот логички управувач како дигитални

влезови. Подвижната трака се врти со помош на еден еднонасочен мотор кој работи на

12 волти. За управување на моторот постојат два контакти кои се соодветно обележани.

Едниот контакт е за впуштање на моторот во работа, додека другиот контакт за

одредување на насоката на движење на моторот.

Слика VII-1 Мини процес – макета на производна лента

Page 55: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

52

VII.2 ОСНОВЕН ПРИМЕР ЗА ПРОГРАМИРАЊЕ НА ПЛУ

(РАБОТА СО БРОЈАЧИ, ДИГИТАЛНИ ВЛЕЗОВИ И

ДИГИТАЛНИ ИЗЛЕЗИ)

Пред да започнеме со имплементација на посложени алгоритми, на почеток, ќе пробаме

да се поврземе со секој сензор одделно. Следниот програм кој ќе го прикажеме брои

колку пати се активирале сензорите на постројката (ја зголемува вредноста за еден

секогаш кога ќе се активира некој сензор), и во моментот кога таа бројка ќе достигне

десет, потребно е да се вклучи моторот во погон.

Броењето на активирањето на сензорите треба да продолжи и кога ќе се избројат уште

десет активирања на сензорите треба да се исклучи моторот.

Решение на основниот проблем:

Најпрво претпоставуваме дека го имаме совладано основното поврзување на сензорите

од макетата со програмабилниот логички управувач. Еден од двата влезни (IN1_1)

конектори на ПЛУ-то претставува извор на напон од 24 волти, додека другиот конектор

(означен со IN1_2), претставува приемник на сигналот. Кога низ вториот конектор ќе

протече струја се активира дадениот влез.

За да ги поврземе сите сензори на еден бројач потребно е истите да ги ставиме во

паралелна врска и потоа десно од нив да го поставиме бројачот. За да го

имплементираме ова решение треба да се изработи следниов скалест дијаграм:

|| ||

|| XIS1 Ctest ||

1 ||-------] [-------------+---[CTU >=10]------- ||

|| | ||

|| XIS2 | ||

||-------] [-------------+ ||

|| | ||

|| XIS3 | ||

||-------] [-------------+ ||

|| | ||

|| XFotoSensor | ||

||-------] [-------------+ ||

|| ||

Овој скалест дијаграм изгледа во ред, но доколку го провериме на симулацијата во

LDmicro, се забележува дека доколку еден од сензорите е активен и се активира друг

сензор, тогаш вредноста на бројачот нема да се промени (ДА СЕ ПРОВЕРИ ВО

СИМУЛАТОРОТ). Ова се случува бидејќи бројачот работи на растечки раб на влезниот

сигнал. Во ваквата конфигурација на скалилото, ако еден сензор е активен тогаш

сигналот кој „влегува― во бројачот е н високо ниво, па логично е дека промената на некој

друг сензор, нема да резултира со промена на вредноста на бројачот.

Со цел да го поправиме скалестиот дијаграм, можни се две решенија. Првото решение е

прикажано со следниот скалест дијаграм:

Page 56: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

53

|| ||

|| XIS1 _ Ctest ||

1 ||-------] [-----------[OSR_/ ]----+---[CTU >=10]--- ||

|| | ||

|| XIS2 _ | ||

||-------] [-----------[OSR_/ ]----+ ||

|| | ||

|| XIS3 _ | ||

||-------] [-----------[OSR_/ ]----+ ||

|| | ||

|| XFotoSensor _ | ||

||-------] [-----------[OSR_/ ]----+ ||

|| ||

Во овој случај бројачот нема проблем да го „фати― сигналот доколку има некој друг

активен сензор, но тука се јавува еден нов проблем. Доколку се појават растечки рабови

на два сензори на растојание од еден скенирачки циклус на ПЛУ-то (5 милисекунди),

бројачот нема да го регистрира вториот (ДА СЕ ПРОВЕРИ ВО СИМУЛАТОРОТ). Иако

ова е малку веројатно да се случи, сепак може да направи проблеми во нормалниот

работен тек на програмата, па затоа ќе го искористиме второто решение, каде потребно

е да се направи физичко одделување на сензорите, односно нивно поврзување со

бројачот во различни скалила.

Во овој случај, бројачот може да избери и повеќе вклучувања во исто скалило со што ги

решава претходно наведените проблеми. Решението е прикажано со следниот скалест

дијаграм.

|| ||

|| XIS1 Ctest ||

1 ||-------] [----------[CTU >=10]---- ||

|| ||

|| ||

|| XIS2 Ctest ||

2 ||-------] [----------[CTU >=10]---- ||

|| ||

|| ||

|| XIS3 Ctest ||

3 ||-------] [----------[CTU >=10]---- ||

|| ||

|| ||

|| XFotoSensor Ctest ||

4 ||-------] [----------[CTU >=10]---- ||

|| ||

|| ||

|| [Ctest >=] [Ctest <] Ymotor ||

5 ||---[ 10 ]--------[ 20 ]-----------( )------ ||

|| ||

Page 57: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

54

Во овој дијаграм, покрај тоа што успешно е реализирано броењето на сензорите,

скалилото е дополнето и со вториот услов, односно, кога бројачот ќе изброи до десет, да

се вклучи моторот, па потоа кога тој ќе изброи уште десет, да се исклучи.

Сепак мора да напоменеме дека ваквото решение, ќе работи само еднаш и кога бројачот

ќе ја промени својата вредност над 20, нема да може повторно да се активира моторот.

Доколку сакаме нашето решение да биде по универзално потребно е да го ресетираме

бројачот на нула (со помош на наредбата reset) кога тој ќе ја достигне вредноста 20.

Тоа се прави со додавање на следново скалило како шесто на претходниот програм:

|| ||

|| [Ctest ==] CCtest ||

6 ||---[ 20 ]---------------------------{RES}---------- ||

|| ||

Да се внесе конечниот програм во LDmicro, да се симулира со помош на симулаторот и

да се префрли на ПЛУ-то, па да се испроба на реалната постројка.

Овој пример можете да го вчитате како готов програм со име

―Proces_PLC_osnoven_primer.ld‖. Пред да го програмирате ПЛУ-то со помош на

основниот пример потребно е да проверите дали добро ги имате поврзано сензорите и

моторот на макетата!

VII.3 НАПРЕДЕН ПРИМЕР ЗА ПРОГРАМИРАЊЕ НА ПЛУ

(ПРИМЕР ЗА РАБОТА СО ТАЈМЕРИ И АНАЛОГНИ

ИЗЛЕЗИ)

Да се направи програм во кој една кантичка треба да започне да се движи на притискање

на копчето старт (едно од копчињата на макетата). После активирање на првиот

индуктивен сензор треба да се забележува бројот на кантички кои поминале пред него.

Истото треба да се прави и после активирањето на третиот индуктивен сензор. После

активирањето на вториот индуктивен сензор (IS2) потребно е траката да направи пауза

во движењето во траење од 5 секунди, после што треба да продолжи да се движи. Кога

кантичката ќе дојде пред фото сензорот, потребно е да се постави вредноста на

аналогниот излез 1 на 50%, а онаа на аналогниот излез 2 на 100%.

Дополнително, се додека се разликува бројот на кантички пред сензорот IS1 од оној пред

IS3, потребно е да се активира дигиталниот излез 6 (И покрај тоа што на тој излез нема

да има некој поврзан уред, индикативната диода ќе ни означува кога тој е активен).

Решение на примерот:

За почеток може да се направат скалилата кои се поврзани со бројачите, и кои се многу

слични на оние од претходниот пример. Решението на овој дел од проблемот е

претставено со следните три скалила (кои претставуваат и првите скалила од

комплетното решение на овој проблем).

Page 58: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

55

Новиот блок кој е искористен тука е оној за проверка на помеѓу два бројачи (обична

проверка, само што во двете полиња внесуваме различни имиња на бројачите). Секогаш

кога вредностите во двата бројачи ќе бидат различни ќе ни се активира излезот 6.

|| ||

|| XIS1 Csenzor1 ||

1 ||-------] [----------[CTU >=10]---- ||

|| ||

|| ||

|| XIS3 Csenzor3 ||

2 ||-------] [----------[CTU >=10]---- ||

|| ||

|| ||

|| [Csenzor1 /=] Yizlez6 ||

3 ||--[ Csenzor3 ]--------------------------( )--- ||

|| ||

Потребно е овој код да се провери со помош на симулаторот.

Продолжуваме со решавањето на проблемот. Сега е потребно да се воведе движењето на

моторот. Првиот услов е моторот да се придвижи кога ќе биде активиран некој

прекинувач за старт. Доколку поврземе еден од слободните прекинувачи на дигиталниот

влез 6 од ПЛУ-то, можеме истиот да го искористиме за да означува старт/стоп состојба

на програмабилниот логички управувач.

Но сега условот покрај тоа што бара од нас моторот да се движи, има потреба истиот да

се сопре за време од 5 секунди, во моментот кога ќе се активира индуктивниот сензор 2.

Со цел да си ја олесниме работата ќе употребиме инверзна логика. Користењето на

нормално затворена намотка е вообичаено во програмирањето на ПЛУ. Во нашиот

случај, првиот дел од скалилото ко е дадено подолу може да се реализира и со два

нормално отворени елементи, но при таков случај би имале проблеми со вториот дел,

односно имплементацијата на доцнењето од 5 секунди. Вака напишаното скалило го

активира крајниот елемент за време од 5 секунди кога на влез ќе добие растечки раб.

Бидејќи излезниот елемент е нормално затворен, неговото активирање, значи всушност

дека ние го исклучуваме уредот кој е поврзан на него. Кога ќе изминат петте секунди,

влезот во крајниот елемент од скалилото е неактивен и моторот повторно зпочнува со

работа. Ново добиеното скалило изгледа вака:

|| ||

|| Xprekinuvac Ymotor ||

4 ||-------]/[-------------------------------------------------+---------------------(/)--------- ||

|| | ||

|| XIS2 _ Tnew | ||

||-------] [-----------[OSR_/ ]-------[TOF 5.000 s]---+ ||

На крај останува уште да ги активираме аналогните излези кога ќе се активира фото

сензорот. Скалилата 5 и 6 го активираат аналогниот излез 1. Тоа се прави со префрлање

на вредност (од 0 до 100) во полето кое се повикува со наредбата Set PWM_1 Output. Во

овој случај таа променлива се вика ―duty_c‖.

Page 59: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

56

Скалилата 7-12, се користат за активирање на софтверскиот аналоген излез. За да ги

добиете овие две скалила потребно е најправо да го подготвите скалестиот дијаграм

(Prepare PWM_2 Ladder), а потоа треба да се повика Set PWM_2 Output, за да се

пополнат скалилата со елементи. За разлика од почетната состојба на скалилата тука

имаме додадено уште еден дополнителен услов во скалилото 8, а тоа е за да биде

активен излезот потребно е макетата да биде во стартувана состојба (прекинувачот

старт/стоп).

|| ||

|| XFotoSensor duty_c ||

5 ||-------] [-----------------------------------------{PWM 1.00 kHz}-- ||

|| ||

|| ||

|| Xprekinuvac {duty_c := } ||

6 ||-------] [--------------------------------------------{ 50 MOV}-- ||

|| ||

|| ||

|| ; PWM_2 >>> The text below this comment line, ||

|| untill the other one should not be changed!! ||

7 || ||

|| ||

|| ||

|| Xprekinuvac [ciklus < ] Pwm2 ||

8 ||-------] [----------[ temp_pwm]---------------------------(PWM2)-- ||

|| ||

|| ||

|| XFotoSensor {temp_pwm :=} ||

9 ||-------] [--------------------------------------------{ 20 MOV}-- ||

|| ||

|| ||

|| [ciklus ==] {SUB ciklus :=} ||

10 ||---[ 255 ]-----------------------------------{ ciklus - 255 }------- ||

|| ||

|| ||

|| {ADD ciklus :=} ||

11 ||------------------------------------------------{ ciklus + 1 }--------- ||

|| ||

|| ||

|| ; PWM_2 >>> The text above this comment line, ||

| |untill the other one should not be changed!! ||

12 || ||

|| ||

||------[END]------------------------------------------------------------- ||

|| ||

Пред да се програмира ПЛУ-то со оваа програма, потребно е да се провери дали на сите

променливи им се доделени соодветни вредности од табелата на влезни и излезни

пинови на ПЛУ-то.

Page 60: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

57

VII.4 ПРИМЕР ЗА УПРАВУВАЊЕ СО ПРОЦЕСОТ НА

ПОДВИЖНА ЛЕНТА

Процесот на подвижна лента е стандарден индустриски процес кој постои во скоро

секоја постројка. Во нашиот случај користиме макета, која претставува мини модел на

еден ваков процес. Нашата макета има три индуктивни сензори, еден прекинувач, еден

мотор и копчиња и прекинувачи кои можат да се користат по желба.

Конкретниот проблем се состои од управување со следниот процес. На подвижната

лента се носат кантички. Овие кантички треба да се движат со помош на подвижната

лента и во моментот кога ќе стигнат пред вториот сензор потребно е да се направи пауза

од 5 секунди (со што симулираме полнење на кантичките со некој производ). Потоа

производот продолжува да се движи се додека не стигне до фотосензорот. Во оваа

позиција потребно е да се запре подвижната лента и да се почека некој да го тргне

сензорот од пред фото сензорот (пакување на полните кантички).

Секогаш кога ќе помине кантичка пред индуктивниот сензор еден потребно е да се

зголеми вредноста на аналогниот излез 1 за 10%. Во случај оваа вредност да ја надмине

максимално дозволената (100), потребно е да се ресетира аналогниот излез и истиот да

се врати на вредност 0.Секогаш кога ќе помине кантичка пред индуктивниот сензор 3, се

зголемува вредноста во бројачот. Доколку бројачот ја достигне вредноста на 5

наполнети кантички треба да ја ресетира подвижната лента (да го исклучи моторот).

Вредноста на бројачот треба да се ресетира доколку се притисне одредено дефинирано

копче на макетата (копче за ресет). Кога ќе се притисне ова копче, потребно е да се

ресетира и аналогниот излез, а истовремено и да се запре движењето на лентата доколку

тоа е потребно.

Предлог решение на проблемот е презентирано со следниов скалест дијаграм:

|| ||

|| Xreset {duty := } ||

1 ||-------] [---+---------------------------{ 0 MOV} ||

|| | ||

|| | Ymotor ||

|| +-----------------------------------------(R)--------- ||

|| | ||

|| | Cbr_konz ||

|| +----------------------------------------{RES}----- ||

|| ||

|| ||

|| XIS1 _ {ADD duty :=} ||

2 ||-------] [-----------[OSR_/ ]--------------{ duty + 10 }---- ||

|| ||

|| ||

|| [duty >] {duty := } ||

3 ||----[ 100 ]-----------------------------------{ 0 MOV}-- ||

|| ||

|| ||

Page 61: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

58

|| Xenable duty ||

4 ||-------] [----------------------------------{PWM 1.00 kHz}-- ||

|| ||

|| ||

|| XIS2 Tnew Xenable Ymotor ||

5 ||-------] [------[TON 5.000 s]-------] [------+-------(S)------ ||

|| | ||

|| Xenable _ | ||

||-------] [-----------[OSR_/ ]----------------+ ||

|| | ||

|| XFotoSensor _ | ||

||-------] [-----------[OSF \_]----------------+ ||

|| ||

|| ||

|| XIS2 _ Ymotor ||

6 ||-------] [-----------[OSR_/ ]----+-------------------(R)------- ||

|| | ||

|| Xenable _ | ||

||-------] [-----------[OSF \_]----+ ||

|| | ||

|| XFotoSensor _ | ||

||-------] [-----------[OSR_/ ]----+ ||

|| | ||

|| XIS3 Cbr_konz | ||

||-------] [-----------[CTU >=5]-+ ||

|| ||

|| ||

|| Xdirection YNapredNazad ||

7 ||-------] [------------------------------------------------(/)------- ||

|| ||

|| ||

||------[END]----------------------------------------------------- ||

|| ||

Добро би било да се дискутира решението и да се дадат забелешки на тоа дали

програмот се однесува како што треба?

Доколку не се однесува како што треба, кои промени треба да се направат за да се

исправаат недоследностите?

Page 62: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

59

VIII. За авторите

Програмабилниот логички управувач за работа во средни технички училишта и макетата

на процес на подвижна лента се комплетно изработени од членовите и постдипломците

на Институтот за Автоматика и системско инженерство кој е дел од Факултетот за

електротехника и информациски технологии на Универзитетот Св. Кирил и Методиј во

Скопје. Истите се изработени како дел од проектот финансиран од USAID Македонија.

Во тимот кој го изработи програмабилниот логички управувач, мини процесот и

софтверот за програмирање на скалест дијаграм учествуваа:

Проф. д-р Миле Станковски

Проф. д-р Татјана Колемишевска-Гугуловска

м-р Весна Ојлеска

м-р Горан Стојановски

дипл. ел. инж. Горан Владев

дипл. ел. инж. Игор Марковски

дипл. ел. инж. Драган Станковски

За подетални информации можете да ги контактирате авторите на нивната адреса.

Универзитет Св. Кирил и Методиј – Скопје,

Факултет за електротехника и информациски технологии

Институт за автоматика и системско инженерство

Карпош 2 б.б. Скопје

Телефон 02 3099 191

02 3099 152

Факс 02 3064 262

Веб: http://www.feit.ukim.edu.mk

Page 63: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

60

IX. ПРИЛОГ 1 - СТАНДАРДОТ IEC 61131

IX.1 СТАНДАРДОТ IEC 61131 И ПРОГРАМИРАЊЕТО НА

ПЛУ-ТО

Како што беше кажано и во претходните поглавја, програмирањето на ПЛУ-то може да

претставува тешка задача, заради големиот број на меѓузависности во управувачката

програма, како што истата станува поголема и покомплицирана. Дополнително, секој

производител на ПЛУ-а нуди различно инструкциско множество за сите членови на

својата фамилија. Многу од овие инструкциски множества не можат да се применат кај

другите типови на ПЛУ-а, така да не постои едноставен начин за префрлање на ПЛУ-

програмата која се користи за даден тип на ПЛУ, во ПЛУ-програма за друг тип на ПЛУ.

Во ова поглавје ќе се запознаете со стандардот IEC 61131 (поранешната ознака на овој

стандард беше IEC 1131), кој претставува стандард за обединување и поедноставување

на различните типови на програмирања кај различните типови на ПЛУ-а.

IX.2 ВОВЕД ВО СТАНДАРДОТ IEC 661131

Комитетот SC65B-WG7 на Интернационалната Комисија за Електротехника (анг. The

International Electrotechnical Commission - IEC) го развил стандардот IEC 661131 со цел

да се направи стандардизација на програмабилните управувачи. Една од целите на

комитетот била да се креира заедничко множество на инструкции кое ќе може да се

користи кај сите ПЛУ-а. Иако стандардот IEC 61131 го добива статусот на

интернационален стандард уште во Август 1992, обидот да се креира глобален ПЛУ-

стандард претставувало многу тешка задача, заради разликите што постоеле кај

различните производители. Како и да е, досегашниот подем на стандардот има огромно

влијание на начинот на кој што во иднина ќе бидат програмирани програмабилните

управувачи.

Стандардот IEC 61131 за програмирање на програмабилните управувачи се состои од

пет делови:

општи информации;

опрема и барања при тестирање;

програмски јазици;

упатства за корисникот;

сервиси за комуникација.

Иако има пет дела во стандардот IEC 61131, третиот дел – програмските јазици – ги нуди

сите информации за инструкциите и програмирачките стандарди. Делот за програмските

јазици кај стандардот IEC 61131 се нарекува стандард за програмирање IEC 61131-3.

Page 64: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

61

ЈАЗИЦИ И ИНСТРУКЦИИ

Стандардот IEC 61131-3 дефинира два графички јазици и два текст-базирани јазици кои

се користат при програмирањето на ПЛУ-то. Графчките јазици користат симболи за

програмирање на управувачките инструкции, додека текст-базираните јазици користат

низи од букви за претставување на програмирачките инструкции.

Графички јазици:

Скалест дијаграм (анг. ladder diagram - LD);

Функциски блок дијаграм (анг. function block diagram - FBD).

Текст-базирани јазици:

Листа на инструкции (анг. instruction list - IL);

Структуриран текст (анг. structured text)

Дополнително, стандардот IEC 61131-3 вклучува и рамка за објектно ориентирано

програмирање наречена секвенцијални функциски графови (анг. sequential function

charts - SFCs). SFC понекогаш се категоризира како програмски јазик според стандардот

IEC 61131-3, но всушност претставува организациска структура која врши координација

на четирите реални програмски јазици од стандардот. SFC има програмирачка структура

во облик на проточен граф, при што ги користи различните јазици за извршување на

различни управувачки задачи.

Табела 2-1 Типови на променливи, функции и блокови

Page 65: Upatstvo za rabota so Ladder Diagram

Упатство за работа со програмабилен логички управувач

62

Стандардот IEC 61131-3 користи широк спектар на стандардни податочни функции и

функциски блокови, кои работат со голем број на типови на податоци. Во Табела 2-1 се

прикажани некои примери на овие типови на податоци и функции, како и некои типични

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

од управувачот (на пример, бинарен, реални броеви, временски податок, итн.), додека

податочните функции се операции кои се изведуваат над податоците (на пример,

споредба, инверзија, собирање, итн.). Функциските блокови се множества на податочни

функции кои работат над блокови од податоци. Опсегот на променливата ги означува

границите до кои променливата може да се користи во апликацијата. На пример,

глобалните променливи можат да се користат од која било програма во апликацијата,

додека локалните променливи можат да се користат само од програмата во која се

дефинирани.