modbus hmi szoftver fejlesztése kártyához

51
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.

Upload: others

Post on 08-Apr-2022

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modbus HMI szoftver fejlesztése kártyához

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.

Page 2: Modbus HMI szoftver fejlesztése kártyához

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

Page 3: Modbus HMI szoftver fejlesztése kártyához

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.

Page 4: Modbus HMI szoftver fejlesztése kártyához

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.

Page 5: Modbus HMI szoftver fejlesztése kártyához

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.

Page 6: Modbus HMI szoftver fejlesztése kártyához

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

Page 7: Modbus HMI szoftver fejlesztése kártyához

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

Page 8: Modbus HMI szoftver fejlesztése kártyához

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

Page 9: Modbus HMI szoftver fejlesztése kártyához

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.

Page 10: Modbus HMI szoftver fejlesztése kártyához

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.

Page 11: Modbus HMI szoftver fejlesztése kártyához

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ó

Page 12: Modbus HMI szoftver fejlesztése kártyához

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

Page 13: Modbus HMI szoftver fejlesztése kártyához

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

Page 14: Modbus HMI szoftver fejlesztése kártyához

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

Page 15: Modbus HMI szoftver fejlesztése kártyához

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ő

Page 16: Modbus HMI szoftver fejlesztése kártyához

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ő

Page 17: Modbus HMI szoftver fejlesztése kártyához

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.

Page 18: Modbus HMI szoftver fejlesztése kártyához

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

Page 19: Modbus HMI szoftver fejlesztése kártyához

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.

Page 20: Modbus HMI szoftver fejlesztése kártyához

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.

Page 21: Modbus HMI szoftver fejlesztése kártyához

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.

Page 22: Modbus HMI szoftver fejlesztése kártyához

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:

Page 23: Modbus HMI szoftver fejlesztése kártyához

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

Page 24: Modbus HMI szoftver fejlesztése kártyához

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.

Page 25: Modbus HMI szoftver fejlesztése kártyához

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.

Page 26: Modbus HMI szoftver fejlesztése kártyához

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.

Page 27: Modbus HMI szoftver fejlesztése kártyához

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.

Page 28: Modbus HMI szoftver fejlesztése kártyához

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.

Page 29: Modbus HMI szoftver fejlesztése kártyához

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.

Page 30: Modbus HMI szoftver fejlesztése kártyához

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.

Page 31: Modbus HMI szoftver fejlesztése kártyához

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.

Page 32: Modbus HMI szoftver fejlesztése kártyához

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.

Page 33: Modbus HMI szoftver fejlesztése kártyához

33

Modbus TCP program folyamatábrája

18. ábra - Modbus TCP program folyamatábrája

Page 34: Modbus HMI szoftver fejlesztése kártyához

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

Page 35: Modbus HMI szoftver fejlesztése kártyához

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

Page 36: Modbus HMI szoftver fejlesztése kártyához

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

Page 37: Modbus HMI szoftver fejlesztése kártyához

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

Page 38: Modbus HMI szoftver fejlesztése kártyához

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

Page 39: Modbus HMI szoftver fejlesztése kártyához

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

Page 40: Modbus HMI szoftver fejlesztése kártyához

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

Page 41: Modbus HMI szoftver fejlesztése kártyához

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

Page 42: Modbus HMI szoftver fejlesztése kártyához

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

Page 43: Modbus HMI szoftver fejlesztése kártyához

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.

Page 44: Modbus HMI szoftver fejlesztése kártyához

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.

Page 45: Modbus HMI szoftver fejlesztése kártyához

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ó.

Page 46: Modbus HMI szoftver fejlesztése kártyához

46

26. ábra –Táviratozás folyamatábrája

Page 47: Modbus HMI szoftver fejlesztése kártyához

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.

Page 48: Modbus HMI szoftver fejlesztése kártyához

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.

Page 49: Modbus HMI szoftver fejlesztése kártyához

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.

Page 50: Modbus HMI szoftver fejlesztése kártyához

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.

Page 51: Modbus HMI szoftver fejlesztése kártyához

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