Professional Documents
Culture Documents
Програмирање PLC-a
Тема :
Студент: Наставник:
Слађан Угреновић 638/2018 Проф. Др Мирослав Бјекић
Асистент:
Милош Божић, дипл.инж.ел.
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 ПРОЈЕКТНИ ЗАДАТАК
1
Успешно успостављена комуникација два уређаја даје могућност коришћења већ
постојећих блокова кретања за управљање кретањем фреквентног претварача. Да би било
могуће разумети програме у којима се примењује ова врста блокова на почетку биће
објашњен начин њиховог функционисања.
Поред ове врсте блокова биће објашњени и блокови за промену параметара фреквентног
претварача преко CANopen комуникације директним уписивањем и ишчитавањем из
регистра претварача.
Програми ће бити реализовани уз помоћ секвенци и корака тако да овако организован
програм омогућава лако и једноставно упознавање са CANopen протоколом и блоковима
кретања, који данас представљају основу за програмирање PLC контролера у индустрији.
На крају ће бити приказана визуелизација целог програма преко које се задају потребни
подаци који служе за манипулацију оператеру, који управља поставком.
7
8
10
11
Пре него што се изабере жељена врста комуникације у датом систему, битно је
проверити да ли је такав начин комуникације могуће остварити. Разлог томе је што се велике
компаније попут Siemens-а, Schneider Electric, и других, често не опредељују за исте врсте
протокола при изради производа како би купац био приморан да купи производе од исте
компаније.
Ипак, постоје и стандардни протоколи који се морају наћи у сваком уређају без обзира
од ког су произвођача. Пошто су фреквентни претварач Altivar31 и PLCконтролер Modicon
M238 уређаји истог произвођача и како је CANopen комуникација стандардна код датих
уређаја, у овом раду CANopen добија главну улогу.
Повезивање уређаја преко CANopen комуникације могуће је поделити на две целине.
Прва целина обухвата физичко повезивање два уређаја, док друга целина представља
конфигурацију CANopen комуникације у софтверском пакету SoMachine.
4
система. Само применом наведене процедуре могуће је остварити успешну комуникацију
између PLC-а и PC рачунара.
Покретањем софтвера SoMachine V3.1, креирањем новог пројекта кликом на Create new
machine Start with empty project, конфигурацијом PLC контролера Modicon M238
(TM238LFDC24DT) у менију Configuration и преласком на мени Program приказаће се
прозор као на слици 2.
7
Слика 8: Позор за подешавање адресе комуникационе линије на PLC контролеру
11
4 АПЛИКАЦИЈА ЗА ПОЗИЦИОНИРАЊЕ КРЕИРАНА У СОФТВЕРСКОМ
ПАКЕТУ SOMACHINE V3.1
За потребе позиционирања, у овом раду креирана је PLC апликација у софтверском
пакету SoMachine V3.1. Апликација садржи 8 функционалних блокова и 7 програма који су
међусобно повезани. Функционални блокови су распоређени у 6 фолдера, у зависности од
њихове намене. У наредном делу биће приказани програми, одговарајући функционални
блокови који им припадају, као и прозор визуелизације који представља улаз односно излаз
самог програма. Пре почетка описа појединачних програма кретања биће приказана
генерална слика организације целе апликације (слика 15) са уопштеним описом, што ће
омогућити лакше кретање кроз мени.У наредном делу биће приказан прозор визуелизације
који омогућава избор програма и кретање кроз све апликације кретања (слика 16).
4.1 УВОД
На следећој слици је приказанa организација програма на којој се види следеће:
1. Фолдери са функционалним блоковима који се позивају у одговарајућим
програмима.
2. Програми који су организовани преко секвенци и корака у којима се позивају
функционални блокови.
3. Визуелизација програма, која представља везу између корисника и променљивих
које се користе у програмима.
13
преко различитих врста протокола (CANopen, Modbus, и други) са параметрима фреквентног
претварача и на тај начин омогућава приступ подацима директно из софтвера.
Основна улога овог функционалног блока је да приликом активирања неког од
претходно наведених програма кретања упише одговарајући тип рампе и време убрзања и
успорења на задату адресу фреквентног претварача. Ово даје могућност да се искористе већ
постојећи профили рампи убрзања и успорења, као и да се време убрзања и успорења задају
директно на фреквентном претварачу. На овакав начин искоришћене су већ постојеће
могућности фреквентног претварача и избегнуте непотребне линије кода за креирање рампи
убрзања и успорења.
14
CANopen адресе се најчешће дају табеларно тако да се поред сваког параметра на
фреквентном претварачу налази вредност за Index, Subindex, меморијски простор који
заузима, могућност читања/писања и кратак опис у коме су дефинисане вредности које је
могуће задати само ако је параметар отворен за писање. Табела CANopen комуникационих
адреса за фреквентни претварач Altivar31 дата је у прилогу.
Када се зада логичка јединица за активацију рампе, као и вредност за тип рампе и
времена убрзања и успорења рампа ће се учитати, на излазу Done појавиће се логичка
вредност TRUE. То ће означити да су захтевани параметри за конфигурацију рампе успешно
учитани. Вредност излаза Done искоришћена је као повратна информација код програма
кретања, док поред ове вредости у програм се враћају вредности грешке или заузетости
учитавања.
15
блока повратне вредности које се враћају у програм јесу логичке вредности заузетости,
грешке, и успешности учитавања.
Програм подешавања фреквентног претварача само позива ова два функционална блока
тако да више о овоме неће бити речи, али на следећој слици биће приказана визуелизација
која представља улаз/излаз за овај програм.
4.2.3 ЕНКОДЕР
Пре преласка на опис функционалног блока енкодера потребно је да се изврши
конфигурација брзих бројачких улаза у оквиру софтвера SoMachine. Двокликом на HSC у
оквиру специјалних функција (Embedded Functions) , где ће се отворити прозор као на
слици 21.
У овом делу потребно је Input mode подесити вредност Normal Quadrature X4 ,што
значи да ће се приликом пребројавања импулса са инкременталног енкодера узети у обзир
улазне и силазне ивице, тако да се резолуција енкодера повећава четири пута.
Блок за пребројавање импулса је у моду Modulo-loop , који се користи за проблеме који
се понављају и који броји импулсе само у једном смеру или само увећава или само смањује.
16
Слика 21: Прозор за подешавање брзих бројачких улаза
20
4.2.6 ПРОРАЧУН ВРЕМЕНА
Функционални блок прорачун времена користи се код позиционирања у отвореној
повратној спрези тако што рачуна, на основу задате позиције, времена убрзања и успорења и
брзине, време које је потребно да би се остварила унапред задата позиција, а у генералној
организацији програма се налази на локацији која је приказана на следећој слици.
tubrzanja tusporenja
Pozicija 1
vmax 2
онда се ради о другом случају. Пре преласка на прорачун рада мотора треба рећи да је
фреквентни претварач подешен тако да се покретање мотора врши преко задате рампе
убрзања и успорења.
На следећој слици је приказан облик рампе у претходна два случаја, где време укључења
мотора представља тачка tu, а време искључења мотора тачка ti.
21
Циљ овог блока је да нађе време рада мотора, док се подразумева да време успорења
константно и одређено са подешеним параметрима рампе.
tubrzanja tusporenja
Pozicija 1
t tubrzanja
vmax 2
Овај израз је имплеметиран у блоку након провере граничног услова, тј. када је
tubrzanja tusporenja , поред ове провере у коду се врши корекција времена убрзања
Pozicija 1
vmax 2
због чињенице да претварач не може физички да достигне максималну брзину за било које
задато време. Овај услов се проверава, тако што се проверава однос између времена
потребног да се оствари задата брзина и задатог времена у секундама.
Ако је време задатог убрзања веће, онда се у прорачуну времена рада мотора користи
задата вредност убзања, ако је време убрзања мање од времена потребног да се оствари
задата брзина врши се корекција тако што се за вредност потребног убрзања користи у
прорачуну времена рада мотора.
Прорачун времена рада мотора у случају троугаоног задавања брзине врши се на основу
следећег система једначина при чему се једна добија из граничног услова, а друга из
сличности троуглова за нову вредност убрзања , због чињенице да се мотор увек зауставља
са истим временом успорења, а самим тим како би се одржао исти пређени пут.
1 2 Pozicija tubrzanja 1
t tusporenja 8 tusporenja
2 vmax 2
Функционални блок је написан као структурни текст, који се извршава након активације,
улаз у блок представљају вредности времена рампе и максималне брзине као и позиције у
метрима, а излаз је време рада мотора и логичка вредност успешности обављања прорачуна.
Написани код овог функционалног блока је дат на следећој слици:
23
Слика 31: Први део програма Manual
Са претходне слике видимо да се активација прва два корака врши када се из
визуелизације изврши активација преко тастера са нормално отвореним контактом, стим да
су кораци из осталих програма деактивирани.
Након активације корака долази до активације блока укључења и ресета фреквентног
претварача, а након извршеног ресета долази до деактивације другог корака, а активације
трећег корака, што је приказано на следећој слици:
26
Блок POCETNA_POZICIJA као референцу за позиционирање користи енкодер или
индуктивни сензор који се одабирају преко визуелизације и тастера са нормално отвореним
контактима. Ограничење смера се врши преко граничних прекидача уз помоћ блока
OGRANICENJE_SMERA као и у претходном програму.
У програму се задаје само почетна брзина, док остале брзине при позиционирању задаје
блок POCETNA_POZICIJA и могуће је ове брзине мењати у склопу блока.
Као што је већ наглашено у уводном делу, позиционирање у отвореној петљи не користи
информацију о положају ротора мотора. Код оваквог система за позиционирање веома важно
је прецизно израчунати време потребно да се задата позиција оствари. Такође, треба водити
рачуна и о могућим поремећајима у систему који додатно могу утицати на целокупни
прорачун. Зато се овакав начин позиционирања примењује у системима у којима није
потребна велика прецизност.
Сваки програм садржи основни део одабира, укључења и ресета фреквентног претварача
тако да се тај део кода неће приказивати, а што се овог програма тиче програм ће бити
представљен од секвенце прорачуна прорачуна времена рада мотора што је приказано
следећом сликом.
28
који се притом ограничава граничним прекидачима који су имплементирани у блоку за
ограничавање смера, а уграђена је и сигурност од истовремене активације смерова.
Након активације неког смера на блок за кретање ће бити доведен импулс једнак трајању
времена рада мотора, а након импулса променљива iskljuci на силазној ивици активираће
блок који броји време једнако времену успорења који када се постигне омогућава да се
програм деактивира са визуелизације деловањем на тастер.
Заустављање мотора се врши у случајевима када се реагује на тастер сигурности или
гранични прекидач, што је приказано на следећој слици.
Овај програм у себи позива функционални блок енкодера у који се путем глобалних
променљивих уноси резолуција енкодера, полупречник ременице и преносни однос
редуктора, а као излаз даје број инкремената, брзину, позицију.
Енкодер се активира са визуелизације преко тастера који задржава претходно логичко
стање са индикацијом укључености. Ресет енкодера се врши преко глобалних променљивих
које се користе у одговарајућим програмима, тј. чим се нека променљива у програмима
активира то доводи до ресета енкодера са одговарајућом задршком од једне секунде.
У овом програму цео поступак за задавање рампе претварачу је исто као у претходним
програмима, тако да се тај део неће обрађивати. Опис програма започиње код рачунског дела
у коме је потребно задату позицију у милиметрима претворити у број инкремената на основу
резолуције енкодера и обима ременице, што је приказано на слици 44.
Након што је задата рампа и извршено рестартовање енкодера број импулса енкодера је
враћен на нулту вредност. Након прерачуна позиције у импулсима врши се одузимање
тренутне вредности са енкодера од задате вредности у импулсима, а овако добијена вредност
разлике се пореди са задатом вредношћу разлике која се назива IO_Offset.
Када буде испуњен услов да је остварена вредност разлике мања од задате вредности
разлике инкрементима доћи ће до заустављања мотора. Променљива која представља
логичку вредност испуњености захтева да је остварена вредност разлике мања од задате
служи као активација блока AKTIVACIJA_VELOCITY који је активан све док услов није
31
испуњен, како би блок кретања био освежаван у сваком циклусу, зато што се брзина не може
мењати ако се улаз не освежава приликом сваке промене. Освежавање подразумева да блок
AKTIVACIJA_VELOCITY у сваком циклусу наизменично мења своје логичко стање.
36
6 ПРИЛОГ
37
38
39
40
41
42
43