modbus hmi szoftver fejlesztése kártyához
TRANSCRIPT
1
MISKOLCI EGYETEM
GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR
Automatizálási és Infokommunikációs Intézet
Ipari automatizálás és kommunikáció szakirány
Modbus HMI szoftver fejlesztése STM32F4DIS
kártyához
Szakdolgozat
Pető Zsolt
C1Y933
Miskolc, 2017.05.16.
2
Tartalomjegyzék
Bevezetés .......................................................................................................................... 3
I. Modbus hálózat az ipari kommunikációban ............................................................ 4
Az ASCII protokoll ....................................................................................................... 6
Az RTU protokoll.......................................................................................................... 7
Modbus/ RS-232 ........................................................................................................... 7
Modbus/ RS-485 ........................................................................................................... 8
Modbus/ TCP ................................................................................................................ 9
II. STM32 Hardver ....................................................................................................... 11
STM32F4Discovery kártya ......................................................................................... 11
STM32F4DIS-BB alaplap ........................................................................................... 13
DM-LCD35RT 3,5” LCD kijelző ............................................................................... 17
III.Az MDK Version 5 fejlesztő környezet ................................................................. 19
A Keil/ARM-ról .......................................................................................................... 19
MDK mikrokontroller fejlesztő készlet....................................................................... 19
Keil µVision 5 projekt létrehozása .............................................................................. 29
IV. A socket fogalma, a Modbus TCP program folyamatábrái ............................... 32
Az LCD és a LED-ek inicializálása ............................................................................ 34
Ethernet beállítása ....................................................................................................... 35
LwIP protokoll beállítása ............................................................................................ 36
Http socket server inicializálása .................................................................................. 37
V. Modbus TCP/IP szimulátor PC-re ......................................................................... 38
Modbus Poll ................................................................................................................ 38
Modbus Slave .............................................................................................................. 40
VI. A program tesztelésének első fázisa: PC-PC kapcsolat ...................................... 42
VII. Második fázis: Modbus ASCII kapcsolat tesztelése .......................................... 44
Összegzés ........................................................................................................................ 47
Idegen nyelvű összegzés ................................................................................................ 49
Irodalom jegyzék ........................................................................................................... 50
Ábra jegyzék .................................................................................................................. 51
3
Bevezetés
A szakdolgozat elkészítése fontos mérföldkő minden felsőoktatásban résztvevő hallgató
életében. Az elkészült szakdolgozat olyan komponensekből épül fel, amelyek a mérnöki
munka nélkülözhetetlen részét képzik. A hallgató a kiválasztott projekt keretein belül
számot ad az önálló feladatmegoldó képességéről, a különböző dokumentumszerkesztő
programok magas fokú használatáról, és az egyetemi évei alatt elsajátított lexikális
tudásáról.
A szakdolgozatom témája Modbus HMI szoftver fejlesztése STM32F4DIS kártyához. A
téma meghatározása elsőre megragadta a figyelmemet, mivel a megvalósítást követően
egy komplett kutatási és fejlesztési munkává kerekedhet. A Modbus protokoll részletes
ismertetése, a megvalósításhoz felhasznált szoftver és hardver elemek bemutatása illetve
a tesztelés különböző fázisai a téma komplex ismertetését eredményezik.
A feladatom megvalósításához részletes útmutatást Dr. Raffay Csaba, a Miskolci
Egyetem Gépészmérnöki és Informatikai Karának Automatizálási és Infokommunikációs
Intézetének adjunktusa határozta meg, akinek ezúton is szeretném megköszönni kitartó
és önzetlen támogatását. Az általa nyújtott segítség nélkülözhetetlen volt számomra, hogy
meg tudjam valósítani a feladatomat.
4
I. Modbus hálózatok az ipari kommunikációban
A Modbus egy olyan hálózati protokoll, amely az 1970-es évektől létezik. Mindmáig az
egyik legsikeresebb hálózati megoldás az iparban a folyamatirányítás területén. A
Modbus a Modicon cég által fejlesztett hálózati kommunikációs protokoll, melyet
elsősorban a programozható logikai vezérlőik hálózatba kötéséhez terveztek. Azonban
könnyű kezelhetősége folytán könnyen elterjedt, melyet más gyártók is alkalmaztak. A
legtöbb, irányítástechnikai megoldásban használatos ipari készülék a Modbus protokollt
használja RS-232/485 vagy Ethernet közegen.
A Modbus protokoll a master/slave elv alapján működik. A Master joga a kapcsolat
kezdeményezése, egy kérés- vagy egy parancscsomagot küld a slave számára. A címzettet
egy címbájt határozza meg. Elméletileg 256 Slave (0… 255) azonosítására alkalmas egy
Modbus hálózaton, de a „0” címnek kitüntetett szerepe van. Amennyiben a Master az
összes Slave számára üzenetet akar küldeni (úgynevezett körözvényüzenet), pl. a dátum
és az idő szinkronizálása érdekében, akkor ezzel a speciális cím megadásával elegendő
egyetlen csomagot a vonalra helyezni. Azt valamennyi Slave értelmezi, és végrehajtja a
csomag parancsát. A Master által kiadott csomag következő logikai része egy 1 bájt
terjedelmű parancskód, azaz elméletileg 256 különböző parancskód értelmezésére nyílik
lehetőség. A Modbus protokoll szerint a parancskód legmagasabb helyi értékű bitjének
kitüntetett szerepe van, ezért a parancskódok csak a 0… 127 tartományban változhatnak.
A definiált parancskódok egy része a MODICON PLC program-fejlesztésének van
fenntartva. Vannak olyan parancsok, amelyek a technológiai állapotot tükröző, ill.
befolyásoló objektumok állapotának olvasására és írására szolgálnak.
A MODBUS kommunikáció tulajdonképpen kliens/szerver modell szerint valósítja meg
a valós idejű üzenetváltásokat két eszköz, vagy egy eszköz és több eszköz, vagy egy
eszköz és egy HMI/SCADA alkalmazás között.
A kliens és a szerver közötti információ csere az alábbiak szerint illusztrálható. A kliens
(a master eszköz) kezdeményezi a kérést. A MODBUS protokoll (a 7-es OSI szinten)
ezután generálja a PDU (Protocol Data Unit) keretet, benne a funkció kódot és az adat
kérést. A 2-es OSI szinten a PDU keret ADU (Application Data Unit) keretté alakul a
PDU címmel és 2 bájtos hibadetektálást végző résszel történő kiegészítésével.
5
1. ábra - Általános Modbus üzenet keret
A MODICON PLC (így a MODBUS is) négyféle objektumcsoportot különböztet meg:
kétállapotú (bites) bemenetek, kétállapotú (bites) kimenetek, regiszterbemenetek és
regiszterkimenetek.
2. ábra - Modbus által kezelhető objektumcsomagok
A kétállapotú (bites) bemenetek. A PLC fizikai bemeneteire kapcsolt jelzéseket
jelentik. Egy-egy jelzés (bit értéke) azt tükrözi, hogy egy technológiai objektum két
lehetséges állapota közül melyik az aktuális (pl. egy kemenceajtó zárt vagy nyitott).
Ezeket az objektumokat a master csak olvashatja.
A kétállapotú (bites) kimenetek. Részben a PLC fizikai kimeneteinek, részben a PLC
memóriájában leképzett bites változóinak (merkerek) állapotát tükrözik. Ezt az
objektumcsoportot a master írhatja és olvashatja.
6
Regiszterbemenetek. Egy-egy regiszter tartalma egy 16 bites szám. Értékük, pl. egy
analógcsatorna A/D konverziójának eredményétől, vagy pl. egy hardveres számláló
tartalmától függ. Általában egy-egy regiszter a PLC egy-egy hardveregységéhez (A/D
csatorna, számláló stb.) rendelődik. Ezen regiszterek értelemszerűen csak olvashatók a
master számára.
Regiszterkimenetek. A 16 bites regiszterek tartalmát a master írhatja és olvashatja is.
Egy-egy regiszter tartalma megszabhatja pl. egy analóg kimenet nagyságát (a PLC egyik
D/A konverterének felhasználásával), de a PLC értelmezheti a regiszterben lévő számot,
pl. egy időzítés nagyságát, vagy egy analóg jel maximumának értékeként is.
Az adatváltás kétféle módban történhet:
• ASCII: főként tesztelési funkcióra használható.
• RTU: gyorsabb, főként a normál működésre használva.
Az ASCII protokoll
Az ASCII protokoll azt jelenti, hogy a csomag minden egyes bájtja két hexadecimális
(ASCII) kóddá konvertálódik, és ez kerül a vonalra. Ebben az esetben a csomag kezdetét
egy kettőspont jelzi, a CR (Carriage Return) és az LF (Line Feed) pedig a csomag végét
határozzák meg. Ebben az esetben a csomagellenőrző számot LRC-nek (longitudinális
redundancia kód) nevezik, terjedelme 1 bájt, és a csomagot alkotó bájtok tartalmának
összegéből képezhető. A csomag vételekor ellenőrizni kell, hogy (a csomagkezdő és
termináló karaktereken kívül) a vett karakterek csak hexadecimális (0… 9 és A… F)
karakterek lehetnek, ill. a vett karakterekből képzett LRC-nek egyeznie kell az adótól
kapott LRC-vel.
Start Cím Funkció Adat LRC
vizsgálat Vége
1 karakter
( : )
2 karakter 2 karakter n karakter 2 karakter
2 karakter
CR/LF
3. ábra - ASCII üzenet keret
7
Az RTU protokoll
Az RTU (Remote Terminal Unit) protokoll kód független átvitelt jelent. A csomag bájtjai
minden konverzió nélkül kerülnek a soros vonalon. Sem csomagkezdő, sem csomag
termináló karakter nincs. A vonalon mindenféle (0… 255) tartalmú bájt lehet. Ahhoz,
hogy az ASCII protokollal közel azonos valószínűséggel felismerjük az átviteli hibákat,
egy 2 bájt terjedelmű CRC-nek (ciklikus redundancia kód) az alkalmazása szükséges
csomagellenőrző számként, mivel a csomag karaktereinek előszűrése nem lehetséges. A
vett csomag helyességének ellenőrzése csak a CRC egyezősége alapján lehetséges.
Start Cím Funkció Adat CRC
ellenőrző Vége
T1-T2-T3-T4 8 bit 8 bit n*8 bit 16 bit T1-T2-T3-T4
4. ábra - RTU üzenet keret
Modbus/ RS-232
Bár az RS-232 szabvány a pont-pont közötti kommunikációra van tervezve, így nem
engedi meg több node-os rendszer felépítését, de az egységek „daisy chain” szerint
sorosan kapcsolhatók.
5. ábra - RS-232 hálózat smart távadókkal
8
A hálózaton ASCII karakterek továbbítására van lehetőség (ASCII bázisú protokoll).
Bármely karaktert küldi a host számítógép, azt a soron következő vevő veszi, és tovább
adja a következőknek. Amelyik node felismeri a címét, az visszaküldi a választ ugyancsak
sorosan a node-okon keresztül.
Modbus / RS-485
Az RS485 hálózaton alkalmazott Modbus protokoll elterjedését olcsó kialakítása és a
szabadon hozzáférhető forráskód tette lehetővé. Mivel a protokoll és a hálózat magas
megbízhatóságú, ezért egyaránt kiválóan alkalmas PLC-k közötti kommunikációra,
adatgyűjtésre ipari folyamatirányításban, villamos energia elosztó hálózatokban
állapotellenőrzésre, működtetésre, stb. Ezt a hálózattípust leginkább ipari környezetben,
relatívan kisebb távolságok áthidalására használják.
A legfontosabb jellemzők:
Maximális felhasználók száma a buszon: 32.
Topológiák: pont-pont, busz multipont (2 vagy 4 vezetékes kialakítás).
Egy fogadó (master) és több küldőből (slave) álló felépítés.
Modulációs sebesség: 4800/9600/19200 Baud.
Átviteli sebesség: 10 Mbit/s maximum.
Protokoll: pl. Modbus.
Kontrollvezetékre nincs szükség.
6. ábra - RS-485 hálózat smart távadókkal
9
Ennek a hálózattípusnak a legnagyobb előnye az egyszerű és olcsó kivitelezhetőség.
Kommunikációs médium a sodort érpár, ún. 2-vezetékes vagy 4-vezetékes módon.
Modbus/ TCP
Az Ethernet eszközök napjainkban egyre nagyobb teret hódítanak az ipari
alkalmazásokban. A legtöbb számítógép és a legújabb PLC-k támogatják az Ethernet
feletti Modbus/ TCP (Transmission Control Protocol) protokollt. A megvalósítás
költségeit sok esetben csökkenti a már meglévő, vagy egyébként is kiépülő Ethernet
hálózatba való integrálhatóság.
A Modbus/ TCP alapvetően egy Modbus keretet ágyaz be egy TCP keretbe. Ez egy
kapcsolat-orientált tranzakció, amely azt jelenti, hogy minden egyes kérés választ vár. Ez
a kérés/válasz technológia jól illik a Modbus master/slave természetéhez, amely hatalmas
előnyt jelent az ipari felhasználók számára.
Ezeket a protokollokat együtt használják az internet szállítási protokolljával. Amikor a
Modbus információkat elküldik a protokoll használatával, az adatokat a TCP-re
továbbítják, ahol további információkat csatolnak hozzá és továbbadják az IP-nek. Az IP
ezután az adatokat egy csomagba (vagy datagramba) helyezi és továbbítja.
A TCP-nek kapcsolatot kell létesítenie az adatátvitel előtt, mivel ez egy kapcsolat alapú
protokoll. A Master (vagy a Modbus TCP kliens) létrehozza a kapcsolatot a slave-vel
(vagy a szerverrel). A szerver vár egy bejövő kapcsolatot az kliens részéről. A kapcsolat
létrejötte után a szerver válaszol az kliens lekérdezéseire mindaddig, amíg az kliens
bezárja a kapcsolatot.
Modbus TCP/IP üzenet
Egy Modbus RTU üzenet, amelyet TCP / IP csomagolóval továbbítanak, és soros vonalak
helyett hálózaton keresztül küldik. A kiszolgálónak nincs SlaveID címe, mivel az IP-
címet használja.
Eltekintve a fent említett soros és hálózati kapcsolatok fő különbségeitől, az üzenetek
tartalmában néhány különbség van, amelyet a 7. ábra szemléltet.
10
7. ábra - Modbus TCP/IP üzenet keret
A Modbus RTU üzenet adja a Modbus TCP/IP PDU (protokoll adategység) részét,
eltávolítása az üzenetkeret elejéről a Slave azonosítót, és a CRC ellenőrző csomagot a
végéről.
Az MBAP header (Modbus Alkalmazás Fejléc) egy új 7 bájtos fejléc, amely hozzáadódik
az üzenet elejéhez. Ez a fejléc a következő adatokat tartalmazza:
Tranzakció azonosítója: az kliens által meghatározott két bájt, hogy minden egyes
kérelmet egyedi azonosítóval lát el.
Protokoll azonosítója: a kliens által beállított 2 bájt (mindig 00 00)
Hossz: 2 bájt az üzenetben szereplő byte-k számának azonosításával.
Egység azonosítója: az kliens által beállított 1 bájt, egy soros vonalon vagy más
buszon csatlakoztatott távoli slave azonosítására.
11
II. STM32 Hardver
Az STMicroelectronics egy globális félvezetőkre specializálódott cég, amelynek
székhelye Svájcban található. A világ egyik legnagyobb félvezetőkkel foglalkozó cége,
ami világszerte csaknem 45 ezer alkalmazottnak biztosít munkahelyet. Gazdag és
változatos portfólióval rendelkező vállalat, amely vezető a technológiai újítások terén.
A feladat végrehajtásához felhasznált eszközök:
Lenovo Z50 Laptop
STM32F4Discovery kártya
STM32F4DIS-BB alaplap
DM-LCD35RT 3,5” LCD kijelző
8. ábra - Alkatrész összeállítás
STM32F4DISCOVERY kártya
Az STM32F4DISCOVERY a Discovery készletnek köszönhetően lehetővé teszi a
felhasználók számára, hogy könnyen tudjanak alkalmazásokat fejleszteni. A kártya
minden opciót tartalmaz ahhoz, hogy mind a kezdő, mind a tapasztalt felhasználók
számára is hasznos legyen.
Az STM32F407 nagyteljesítményű mikrokontroller ARM® Cortex®-M4 32 bites
maggal van ellátva. Az STM32F407VGT6 típuson alapul, de magában foglalja az ST-
LINK/V2 és az ST-LINK/V2-A beágyazott hibakereső eszközt, két ST MEMS digitális
gyorsulásmérőt, digitális mikrofont, egy audió DAC integrált D osztályú hangszóró
12
drivert, LED-eket, nyomógombokat és USB OTG micro-AB csatlakozót. A
funkcionalitását bővíteni lehet például Ethernet kapcsolattal vagy LCD kijelzővel is.
9. ábra – STM32F4DISCOVERY kártya
Jellemzők
A STM32F4DISCOVERY a következő jellemzőkkel bír:
STM32F407VGT6 mikrokontroller, mely 32 bites ARM Cortex® -M4 mag, 1-
Mbyte Flash memória, 192 KB-os RAM egy LQFP100 csomag
Beágyazott hibakereső eszközök:
- ST-LINK / V2 (STM32F4DISCOVERY)
- ST-LINK / V2-A (STM32F407G-DISC1)
ARM® mbed™ kompatibilis
USB ST-LINK újra felsorolás képességgel és három különböző interfésszel:
- Virtuális kommunikációs port (ST-LINK / V2-A esetén)
- Háttértároló (ST-LINK / V2-A esetén)
- Hibakereső port
Helyi tápegység:
- USB-n keresztül
- Külső áramforrás: 3 V és 5 V
LIS302DL vagy LIS3DSH ST MEMS 3 tengelyes gyorsulásérzékelő
MP45DT02 ST MEMS audió érzékelő többirányú digitális mikrofon
13
CS43L22 audió DAC integrált D osztályú hangszóró driver
Nyolc LED:
- LD1 (piros / zöld) USB kommunikáció
- LD2 (piros) 3,3 V bekapcsolt
- Négy felhasználói LED: LD3 (narancs), LD4 (zöld), LD5 (piros) és LD6
(kék)
- 2 USB OTG LED: LD7 (zöld) VBUS és LD8 (piros) túláram
Két nyomógomb (user és reset)
USB OTG FS mikro-AB csatlakozó
Fejlesztést támogató programok:
IAR® EWARM IAR Embedded Workbench®
Keil® MDK-ARM™
GCC-alapú IDE Atollic® TrueSTUDIO®
ARM® mbed™ on-line
STM32F4DIS-BB alaplap
10. ábra – STM32F4DIS-BB alaplap
14
A STM32F4DIS-BB alaplap egy bővítőkártya az Embest Technology Co. gyártótól,
kifejezetten STMicroelectronics cég STM32F4DISCOVERY nagyteljesítményű
Discovery Board-hoz.
A STM32F4DIS-BB alaplap lehetővé teszi, hogy a felhasználók felfedezzék minél több
jellemzőjét az STM32F4 családnak. Ez a kártya további funkciókat ad a
STM32F4DISCOVERY mikrokontrollernek, beleértve a soros port, USB, Ethernet,
CAN, SPI, I2C, GPIO, fényképezőgép, TF kártya, LCD és érintőképernyő interfész
csatlakozókat.
A teljesítmény bővítésére az Embest egy STM32F4DIS-CAM 1,3 megapixeles kamerát
és STM32F4DIS-LCD 3,5’ ”LCD modult is biztosít, melyek egyszerűen a STM32F4-BB
alaplapra illeszthetőek.
Hardver jellemzők
Processzor:
STMicroelectronics STM32F407VGT6 flash mikrokontroller
ARM 32-bites Cortex-M4 CPU ART gyorsítóval (frekvencia akár 168 MHz-ig)
1MB flash memória
Rugalmas statikus memória vezérlő, amely támogatja a Compact Flash, SRAM,
PSRAM, NOR és NAND memóriákat
LCD párhuzamos interfész, 8080/6800 módok
USB 2.0 High-Speed/ Full-Speed Device/ Host/ OTG
10/100 Ethernet MAC, támogatja az IEEE 1588v2 hardver, MII / RMII
2 CAN 2.0B interfész: legfeljebb 4 USART és 2 UART, 3 SPI (30Mbit / s), 2
mux'ed I2S
8-től 14-bitesig párhuzamos kamera interfész (akár 48MB / s)
1/ 4/ 8-bites SD / MMC / SDIO interfész, támogatja az akár 32 GB-os tárolási
lehetőséget
15
Akár 140 I / O port legfeljebb 84 MHz
Akár 17 időzítő (két 32-bites időzítő), akár 168 MHz
3 x 12-bites A / D átalakítók, 2 x 12-bites D / A átalakítók
Analóg valós véletlenszám-generátor
Támogatja az alacsony energiájú Sleep, Stop és a készenléti üzemmódot
Támogatja Flash memória vagy SRAM indítását
Támogatja az ISP és az IAP-programozás
Külső memória:
Micro SD kártyahely
MEMS gyorsulásmérő
LIS302DL, ST MEMS mozgásérzékelő, 3 tengelyes digitális kimenetű
gyorsulásmérő
Audio interfészek
I2S Audio DAC, sztereó jack ajzat a fejhallgatóhoz
MP45DT02, ST MEMS hangérzékelő, irányított digitális mikrofon
Fényképezőgép interfész
1 x kamera interfész
LCD / érintőképernyő
3,5 "TFT színes LCD (240 x 320 képpont RGB felbontás, 262000 szín, 16 bites
8080 párhuzamos interfész, fényerőszabályzáson keresztül PWM)
4-vezetékes ellenállású érintőképernyő
16
Adatátviteli interfészek
1 x 5 vezetékes RS232 soros port
1 x USB2.0 OTG / Device / Host, Full- speed, legfeljebb 12 Mbit / s
1 x 10/100 Ethernet IEE 1588v2 (RJ45 csatlakozó)
Programozási és hibakeresési interfész
Fedélzeti ST-LINK / V2 választókapcsolóval a készlet önálló ST-LINK / V2
(SWD csatlakozóval a programozáshoz és hibakereséshez)
I / O interfész
5 x 3-vezetékes TTL UART
1 x 4 csatornás PWM
1 x SPI, I2C, CAN
6 GPIO
Az I / O-t kiterjesztő csatlakozókkal bővítik.
A kártya tápegysége
USB-n keresztül vagy külső 5 V tápfeszültségről
Külső tápegység: 3 V és 5 V
Mechanikai paraméterek
Teljesítményfelvétel: 180 mA @ 5 V (LCD modul nélkül)
Tárolási és működési hőmérséklet: 0 ° C ~ 45 ° C
Páratartalom: 20% ~ 90%
CE és RoHS megfelelő
17
Szoftverfunkciók
A DevKit407 szoftver funkciói:
Micrium μC / OS-II_v2.91 operációs rendszer támogatása
Támogatja a FatFs_vR0.08a fájlrendszert
Támogatja az LWIP _v1.3.2 protokollcsomagot
Integrált fejlesztési környezet támogatása
IAR EWARM: Minden illesztőprogram támogatja az IAR EWARM-et, az
EWARM verziónak V6.40 vagy annál magasabbnak kell lennie. A μC / OS-II
Demos jelenleg nem támogatja az IAR EWARM-et.
Keil MDK-ARM: Minden illesztőprogram és alkalmazás támogatja a Keil MDK-
ARM-et, az MDK-ARM verziónak V4.22a vagy annál magasabbnak kell lennie.
Debug eszközök támogatása
ULINK2: Legjobb a Keil MDK-ARM használatával.
JLINK-V8: Legjobb az IAR EWARM használatával.
ST-LINK / V2: Használható Keil MDK-ARM vagy IAR EWARM készülékkel.
DM-LCD35RT 3,5” Touch Screen
A DM-LCD35RT LCD modul 3,5 hüvelykes LCD-kijelzővel és illesztő felülettel
rendelkezik. Ez a modul a DevKit407 és DM-STF4BB kártyákhoz készült.
18
11. ábra – DM-LCD35RT LCD modul
Leírás:
A modul fizikai mérete: 98,0 mm * 76,0 mm
LCD mérete: 3,5”
LCD aktív terület: 70,0 mm * 52,6 mm
Interfész: 16 bites 8080 párhuzamos rendszer interfész
Vezérlő IC: SSD2119
Megjelenítési formátum: 320 * 240
Szín: 262 ezer szín
Üzemi hőmérséklet: -10 ~ 60 ° C
Tárolási hőmérséklet: -20 ~ 70 ° C
Teljesítményfelvétel: 0.18A@5V
Érintőképernyő: 4-vezetékes érintőképernyő
Blacklight: PWM vezérlés
Alaplapi támogatás: DevKit407 DM-STF4BB
19
III. Az MDK Version 5
A Keil/ARM-ról
Az 1985-ben alapult KEIL cég fejlesztőkörnyezeteket kínált kiegészítőket számos
félvezető-gyártóhoz. Hamarosan kiderült, hogy nagy szükség van egy minőségi
szoftverfejlesztő környezetre a piacon. Ekkor hozta létre a cég az első C fordítóját az
alapoktól, kifejezetten a 8051-es mikrokontrollerekhez.
2005 októberében a Keil-t (Keil Elektronik GmbH - München, Németország, és a Keil
Software, Inc. - Plano, Texas) felvásárolta az ARM.
A felvásárlás óta az ARM tovább folytatta a Keil termékek fejlesztését a meglévő 8051,
251 és C166 piacokon. Az innováció hatására pedig nagymértékben fejlődött és elterjedt
az ARM processzor alapú eszközöket támogató fejlesztőkörnyezetük is.
Napjainkban a Keil fejlesztőeszközöket széles körben használják szoftverfejlesztésre,
például a repülőgépiparban, a bankszektorban, az orvosi elektronikában, az autóiparban,
a szállításban, a gyártástámogatásban, a fogyasztói-, a katonai- és a távközlési ipari
szegmensben.
A Keil termékek magukban foglalnak C/C++ fordítókat, debuggereket, integrált fejlesztő-
és szimulációs környezetet (IDE), RTOS-t és Middleware könyvtárakat, valamint
fejlesztőpanaleket ARM, Cortex-M, Cortex-R4, 8051, C166 és 251
processzorcsaládokhoz.
MDK mikrokontroller fejlesztő készlet
Keil® MDK a legátfogóbb szoftverfejlesztő megoldás ARM® alapú mikrokontrollerhez,
és magában foglalja az összes alkatrészt, amire szükség lehet a létrehozáshoz, program
építéshez, és a hibakereséshez.
20
Az MDK segít létrehozni beágyazott alkalmazásokat ARM Cortex-M processor-based
eszközökhöz. Az MDK egy összetett, mégis könnyen elsajátítható és használható
fejlesztési rendszer.
12. ábra – MDK összesítő táblázat
MDK eszközök
Az MDK eszközök közé mindazokat az összetevőket soroljuk, amelyekkel létre lehet
hozni, építeni, és egy beágyazott alkalmazással a hibakeresést végre lehet hajtani az
ARM-alapú mikrokontroller eszközökön. Az MDK-Core, a Keil μVision IDE és a
hibakereső Cortex-M processzor alapú mikrokontroller eszközökből (beleértve az új
ARMv8-M építészet) áll. DS-MDK tartalmazza az Eclipse-alapú DS-5 IDE-t,
hibakeresőt és többprocesszoros támogatása alapján 32-bites Cortex-A processzoros vagy
32-bites Cortex-A és Cortex-M processzoros hibrid rendszereket is.
Az MDK két ARM C / C ++ fordítóprogramot tartalmaz, amelyek az optimális
kódmérethez és teljesítményhez szabottak:
ARM Compiler 5-ös verzió C / C ++ fordító: kapható TÜV minősítési készlettel,
biztonsági alkalmazásokhoz, valamint a hosszú távú támogatáshoz és
karbantartáshoz.
21
ARM Compiler 6-os verzió alapja az innovatív LLVM technológia és támogatja
a legújabb C nyelvi szabványokat (C ++ 11 és C ++ 14). Ez biztosítja a legkisebb
és a legnagyobb teljesítményt Cortex-M célokra.
Szoftver csomagok
Szoftver csomagok tartalmazzák az eszköz támogatásokat, CMSIS könyvtárakat, köztes
rétegeket, támogatott kód sablonokat, és példa projekteket. Úgy hozhatunk létre bármikor
MDK-Core vagy DS-MDK projektet, hogy új eszköz támogatása és köztes réteg
frissítések nem szükségesek. Az IDE kezeli a mellékelt szoftver komponenseket, hogy
rendelkezésre álljanak a projekt építőkövei.
Az MDK-Lite kód mérete korlátozva van 32 Kbyte-ra. Ez a termék a kis
projektekre, és az oktatási piacra van szánva.
Az MDK-Essential támogatja a Cortex-M processzor alapú mikrokontrollert akár
Cortex-M7 és Cortex-M23 és M33 programozási célokra.
MDK-Plus hozzá tud rendelni köztes réteg könyvtárakat (IPv4 hálózat, USB
eszköz, fájl rendszer, és a grafika) a projekthez. Ez támogatja az ARM Cortex-M,
a kiválasztott ARM Cortex-R, ARM7, és ARM9 processzor alapú
mikrokontrollereket.
MDK-Professional tartalmazza az MDK-Plus összes jellemzőjét. Ezen kívül
támogatja az IPv4 / IPv6 dual-stack hálózatot, az eszközök internetes kapcsolatát,
és egy USB Host stack-et.
CMSIS
CMSIS (Cortex mikrokontroller szoftver interfész szabvány) lehetővé teszi a
következetes és egyszerű szoftver interfészek tervezését, egyszerűsítve a szoftver
újrafelhasználását. A CMSIS szoros együttműködést határoz meg a különböző
szoftvergyártóknak, olyan közös megközelítést az interfész perifériákhoz, valós idejű
operációs rendszerekhez és köztes réteg alkatrészekhez, hogy a felhasználó egyszerűen
és gyorsan tudjon fejleszteni.
22
A CMSIS alkalmazás szoftver összetevői:
CMSIS-CORE: Meghatározza az API (alkalmazás programozási interfész)
Cortex-M processzor magot és a perifériákat, valamint tartalmaz egy egységes
kódot a rendszer indításakor.
CMSIS-DSP: Ez a könyvtár tartalmazza a digitális jelfeldolgozást (DSP), több
mint 60 funkciót, különböző adattípusokat: fix-pont (tört q7, q15, q31) és
egyszeres pontosságú lebegőpontos (32-bit).
CMSIS-RTOS RTX: Olyan szabványosított valós idejű operációs rendszer,
amely lehetővé teszi szoftver sablonok, köztes rétegek, könyvtárak és más
alkatrészek használatát, amelyek a fejlesztés egészét támogatják RTOS
rendszereken.
CMSIS-Driver jellemzője, hogy általános és független egy adott RTOS-ra, így
az újrahasznosíthatóság széles skáláját támogatja mikrokontroller eszközökre.
Szoftver komponensek
Fordítóprogram
A fordító szoftver komponens lehetővé teszi, hogy az I / O funkciók a szabványos C run-
time könyvtárból legyenek meghatározva. Az alkalmazás kód gyakran szabványos I / O
könyvtári funkciók, mint például a printf (), scanf () vagy fgetc (), illetve input / output
műveletek elvégzésére szolgál.
Ezeknek a függvényeknek a szerkezete a standard ARM Compiler C run-time
könyvtárban:
23
13. ábra – Fordítási sorrend
A MicroLib, az ARM Compiler C run-time könyvtárral kapcsolódik a hardveren keresztül
az alacsony szintű funkciókhoz. A MicroLib csökkentett sorrendet valósít meg a magas
szintű funkciókkal kezdve.
Hibakereső alkalmazások
Az ARM CoreSight™ technológia integrált ARM Cortex-M processzor alapú
eszközöknek nyújt hatékony hibakeresést és nyomkövetési képességet. Lehetővé teszi a
start és stop programokat, töréspontot, memória-hozzáférést, és a Flash programozást.
Különböző funkciók állnak rendelkezésre a legtöbb eszközön, mint a mintavétel, az
adatok nyomon követése, beleértve a program számlálók megszakítások és műszerek
nyomon követése. A hibakereső alkalmazások az ETM, az ETB vagy az MTB
használatával az utasítások nyomon követését teszik lehetővé a program végrehajtásának
elemzéséhez.
Debugger kapcsolat
MDK tartalmazza μVision Debugger-t, amely összeköti a különböző hibakereső/ nyomon
követő adaptereket és lehetővé teszi a program a Flash memóriába való tárolását.
Támogatja a hagyományos funkciókat, mint az egyszerű és összetett töréspont, nézni az
24
ablakokat, és a végrehajtás ellenőrzést. Segítségével nyomon követhetőek további
funkciók, mint esemény / kivétel figyelők, logikai analizátor, végrehajtás profil, és a kód
lefedettség támogatás.
CMSIS alapú DAP USB JTAG / SWD hibakereső felületek jellemzően kínálnak integrált
hibakeresőket. MDK támogatja a különböző tulajdonosi felületekhez hasonló
technológiai fájlokat is. MDK-hoz csatolhatóak harmadik féltől származó hibakereső
programok, mint például Segger J-Link vagy J-Trace.
Middleware (köztes réteg)
A mai mikrokontroller eszközök széles skálája kínál különböző kommunikációs
perifériákat, hogy megfeleljen számos beágyazott tervezési követelményeknek. A
Middleware elengedhetetlen ahhoz, hogy hatékonyan használjuk fel ezeket komplex on-
chip perifériákat.
Az MDK-Middleware szoftver csomag tartalmaz jogdíjmentes köztes réteg elemeket
(TCP / IP hálózati, USB Host és USB Device kommunikáció, fájlrendszer az adatok
tárolására, és a grafikus felhasználói felületek).
Hálózati összetevő
A Hálózati összetevő a TCP / IP kommunikációs protokollt követi, és tartalmazza a
szolgáltatás támogatást és a fizikai kommunikációs interfészeket. Támogatja az IPv4 és
IPv6 kapcsolatokat is.
25
14. ábra – Hálózati összetevők
A különböző szolgáltatásokat nyújtó programsablonokat közös hálózati feladatokkal
látnak el.
Kompakt webszerver tárolja a weboldalakat a ROM-ban, mivel a Teljes
webszerver fájlrendszer az elemek adattárolására szolgál. Mindkét szerver
támogatja a dinamikus oldal tartalmának felhasználását CGI script, AJAX, és
SOAP technológiákkal.
FTP vagy TFTP támogatja a fájlátvitelt. Az FTP teljes körű fájlkezelő parancs, a
TFTP indító terhelést tud adni távoli eszközökre. Mindkettő kapható kliensként
és szerverként.
Telnet szerver egy parancssori felület IP hálózaton keresztül.
SNMP Agent jelenti az eszköz információit a hálózat vezetőjének (Simple
Network Management Protocol).
DNS-kliens feloldja a domain neveknek megfelelő IP-címet. Így egy szabadon
konfigurálható névszerverként jelenik meg.
SNTP kliens szinkronizálja az órajeleket, és lehetővé teszi a készüléknek, hogy
pontos órajelet biztosítson az adathálózatnak.
SMTP kliens elküldi az állapotát e-mailekben a Simple Mail Transfer Protocol
segítségével.
26
Minden szolgáltatás a kommunikációs csatlakozóponthoz támaszkodik, amely lehet akár
TCP (kapcsolat-orientált, megbízható teljes duplex protokoll), UDP (tranzakció-orientált
protokoll), vagy a BSD (Berkeley csatlakozási interfész).
A fizikai interfész lehet akár Ethernet (LAN kapcsolat) vagy soros kapcsolat, mint a
PPP (a közvetlen kapcsolat két eszköz között), vagy SLIP (Internet Protocol soros
kapcsolaton).
Az interfésztől függően a hálózati összetevő egy olyan CMSIS-illesztőprogramra
támaszkodik, amely jelen van az eszköz-specifikus hardverfelület biztosításához. Az
Ethernethez Ethernet MAC és PHY meghajtó szükséges, míg a soros kapcsolatok (PPP
/ SLIP) UART vagy Modem driver-t igényelnek.
Fájlrendszer-komponens
A fájlrendszer-komponensek lehetővé teszik a beágyazott alkalmazások létrehozását,
mentését, olvasását és módosítását a fájlokat tároló eszközöknek (RAM, NAND vagy
NOR flash memória kártyák, USB pendrive).
15. ábra – Fájlrendszer összetevők
Minden tároló eszközre, mint Drive hivatkozunk. A fájl rendszer komponensek
támogatják az azonos típusú meghajtókat. Így tudunk egynél több memóriakártyát
használni.
27
A Fájlrendszer mag szál-biztos, támogatja az egyidejű hozzáférést több meghajtónak,
és használja a FAT-rendszert. A rendelkezésre álló két fájl neve lehet: rövid 8.3 fájlnév
és a hosszú fájlnév legfeljebb 255 karakter
A fizikai adathordozók, például a NAND és a NOR Flash chipek, illetve az MCI vagy
SPI használatával rendelkező memóriakártyák eléréséhez a CMSIS-Driver-nek jelen kell
lennie.
USB komponens
Az USB-eszköz komponens valósítja meg az USB Host és Device funkcionalitást és
szabványos eszközmeghajtó osztályokat, amelyek elérhetők a legtöbb számítógépes
rendszeren, elkerülve host driver fejlesztését.
16. ábra - USB komponensek
Emberi interfész eszköz (HID) osztály hajtja végre a billentyűzet, joystick vagy
egér utasításait. Azonban HID is használható egyszerű adatcserére.
28
Tömeges tárolási osztály (MSC) a fájlcserélésre használható (például pendrive).
Kommunikációs eszköz osztály (CDC) létre hoz egy virtuális soros portot (az
ACM al-osztály segítségével), vagy egy hálózati kapcsolatot (a NCM al-osztály
segítségével).
Audió eszköz osztály (ADC) végzi a valós idejű audió közvetítést.
Egyéni eszköz osztály új vagy nem támogatott USB osztályok használatáért felel.
Grafikus összetevő
A grafikus komponensek egy átfogó könyvtár, amely mindent meg kell, hogy tudjon
építeni a grafikus felhasználói felületekre.
17. ábra – Grafikus összetevők
Alapfunkciók:
Ablakkezelő képes bármennyi ablakra figyelni.
29
Bármikor használható betűtípusok és ablak elemek, az úgynevezett
Vezérlőelemek, és Párbeszéd ablakok.
Bittérkép támogatás, a JPEG és más közös formátumok kezelése.
Élsimítás a sima képért kijelzőn.
Rugalmas, konfigurálható kijelző és felhasználói interfész paraméterek.
A felhasználói felület segítségével lehet szabályozni beviteli eszközöket (érintő
képernyő vagy Joystick).
A VNC szerver lehetővé teszi a távoli irányítását a grafikus felhasználói felületeknek
TCP / IP protokoll a hálózati komponens segítségével.
Keil µVision 5 projekt létrehozása
Új projekt létrehozásának lépései az STM32F4-Discovery Board
számára
1. A μVision5 program elindítása után a menüsorból kiválasztottam a Project New
μVision project parancsot. A New project ablakban megkerestem azt a mappát, amelybe
a projektet létre szerettem volna hozni, beírtam a projekt nevét, és a Mentés gombra
kattintottam.
2. A Select Device for Target ablakban, az STM32F407VG mikrokontrollert kellett
kiválasztanom.
3. A Manage Run-Time Environment ablakban hozzáadtam a mikrokontroller fejlécét és
indítófájljait a projekthez a CMSIS CORE és a Device Startup opcióval. (CMSIS
= Cortex Microcontroller Software Interface Standard)
A programok összeállított kódja az eszköz indítási programjának a program memóriájába
kerül. Az indítási program szükséges a stack-ek, órajelek és más rendszererőforrások
inicializálásához.
4. A μVision5 Project ablakában hozzáadtam a forrásfájlokat a projekthez:
Jobb egérgomb a Source Group 1-re, Add New Item to Group ’Source Group
1’, majd a fájltípus kiválasztása (C fájl (.c) vagy Asm fájl (.s)) és a fájl neve.
30
5. A forrásfájlok létrehozása és mentése után a ’build’ gombra kell kattintani, szükség
esetén szintaktikai hibák kijavításával, majd a fájlok egyetlen letölthető programba való
kapcsolásával. Ezt kétféleképpen lehet elvégezni:
A Build panel ikonra kattintva a projektpanel felett, vagy a menüsorban
kiválasztva a Project Build Project parancsot (ez csak a megváltozott
forrásfájlokat fordítja újra).
A projektpanel feletti Rebuild ikonra kattintva, vagy a menüsorban kiválasztva a
Project Rebuild all target files parancsot
6. Számos lehetőség van a μVision5 hibakeresési eszközökkel történő tesztelésére és
hibakeresésére.
Be kell tölteni a programot a szimulátorba a teszteléshez.
Le kell tölteni a programot a Discovery kártyára, be kell programozni a
mikrokontroller beépített flash memóriájába, és futtatni a programot a
célhardverben.
Le kell tölteni a programot a Discovery kártyára, a mikrocontroller on-chip RAM-
jába kell helyezni, és futtatni a programot a célhardverben.
7. A lefordított program letöltéséhez a szimulált mikrokontroller memóriájába,
kezdeményezni kell a hibakeresési munkamenetet a szimulátorral, ehhez be kell állítani
a Debug beállításokat az alábbiak szerint.
A menüsorból Project Options for Target’Target 1’.
Debug lapot kiválasztva, és az Use Simulator gombot kipipálva.
8. A lefordított program letöltéséhez a Discovery kártyára:
A menüsorból Project Option for Target ’Target 1’.
Ki kell választani a Debug fület, bejelölni az Use gombot és az ST-Link
Debugger lehetőséget megkeresni.
Az ST-Link Debugger mező melletti Settings elemre kattintva tudjunk
létrehozni a Cortex-M Target Driver Setup ablakot, majd ott a Port SW
(Single-Wire debug) lehetőséget kell kiválasztani a Debug Adapter alatt.
31
A Cortex-M Target Driver Setup ablak Flash Download fülére kattintva a
Programming Algorithm alatt az STM32F4xx Flash parancsot kell
kiválasztani.
32
IV. A Socket fogalma, Modbus TCP program folyamtábrái
Az interneten valamely kétirányú IPC hálózati folyam végpontja az Internet socket. Ezt
a kifejezést az OS által biztosított API megnevezésére használja a TCP/IP protokoll
készlet. Az érkező adatcsomagot a megfelelő alkalmazáshoz lehet kézbesíteni vele helyi
vagy távoli IP-címek és portok kombinációjának segítségével. A socket címe egy IP-cím
(a PC helye) és egy, az alkalmazáshoz köthető portszám.
Az operációs rendszer, illetve a socketet létrehozó alkalmazás egyedi azonosító számmal
hivatkozik a socketre, ez a socket azonosítója vagy száma.
Többfajta internetes socket létezik:
Datagram socketek, vagy kapcsolat nélküli socketek, ezek UDP-t (User Datagram
Protocol) használnak.
Stream socketek, vagy kapcsolat-orientált socketek, ezek TCP (Transmission
Control Protocol) vagy SCTP (Stream Control Transmission Protocol) protokollt
használnak.
Raw socketek, jellemzően routerekben és más hálózati eszközökben találhatók.
Itt a szállítási réteget kihagyják, és a csomagok fejlécét nem vágják le,
hozzáférhető marad az alkalmazásnak.
Socketek hálózati eszközökben
A socket koncepciója alapvetően az internetprotokoll szállítási rétegében jelenik meg. A
hálózati eszközök, pl. routerek és más hálózati kapcsolók nem kell, hogy implementálják
a szállítási réteget, mivel a switchek az adatkapcsolati rétegben, a routerek a hálózati
rétegben működnek. Az állapottartó tűzfalak, hálózati címfordítók és proxyk azonban
számon tartják az aktív socketpárokat.
33
Modbus TCP program folyamatábrája
18. ábra - Modbus TCP program folyamatábrája
34
Az LCD és a LED-ek inicializálása
1. függvény: STM324xG-EVAL LCD inicializálása.
2. függvény: Az LCD kijelző törlése.
3. függvény: Az LCD háttér színének beállítása.
4. függvény: Az LCD kijelző szövegének szín beállítása
5. függvény: Üzenet megjelenítés a kijelzőn
19. ábra - LCD konfigurálása
35
Ethernet beállítása
1. függvény: Konfigurálja az Ethernet pin-ek GPIO portjait.
2. függvény: NVIC konfigurálását végzi Ethernethez.
3. függvény: Az Ethernet MAC/DMA konfigurálása
1. ciklus: Az Ethernet inicializálásának státusz ellenőrzése
20. ábra - Az Ethernet konfigurálása
36
LwIP protokoll beállítása
1. lépés: Szükséges struktúrák létrehozása.
2. lépés: TCP/IP stack szál létrehozása.
3. lépés: IP cím beállítása és kijelzése az STM32_evalboard LCD kijelzőn.
4. lépés: Az alapértelmezett hálózati interfész regisztrálása.
21. ábra - LwIP protokoll beállítása
37
Http socket server inicializálása
1. lépés: TCP socket létrehozása.
2. lépés: A 80-as porthoz csatlakozik bármely interfészen.
3. lépés: csatlakozás a socket-hez.
4. lépés: Bejövő kapcsolatok figyelésének beállítása.
5. lépés: inicializálja a HTTP szervert.
22. ábra - Http socket szerver inicializálása
38
V. Modbus Master TCP/IP szimulátor PC-re
Elérhető Modbus Master szimulátor programok:
Radzio Modbus Master Simulator
Modbus Poll
QModMaster
Modbus Poll
A Modbus Poll egy Modbus Master szimulátor, amelyet elsősorban a Modbus Slave
eszközök fejlesztőinek illetve azoknak érdemes használni, akik tesztelni és szimulálni
akarják a Modbus protokollt. A több dokumentumkezelő felületen egyszerre több
Modbus-slave és / vagy adatterület figyelhető meg. Minden ablakhoz egyszerűen meg
kell adni a Modbus slave ID- t, a funkciót, a címet, a méretet és a lekérdezés sebességét.
Bármelyik ablakból olvashat és írhat regisztereket és tekercseket. Ha egyetlen regisztert
szeretnénk módosítani, egyszerűen duplán kell kattintani az értékre. Többféle
adatformátum létezik, mint pl. float, double és long.
Támogatott protokoll variációk:
Modbus RTU
Modbus ASCII
Modbus TCP / IP
Modbus RTU TCP / IP protokollon keresztül
Modbus ASCII TCP / IP protokollon keresztül
Modbus UDP / IP
Modbus RTU UDP / IP protokollon keresztül
Modbus ASCII UDP / IP protokollon keresztül
39
Műszaki adatok és jellemzők:
Az OLE Automation a Macro language VBA használatával egyszerűen kezelheti
az Excel-et
Legfeljebb 125 regiszter olvasása / írása
Legfeljebb 2000 bemenet / tekercs olvasása / írása
Test Center (Saját tesztszövegek összeállítása)
Nyomtatás és nyomtatási előnézet
Soros adatforgalom felügyelete
Adatfájl naplózása
Az adatok naplózása közvetlenül az Excel-be
Kontextus érzékeny segítség
12 Adatformátum, pl. float, double, stb.
Állítható címtartomány (0 vagy 1)
Betűtípus állítás és kiválasztás
Feltételes színválasztás
Üzenetszórás (slave ID 0)
Az RS-485 átalakítók egyszerű vezérlése RTS- váltással
Támogatott Modbus funkciók:
01: A tekercs állapotának megtekintése
02: A bemeneti állapot olvasása
03: Nyilvántartás, nyilvántartások olvasása
04: A bemeneti regiszterek olvasása
05: Egy tekercs kényszerítése
06: Előre beállított regiszter
15: Több tekercs kényszerítése
16: Több előre beállított regiszter
17: A slave ID jelentése
22: Maszkregiszter írása
23: Regiszterek olvasása / írása
40
Modbus Poll kezelése
A Modbus Poll több ablakos felhasználói felületet használ. Ez azt jelenti, hogy több
ablakot is megnyithat, amelyek különböző adatterületeket vagy adatokat szolgáltatnak a
különböző Slave eszközökből egyidejűleg. Bármilyen szöveget írhat az Alias cellákba.
Az olvasási / írási definíciók megváltoztatása
Az ablak olvasási / írási beállításainak megváltoztatásához nyomja meg az F8 billentyűt
vagy válassza a "Read / Write Definition" beállítást a Setup menüből. Itt adhatja meg,
hogy mely adatokat jelenítse meg az ablakban.
Kapcsolat létrehozása
5 különböző csatlakozási típus áll rendelkezésre, de mindössze 2 standard Modbus
csatlakozás:
Soros port
Modbus TCP / IP
Soros kapcsolat esetén szükség lehet USB- RS485 vagy RS232-RS485 átalakítóra.
Modbus Slave
A Modbus Slave program akár 32 slave eszköz szimulálásához is alkalmas. A szoftver
elindításával tesztelni tudjuk az elkészített programot, mielőtt azt slave eszközre
töltenénk. Ugyanaz a felhasználói felülete, mint a Modbus Poll-nak, ebből kifolyólag a
kezelése és tulajdonságai is hasonlóak.
Támogatott protokollváltozatok:
Modbus RTU
Modbus ASCII
Modbus TCP / IP
Modbus RTU TCP / IP protokollon keresztül
41
Modbus UDP / IP
Modbus RTU UDP / IP protokollon keresztül
MODBUS Slave Műszaki adatok és jellemzők:
Az OLE Automation a Macro language VBA használatával egyszerűen kezelheti
az Excel-et
Nyomtatás és nyomtatási előnézet lehetséges
Soros adatforgalom figyelése
Kontextus érzékeny segítség
12 adatformátum, pl. float, double, stb.
Állítható címtartomány (0 vagy 1)
Betűtípus és színválasztás
Üzenetszórás (slave ID 0)
Az RS-485 átalakítók egyszerű vezérlése RTS-váltással
Támogatott Modbus funkciók:
01: A tekercs állapotának megtekintése
02: A bemeneti állapot olvasása
03: Nyilvántartás, nyilvántartások olvasása
04: A bemeneti regiszterek olvasása
05: Egy tekercs kényszerítése
06: Előre beállított regiszter
15: Több tekercs kényszerítése
16: Több előre beállított regiszter
22: Maszkregiszter írása
23: Olvasás / írás regiszterek
42
VI. A program tesztelésének első fázisa (PC-PC kapcsolat
TCP/IP)
A Modbus Poll program tesztelésének első fázisában két notebook Ethernet közegen
keresztüli kommunikációját kellett szimulálnom a program biztonságos működésének
megismerése érdekében.
Felhasznált eszközök:
Lenovo Z50 laptop (Master)
Dell vostro 2521 laptop (Slave)
Felhasznált szoftverek:
Modbus Poll (Modbus Master szimulátor)
Modbus Slave (Modbus Slave szimulátor)
Megvalósítás
23. ábra - Tesztelés első fázisa
Ahhoz, hogy a Master / Slave elv megvalósuljon, az egyik számítógépre (Master) a
Modbus Poll szoftvert, viszont a másik eszközre (Slave) a Modbus Slave programot
kellett feltelepíteni. Ezt követően egy egyenes kötésű UTP (Árnyékolatlan csavart érpár)
kábellel kötöttem össze a számítógépeket. Az IP címek megadása után a kapcsolat
létrehozása volt a feladatom. A Master gépen a Modbus Poll, a Slave gépen pedig a
43
Modbus Slave programot kellett elindítanom majd a Modbus Poll programmal 3 lépésben
létre hoztam a kapcsolatot:
1. lépés: A menüsorból ki kellett választanom a Connection fület, majd a
Connect menüt.
2. lépés: A Connection Setup ablakban a legördülő menüből ki kellett
választanom a Modbus TCP/IP opciót.
3. lépés: Az IP Address or Node Name mezőbe a Slave IP címét beírva már kész
is voltam a kapcsolat létrehozásával.
A tesztelés kiértékelése
A program az elvárásoknak megfelelően kapcsolódott. A kapcsolat létrehozása utána
tesztelési szempontból pár értéket megváltoztattam mind a Slave mind a Master
eszközön. Az átvitel hibátlanul működött.
44
VII. Második fázis: Modbus ASCII kapcsolat tesztelése
Célszerűnek tűnt számomra, hogy a végleges cél eléréséhez vezető utat –a könnyebb
tesztelhetőség érdekében- lépésekre bontottam.
Első lépésként a következő összeállításban próbáltam ki a PC és az STM32F4DIS
rendszer közötti kapcsolatot.
24. ábra – Tesztelés második fázisa
A tesztelő program fő funkciója az volt, hogy az RS232 vonalon érkező karaktereket a
grafikus kijelzőn megjelenítse a rendszer. Ennek megfelelően az STM32F4DIS kártya
programja a következő folyamatábra szerint alakult.
45
25. ábra – Grafikus kijelzőn megjelenítés
A következő lépésként a Modbus ASCII protokoll szerinti táviratozást próbáltam ki az
előző lépésben már ismertetett hardver konfigurációban, de itt már a Modbus Master
szimulátor programot indítottam el a PC-n, ez adta ma megfelelő táviratokat az USB által
biztosított virtuális soros vonalon. Természetesen az STM32F4DIS programja is változott
az előző ponthoz képest, ennek a programnak a folyamatábrája a következő ábrán látható.
46
26. ábra –Táviratozás folyamatábrája
47
Összegzés
A projekt, amit bemutattam egy komplex feladat volt számomra, amelyhez Dr. Raffay
Csaba adjunktus és az Automatizálási és Infokommunikációs Intézet rengeteg szellemi
és fizikai segítséget nyújtott.
A szakdolgozatom első fejezetében a Modbus protokoll részletes bemutatásával, elvi
működésével, az adatváltás fajtáival, a különböző szabványokkal való összerendelésével
foglalkoztam. A fejezet tartalma kitér a Modbus TCP/IP protokoll által létrehozható
kapcsolatra.
Továbbiakban kitértem a megvalósításhoz szükséges STM32 hardver felépítésére, a
különböző elemeinek tulajdonságaira. Az Automatizálási és Infokommunikációs Intézet
által biztosított eszközök illetve a hozzájuk tartozó kezelési útmutatók segítségével
megismerhettem egy jól működő félvezetőkre specializálódott gyártót és az egyik
legnépszerűbb terméküket.
A 3. fejezetben a Keil MDK fejlesztőkörnyezettel ismerkedhettem meg, amely olyan
összetett és széles körben alkalmazott szoftverfejlesztő program, amelyet a jövőben mind
a további tanulmányaim, mind a szakmai munkámban is hasznosítani tudok majd.
Az ezt követő pontban magával a C programmal foglalkoztam, az egyes részek
funkcióinak és felépítéseinek bemutatásával.
A folytatásban ismertettem a kipróbáláshoz felhasznált PC-s program, a Modbus Poll
tulajdonságait, és használatának leírását. A szimuláció bizonyos fázisaiban szükséges volt
egy másik szoftver is, amelynek bemutatása is ebben a fejezetben található.
A 6. fejezet tartalmazza az első fázisát a program kipróbálásának, amely során két PC
közötti kapcsolat létrehozása és a Master / Slave elv érvényesítése volt a feladatom. Ez a
rész tartalmazza a szükséges hardveres és szoftveres komponenseket, melyek a teszt
elvégzéséhez szükségesek voltak.
Az utolsó pontba a második tesztfázis leírása kerül, ahol is Modbus ASCII kapcsolattal
hoztam létre kommunikációt a PC és az STM32F4DIS hardver között. Ebben a fázisban
teszteltem először az LCD kijelzőt is, az RS232 vonalon kommunikálva a grafikus
felülettel.
48
Az utolsó tesztfázis a PC és az STM32F4DIS kártya TCP kapcsolata volt, viszont sok
probléma akadt a kipróbálásnál, valószínűleg a hardver Ethernet kapcsolódásának
bizonytalansága miatt. Végül csak egy ¾-ig működő változatot sikerült létrehozni.
A problémák ellenére úgy gondolom, hogy nagyon sok új kihívással szembesültem és
rengeteget tanultam a dolgozat elkészítése során.
49
Idegen nyelvű összegzés
The project I presented was a complex task for me. Dr. Csaba Raffay and the Institute of
Automation and Infocommunication provided the intellectual and physical assistance in
the task.
The first chapter of my dissertation contains a detailed description of the Modbus
protocol, its principle function, the types of data exchange, the different standards.
In the second chapter of my dissertation I have also outlined the construction of the
STM32 hardware required for implementation, the properties of the various elements.
Using the tools provided by the Institute of Automation and Infocommunications I could
get to know a well-functioning semiconductor manufacturer and one of their most popular
products.
In Chapter 3, I was introduced to the Keil MDK development environment, a complex
and widely used software development program that I will be able to utilize in studies and
my future professional work in the future.
In the sequel, I described the features of the PC programs used, the Modbus Poll and the
Modbus Slave, and a description of their use.
In the chapters that followed, I tested software and hardware through various
communication interfaces. I used the Modbus TCP and ASCII protocols and the
developer kits that the institute provide me.
50
Irodalom jegyzék
[1] DR. AJTONYI ISTVÁN
PLC és SCADA-HMI rendszerek II., ill. IPARI KOMMUNIKÁCIÓS
RENDSZEREK II.
AUT-INFO Kft., Miskolc, 2008.
[2] STMICROELECTRONICS
UM1472 User manual
Discovery kit with STM32F407VG MCU
2016.
[3] EMBEST TECHNOLOGY CO.
STM32F4DIS-BB User Manual
2014.
[4] ARM KEIL MICROCONTROLLER TOOLS
Getting started with MDK.
2014.
[5] MODBUS TOOLS
Modbus Poll, Modbus Slave
2017.
51
Ábrajegyzék
1. ábra: Általános Modbus üzenet keret ....................................................................... 5
2. ábra: Modbus által kezelhető objektumcsomagok .................................................. 5
3. ábra: ASCII üzenet keret ........................................................................................... 6
4. ábra: RTU üzenet keret .............................................................................................. 7
5. ábra: RS-232 hálózat smart távadókkal ................................................................... 7
6. ábra: RS-485 hálózat smart távadókkal ................................................................... 8
7. ábra: Modbus TCP/IP üzenet keret ........................................................................ 10
8. ábra: Alkatrész összeállítás ...................................................................................... 11
9. ábra: STM32F4DISCOVERY kártya ..................................................................... 12
10. ábra: STM32F4DIS-BB alaplap ............................................................................ 13
11. ábra: DM-LCD35RT LCD modul ......................................................................... 18
12. ábra: MDK összesítő táblázat ................................................................................ 20
13. ábra: Fordítási sorrend .......................................................................................... 23
14. ábra: Hálózati összetevők ....................................................................................... 25
15. ábra: Fájlrendszer összetevők ............................................................................... 26
16. ábra: USB komponensek ........................................................................................ 27
17. ábra: Grafikus összetevők ...................................................................................... 28
18. ábra: Modbus TCP program folyamatábrája...................................................... 33
19. ábra: LCD konfigurálása ....................................................................................... 34
20. ábra: Az Ethernet konfigurálása ........................................................................... 35
21. ábra: LwIP protokoll beállítása ............................................................................. 36
22. ábra: Http socket szerver inicializálása ............................................................... 37
23. ábra: Tesztelés első fázisa ....................................................................................... 42
24. ábra: Tesztelés második fázisa ............................................................................... 44
25. ábra: Grafikus kijelzőn megjelenítés .................................................................... 45
26. ábra: Táviratozás folyamatábrája ........................................................................ 46