eBook
FOXON s.r.o. | www.foxon.cz | foxon@foxon.cz | (+420) 484 845 566
Obsah Obsah .........................................................................................................................................................................2 1.
CO JE PROFIBUS ...............................................................................................................................................4 Základní pojmy ........................................................................................................................................................6 ProfiBus DP .........................................................................................................................................................6 ProfiBus stanice Master třídy 1 ...........................................................................................................................6 Profibus stanice Master třídy 2 ............................................................................................................................6 Profibus stanice Slave .........................................................................................................................................6
2.
STAVOVÝ AUTOMAT PROFIBUS DP SLAVE ...................................................................................................7 Stav zapnutí/reset ...................................................................................................................................................7 Stav parametrizace .................................................................................................................................................7 Stav konfigurace I/O ................................................................................................................................................7 Stav výměny dat ......................................................................................................................................................8 Bezpečný provoz .....................................................................................................................................................8 Watchdog ................................................................................................................................................................9
3.
SOUBORY GSD ................................................................................................................................................10
4.
POTŘEBNÝ SOFTWARE .................................................................................................................................13
5.
TYPY PŘENOSU ..............................................................................................................................................14 SRD („Send and Request Data with acknowledge“, odeslání a vyžádání dat s potvrzením) ...............................14 SDN („Send Data with No acknowledge“, odeslání dat bez potvrzení) ................................................................14
6.
FORMÁT ZNAKŮ DAT PROFIBUS DP ............................................................................................................15 Kontrola chyb dat ProfiBus ....................................................................................................................................15
7.
STRUKTURA TELEGRAMU (ZPRÁVY) PROFIBUS ........................................................................................16 Úvodní oddělovač (SD) .........................................................................................................................................17 Délka telegramu (LE a LEr)...................................................................................................................................18 Cílová adresa a zdrojová adresa (DA & SA, 00H..7FH) .......................................................................................18 Funkční kód / kontrola rámce (FC) .......................................................................................................................18 Přístupové body služby (SSAP a DSAP) ..............................................................................................................19 Datová jednotka (DU) ............................................................................................................................................20 Sekvence kontroly rámce (FCS) ...........................................................................................................................20 Koncový oddělovač (ED) .......................................................................................................................................20
8.
PŘÍKAZOVÉ FUNKCE DP ................................................................................................................................21 Status funkce.........................................................................................................................................................21
9.
PROVOZNÍ STAVY A PŘÍSLUŠNÉ FUNKCE ..................................................................................................23 Počáteční zapnutí/reset ........................................................................................................................................23 Telegram Set_Slave_Add (SAP 55) ..................................................................................................................23 Parametrizace .......................................................................................................................................................25 Telegram Set_Prm – SAP 61 ............................................................................................................................25 Konfigurace I/O .....................................................................................................................................................28 Telegram Chk_Cfg – SAP 62 ............................................................................................................................28 Telegram Get_Cfg – SAP 59 .............................................................................................................................28 2
Telegram Diag_Data (požadavek na diagnostiku) – SAP 60 ............................................................................29 Stav výměny dat ....................................................................................................................................................33 Data_Exchange Telegram .................................................................................................................................34 Read_Inp Telegram – SAP 56 ..........................................................................................................................34 Read_Outp Telegram – SAP 57 ........................................................................................................................34 Služba Global_Control – SAP 58 ......................................................................................................................35 Použití funkce Freeze ....................................................................................................................................36 Použití funkce Sync/Unsync ..........................................................................................................................36 10.
ČASOVÁNÍ SBĚRNICE .................................................................................................................................37
11.
POŽADAVKY NA VYSOKORYCHLOSTNÍ PŘENOS ...................................................................................40
Windows® je registrovaná ochranná značka společnosti Microsoft Corporation. Modbus® je registrovaná ochranná značka společnosti Modicon, Incorporated.
3
1. CO JE PROFIBUS ProfiBus byl vytvořen v roce 1989 německou vládou ve spolupráci s několika výrobci zařízení pro automatizaci. Jde o formát zasílání zpráv navržený speciálně pro vysokorychlostní I/O operace ve výrobních závodech a automatizaci budov. Pracuje na bázi otevřeného standardu a je považován za nejrychlejší v současnosti provozovaný prostředek typu FieldBus. Jeho základem je RS485 a evropská elektrotechnická norma EN50170. Přípona DP znamená „decentralizovaná periferie“, což označuje distribuovaná I/O zařízení spojená prostřednictvím rychlé sériové datové linky s hlavní řídicí stanicí. Naproti tomu programovatelný automat (PLC) má standardně vstupní a výstupní kanály uspořádány centrálně. Zavedením síťové sběrnice mezi hlavní řídicí stanicí (masterem) a jeho I/O kanály (slave) se vstupy a výstupy decentralizovaly. ProfiBus je postaven na mezinárodních standardech a navržen podle referenčního modelu OSI (Open System Interconnection) v souladu s mezinárodní normou ISO 7498. V tomto modelu každá vrstva řeší přesně definované úkoly. Vrstva 1 tohoto modelu je fyzická vrstva a definuje fyzikální charakteristiky přenosu. Vrstva 2 je datová (linková) vrstva, která definuje přístupový protokol sběrnice. Vrstva 7 je aplikační vrstva, která definuje funkce aplikací.
Komunikace ProfiBus používá master stanice k dotazování podřízených (slave) zařízení rozmístěných na sériové sběrnici RS485 metodou dotaz – odpověď. ProfiBus slave je jakékoliv periferní zařízení (I/O převodník, ventil, IO periferie nebo jiný měřicí přístroj), které zpracovává informace a odesílá svůj výstup do mastera. Slave tvoří v síti „pasivní stanici“, protože nemá přístupová práva ke sběrnici a může pouze potvrzovat přijaté zprávy nebo na vyžádání odesílat do mastera odpovědi. Je třeba mít na paměti, že všechna slave zařízení ProfiBus mají stejnou prioritu a veškerá síťová komunikace pochází z mastera. Master zařízení ProfiBus tvoří v síti „aktivní stanici“. ProfiBus DP definuje dvě třídy masterů. Master třídy 1 zajišťuje normální komunikaci nebo výměnu dat s přidělenými slave zařízeními. Master třídy 2 je speciální zařízení, používané především ke spouštění slave zařízení a pro diagnostické účely. Některé mastery mohou podporovat funkce třídy 1 i třídy 2. Komunikace master-to-master standardně není v Profibusu povolena, kromě případů, kdy jde o udělení přístupových práv ke sběrnici jinému masteru prostřednictvím výměny tokenu. Komunikaci master-to-master mezi dvěma jednomasterovými systémy však lze usnadnit pomocí brány DP-DP. Mějte na paměti, že výměna přístupových práv ke sběrnici prostřednictvím principu „token ring“ proběhne pouze mezi mastery na sběrnici. Master zařízení třídy 1 je obvykle centrální programovatelný automat (PLC) nebo PC, na němž běží speciální software. Master třídy 1 nastaví přenosovou rychlost a slave zařízení tuto rychlost automaticky detekují. Master třídy 1 realizuje výměnu dat s přidělenými slave zařízeními a počíná si jako hlavní řadič pro výměnu I/O informací se svými distribuovanými slave zařízeními, když cyklicky načítají uživatelská I/O data podle definovaného cyklu zpráv. Master může aktivně komunikovat s přidělenými slave zařízeními, ale pouze pasivně (na vyžádání) s jiným masterem třídy 2.
4
Master třídy 2 je obvykle konfigurační zařízení, např. programátorský notebook PG a je určen pro uvádění do provozu, údržbu nebo diagnostické účely. Funguje jako „dohledový“ master tím, že může aktivně komunikovat s mastery třídy 1 a jejich slave zařízeními, vedle svých vlastních slave zařízení, ale obvykle jen pro účely konfigurace, diagnostikování problému a výměny dat a parametrů. To znamená, že mastery třídy 2 mohou převzít kontrolu slave zařízení pouze krátce. Všechny výměny mezi masterem třídy 2 a masterem třídy 1 začínají u mastera třídy 2. ProfiBus DP obvykle funguje pomocí cyklického přenosu dat mezi masterem (mastery) a slave zařízením(i) na síti RS485. To znamená, že přidělený master se periodicky dotazuje („poll“) jednotlivých uzlů (slave) v síti. Veškerá datová komunikace mezi master a slave zařízením začíná v master zařízení. Každé slave zařízení je přiděleno jednomu masteru a pouze tento master může do tohoto zařízení zapisovat výstupní data. Ostatní mastery mohou číst informace z libovolného slave zařízení, ale zapisovat výstupní data mohou pouze do svých přidělených slave zařízení. Mastery se mohou obracet na jednotlivá slave zařízení, jejich definovanou skupinu (multicast) nebo odeslat telegram do všech připojených slave zařízení (broadcast). Slave zařízení vrátí odpověď na všechny telegramy určené jim individuálně, ale neodpovídají na broadcast nebo multicast telegramy z master zařízení. ProfiBus odesílá zprávy broadcast a multicast jako global control telegramy pomocí adresy 127 a volitelného skupinového čísla cílové skupiny slave zařízení. Protože ProfiBus používá cyklický (periodický) mechanismus dotazování mezi mastery a slave zařízeními, je také deterministický. To znamená, že chování systému ProfiBus v čase lze spolehlivě předpovědět. ProfiBus byl vlastně navržen k tomu, aby byla zajištěna deterministická odpověď. Naproti tomu CAN a Ethernet jsou sběrnicové systémy řízené událostmi a tvoří proto nedeterministické systémy. Délka (a časování) I/O dat přenášených z jednotlivého slave zařízení do mastera je předdefinována v datové bázi slave zařízení nebo v souboru GSD. Soubory GSD jednotlivých zařízení připojených prostřednictvím sítě (pouze slave zařízení a mastery třídy 1) dohromady tvoří záznam parametrů mastera, který obsahuje parametrizační a konfigurační data, seznam přidělených adres a parametry sběrnice pro všechny připojené stanice. Master tyto informace používá pro navázání komunikace s jednotlivými slave zařízeními při spouštění. Jakmile master obdrží svůj záznam parametrů mastera, je připraven zahájit výměnu dat se svými slave zařízeními. Během spouštění, po resetu systému nebo při obnově dodávky energie se master pokusí znovu navázat kontakt se všemi jemu přidělenými slave zařízeními, než přistoupí k cyklické výměně I/O dat. Každé slave zařízení musí již mít platnou unikátní adresu od 0 do 125, aby mohlo komunikovat s masterem. Každé slave zařízení s defaultní adresou 126 bude očekávat od mastera třídy 2 příkaz Set_Slave_Address, než bude moci být parametrizováno. Adresu 126 mají většinou zařízení, u kterých se DP adresa nastavuje pomocí SW aplikace (nemají přepínače). Při pokusu o navázání komunikace začíná master u slave zařízení s nejnižší adresou a končí u slave zařízení s nejvyšší adresou. Master zašle parametrizační a konfigurační telegramy všem svým přiděleným slave zařízením (k slave zařízení má přístup pro zápis pouze jeho přidělený master, tj. master, který je parametrizoval a konfiguroval při spouštění). Parametrizační a konfigurační telegramy slouží k tomu, aby master znal funkci a konfiguraci slave zařízení. Pokud je na síťovou sběrnici přidáno další slave zařízení, které zatím nebylo vzato v úvahu v záznamu mastera, musí být vygenerován nový záznam mastera a provedena nová konfigurace, aby byl master informován o stavu tohoto nového zařízení. Tento proces obecně vyžaduje restart Master komunikace, nicméně někteří výrobci umí toto řešit i za provozu sítě, tzn. bez výpadku DP komunikace přidáte do sítě novou stanici. ProfiBus DP nejčastěji používá jedno master zařízení třídy 1 (mono-master), které se cyklicky dotazuje řady distribuovaných slave zařízení. ProfiBus však také umožňuje acyklickou komunikaci mezi mastery třídy 2 a slave zařízeními, při níž může být aktivní více než jedna stanice nebo master. Master třídy 1 automaticky detekuje přítomnost nové aktivní stanice připojené k síťové sběrnici (master třídy 2). Jakmile master třídy 1 dokončí svůj cyklus dotazování, předá masteru třídy 2 „token“, který mu zajistí dočasný přístup ke sběrnici. Deterministické chování je zachováno, protože master třídy 2 může využít pouze čas, který mu byl přidělen prostřednictvím stanoveného času gap time. Přestože se obecně doporučuje jednomasterový provoz, není to povinné. Systém ProfiBus tedy může mít více než jednoho mastera třídy 1, ale komunikace mezi mastery není povolena, s výjimkou případu, kdy jde o udělení přístupových práv ke sběrnici prostřednictvím výměny tokenu. Pro ilustraci principu komunikace mezi mastery v systému ProfiBus DP: master třídy 1 si cyklicky vyměňuje data se všemi jemu přidělenými slave zařízeními, a to s jedním po druhém podle svého seznamu přidělených slave zařízení, který získal ze záznamu mastera. Na konci tohoto datového cyklu je přidělen další čas (gap time), 5
určený pro acyklickou komunikaci mezi masterem třídy 2 a týmiž slave zařízeními. Během této doby poskytne master třídy 1 masteru třídy 2 token zajišťující mu přístupová práva ke sběrnici. Master třídy 2, který aktuálně vlastní token, má možnost vyměňovat si data se všemi slave zařízeními po dobu daného časového intervalu, nazývaného token half-time nebo token hold-time (TH). Potom může master třídy 2 pokračovat čtením dat nebo diagnostických informací z libovolného slave zařízení a po dokončení svého cyklu předá token zpět masteru třídy 1. Protože během gap time obvykle není dost času na úplné dokončení výměny dat, může tento proces čtení dat masterem třídy 2 pokračovat po několik cyklů. Na konci přenosu záznamu master třídy 2 ukončí spojení. Mějte však na paměti, že master třídy 2 může navázat spojení se slave zařízeními pouze v průběhu gap time. Jak je uvedeno výše, master třídy 2 může dočasně převzít kontrolu nad slave zařízením DP. Po tuto dobu slave zařízení DP ukončí svoji normální výměnu dat s masterem třídy 1. Master třídy 1 to zaregistruje a pokračuje cyklickým dotazováním slave zařízení na diagnostiku, přičemž kontroluje pole Master Address tak dlouho, dokud je přítomna jiná platná adresa. Jakmile master třídy 2 dokončí svoji komunikaci se slave zařízením, nastaví pole Master Address slave zařízení na neplatné (255). V důsledku toho se master třídy 1 pokusí znovu převzít kontrolu nad slave zařízením a před obnovením výměny dat s tímto zařízením provede jeho novou parametrizaci a konfiguraci.
Základní pojmy ProfiBus DP • • • • • •
Otevřený standard založený na EN 50170. Svého času nejrychlejší zařízení standardu Fieldbus s přenosovou rychlostí až 12 MB. Funkce Plug & Play Až 244 bytů vstupních a výstupních dat v každé zprávě. Ke sběrnici se může připojit až 126 stanic. Až 32 stanic v každém segmentu sběrnice.
ProfiBus stanice Master třídy 1 • • •
Master stanice, která si vyměňuje I/O data s připojenými slave zařízeními. Stanovuje přenosovou rychlost (slave zařízení ji automaticky rozpoznají). Řídí přenos tokenu mezi mastery. Detekuje dalšího mastera během gap time.
Profibus stanice Master třídy 2 • • • •
Nástroj pro diagnostiku, konfiguraci nebo oživení. Může řídit pouze jedno slave zařízení současně. Nemá do slave zařízení přístup pro zápis. Nemá soubor GSD.
Profibus stanice Slave • •
Pasivní stanice, která může pouze odpovídat na dotazy mastera a potvrzovat zprávy. Slave zařízení nemá žádná práva pro řízení sběrnice. Soubor GSD obsahuje definici slave zařízení pro mastera.
6
2. STAVOVÝ AUTOMAT PROFIBUS DP SLAVE Následující stavový automat ilustruje, jak ProfiBus DP funguje ve vztahu ke slave zařízením. Všimněte si čtyř hlavních stavů: zapnutí/reset, parametrizace, konfigurace I/O a výměna dat. Během spouštění používá master následující obecnou sekvenci telegramu: 1. Vyžádání diagnostiky. 2. Změna adresy stanice (volitelně, pouze master třídy 2). 3. Parametrizace slave zařízení. 4. Konfigurace slave zařízení. 5. Opětovné vyžádání diagnostiky před výměnou dat, aby byla jistota, že spuštění systému proběhlo správně. 6. Výměna dat. 7. Global Control (volitelně).
Stav zapnutí/reset Stav zapnutí/resetu je počáteční stav po zapnutí napájení slave zařízení DP. V tomto stavu může slave zařízení obdržet telegram od mastera třídy 2, aby změnilo svou adresu stanice. V tomto stavu bude slave zařízení podrženo, pokud nemá platnou adresu od 0 do 125. Po dokončení inicializace při zapínání, pokud slave zařízení má platnou adresu stanice, přejde zařízení do stavu čekání na parametrizaci.
Stav parametrizace V tomto stavu slave zařízení DP očekává parametrizační telegram od mastera, který identifikuje mastera tohoto zařízení a režim, ve kterém má slave zařízení pracovat. Slave zařízení v tomto stavu odmítá všechny ostatní telegramy kromě telegramu s vyžádáním diagnostiky nebo konfigurace. Po nastavení parametrů přejde slave zařízení do stavu konfigurace I/O.
Stav konfigurace I/O V tomto stavu slave zařízení očekává konfigurační telegram, specifikující počet bytů vstupů a výstupů, které budou předány v každém cyklu datového telegramu se slave zařízením. Na základě konfiguračního telegramu si 7
slave zařízení také zkontroluje konfiguraci, která mu byla zaslána, podle uložené konfigurace. V tomto stavu slave zařízení přijme telegram s vyžádáním diagnostiky nebo konfigurace nebo telegram s nastavením parametrů.
Stav výměny dat Po dokončení parametrizace a konfigurace si slave zařízení cyklicky vyměňuje I/O data s masterem. Jde o cyklický přenos I/O dat a případně diagnostických informací.
Bezpečný provoz Master ProfiBus funguje ve dvou režimech: Operate a Clear. V případě mastera systému ProfiBus DP se termín bezpečný týká jednoduše toho, zda master třídy 1 odešle data s nulovou délkou nebo data nastavená na 0, když se nachází v režimu Clear. V případě slave zařízení DP se termín bezpečný týká toho, zda slave zařízení zpracovává výstupní telegramy s daty o nulové délce. Zda je kombinovaný systém master/slave považován za bezpečný, závisí na tom, jakou akci provedou slave zařízení v případě poruchy mastera nebo v případě, že se master přepne do režimu Clear. V ideálním případě by porucha mastera neměla vést k chybám v žádném z jeho slave zařízení a výstupy slave zařízení by měly přejít do předvídatelného (definovaného) stavu. Při použití bezpečného režimu se výstupy slave zařízení v případě poruchy mastera nebo pokud se master přepne do režimu Clear, umí automaticky přepnout do bezpečného stavu. Slave zařízení může přejít do bezpečného stavu, pokud vyprší čas jeho watchdogu bez obdržení zprávy od přiděleného mastera. Normálně se tento časovač resetuje vždy, když master komunikuje se slave zařízením. Pokud tento čas vyprší, znamená to, že master se slave zařízením v poslední době nekomunikoval a slave zařízení tak není pod kontrolou. Slave zařízení pak opustí režim výměny dat a jeho výstupy přejdou do předdefinovaného stavu (buď stav jejich resetu, nebo jiný stav definovaný uživatelem). Tento stav je obvykle nastaven prostřednictvím uživatelem definovaných parametrů v parametrizačním telegramu a souboru GSD, případně pomocí hardwarových přepínačů na slave zařízení. Některá slave zařízení mohou mít také parametry nebo přepínače, které umožňují výstupům slave zařízení uchovat si poslední stav, to však není považováno za bezpečné. Slave zařízení může také přejít do bezpečného stavu, když se jeho master přepne z režimu Operate do režimu Clear. Při normálním provozu v režimu výměny dat je master třídy 1 v režimu Operate a cyklicky si předává I/O data s přidělenými slave zařízeními. Master třídy 1 může pomocí global control telegramu informovat slave zařízení, že se přepíná z režimu Operate do režimu Clear. Master se může rozhodnout přepnout se do režimu Clear, když zapojuje slave zařízení online a ne všechna slave zařízení byla zatím parametrizována a konfigurována. Rovněž se může přepnout do režimu Clear na základě přepínače run/stop na masteru. Ve stavu Clear se master může pokusit provést parametrizaci a konfiguraci zbývajících přidělených slave zařízení při pokusu o obnovení výměny dat, zatímco výměna dat s ostatními slave zařízeními pokračuje (budou dostávat výstupní data 0 nebo výstupní data s nulovou délkou). Režim Operate se neobnoví, dokud nejsou všechna slave zařízení online a neprobíhá výměna dat nebo dokud master nedostane pokyn k obnovení provozu prostřednictvím přepínače run/stop nebo příkazu programu. Některé mastery mohou dále přejít do režimu Clear, pokud je některé slave zařízení vyřazeno z provozu, místo aby nadále řídily částečný systém (tato reakce může být zadána jako parametr v souboru GSD mastera a parametrizačním telegramu, prostřednictvím mechanického přepínače nebo jako součást programu mastera).
Jakmile se master přepne do režimu Clear, rozešle všem slave zařízením global control telegram s prvním datovým bytem (oktet 1) = 2 a druhým datovým bytem (oktet 2) = 0. V dalším datovém cyklu master rozešle všem stanicím datové telegramy buď s výstupními daty rovnými 0, nebo s výstupními daty o délce rovné 0 (tj. pouze hlavičku telegramu a žádná data). Pokud soubor GSD slave zařízení obsahuje „Fail_Safe = 0“, master v režimu Clear rozešle výstupní telegramy s daty nastavenými na 0. Pokud však soubor GSD slave zařízení obsahuje „Fail_Safe = 1“ (podporuje bezpečný režim), master v režimu Clear rozešle výstupní telegramy s daty o délce 0. Slave zařízení, která nepodporují bezpečný režim, nezpracovávají datové telegramy neobsahující žádná data. Některé starší mastery bezpečný režim takto nerozlišují a v režimu Clear rozešlou datové telegramy s výstupními daty nastavenými na 0. To donutí všechny výstupy slave zařízení přepnout se v režimu Clear na 0, což pro některé kritické řídicí aplikace nemusí být žádoucí. Pokud master v režimu Clear rozesílá výstupní telegramy bez dat, může bezpečné slave zařízení buď nastavit všechny své výstupy na 0, ponechat si poslední stav výstupu (i když tato reakce není bezpečná), nebo 8
přejít do předdefinovaného výchozího „bezpečného“ stavu. Tento stav může být definován v souboru GSD a obsažen v části uživatelských parametrů parametrizačního telegramu, nebo se může nastavit pomocí přepínačů na slave zařízení. Slave zařízení zůstane v tomto stavu, dokud neobdrží od mastera global control broadcast telegram s oznámením, že se master vrací do režimu Operate a slave zařízení obdrží výstupní telegram se správnou délkou výstupních dat a poté si normálně aktualizuje své výstupy jako součást režimu výměny dat. Shrnuto: bezpečný režim v ProfiBus DP se týká situace, kdy master v režimu Clear rozesílá výstupní datové zprávy s nulovou délkou a zda je slave zařízení schopno zpracovat výstupní zprávy s nulovou délkou. Akce provedené slave zařízením v reakci na tyto zprávy jsou volitelné a specifické pro danou implementaci slave zařízení. Mějte na paměti, že „bezpečné“ slave zařízení se ve skutečnosti nemusí chovat bezpečným způsobem (může si například uchovat poslední stav před režimem Clear). V každém případě, aby bylo vyhověno PTO, musí bezpečné slave zařízení přinejmenším umožňovat vymazání výstupů, pokud má master poruchu nebo se přepne do režimu Clear.
Watchdog Slave zařízení může přejít do definovaného stavu, pokud vyprší čas jeho watchdogu bez obdržení zprávy od přiděleného mastera. Normálně je tento časovač resetován slave zařízením vždy, když s ním master komunikuje. Pokud tento čas vyprší, znamená to, že master se slave zařízením v poslední době nekomunikoval a slave zařízení tak není pod kontrolou. Slave zařízení detekuje chybu komunikace a oznámí ji diagnostickým telegramem (viz kódy funkcí). Slave zařízení potom opustí režim výměny dat a jeho výstupy přejdou do předdefinovaného stavu (buď stav reset/clear, nebo stav definovaný uživatelem) a vyčkají na opětovnou parametrizaci a konfiguraci masterem. Stav časového limitu je defaultně vymazán nebo může být nastaven prostřednictvím uživatelsky definovaných parametrů parametrizačního telegramu a souboru GSD, případně pomocí hardwarových přepínačů na slave zařízení. Některá slave zařízení mohou mít také parametry nebo přepínače umožňující výstupům slave zařízení uchovat si poslední stav, to však není považováno za bezpečné. Při parametrizaci nastaví master komunikaci a monitorování časů pro slave zařízení včetně času watchdogu (TWD nastaven prostřednictvím položky Watchdog Factors v DU bytech 2 a 3 telegramu Set_Prm Telegram). Obvod ASIC slave zařízení implementuje funkci watchdogu tam, kde bude slave zařízení v průběhu času monitorovat komunikaci sběrnice s masterem a v případě poruchy mastera (timeout) přejdou výstupy slave zařízení do definovaného stavu. Pokud časovač watchdogu není znovu spuštěn slave stanicí prostřednictvím komunikace s masterem v určeném čase, slave zařízení uvede své výstupy do definovaného stavu a vrátí se do stavu Wait_Prm (čekání na parametrizaci, Wait For Parameterization). Při nastavování času watchdogu TWD je nutno vzít v úvahu čas cyklu sběrnice plus bezpečnostní koeficient pro opakované telegramy (obvykle nejméně 25 %). Než se podíváme na činnost slave zařízení podrobně, potřebujeme vědět něco málo o souboru GSD daného zařízení a o využití softwaru k vybudování systému ProfiBus.
9
3. SOUBORY GSD Soubor GSD je elektronický datový list nebo databázový soubor zařízení, který identifikuje zařízení ProfiBus. Každé zařízení ProfiBus (master třídy 1 a slave) má svůj vlastní soubor GSD. Soubor GSD je základním stavebním kamenem záznamu parametrů mastera. Použití souboru GSD konfiguračním nástrojem ProfiBus umožňuje spolupráci plug & play mezi různými zařízeními různých výrobců. Soubor se nenachází přímo u zařízení, ale obvykle na samostatném disku. Jde o textový soubor v kódu ASCII, který obsahuje data patřící k zařízení, např. označení prodejce, podporované přenosové rychlosti, podporovanou délku zpráv, počet vstupních a výstupních dat, význam diagnostických zpráv, informace o časování, dále podporované možnosti a funkce, datové formáty a dostupné I/O signály. U modulárních systémů ProfiBus může soubor GSD obsahovat více konfigurací (jednu pro každý I/O modul), z nichž jedna bude při spouštění identifikována jako platná. Název souboru GSD tvoří kombinace označení prodejce a identifikačního čísla zařízení. Například název „SIEM806A.GSD“ se používá pro zařízení SIEMENS ET200S 6ES7 151-1AA00-0AB0. Přípona „.GSD“ označuje soubor GSD nezávislý na jazyku. Označení „.GSE“ znamená soubor v angličtině, „.GSF“ ve francouzštině, „.GSS“ ve španělštině, „.GSI“ v italštině a „.GSG“ v němčině. Soubor GSD začíná specifikátorem „#Profibus_DP“. V těle souboru jsou parametry specifikovány jako parametry klíčového slova (jako v „keyword = parameter“, viz níže). Komentářové řádky začínají středníkem. Velikost písmen nerozhoduje a na pořadí parametrů nezáleží. Řádky jsou omezeny 80 znaky, ale v psaní na řádek je možno pokračovat tak, že se na jeho konec vloží zpětné lomítko „\.“ Soubor GSD je rozdělen na části takto: Obecné specifikace GSD Tato část obsahuje informace o názvech prodejce a zařízení, verzích hardwaru a softwaru, Ident_Number, podporované přenosové rychlosti, reakční doby při podporovaných přenosových rychlostech pro sledování časů a volitelně podporu signálů na konektoru sběrnice.
Specifikace slave zařízení v GSD Tato část obsahuje všechny specifikace týkající se slave zařízení, jako je počet a typ I/O kanálů, specifikace diagnostického textu, podpora automatické detekce přenosové rychlosti, podpora střídavého režimu a u modulárních zařízení informace o dostupných modulech.
10
Klíčové slovo
Klíčové slovo
Vendor_name Model_Name Revision Ident_Number Protocol_Ident Station_type FMS_Support Hardware_Release Software_Release 9.6_supp 19.2_supp 93.75_supp
187.5_supp 500_supp 1.5M_supp MaxTsdr_9.6 MaxTsdr_19.2 MaxTsdr_93.75 MaxTsdr_187.5 MaxTsdr_500 MaxTsdr_1.5M Redundancy Repeater_Ctrl_Sig 24V_Pins
Klíčové slovo
Klíčové slovo
Freeze_Mode_supp Sync_Mode_supp Auto_Baud_supp Set_Slave_Add_supp User_Prm_Data_Len User_Prm_Data Min_Slave_Intervall Modular_Station Max_Module
Max_Input_Len Max_Output_Len Max_Data_Len Unit_Diag_Bit Diag_Text Unit_Diag_Area Module Channel_Diag
Specifikace mastera (pouze u master zařízení): Tato část obsahuje všechny specifikace týkající se mastera, jako jsou: maximální počet připojitelných slave zařízení nebo možnosti uploadu a downloadu. Tato část se u slave zařízení nevyskytuje a zde nebude popsána. Soubory GSD všech připojených zařízení dohromady tvoří záznam parametrů mastera. Záznam parametrů mastera obsahuje parametrizační a konfigurační data ze všech souborů GSD a také seznam přidělených adres plus parametry sběrnice pro všechna připojená slave zařízení. Při spouštění použije master tyto informace k nastavení komunikace s jednotlivými připojenými slave zařízeními, než si s nimi začne předávat skutečná I/O data. Pro vytváření souborů GSD nabízí ProfiBus Trade Organization uživatelsky jednoduchý editor ovládaný prostřednictvím menu. Tento GSD-Editor obsahuje i kontrolní funkci GSD-Checker pro zajištění souladu souboru GSD se standardem ProfiBus. Formát souborů GSD je přesně specifikován v normě EN50170 a popsán ve směrnici ProfiBus Guideline 2.041. ProfiBus Trade Organization kromě toho spravuje knihovnu souborů GSD ke všem certifikovaným slave zařízením. Tyto soubory jsou dostupné přes Internet na adrese http://www.profibus.com. Pro představu, jak by mohl vypadat soubor GSD, uvádíme následující částečný soubor GSD. #Profibus_DP GSD_Revision Vendor_Name Model_Name Revision Ident_Number Protocol_Ident Station_Type Hardware_Release Software_Release ; 9.6_supp 19.2_supp 93.75_supp 187.5_supp 500_supp 1.5M_supp 3M_supp 6M_supp 12M_supp MaxTsdr_9.6 MaxTsdr_19.2 MaxTsdr_93.75 MaxTsdr_187.5 MaxTsdr_500 MaxTsdr_1.5M MaxTsdr_3M MaxTsdr_6M MaxTsdr_12M ; Redundancy Repeater_Ctrl_Sig Implementation_Type 24V_Pins Fail_Safe Freeze_Mode_supp Sync_Mode_supp Auto_Baud_supp Set_Slave_Add_supp User_Prm_Data_Len
=1 = “firma XY.” = “IO-20983PB” = “A” = 0xX2F2 =0 =0 = “A” = “A”
; verze souboru GSD ; název prodejce ; název produktu
=1 =1 =1 =1 =1 =1 =1 =1 =1 = 60 = 60 = 60 = 60 = 100 = 150 = 250 = 450 = 800
; podporováno 9600 bps
=0 =2 = “SPC3” =0 =1 =1 =1 =1 =1 =3
; redundance není podporována ; obsahuje podporu RTS s TTL ; používá obvod ASIC Siemens SPC3 ; neobsahuje 24 V ; podporuje bezpečný režim ; podporuje FREEZE ; podporuje SYNC ; obsahuje automatickou detekci přenosové rychlosti ; Addr lze nastavit přes ProfiBus
; identifikační číslo ; pouze ProfiBus DP (1-DP/FMS) ; typ zařízení (slave) ; verze hardwaru zařízení ; verze softwaru zařízení
; maximální doba odezvy při různých přenosových rychlostech
11
User_Prm_Data = 0x00,0x00,0x00 ; parametry specifické pro modul ; 00H = nastavení výstupů na 0 ; 01H = uchování posledních hodnot výstupů ; 02H = nastavení výstupu na uživatelsky definované hodnoty v bytech 1 a 2 ; Byte 1 je nižší byte uživatelem definovaných výstupních dat, tj. výstupy 0 až 7 ; Byte 2 je vyšší byte uživatelem definovaných výstupních dat, tj. výstupy 8 až 11 ; Slave_Family Min_Slave_Interval Modular_Station Max_Diag_Data_Len ; I/O Byte Module EndModule ;
=3 =1 =0 =6
; Min_Slave_Interval je 100 µs ; 0 - kompaktní stanice, 1 - modulární stanice ; není zaslána žádná uživatelská diagnostika
= “12 CH DIG I/O:xxxx1198 76543210” 0x11,0x21
12
4. POTŘEBNÝ SOFTWARE Přední výrobci PLC často nabízejí ke svým produktům konfigurační software, který usnadňuje generování záznamů parametrů mastera pro jejich zařízení. Tento software bývá specifický pro daného mastera a závisí na designu master zařízení. Pro nastavení systému ProfiBus budete potřebovat softwarový konfigurační nástroj. Tento software slouží ke konfiguraci aktivních stanic a k jejich informování, jaká zařízení jsou přítomna na sběrnici a kolik dat je třeba si s nimi vyměnit. Připomínáme, že záznam parametrů mastera obsahuje všechna potřebná data pro systém sběrnice, včetně seznamu přidělených adres a parametrů sběrnice připojených slave zařízení. Seznam přidělených adres přiřazuje každému vzdálenému I/O bytu unikátní adresu v I/O prostoru I/O prostoru mastera. Konfigurační software využívá soubory GSD (master data zařízení) připojených slave zařízení k vytvoření projektu mastera. Tento projekt se zpravidla přenese nebo stáhne na mastera třídy 1. Pokud potřebujete do stávajícího projektu přidat další slave zařízení, stačí přidat do projektu novou stanici, přidat nová parametrizační data pro dané slave zařízení (import ze souboru GSD) a opět nahrát upravený projekt do mastera. Protože aktivní stanice sběrnice automaticky detekuje novou aktivní stanici sběrnice, můžete provést reset a systém sběrnice se sám překonfiguruje. Kromě dat týkajících se slave zařízení, která konfigurační nástroj získává ze souboru GSD, může být výrobcem slave zařízení vyžadováno zadat prostřednictvím konfiguračního nástroje následující data: • • • • • •
použitý protokol (DP, FMS nebo smíšená síť); přenosová rychlost (nástroj kontroluje, zda všechny stanice nebo slave zařízení tuto rychlost skutečně podporují); GAP faktor (počet cyklů sběrnice, než dojde k přidání nového mastera do komunikačního cyklu); nejvyšší adresa stanice (HSA); čas watchdog (max. čas, do kterého musí master poslat nová data stanici slave - pokud data do tohoto času nepošle, slave to vyhodnotí jako selhání stanice master a přepne se do bezpečného modu); u PLC typ CPU a použitý typ adresování.
Většina konfiguračních nástrojů vám rovněž umožní trvale uložit uživatelské parametry a konfigurační byty, které master automaticky rozešle slave zařízením během spouštění systému.
13
5. TYPY PŘENOSU ProfiBus DP používá při zasílání zpráv resp. telegramů dva typy přenosových služeb, které jsou definovány ve vrstvě 2 (datová vrstva) modelu ISO/OSI a popsány níže:
SRD („Send and Request Data with acknowledge“, odeslání a vyžádání dat s potvrzením) U SRD jsou data odesílána a přijímána v jednom cyklu telegramu. To znamená, že master pošle výstupní data do slave zařízení a jako odpověď případně získá vstupní data ze slave zařízení v rámci daného časového intervalu. U tohoto typu je důležité, že master může odeslat výstupní data do slave zařízení a vyžádat si od slave zařízení vstupní data jako odpověď, a to všechno v jediném cyklu telegramu. Jde o nejčastěji používanou přenosovou službu v ProfiBus DP, díky které je výměna dat u smíšených I/O zařízení velmi efektivní.
SDN („Send Data with No acknowledge“, odeslání dat bez potvrzení) Tato služba se používá, pokud musí být zpráva odeslána skupině slave zařízení (multicast) nebo všem slave zařízením (broadcast). Na zprávy typu broadcast nebo multicast slave zařízení neodpovídají ani je nepotvrzují. Třetí typ přenosových služeb používaný v ProfiBus FMS je SDA (Send Data with Acknowledge, odeslání dat s potvrzením), kde jsou data odeslána do masteru nebo slave zařízení a jako odpověď je odesláno krátké potvrzení. Tento typ se v ProfiBus DP nepoužívá a není zde popsán.
14
6. FORMÁT ZNAKŮ DAT PROFIBUS DP Všechny znaky ProfiBus sestávají z 11 bitů (1 start bit + 8 datových bitů + 1 paritní bit (sudá parita) + 1 stop bit). ProfiBus DP provádí výměnu dat v kódu NRZ („Non Return to Zero“, bez návratu k nule). To znamená, že forma signálu - binární „0“ nebo „1“ - se během trvání bitu nemění. Pokud se nic nepřenáší, potenciál klidového stavu na řádku je „1“. Start bit způsobí přechod řádku do stavu „0“. Znakový rámec ProfiBus v kódu NRZ (sudá parita) Start
D0
D1
D2
D3
D4
D5
D6
D7
Parita
Stop
“0”
0
1
2
3
4
5
6
7
sudá
“1”
←
LSB
←
←
←
←
←
←
MSB
←
←
Tento znakový rámec platí pro všechny datové resp. znakové byty, včetně bytů hlavičky telegramu. Při přenosu zpráv v sériových sítích ProfiBus jsou jednotlivé znakové nebo datové byty posílány v pořadí od nejméně významného bitu („least significant bit“, lsb) k nejvýznamnějšímu bitu („most significant bit“, msb) – viz výše. Při přenosu slova (více než 1 byte) se nejdříve přenáší vyšší byte a potom nižší byte (formát BigEndian/Motorola).
Kontrola chyb dat ProfiBus Sítě ProfiBus používají při kontrole chyb dat metodu sudé parity, která kontroluje nastavení paritního bitu datového rámce. Při kontrole pomocí sudé parity je sčítán počet jedničkových bitů v každém znakovém rámci. Každý znak obsahuje 8 bitů. Paritní bit se pak nastaví na 0 nebo 1 tak, aby výsledný celkový počet jedničkových bitů byl sudý. Pokud například znakový rámec obsahuje následujících osm datových bitů: 1100 0011, pak protože celkový počet jedničkových bitů je 4 (což již je sudé číslo), paritní bit rámce se pro sudou paritu nastaví na 0. Při přenosu zprávy je paritní bit vypočítán a vložen do rámce každého přenášeného znaku. Přijímací zařízení sečte počet jedničkových bitů v datové části rámce, a pokud se součet liší od odeslaného, nastaví chybový příznak. Kontrolou parity se tedy může zjistit chyba pouze tehdy, pokud se do znakového rámce během přenosu dostane (nebo se z něj ztratí) lichý počet bitů. Příklad pro sudou paritu: pokud se ze znaku ztratí dva jedničkové bity, výsledkem je stále sudý počet jedničkových bitů a chyba parity nebude detekována.
15
7. STRUKTURA TELEGRAMU (ZPRÁVY) PROFIBUS Telegram ProfiBus může obsahovat až 256 bytů -- do 244 bytů dat v každé zprávě každého uzlu plus obslužných 11 bytů. Tyto obslužné byty se nazývají hlavička telegramu. Všechny hlavičky telegramů mají 11 bytů, kromě telegramů Data_Exchange, kde informace hlavičky mají 9 bytů (DSAP a SSAP byty jsou vynechány). Uvědomte si, že 12 obslužných bytů je pro jednu zprávu až moc a ProfiBus je proto u malých objemů dat méně efektivní. Protože se však v jedné zprávě může vyskytovat až 244 bytů dat a protože výstupní data jsou odesílána a vstupní data přijímána v rámci jednoho cyklu telegramu, je ProfiBus efektivnější při nutnosti přenášet velké objemy dat. Mějte na paměti, že před každým odesláním telegramu s požadavkem musí být stav nečinnosti alespoň 33 Tbit (sync-time v jednotkách bit-time) a všechna data se přenášejí bez mezer mezi jednotlivými znaky. Všechny výměny dat mezi masterem a slave zařízením jsou řešeny v hlavičce telegramu pomocí přístupových bodů služby („Service Access Points“, SAP). ProfiBus DP používá SAP 54 až 62, plus výchozí SAP (Data_Exchange). Data a rámec hlavičky telegramu SD
LE
LEr
SD
DA
SA
FC
DSAP
SSAP
DU
FCS
ED
1b
1b
1b
1b
1b
1b
1b
1b
1b
var
1b
1b
Zkratky a byty rámce hlavičky telegramu ProfiBus DP SD
1 byte
Úvodní oddělovač („Start Delimiter“, slouží k rozlišení formátu telegramu)
LE
1 byte
Čistá délka dat („Net Data Length“) (DU) + DA + SA + FC + DSAP + SSAP.
LEr
1 byte
Délka opakovaně.
DA
1 byte
Cílová adresa („Destination Address“) – kam se zpráva posílá.
SA
1 byte
Zdrojová adresa („Source Address“) - odkud zpráva pochází. Adresa odesílající stanice.
FC
1 byte
Funkční kód („Function Code“, FC=typ/priorita zprávy). Slouží k identifikaci typu telegramu, tj. požadavek, potvrzení nebo odpověď (FC=13 signály diagnostických dat). Viz dále.
DSAP
1 byte
Cílový přístupový bod služby („Destination Service Access Point“, COM port přijímače). Používá cílová stanice k určení, jaká služba se má provést.
SSAP
1 byte
Zdrojový přístupový bod služby („Source Service Access Point“, COM port vysílače).
DU
1 až 32 b (nebo 1 - 244 b)
Datové jednotky („Data Units“) / čistá data od 1 do 244 bytů.
FCS
1 byte
Sekvence kontroly rámce („Frame Checking Sequence“, doplnění bytů obvodem ASIC v rámci určené délky).
ED
1 byte
Koncový oddělovač („End Delimiter“, vždy 16H).
Následující obrázek ilustruje sekvenci telegramu mezi masterem třídy 1 a slave zařízením DP. Další odstavce popisují jednotlivé byty rámce telegramu podrobněji.
16
Úvodní oddělovač (SD) Úvodní oddělovač identifikuje začátek telegramu a jeho obecný formát. ProfiBus DP používá čtyři typy úvodních oddělovačů (SD) pro telegramy s požadavky a odpověďmi plus pátou odpověď pro krátké potvrzení – viz níže. Krátká potvrzovací odpověď nepoužívá úvodní oddělovač. Telegram s odpovědí také nemusí používat stejný úvodní oddělovač jako telegram s požadavkem. Formát telegramu
Hodnota
Délka datového pole
SD1
10H
0 bytů (není datové pole)
SD2
68H
1 až 32 bytů (nebo až 244)
SD3
A2H
8 bytů pevně.
SD4
DCH
0 bytů (není datové pole)
SC
E5H
0 bytů (není datové pole), krátké potvrzení
Úvodní oddělovač SD1 (SD=10H) = Request_FDL_Status Telegram s pevnou informační částí a bez datového pole… SD1
DA
SA
FC
FCS
ED
10H
xx
Xx
x
x
16H
Aktivní stanice tento telegram pošle, když hledá nové aktivní stanice na sběrnici po vypršení času GAP. Úvodní oddělovač SD2 (SD=68H) = telegram s proměnlivou DU. Telegram s proměnlivou informační částí a délkou datového pole… SD2 LE LEr SD DA SA FC DSAP 68H
X
x
68H
xx
xx
x
3CH
←-----------PROM DÉLKA----------→
17
SSAP
DU
FCS
ED
3EH
x..x
X
16H
Datový telegram s proměnlivou délkou dat. Používá se u služby SRD (odeslání a vyžádání dat s potvrzením), která umožňuje odesílání výstupních dat a příjem vstupních dat v jednom cyklu telegramu. Úvodní oddělovač SD3 (SD=A2H) = telegram s pevnou DU. Telegram s pevnou informační částí a délkou datového pole… SD3
DA
SA
FC
DU
FCS
ED
A2H
xx
xx
x
x..x
x
16H
Tento oddělovač se používá pro datové telegramy s pevnou délkou dat (data DU mají vždy 8 bytů). Úvodní oddělovač SD4 (SD=DCH) = telegram s tokenem Telegram s tokenem master-to-master SD4
DA
SA
ED
DCH
xx
xx
16H
Tento oddělovač se používá při komunikaci mezi dvěma aktivními stanicemi sběrnice, kterou se přidělují přístupová práva. Žádný úvodní oddělovač Žádný úvodní oddělovač - krátký potvrzovací telegram… SC E5H
Krátký potvrzovací rámec SC je jednobytová zpráva, která slouží ke kladnému potvrzení požadavku SDA (pouze ProfiBus FMS) nebo zápornému potvrzení požadavku SRD.
Délka telegramu (LE a LEr) Tento byte specifikuje délku telegramu s proměnlivou délkou dat (tj. telegramy SD2) od bytu DA do koncového bytu DU (rozsah DU+5 b až 249). Délka DU je obecně omezena na 32 bytů, ale standard umožňuje délku až 244 bytů. V poli LEr se LE opakuje pro ochranu před redundantními daty.
Cílová adresa a zdrojová adresa (DA & SA, 00H..7FH) Master zařízení kontaktuje konkrétní slave zařízení tak, že umístí 8bitovou adresu slave zařízení do adresního pole DA (cílová adresa) telegramu. Do adresního pole SA (zdrojová adresa) vloží svoji vlastní adresu. Platné adresy jsou od 0 do 127 (00H..7FH). Adresa 126 je vyhrazena pro účely uvádění do provozu a nelze ji použít pro výměnu uživatelských dat. Adresa 127 je vyhrazena jako adresa pro broadcast, kterou rozpoznají všechna slave zařízení v síti. Slave zařízení při odpovídání umístí svoji adresu do pole zdrojové adresy své odpovědi, aby master věděl, které slave zařízení odpovídá, a adresu svého přiděleného mastera do pole cílové adresy své odpovědi. Slave zařízení neodpovídá na zprávy typu broadcast (adresa 127). Zahrnutí údaje DSAP nebo SSAP do telegramu s požadavkem nebo odpovědí je identifikováno nastavením nejvyššího bitu v adresním bytu DA (cílová adresa), resp. SA (zdrojová adresa). Mohlo by to vypadat jako adresa vyšší než 127, ale skutečnou adresu obsahuje pouze 7 nižších bitů DA a SA.
Funkční kód / kontrola rámce (FC) Pole funkční kód („Function Code“, FC) nebo kontrola rámce („Frame Control“) specifikuje typ telegramu (požadavek, odpověď, potvrzení), typ stanice (pasivní nebo aktivní/slave nebo master), prioritu a potvrzení telegramu (úspěšné či neúspěšné) takto: 18
Funkční kódy ProfiBus DP pro telegramy s požadavky FC kód
Funkce (MSB v FC = 1)
4
SDN low (odeslání dat bez potvrzení)
6
SDN high (odeslání dat bez potvrzení)
7
Vyhrazeno/požadavek na diagnostická data
9
Požadavek na stav FDL s odpovědí
12
SRD low (odeslání a vyžádání dat s potvrzením)
13
SRD high (odeslání a vyžádání dat s potvrzením)
14
Požadavek na ID s odpovědí
15
Požadavek na stav LSAP s odpovědí
Funkční kódy ProfiBus DP pro telegramy s potvrzením FC kód
Funkce (MSB v FC = 0)
0
ACK kladné
1
ACK záporné (FDL/FMA1/2 uživatelská chyba UE, chyba rozhraní)
2
ACK záporné (nedostatek prostředků/paměti pro odeslání dat (RR)).
3
ACK záporné (neaktivována žádná služba (RS), neaktivován SAP).
8
Odpověď FDL/FMA 1/2 Data low and Send Data OK)
9
ACK záporné (žádná odpověď FDL/FMA1/2 Data & Send Data OK).
10
Odpověď FDL Data High and Send Data OK.
12
Odpověď FDL Data Low, No resource for Send Data.
13
Odpověď FDL Data High Resource for Send Data.
Přístupové body služby (SSAP a DSAP) Výměny dat jsou v hlavičce telegramu řešeny pomocí přístupových bodů služby (SAP). SAP určuje, jaká data se mají přenést nebo jaká funkce provést. Byty DSAP a SSAP používají pouze telegramy, které obsahují datová pole (tj. telegramy SD2 a SD3). Přenos SRD kombinuje výstupní zprávu a vstupní odpověď v jednom cyklu telegramu. Hlavička telegramu obsahuje SSAP (zdrojový přístupový bod služby), případně DSAP (cílový přístupový bod služby), který udává, jaká služba/jaké služby se bude/budou provádět. Výjimkou je cyklický telegram Data_Exchange, který se provádí s defaultním SAP (SSAP nebo DSAP se v jeho hlavičce nenachází). A některé telegramy mohou obsahovat DSAP nebo SSAP, ale ne oboje. Zahrnutí údaje DSAP nebo SSAP do telegramu s požadavkem nebo odpovědí je identifikováno nastavením nejvyššího bitu v adresním bytu DA (cílová adresa) resp. SA (zdrojová adresa). Na základě zjištěných SAP dokáže každá stanice rozpoznat, jaká data byla vyžádána a jaká odpovědní data je třeba odeslat. ProfiBus DP používá SAP 54 až 62 z následujícího seznamu plus výchozí SAP. SAP
SLUŽBA
Výchozí SAP=0
Cyklická výměna dat (Write_Read_Data)
SAP54
SAP master-to-master (komunikace M-M)
SAP55
Změna adresy stanice (Set_Slave_Add)
SAP56
Čtení vstupů (Rd_Inp)
SAP57
Čtení výstupů (Rd_Outp) 19
SAP
SLUŽBA
SAP58
Řídicí příkazy pro slave zařízení DP (Global_Control)
SAP59
Čtení konfiguračních dat (Get_Cfg)
SAP60
Čtení diagnostických dat (Slave_Diagnosis)
SAP61
Zaslání parametrizačních dat (Set_Prm)
SAP62
Kontrola konfiguračních dat (Chk_Cfg)
SAP55 je volitelný a může být deaktivován, pokud slave zařízení nemá pro adresu stanice energeticky nezávislou paměť. SAP 56, 57 a 58 nejsou aktivovány, dokud se slave zařízení DP nenachází ve stavu Data_Exchange. SAP 59, 60, 61 a 62 jsou aktivovány vždy. Položky DSAP a SSAP v telegramu s požadavkem jsou obsaženy i v telegramu s odpovědí, kde DA + SA + DSAP + SSAP v odpovědní zprávě odpovídá SA + DA + SSAP + DSAP v telegramu s požadavkem (pozice obsahu je přehozená).
Datová jednotka (DU) Toto pole obsahuje data pro stanici na DA (data požadavku) nebo data pro stanici na SA (odpovědní data). DU je obecně omezena na 32 bytů, ale standard umožňuje délku až 244 bytů (s 11 byty hlavičky celkem 255 bytů).
Sekvence kontroly rámce (FCS) Toto pole obsahuje sekvenci kontroly rámce neboli kontrolní součet telegramu (00H..FFH). Jde prostě o součet ASCII bytů informací od DA do DU modulus 256. Kontrolní součet = (DA + SA + FC + DU) mod 256, čili jednoduše sečtení bytů a jejich vydělení FFH (255). Jde o integrovanou funkci, kterou standardně provádí ASIC ProfiBus.
Koncový oddělovač (ED) Tento byte označuje konec telegramu ProfiBus a má pevnou hodnotu 16H.
20
8. PŘÍKAZOVÉ FUNKCE DP Následující funkce jsou implementovány ve slave zařízeních DP a masterech třídy 1 (viz popisy SAP výše). Existuje pouze 8 povinných funkcí slave zařízení plus volitelná funkce Set_Slave_Add (adresu slave zařízení lze obvykle nastavit pomocí externích přepínačů). Pro mastery třídy 2 jsou všechny níže uvedené příkazy volitelné. Funkce
Slave DP
Master třídy 1
Data_Exchange
√
√
Rd_Inp
√
Rd_Outp
√
Slave_Diag
√
√
Set_Prm
√
√
Chk_Cfg
√
√
Get_Cfg
√
Global_Control
√
Set_Slave_Address
√
√ (volitelně)
Get_Master_Diag
√
Start_Seq
√ (volitelně)
Download
√ (volitelně)
Upload
√ (volitelně)
End_Seq
√ (volitelně)
Act_Para_Brct
√ (volitelně)
Act_Para
√ (volitelně)
Status funkce Příslušná potvrzení funkcí budou obsahovat stavový parametr, jehož otestováním je možno ověřit úspěšnost požadavku na funkci. Možné stavové hodnoty jsou uvedeny v následující tabulce: Stavová hodnota
Popis
OK
Kladné potvrzení.
IV
Neplatné parametry v požadavku.
NO
Služba není v tomto stavu možná.
DS
Lokální entita FDL/PHY není v logickém token ringu nebo je odpojena od linky.
NA
Záporné potvrzení – žádná reakce vzdálené stanice.
RS
Služba nebo vzdálená adresa u vzdálené LSAP nebo vzdálené LSAT není aktivována: Vzdálená stanice není stanice DP. Vzdálená stanice není připravena na tyto funkce. Vzdálená stanice je asociována s jiným zdrojem požadavků. Volitelná služba není k dispozici.
RR
Zdroje pro vzdálenou FDL entitu jsou nedostačující nebo nejsou k dispozici.
UE
Chyba rozhraní vzdáleného DDLM/FDL.
NR
Žádná odpovědní data.
TO
Časový limit funkce vypršel.
21
Stavová hodnota
Popis
FE
Chyba formátu rámce požadavku.
RE
Chyba formátu rámce odpovědi.
LE
Datový blok příliš dlouhý (upload/download)
NI
Funkce není implementována.
EA
Příliš velká oblast (upload/download)
AD
Přístup odepřen.
IP
Neplatný parametr.
SC
Konflikt sekvence.
SE
Chyba sekvence.
NE
Oblast neexistuje.
DI
Nekompletní data.
NC
Sada parametrů mastera není kompatibilní.
Další informace o kódech stavů funkcí najdete v normě EN 50170.
22
9. PROVOZNÍ STAVY A PŘÍSLUŠNÉ FUNKCE Připomínáme, že slave zařízení ProfiBus DP musí před stavem výměny dat projít 3 dalšími stavy: zapnutí/reset, parametrizace a konfigurace I/O. Každý stav slave zařízení DP a příslušné funkční telegramy jsou popsány v následujících odstavcích. Podrobnější vysvětlení viz EN 50170 svazek 2.
Počáteční zapnutí/reset V počátečním stavu po zapnutí se slave zařízení inicializuje a automaticky detekuje správnou přenosovou rychlost pro komunikaci. Pokud byla nastavena platná adresa od 0 do 125, slave zařízení přejde do stavu parametrizace. Pokud je však adresa slave zařízení nastavena na 126 (výchozí adresa při spouštění), slave zařízení vyčká na telegram „Set_Slave_Address“ od mastera třídy 2, který před přechodem do stavu parametrizace změní jeho adresu stanice. Master třídy 2 může v hlavičce telegramu použít SAP 55 (Set_Slave_Add) pro změnu adresy slave zařízení po spuštění, ale pouze v případě, že lock bit Set_Slave_Address slave zařízení je prázdný a zařízení má defaultní adresu 126. Stanice, jejichž adresu nejde nastavit externě, mají defaultní adresu 126 a tuto adresu lze změnit pouze master zařízením třídy 2. Adresa musí být nastavena na platnou adresu od 0 do 125, aby mohlo slave zařízení přejít do stavu parametrizace. Aby se adresa slave zařízení nemusela po spuštění znovu přidělovat, je standardně uložena v energeticky nezávislé paměti a po inicializaci se nahraje, nebo může být vložena z přepínačů na jednotce. Pokud existuje několik podobných stanic, jejichž adresy nelze nastavit externě a mají defaultní adresu 126, je nutné je připojovat do sítě postupně, aby se jejich adresy mohly nastavit. U inicializace je důležité, že adresa slave zařízení musí být nastavena na platnou adresu od 0 do 125 (buď prostřednictvím externích přepínačů, nebo prostřednictvím příkazu Set_Slave_Address od mastera třídy 2), aby mohlo slave zařízení přejít ze stavu inicializace do stavu parametrizace. Adresu 126 nelze použít pro výměnu dat, protože je vyhrazena pro účely spouštění. Některé stanice mají externí přepínače pro nastavování adresy slave zařízení, ale podporují i změny adres prostřednictvím příkazu Set_Slave_Address, pokud jsou externí přepínače nastaveny na 126 a adresa interní EEPROM je rovněž 126. Pokud je jednotka místo toho zapnuta s externími adresovými přepínači nastavenými od 0 do 125, požadavek Set_Slave_Address je odmítnut s chybovou zprávou RS. Pokud je jednotka zapnuta s externími adresovými přepínači nastavenými na 126, přečte svoji adresu z interní paměti EEPROM. Adresu uloženou v EEPROM lze upravovat pouze pomocí příkazu Set_Slave_Address. Další změny adresy v interní EEPROM lze také zablokovat. Pokud je adresa v interní EEPROM nastavena rovněž na 126 (a externí přepínače jsou na 126), jednotka počká na příkaz Set_Slave_Address, kterým se změní její adresa v EEPROM na platnou adresu od 0 do 125, než přejde do stavu parametrizace. Pokud je nastaven (uzamčen) lock bit adresy, další změny prostřednictvím příkazu Set_Slave_Address jsou spolehlivě zablokovány. V takovém případě můžete nastavit externí přepínače na 255 (FFH) a jednotku znovu zapnout; tím se lock bit vymaže a adresa v interní EEPROM se opět nastaví na 126.
Telegram Set_Slave_Add (SAP 55) Před uvedením do provozu musí mít stanice již přidělenou unikátní adresu stanice od 0 do 125. To se obvykle provede pomocí hardwarových přepínačů na zařízení. V případě, že zařízení není vybaveno přepínači pro nastavení adresy (nebo jsou adresové přepínače nastaveny na 126), adresu lze nastavit prostřednictvím tohoto příkazu sběrnice z mastera třídy 2. Telegram Set_Slave_Add používá master třídy 2 ke změně adresy slave zařízení po spuštění, když jeho adresu nelze jinak nastavit pomocí hardwarových přepínačů (a má defaultní adresu 126). Tento příkaz také 23
umožňuje zablokovat další změny adresy po sběrnici. Tento telegram vysílá z bezpečnostních důvodů identifikační číslo Ident_Number. Pokud identifikační číslo neodpovídá identifikačnímu číslu cílového slave zařízení, adresa se nezmění. Kromě toho, pokud lock bit byl již nastaven, adresa se také nezmění. Slave zařízení DP, kterým nebyla přidělena adresa, mají zpravidla defaultní adresu 126, která je vyhrazena pro spouštění prostřednictvím master zařízení třídy 2. Masterům třídy 1 není dovoleno použít adresu 126 pro komunikaci. Dále platí, že k síti může být současně připojeno pouze jedno slave zařízení s adresou 126 a tato adresa se nesmí použít k výměně I/O dat. V případě modulů, které podporují změny adresy pomocí externích přepínačů a volitelně prostřednictvím tohoto příkazu, se příkaz Set_Slave_Address používá k úpravě nastavení interní adresy (uložené v EEPROM). Nastavení interní adresy určuje adresu slave zařízení, pokud je jednotka zapnuta s externími přepínači nastavenými na 126. Naopak, pokud jsou externí přepínače nastaveny na 0-125, pak adresu slave zařízení určuje nastavení přepínačů, nikoliv hodnota v EEPROM. Aby však příkaz Set_Slave_Address mohl změnit adresu slave zařízení, musí být jak interní adresa v EEPROM, tak externí přepínače nastaveny na adresu 126 před spuštěním. Ve všech ostatních případech bude příkaz Set_Slave_Address zamítnut s chybovým kódem RS. Telegram Set_Slave_Add SD
LE
LEr
SD
DA
SA
FC
DSAP
SSAP
DU
FCS
ED
68H
09H
09H
68H
XX
XX
X
37H (55)
3EH (62)
X..
X
16H
DU Byte 1 (New_Slave_Add, 0-125) 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
DU Byte 2 (Ident_Number pro bezpečnostní kontrolu, vyšší byte) 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
DU Byte 3 (Ident_Number pro bezpečnostní kontrolu, nižší byte) 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Identifikační číslo (Ident_Number) slouží k založení odkazu mezi slave zařízením a příslušným souborem GSD. Číslo je přiděleno organizací ProfiBus Trade Organization a nelze je změnit. Zde se používá pro účely zabezpečení - pokud Ident_Number neodpovídá identifikačnímu číslu slave zařízení, adresa se nezmění. Pouze mastery třídy 2 Ident_Number nevyžadují. DU Byte 4 (LOCK - povolení/zakázání dalších změn adresy) 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
00H = False/odblokováno, adresu bude možno později změnit. 1 01H = True/zablokováno, žádná další změna adresy nebude možná . 1
Chcete-li odblokovat modul pro změny adresy, nastavte externí přepínače na 255 (FFH) před zapnutím napájení, čímž se lock bit vymaže a interní EEPROM se znovu nastaví na 126. Potom pouze nastavte přepínače podle potřeby od 0 do 125, případně na 126, pokud chcete použít příkaz Set_Slave_Address, a znovu jednotku zapněte. Otestováním parametru Status je možno zjistit, jestli byl rámec požadavku Set_Slave_Add úspěšně odeslán a přijat slave zařízením. Potvrzení však neukazuje, zda byly nové hodnoty skutečně slave zařízením přijaty. Master může zkontrolovat správné provedení této funkce pomocí Slave_Diag s novou adresou slave zařízení DP a následným otestováním parametru Status na následující možné hodnoty: OK, DS, NA, RS, RR, UE a RE. 24
Po dokončení inicializace po zapnutí a po nastavení adresy slave zařízení na platnou adresu 0-125 přejde slave zařízení do stavu Wait_Prm (čekání na parametrizaci).
Parametrizace Jakmile slave zařízení dokončí svoji inicializaci po zapnutí a jeho adresa je nastavena na platnou adresu 0125, přejde slave zařízení do stavu čekání na parametrizační telegram (Set_Prm) od mastera, který pro slave zařízení identifikuje mastera a stanoví provozní režim slave zařízení. Aby mohl master provést parametrizaci (Set_Prm), musí být adresa slave zařízení již nastavena na platnou adresu 0-125. Pokud je adresa slave zařízení místo toho nastavena na 126, bude před pokračováním očekávat příkaz Set_Slave_Address. Při čekání na parametrizační telegram bude slave zařízení odmítat všechny ostatní telegramy kromě Slave_Diag nebo Get_Cfg.
Telegram Set_Prm – SAP 61 Tato funkce slouží k nastavení parametrů slave zařízení při spuštění, po restartu nebo resetu systému a kdykoliv mimo stav výměny dat. Parametrizační telegram obsahuje minimálně 7 bytů specifických informací vyžadovaných standardem ProfiBus. Mezi ně patří: monitoring odpovědi/čas watchdogu TWD, čas TSDR pro časování master/slave, zapnutí/vypnutí režimu Freeze/Sync, zablokování/odblokování slave zařízení pro tohoto mastera, přiřazení skupin, adresa mastera a identifikační číslo. Telegram může dále obsahovat také další uživatelské parametry v bytech 8 až 32 nebo až do 244. Parametrizační telegram Set_Prm s hlavičkou SD
LE
LEr
SD
DA
SA
FC
DSAP
SSAP
DU
FCS
ED
68H
X
X
X
8x
8x
X
3DH (61)
3EH (62)
X..
X
16H
U přenosu SRD platí, že DSAP specifikuje požadavek na funkci Set_Prm (61), zatímco SSAP vyžaduje, aby následovala funkce Chk_Cfg (62) (vrácení odpovědi). Parametrizační telegram Set_Prm DU Byte 1 – Station_status 7 Lock_Req
6 Unlock_Req
5 Sync_Req
4
3
Freeze_Req
WD_On
2
1
0
Vyhrazeno – nast. na 0
WD_Fact_1
WD_On (watchdog zapnut): Pro aktivaci kontroly watchdogem nastavte tento bit na 1. Další informace najdete v kapitole Watchdog. Freeze_Req (požadavek na režim Freeze): Je-li tento bit nastaven, slave zařízení bude ihned po obdržení funkce Global_Control pracovat v režimu Freeze. Pokud slave zařízení režim Freeze nepodporuje, nastaví v diagnostických informacích bit Diag.Not_Supported. Sync_Req (požadavek na režim Sync): Je-li tento bit nastaven, slave zařízení bude ihned po obdržení funkce Global_Control pracovat v režimu Sync. Pokud slave zařízení režim Sync nepodporuje, nastaví v diagnostických informacích bit Diag.Not_Supported. Unlock_Req (požadavek na odblokování): Viz následující tabulka. Lock_Req (požadavek na zablokování): Viz následující tabulka.
25
Lock Bit 7
Unlock Bit 6
0
0
Parametr Min TSDR lze změnit. Všechny ostatní parametry zůstávají beze změny.
0
1
Slave zařízení DP je odblokováno/uvolněno pro ostatní mastery.
1
0
Slave zařízení DP je zablokováno pro ostatní mastery. Všechny parametry jsou akceptovány a lze je předávat (kromě min TSDR = 0).
1
1
Slave zařízení DP je odblokováno/uvolněno pro ostatní mastery.
Popis
Telegram Set_Prm DU Byte 2 – WD_Fact_1, rozsah 1 až 255 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
WD_Fact_1 Telegram Set_Prm DU Byte 3 – WD_Fact_2, rozsah 1 až 255 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
WD_Fact_2 Watchdog se zapíná a vypíná prostřednictvím bitu WD_On v DU bytu 1. Byty 2 a 3 jsou faktory používané pro nastavení kontrolního času watchdogu (TWD). Čas watchdogu je vypočítán na hodnotu mezi 10 ms a 650 s takto: TWD =10ms * WD_Fact_1 * WD_Fact_2. Kontrola watchdogem vede k přechodu výstupů slave zařízení do bezpečného stavu, pokud se masterovi nepodaří navázat komunikaci se slave zařízením dříve, než tento čas vyprší. Telegram Set_Prm DU Byte 4 – Min TSDR , rozsah 11 až 255 Tbit 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Min TSDR: Minimální čas v Tbit (bit time), po němž smí slave zařízení odpovědět. Tato hodnota musí být menší než Max TSDR. V normě je trvale stanoveno 11 Tbit. Byte 4 nastavuje minimální čas TSDR (v bit time, 11-255), po který bude slave zařízení čekat, než mu bude dovoleno poslat odpověď masteru. Je-li stanoveno 00H, použije se předchozí nebo výchozí hodnota. Telegram Set_Prm DU Byte 5 (Ident_Number, vyšší byte) 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Telegram Set_Prm DU Byte 6 (Ident_Number, nižší byte) 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Ident_Number slave zařízení se vysílá pro účely zabezpečení. Parametry Set_Prm nebudou akceptovány, pokud toto číslo neodpovídá číslu slave zařízení. Minimální TSDR však přesto může být nastaven, pokud Ident_Number neodpovídá a oba bity Lock_Req a Unlock_Req jsou nastaveny na 0.
26
Telegram Set_Prm DU Byte 7 (Group_Ident) 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Group_Ident ProfiBus DP podporuje zasílání zpráv multicast prostřednictvím funkce telegramu Global_Control konkrétní skupině připojených slave zařízení, která se identifikují tímto číslem skupiny. Každý bit představuje unikátní skupinu. Pozor: Group_Ident je akceptováno pouze tehdy, je-li rovněž nastaven bit Lock_Req. Telegram Set_Prm DU Byty 8 až 32 nebo 244 (volitelně, User_Prm_Data) 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
0
WD_Base
Dis_Stopbit
Dis_Startbit
Spec_User_Prm_Byte 8 (vztahuje se k ASIC SPC3) 0
0
0
0
Obecně platí, že tyto byty jsou definovány uživatelem pro parametry vztahující se ke konkrétnímu slave zařízení DP nebo modulu. Lze je použít k předávání informací při startu nebo pro úpravu hodnot nebo úrovní a standardně zaujímají místo DIP přepínačů. Jejich význam a rozsah se liší podle aplikace. U modulů používajících ASIC obvody SPC3, je DU Byte 8 definován jak uvedeno níže a zbývající byty jsou definovány uživatelem. Telegram Set_Prm DU Byte 8: Spec_User_Prm_Byte (SPC3 ASIC) Bit
Název
Popis
Výchozí stav
0
Dis_Startbit
Slouží k vypnutí sledování start bitu v přijímači (1 = disabled).
Dis_Startbit = 1 (Disabled)
1
Dis_Stopbit
Slouží k vypnutí sledování stop bitu v přijímači (1 = disabled).
Dis_Stopbit = 0 (Enabled)
2
WD_Base
Slouží k zadání časové báze, kterou se řídí pulzy watchdogu (0 = 10 ms, 1 = 1 ms)
WD_Base = 0 (Časová báze je 10 ms)
3-7
Vyhrazeno
Nepoužívá se – nastaveno na 0.
0
Parametrizační telegram DU Byty 9-244 (volitelně User_Prm_Data) 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
User_Prm_Data Obvodem ASIC slave zařízení je vyhodnoceno v souladu s normou prvních 7 bytů Set_Prm (bez User_Prm_Data) nebo prvních 8 bytů (se Spec_User_Prm_Data). U slave zařízení je osmý byte určen pro charakteristiky vztahující se k SPC3. Zbývající byty jsou k dispozici pro aplikaci. Odpovědí slave zařízení na parametrizační telegram je „E5H“ (krátké potvrzení). Po nastavení jeho parametrů přejde slave zařízení do stavu konfigurace I/O. Úspěšnost nebo neúspěšnost parametrizačního telegramu lze zjistit otestováním parametru Status na možné následující hodnoty: OK, DS, NA, RS, RR, UE a RE.
27
Konfigurace I/O Po parametrizaci (Set_Prm) čeká slave zařízení na konfigurační telegram (Chk_Cfg). Tento telegram určuje počet vstupních a výstupních bytů, které je třeba si vyměnit se slave zařízením v každém cyklu telegramu. Na základě konfiguračního telegramu si slave zařízení také zkontroluje konfiguraci, která mu byla zaslána, podle uložené konfigurace. Slave zařízení čekající na Chk_Cfg přijímá pouze telegramy Set_Prm, Slave_Diag nebo Get_Cfg.
Telegram Chk_Cfg – SAP 62 Na základě konfiguračního telegramu Chk_Cfg si slave zařízení zkontroluje konfiguraci, která mu byla zaslána, podle uložené konfigurace. Pokud při porovnání zaslané informace s údaji pocházejícími ze souboru GSD zjistí slave zařízení konflikt, oznámí masteru nesprávnou konfiguraci, když je později tázáno na diagnostiku, a nepokračuje ve výměně dat s masterem. Konfigurační telegram potvrdí slave zařízení krátkým potvrzením „E5H“. Master ProfiBus zjistí konfiguraci vstupních a výstupních dat pomocí telegramu Read_Cfg a potom nakonfiguruje slave zařízení pomocí Chk_Cfg. Odpověď slave zařízení musí obsahovat konfiguraci, s níž se slave zařízení může nabootovat. Telegram Chk_Cfg Configuration s hlavičkou SD
LE
LEr
SD
DA
SA
FC
DSAP
SSAP
DU
FCS
ED
68H
X
X
X
8x
8x
X
62 (3EH)
62 (3E)
X..
X
16H
Konfigurační telegram DU Byte 1 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Konfigurační telegram DU Byte x 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Formát DU Bytů 1-X 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
0=konzistentnost bytu/slova 1=konzistentnost celá délka
0=byte 1=slovo
Vstup/výstup: 00=speciální formát 01=vstup 10=výstup 11=vstup a výstup
Délka dat: 0000 = 1 byte/slovo 1111 = 16 bytů/slov
Telegram Get_Cfg – SAP 59 Telegram Read Configuration Data (Get_Cfg) je akceptován slave zařízením v libovolném stavu a umožňuje masteru zjistit aktuální konfiguraci slave zařízení (Real_Cfg_Data). Parametr Real_Cfg_Data obsahuje konfigurační data v podobě řetězce o 1 až 32 bytech (volitelně až do 244 bytů), které mají stejný formát jako identifikátory výše uvedeného Chk_Cfg. Úspěšnost nebo neúspěšnost této funkce lze zjistit otestováním parametru Status na možné následující hodnoty: OK, DS, NA, RS, UE, NR a RE. 28
Telegram Diag_Data (požadavek na diagnostiku) – SAP 60 Pokud během výměny dat vznikne nutnost diagnostické zprávy, slave zařízení DP to oznámí masteru zasláním odpovědi s vysokou prioritou (viz Kód funkce). V následujícím cyklu sběrnice pak master pošle slave zařízení telegram se žádostí o diagnostiku místo normálního telegramu výměny dat. Dále, kterýkoliv master (ne jen přidělený master) si může kdykoliv vyžádat diagnostická data od kteréhokoliv slave zařízení. Telegram Diag_Data je masterem používán k vyžádání diagnostických informací od slave zařízení. Při spouštění si master standardně vyžádá diagnostická data před odesláním parametrizačního telegramu a potom znovu po konfiguraci, než naváže se slave zařízením režim výměny dat. Master vyhodnotí diagnostické informace a na základě toho určí, zda jsou parametrizační a konfigurační informace správné. Pokud není vyžadována žádná další služba diagnostiky, master přejde k výměně dat se slave zařízením.
Diagnostický telegram Diag_Data Request Diagnostics s hlavičkou SD2
LE
LEr
SD
DA
SA
FC
DSAP
SSAP
FCS
ED
68H
X
X
68H
8x
8x
X
3CH (60)
3EH (62)
X
16H
Telegram odpovědi na žádost o diagnostiku s hlavičkou SD
LE
LEr
SD
DA
SA
FC
DSAP
SSAP
DU
FCS
ED
68H
X
X
68H
8x
8x
X
3EH (62)
3CH (60)
X..
X
16H
Diagnostické informace slave zařízení DP sestávají ze 6 bytů standardních diagnostických informací plus případných uživatelských diagnostických informací (ke konkrétnímu slave zařízení). Nastavený bit (1) na pozici znamená, že došlo k připojené definici. Úspěšnost nebo neúspěšnost funkce Diag_Data lze zjistit otestováním parametru Status na možné následující hodnoty: OK, DS, NA, RS, UE, NR a RE.
Odpovědní telegram Diag_Data DU Byte 1 – Station_status_1 Bit
DIAGNOSTIKA
0
Diag.Station_Non_Existent: Nastaveno masterem na 1, pokud po lince nelze navázat kontakt se slave zařízením. Slave nastaví tento bit na 0.
1
Diag.Station_Not_Ready: Nastaveno slave zařízením, pokud není připraveno k přenosu dat.
2
Diag.Cfg_Fault: Nastaveno slave zařízením, pokud detekuje nesouhlas konfiguračních dat.
3
Diag.Ext_Diag: Nastaveno slave zařízením jako indikace, že diagnostický záznam je v diagnostické oblasti konkrétního slave zařízení (viz níže).
4
Diag.Not_Supported: Nastaveno slave zařízením, pokud požadovaná funkce nebo služba není podporována.
5
Diag.Invalid_Slave_Response: Slave nastaví tento bit na 0. Master jej nastaví na 1, pokud obdrží od slave zařízení nepravděpodobnou odpověď.
6
Diag.Prm_Fault: Nastaveno slave zařízením, pokud poslední rámec parametru byl chybný (špatná parametrizace, nesprávná délka, nesprávné Ident_Number atd.).
7
Diag.Master_Lock: Nastaveno masterem třídy 1 jako indikátor, že slave zařízení bylo parametrizováno jiným masterem (pokud adresa v DU bytu 4 není 255 a liší se od vlastní adresy). Slave zařízením nastaveno na 0.
29
Odpovědní telegram Diag_Data DU Byte 2 – Station_status_2 Bit
DIAGNOSTIKA
0
Diag.Prm_Req: Nastaveno slave zařízením, pokud potřebuje být parametrizováno a vyčištěno po dokončení parametrizace.
1
Diag.Stat_Diag: Statická diagnostika. Slave zařízení nastaví tento bit, aby master získal diagnostické informace, dokud není tento bit vymazán (slave zařízení jej nastaví, pokud není schopno zajistit uživatelská data).
2
Slave nastaví tento bit na 1.
3
Diag.WD_ON: Nastaveno slave zařízením jako indikace, že je watchdog aktivní.
4
Diag.Freeze_Mode: Nastaveno slave zařízením po obdržení řídicího příkazu Freeze.
5
Diag.Sync_Mode: Nastaveno slave zařízením po obdržení řídicího příkazu Sync.
6
Vyhrazeno.
7
Diag.Deactivated: Nastaveno masterem, pokud bylo slave zařízení označeno jako neaktivní v sadě parametrů slave a je vyňato z cyklického zpracování. Slave nastaví tento bit na 0.
Odpovědní telegram Diag_Data DU Byte 3 – Station_status_3 Bit
DIAGNOSTIKA
0-6
Vyhrazeno.
7
Diag.Ext_Diag_Overflow: Nastaveno, pokud je diagnostických informací více, než je uvedeno v Ext_Diag_Data. Například nastaveno slave zařízením, pokud má slave více diagnostiky, než může vložit do svého bufferu pro odeslání. Nastaveno masterem, pokud slave zařízení posílá více diagnostických informací, než může master vložit do svého bufferu pro diagnostiku.
Odpovědní telegram Diag_Data DU Byte 4 (Para Master Address) Bit
DIAGNOSTIKA
0-7
Diag.Master_Add: Sem je vložena adresa masteru, který parametrizoval toto slave zařízení. Pokud slave zařízení nebylo parametrizováno žádným masterem, slave zařízení DP vloží 255 (FF bez parametrizace).
Odpovědní telegram Diag_Data DU Byte 5 - Ident_Number vyšší byte Bit
DIAGNOSTIKA
0-7
Identifikační číslo výrobce, vyšší byte pro ID a ověření.
Odpovědní telegram Diag_Data DU Byte 6 - Ident_Number nižší byte Bit
DIAGNOSTIKA
0-7
Identifikační číslo výrobce, nižší byte pro ID a ověření.
DU byty 7-32 (nebo volitelně až 244 bytů) obsahují diagnostické informace pro konkrétní slave zařízení DP, strukturované do bloků podle typu formátu: týkající se zařízení, týkající se identifikátoru a týkající se kanálu. Odpovědní telegram Diag_Data DU Byte 7-X – Ext_Diag_Data Bit
DIAGNOSTIKA
0-7
Ext_Diag_Data (viz formáty níže, rozšířená diagnostická data jsou uvedena ve specifikacích modelu).
Ext_Diag_Data - diagnostika týkající se konkrétní aplikace Master může ukládat uživatelskou diagnostiku v následujících třech různých formátech: týkající se zařízení, týkající se identifikátoru a týkající se kanálu. 30
Diagnostika týkající se zařízení Tyto informace se vztahují k zařízení a mohou být kódovány v libovolné formě. Lze je použít k uvedení obecných diagnostických informací, jako je: přehřátí, podpětí, přepětí apod. Diagnostika týkající se zařízení Byte 1 z X – byte hlavičky 7
6
5
4
3
2
1
0
0
0
X
X
X
X
X
X
Bity 7,6 = 00
Bity 5-0 = délka bloku v bytech včetně bytu hlavičky 2 až bytu hlavičky 63.
Diagnostika týkající se zařízení Byte 2 z X – byte(byty) pole diagnostiky 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Diagnostické kódování se vztahuje k zařízení a může se kódovat podle potřeby. Příklady diagnostiky týkající se zařízení: Byte
7
6
5
4
3
2
1
0
1
0
0
0
0
0
1
0
1
Diagnostika týkající se zařízení, 5 bytů (hlavička + 4 byty)
2
X
X
X
X
X
X
X
X
Kódovat podle potřeby
3
X
X
X
X
X
X
X
X
Kódovat podle potřeby
4
X
X
X
X
X
X
X
X
Kódovat podle potřeby
5
X
X
X
X
X
X
X
X
Kódovat podle potřeby
Diagnostika týkající se identifikátoru (u modulárních systémů) Diagnostická struktura je založena na modulárním systému, kde každý modul má jeden identifikátor (konfigurační byte). Tím lze snadno zjistit vadný nebo chybový stav a žádný další popis není potřeba. Jeden bit je vyhrazen pro každý byte identifikátoru, specifikovaný v konfiguraci (např. 0 x 10 pro 1bytový vstup). Nastavený bit na bitové pozici znamená, že se na tuto I/O diagnostiku čeká. Nekonfigurované bity jsou nastaveny na 0 a byty jsou doplněny do bytových limitů. Pokud jde o modulární systémy s jedním identifikačním bytem na každý modul, můžete diagnostiku určit podle konkrétního modulu. Jeden bit v každém modulu označuje diagnózu. Diagnostika týkající se identifikátoru Byte 1 z X – byte hlavičky 7
6
5
4
3
2
1
0
0
1
X
X
X
X
X
X
Bity 7,6 = 01
Bity 5-0 = délka bloku v bytech včetně bytu hlavičky 2 až bytu hlavičky 63.
Diagnostika týkající se identifikátoru Byte 2 z X – bitová struktura 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Nastavený bit na bitové pozici znamená, že odpovídající byte identifikátoru obsahuje diagnostiku.
31
Příklady diagnostiky týkající se identifikátoru: Byte
7
6
5
4
3
2
1
0
1
0
1
0
0
0
1
0
1
Diagnostika týkající se identifikátoru, 5 bytů (hlavička + 4 byty)
2
0
0
0
0
0
0
0
1
Identifikátor číslo 0 (modul 1) obsahuje diagnostiku
3
0
0
1
0
0
0
0
0
Identifikátor číslo 13 (modul 14) obsahuje diagnostiku
4
0
0
0
0
0
0
1
0
Identifikátor číslo 18 (modul 19) obsahuje diagnostiku
5
0
0
0
0
1
0
0
0
Identifikátor číslo 28 (modul 29) obsahuje diagnostiku
Diagnostika týkající se kanálu Struktura diagnostiky je určena pro předdefinované typy poruch s konkrétními identifikátory sloužícími k identifikaci konkrétních chyb. Definice chyb lze stanovit pro každý modul a pro každý kanál. Jsou možné i další definice pro konkrétní zařízení. V tomto bloku, začínajícím na DU bytu 7, jsou diagnostikované kanály a důvody diagnostiky uvedeny postupně po jednom, se 3 byty na každou položku diagnostiky, v následujícím formátu: Diagnostika týkající se kanálu Byte 1 ze 3 – číslo identifikátoru 7
6
5
4
3
2
1
0
1
0
X
X
X
X
X
X
Bity 7,6 = 10
Bity 5-0 = číslo identifikátoru, 0 až 63
Diagnostika týkající se kanálu Byte 2 ze 3 – číslo kanálu 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Bity 7,6 = kódování vstupu/výstupu: 00=vyhrazeno 01=vstup 10=výstup 11=vstup/výstup
Bity 5-0 = číslo kanálu, 0 až 63
Diagnostika týkající se kanálu Byte 3 ze 3 – typ chyby 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Typ kanálu: 000 = vyhrazeno 001 = bit 010 = 2 bity 011 = 4 bity 100 = byte 101 = slovo 110 = 2 slova 111 = vyhrazeno
Typ chyby: 0 = vyhrazeno 1 = zkrat 2 = podpětí 3 = přepětí 4 = přetížení 5 = přehřátí 6 = porušení linky/vodiče 7 = překročena horní limitní hodnota 8 = překročena dolní limitní hodnota 9 = chyba 10..15 = vyhrazeno 16..31 = vztahuje se k výrobci resp. zařízení
Pokud slave pošle více diagnostických dat, než může master zpracovat ve svém diagnostickém bufferu, nastaví master bit Diag.Ext_Diag_Overflow. Pokud u slave zařízení čeká více diagnostických informací, než může být odesláno, slave je může pouze zkrátit na limity bloků diagnostiky týkající se zařízení, identifikátoru nebo kanálu. Dále platí, že pokud pole délky bloku diagnostiky týkající se zařízení nebo identifikátoru obsahuje 32
nenulovou délku, označuje to kompletní (nezkrácený) diagnostický blok. V zájmu efektivity má slave zařízení povoleno předávat pole Diag_Data pevné délky (nevyužité byty za Ext_Diag_Data jsou vyplněny nulami u slave zařízení a/nebo mastera třídy 1). Úspěšnost nebo neúspěšnost funkce Diag_Data lze zjistit otestováním parametru Status na možné následující hodnoty: OK, DS, NA, RS, UE, NR a RE. Následující bity jsou převzaty z výše popsaných bytů diagnostických informací a zpracovány takto: PRM_REQ (z DU Byte 2) Je-li nastaven tento příznak, musí se slave parametrizovat. Aplikace detekovala stav vyžadující nové spuštění s příslušnou opětovnou parametrizací a konfigurací. Po této diagnostice provede master spuštění se zadanou opětovnou parametrizací a konfigurací. Příkladem, kde se tento typ diagnostiky může vyskytnout, je rozšíření modulárního systému ProfiBus (tj. přidání dalšího modulu). Aplikace může řídit tři diagnostické bity. STAT_DIAG, EXT_DIAG a EXT_DIAG_OVERFLOW. STAT_DIAG (z DU Byte 2) Vzhledem ke stavu v aplikaci nemůže slave poskytnout platná data. Po obdržení této diagnostiky master nadále požaduje od tohoto slave zařízení pouze diagnostické informace, dokud slave tento bit neresetuje. Pokud je normálním stavem ProfiBus DP výměna dat, lze datovou komunikaci obnovit okamžitě po vymazání bitu statické diagnózy. Příkladem, kde lze na tuto diagnostiku narazit, je slave zařízení, u nějž selhalo napájení ovladače na výstupu. EXT_DIAG (z DU Byte 1) Slave používá bit EXT_DIAG=1 k signalizaci, že v oblasti uživatelské diagnostiky se nacházejí diagnostická data vztahující se k uživateli. EXT_DIAG=1 má za následek odeslání diagnostického telegramu do mastera ProfiBus. Po odstranění příčiny diagnostické zprávy (příslušná kombinace bitů v diagnostických datech vztahujících se k uživateli je 0), musí se resetovat i bit EXT_DIAG (nastavit na 0), což je nutné kvůli certifikaci. Pokud je tento bit nastaven, musí oblast uživatelské diagnostiky obsahovat diagnostický záznam. Je-li tento bit vymazán, jde o standardní stavové informace diagnostické oblasti, které jsou zpracovávány s nižší prioritou. Je-li bit EXT_DIAG vymazán (0), data je nutno z hlediska systému považovat za stavové informace a master s nimi nezachází jako s diagnostickými daty. EXT_DIAG_OVERFLOW (z DU Byte 3) Slave zařízení tento bit nastaví, pokud je k dispozici více diagnostických dat, než se vejde do oblasti určené pro diagnostická data. Může být například přítomno více diagnostických dat kanálu, než kolik pobere odesílací či přijímací buffer mastera.
Stav výměny dat Po dokončení parametrizace a konfigurace může master zahájit cyklickou výměnu I/O dat se slave zařízeními. V režimu výměny dat jsou k dispozici následující služby: Read_Inp (čtení vstupů libovolného slave zařízení), Read_Outp (čtení výstupů libovolného slave zařízení) a Data_Exchange (odesílání a příjem dat slave zařízením, které je parametrizováno a konfigurováno masterem). Slave automaticky zkontroluje přenášená výstupní data, odpoví vstupními daty a v případě zjištění neshody vygeneruje zprávu.
33
Data_Exchange Telegram Funkce Data_Exchange se týká cyklického přenosu I/O dat a případných diagnostických informací mezi slave zařízeními a jejich masterem třídy 1. ProfiBus může používat přenos SRD (odeslání a vyžádání dat s potvrzením), který umožňuje odesílat výstupní data a přijímat vstupní data v jedné zprávě/cyklu odpovědi. U funkce Data_Exchange byl počet vstupů a výstupů již definován v konfiguračních datech při spouštění systému. V režimu Data_Exchange master cyklicky odesílá výstupní data na slave zařízení a v odpovědi dostává vstupní data (pokud nějaká jsou). Pokud je slave čistě výstupní zařízení (nemá žádná vstupní data pro vrácení), odpoví kódem „E5H“ v odpovědním datovém poli (krátké potvrzení). Na rozdíl od všech ostatních telegramů, které mají 11 bytů informací hlavičky, má telegram Data_Exchange pouze 9 bytů informací hlavičky, protože používá výchozí SAP (implicitně) a byty DSAP a SSAP jsou z hlavičky telegramu vypuštěny. Slave v režimu Data_Exchange umožní opětovnou konfiguraci I/O dat (Chk_Cfg), ale nepovolí opětovnou parametrizaci. Telegram odesílání výstupních dat nebo přijímání vstupních dat v Data_Exchange SD
LE
LEr
SD
DA
SA
FC
DU
FCS
ED
68H
X
X
68H
8x
8x
X
X..
X
16H
U výměny dat má hlavička telegramu pouze 9 bytů, protože je použit defaultní SAP a byty DSAP a SSAP jsou z hlavičky telegramu vypuštěny. To je indikováno nejvýznamnějším bitem bytů DA a SA, které jsou prázdné (0). Je-li MSB nastaveno na 1 v bytech DA a SA, znamená to, že v hlavičce telegramu následuje DSAP a SSAP. DU obsahuje od 1 do 244 bytů uživatelských dat pro přenos (výstupní data a případně vstupní data). V režimu Data_Exchange může kterýkoliv master kdykoliv číst I/O data kteréhokoliv slave zařízení pomocí telegramů „Read_Inputs“ a „Read_Outputs“. Tyto telegramy mají stejnou strukturu jako cyklický telegram Data_Exchange, ale obsahují byty DSAP a SSAP. U těchto telegramů je MSB bytů DA a SA nastaveno na „1“, což indikuje, že v hlavičce telegramu následuje byte DSAP a SSAP.
Read_Inp Telegram – SAP 56 Master může tento telegram použít pro asynchronní čtení vstupních dat (Inp_Data) kteréhokoliv slave zařízení v režimu Data_Exchange. SD
LE
LEr
SD
DA
SA
FC
DSAP
SSAP
FCS
ED
68H
05H
05H
68H
8x
8x
X
38H (56)
3EH (62)
X
16H
Formát telegramu s odpovědí je stejný, jako je popsáno výše, ale s přehozenými DSAP/SSAP a vloženými byty DU.
Read_Outp Telegram – SAP 57 Master může telegram Read Outputs použít pro asynchronní čtení výstupních dat (Outp_Data) kteréhokoliv slave zařízení v režimu Data_Exchange. SD
LE
LEr
SD
DA
SA
FC
DSAP
SSAP
FCS
ED
68H
05H
05H
68H
8x
8x
X
39H (57)
3EH (62)
X
16H
Formát telegramu s odpovědí je stejný, jako je popsáno výše, ale s přehozenými DSAP/SSAP a vloženými byty DU.
34
Služba Global_Control – SAP 58 ProfiBus DP používá funkci Global Control k odesílání speciálních příkazů adresovaných jednomu slave zařízení, konkrétní skupině slave zařízení (multicast) nebo všem slave zařízením současně (broadcast). ProfiBus odesílá zprávy broadcast a multicast jako global control telegramy pomocí adresy 127 (u multicast je pro zvolenou skupinu vloženo volitelné skupinové číslo). Při použití přenosu SDN (odeslání dat bez potvrzení) použije master třídy 1 službu Global_Control k informování slave zařízení o svém režimu (Operating nebo Clear) nebo k odeslání příkazů jako sync, unsync, freeze, unfreeze a clear data skupině slave zařízení, typicky pro účely synchronizace. Slave zařízení tento příkaz akceptuje pouze od mastera, který provedl jeho parametrizaci a konfiguraci. Na SDN telegram se neodesílá žádná odpověď.
Global_Control telegram SD
LE
LEr
SD
DA
SA
FC
DSAP
SSAP
DU
FCS
ED
68H
X
X
68H
8x
8x
X
3EH (62)
3AH (58)
X..
X
16H
DU Byte 1 (příkaz Control_Command k provedení) 7
6
5
4
3
2
1
0
Vyhrazeno
Vyhrazeno
Sync
Unsync
Freeze
Unfreeze
Clear_Data vymazány všechny výstupy.
Vyhrazeno
0
0
0=nemazat výstupy 1=vymazat výstupy
0
Sync: Unsync: Freeze:
00=žádná funkce 01=deaktiv. 10=aktivováno 11=deaktiv.
00=žádná funkce 01=deaktivováno 10=aktivováno 11=deaktivováno
Výstupní stavy přenesené v Data_Exchange jsou doručeny a zmrazeny. Výstupní data, která následují, jsou podržena do dalšího příkazu Sync nebo Unsync. Tímto příkazem se ruší příkaz Sync. Tento příkaz má za následek přečtení vstupů a jejich zmrazení do dalšího příkazu Freeze nebo Unfreeze. Slave zařízení musí zajistit, aby po příkazu Freeze byly poslední zmrazené hodnoty vstupů předány v dalším cyklu výměny dat.
Unfreeze: Tímto příkazem se ruší příkaz Freeze. Clear_Data: Master třídy 1 může pomocí global control telegramu informovat slave zařízení, že se přepíná z režimu Operate do režimu Clear. Tento bit je nastaven v režimu Clear (02 00H) a vymazán v režimu Operate (00 00H). Slave zařízení odpoví buď vymazáním svých výstupů, nebo s masterem v režimu Clear může volitelně přejít do uživatelem definovaného stavu. Další informace o použití tohoto bitu najdete v kapitole Bezpečný provoz. DU Byte 2 (číslo Group_Select nebo Group_Ident) 7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Group_Select: 0-255, číslo musí odpovídat číslu Group_Ident z parametrizačních dat (multicast). Při nastavení na 0 jsou adresována všechna slave zařízení (broadcast). Sync a Freeze jsou volitelné služby slave zařízení a nemusí být všemi slave zařízeními podporovány. Pomocí telegramu Freeze dává master slave zařízení nebo skupině slave zařízení pokyn ke zmrazení jejich výstupů v aktuálním stavu. Telegram Sync vede ke zmrazení výstupních dat, která jsou aktuálně k dispozici k přenosu na výstupy. Příkazem Unsync nebo Unfreeze se tento stav zruší. Služba Clear Data umožňuje přepnutí výstupů do definovaného stavu, pokud se vyskytne chyba. Úspěšnost nebo neúspěšnost přenosu rámce požadavku lze zjistit otestováním odpovědního parametru Status na možné následující hodnoty: OK, DS, NO a IV.
35
Použití funkce Freeze U uzavřených řídicích systémů nebo pro synchronizaci disků apod. je někdy potřeba mít přesný časový obrázek o procesních vstupech skupiny. Pomocí funkce Freeze se to provede takto: Master pošle příkaz Freeze vybrané skupině (global control telegram dorazí do vybrané skupiny v přesném čase). Na základě toho všechna kontaktovaná slave zařízení zmrazí své vstupy. Během dalšího cyklu výměny dat přenesou slave zařízení zmrazené vstupy skupiny do mastera. Jakmile master obdrží tato data, pošle skupině příkaz Unfreeze; sběrnicový systém se vrátí do normálního režimu výměny dat a během každého datového cyklu se přenesou všechny změny vstupů.
Použití funkce Sync/Unsync Pro časově řízený provoz výstupních zařízení, která patří do nějaké skupiny, se funkce Sync a Unsync používají takto: Po zmrazení dat příkazem Freeze a jejich zpracování masterem zareaguje master odesláním příkazu Sync skupině slave zařízení, aby získal výstupy. Během dalšího datového cyklu master dodává skupině slave zařízení data pro výstupy a potom tento cyklus uzavře příkazem Unsync v následujícím cyklu výměny dat. Na základě příkazu Unsync přenesou slave zařízení své výstupy v přesném čase.
36
10. ČASOVÁNÍ SBĚRNICE Na rozdíl od systémů CAN a Ethernet, což jsou sběrnice řízené událostmi, byl ProfiBus navržen tak, aby garantoval deterministickou odpověď. Determinismus systému znamená, že je možné přesně předvídat chování systému v průběhu času. ProfiBus používá mechanismus dotazování („polling“) mezi masterem a slave zařízením. Čas, který slave zařízení potřebuje k odpovědi na zprávu od mastera, se nazývá reakční doba. I když systém ProfiBus dostává v jednom časovém okamžiku řadu změn I/O signálů, reakční doba se nijak nemění. Dále, i když je k provedení diagnostiky na slave zařízení použit jiný master (třídy 2), zatímco slave zařízení komunikuje se svým masterem třídy 1, reakční doba systému zůstává stejná. Je tomu tak proto, že master třídy 2 použitý pro provádění diagnostiky nebude mít povoleno využít v rámci cyklu sběrnice více času, než představuje nastavený gap time. Protože je systém ProfiBus deterministický, můžeme spolehlivě vypočítat reakční dobu systému. Než se však dostaneme k podrobnostem o výpočtu časů cyklu sběrnice, musíme si definovat několik termínů: Bit-Time: Pro zjednodušení časových výpočtů je vhodné standardizovat časové jednotky vůči přenosové rychlosti pomocí jednotek Bit-Time (Tbit). Jeden bit-time je doba, která je potřeba k přenesení jednoho bitu, a jde o převrácenou hodnotu přenosové rychlosti (v baudech). Příklad: 1 Tbit (Bit Time) při 12 MB = 1/12000000 bps = 83 ns/bit Sync-Time (TSYN): Synchronizační čas je minimální doba, po kterou musí stanice zůstat ve stavu nečinnosti, než může přijmout další požadavek. U ProfiBus DP musí být před každým telegramem s požadavkem doba nečinnosti 33 Tbit (bit-time) - tomu říkáme synchronizační čas. Reakční doba slave zařízení (TSDR): Reakční doba je doba, kterou slave zařízení potřebuje k odpovědi na zprávu. Často se vyjadřuje jako minimální hodnota (min TSDR) nebo maximální hodnota (max TSDR). Min TSDR se nastavuje při spouštění v parametrizačním telegramu. Hodnota Max TSDR se liší podle přenosové rychlosti a je uvedena u podporovaných přenosových rychlostí v souboru GSD. U ProfiBus DP se tato hodnota může pohybovat od min. 11 Tbit (defaultní min TSDR) do max. 255 Tbit. Doba prodlevy iniciátoru (TSDI): TSDI znamená zpoždění stanice, která iniciuje rámec požadavku nebo tokenu (master). Doba nečinnosti iniciátoru (TID1): Po obdržení posledního znaku telegramu musí iniciátor počkat tuto stanovenou dobu, než odešle další telegram. Doba nečinnosti (Tid1) je doba mezi přenesením posledního bitu rámce (bez potvrzení) a přenesením prvního bitu následujícího rámce. Je rovna minimálně synchronizačnímu času (TSYN) plus určitá bezpečnostní rezerva (Tsm), ale také se může počítat jako maximum následujících tří hodnot: TSYN + Tsm, min TSDR nebo TSDI (prodleva stanice iniciátora telegramu). Přidání bezpečnostní rezervy (Tsm) je velmi důležité u vysokých přenosových rychlostí. Minimální interval slave zařízení: Minimální interval slave zařízení je minimální doba, která musí uplynout mezi dvěma cykly dotazování slave zařízení, v nichž si slave zařízení může předávat data s masterem. Aby mohlo slave zařízení odpovídat při každém datovém cyklu, je cyklus sběrnice řízen tímto parametrem. Ten je definován v souboru GSD slave zařízení prostřednictvím parametru Min_Slave_Interval, který je stanoven jako 16bitový násobek 100 µs (Min_Slave_Interval = 1 je 100 µs). U některých starších zařízení je linka ProfiBus implementována softwarově (tedy ne v obvodu ASIC slave zařízení) a typickou hodnotou je cca 2 ms. U novějších zařízení s moderními ASIC obvody je možno dosáhnout hodnot až 100 µs. Výpočet reakční doby systému Zjednodušený výpočet reakční doby systému ProfiBus DP je odvozen z následujících parametrů: • • • •
TSDR (reakční doba slave zařízení) přenosová rychlost (v baudech) stanovená čistá délka dat Min_Slave_Interval (minimální doba mezi dvěma cykly dotazování slave zařízení). 37
Příklad: Prostřednictvím ProfiBus DP je propojen 1 master a 5 slave zařízení. Na každé slave zařízení se má přenést 10 bytů výstupních dat a 20 bytů vstupních dat při rychlosti 12 Mbps. Všechna slave zařízení využívají ASIC obvod SPC3. Vypočítejte relativní dobu cyklu sběrnice pro tuto síť. Nechť TMC = doba 1 cyklu telegramu (telegram s požadavkem + TSDR + odpověď slave zařízení). Nechť TBC = doba 1 cyklu sběrnice (součet všech cyklů telegramů). Máme: TSYN = 33 TBit (doba nečinnosti sběrnice nebo Sync-Time ProfiBus) TID1 = 75 TBit (doba nečinnosti sběrnice SPC3 při 1,5 MB Tid1 = 36 TBit). TSDR = 30 Tbit, typické pro přenosové rychlosti ≥ 1,5 MB (SPC3 ASIC). Min_Slave_Interval = 1 (100 µs, ze souboru GSD slave zařízení). Výpočet: 1 Tbit (Bit Time) při 12 MB = 1/12000000 bps = 83 ns/bit V režimu výměny dat hlavička telegramu sestává pouze z 9 znakových bytů. Pokud zahrneme bity rámce znaku, má každý znakový byte 11 bitů (start bit + 8 bit/znak + stop bit + parita). Protože je přítomen jen 1 master, můžeme ignorovat dobu držení tokenu u telegramů s tokenem. Potom základní dobu potřebnou pro jeden cyklus telegramu (bez dat) získáme jako součet příslušných časů sběrnice a doby pro přenos hlavičky telegramu takto: TMC (v TBit) = 2 * 9(délka bytu hlavičky) * 11bit/byte + TSDR + TSYN + Tid1 TMC = 198 bit + 30 bit + 33 bit + 75 bit = 336 Tbit TMC (µs) = 336 Tbit * 83 ns/Tbit = 28 µs Základní doba potřebná pro hlavičku telegramu včetně časů sběrnice bez započítání dat je tedy 28 µs. Pro náš příklad musíme započítat data (výstup 10 bytů + vstup 20 bytů). Připomínáme, že služba SRD (odeslání a vyžádání dat s potvrzením) odesílá data na výstupy a přijímá data ze vstupu v jednom cyklu telegramu. Doba jednoho cyklu telegramu se zahrnutím těchto dat je: TMC = [336 Tbit] + objem čistých dat = 336 + [výstup 10 bytů + vstup 20 bytů] * (11 bit/byte) = 666 Tbit TMC = [28 µs] + 330 Tbit*83 ns/bit TMC = [28 µs] + 27,39 µs = 55,39 µs/slave. Pro zjednodušení tohoto výpočtu můžeme předpokládat, že pro provedení cyklu telegramu je potřeba základní doba přenosu 28 µs plus cca 1 µs na jeden byte DU dat (ve skutečnosti 0,83 µs/byte). Následující obrázek obsahuje přehled převažujících časů sběrnic v cyklu telegramu (nepředpokládáme žádné rušení nebo opakování).
Časování 1 cyklu zprávy = TMC = ((TS/R + TSDR + TA/B)*TTD) + TID
38
Slave zařízení má interval Min_Slave_Interval 100 µs a ten dominuje časování sběrnice u jednoho cyklu telegramu. Tento Min_Slave_Interval má však hodnotu 100 µs mezi dvěma cykly dotazování na stejné stanici. Pokud máme alespoň 3 stanice, pak určujícím časovým faktorem pro cyklus sběrnice bude spíše skutečný čas přenosu při 12 MB než Min_Slave_Interval. Podrobnější výpočet času přenosu je uveden v normě EN50170.
39
11. POŽADAVKY NA VYSOKORYCHLOSTNÍ PŘENOS Při komunikaci přenosovými rychlostmi vyššími než 1,5 Mbps je třeba mít na paměti následující: •
•
Konektor ProfiBus má na datových linkách zabudované sériové induktory pro provoz při vyšších přenosových rychlostech. To je další důvod, proč byste měli používat jen schválené konektory ProfiBus. Při provozu rychlostí 12 Mbps musí být délka kabelu mezi stanicemi minimálně 1 m.
40