Get Adobe Flash player

Barta Sándor
CEO Advanced Motion Controls
AMC Europe Ltd.

Korábbi cikkeinkben (2009., 2011.) áttekintettük a PLCopen történetét, a PLCopen-konform programozási rendszereket, említést tettünk azok néhány – az ipari gyakorlatban már használatban lévõ – megvalósításáról, ezen alkalmazás-fejlesztõ rendszerek további lehetõségeirõl, valamint szót ejtettünk a PLCopen keretében idõközben megjelent újabb specifikációk lehetséges felhasználásáról.
Jelen cikkünkben tovább elemezzük az ipari automatika területén használatos programozási rendszereket, megvizsgáljuk azok kialakulásának történetét, elõnyeiket, hátrányaikat, majd javaslatot teszünk egy jövõbe mutató, univerzális rendszer alkalmazására.

In the previous articles we overviewed the story of PLCopen and the conforming programming systems, have explained some implementations – that are already applied in industrial practice –, were discussing further possibilities of these application development systems, as well as possible applications of some newly issued PLCopen specifications, released in the meantime.
In the current article we’ll follow on with analyzing the programming systems used in the fields of industrial automation, will inspect the history of their evolution as well as the pros and cons of these programming procedures then propose a foreseeing solution about a progressive, universal application.

Az ipari automatizálás területén egy korszerû mozgás- vagy automatikai vezérlõnek gyors és kiszámítható választ kell szolgáltatnia az ellenõrzés alatt álló fizikai folyamatra. A leggyakrabban alkalmazott ilyen eszköz a Programozható Logikai Vezérlõ (PLC), melyek a fenti feladatot rendszerint a program ciklikus futtatásával valósítják meg.

A PLC minden lefutott ciklusban lekérdezi a bemenetek állapotát, számításokat végez (aritmetikai-, logikai-) és beállítja a kimeneti állapotokat.

PLC-programozási eljárások

Az elterjedt PLC-programozási rendszerek az IEC 61131-3 szabvány szerint épülnek fel. A piac meghatározó szereplõi – részben különbözõ iparágak képviselõi – valamennyien megpróbálták saját programozási nyelvüket szabványosítani. A cégek nyomására létrejött kompromisszum eredményeképpen számos programozási nyelv (LD, IL, SFC, ST és FBD) bekerült az IEC61131-3 szabványba, így a jelenlegi kínálat – bár mindegyik „szabványos” eljárás – meglehetõsen szerteágazó, legalábbis ami azok programozását illeti.

Kifinomult alkalmazások megvalósítása azonban a hagyományos programnyelvekkel egyre nehézkesebbé válik, továbbá modern automatizálási megoldásoknál ma már elvárás a PLC-tipusú determinisztikus ipari vezérlések és a rugalmasan konfigurálható PC-alapú rendszerek vállalati integrációja.

Példaként említhetõ, hogy egy PackML struktúrájú (www.omac.org) állapotgép felépítése létradiagram (LD: Ladder Diagram) vagy utasításlista (IL: Instruction List) nyelveken egyszerûen reménytelen.

A szekvenciális folyamatábra (SFC: Sequential Flow Chart) mûködõképes, de egy komplex állapotgép-diagram könnyen a vezetékek útvesztõjébe tud fordulni.

A strukturált szöveg (ST: Structured Text) rugalmas, de egy szöveg-alapú programozási nyelv esetében indokoltabbnak látszik egy világszerte elterjedt, hatékony, általános célú programozási nyelv, pl. a C++ alkalmazása. (Tekintettel arra, hogy az ST nyelvbõl rendszerint elõször egy C++ kódot generálnak, majd azt fordítják tovább gépi nyelvre, a C++ nyelv választása különösen indokoltnak mutatkozik.)

Ha összetett feladatok elvégzése több különbözõ IEC programozási nyelv együttes használatával oldható csak meg, az szükségtelen bonyolultságot eredményez. A program vezérláncolatát („main” POU: Program Organization Unit) általában strukturált szöveg nyelven kell megírni. A felhasználónak kell gondoskodni a további POU-k programbeli hívásáról. A felhasználói adatok tárolására használt változókat minden POU elején deklarálni kell stb. A változók kezelése és a programkód megírása speciális számítógépes programozási ismereteket igényel.

Az egyes iparágak specifikus programozási nyelv használatának rendszere felveti a kérdést: miért ne lehetne eliminálni a felesleges nyelveket. Miért ne lehetne csak egy vizuális programozási nyelvet használni? Ha pedig szöveg alapú programozásra van szükség, miért ne használjuk a világ legelterjedtebb szabványos programozási nyelvét, a C++t?

Az IEC61131-3 szabvány által szintén definiált funkcióblokkok (FB: Function Block) jól használhatók egy automatizálási alkalmazások építõkövét képezõ szoftver elemeiként. A FB alapú programozás lehetõségét az IEC61131 által elõírt ciklikus rendszerû programfutás teremti meg.  A funkcióblokkok felhasználásával a fejlesztõ mérnök csökkentheti a rendszer bonyolultságát anélkül, hogy igazán érteni kellene a blokk belsõ mûködést, ahogyan az elektronikai tervezés területén sem szükséges megismerni az integrált áramkörök belsõ felépítését. Az ipari rendszertervezõk gondolkodásmódjához – akik gyakorlottak fizikai eszközök összekötésében egy-egy rendszer összeállításakor – a funkcióblokkok használata áll közelebb.

A mondást idézve: „Egy kép többet ér ezer szónál”. Ellentétben az IT (Information Technology) szoftver-komponens modellekkel (pl. COM, CORBA, stb.) a tervezõ számára a FB Diagram nyelv egy könnyen érthetõ, vizuális eszköz a funkciók közötti kapcsolatok megvalósítására.

A funkcióblokk diagramok (FBD: Function Block Diagram) hagyományos, specializált FBD szerkesztõvel történõ használata azonban korlátozza a megvalósítható feladat komplexitását. Mindazonáltal, e korlátozás feloldható egy olyan FBD szerkesztõ program felhasználásával, amely lehetõvé teszi a FBD-ok egymásba ágyazását és sémaszerkesztõ típusú funkciókat is biztosít, mint például vezetékek buszokba csoportosítását, a vezetékek névvel ellátott címkézését, kényelmes nagyítást és görgetést stb. Az egyes FB példányokhoz konfigurációs állományokat rendelve (XML tulajdonság-fájlok) a rugalmasság tovább fokozható.

Az IEC 61131-3 FB-szoftver modelljére épül a PLCopen (www.plcopen.org) által specifikált – platform független – „Mozgásvezérlõ Funkcióblokk” (Motion Control Function Blocks) könyvtár, melynek különbözõ implementációi állnak ma már a tervezõk rendelkezésére. A következõkben egy átgondolt, komplex megvalósítást mutatunk be.

A Click & Move automatizálási rendszer

Az utóbbi évek fejlesztési eredményeinek köszönhetõen rendelkezésre áll egy új, innovatív megoldás, a Click&Move (C&M) fejlesztõi környezet. A korszerû technológia, a nyílt architektúra és a nemzetközi iparági szabványokat a kommunikáció és a mozgás vezérlés területén alkalmazva, a C&M egyesíti, mind az IT, mind az ipari automatizálási szakterületek elõnyeit. A programozáshoz a C&M rendszer beágyazott FB könyvtárakat biztosít a felhasználók számára, melyek hátterében optimalizált, C++ nyelû programok állnak.

A programszerkesztõi felületet lehetõségeinek ügyes kiaknázásával: blokkok egymásba ágyazása, hibakeresési szolgáltatások, kapcsolódó konfigurációs állományok (XML tulajdonság-fájlok) stb. a FB diagramok segítségével gyakorlatilag korlátlan bonyolultságú feladatok kezelhetõk.

A C&M rendszerben a programozási feladat funkcióblokk-diagram rajzolássá redukálódik, a könyvtári elemként rendelkezésre álló PLCopen (www.PLCopen.org) szerinti mozgásvezérlõ, az IEC61131-ben leírt általános-, valamint a felhasználó által létrehozott egyéni funkció blokkok felhasználásával, miközben  lehetõség van C++ alapú szöveges programozásra is, ha a szükséges felhasználói modul – valamely okból – a könyvtári funkcióblokkokkal nem építhetõ fel.

Nincs szükség változók deklarálására, sem programkód írására. A rendszertervezõ mérnöknek csak a szabványos, bevált funkciók intuitív módon való összehuzalozására kell koncentrálnia.

A FB diagramok egy univerzális, rugalmas sémaszerkesztõvel hozhatók létre (busz vezetékek, címkék stb), szemben néhány cél-orientált, így korlátozott lehetõségekkel bíró szerkesztõ programmal.

–    A FB példányokhoz tulajdonság fájlok (XML) rendelhetõk.
–    Az alkalmazásokat állapot gép-típusú központi logika köré lehet szervezni.
–    Könnyen és egyszerûen hozható létre új, felhasználói FB egy – a felhasználó által írt – C++ program beágyazásával, melyhez valamennyi adat-típus rendelkezésre áll.
–    Gombnyomásra új FB hozható létre egy teljes FB diagramból, ami lehetõvé teszi a FB diagramok egymásba ágyazását.
–    Bármely gyakorlati alkalmazás során jelentkezõ probléma (beleértve a kommunikációt is) a FB-ok által minden szempontból teljes körûen kezelhetõ.
–    Futtatható kód (Run-time) gombnyomásra generálható a kiválasztott hardver platform számára.

A C&M képességei könnyen megismerhetõek a menüpontok „tooltip”-jei egyszerû átolvasása révén:

A fejlesztõ rendszer a Windows operációs rendszer alatt fut. Futtatói környezet jelenleg Windows, valós idejû Linux vagy a felhasználó által is programozható szervóhajtások számára elérhetõ.

 

Ezek a platformok gyors és hatékony fejlesztõi és futtatói környezetet biztosítanak kis és nagy teljesítményû alkalmazásokhoz egyaránt, a szoftveres beruházások jelentõs csökkenése mellett.

A C&M alkalmazások különbözõ fizikai eszközök (erõforrások) között megoszthatóak, pl. Ethernet vagy CAN hálózatokon keresztül.

A C&M használatához nem szükséges egyedi programozási nyelvet és/vagy az IEC61131-3 PLC világban szokásosan használt programozási nyelveket megtanulni. A FB diagram önmagát dokumentálja és könnyen érthetõ. C++ nyelvet világszerte széles körben alkalmazzák.

Mindent egybevetve a C&M egy hatékony, elõnyös házasság az egyszerûség és a rugalmasság között, mely véleményünk szerint a leginkább jövõbe mutató megoldás valamennyi jelenleg „szabványos” eljárás között.