51
Електротехнички факултет универзитета у Београду Катедра за Енергетске Претвараче и Погоне Дипломски рад: Реализација комуникације између корисника и контролера за управљање Електрофилтром коришћењем екрана осетљивог на додир и MODBUS комуникациског протокола Ментор: Студент: проф. др. Слободан Иванић Душан 02/71

emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

Embed Size (px)

Citation preview

Page 1: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

Електротехнички факултет универзитета у Београду

Катедра за Енергетске Претвараче и Погоне

Дипломски рад:

Реализација комуникације између корисника и контролера за управљање Електрофилтром

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

Ментор: Студент:проф. др. Слободан Вукосавић Иванић Душан 02/71

Београд, септембар 2010.

Page 2: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

Садржај:

1. Увод1.1. Задатак1.2. Структура рада

2. Електрофилтар2.1. Принцип рада2.2. Шема погона електрофилтра

3. Блок шема управљачког система

4. Индустријски MODBUS протокол4.1. Постојеће верзије MODBUS протокола и њихове карактеристике4.2. MODBUS RTU протокол

5. Имплементација софтвера за MODBUS комуникацију унутар окружења са одговарајућим процесором 5.1. Адаптација FreeMODBUS софтевера ѕа рад на DSP-у TMS320LF24075.2. Начин компајлирања и имплементације кода у DSP

6. Екран осетљив на додир (Touch Screen)6.1. Спецификација коришћеног модела ТЅ-а6.2. Увод у реализације апликативног софтвера6.3. Реализација менија

7. Закључак

8. Литература

2

Page 3: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

1. Увод

1.1. Задатак

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

Постојећи интерфејс је релизован коришћењем LCD дисплеја са 16x2 карактера и тастатуре са 8 тастера дизајнираних за потребе кретања кроз управљачки мени и промене вредности параметара у погону.

Нови терминални уређај за управљање напајањем електрофилтра је монохроматски LCD дисплеја остетљив на додир тзв. Touch Screen, за који ће у даљем тексту бити коришћена скраћеница TS. Уз резолуцију од 320x240 пиксела, TS у потпуности задовољава потребу за остварењем боље прегледности и лакше управљивости системом.

Такође, за комуникацију са централном управљачком јединицом електрофилтра, која се сатоји из две паралелно везане картице на којима су дигитални сигнални процесори TMS320LF2407 фирме Texas Instruments, LCD дисплеј и тастатура користе директно пинове DSP –а, док TS ову комуникацију остварује коришћењем медјународно признатог индустриског MODBUS протокола и RS232 или RS485 серијске везе.

1.2. Структура рада

У оквиру овог рада биће обрађене теме које се тичу електрофилтра, DSP –а,TS –а и MODBUS протокола, прво неке уопштене ствари, а затим делови који се тичу реализације самог задатка, остваривања комуникације по MODBUS протоколу и креирања апликативног софтвера за TS.

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

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

У одељку 3 укратко је описан сама архитектура DSP-а, као и могуцности управљања и комуникације са DSP-ем.

У одељку 4 је детаљно описан TS који је коришћен за управљање DSP–ем. Описане су његове перформасе, компатибилност као и графичко огружење за израду његовог апликативног софтвера.

У одељку 5 укратко ће бити описане најчешће коришћене верзије MODBUS протокола са посебним акцентом на верзију MODBUS RTU која је коришћена у овом пројекту.

6. одељак описује начин на који је реализован софтевер за DSP који омогућава комуникацију са другим уређајима по MODBUS протоколу.

Одељак 7 описује израду корисничког интерфејса за управљање електрофилтрима преко TS-а.

У одељку 8 је у кратким цртама објашњено шта је се постигло оваквим начином управљања у односу на систем који је постојао пре тога.

Одељак 9 садржи списак литературе која је коришћена приликом израде овог пројекта.

3

Page 4: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

2. Електрофилтар

Услед великих загађења ваздуха која проузрокују термоелектране и друга индустријска постројења која сагоревају угаљ (стакларе, цементаре...), постоји потреба за филтрацијом ваздуха односно дима који се јавља као нуспродукт сагоревања.

Једни од најефикаснијих начина за одстрањивање пепела из ваздуха су електростатички преципитатори (издвајачи), популарније названи електрофилтери. На овај начин могуће је из ваздуха издвојити преко 99,9% летећег пепела, а да при том не дође до промене притиска у комори уређаја.

2.1. Принцип рада

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

слика 2.1.1*

Талож наелектрода

ЕлектрониПепео

Емисионаелектрода

Левак заскупљ ањ е пепела

Одвод ка систем уза одлагањ е пепела

Чекић заотресањ е

Чекић заотресањ е

Честице праш ине

слика 2.1.2**

Са слике 2.1.1 и 2.1.2 се може видети да су таложне електроде огромне равне плоче између којих се налазе емисионе електроде које могу бити конструјисане на више начина, али један од најчешће коришћених је низ шипки са шиљцима.

Довођењем високог једносмерног напона на електроде, на шиљцима емисионе електроде долази до појаве короне, околни ваздух се јонизује и позитивни јони одлазе на негативну, у овом случају емисиону електроду, а негативни на таложну електроду. На путу до таложне електроде, негативни јони преносе наелектрисање на честице летећег пепела тако да и оне завршавају на таложној електроди. Ово је дифузно наелектрисавање честица и оно је доминантно код честица мањег пречника (испод 0,1µm). Честице већег пречника се наелектришу посредством електричног поља, то су честице пречника већег од 1µm.

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

* слика преузета са сајта www.gkm.de** слика преузета са сајта www.gkm.de

4

Page 5: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

2.2. Шема погона електрофилтра

слика 2.2.1*

На слици 2.2.1 је приказана проста електрична шема електрофилтра. Са шеме се може видети да у колу примара монофазног високонапонског трансформатора који је прикључен на наизменични извор напајања (400[V]~, 50Hz) постоји антипаралелна веза тиристора за регулацију напона, као и пригушница за ограничење струје примара приликом барничења електрода издвајача. Високонапонска страна трансформатора се води на диодни исправљач, чији се позитиван крај уземљује у циљу добијања високог негативног напона, а самим тим и негативне короне на емисионој електроди електростатичког издвајача.

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

Мерене величине струја и напона, неких темепература представљају улазне променљиве. Постоје такође и дискретни улази у систем који представљају статусе одређених делова погона, а такође служе за регистровање кварова. Као улазне променљиве се користе референтне вредности струја, напона, темепература, минималне и максималне вредности угла паљења тиристора, времена отресања електрода итд.

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

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

* слика преузета са сајта http://esp.etf.rs/

5

Page 6: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

3. Блок шема управљачког система

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

Слика 3.1

Главни управљачки део овог система је CPU јединица у којој се налазе два DSP-а фирме Texas Instruments са ознаком TMS320LF2407 везани у паралелу, ради повећања стабилности ситема. Њихов задатак је да обезбеде управљачке импулсе енергетском претварачу који даље напаја преко трансформатора електроде електрофилтра. Као што се види са слике, управљачки импулси су ширински модулисани (Импулсно Ширинска модулација - Pulse-Width Modulation, скраћено PWM).

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

Други кориснички интерфејс који се користи за управљање електрофилтром је тзв. локално управљање и врши се помоћу горе приказаног терминалног уређаја који се састоји од LCD дисплеја са 16x2 карактера и тастатуре са 8 тастера специјалне намене. За разлику од даљинског система управљања, локално упрабљање дозвољава промену битних параметара за рад погона, као и стандардно укључивање и искључивање електрофилтра и надгледање мерених вредности и могућих кварова.

Део који је на слици 1 уоквирен испрекиданом црвеном линијом, представља тему овог рада и то је као што се види веза између DSP-а и TS остварена по MODBUS RTU протоколу преко сериске везе RS232 или 485. Оба уређаја подрзавају RS485 везу, али је ради лакшег надгледања комуникације у фази испитивања ипсравности слања и пријема порука коришћена RS232 веза, тако да су уређаји и даље остали њом повезани.

6

Page 7: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

4. Индустријски MODBUS протокол

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

4.1. Постојеће верзије MODBUS протокола и њихове карактеристике

MODBUS протокол je начин слања порука развијен од стране фирме Modicon 1979. године. Захваљујући својој доброј осмишљености, лакој имплементацији и поузданости, прихваћен је од стране многих произвођача електронске опреме и стога постао први међународно признати индустријски протокол.

То је протокол заснован на client-server комуникацији између било којих уређаја која су повезана на исту мрежу. Сврстава се у 7. групу (слој) OSI модела (Open Systems Interconection модел развијен 1984. од стране International Organization for Standardization - ISO).

MO

DB

US

R

S23

2пр

еко

MO

DB

US

M

B+

прек

о

MO

DB

US

R

S48

5пр

еко

M O DBUS TCP/IPпреко

Слика 4.1.1*

На слици је приказана блок шема примера архитрктуре MODBUS мреже. Као што се може видети, постоји неколико подржаних преносних путева и неколико врста протокола који се међусобно могу повезати преко одговарајућих gateway-а и формирати комплексну мрежу која задовољава потребе корисника.

Од постојећих верзија протокола, најчешће коришћена је MODBUS RTU, користи се преко серијске везе и представља компактну бинарну репрезентацију података који се преносе овим протоколом. Скраћеница RTU представља Remote Terminal Unit тј. удаљена терминална јединица. Формат поруке је облика команда-податак са пратећом цикличком провером редудансе (CRC - cyclic redundancy check),

* слика преузета из документа MODBUS Application Protocol Specification V1.1 са странице http://www.modbus.org/

7

Page 8: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

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

MODBUS ASCII протокол такође ради преко серијске везе и као основну јединицу преноса уместо 8 бита (1 бајта) користи 1 ASCII карактер који може бити или цифра 0-9 или слово А-F. На овај начин омогућено је директно „читање“ поруке, тј. сваки бајт поруке се тумачи као један ASCII карактер. То доводи до смањења протока података, јер нам је за један бајт податка који интерпретирамо као хексадецимални број са две цифре потребно два бајта поруке, сваки бајт за по једну цифру. Преност коју MODBUS ASCII протокол омогућава је да време застоја слања између два бајта исте поруке може бити и до једне секунде. За проверу исправности поруке користи се лонгитудинална провера редудансе (LRC - longitudinal redundancy check), која се као и у претходном случају шаље на крају поруке.

За комуникацију преко интернета и етернета користи се MODBUS TCP/IP који је наменски направљен да би се омогућило надгледање и управљање постројењима са великих удаљености посредством интернета. Као TCP/IP интернет протокол порджава комуникацију на бази упита и одговора, није било тешко да се у такав модел уклопи и захтев за master-slave комуникацијом. Као што се може видети са слике 2, ово је протокол највишег хијајрархиског нивоа, и сви остали протоколи се повезују на овај преко gateway-a у заједницку мрежу. Такође битно је напоменути да се у оквиру овог рама за поруку не врши провера грешке, веђ се користи поровера која постоји у самом TCP/IP интернет протоколу и у његовом раму за поруку.

Оригинални MODBUS протокол користио је за пренос серијску везу RS232, док данашња модернија решења користе RS485 везу, због веће брзине преноса, остваривања везе на већим удаљеностима као и могућности формирања стварне multi-drop мреже. Такође развојем интернета и етрнета MODBUS TCP/IP све више добија на значају и преузима примат у односу на остале MODBUS протоколе.

4.2. MODBUS RTU протокол

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

У протоколу сваких 8 бита поруке садржи две четворобитне хексадецималне цифре. Главна предност овог начина преноса је што се за исту брзину (baud rate) може пренети већа количина информација. Мана је што та порука мора бити послата као непрекидан низ. За пренос 8 бита корисне информације потребно је још и један почетни Ѕtart bit, два крајња – један за проверу парности (Parity bit) и један или два Ѕtop bit–а, зависно од тога да ли постоји бит за проверу парности.

Рам у који се пакује једна порука (било да је упит или одговор) има следећи облик:

слика 4.1.2

8

Page 9: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

На почетку и на крају сваке поруке, постоји тзв. неми интервал у трајању од 3,5 карактера времена. Он наговештава да је наредни бајт који стигне први бајт поруке односно адреса уређаја.

Први бајт поруке која следи је адреса SLAVE-а, што омогућава да само уређај који је директно прозван од MASTER-а настави да прима остатак поруке. Са друге стране, ако је порука одговор на MASTER-ов упит, онда на основу овог бајта MASTER зна од ког SLAVE-а одговор пристиже.

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

На крају сваке поруке постји поље од 2х8 бита које служи за проверу исправности послате поруке, већ је поменуто да MODBUS RTU врши цикличку проверу редудансе тј. CRC (Cyclical Redundancy Check). Ту се врши специјалан прорачун свих карактера садржаних у поруци на основу чега се добија једиствена шеснестобитна вреност која се шаље уз поруку како би се на страни пријема проверила валидност поруке.

У MODBUS протоколу постоји неколико типова података који се разликују по величини и начину употребе. Користе се бити и бајтови, неки од њих служе само за читање вредности (read-only) док други служе и за читање и за упис података (read-write).

Назив Величина Опис

Coil 1 bit Податак која има два могућа стања (0 и 1),може се читати и уписивати

Discrete input 1 bit Дискретни улаз у систем, могуће му је само очитати вредност

Input register 16 bit-a Аналогни улаз у систем, за њега такође важи да му је могиће само очитати вредност

Holding register 16 bit-a Регистар који се користи и за читање и за упис величина у систем

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

Назив Код [hex] Oпис

Read coil 01Чита стање дискретних излаза система,као параметри се задају адреса првог coil-а и број колико њих треба прочитати

Read discrete input 02 Исто као за предходну функцију само што се очитавају вредности дискретних улаза

Read holding register 03 Функција за читање одређеног броја регистара, почевши од задате локације

Read input register 04 Ова функција очитава вредности аналогних улаза у систем

Force Single Coil 05 Постављање одређеног coil-а на задату вредност

Preset Single Register 06 Задавање вредности једном региструForce Multiple Coils 15 Промена вредности већем броју coil-оваPreset Multiple Registers 16 Упис у више регистара

9

Page 10: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

Комуникаци се одвија тако што MASTER (у нашем случају ТS) шаље упитну поруку SLAVE-у (DSP-у) у којој је тачно дефинисано са које адресе колико регистара или coil-ова треба да прочита или да упише одговарајуће вредности. Ако је била команда за упис, онда је одговор на упит MASTER-а иста та порука, тј. SLAVE има ехо одзив. У случају да се тражи ишчитавање података, у пољу DATA одговора прво стоји податак колико бајтова поруке следи, а затим и саме вредности тих променљивих.

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

Код функције [hex] Назив функције01 Читање coil-ова

У овом примеру MASTER захтева од SLAVE-а под бројем 17 да му прочита coil-ове од 20 до 54

УпитНазив поља [Bin] [Hex] Опис

Адреса SLAVE-а 0001 0001 11 SLAVE под редним бројем 17Функција 0000 0001 01 Читај coil-овеПочетна адреса High 0000 0000 00 Са адресе 19Почетна адреса Low 0001 0011 13Број елемената High 0000 0000 00 И то укупно 35 coil-оваБрој елемената Low 0010 0101 23CRC поље (16 бита)

ОдговорНазив поља [Bin] [Hex] Опис

Адреса SLAVE-а 0001 0001 11 SLAVE под редним бројем 17Функција 0000 0001 01 Читај coil-овеБрој бајтова 0000 0101 05 Број бајтова поруке која следиПодаци 1010 1100 АC Вредности Coil-ова 27-20Подаци 1001 1111 9F Вредности Coil-ова 35-28Подаци 0010 0101 25 Вредности Coil-ова 43-36Подаци 0011 0101 35 Вредности Coil-ова 51-44Подаци 0000 0111 07 Вредности Coil-ова 54-52

Треба приметити да се први члан адресира за 00h односно 20-ти са 19h. Такође треба приметити да се празна места у бајту попуњавају нулом.

10

Page 11: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

Код функције [hex] Назив функције03 Читање Holding регистара

У овом примеру MASTER захтева од SLAVE-а под бројем 17 да му прочита Holding регистре од 40108 до 40110, дакле укупно 3 регистра почевши од адресе 107

УпитНазив поља [Bin] [Hex] Опис

Адреса SLAVE-а 0001 0001 11 SLAVE под редним бројем 17Функција 0000 0011 03 Читај Holding регистреПочетна адреса High 0000 0000 00 Са адресе 107Почетна адреса Low 0110 1011 6ВБрој елемената High 0000 0000 00 И то укупно 3 регистраБрој елемената Low 0000 0011 03CRC поље (16 бита)

ОдговорНазив поља [Bin] [Hex] Опис

Адреса SLAVE-а 0001 0001 11 SLAVE под редним бројем 17Функција 0000 0011 03 Читај Holding регистреБрој бајтова 0000 0110 06 Број бајтова поруке која следиПодаци 1010 1100 АC Вредности регистра 40108 HighПодаци 1001 1111 9F Вредности регистра 40108 LowПодаци 0010 0101 25 Вредности регистра 40109 HighПодаци 0011 0101 35 Вредности регистра 40109 LowПодаци 0000 0111 07 Вредности регистра 40110 HighПодаци 0011 0010 32 Вредности регистра 40110 Low

Из ова два примера се може запазити да се регистри и coil-ови са нижом адресом, али да је редослед coil-ова у бајту поруке од више адресе ка нижој.

Код функције [hex] Назив функције05 Промена вредности једног Coil-а

У овом примеру MASTER захтева од SLAVE-а под бројем 17 да стање coil-а на адреси 173 промени у ON. Команда за ON стање je FF00h, док је за OFF 0000h.

УпитНазив поља [Bin] [Hex] Опис

Адреса SLAVE-а 0001 0001 11 SLAVE под редним бројем 17Функција 0000 0101 05 Промена вредности Coil-аАдреса Coil-а High 0000 0000 00 Адреса coil-а 172Адреса Coil-а Low 1010 1100 АСЗадато стање High 1111 1111 FF Промени вредност на ONЗадато стање Low 0000 0000 00CRC поље (16 бита)

11

Page 12: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

ОдговорНазив поља [Bin] [Hex] Опис

Адреса SLAVE-а 0001 0001 11 SLAVE под редним бројем 17Функција 0000 0101 05 Промена вредности Coil-аАдреса Coil-а High 0000 0000 00 Адреса coil-а 172Адреса Coil-а Low 1010 1100 АСЗадато стање High 1111 1111 FF Промени вредност на ONЗадато стање Low 0000 0000 00CRC поље (16 бита)

Ка што се може видети, одговор је ехо упитне поруке. Исти случај ће бити и у наредном примеру уписа у Holding регистар.

Код функције [hex] Назив функције06 Упис вредности у један Holding регистар

У овом примеру MASTER захтева од SLAVE-а под бројем 17 да вредност регистра 400002 промени на 0003h.

УпитНазив поља [Bin] [Hex] Опис

Адреса SLAVE-а 0001 0001 11 SLAVE под редним бројем 17Функција 0000 0110 06 Упис у Holding регистарАдреса регистра High 0000 0000 00 Адреса регистра је 1Адреса регистра Low 0000 0001 01Задата вредност High 0000 0000 00 Нова вредност је 3Задата вредност Low 0000 0011 03CRC поље (16 бита)

УпитНазив поља [Bin] [Hex] Опис

Адреса SLAVE-а 0001 0001 11 SLAVE под редним бројем 17Функција 0000 0110 06 Упис у Holding регистарАдреса регистра High 0000 0000 00 Адреса регистра је 1Адреса регистра Low 0000 0001 01Задата вредност High 0000 0000 00 Нова вредност је 3Задата вредност Low 0000 0011 03CRC поље (16 бита)

Све детаљније информације о MODBUS протоколу су доступне на сајту фирме MODICON где се може наћи DATASHEET за протокол.

12

Page 13: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

5. Имплементација софтвера за MODBUS комуникацију унутар окружења са одговарајућим процесором

Код који је имплементиран у дигитални сигнални процесор је костур кода писаног у C-у за остваривање комуникације по MODBUS протоколу, намењен за широк спектар микропроцесора, оперативних система и других платформи. Овај код и сва потребна објашњења везана за њега, могу се скинути са сајта: http://freemodbus. org . Сваки процесор има своје специјалне карактеристике (такт, интерапт рутине, статусне регистре...) које се подешавају су специјалним фајловима за то. Такође и подешења за параметре MODBUS-а (мод, baud rate, parity check, функције које се користе) налазе се у посебном фајлу. У наставку ће бити речи о подешавању ових параметара за конкретан случај комуникације и за конкретан процесор.

5.1. Адаптација FreeMODBUS софтевера за рад на DSP-у TMS320LF2407

На слици 4.2.1 је приказан садржај zip фајла који се бесплатно може скинути са горе поменутог сајта. У првом подфолдеру \demo\ ради прегледности нису приказане све платформе које су подржане, већ само б д који користимо за прилагођење.

Дакле, као што се види, нама су од интереса само два фолдера: \demo\BARE\ и \modbus\. Остали фајлови и фолдери су такође значајни, неки су и неопходни за рад, али њих није потребно мењати, стога нема потребе за детаљнијим објашњењима.

Конфигурациони фајл за подешавање мода MODBUS протокола (ASCII или RTU) налази се у фолдеру \modbus\include\ и зове се mbconfig.h . У њему је потребно параметар MB_RTU_ENABLED поставити на вредност 1, док параметри осталих подржаних протокола (MB_ASCII_ENABLED и MB_TCP_ENABLED) који се овом приликом не користе треба да имају вредност 0.

За прилагођење кода DSP-у, измене треба унети у фајлове који се налазе у фолдеру: \demo\BARE\port\ и то су фајлови:, portserial.c и porttimer.c .

У фајлу port.h се дефини дефинишу макрои за улазак и излазак из интерапт рутине:

#define ENTER_CRITICAL_SECTION ( ) asm(" SETC INTM")#define EXIT_CRITICAL_SECTION ( ) asm(" CLRCINTM")

Следеће што је потрбно урадити је подешавање тајмера у фајлу porttimer.c . Наиме сам MODBUS протокол и RTU као његов мод, на основу трајања паузе после последњег примљеног карактера, закључују да ли је пренета комплетна порука или је дошло до прекида. Ако је пауза између пијема два карактера већа од 1,5х а мање од 3,5х времена трајања карактера онда се сматра да је дошло до грешке, порука се брише, а пристигли карактер се слика 5.1.1

13

Page 14: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

третира као почетак нове поруке. Уколико је пауза већа од 3,5х периода, сматра се да је порука исправно примљена.

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

BOOL xMBPortTimersInit (USHORT usTim1Timerout50us){ usMBTimerPeriodOut50us = usTim1Timerout50us; return TRUE;}

inline voidvMBPortTimersEnable ( ){ T1CON &= CLR6; T1CNT = 0; usMBTimerCounterOut50us = 0; T1CON |= SET6;}

inline voidvMBPortTimersDisable ( ){ T1CON &= CLR6; T1CNT = 0; usMBTimerCounterOut50us = 0;}

Последње прилагођење које је потребно изврсити је портовање DSP-а које се врши у фајлу portserial.c, где је потребно иницијализовати параметре серијског порта и омогућавање пријема и слања. То је урађено у следећим рутинама:

voidvMBPortSerialEnable (BOOL xRxEnable, BOOL xTxEnable){ if (xRxEnable) { SCICTL2 |= SET1; } else { SCICTL2 &= CLR1; } if (xTxEnable) { SCICTL2 |= SET0; prvvUARTTxReadyISR ( ); } else { SCICTL2 &= CLR0; }}

BOOL

14

Page 15: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

xMBPortSerialInit (UCHAR ucPORT, ULONG ulBaudRate, UCHAR ucDataBits, eMBParity eParity){

ULONG BRR;SCSR1 |= SET6; // Enable clock to the SCI moduleSCICCR |= (ucDataBits - 1) & 0x0007;switch (eParity)

{ case MB_PAR_NONE: SCICCR &= CLR5; break;

case MB_PAR_ODD: SCICCR |= SET5; break;

case MB_PAR_EVEN: SCICCR |= SET5 | SET6; break; }

SCICTL1 = 0x0003; // Enable receiver and transmitterBRR = CLKOUT / (ulBaudRate * 8) - 1;SCIHBAUD = ((USHORT) BRR >> 8) & 0x00FF;SCILBAUD = (USHORT) BRR & 0x00FF;SCICTL1 |= 0x0020;SCIPRI = 0x0060;

return TRUE;}

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

static voidprvvUARTTxReadyISR(void){ pxMBFrameCBTransmitterEmpty ( );}

static voidprvvUARTRxISR (void){ pxMBFrameCBByteReceived ( );}

Како је ово демо верзија софтвера, није подржан рад са свим основним типовима података MODBUS протокола. Тачније, једини подржани тип податка био је улазни регистар, за чије коришћење ја била написана потребна call back функција. за регулисање читања и уписа у Holding регистре, Coil-ове и дискретне улазе. Једина call back функција која је била подржана, тј. комплетно написана је функција за рад са улазним регистрима.

eMBErrorCodeeMBRegInputCB (UCHAR *pucRegBuffer, USHORT usAddress, USHORT usNRegs){ eMBErrorCode eStatus = MB_ENOERR; int iRegIndex;

15

Page 16: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

if ((usAddress >= REG_INPUT_START )&& (usAddress + usNRegs <= REG_INPUT_START + REG_INPUT_NREGS)) { iRegIndex = (int)(usAddress - usRegInputStart); while (usNRegs > 0) { *pucRegBuffer++ = (UCHAR)(usRegInputBuf[iRegIndex] >> 8); *pucRegBuffer++ = (UCHAR)(usRegInputBuf[iRegIndex] & 0xFF); iRegIndex++; usNRegs--; } } else { eStatus = MB_ENOREG; } return eStatus;}

Остале call back функције, за рад са Holding регистрима, Coil-овима и дискретним улазима, написане су по узору на предходну.

eMBErrorCodeeMBRegHoldingCB (UCHAR *pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegisterMode eMode ){ eMBErrorCode eStatus = MB_ENOERR; int iRegIndex; if ((usAddress >= REG_HOLDING_START ) && (usAddress + usNRegs <= REG_HOLDING_START + REG_HOLDING_NREGS)) { iRegIndex = (int)(usAddress - usRegHoldingStart); switch (eMode) { case MB_REG_READ: while(usNRegs > 0) { *pucRegBuffer++ = (UCHAR)(usRegHoldingBuf[iRegIndex] >> 8); *pucRegBuffer++ = (UCHAR)(usRegHoldingBuf[iRegIndex] & 0xFF); iRegIndex++; usNRegs--; } break;

case MB_REG_WRITE: while(usNRegs > 0) { usRegHoldingBuf[iRegIndex] = *pucRegBuffer++ << 8; usRegHoldingBuf[iRegIndex] |= *pucRegBuffer++; iRegIndex++; usNRegs--; }

16

Page 17: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

break; } } else { eStatus = MB_ENOREG; } return eStatus;}

eMBErrorCodeeMBRegCoilsCB (UCHAR *pucRegBuffer, USHORT usAddress, USHORT usNCoils, eMBRegisterMode eMode){ eMBErrorCode eStatus = MB_ENOERR; int iRegIndex, iNumOfCoils; if ((usAddress >= REG_COILS_START ) && (usAddress + usNCoils <= REG_COILS_START + REG_COILS_NCOILS)) { iRegIndex = (int)(usAddress - usRegCoilsStart); iNumOfCoils = (int)usNCoils; switch (eMode) { case MB_REG_READ: while (iNumOfCoils > 0) { *pucRegBuffer++ = xMBUtilGetBits (ucRegCoilsBuf, (USHORT)iRegIndex, (UCHAR)(iNumOfCoils <= 8 ? iNumOfCoils : 8)); iRegIndex += 8; iNumOfCoils -= 8; } break;

case MB_REG_WRITE: while( iNumOfCoils > 0 ) { xMBUtilSetBits (ucRegCoilsBuf, (USHORT)iRegIndex, (UCHAR)(iNumOfCoils <= 8 ? iNumOfCoils : 8), *pucRegBuffer++); iRegIndex += 8; iNumOfCoils -= 8; } break; } } else { eStatus = MB_ENOREG; } return eStatus;

}

eMBErrorCodeeMBRegDiscreteCB (UCHAR *pucRegBuffer, USHORT usAddress, USHORT usNDiscrete )

17

Page 18: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

{ eMBErrorCode eStatus = MB_ENOERR; int iRegIndex, iNumOfCoils; if((usAddress >= REG_DISCRET_START ) && (usAddress + usNDiscrete <= REG_DISCRET_START + REG_DISCRET_NCOILS)) { iRegIndex = (int)(usAddress - usRegDiscreteStart); iNumOfCoils = (int)usNDiscrete; while (iNumOfCoils > 0) { *pucRegBuffer++ = xMBUtilGetBits (ucRegDiscreteBuf, (USHORT) iRegIndex, (UCHAR)(iNumOfCoils <= 8 ? iNumOfCoils : 8)); iRegIndex +=8; iNumOfCoils -= 8; } } else { eStatus = MB_ENOREG; } return eStatus; }

5.2. Начин компајлирања и имплементације кода у DSP

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

За програмирање FreeMODBUS софтвера коришћени су cgtools алати за програмирањ из Code Composer Studio развојног окружења. Коришћена је следећа скрипта написана у build_app.bat фајлу.

if not exist .\bin mkdir .\bin

del /Q .\bin\*.*

.\cgtools\dspa -lv2xx vectors.asm .\bin\vectors.obj .\bin\vectors.lstpause

.\cgtools\dspcl -v2xx -S -I. -I.\cgtools\include -I.\modbus_port -I.\modbus\rtu -I.\modbus\ascii -I.\modbus\include -fr .\bin\ -fs .\bin\ demo.c pause

.\cgtools\dspcl -v2xx -S -I. -I.\cgtools\include -I.\modbus_port -I.\modbus\rtu -I.\modbus\ascii -I.\modbus\include -fr .\bin\ -fs .\bin\ bsp.c pause

.\cgtools\dspcl -v2xx -S -I. -I.\cgtools\include -I.\modbus_port -I.\modbus\rtu -I.\modbus\ascii -I.\modbus\include -fr .\bin\ -fs .\bin\ .\modbus_port\portserial.c

18

Page 19: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

pause

.\cgtools\dspcl -v2xx -S -I. -I.\cgtools\include -I.\modbus_port -I.\modbus\rtu -I.\modbus\ascii -I.\modbus\include -fr .\bin\ -fs .\bin\ .\modbus_port\portevent.c pause

.\cgtools\dspcl -v2xx -S -I. -I.\cgtools\include -I.\modbus_port -I.\modbus\rtu -I.\modbus\ascii -I.\modbus\include -fr .\bin\ -fs .\bin\ .\modbus_port\porttimer.c pause

.\cgtools\dsplnk link.cmdpause

.\cgtools\dsphex -romwidth 16 -memwidth 16 -i -o .\bin\firmware.hex .\bin\firmware.out pause

За спуштање кода у DSP коришћен је порограм C2oooProg v1.2c који има своју апликативну и конзолну верзију. Ради ефикаснијег рада за конзолну верзију овог програма је такође написана скрипта у program_com2.bat фајлу.

"c:\Program Files\C2oooProg\C2oooProgConsole.exe" -s -d="2407_API1.30_10MHz_4x" -p=COM2 -h=.\bin\firmware.hex -cpause

На слици 5.2.1 приказана је плочица са DSP–ем на којој су означени џампери који одређију режим рада микропроцесора. Џампер за програмирање (JVPP – ознака на плочици) се користи на постљу које садржи 3 пина. Пин 3 је спојен са напоном напајања (+5V), док је пин 1 спојен на масу. Пин 2 је директно спојен на пин процесора

којим се одређује режим рада (Vccp пин). Преспајањем пинова 2 и 3 DSP је спреман за програмирање. Ако џампер преспаја пинове 2 и 1, онда је DSP у радном режиму.

JBOOTEN џампер уколико је постављен спаја пин процесора на масу чиме се активира Boot ROM помоћу које се преко серијске везе спушта код у меморију. Уколико није постављен овај џампер, Flash меморија се користи као радна.

Процедура за спустање кода је:1. При искљученом напајању DSP-а поставити

џамер за програмирање да преспаја пинове 2 и 3. Поставити JBOOTEN џампер. Прикључити серијски кабал са компјутера на DSP плочицу.

2. Укључити напајање и покренуту програм за спуштање кода.

3. Након успешног спуштања кода, искључити напајање, вратити џампер за

програмирање између пинова 1 и 2, скинути JBOOTEN џампер, повезати ТЅ на серијски прикључак. При следеђем укључењу напајања DSP извршава нови код.

слика 5.2.1

19

Page 20: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

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

20

Page 21: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

6. Екран осетљив на додир (Touch Screen)

TS je кориснички интерфејс који последњих година преузима примат у свим уређајима којима управља човек. Због своје једноставности, компактности, као и могућности непосредне комуникације (без употребе тастатуре, миша, toushpad-а...), нашао је широку примену у мобилним телефонима, PDA-PNA уређајима, tablet PC-евима, итд.

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

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

6.1. Спецификација коришћеног модела ТЅ-а

Екран који је требало прилагодити захтевима управљања погона електрофилтра је ТЅ Тајвандске фирме ''Weintek Labs Inc.'' која већ дуги низ година једна од водећих фирми која се бави производњом уређаја за комуникацију човека и машине (Human Machine Interfaces - HMI). Званични сајт фирме је http://www.weintek.com / и на њему се може наћи доста корисних информација, не само везаних за фирму, већ и линкови ка другим корисним сајтовима, као и Download део у коме се може наћи неопходна софтверска подршка за рад са њиховим производима.

слика 6.1.1

На слици 6.1.1 је приказана предња страна ТЅ–а коришћеног за реализацију овог пројекта и он носи ознаку MT506LV45EV. Може се приметити да са предње стране постоје 3 индикационе диоде које показују да ли је ТЅ прикључен на неки уређај, да ли

21

Page 22: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

на рачунар и да ли му је доведено напајање. Тачна спецификација је дата на наредној, слици 6.1.2 која је узета из званичног datasheet-а за поменути модел.

слика 6.1.2*

Дакле, користимо монохроматски екран од 5,7 инчи, 320х240 пиксела, са 4 нијансе сиве боје, 2МВ флеш меморије која се користи за смештање апликативног софтвера. Постоји и додатна меморија – Recipe memory која је у стању да се очува чак и до пола године након последњег укључења уређаја. Она је смештена у SRAM који се напаја из посебне батерије, и у овом случају је има 128КВ, тј. 64К речи.

На наредној слици 6.1.3 је приказана полеђина уређаја на којој се могу видети два 9-то пинска D-SUB конектора од којих је један мушки а други женски. Такође се види Dip Switch којим се одређују режими рада, а поред њега се налази се налази тастер за ресет. У доњем левом углу се налази лезиште за осигурач, као и прикључци за +24V, масу и уземљење респективно.

* слика преузета из документа EasyBuilder 500 User’s Manual са странице http://www.weintek.com/

22

Page 23: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

слика 6.1.3 Као што се може видети са слике, мушки D-SUB двоструку намену. На њега се

може повезати рачунар приликом програмирања ТЅ-а или вршења неке симулације, док се у нормалном радном режиму на овај прикључак може повезати уређај којим ТЅ управља преко серијске RS485 везе. На женском D-SUB прикључку (десно), веза са уређајем се остварује преко RS232 везе.

Следећа слика 6.1.4 приказује начин повезивања одговарајуцих пинова D-SUB прикључака са једне и друге стране.

H M I PLC

PC

HM I PLC PC

слика 6.1.4*

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

* слика преузета из документа EasyBuilder 500 User’s Manual са странице http://www.weintek.com/

23

Page 24: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

Dip Switch се користи за промену мода рада, при чему се сама промена мора бити извршена док је уређај искључен. У следећој табели дат је приказ прекидача и модови рада за све могуће положаје.

SW1 SW2 ModoviON ON Тест мод ТЅ-аOFF ON Мод за дебаг и симулацијуON OFF Мод за калибрацију ТЅ-аOFF OFF Апликациони (радни) мод

*SW3 и SW4 се не користе

У тест моду, приликом притиска на екран, појављује се „+“ знак. На овај начин се проверава тачност екрана. Мод за дебаг и симулацију се користи за download/upload софтвера, симулацију рада ТЅ-а помоћу рачунара, а за овај конкретан модел се у овом моду појављује могућност да се подеси позадинско осветљење екрана. Мод за калибрацију и радни мод нема потребе посебно објашњавати, јер им назив објашњава функцију.

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

Фирма ''Weintek Labs Inc.'' развила је сопствено графичко окружење које се користи за развој апликативног софтвера за ТЅ, ту су и опције download-а upload-а већ постојећих готових пројеката (дакле могуће је са уређаја који ради, преснимити софтвер на неки нови уређај), као и врло корисне опције online и offline симулације.

Први корак је инсталирање софтвера EasyBuilder 500 (у даљем тексту ће биди скраћено означаван са ЕВ500). То је развојно окружење за све ТЅ-ове са ознаком МТ5хх, где се мора водити рачуна о верзији софтвера. Са слике 6.1.2 видимо да за наш модел одговара ЕВ500 V2.7.0 или новија.

Након инсталације, треба покренути EasyManager чији је изглед приказан на слици 6.2.1. Најпре је потребно унети подешења за серијску везу (број порта и baud rate) и изабрати одговарајућу операцију. Дакле након успешног прављења софтвера у ЕВ500, исти је могуће симулирати на рачунару што знатно смањује време дебаговања, јер није потребно програм пребацити на ТЅ да би се установило да не ради како треба.

После успешног дебаговања, софтевер је могуће download-овати у ТЅ, при чему се то може урадити комплетно или парцијано. Парцијални download подразумева слање само фајлова који су везани за пројекат, док комлетан уз то шаље и податке из специјалне Recipe меморије, у којој се, зависно од дизајна графичког интерфејса могу налазити неки предефинисани (default) параметри који су битни за рад апликације. Избором одговарајуће ставке падајуцег менија који се налази у другом реду, могуће је извршити download или upload само параметара из Recipe меморије.

слика 6.2.1

24

Page 25: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

Нови пројекат започиње на исти начин као и у свим Windows апликацијам, кликом на падајући мени File па избором опције New отвара се прозор у ком се из падајућег менија бира одговарајући модел ТЅ-а. Изглед прозора за едитовање, менија, toolbar-ова и алатки за цртање и писање није потребно додатно објашњавати јер имају доста сличности са стандардним Windows апликацијам (нпр: Paint, WordPad…).

Најзначајнија подешавања у пројекту остварују се преко опције из главног менија Edit / System Parameter. За нас су најбитнији параметри комуникације и на слици 6.2.2 је дат проказ прозора за подешавање у који су већ унети параметри који задовољавају услове конекције.

У првом падајућем менију се из широке понуде контролера најпознатијих светских произвођача бира одговарајући, односно у нашем сличају бирамо одговарајући протокол за пренос података. Врло битно је да параметри конекције (baud rate, број битова за податке, парност, број стоп битова, број под којим је меморисан DSP) буду подешени исто на ТЅ-у и DSP-у, јер у супротном комуникација неће бити могића.

Параметри конекције који су овде унесени су default параметри, тј. препоручени од стране произвођача, и поришћени су у периоду провере исправности везе. Наравно у току експлоатације, baud rate може бити знатно већи.

слика 6.2.2

25

Page 26: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

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

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

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

њихов начин означавања и смештања у меморију

Када се направи нови пројекат, добија се празан прозор у који је потребно сместити основне елементе који це имати неку функцију у будућој апликацији. Како су основни типови података бити и 16-обитне речи, тако имамо и елементе који нам служе за приказ и упис битова, то су Bit Lamp – индикатор стања бита, Set Bit – дугме које утиче на вредност бита и Toggle Switch који представља комбинацију предходна два. За Рад са речима, тј. променљивама које могу имати више од 2 вредности, користе се елементи као сто су Word Lamp, Set Word, Multi-State Switch, Numeric Input, Numeric Data, ASCII Input, ASCII Data.

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

слика 6.3.1.1

На слици 6.3.1.1 је приказан изглед графичког окружења ЕВ500 и у њему овај пројекат, код кога се види прозор за скенирање кварова. Палета основних алата за

26

Page 27: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

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

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

подешавање параметара елемента, у овом случају Bit Lamp-a. Избор облика и натписа није проблематичан, али треба обратити пажњу на тип променљиве. Као што се са слике може видети, у понуди су:

LB Локални бит1x Дискретни улаз0x Coil4x_Bit Бит Holding регистра3x_Bit Бит Input регистраRBI Recipe бит са индекс адресомRB Recipe битMs_RB Апсолутна адреса Recipe бита HMI MasteraMs_LB Апсолутна адреса локалне речи HMI

Mastera

Зависно од тога који се тип променљиве изабере, његова вредност се чита директно са уређаја или из меморије ТЅ-а (локалне или Recipe). Уколико је коришћен Coil или дискретан улаз, за очитавање вредности бита биће аутоматски активирана комуникација са уређајем.

Следећи основни елемент који ће бити објашњен је Numeric Input јер највише коришћени елемент у овој апликацији, а остали елементи који користе реч као променљиву имају доста слична основна подешавања као и овај. У радном режиму апликације, приликом промене вредноси ове променљиве тачније притиском на дугме које она представља, појављује се на екрану нумеричка тастатура помоцу које се уноси вредност. На сличан начин код ASCII Input елемента појављује се ASCII тастатура.

27

Page 28: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

слика 6.3.1.3 слика 6.3.1.4

На сликама 6.3.1.3 и 6.3.1.4 виде се два битна таба за подешавање Numeric Input, у главном се врши подешава типа променљиве, адресу и броја речи у променљивој. У Numeric табу, могуће је назначити у ком систему се жели приказати број, да ли је број цео или садржи децимални зарез, и има ли потребе вршити конверзију односно скалирање броја.

Ознаке из падајућем менију за избор типа променљиве дате су у следећој табели:

LW Локалнa реч3x Улазни регистар4x Holding регистар5x Holding регистар коме се при преносу прво

шаље реч нижег значаја6x Holding регистар који се шаље искључиво

коришћењем функције 06, а не 16RWI Recipe реч са индекс адресомRW Recipe речиMs_RW Апсолутна адреса Recipe речи HMI Mastera Ms_LW Апсолутна адреса локалне речи HMI

Mastera

Конверзија која се аутоматски врши по унапред дефинисаном правилу, произилази из потребе да се бројеви које корисник уноси и очитава у микроконтролеру или PLC-у другачије меморишу. Образац по коме се врши скалирањ, односно пребацивање из једне велицине у другу је следећи:

И контра конверзија

Ознаке коришћене у једначинамаTS Вредност приказана на ТЅ-уPLC Вредност која се налази у PLC-уEnHi Engineering HighEnLo Engineering LowInHi Input HighInLo Input Low

28

Page 29: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

6.3.2. Врсте прозора и начин њихове употребе

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

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

Fast Se lectionпрозор

Fast Se lectionпрозор

Д угме за приказW indow bar-a

Д угм е за приказ

прозораFast Selection

W indow bar И ндикатори

слика 6.3.2.1*

На слици 6.3.2.1 видимо доста елемената који подсећају на Windows–ове елемeнте али имају другацији назив. На дну екрана се налази Window bar који садржи дугме за сваки отворени прозор. Помоћу тог дугмета прозор можемо минимизовати или га ставити да буде активан прозор (уколико то није био). У доњем левом углу налазе се два дугмета Start и Tray који служе за приказивање или сакривање Fast Selection прозора и Window bar-а, респективно. Start дугме и Fast Selection прозор понашају се доста слично као Start Menu на било ком Windows оперативном систему. Једина разлика је што се притиском на неко дугме из Fast Selection прозора, исти не затвара него и даље остаје на екрану све док се не затвори притиском на дугме Start.

Једина ствар која је обавезна, то је да пројекат мора имати један, иницијални прозор који је увек под бројем 10. Све остало зависи од захтева крајњег корисника, али свакако да је апликација доста прегледнија ако се сви елементи не налазе на једном прозору. Зато је пуно боље расподелити параметре који се желе приказати на неколико прозора, тако да сваки прозор садржи подгрупу параметара која има нешто заједничко.

Постоје три основне врсте прозора који се могу направити: Base Window – основни прозор у који се смештају елементи за приказ и

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

Fast Selection – је прозор чија је употреба опциона, у њему се обично налазе дугмад за позивање осталих прозора. Он се налази под бројем 4 у листи прозора.

Common Window – је прозор који је увек активан и служи да се нешто додатно прикаже у оквиру већ постојећег прозора (нпр. прозор са нумеричком тастатуром). Налази се под бројем 6 у листи прозора.

Direct Window и Indirect Window су специјални прозори који се на нестандардан начин отварају и затварају. Корисни су за израду подпрозора. Директан прозор се * слика преузета из документа EasyBuilder 500 User’s Manual са странице http://www.weintek.com/

29

Page 30: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

приказује тако што се унапред одређени локални бита постави на вредност 1 (уклања се поставком бита на 0). Индиректни прозор се приказује тако што се у унапред одређену локалну реч унесе број прозора који треба отворити (уклања се постављањем ове речи на вредност 0). Такође је карактеристично да имају унапред одређену област у којој се појављују на активном прозору и уколико је величина прозора већа од те области, он неће бити приказан у целости.

На сликама 6.3.2.2 и 6.3.2.3 су приказани прозори у којима се подешавају параметри за директни и индиректни прозор.

слика 6.3.2.2 слика 6.3.2.3

Главни елемент за рад са основним прозорима су функцијска дугмад (Function Key). Поред многобројних других функција које може да обавља оно служи за отварање, затварање, промену прозора итд.

слика 6.3.2.4

На слици 6.3.2.4 се види изглед прозора који се отвара када се функционално дугме додаје у пројекат. Видимо да осим опција за контролисање прозора прозора постоје и опције уноса специјалних карактера (Enter, Backspace, Clear, Escape, ASCII симболи...) који се користе за прављење нумеричке или алфанумеричке тастатуре.

30

Page 31: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

Уколико је чекирано „Change Window“ дугме има улогу да промени тренутни прозор у прозор чији је редни број дат у пољу „Window no.“. Уколико је отворен неки прозор и преко њега је отворен подпрозор директни или индиректни прозор, променом прозора ми онај предходни нисмо затворили као ни његов подпрозор. Уколико се поново вратимо на предходни или затворимо тренутни прозор, у предходном прозору ћемо видети активан подпрозор.

Ако функцијско дугме има функцију „Return to Previous“ притиском на њега се затвара постојећи прозор и поново се позива последњи активан прозор. Нпр. ако је прозор 20 замењен прозором 15 и уколико у прозору 15 притиснемо овакво дугме, вратићемо се у прозор 20, а прозор 15 се затвара. Ово се односи на Base прозоре.

„Change Common Window” мења актуелни Common прозор са оним који је наведен у пољу „Window no.“.

Доделом функциском дугмету опције „Window Bar” можемо мењати локациу подпрозора. Преместање се врши притиском на ово дугме у подпрозору, а затим притиском на жељену локацију. Ово се не односи на прозоре који су отворени помоћу опције Change Window, већ само на директне и индиректне прозоре.

Коришћењем „Minimize Window“ могуће је подпрозор минимизовати у Window бар, а касније их поново активирати.

Ако је чекирана опција „Popup Window” на екрану ће се преко постојећег прозора отворити прозор са чији је редни број унет у поље „Window no.“ и то као његов popup прозор. За затварање овако позваног прозора у функцијском дугмету треба да буде чекирана опција „Close Window“.

Опција „JOG FS-Window“ се користи уколико хоћемо још неки прозор да користимо као Fast Selection прозор. Рецимо да имамо превише података које би хтели да прикажемо у оквиру овог прозора, коришћењем ове опције је могуће је податке расподелити у неколико таквих и само мењати који је од њих тренутно активан. Такав прозор мора бити истих димензија као и основни Fast Selection прозор, и његов број се уноси у поље Window no.“.

6.4. Реализација апликативног софтвера за потребе задатка

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

На слици 6.4.1 је приказан изглед главног прозора и отворен Fast Selection прозор. Идеја је била да се структура софтвера реализује по угледу на Microsoft Windows оперативнe системe, које велики проценат људи зна да користи.

На слици се види у позадини глави прозор који садржи неколико тренутних вредности струја и напона које су битне за рад погона и једно дугме којим се дозвољава односно заврањује промена вредности параметара у погону. Наравно уместо тога је могуће додати поље у које се уноси шифра чиме би се забранила промена вредности параметара од стране невлашћених лица. Притиском на дугме MENI у доњем левом ћошку екрана отвара се Fast Selection прозору (слично као Start мени у Windows-у) у коме се налазе функциони тастери за отварање свих осталих прозора који се налазе у апликацији.

31

Page 32: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

слика 6.4.1

Функциски тастери у Fast Selection прозору користе опцију „Change Window“ тако да нови прозор који ће бити приказан неће моћи да се минимизира и неће бити приказан у Window бару. Притиском на било који од функциских тастера отвара се одговарајући прозор, али се у исто време аутоматски затвара Fast Selection прозор. То је решено тако што се преко површине целог овог прозора налази један Set Bit елемент који сетује бит за сакривање Fast Selection прозора (то је LB9040).

На сличан начин је урађен и један елемент прозора „parametri filtra 1“ помоћу кога се врши одабир режима рада филтра. Наиме тај параметар има неколико могућих дискретних вредности одакле се закључује да је MultiState Switch идеалан елемент за тај посао. Међутим у библиотеци shape-ова ЕВ500 није било ни једног који је имао довољан број икона за свако стање. Из тог разлога је комбинацијом више елемената направљно нешто што личи на падајућу листу. На слици 6.4.2 је приказан овај прозор са свим елемнтима и падајућом листо која је прказана кад је отворена. Дакле, притиском на стрелицу отвара се падајућа листа, тј. приказује се додатни директни прозор под бројем 21 у ком се налазе тастери за сетовање речи односно Holding регистра и тастер за ресетовање бита који приказује директан прозор.

32

Page 33: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

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

користе се Numeric Input елементи, док се за затварање прозора користи функциско дугме и опција Change Window, а мења се у основни прозор тј. прозор број 10.

Овде су описана нека решења каракеристичних ситуација и проблема који нису довољно заступљени у datasheet-у за развојно окружење ЕВ500. Све остало везано за основна подешавања и примену других основних елемената, објашњено је у документацији за поменуто окружење.

На слици је приказан скуп опреме која се користила за реализацију пројект. Као што се види, плоча са микроконтролером је повезана једино на напајање и ТЅ. Провера рада комуникације по MODBUS протоколу вршен је на неколико начина:

Софтверски – коришћена је функција у коду DSP-а која вредности Holding регистара уписује на локацију дискретних улаза, Coil-ова, улазних регистара, док су те исте вредности очитаване на ТЅ-у.

Надгледањем комуникације – том приликом је коришћен бесплатни програм за РС – „Terminal“. Помоћу њега је било могуће надгледати бајтове који су слати преко Rx и Tx проводника (то је може видети и са слике – на монитору екрана).

33

Page 34: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

слика 6.4.3

34

Page 35: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

7. Закључак

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

Уређаји коришћени у реализацији: Touch Screen EasyView MT506LV45EV фирме Weintek Labs., Inc. Плочица са дигитаним сигналним процесором TMS320LF2407 фирме

Texas Instruments РС Стабилисани извор једносмерног напона 2х12V и 5V

Софтвер коришћен у реализацији: EasyBilder500 v2.74 фирме Weintek Labs., Inc. FreeMODBUS v1.4.0 од аутора Christian Walter cgtools - алати за програмирањ из пакет Code Composer Studio фирме

Texas Instruments C2oooProg v1.2c од аутора Beat J. Arnet Terminal v1.9b од аутора Br@y++

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

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

35

Page 36: emp.etf.rsemp.etf.rs/radovi/diplomski/dusan_ivanic/Ivanic_diplomski v1.1.doc  · Web viewMODBUS RTU протокол Имплементација ... користе се елементи

8. Литература

[1] http://esp.etf.rs/[2] www.gkm.de[3] http://www.modbus.org/[4] MODBUS over Serial Line Specification and Implementation Guide V1.02[5] MODBUS Application Protocol Specification V1.1[6] http://www.freemodbus.org/[7] http://ti.com/[8] TMS320LF/LC240xA DSP Controllers Reference Guide[9] http://www.weintek.com/[10] EasyBuilder 500 User’s Manual v2.7.0[11] EasyBuilder 500 User’s Manual v2.7.4

36