https//www.racom.eu/cz/support/protocols_docum/bc126__profibus.html
1. Úvod Téměř všechna zařízení Profibus podporují PROFIBUS DP-V0, proto jsme se rozhodli implementovat tento protokol. Nepodporujeme mód multimaster ani protokol PROFIBUS- FMS. PLC vybavená verzí DP-V1 lze přizpůsobit k práci s verzí DP-V0 úpravou souboru GSD, viz dále. PROFIBUS-DP radiomaster čte předkonfigurovanou část paměti (cache) z PROFIBUS-DP slave a výsledná data ukládá v paměti (cache) CU Radiomaster. Jakmile je detekována změna v ukládaných datech nebo po uplynutí nastaveného času jsou data odeslána rádiovou sítí MORSE na určenou adresu do CU Radioslave. Takto je prováděn zabezpečený přenos analogových i digitálních dat a alarmů. Centrální PROFIBUS-DP Radioslave přijímá simultánně data až z 256 stanic (podle počtu přenášených modulů). Tato data jsou přístupná pro PROFIBUS-DP master, který je může číst přes sériovou linku. Opačný směr přenosu (z central PROFIBUS-DP master do PROFIBUS-DP slave) probíhá stejným způsobem. MORSE MORSE PROFIBUS-DP PROFIBUS-DP PROFIBUS-DP PROFIBUS-DP master sim Radioslave Radiomaster slave sim PLC CU CU PLC ______ \|/............. \|/ | | RS485 _|_ : _|_ ___ | |-------| | : | | RS485 | | |______| |___| : |___|---------|___| addr.03 addr.02 690F0002 : 690F0003 | SPe0tM SPe0tS : SPe0tM | SPe0tS (A)ddr:02 (A)ddr:02 : (A)ddr:02 | (A)ddr:02 (B)ase:03 (B)ase:03 : (B)ase:03 | (B)ase:03 (N)um: 03 (N)um: 03 : (N)um: 02 | (N)um: 01 : | : | : | ___ : | | | : ----|___| addr.04 : : SPe0tS : (A)ddr:02 : (B)ase:04 : (N)um: 01 : :...... \|/ _|_ ___ | | RS485 | | |___|---------|___| addr.05 690F0005 SPe0tM SPe0tS (A)ddr:02 (A)ddr:02 (B)ase:05 (B)ase:05 (N)um: 01 (N)um: 01 PLC timeout (n)et timeout (l)ink timeout přenosové parametry (s)hort net timeout link (d)elay request, data OUT ---> | 68 1D 1D 68 03 02 5D 0000FFFF 000000FF 00000000 00000000 00000000 00000000 00FF 5E 16 SD2 - oddělovač start, 0x68 LE - délka (byte) zahrnující pole DA,SA,FC,DATA, rozsah 4 až 249 DA - cílová adresa (destination) SA - zdrojová adresa (source) FC - řídicí znak Frame Control, 5D nebo 7D, viz specifikace Profibus DATA - přenášená data, 1 až 246 byte FCS - kontrolní součet Frame Check Sequence ED - oddělovač stop, 0x16 Rámec pevné délky neobsahující data, slouží k testu funkčnosti stanice: |SD1/8|DA/8|SA/8|FC/8|FCS/8|ED/8| 10 03 02 49 4E 16 SD1 - oddělovač start, 0x10 DA - cílová adresa SA - zdrojová adresa FC - řídicí znak FCS - kontrolní součet ED - oddělovač stop, 0x16 Rámec pevné délky s daty: |SD3/8|DA/8|SA/8|FC/8|DATA/64|FCS/8|ED/8| A2 03 02 .. .... .. 16 SD1 - oddělovač start, 0xA2 DA - cílová adresa SA - zdrojová adresa FC - řídicí znak DATA - přenášená data, 8 byte FCS - kontrolní součet ED - oddělovač stop, 0x16 Rámec token, v režimu multimaster předává řízení dalšímu masterovi: |SD4/8|DA/8|SA/8| DC 02 02 SD4 - oddělovač start, 0xDC DA - cílová adresa SA - zdrojová adresa 3. Příklad komunikace Při navazování spojení se nejprve zjišťuje konfigurace a pak jsou automaticky nastaveny vnitřní parametry protokolu. Následující příklad zachycuje již ustálený stav předávání dat, tzv. data exchange, na portu CU Radioslave: 08:22:02.320 rx;i 35 | S01 681D 1D68 0302 5D00 00FF FF00 0000 FF00 0000 0000 0000 0000 0000 0000 0000 0000 FF5E 16 08:22:02.321 tx 43 | S01 6825 2568 0203 0800 0000 0000 1D00 00FF FF00 1D00 0000 0000 0000 0000 0000 0000 0000 0000 FF00 1D00 FF60 16 08:22:02.406 rx;i 6 | S01 1003 0249 4E16 08:22:02.406 tx 6 | S01 1002 0300 0516 08:22:02.468 rx;i 3 | S01 DC02 02 08:22:02.636 rx;i 35 | S01 681D 1D68 0302 7D00 00FF FF00 0000 FF00 0000 0000 0000 0000 0000 0000 0000 0000 FF7E 16 08:22:02.637 tx 43 | S01 6825 2568 0203 0800 0000 0000 1D00 00FF FF00 1D00 0000 0000 0000 0000 0000 0000 0000 0000 FF00 1D00 FF60 16 Obsah datových rámců, které jsou uloženy v paměti cache, můžeme snadněji sledovat použitím funkce "d(A)ta req" a "d(a)ta resp" v parametrech protokolu: >>A >>cmd 03:Profi fun 00:03027D 0000 FFFF 0000 00FF 0000 0000 0000 0000 0000 0000 0000 0000 00FF Zde byl odeslán rámec "data request" z PLC Master do PLC Slave, z adresy 02 na adresu 03. >>a >>cmd 02:Profi fun 00:020308 0000 0000 001D 0000 FFFF 001D 0000 0000 0000 0000 0000 0000 0000 0000 00FF 001D 00FF Rámec "data response" přichází z PLC Slave 03 do PLC Master 02 4. Nastavení parametrů protokolu V radiomodemu MR400 je použit modul SCC1 RS485. Přenosovou rychlost volíme 19200 nebo 93700bps. Profibus používá nastavení parity "EVEN" a jeden celý stop bit, tedy: s(T)op:OFF fr(A)gs:7+9/16 SCCs: n m g b p8 i s XRC D G o (0)RS232 ASYNC SW 19200N81 5 1600 --- D 0 MARS-A (1)RS485 ASYNC SW 19200E81 5 1600 --- D 0 PROFIBUS (2)RS232 ASYNC SW 19200N81 5 1600 --- D 0 MARS-A (3)RS232 ASYNC SW 19200N81 5 1600 --- D 0 MARS-A de(f)ault (r)ead (w)rite (I)nit (S)ync (q)uit >>1 Serial Comunication Channels: i(n)t:RS485 (m)ode:ASYNC dia(g):SW (b)it/s:19200 (p)ar:EVEN (8)bit:ON s(T)op:OFF fr(A)gs:7+9/16 RX (i)dle:5 RX buf (s)ize:1600 TX idl(e):OFF Handshake: (X)on/Xoff:OFF (R)TS:OFF (C)TS:OFF C(D):ON (G):0000 pr(o)tocol PROFIBUS parame(t)ers ext clocks t(x):OFF (r)x:OFF sync (w)ord:7E7E SC(M):B131 (d)sc: 3835 (I)nit (W)rite (q)uit >> Poznámka - Při použití MR25 použijeme převodník "OPI232/485pc" (=Profibus compatible), který je vybaven řízením klíčování na lince RS485 signálem CTS (svorka K na OPI235/485pc) a přepínatelnými zakončovacími odpory podle specifikace Profibus-DP. Pro rychlost Profibusu 93750bps nastavíme SCC na 93700bps: SCCs: (1)RS485 ASYNC NORM 93700E81 5 1600 --- D 0 PROFIBUS Parametry protokolu: PROFIBUS parameters: (m)ode :RADIOSLAVE (wired to master) (M)aster (S)lave (q)uit >> ---------------------- (m) - Volba režimu CU: ---------------------- mode (m) RADIOMASTER (wired to slave) - CU připojená k PLC Slave (s) RADIOSLAVE (wired to master) - CU připojená k PLC Master Další režimy simulují v CU chování PLC Pofibus různých typů: (7) MASTER SIMULATOR S7 (S) SLAVE SIMULATOR S7 (C) MASTER SIMULATOR CI851 (c) SLAVE SIMULATOR CI851 (4) MASTER SIMULATOR CI854 (0) SLAVE SIMULATOR CI854 (q)uit >> ----------------------------------------------------- (M) - parametry CU radiomaster a CU master simulator: ----------------------------------------------------- RadioMaster param. Center (A)ddr:0002 Points (B)ase:0003 (N)um:1 (n)et timeout:10s (s)hort net timeout:1000ms (l)ink timeout:100ms link (d)elay:50ms sl(e)ep timeout:30s (C)hange detector:ALL (M)in hysteresis:0000 A(b)b behavior:ON (D)ebug filter:0 (S)tate (q)uit >> Center (A)ddr:0002 - adresa centrálního CU radioslave, dolní část MORSE adresy Points (B)ase:0003 - adresy připojených bodů PLC slave musí tvořit souvislou číselnou řadu, zde je zapsána nejnižší z těchto adres (N)um:1 - počet PLC slave Položky (B)ase, (N)um a v menu (S)tate (N)o popisují: pro Radioslave a Master simulator - všechna PLC připojená přes rádiovou síť k CU Radioslave pro Radiomaster - pouze PLC připojená přes RS485 k CU Radiomaster pro Slave simulator - jen tohoto jediného Slave Proto např. (N)o určující totéž PLC může být různé v menu Radiomaster a Radioslave, viz příklad v úvodním schematu. (n)et timeout:10s interval mezi zprávami předávanými rádiovou sítí, tento interval je uplatněn, pokud nenastaly změny dat, nebo pri vypnuté detekci změn (C) (s)hort net timeout:1000ms nejkratší interval mezi zprávami, zabraňuje přetížení sítě při častých změnách dat (l)ink timeout:100ms interval mezi komunikacemi na lince radiomaster-slave, master-radioslave, viz nápověda (l): (19200bps:100ms, 93750bps:20ms) link (d)elay:50ms minimální prodleva mezi koncem příjmu a začátkem dalšího vysílání na lince, viz nápověda (d): (19200bps:50ms, 93750bps:10ms) sl(e)ep timeout:30s po restartu M, RS nebo RM je generována v RM pauza na lince RS485 délky 30s pro příslušného Slave. Pauza jej přinutí, aby restartoval svoji "state machine" aby mohla proběhnout nová parametrizace. (C)hange detector:ALL reakce na změny vstupních dat jsou volitelné: (o) OFF - nic, vyslání dat pouze v intervalu (n)et timeout (a) ALL - každá změna způsobí vysílání RM -> RS (e) EXT - vysílá se jen po překročení hysterezí definovaných v menu SXX (M)in hysteresis:0000 změna vstupních dat musí dosáhnout minimálně této hodnoty, aby způsobila vysílání, pojistka proti nastavení příliš nízkých hodnot v SXX. Zjednodušeným řešením problému hysterezí je vhodná kombinace parametrů, např.: (n)et timeout:10s (s)hort net timeout:500ms (C)hange detector:ALL Pak je přenos do centra nastane po změně vstupních dat. Změny v následujících 500ms nevyvolají přenos, první další ano. Pokud se stav vstupů nemění, vysílají se data do centra každých 10s. A(b)b behavior:ON ON - pro PLC firmy ABB OFF - pro PLC Siemens (D)ebug filter:0 pro servisní účely (S)tate diagnostické informace o stavu protokolu a o přenášených datech --------------------------------------------------- (S) - parametry CU radioslave a CU slave simulator: --------------------------------------------------- RadioSlave param. Center (A)ddr:0002 Points (B)ase:0003 (N)um:1 (n)et timeout:10s (s)hort net timeout:1000ms B(r)oadcast:OFF A(b)b behavior:ON (D)ebug filter:0 (S)tate (q)uit >> Význam položek analogický, jako v menu (M)aster. Perioda komunikace na lince RS485 se nekonfiguruje a je ovládána z PLC master. B(r)oadcast:OFF OFF - nevysílá broadcasty ON - vysílá, potřebné je také nastavení v menu "Be" a "FIe" A(b)b behavior:ON V počáteční fázi "data exchange" vysílá PLC Master data request, na které RS ještě nemá připravenou odpověď od PLC Slave. Při nastavení parametru: OFF - pro PLC Siemens - odpovídá Radioslave "E5" a Master pokračuje ve vysílání "data exchange" ON - pro PLC ABB - PLC nerozumí zprávě "E5", proto Radioslave neodpoví nic ----------------------------- (S)tate - diagnostické údaje: ----------------------------- Profibus State of Slave (N)o.:0 (S)tatus d(a)ta resp d(A)ta req D(1) resp (p)arset (c)onfig D(2) resp data (r)ef data (h)yst (q)uit >> Parametrem (N)o.:0 je vybrána komunikace se Slave Simulatorem číslo 0. Ze sady diagnostických parametrů uvedeme: S >>slave No0 state:6 rtleft:22 a:2 d:3 Hodnota parametru "slave No0 state:" = 6 indikuje, že probíhá standardní výměna dat "data exchange". Jiné hodnoty než 6 označují, že probíhá některá z přípravných fází komunikace. Funkcí "d(a)ta resp" zobrazíme data IN, která přicházejí z PLC Slave do PLC Master: a >>cmd 02:Profi fun 00:020308 0000 0000 001D 0000 FFFF 001D 0000 0000 0000 0000 0000 0000 0000 0000 00FF 001D 00FF 00: - PLC Slave No 0 02 - dst adresa = PLC Master 02 03 - src adresa = PLC Slave 03 08 - frame control 0000 0000 001D... následují data IN uspořádaná podle "(c)onfig" Funkcí "d(A)ta req" zobrazíme data OUT posílaná z PLC Master do PLC Slave: A >>cmd 03:Profi fun 00:03027D 0000 FFFF 0000 00FF 0000 0000 0000 0000 0000 0000 0000 0000 00FF 00: - PLC Slave No 0 03 - dst adresa = PLC Slave 03 02 - src adresa = PLC Master 02 7D - frame control 0000 FFFF 0000...data OUT podle "(c)onfig" Funkce "(c)onfig" poskytuje zjištěnou konfiguraci PLC Slave. Výsledná podoba závisí na typu PLC, např. zde je tvar pro PLC ABB: c >>cmd 06:Profi fun 00:83827D 3E3E D1C0 C1C2 C0C1 C9C0 C8C1 IN datalen=2raw(D1) IO:OUT datalen=2rawIO:IN datalen=3raw(C0C1C2) IO:OUT datalen=2rawIO:IN datalen=10raw(C0C1C9) IO:OUT datalen=9rawIO:IN datalen=2raw(C0C8C1) >> "d(a)ta resp" z tohoto PLC obsahují 2+3+10+2=17 wordů vstupních dat, nejsou zde rozlišena data z digitálních a analogových vstupů. Tvar pro jednu konkrétní aplikaci PLC Siemens: c >>cmd 06:Profi fun 8001:84825D 3E3E 0400 00AD C404 0000 8B41 0400 008F C043 0300 9FC3 8303 00AF D843 4700 15C5 8343 0025 E0 FREE SLOT(040000ADC4) FREE SLOT(0400008B41) FREE SLOT(0400008FC0) IN datalen=4Byte (4303009FC3) OUT datalen=4Byte (830300AFD8) IN datalen=8Words(43470015C5) OUT datalen=4Words(83430025E0) >> Znázorněna je konfigurace zvoleného PLC Slave číslo 1 (No.:1 v menu "SPe0tMS"). Tři sloty jsou prázdné, následují moduly IN a OUT a délka příslušných dat. "d(a)ta resp" budou obsahovat4+8=12 wordů vstupních dat. ----------------- HYSTEREZE přenosu ----------------- Pro konfiguraci hysterezí přenosu analogových dat je nutno zjistit složení dat "d(a)ta resp" konkrétního PLC. Například data generovaná simulátorem z menu "SPe1tm0" - SLAVE SIMULATOR CI854 mají skladbu podle konkrétního PLC firmy ABB: "SPe1tSSa" - d(a)ta resp >>cmd 02:Profi fun 00:020308 0000 0000 001D 0000 FFFF 001D 0000 0000 0000 0000 0000 0000 0000 0000 00FF 001D 00FF Označíme jednotlivé bajty pořadovými čísly: fun 00:020308 0000 0000 001D 0000 FFFF 001D 0000 0000 0000 0000 0000 0000 0000 0000 0 1 2 3 4 5 6 7 8 9 A B C D E F 11 13 15 17 19 1B 1D 00FF 001D 00FF 1F 21 22 Ze sestavy modulů PLC je zjištěno, že bajty číslo 9,A jsou data digitálního vstupu, wordy začínající bajty číslo F,11,13,15,17,19,1B,1C jsou daty osmi analogových vstupů. Nyní můžeme sestavit paket, který definuje hystereze pro CU RadioMaster. Skladba paketu je uvedena v menu "SXe1p", příklad: PROFIBUS HYSTERESIS: format:|res/12|num/4|[|type/8|res/2|items/6|doff/8|dsi/8|hdata|] (n)um:0 (1):0108 (2):0F10 (3):0010 (4):0010 (5):0010 (6):0010 (7):0010 (8):0010 (9):0010 (a):0010 (b):0202 (c):0902 (d):FFFF (e):0000 (f):0000 (g):0000 (h):0000 (q)uit >> res/12 - 0 - rezerva num/4 - 0x 2 - počet vkládaných datových typů (analogový, digitální...) type/8 - 0x01 - datový typ analogový res/2 - 0 - rezerva items/6 - 0x 8 - počet wordů v "d(a)ta resp", které nesou data analog. vstupů AI doff/8 - 0x0F - offset, pořadové číslo prvního bajtu dat pro AI dsi/8 - 0x10 - datasize, dsi=2*items, délka bloku dat AI v bajtech hdata/dsi*8 - 0010 0010 0010 0010 0010 0010 0010 0010 - hystereze pro AI0 až AI7, po jejichž překročení dojde v režimu EXT k vyslání dat do RS type/8 - 0x02 - datový typ digitální res/2 - 0 - rezerva items/6 - 0x 2 - počet bajtů v "d(a)ta resp", které nesou data každý pro 8 DI doff/8 - 0x09 - offset, pořadové číslo prvního bajtu dat pro digit. vstupy DI dsi/8 - 0x02 - datasize, dsi=items, délka bloku dat DI v bajtech hdata/dsi*8 - FFFF - maska určuje, které digitální vstupy jsou čteny z modulu DI Sestavený paket vypadá takto: 0002 0108 0F10 0010 0010 0010 0010 0010 0010 0010 0010 0202 0902 FFFF Zapíšeme jej v menu PROFIBUS HYSTERESIS postupně pomocí parametrů (n),(1),(2)... Poznámka - při vstupu do menu PROFIBUS HYSTERESIS je nutno přečíst jeho obsah z paměti flash: "SXe r 1p" a při jeho opuštění opět uložit povelem "w" nebo "W". Povely Init a Sync se zde nepoužívají. Po uložení hysterezí je můžeme aktivovat v radiomasterovi RM: SPe1tMCe -> Change detector EXT RM pak vysílá do RS jen pokud nastala změna vstupních dat větší, než je stanovená hystereze pro příslušný AI. V menu RM: SPe1tMM -> Min hysteresis:0000 je možno stanovit minimální hysterezi, která musí být překročena, aby došlo k odeslání dat do RS. Tato minimální hystereze je jen doplňkem menu SXe, které musí být také vyplněno. Generování paketů pro testování hysterezí je možné v slave simulatoru z menu SPe1tSS .... (n)o.:0 (g)et ai value (o)ff:15 (s)et to (v)alue:2222 (simulator only) (q)uit >> (o)ff:15 - pořadové číslo prvního generovaného bajtu, shodné s "doff/8" v menu "SXe1p" (v)alue:2222 - připravená hodnota, hex (s)et to - vložení připravené hodnoty (n)o.:0 - číslo simulovaného AI, který můžeme číst (g)et ai value - čtení: >>slave No0 AI :2222.i.e 30.681180% ... obsah AI0 a jeho relativní velikost REF:0000.i.e 0.000000% ... naposledy vyslaná hodnota, používá se v RM HYS:0010.i.e 0.056180% ... předepsaná hystereze >> Příklad čtení "(g)et ai value" v RM, nutno vyplnit i hystereze v SXe: >>master No0 AI :2225.i.e 30.691713% ... aktuální stav, nebyla překročena hystereze REF:2222.i.e 30.681180% ... poslední vyslaný stav do RS HYS:0010.i.e 0.056180% ... hystereze >> -------------- Parametry PLC: -------------- 1) Doporučené parametry pro PLC Profibus DP-V0: min Tsdr > 66 tbit max Tsdr > min Tsdr Tqui = 1 tbit Tset = 65 tbit Tslot = 500 tbit 2) Některá PLC používají Profibus verze DP-V1, která přenáší navíc některé pomocné údaje. Tato PLC je možno nastavit pro práci ve verzi DP-V0, kterou podporuje protokol Profibus pro MORSE. Změna se týká konfiguračního souboru GSD, který se vkládá do PLC Master. Například v souboru "SI01801X.GSE", který používá PLC Simatic, je nutno označit jako poznámku (;) tyto označené řádky: Max_User_Prm_Data_Len=179 Ext_User_Prm_Data_Const(0)=0x00,0x00,0x08 Ext_User_Prm_Data_Const(3)=0x08,0x81,0x00,0x00,0x40,0x00,0x00,0x80 Ext_User_Prm_Data_Ref(10)=3 ; DPV1 key words: ; Diag_Update_Delay=7 ; DPV1_Slave=1 ; C1_Read_Write_supp=1 ; C1_Max_Data_Len=240 ; C1_Response_Timeout=20 ; Diagnostic_Alarm_supp=1 ; Process_Alarm_supp=1 ; Pull_Plug_Alarm_supp=1 ; Extra_Alarm_SAP_supp=1 ; Alarm_Type_Mode_supp=1 ; WD_Base_1ms_supp=1 ; Check_Cfg_Mode=1 ; Publisher_supp=1 ;"Deselect diagnostic blocks" Ext_User_Prm_Data_Ref(8)=511 Ext_User_Prm_Data_Ref(8)=512 -------------- Postup oživení -------------- 1) Zvolíme adresy MORSE pro navržené uspořádání sítě, viz schéma na straně 1. 2) V CU musí být fw verze L664 nebo novější, použijeme MR400 s modulem RS485 (nebo MR25 a převodník OPI232/485profibus DP compatible). 3) Ověříme spojení v síti MORSE povelem !h adresa. 4) V menu SPe zvolíme protokol RS485, rychlost 19200 nebo 93700 podle PLC, parita Even, 1 stop bit, viz strana 4. 5) Propojíme RS485, LED RxD a TxD indikují blikáním komunikaci. 6) Monitorujeme provoz na SCC kanálu. V počáteční fázi komunikace probíhá výměna parametrizačních dat. Pro úspěšnou parametrizaci musí být zapojena kompletní trasa M-RS-RM-S. Po jejím dokončení vypadá výměna dat podobně jako na straně 3. 7) Opakovaným povelem SPe1tMSS nebo SPe1tSSS sledujeme, jestli se stav protokolu dostal na "state:6", který je ustáleným provozním stavem. 7) Povelem SPe1tMSa sledujeme data čtená ze Slave číslo "(N)o." v tomto menu, povelem SPe1tMSA sledujeme data předávaná z centra. 4. Historie Tento popis platí od verze sw 664.