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.