Aktuální vydání

celé číslo

08

2022

MSV 2022

Projektování, konstruování a programování automatizačních a řídicích systémů

celé číslo

PBMaster – otevřená implementace Profibusu-DP

Tran Duy Khanh
 
Tento článek představuje otevřenou implementaci protokolu Profibus s přípravou roz­hraní pro aplikační vrstvu DP (Decentralized Periphery). Přestože Profibus nabízí mno­ho zajímavých vlastností, jako deterministický přístup ke sběrnici nebo rychlý přenos dat, stále je především doménou profesionálních projektů a komerčních řešení. Projekt PBMaster je jiný: nabízí levné řešení pro připojení osobního počítače nebo vestavěných systémů k této průmyslové sběrnici. Klíčem k dosažení těchto cílů je v použití běžně do­stupného hardwaru a otevřeného softwaru.
 

1. Motivace projektu PBMaster

 
Profibus je sběrnice, kterou lze použít v automatizaci jak strojní, tak i procesní výro­by. Organizace Profibus International loni za­znamenala více než 25 milionů zařízení Profi­bus-DP využívaných po celém světě. Přestože standard byl představen již na konci osmde­sátých let dvacátého století, není jednoduché najít materiály, které by pomohly vývojářům vyvíjet nové produkty.
 
Projekt PBMaster se snaží nabídnout lev­né řešení pro použití sběrnice Profibus ne­jenom v komerčních projektech, ale také na univerzitách nebo v poloprofesionálních projektech. Původním záměrem bylo nabíd­nout soubor aplikací a hardwaru pro připoje­ní osobního počítače s operačním systémem Linux k této sběrnici. Nyní může PBMaster běžet na několika operačních systémech (Li­nux, FreeBSD a NetBSD) i na deskách s ve­stavěnou architekturou ARM bez operačního systému. Cílem je nabídnout multiplatformní ovladače, knihovny a aplikace schopné plnit funkce stanice typu master slave a analy­zátoru protokolu Profibus-DP.
 
Webová stránka projektu je http://www.pbmaster.org.
 

2. Hardware

 
Jedním z klíčů k otevření cesty k levnému řešení je použití široce dostupného hardwa­ru. Desky jsou tvořeny z obvodu s rozhraním UART a výstupem RS-485. Současná verze podporuje tři typy hardwaru, popsané v ná­sledujících odstavcích.
 

2.1 Převodník RS-232–RS-485

Převodník RS-232/RS-485 (obr. 1) je nej­levnější varianta pro připojení osobního počí­tače k síti Profibus. Výstup RS-232 z počíta­če je pomocí tohoto převodníku konvertován na výstup RS-485, kompatibilní se sběrni­cí Profibus. Konvertor je napájen přímo ze sériového portu počítače. To je důvod, proč mohl být konvertor navržen jako velmi malý a s malým množstvím součástek. Součas­ně ale tato skutečnost omezuje jeho použití: konvertor není možné používat ve větší síti, protože výkon ze sériového portu je omeze­ný. Vzhledem k napájení přímo ze sériové­ho portu počítače není možné spolu s tímto konvertorem používat zakončovací odpory (terminátory) sběrnice, neboť ty by nemoh­ly být napájené tak, jak vyžaduje standard. Proto je počet uzlů na síti omezen na deset. Další nevýhodou je to, že počítač musí mít sériové rozhraní RS-232; novější počítače je nemívají. Maximální použitelná rychlost pro Profibus je omezena na 19 200 b/s z důvodu neshody v rychlostech mezi sběrnicí Profi­bus a standardními sériovými linkami osob­ního počítače.
 

2.2 Karta PCI s obvodem UART

K dosažení vyšších rychlostí přenosu dat je třeba použít rozšiřující kartu s integrova­ným obvodem rozhraní UART (Universal Asynchronous Receiver/Transmitter). Aktuál­ní ovladače podporují karty PCI (obr. 2) s in­tegrovaným obvodem OX16C954 od firmy Oxford Semicoductor, pravděpodobně nej­rychlejším obvodem UART vhodným pro PCI a dostupným na trhu. Obvod realizuje rozhra­ní UART kompatibilní s 16C550 a frontu zá­sobníku FIFO o velikosti 128 bytů. Jednou z jeho nejdůležitějších vlastností je maxi­mální rychlost rozhraní 15 Mb/s v normál­ním módu a 60 Mb/s v módu s externími ho­dinami. Při použití tohoto obvodu ovladače dosahují rychlosti 12 Mb/s, což je maximál­ní komunikační rychlost sběrnice Profibus--DP. Karta PCI může obsahovat až čtyři porty a díky tomu může simulovat až čtyři stanice Profibus současně (viz výsledky testů na we­bové stránce projektu). Karta neumožňuje po­užití v módu bitového analyzátoru, protože pro to v současné době neobsahuje hardwa­rovou podporu (bude přidána v budoucnu). Software byl vyvíjen s použitím karty od fir­my Tedia, spol. s r. o. (http://www.tedia.cz).
 

2.3 Deska s mikroprocesorem ARM

Dalším podporovaným hardwarem je deska s mikroprocesorem ARM LPC 2148, popř. LPC 2105, s rozhraním UART od fir­my NXP Semiconductor. Mít možnost po­užívat ovladače pro sběrnici Pro­fibus na vestavných deskách je velmi zajímavé. Je to totiž vel­mi jednoduché a levné řešení pro připojení k síti Profibus bez nut­nosti použít rozměrný a drahý hardware. Čtení dat ze senzorů a řízení akčních členů je tak vel­mi jednoduché a dostupné pro úlohy v domácí automatizaci, ří­zení robotů, nebo dokonce říze­ní výrobní linky.
 

3. Ovladače

 
Téměř každý hardware po­třebuje k implementaci funkcí, pro které byl navržen, software. Ve zde popisovaném případě soft­warové ovladače implementují vrstvu FDL (Fieldbus Data Link, spojovací vrstva podle modelu ISO/OSI) pro připojení k síti Pro­fibus. Při vypracovávání návrhu byl kladen důraz na modularitu softwaru. Ta umožňuje portace na nové platformy bez nutnosti roz­sáhlých úprav zdrojového kódu. Současné ovladače lze rozdělit do tří skupin.
 

3.1. Základní modul

Základní modul (pbmcore) je hlavní ovla­dač. Sám od sebe „nic nedělá“, ale obsahuje základní funkce, jako jsou funkce pro dato­vé struktury a struktury pro základní opera­ce čipových modulů, a dále funkce komuni­kačního zásobníku (stacku) rozhraní Profibus a funkce pro práci s bitovými a bajtovými daty (bit/byte stack). Nejdůležitější část je implementace linkové vrstvy sběrnice Pro­fibus. Implementace sběrnice Profibus za­hrnuje stavový automat stanic typu master slave, rámcový analyzátor protokolu Profi­bus a bit/bajtový analyzátor rozhraní UART. Modul je nezávislý na platformě a umožňu­je použít několik čipových modulů současně bez redundance kódu.
 

3.2 Čipové ovladače

Čipové ovladače (pbm_950pci, pbm_8250 atd.) řídí základní operace se skutečným hard­warem, jako např. inicializaci čipu, čtení, zá­pis atd. Čipový modul tyto základní operace po načtení zaregistruje do hlavního modu­lu a dále vykonává hardwarově a systémově závislé operace, jakými jsou alokace zdrojů nebo registrace přerušení. Zbytek akcí je ří­zen hlavním modulem prostřednictvím sta­vového automatu.
 

3.3 Rozhraní pro user space

Rozhraní pro user space (pbm_fdl) reali­zuje rozhraní mezi uživatelskými aplikacemi a vrstvou FDL v paměťovém prostoru jádra operačního systému (kernel space). V sou­časné době je modul implementován jako znakové zařízení (tj. druh device file v Li­nuxu), ale v budoucnu bude vytvořen mo­dul umožňující komunikovat pomocí ko­munikačního socketu. Uživatelské aplikace zapisují požadavky do zařízení a čtou z něj odpovědi. Data jsou přijímána hlavním mo­dulem a poté adresována konkrétnímu čipo­vému modulu. Rozhraní API mezi jednotli­vými rozhraními jsou jednotná, a proto je jednoduché přepínat mezi použitím znako­vého zařízení a socketu.
 

4. Kompilace pomocí OMK

 
V současné době se ovladače kompilu­jí v adresáři společně se zdrojovými kódy a využívají se kompilační schémata (make) specifická pro jednotlivé systémy. Naproti tomu ostatní aplikace projektu jsou kompilo­vány, kromě zdrojových kódů, pomocí kom­pilačního systému zvaného OMK (OCERA Make System).
 
Kompilační systém OMK vyvíjí a spravu­je Pavel Píša a Michal Sojka z katedry řídicí techniky na ČVUT FEL pod záštitou projek­tu OCERA. Hlavním cílem OMK je zjedno­dušit kompilaci komponenty na hostitelském počítači a křížovou kompilaci na cílové zaří­zení. Navíc systém nabízí lepší strukturu ad­resářů a souborů než jiné kompilační nástro­je. Rovněž umožňuje dělat kompilace mimo zdrojový strom a ukládat výsledek kompila­ce ve zvláštních adresářích.
 
Klíčem ke zjednodušení procesu kompi­lace je použití hlavního souboru s kompilač­ními pravidly pro komponenty a subkompo­nenty. To umožňuje, aby soubory make pro jednotlivé projekty byly velmi jednoduché a nevyžadovaly velkou znalost v psaní pra­videl pro překlad.
 
Systém OMK nebyl původně vyvíjen pro systémy BSD (zkratka BSD označuje ope­rační systém Berkeley Unix a jeho moderněj­ší následovníky). Byl proto upraven v rám­ci projektu PBMaster tak, aby podporoval i FreeBSD a NetBSD. Přestože všechny funk­ce OMK ještě nejsou podporovány pod FreeBSD a NetBSD, je možné pomocí tohoto systému kompilovat všechny aplikace pro­jektu. Systém OMK je obzvlášť užitečný pro křížovou kompilaci na cílovou architekturu (např. ARM).
 

5. Aplikační rozhraní pro vrstvu FDL

 
Jakmile jsou ovladače správně nainsta­lovány, počítač komunikuje s jinými stani­cemi na sběrnici pomocí zapisování dat raw do znakového zařízení. Přestože je to jedno­duchá komunikace, skutečnost, že vývojář musí rozumět struktuře rámců, nebo dokon­ce znát specifikaci sběrnice Profibus, je vel­kou překážkou. Proto bylo vytvořeno apli­kační rozhraní API, které nabízí jednoduchý a jednotný způsob přístupu ke sběrnici Profibus.
 
Rozhraní API je im­plementováno v podobě knihovny. Je to jednotné a na platformě nezávislé rozhraní pro komunikaci mezi softwarovými aplika­cemi ve vrstvě FDL a sta­nicemi sběrnice Profibus.
 
Rozhraní API projektu PBMaster částečně pod­poruje zpětnou kompatibi­litu s rozhraním komuni­kační vrstvy FDL od firmy Siemens. Části související s Request Block je ale tře­ba odstranit, neboť knihov­na s touto datovou struk­turou nepracuje. Zpětnou kompatibilitu zajišťuje makro, které zavolá příslušné funkce knihovny API. Ma­pování mezi API projektu a API od firmy Siemens je v tab. 1.
 

6. Server TCP/IP

 
Vedle samostatně běží­cího softwaru pro operač­ní systém typu Unix nebo pro architekturu bez ope­račního systému založe­nou na procesoru ARM bylo také vytvořeno řešení typu klient-server. Se ser­verem se může každá sta­nice, která podporuje TCP/IP, připojit k síti Profibus na dálku. Je to důležitý krok k rozšíření použití komponent projek­tu i na platformy, pro které ještě nebyla na­psána podpora.
 
Server je nainstalován na počítači s ovla­dači pro Profibus, které implementují insta­lované uzly na sběrnici v různých módech, a umožňuje přístup k zařízením na sběrnici Profibus přes internetové protokoly. Na jed­né straně server využívá pro přístup k zaříze­ním programové rozhraní FDL, na druhé stra­ně otevírá socketové připojení pro komunika­ci se vzdálenými klienty.
 

7. Analyzátor sběrnice a monitorovací program

 
V průmyslu se často vyžaduje najít na sběrnici problematická místa. Problém může být diagnostikován a lokalizován po­užitím odposlechu a analýzou komunikace na sběrnici. Analýzou lze detekovat problé­my, jakými jsou chyby v rámcích (mnohdy způsobené odrazem na sběrnici), neaktivní stanice, kolize adres, příliš krátké doby Slot Time nebo špatné časování stanic.
 
K tomu se používá grafický analyzátor a monitorovací program (obr. 3). Program byl napsán s využitím knihovny Qt (http://qt.no­kia.com) a stejně tak jako další komponenty projektu byl navržen s ohledem na rychlost, spolehlivost a modulárnost. Díky modulari­tě lze do programu snadno integrovat nové funkce, a tak se může stát univerzálním pro­gramem k ovládání a monitorování sběrnice. Současná verze podporuje analyzátor rám­ců sběrnice Profibus a bit/bajtový analyzátor rozhraní UART.
 
Hlavní okno programu obsahuje lišty ná­strojů, ladicí okno a panely se specifický­mi funkcemi. Několik panelů stejného typu může být zobrazeno najednou. Analyzátor nabízí i jiné funkce, jako zobrazování on-li­ne průběhu monitorování sběrnice, zobrazo­vání off-line souboru se zachycenými daty a zobrazení časových značek v pěti formá­tech: v absolutním čase nebo v podobě doby mezi jednotlivými daty či doby od začátku zachytávání, a to vyjádřeno v sekundách nebo v bitech. Spouštění zachytávání, filtr pro za­chytávání a statistika dat budou implemento­vány v další verzi.
 

8. Živé CD Linuxu

 
Cílem projekt PBMaster je vývoj a údrž­ba otevřené implementace protokolu Profibus. Používání softwaru typu open-source však má rovněž své nevýhody. Pravděpodobně největ­ší nevýhodou je, že každý, kdo používá po­čítač, je seznámen s komerčními operačními systémy, jako jsou Microsoft Windows nebo Mac OS, ale ne každý má zkušenosti s Linu­xem, systémy BSD atd. I přes rychlé zlepše­ní a rozšíření softwaru open-source jsou MS Windows ještě stále dominantní, a tato situace platí obzvlášť pro průmysl. To je také důvod, proč bylo vyvinuto živé linuxové CD nabíze­jící jednoduchý způsob využití výsledků to­hoto projektu bez nutnosti instalace softwa­ru. Není třeba nainstalovat žádný operační systém ani jiné programy, stačí zapojit hard­ware, vložit CD a začít pracovat se zaříze­ními na sběrnici Profibus. CD je postaveno na distribuci Debian Lenny. Obsahuje i dal­ší užitečné nástroje, jako je prostředí Xfce desktop a jeho programy, internetový prohlí­žeč Firefox, textový editor Kate, kancelářský balík Openoffice.org, komunikační protokol OpenSSH klient/server, kompilátory GCC (GNU Compiler Collection), kompilační ná­stroje make, správce souborů Midnight Com­mander, textový editor Vim, systémy správy verzí softwaru a zdrojových kódů GIT, CVS a SVN, přehrávač multimediálních soubo­rů a mnoho dalších programů, včetně všech potřebných knihoven pro kompilaci kompo­nent projektu. Celkový počet balíčků na CD je více než 750.
 

9. Výhody a nevýhody

 
Silné stránky projektu PBMaster jsou mo­dularita softwaru a jeho nezávislost na plat­formě. Umožňuje používat Profibus i na hard­waru, který k tomu nebyl určen. PBMaster lze použít na již existujících systémech s ob­vodem rozhraní UART a budičem linky RS-485. Je relativně jednoduché propojit různé standardy, protože hardware, na kterém soft­ware může běžet, obvykle má i jiná rozhraní (např. SPI, Ethernet, I2C, USB).
 
Nevýhodou softwaru je omezená podpora speciálního hardwaru: není zde osciloskopo­vý mód ani mód detekce rychlosti analýzou signálu. Vzhledem k volnosti volby operač­ního systému také nelze zaručit plný determi­nismus. Tento problém je možné vyřešit pou­žitím operačního systému v reálném čase (re­al-time). Pravděpodobně největší nevýhodou projektu však je skutečnost, že software ještě neprošel certifikací; ale na ní se v současné době již pracuje.
 

10. Příklad použití

 
Na obr. 4 je model výrobní linky s ko­munikačním systémem využívajícím Profi­bus-DP a PBMaster. Ovladače implementu­jí stanice typu master na kartě PCI s čipem UART OX16PCI954 při maximální rychlosti 12 Mb/s. Akční členy a senzory jsou připoje­ny ke dvěma stanicím typu DP slave od fir­my Wago. Funkce vrstvy DP v implementa­ci PBmaster byla doplněna jako sada funkcí podporujících nastavení stanic slave a jejich uvedení do stavu cyklické datové výměny. Více příkladů využití lze najít na webových stránkách projektu PBMaster.
 

11. Závěr

 
V tomto článku byla představena otevře­ná implementace protokolu Profibus, kterou autor řešil jako diplomovou práci na katedře řídicí techniky FEL ČVUT v Praze. Jedním ze stanovených cílů projektu bylo vytvoře­ní multiplatformního softwaru, který může pracovat na počítačích s operačními systé­my, ale stejně tak na vestavěných deskách bez operačního systému. Komponenty byly navrženy s ohledem na jejich rozšiřitelnost, rychlost a spolehlivost a na požadavky sys­témových zdrojů.
 
V současné době projekt nabízí imple­mentace stanic sběrnice Profibus typu mas­ter slave, rámcový analyzátor, dále bit/baj­tový analyzátor sběrnic, programové rozhra­ní FDL, živé CD Linuxu, server TCP/IP pro vzdálený přístup a mnoho příkladů úloh vy­užívajících PBMaster. Soft­ware funguje na operačních systémech Linux, FreeBSD a NetBSD i na deskách s ar­chitekturou ARM. K dispozi­ci je rovněž několik málo typů hardwaru.
 
Dosažené výsledky posky­tují dobrý základ pro další po­kračování v projektu. Je třeba věnovat se implementaci sta­vových automatů vrstvy DP pro zařízení master slave, vytvoření podpory pro psa­ní softwarových aplikací jak v podobě programátorského aplikačního rozhraní, tak i vi­zuální aplikace apod.
 
Zde představené řešení může být užitečné pro univerzity i firmy, neboť v současné době jakékoliv experimen­tování s protokolem Profibus vyžaduje po­měrně vysoké náklady na hardware i soft­ware. Vzhledem k existujícím patentům tý­kajícím se způsobu komunikace po sběrnici Profibus není možné uvolnit software vyvi­nutý v rámci projektu pod otevřenou licen­cí, ale členové sdružení Profibus (kontakt viz třetí strana obálky) jej mohou používat bez omezení.
 
Doufám, že i díky zmíněnému projektu se s touto populární průmyslovou sběrnicí budou moci seznámit další zájemci a budou moci uskutečňovat různé experimenty, kte­ré pomohou při testování a výběru hardwaru i softwaru pro finální projekt.
 
Webové odkazy:
[1] Sdružení Profibus: www.profibus.cz.
[2] Katedra řídicí techniky ČVUT FEL v Praze: http://dce.felk.cvut.cz.
[3] TRAN DUY KHANH: PBMaster, otevřená implementace Profibusu: www.pbmaster.org.
[4] PÍŠA, P. – SMOLÍK, P.: Projekt uLan: http://cmp.felk.cvut.cz/pisa/ulan/ul_drv.html.
[5] PÍŠA, P. – SOJKA, M.: Projekt OMK: http://rtime.felk.cvut.cz/omk/.
[6] Projekt OCERA: http://www.ocera.org.
[8] TRNKA, P. – SMOLÍK, P.: Profibus Master: http://profim.sourceforge.net.
 
Ing. Tran Duy Khanh
Obr. 1. Převodník RS-232/RS-485
Obr. 2. Karta PCI s rozhraním UART
Obr. 3. Monitorovací program
Obr. 4. Model výrobní linky
 
Tab. 1. Mapování mezi API projektu PBMaster a API od firmy Siemens