You are on page 1of 45

Универзитет у Крагујевцу

Факултет техничких наука Чачак

Пројектни задатак из предмета:

Програмирање PLC-a

Тема :

Позиционирање асинхроним мотором и фреквентним


претварачем помоћу PLC-a М238

Студент: Наставник:
Слађан Угреновић 638/2018 Проф. Др Мирослав Бјекић

Асистент:
Милош Божић, дипл.инж.ел.

Чачак, јун 2019


Садржај

1 Увод ................................................................................................................................. 1
1.1 Пројектни задатак .................................................................................................... 1
1.2 Елементи линеарног система за позиционирање.................................................... 2
2 CANopen као комуникација између PLC контролера и фреквентног претварача ........ 4
2.1 CANopen комуникација у софтверском пакету SoMachine.................................... 4
3 Примена блокова кретања у апликацијама .................................................................... 8
4 Апликација за позиционирање креирана у софтверском пакету SoMachine V3.1 ..... 12
4.1 Увод ........................................................................................................................ 12
4.2 Опис коришћених функционалних блокова ......................................................... 13
4.2.1 Задавање рампе ..................................................................................................................13
4.2.2 Подешавање параметара мотора и CANOPEN-А .............................................................15
4.2.3 Енкодер ..............................................................................................................................16
4.2.4 Ограничење смера..............................................................................................................19
4.2.5 Почетна позиција ...............................................................................................................19
4.2.6 Прорачун времена ..............................................................................................................21
4.3 Опис Програма....................................................................................................... 23
4.3.1 Програм Manual .................................................................................................................23
4.3.2 Програм Homming ............................................................................................................26
4.3.3 Програм позиционирања у отвореној петљи ....................................................................28
4.3.4 Програм енкодер ................................................................................................................30
4.3.5 Програм позиционирања у затвореној спрези применом PID регулатора .......................31
4.3.6 Програм позиционирања у затвореној спрези применом хистерезисног компаратора ...34
5 Литература .................................................................................................................... 36
6 Прилог ........................................................................................................................... 37
1 УВОД
1.1 ПРОЈЕКТНИ ЗАДАТАК

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


асинхрони мотор преко пужног редуктора. Погон асинхроног мотора врши се уз помоћ
фреквентног претварача, који добија информације са PLC контролера преко CANopen
комуникације. Повратна информација са ротора мотора добија се са енкодера који се
прикључује на PLC контролер који обезбеђује затворену повратну спрегу.
Циљ овако креираног система је да прикаже основне могућности позиционирања са
асинхроним мотором и то у два случаја:
 Када није позната тренутна позиција ротора асинхроног мотора
 Када је позната тренутна позиција асинхроног мотора
У случају када није позната позиција ротора мотора ,основу за позиционирање
представља време потребно да се та позиција оствари , а оно се добија из прорачуна
коришћењем једначина за кинематику кретања. Како није могуће предвидети све губитке у
систему, овакав начин позиционирања није поуздан, па се користи тамо где прецизност
позиционирања није од пресудне важности.
Код позиционирања са повратном информацијом о позицији ротора мотора, извршене су
две регулације. Прва регулација се ондоси на регулацију позиције уз помоћ PID регулатора, а
друга на регулацију позиције уз помоћ хистерезисног компаратора.
Поред ове две врсте регулације у отвореној и затвореној повратној спрези одрађено је и
нуловање система уз помоћ индуктивног сензора у једном и уз помоћ Z импулса са енкодера
у другом случају. Само нуловање система заправо представља враћање система у почетну
позицију из које ће се примењивати све остале методе регулације.
Могућност позиционирања у било којој тачки омугућава и мануелни режим који
оператеру пружа могућност позиционирања према сопственом осећају.
У уводном делу рада биће представљена уопштена слика система позиционирања и
потребни елементи који ће се примењивати у реализацији саме вежбе.
Пре преласка на позиционирања и њихову реализацију у софтверском пакету SoMachine
који се користи за PLC контролер произвођача Schneider Electric, биће објашњен начин
реализације CANopen комуникације између контролера и фреквентног претварача.
Реализација CANopen комуникације обухвата њихово физичко повезивање и софтверску
конфигурацију два уређаја.

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

1.2 ЕЛЕМЕНТИ ЛИНЕАРНОГ СИСТЕМА ЗА ПОЗИЦИОНИРАЊЕ

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


цеви квадратног попречног пресека. Конструкција је замишљена тако да се може поставити и
у вертикални и у хоризонтални положај. Висина/дужина система је око 2 метра, а изглед
система је приказан на слици 1. У оквиру овог рада могућност позиционирања је испитивана
на вертикалном систему.
Овакав систем покреће асинхрони мотор којим управља фреквентни претварач Altivar31
преко PLC контролера Modicon M238 произвођача Schneider Electric. Напајање контролера
обезбеђује исправљач 230 VAC/ 24VDC.
Асинхрони мотор преко пужног редуктора и две ременице за трапезни каиш преводи
обртно кретање у линеарно и на тај начин покреће колица дуж вођице која су причвршћена
за каишни преносник.
Кретање у горњем и доњем положају ограничено је граничним прекидачима, док се
индуктивни сензор користи за успостављање почетне или нулте позиције.
Информација о тренутном положају ротора мотора добија се са инкременталног
енкодера напонског нивоа 5 VDC.
Да би контролер на свом брзом бројачком улазу могао да очита овај напонски ниво
енкодера, потребно је дати сигнал појачати на 24 VDC, који се остварује уз помоћ DC/DC
претварача – појачавача.
Комуникација између човека и контролера реализована је уз помоћ визуелизације унутар
програма креираног у софтверском пакету SoMachine.
2
1

7
8

10

11

Слика 1: Приказ система за вертикално позиционирање


У следећој табели биће дат опис претходне слике која представља приказ система за
вертикално позиционирање , чиме је опис ове поставке завршен.
3
1. Ременица за трапезни каишник
2. Горњи гранични прекидач
3. Покретна колица
4. Клизна вођица за колица
5. PLC контролер и напајање
6. Индуктивни прекидач
7. Доњи гранични прекидач
8. Фреквентни регулатор
9. Пужни редуктор са ременицом
10. Енкодер за мерење позиције
11. Асинхрони мотор

2 CANOPEN КАО КОМУНИКАЦИЈА ИЗМЕЂУ PLC КОНТРОЛЕРА И


ФРЕКВЕНТНОГ ПРЕТВАРАЧА

Пре него што се изабере жељена врста комуникације у датом систему, битно је
проверити да ли је такав начин комуникације могуће остварити. Разлог томе је што се велике
компаније попут Siemens-а, Schneider Electric, и других, често не опредељују за исте врсте
протокола при изради производа како би купац био приморан да купи производе од исте
компаније.
Ипак, постоје и стандардни протоколи који се морају наћи у сваком уређају без обзира
од ког су произвођача. Пошто су фреквентни претварач Altivar31 и PLCконтролер Modicon
M238 уређаји истог произвођача и како је CANopen комуникација стандардна код датих
уређаја, у овом раду CANopen добија главну улогу.
Повезивање уређаја преко CANopen комуникације могуће је поделити на две целине.
Прва целина обухвата физичко повезивање два уређаја, док друга целина представља
конфигурацију CANopen комуникације у софтверском пакету SoMachine.

2.1 CANOPEN КОМУНИКАЦИЈА У СОФТВЕРСКОМ ПАКЕТУ SOMACHINE

Софтверски пакет SoMachine намењен је за програмирање PLC контролера компаније


Schneider Electric. Овај софтвер омогућава програмирање и конфигурацију уређаја унутар
једног програмског окружења.
У овом раду коришћен је софтверски пакет SoMachine верзије V3.1. Битно је нагласити
да је ова верзија програма намењена за Windows XP и Windows 7 оперативне системе, па је
за коришћење овог софтвера на неком другом оперативном систему потребно инсталирати
виртуелну машину и на њој инсталирати један од два претходно наведена оперативна

4
система. Само применом наведене процедуре могуће је остварити успешну комуникацију
између PLC-а и PC рачунара.
Покретањем софтвера SoMachine V3.1, креирањем новог пројекта кликом на Create new
machine  Start with empty project, конфигурацијом PLC контролера Modicon M238
(TM238LFDC24DT) у менију Configuration и преласком на мени Program приказаће се
прозор као на слици 2.

Слика 2: Приказ почетног програма


CAN служи за додавање уређаја који су повезани преко CANopen комуникације. Да би
било могуће извршити конфигурацију потребно је прво додати CANopen. Десним кликом на
CAN, па затим на Add Device, отвара се прозор као на слици 3.

Слика 3: Прозор за додавање CANopen протокола


5
Потребно је селектовати CANopen Optimized као што је урађено на слици 3 и додати га
кликом на Add Device. Тада ће се у прозору Devices поред CAN-а појавити и CANopen
Optimized, као на слици 4.

Слика 4: Приказ додатог CANopen протокола у прозору Devices


Након успешно додатог протокола могуће је извршити конфигурацију уређаја повезаног
преко CANopen-а. Додавање уређаја врши се на исти начин као и додавање CANopen-а.
Десним кликом на CANopen Optimized, па потом на Add Device, отвара се прозор као на
слици 5.

Слика 5: Позор за додавање уређаја на CANopen протокол


6
У овом прозору потребно је изабрати уређај који је повезан преко CANopen
комуникације. Пошто је у овом раду коришћен фреквентни претварач Altivar31 произвођача
Schneider Electric, одабраћемо уређај као на слици 5 и кликом на Add Device уређај је додат
на CANopen комуникацију. Потребна конфигурација CANopen комуникације је завршена, а
њен коначни изглед приказан је на слици 6.

Слика 6: Приказ додатог уређаја у оквиру CANopen протокола


Да би били сигурни да су сва подешавања CANopen комуникације извршена, потребно је
проверити да ли су брзина протока података и адреса на којој комуницирају два уређаја
правилно подешени.
Двокликом на CAN отвориће се прозор за подешавање брзине протока података
(Baudrate) на CANopen протоколу као на слици 7. Подешавање протока података врши се у
зависности од дужине комуникационе линије.
Како је цео систем постављен на једном месту, дужина комуникационе линије не
прелази 3m, па то даје за право да се брзина протока података постави на највећу вредност
(1000 kbit/s). Исту вредност за проток података потребно је подесити и на фреквентном
претварачу променом параметра bdCO на вредност 1000, у менију COM (вредности
параметар bdCO дати су у kbit/s).

Слика 7: Позор за подешавање протока података на PLC контролеру

Следећи корак представља подешавање комуникационе адресе. Двокликом на Altivar_31


отвориће се прозор као на слици 8. У овом делу треба подесити Node ID задавањем
произвољне адресе од 0 до 127. На исту вредност треба поставити и адресу фреквентног
претварача променом параметра AdCO у менију COM. Потребна подешавања CANopen-а
унутар програма SoMachine су завршена, чиме је омогућена употреба блокова кретања у
програму, што је и био циљ ове представе.

7
Слика 8: Позор за подешавање адресе комуникационе линије на PLC контролеру

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


претварач добијати команде. Прво је потребно подесити ниво приступа LAC на вредност L3
у менију CtL, а затим референцу Fr1 поставити на вредност CAn у истом менију. Овим су
сва подешавања завршена и може се прећи на реализацију програма.

3 ПРИМЕНА БЛОКОВА КРЕТАЊА У АПЛИКАЦИЈАМА

За израду програма у оквиру софтвера SoMachine коришћена је библиотека стандардних


Оpen motion блокова намењених за управљање фреквентним претварачем. Библиотека
постаје активна у тренутку када се на CANopen или неку другу комуникациону линију дода
фреквентни претварач.
Како је у претходном поглављу био приказан начин на који је додат фреквентни
претварач Altivar31 на CANopen комуникацију, у овом поглављу биће приказана
конфигурација и примена стандардних Оpen motion блокова за контролу кретања асинхроног
мотора преко фреквентног претварача.
Да би било могуће унети стандардан функционални блок за контролу кретања, прво је
потребно креирати нови програм. У оквиру програма пружа се могућност додавања
функционалних блокова. Кликом на Insert Box у оквиру Тoolbar-а (или пречице F7) отвара
се Input Assistant као на слици 9.
У оквиру библиотеке SE_ATV налазе се три фолдера: Administrative, Device Function и
Single Axis. Сваки фолдер садржи функционалне блокове различите намене. Блокови за
управљање кретањем налазе су у фолдеру Single Axis, а то су:
 MC_Jog_ATV
 MC_MoveVelocity_ATV
 MC_Power_ATV
 MC_Stop_ATV
8
Слика 9: Input Assistant намењен за одабир функционалних блокова
Наведена четири функционална блока имају значајну улогу у реализацији програма
кретања, па ће из тог разлога бити објашњен сваки блок посебно.
Основни блок за активирање фреквентног претварача јесте MC_Power_ATV који је
приказан на следећој слици.

Слика 10: Блок MC_Power_ATV


Овај блок се активира тако што се на његов Enable улаз доводи логичко стање TRUE.
Ако је блок успешно активиран, његов излаз Status добиће вредност TRUE, у супротном на
излазу Error појавиће се вредност TRUE. Тако је могуће проверити да ли је активирање
фреквентног претварача успешно обављено или није.
Остаје подесити још улаз под именом Axis. Овај улаз захтева да се дефинише назив
уређаја који је додат на CANopen комуникацију. Као што је приказано на слици 6, назив
уређаја додатог на CANopen је Altivar_31, па је због тога на сваки Axis улаз искоришћених
функционалних блокова за кретање постављен назив фреквентног претварача. Назив уређаја
могуће је променити па је потребно водити рачуна да се нови назив поклопи са оним који је
додат на Axis улаз.
MC_Reset_ATV не припада стандардним Оpen motion блоковим већ административним
функционалним блоковима. Разлог због кога блок за рестартовање фреквентног претварача
добија улогу у контроли кретања је тај што приликом настанка грешке у комуникацији са
9
фреквентним претварачем није могуће активирати кретање. Најбржи начин за отклањање
грешке представља рестартовање фреквентног претварача.

Слика 11: Блок MC_Reset_ATV


Рестартовање се врши довођењем логичке вредности TRUE на Execute улаз
MC_Reset_ATV блока. Ако је фреквентни претварач успешно рестартован тада ће излаз
Done добити вредност TRUE, у супротном ће неки од преостала два излаза Busy или Error
добити вредност TRUE. Неуспешно рестартовање може бити последица настанка грешке
унутар регулатора као последица губитка једне фазе напајања, пада фреквенције напајања
испод дозвољене вредности.
MC_Jog_ATV је функционални блок који служи за управљање кретањем асинхроног
мотора у ситуацијама када је кретање потребно обавити малом брзином. Овај блок садржи
четири улаза и четири излаза. Кретање је могуће извршити у два смера. Задавањем логичке
вредности TRUE на улаз Forward извршиће се кретање мотора у једном смеру, док је за
супротан смер окретања мотора потребно довести логичку вредност TRUE на улаз
Backward. Треба водити рачуна да приликом промене смера окретања логичка вредност
претходно задатог смера окретања буде једнака FALSE, у супротном промена смера неће
бити извршена.

Слика 12: Блок MC_Jog_ATV


Такође, пре него што се активира један од два могућа смера окретања мотора, потребно
је подесити брзину обртања мотора на улазу Velocity која се задаје у 0,1Hz. Главни
недостаци овакве контроле јављају се приликом промене смера или брзине окретања мотора.
Свака промена стања логичких улаза Forward и Backward условљава да се кретање
заустави, па ако желимо да мотору брзо променимо смер окретања, ту настаје проблем. Исти
се проблем јавља и код промене брзине окретања мотора.
Да би се извршила промена брзине окретања мотора, потребно је приликом сваке
промене улаза Velocity извршити рестартовање активног смера окретања мотора довођењем
10
логичке вредности FALSE, па затим поново вратити на вредност TRUE. То значи да ће се,
уместо једноставне промене брзине мотора, мотор прво зауставити, па потом наставити
новом брзином.
MC_MoveVelocity_ATV блок садржи један мање улаз од MC_Jog_ATV, ипак се не губи
могућност промене смера окретања. Промена смера окретања мотора омогућена је
задавањем негативне брзине окретања мотора на улаз Velocity.

Слика 13: Блок MC_MoveVelocity_ATV


Такође, за сваку промену улаза Velocity потребно је рестартовати стање улаза Execute
(прво променом на вредност FALSE, па затим на TRUE), али се приликом постављања
вредности FALSE на улаз Execute мотор неће зауставити, већ ће наставити кретање истом
брзином. Тек након поновног активирања улаза Execute постављањем на вредност TRUE,
тренутна вредност брзине промениће се на нову задату вредност. Заустављање се врши
постављањем вредности брзине окретања мотора на 0.
MC_Stop_ATV је функционални блок који служи за заустављање претходно оствареног
кретања. Заустављање ће се извршити одмах након довођења логичке вредности TRUE на
Execute улаз овог функционалног блока. И овај блок као и претходно наведени
функционални блокови садржи три излаза који сигнализирају да ли је заустављање успешно
реализовано или је дошло до грешке. Треба још нагласити да ће се заустављање извршити
типом рампе који је претходно подешен на фреквентном претварачу. Како је тип рампе
могуће подесити (параметар Stt на фреквентном претварачу), заустављање је могуће
извршити на четири начина: заустављање рампом, слободно (Freewheel) заустављање, брзо
заустављање и заустављање једносмерном струјом.

Слика 14: Блок MC_STOP_ATV

11
4 АПЛИКАЦИЈА ЗА ПОЗИЦИОНИРАЊЕ КРЕИРАНА У СОФТВЕРСКОМ
ПАКЕТУ SOMACHINE V3.1
За потребе позиционирања, у овом раду креирана је PLC апликација у софтверском
пакету SoMachine V3.1. Апликација садржи 8 функционалних блокова и 7 програма који су
међусобно повезани. Функционални блокови су распоређени у 6 фолдера, у зависности од
њихове намене. У наредном делу биће приказани програми, одговарајући функционални
блокови који им припадају, као и прозор визуелизације који представља улаз односно излаз
самог програма. Пре почетка описа појединачних програма кретања биће приказана
генерална слика организације целе апликације (слика 15) са уопштеним описом, што ће
омогућити лакше кретање кроз мени.У наредном делу биће приказан прозор визуелизације
који омогућава избор програма и кретање кроз све апликације кретања (слика 16).

4.1 УВОД
На следећој слици је приказанa организација програма на којој се види следеће:
1. Фолдери са функционалним блоковима који се позивају у одговарајућим
програмима.
2. Програми који су организовани преко секвенци и корака у којима се позивају
функционални блокови.
3. Визуелизација програма, која представља везу између корисника и променљивих
које се користе у програмима.

Слика 15: Организација апликације


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

Слика 16: Прозор визуелизације за избор програма

4.2 ОПИС КОРИШЋЕНИХ ФУНКЦИОНАЛНИХ БЛОКОВА

4.2.1 ЗАДАВАЊЕ РАМПЕ


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

Слика 17: Локација функционалног блока задавање рампе


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

13
преко различитих врста протокола (CANopen, Modbus, и други) са параметрима фреквентног
претварача и на тај начин омогућава приступ подацима директно из софтвера.
Основна улога овог функционалног блока је да приликом активирања неког од
претходно наведених програма кретања упише одговарајући тип рампе и време убрзања и
успорења на задату адресу фреквентног претварача. Ово даје могућност да се искористе већ
постојећи профили рампи убрзања и успорења, као и да се време убрзања и успорења задају
директно на фреквентном претварачу. На овакав начин искоришћене су већ постојеће
могућности фреквентног претварача и избегнуте непотребне линије кода за креирање рампи
убрзања и успорења.

Слика 18: Садржај функционалног блока за задавање рампе


Вредности за Index и Subindex зависе од врсте комуникацијског протокола на који је
повезан уређај. У овом раду коришћен је CANopen протокол па је самим тим потребно
познавати CANopen комуникационе адресе фреквентног претварача Altivar31. Тек
познавањем CANopen адреса могуће је приступити параметрима претварача помоћу
основних административних блокова.

14
CANopen адресе се најчешће дају табеларно тако да се поред сваког параметра на
фреквентном претварачу налази вредност за Index, Subindex, меморијски простор који
заузима, могућност читања/писања и кратак опис у коме су дефинисане вредности које је
могуће задати само ако је параметар отворен за писање. Табела CANopen комуникационих
адреса за фреквентни претварач Altivar31 дата је у прилогу.
Када се зада логичка јединица за активацију рампе, као и вредност за тип рампе и
времена убрзања и успорења рампа ће се учитати, на излазу Done појавиће се логичка
вредност TRUE. То ће означити да су захтевани параметри за конфигурацију рампе успешно
учитани. Вредност излаза Done искоришћена је као повратна информација код програма
кретања, док поред ове вредости у програм се враћају вредности грешке или заузетости
учитавања.

4.2.2 ПОДЕШАВАЊЕ ПАРАМЕТАРА МОТОРА И CANOPEN-А


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

Слика 19: Локација функционалног блока подешавање параметара

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


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

15
блока повратне вредности које се враћају у програм јесу логичке вредности заузетости,
грешке, и успешности учитавања.
Програм подешавања фреквентног претварача само позива ова два функционална блока
тако да више о овоме неће бити речи, али на следећој слици биће приказана визуелизација
која представља улаз/излаз за овај програм.

Слика 20: Прозор визуелизације за подешавање мотора и комуникације


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

4.2.3 ЕНКОДЕР
Пре преласка на опис функционалног блока енкодера потребно је да се изврши
конфигурација брзих бројачких улаза у оквиру софтвера SoMachine. Двокликом на HSC у
оквиру специјалних функција (Embedded Functions) , где ће се отворити прозор као на
слици 21.
У овом делу потребно је Input mode подесити вредност Normal Quadrature X4 ,што
значи да ће се приликом пребројавања импулса са инкременталног енкодера узети у обзир
улазне и силазне ивице, тако да се резолуција енкодера повећава четири пута.
Блок за пребројавање импулса је у моду Modulo-loop , који се користи за проблеме који
се понављају и који броји импулсе само у једном смеру или само увећава или само смањује.
16
Слика 21: Прозор за подешавање брзих бројачких улаза

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


енкодера је HSCMain у оквиру менија SEC_HSC. Да би се на излазу CurrentValue
функционалног блок HSCMain добила вредност позиције ротора у инкрементима потребно је
активирати улазе EN_Enable, EN_Sync, F_Enable и F_Sync. Када се активира функционални
блок, тренутна позиција ротора постаће почетна позиција за цео систем, па се препоручује да
се активирање енкодера врши у Home позицији. Такође, приликом сваког рестартовања
енкодера, рестартоваће се и број инкремената на вредност 0. Ово је уједно и основна мана
инкременталног енкодера јер нема могућност памћења последње остваране позиције. Изглед
функционалног блока HSCMain, његових улаза и излаза, приказан је на слици 22.

Слика 22: HSCMAIN блок


У оквиру функционалног блока енкодера постоји рачун брзине у метрима по секунди,
али притом је потребно у програм унети полупречник ременице, преносни однос редуктора
резолуцију енкодера, која се множи са 4Х због таквог одабира бројања импулса. Поред овог
17
рачуна се и позиција у милиметрима, и брзина која се представља у херцима, која се задаје
функционалним блоковима кретања.

Слика 23: Прорачун брзине и позиције


У прорачуну брзине у метрима по секунди узима се у обзир разлика импулса у
садашњем и претходном тренутку, методу бројања импулса са којом се резулуција повећава
4Х, и време скен циклуса од 0.02s зато што се у овом времену врши бројање импулса, док
полупречник ременице служи за прорачун броја импулса по метру.
У прорачуну позиције у милиметрима исто се дешава као код брзине стим што нема
разлике између новог и старог стања имулса и скен циклуса, док се полупречник ременице
уноси у метрима па се множи са 1000. Поред ових прорачуна на основу линијске брзине и
преносног односа редуктора рачуна се брзина у херцима иако се не користи у програму, али
је остављена могућност праћења у одсеку вузуелизације енкодера.
18
4.2.4 ОГРАНИЧЕЊЕ СМЕРА
Функционални блок ограничење смера се користи у свим програмима кретања као
средство сигурности да се не прекорачи граница кретања, а у генералној организацији
програма се налази на локацији која је приказана на следећој слици.

Слика 24: Локација функционалног блока ограничење смера


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

Слика 25: Функционални блок ограничење смера

4.2.5 ПОЧЕТНА ПОЗИЦИЈА


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

Слика 26: Локација функционалног блока почетна позиција


Циљ овог функционалног блока јесте да након задате рампе и почетне брзине са
визуелизације програма, започне задавање смера и брзине код позиционирања у почетну или
нулту позицију.
19
Блок након активације или успешно задате рампе задаје смер колицима на доле
почетном брзином коју смо задали на визуелизацији. Када се достигне индуктивни сензор
брзина се смањује на 3Hz у овом случају мада може бити произвољна вредност. После
активације сензора колица се крећу на доле док се не достигне гранични прекидач, када се
доњи гранични прекидач активира мотор се зауставља. Након заустављања мотора мења му
се смер и колица се крећу на горе поново новом брзином од 5Hz која се може мењати, све
док се не активира индуктивни сензор када се колица заустављају. Када се колица зауставе
врши се аутоматско рестартовање енкодера, што значи да је постигнута нулта или
референтна позиција.
У овај програм осим индуктивног сензора може се искористити и Z импулс са енкодера
стим што ће период са смањеном брзином бити већи, али како не би додали нови код овакав
начин је можда и бољи због тога што је трака релативно кратка тако да се то неће осетити, а
може се и ова фиксна вредност брзине променити у том случају.

Слика 27: Функционални блок почетна позиција

20
4.2.6 ПРОРАЧУН ВРЕМЕНА
Функционални блок прорачун времена користи се код позиционирања у отвореној
повратној спрези тако што рачуна, на основу задате позиције, времена убрзања и успорења и
брзине, време које је потребно да би се остварила унапред задата позиција, а у генералној
организацији програма се налази на локацији која је приказана на следећој слици.

Слика 28: Локација функционалног блока прорачун времена


Како нема ограничења приликом задавања улазних параметара може се догодити да
захтевана позиција позиција буде довољно мала тако да систем са задатим временом рампи
убрзања и успорења није у могућности да достигне максимално дозвољену брзину. Тада ће
уместо трапезног профила бити креиран троугаони профил брзине.
Да би предупредили могућност оваквог исхода, прорачун је подељен у два случаја:
 Захтевана позиција је довољно велика тако да је могуће постићи задату
максималну брзину са претходно дефинисаним временом рампи убрзања и
успорења , и тада је профил брзине трапезног облика;
 Захтевана позиција је мања од позиције која би се достигла када би мотор убрзао
до максималне брзине са задатим временом убрзања , а потом се зауставио за дато
време успорења, тако да се у овом случају креира троугаони профил брзине.
Гранични услов између трапезног и троугаоног профила брзине се дешава онда када је
време константне брзине једнако нули. Тада систем за дато време убрзања на тренутак
достиже задату максималну брзину и потом се зауставља по задатој рампи успорења.
Математичка једначина за гранични услов добијена коришћењем обрасца из кинематике
кретања је:

  tubrzanja  tusporenja 
Pozicija 1
vmax 2

  tubrzanja  tusporenja  тада се ради о првом случају , ако није испуњено


Pozicija 1
Када је
vmax 2

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

21
Циљ овог блока је да нађе време рада мотора, док се подразумева да време успорења
константно и одређено са подешеним параметрима рампе.

Слика 29: Облик рампи које се генеришу на претварачу


На основу претходних графика за случај трапезног задавања брзине, добија се за време
трајања рада мотора следећи израз:

  tubrzanja  tusporenja 
Pozicija 1
t  tubrzanja 
vmax 2
Овај израз је имплеметиран у блоку након провере граничног услова, тј. када је

  tubrzanja  tusporenja  , поред ове провере у коду се врши корекција времена убрзања
Pozicija 1
vmax 2
због чињенице да претварач не може физички да достигне максималну брзину за било које
задато време. Овај услов се проверава, тако што се проверава однос између времена
потребног да се оствари задата брзина и задатог времена у секундама.
Ако је време задатог убрзања веће, онда се у прорачуну времена рада мотора користи
задата вредност убзања, ако је време убрзања мање од времена потребног да се оствари
задата брзина врши се корекција тако што се за вредност потребног убрзања користи у
прорачуну времена рада мотора.
Прорачун времена рада мотора у случају троугаоног задавања брзине врши се на основу
следећег система једначина при чему се једна добија из граничног услова, а друга из
сличности троуглова за нову вредност убрзања , због чињенице да се мотор увек зауставља
са истим временом успорења, а самим тим како би се одржао исти пређени пут.

vmax  tubrzanja _ novo  tusporenja 


1
Pozicija 
2
vmax_ novo
tubrzanja _ novo  tubrzanja
vmax
22
Решавањем претходног система једначина добија се квадратна једначина као решење
система за нову вредност рада мотора:

1 2 Pozicija  tubrzanja 1
t tusporenja  8    tusporenja
2 vmax 2
Функционални блок је написан као структурни текст, који се извршава након активације,
улаз у блок представљају вредности времена рампе и максималне брзине као и позиције у
метрима, а излаз је време рада мотора и логичка вредност успешности обављања прорачуна.
Написани код овог функционалног блока је дат на следећој слици:

Слика 30: Функционални блок прорачун времена

4.3 ОПИС ПРОГРАМА

4.3.1 ПРОГРАМ MANUAL


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

23
Слика 31: Први део програма Manual
Са претходне слике видимо да се активација прва два корака врши када се из
визуелизације изврши активација преко тастера са нормално отвореним контактом, стим да
су кораци из осталих програма деактивирани.
Након активације корака долази до активације блока укључења и ресета фреквентног
претварача, а након извршеног ресета долази до деактивације другог корака, а активације
трећег корака, што је приказано на следећој слици:

Слика 32: Други део програма Manual


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

Слика 33: Трећи део програма Manual


Током кретања, ако се постигне гранични прекидач или се активира тастер сигурности
на визуелизацији долази до активације блока за заустављање мотора. Приликом активације
тастера сигурности на визуелизацији долази до деактивације свих корака у програмаму, а
вредност која се задаје променљивима које доводе до активације појединих корака додељује
се нулта вредност.
Поред тастера сигурности може се извршити деактивација ручног режима преко тастера
на визуелизацији, који извршава деактивацију преосталих корака који су били активни чиме
се програм ручног режима завршава.
25
Слика 34: Четврти део програма
На следећој слици је приказана визуелизација програма у које се уносе вредности
убрзања,успорења и брзине. Тастер сигурности и активације рампе задржавају претходно
стање, па их је по деловању потребно деактивирати, а укљученост је приказана са зеленом
индикацијом тастера. Остали тастери су са нормално отвореним контактима, који се по
деловању тастера деактивирају.

Слика 35: Визуелизација за ручни режим

4.3.2 ПРОГРАМ HOMMING


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

26
Блок POCETNA_POZICIJA као референцу за позиционирање користи енкодер или
индуктивни сензор који се одабирају преко визуелизације и тастера са нормално отвореним
контактима. Ограничење смера се врши преко граничних прекидача уз помоћ блока
OGRANICENJE_SMERA као и у претходном програму.
У програму се задаје само почетна брзина, док остале брзине при позиционирању задаје
блок POCETNA_POZICIJA и могуће је ове брзине мењати у склопу блока.

Слика 36: Део програма за позиционирање у нулти положај


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

Слика 37: Визуелизација програма за позиционирање у почетну позицију


27
4.3.3 ПРОГРАМ ПОЗИЦИОНИРАЊА У ОТВОРЕНОЈ ПЕТЉИ

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

Слика 38: Позивање блока прорачуна времена у програму


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

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

Слика 39: Позивање блока кретања у програму


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

Слика 40: Принцип деактивације корака у програму


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

Слика 41: Визуелизација програма за позиционирање у отвореној спрези

4.3.4 ПРОГРАМ ЕНКОДЕР

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

Слика 42: Програм енкодер


30
На следећој слици је приказана слика визуелизације енкодера на којој су са леве стране
приказане улазне променљиве које се дефинишу на самом почетку пре саме активације
енкодера, док променљиве са десне стране представљају излазне променљиве.

Слика 43: Визуелизација програма енкодера


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

4.3.5 ПРОГРАМ ПОЗИЦИОНИРАЊА У ЗАТВОРЕНОЈ СПРЕЗИ ПРИМЕНОМ PID


РЕГУЛАТОРА

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

Слика 44: Прорачун позиције у инкременте и провера услова


Блок кретања је активан све док се не оствари задато одступање, а брзина му се задаје
преко блока PID регулатора који је приказан на слици 46. Са визуелизације се задаје брзина
која представља минималну и максималну вредност тј. опсег брзина из којег блок PID
регулатора може да зада брзину блоку кретања.

Слика 45: Део програма са блоковима кретања и ограничења


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

Слика 46: Део програма са блоком PID регулатора


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

Слика 47: Прозор визуелизације за програм регулације позиције са PID регулатором


33
4.3.6 ПРОГРАМ ПОЗИЦИОНИРАЊА У ЗАТВОРЕНОЈ СПРЕЗИ ПРИМЕНОМ
ХИСТЕРЕЗИСНОГ КОМПАРАТОРА

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


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

Слика 48: Хистерезисни компаратор


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

Слика 49: Део програма за кретање и заустављање мотора


34
У програмима позиционирања у затвореној спрези преко PID или хистерезисног
компаратора у случају да делују гранични прекидачи долази до деактивирања целог
програма и свих корака, што није случај у осталим програмима.
У свим програмима тастер искључења има функцију само у случајевима успешно
завршеног позиционирања, али у случајевима да реагују гранични прекидачи или сигурносни
тастер врши се деактивација свих корака и програма што је приказано следећом сликом.

Слика 50: Део програма за деактивацију


На следећој слици је приказана визуелизација која се односи на овај програм:

Слика 51: Прозор визуелизације за програм регулације позиције са хистерезисним


регулатором
35
5 ЛИТЕРАТУРА

[1] Schneider Electric, ATV31 communication user manual.


[2] Schneider Electric, Modicon M238 Logic Controler, Hardware Guide, 03/2010.
[3] Schneider Electric, Modicon M238 Logic Controler, Software Guide, 10/2010.
[4] Schneider Electric, Modicon M238 Logic Controler, SoMacine.
[5] https://www.plcopen.org/technical-activities/motion-control
[6] Лазар Марковић, Могућност позиционирања употребом стандардног индустријског
фреквентног регулатора без повратне спреге, Чачак, Децембар, 2011
[7] Александар Ђорђевић, Употреба фреквентног регулатора у електромоторним
погонима, Чачак, Јул, 2009.

36
6 ПРИЛОГ

37
38
39
40
41
42
43

You might also like