Komunikaˇ cn´ı protokol CANopen Z´akladn´ı informace a zad´an´ı u ´loh
Katedra ˇr´ıdic´ı techniky, skupina ˇr´ıdic´ıch syst´em˚ u
Obsah 1 Z´ akladn´ı informace o CANopen 1.1 Komunikaˇcn´ı model CANopen . . . . . 1.1.1 Mapov´ an´ı aplikaˇcn´ıch objekt˚ u na 1.1.2 Pˇrenos dat SDO . . . . . . . . . 1.2 Adres´ aˇr objekt˚ u CANopen . . . . . . . . 1.3 Komunikaˇcn´ı profil . . . . . . . . . . . . 1.4 Profily zaˇr´ızen´ı . . . . . . . . . . . . . .
. . . . . .
2 3 5 5 6 7 9
2 Zad´ an´ı u ´ lohy 2.1 Pˇreˇcten´ı parametr˚ u vˇsech zaˇr´ızen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Kop´ırov´ an´ı vstupu stanice 3 na stanici 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Konfigurace pomoc´ı WAGO PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 10 12 12
. . . . PDO . . . . . . . . . . . . . . . .
1
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Kapitola 1
Z´ akladn´ı informace o CANopen Protokol CAN obsahuje popis pouze prvn´ı a druh´e vrstvy podle modelu ISO OSI. Pro re´aln´e aplikace je tˇreba, aby protokol definoval i vrstvu aplikaˇcn´ı, kter´a dod´av´a v´ yznam dat˚ um pˇren´aˇsen´ ym vrstvou linkovou. Linkov´ a vrstva CAN poskytuje dvˇe z´akladn´ı sluˇzby, kter´e nejsou orientovan´e na spojen´ı (connectionless): – nepotvrzovan´ y pˇrenos zpr´ av CAN.1 – nepotvrzovan´ a vzd´ alen´ a ˇz´ adost o zpr´avu CAN oznaˇcen´a jako RTR (Remote Trasnmission Request).2 Aby bylo pouˇzit´ı CANu v automatizaci usnadnˇeno, vznikly dva protokoly aplikaˇcn´ı vrstvy (CAL a CANopen), kter´e umoˇzn ˇuje vz´ ajemnou interoperabilitu zaˇr´ızen´ı od r˚ uzn´ ych v´ yrobc˚ u. Pˇredmˇetem naˇseho z´ajmu zde bude CANopen, kter´ y rozˇsiˇruje nˇekter´e sluˇzby a protokoly definovan´e vrstvou CAL a nav´ıc definuje mnoˇzstv´ı profil˚ u pro vˇetˇsinu bˇeˇzn´ ych zaˇr´ızen´ı pouˇz´ıvan´ ych v pr˚ umyslov´e automatizaci. CANopen vych´az´ı z takzvan´eho komunikaˇcn´ıho profilu” definovan´eho v CIA-301 a CIA-302 (CIA = CAN in Au” tomation) a jednotliv´e profily zaˇr´ızen´ı jsou CIA-401 pro digit´aln´ı a analogov´e vstupy/v´ ystupy, CIA-402 pro pohony, atd. Popis funkˇcnosti zaˇr´ızen´ı, parametr˚ u apod. se nach´az´ı v adres´ aˇri objekt˚ u (Object Dictionary OD), kter´ y obsahuje ˇc´ ast s obecnou specifikac´ı zaˇr´ızen´ı, jako jeho n´azev, v´ yrobce, komunikaˇcn´ı parametry atd., a potom ˇc´ast, kter´ a obsahuje urˇcitou funkˇcnost zaˇr´ızen´ı, parametry a data. Kaˇzd´a poloˇzka v adres´aˇri se naz´ yv´a objekt a je urˇcena 16-bitov´ ym indexem a 8-bitov´ ym subindexem. Rozliˇsuj´ı se dva z´ akladn´ı mechanismy pˇren´aˇsen´ı zpr´av na CANopen. Procesn´ı data urˇcen´a pro ˇcasovˇe kritickou v´ ymˇenu, naz´ yvan´ a Process Data Objects PDO, a sluˇzebn´ı zpr´avy, jejichˇz doruˇcen´ı nen´ı tolik omezeno ˇcasem, naz´ yvan´e Service Data Objects SDO. Sluˇzebn´ı zpr´avy se pouˇz´ıvaj´ı pˇredevˇs´ım pro pˇren´aˇsen´ı parametr˚ u pˇri konfiguraci zaˇr´ızen´ı nebo pro pˇren´aˇsen´ı delˇs´ıch zpr´av. Zpr´ava na CANu totiˇz m˚ uˇze obsahovat maxim´ alnˇe 8 byt˚ u dat. Procesn´ı data se pˇren´ aˇsej´ı bud’ cyklicky, pˇri zmˇenˇe nebo na vyˇz´ad´an´ı jako broadcastov´e zpr´avy bez dodateˇcn´e reˇzie. Rozm´ıstˇen´ı aplikaˇcn´ıch objekt˚ u (poloˇzek z adres´aˇre objekt˚ u) do pˇren´aˇsen´eho objektu PDO je urˇceno pomoc´ı tzv. mapov´ an´ı PDO – tato informace je uloˇzena v adres´aˇri objekt˚ u a m˚ uˇze b´ yt zmˇenˇena podle poˇzadavk˚ u aplikace (uˇzivatele), jak je uk´az´ano i v praktick´e ˇc´asti. Pˇrenos zpr´ av SDO odpov´ıd´ a potvrzovan´emu pˇrenosu podle modelu client/server a je prov´adˇen jako komunikace mezi dvˇema u ´ˇcastn´ıky. Odpov´ıdaj´ıc´ı poloˇzka je v adres´aˇri objekt˚ u je pops´ana pˇrisluˇsn´ ym 1 Ve skuteˇ cnosti jsou zpr´ avy pˇr´ıjemcem potvrzov´ any nastaven´ım bitu ACK ve vys´ılan´ em r´ amci. Jelikoˇ z se vˇsak nejedn´ a o explicitn´ı potvrzen´ı speci´ aln´ım r´ amcem, jsou takto potvrzovan´ e zpr´ avy v dalˇs´ım textu oznaˇ cov´ any jako nepotvrzovan´ a komunikace. 2 Zpr´ ava RTR je vlastnˇ e potvrzena pˇr´ısluˇsn´ ym r´ amcem, o kter´ y stanice, kter´ a RTR vyslala, ˇ z´ ad´ a.
2
ˇ ´I MODEL CANOPEN 1.1. KOMUNIKACN
3
CANopen Object OD_Index (0 ... 65535)
OD_Entry
[Subindex] 0 1
255 Obr´ azek 1.1: Adresov´ an´ı objekt˚ u CANopen
indexem a subindexem, delˇs´ı zpr´ avy jsou fragmentov´any, takˇze maxim´aln´ı d´elka vymˇen ˇovan´ ych dat nen´ı omezena. Tento typ pˇrenosu vyˇzaduje dodateˇcnou reˇzii protokolu. Poˇc´ateˇcn´ı nastaven´ı a spuˇstˇen´ı cel´eho distribuovan´eho syst´emu prov´ad´ı spr´ava s´ıtˇe – Network Management NMT. Zpr´ avy CAN obsahuj´ı 11-bitov´ y identifik´ator, kter´ y mimo jin´e urˇcuje tak´e prioritu zpr´avy (pˇr´ıstup ke sbˇernici CAN je zaloˇzen na rozpozn´av´an´ı priorit zpr´av pˇri pˇr´ıpadn´e kolizi a na zruˇsen´ı zpr´ avy s niˇzˇs´ı prioritou). Na CANopen je tento identifik´ator oznaˇcov´an COB ID – Communication Object ID a pˇr´ısluˇsn´ y COB ID je pˇridˇelov´an jednotliv´ ym zpr´av´am PDO nebo SDO v adres´aˇri objekt˚ u. Pˇritom plat´ı, ˇze ˇc´ım niˇzˇs´ı je COB ID, t´ım vyˇsˇs´ı je priorita zpr´avy.
1.1
Komunikaˇ cn´ı model CANopen
Jak jiˇz bylo uvedeno, CANopen vych´ az´ı z aplikaˇcn´ı vrstvy CAL (CAN Application Layer), definovan´e v dokumentu CIA-200. Existuj´ı zde dva typy komunikaˇcn´ıch mechanism˚ u: – nepotvrzovan´ y pˇrenos datov´ ych r´ amc˚ u s maxim´aln´ı d´elkou dat 8 byt˚ u je urˇcen k pˇrenosu procesn´ıch dat bez dodateˇcn´e reˇzie (PDO). – potvrzovan´ y pˇrenos dat mezi dvˇema stanicemi s pˇr´ım´ ym pˇr´ıstupem k poloˇzk´am adres´aˇre objekt˚ u (SDO). Tento typ pˇrenosu je urˇcen pˇredevˇs´ım k v´ ymˇenˇe dat mezi konfiguraˇcn´ım n´astrojem a zaˇr´ızen´ım CANopen nebo k pˇrenosu vˇetˇs´ıho mnoˇzstv´ı dat mezi stanicemi, pˇriˇcemˇz jsou p˚ uvodn´ı data fragmentov´ ana tak, aby byla dodrˇzena maxim´aln´ı d´elka dat v r´amci 8 byt˚ u. PDO Producer
PDO Consumer(s) 0
L
request
indication(s)
Data
Obr´ azek 1.2: Pˇrenos dat PDO – z´ apis
Pˇrenos procesn´ıch dat PDO tedy prob´ıh´a nepotvrzovan´ ymi zpr´avami podle modelu zn´azornˇen´eho na obr´azc´ıch 1.2 a 1.3. Kaˇzd´emu PDO je pˇriˇrazen jeden jednoznaˇcn´ y identifik´ator CAN, kter´ y urˇcuje v´ yznam
´ ´I INFORMACE O CANOPEN KAPITOLA 1. ZAKLADN
4
pˇren´aˇsen´ ych dat. Nav´ıc je tˇreba prov´est tzv. mapov´an´ı PDO” – viz d´ale. Obr´azek 1.2 ukazuje z´ apis ” procesn´ıch dat, jin´ ymi slovy pˇrenos dat od zaˇr´ızen´ı PDO-producer – producent k jednomu nebo v´ıce zaˇr´ızen´ım PDO-consumer – konzument. Producentem dat je typicky zaˇr´ızen´ı – ˇcidlo, kter´e hodnoty sv´ ych vstup˚ u pˇren´aˇs´ı na sbˇernici jako tzv. Tx-data. Konzument pak tato data pˇrijme jako tzv. Rx-data. Obr´azek 1.3 zobrazuje mechanismus vysl´ an´ı ˇz´ adosti o data konzumentem prostˇrednictv´ım r´amce RTR – ˇz´adost o data. Producent n´ aslednˇe poˇzadovan´ a data vyˇsle a ˇc´ıst je potom mohou i ostatn´ı konzumenti, tj. nejenom ten, kter´ y ˇz´adost o data vyslal. Rovnˇeˇz je vidˇet, ˇze producent data vys´ıl´a jako broadcast, jak je definov´ ano v protocolu CAN. Na obr´ azku 1.4 je zn´ azornˇen pˇr´ıklad struktury vz´ajemn´e komunikace prostˇrednictv´ım
PDO Producer indication
PDO Consumer(s) Remote Transmission Request
0
request
L
response
Data
confirmation indication indication
Obr´ azek 1.3: Pˇrenos dat PDO na vyˇz´ ad´ an´ı – ˇcten´ı
dat PDO. Znovu je tˇreba si uvˇedomit, ˇze data oznaˇcen´a jako Tx pdo jsou data vstupn´ı, tj. vstupn´ı data dan´eho zaˇr´ızen´ı vys´ılan´ a na sbˇernici, a data oznaˇcen´a jako Rx pdo jsou data v´ ystupn´ı, tj. v´ ystupn´ı data dan´eho zaˇr´ızen´ı pˇrij´ıman´ a ze sbˇernice a zapsan´a na v´ ystup.
Stanice 1
Stanice 2
TX_PDO_11 TX_PDO_21 TX_PDO_12
RX_PDO_11
RX_PDO_21
RX_PDO_12
RX_PDO_22
Stanice 3 TX_PDO_31
RX_PDO_31 RX_PDO_32 RX_PDO_32
Obr´ azek 1.4: Pˇr´ıklad vz´ ajemn´e komunikace prostˇrednictv´ım PDO
ˇ ´I MODEL CANOPEN 1.1. KOMUNIKACN
1.1.1
5
Mapov´ an´ı aplikaˇ cn´ıch objekt˚ u na PDO
Skuteˇcn´a funkˇcnost poskytovan´ a zaˇr´ızen´ım CANopen je definov´ana aplikaˇcn´ımi objekty, coˇz mohou b´ yt parametry, data a funkce. Napˇr´ıklad se m˚ uˇze jednat o hodnotu digit´aln´ıho vstupu nebo v´ ystupu, c´ılov´a rychlost servopohonu, stav zaˇr´ızen´ı, pˇr´ıkaz k vypnut´ı zaˇr´ızen´ı, atd. Vzhledem k tomu, ˇze lze pˇren´ aˇset maxim´alnˇe 8 byt˚ u dat v jednom PDO, je tˇreba definovat um´ıstˇen´ı aplikaˇcn´ıch dat v datov´em poli PDO. Tomuto popisu se ˇr´ık´ a mapov´ an´ı PDO a jeho princip je zn´azornˇen na obr´azku 1.5. Zde je zn´azornˇen Mapping Parameter Record PDO_N Entry No.
Application Object
0
No. of Entries = 3 Index
SubIndex Length/bit
1
yyyy
yy
8
Device Object Dictionary
2
zzzz
zz
16
Index Subindex Appl. Object Value
3
xxxx
xx
8
xxxx
xx
A_Object No. 1
yyyy
yy
A_Object No. 2
zzzz
zz
A_Object No. 3
PDO_N Obr´ azek 1.5: Princip mapov´ an´ı PDO
seznam aplikaˇcn´ıch objekt˚ u v adres´ aˇri objekt˚ u, kter´e maj´ı b´ yt mapov´any do jednoho r´amce PDO. Kaˇzd´ y aplikaˇcn´ı objekt je jednoznaˇcnˇe urˇcen sv´ ym Indexem a Subindexem – v adres´aˇri objekt˚ u je na dan´em m´ıstˇe hodnota aplikaˇcn´ıho objektu (napˇr. hodnota 8-bitov´eho digit´aln´ıho vstupu). V tabulce v lev´e ˇc´asti obr´azku je pak samotn´e mapov´ an´ı do r´ amce PDO. Vid´ıme, ˇze v jednom r´amci budou pˇren´aˇseny hodnoty tˇr´ı aplikaˇcn´ıch objekt˚ u, jak je vidˇet v ˇr´ adku 0 (Entry No. = 0). Kaˇzd´ y ˇr´adek pak obsahuje odkaz na pˇr´ısluˇsn´ y aplikaˇcn´ı objekt do adres´ aˇre objekt˚ u, tj. Index a Subindex dan´eho aplikaˇcn´ıho objektu. Nav´ıc je uvedena i d´elka aplikaˇcn´ıho objektu, tj. kolik byt˚ u objekt zabere v r´amci PDO. Podle obr´azku tedy y zab´ır´a 1 byte, potom aplikaˇcn´ı objekt bude do r´amce PDO N nejprve um´ıstˇen aplikaˇcn´ı objekt 2, kter´ 3, kter´ y zab´ır´ a 2 byty, a nakonec aplikaˇcn´ı objekt 1, kter´ y zab´ır´a 1 byte. Pˇr´ıklad konkr´etn´ıho mapov´ an´ı tak, jak to odpov´ıd´a standardn´ımu profilu vstup˚ u a v´ ystup˚ u implementovan´emu na zaˇr´ızen´ı WAGO, bude uveden v ˇc´asti 1.4.
1.1.2
Pˇ renos dat SDO
Zde se jedn´a o potvrzovan´ y pˇrenos dat libovoln´e d´elky mezi stanicemi prostˇrednictv´ım sluˇzebn´ıch objekt˚ u (Service Data Objects – SDO) podle modelu client/server. Klient, coˇz je stanice, kter´a pˇrenos zaˇc´ın´a, tak m´a pˇr´ım´ y pˇr´ıstup k adres´ aˇri objekt˚ u serveru SDO, d´ıky ˇcemuˇz m˚ uˇze pos´ılat/pˇrij´ımat data libovoln´e d´elky do/z serveru prostˇrednictv´ım pˇr´ısluˇsn´eho Indexu a Subindexu. Pro kaˇzdou zpr´avu v pˇr´ısluˇsn´em smˇeru (klient → server nebo server → klient) je tˇreba jeden identifik´ator zpr´avy CAN, a tak pro spojen´ı mezi klientem a serverem jsou tˇreba celkem dva identifik´atory CAN (konkr´etn´ı ˇreˇsen´ı je uvedeno v komunikaˇcn´ım profilu v ˇc´ asti 1.3. Takov´e spojen´ı je tak´e oznaˇcov´ano jako kan´ al SDO. Pˇr´ıklad komunikace prostˇrednictv´ım kan´ al˚ u SDO je uveden na obr´azku 1.6. Z nˇej je vidˇet, ˇze spojen´ı je vytvoˇreno vˇzdy mezi dvˇema u ´ˇcastn´ıky (model klient/server) a ˇze stanice 1 a 2 maj´ı prostˇrednictv´ım sv´ ych klient˚ u pˇr´ıstup k
´ ´I INFORMACE O CANOPEN KAPITOLA 1. ZAKLADN
6
Stanice 1 client_SDO_11
Stanice 3 client_SDO_12 server_SDO_31 client_SDO_13 server_SDO_32 server_SDO_11
Stanice 2 client_SDO_21 client_SDO_22
Stanice 4 server_SDO_41 server_SDO_42
client_SDO_23
server_SDO_21
Obr´ azek 1.6: Komunikace prostˇrednictv´ım kan´ al˚ u SDO
adres´aˇri objekt˚ u vˇsech ostatn´ıch stanic. CANopen umoˇzn ˇuje, aby zaˇr´ızen´ı spravovalo aˇz 128 kan´al˚ u SDO, kaˇzd´e zaˇr´ızen´ı vˇsak mus´ı obsahovat alespoˇ n jeden objekt SDO server (default SDO), d´ıky nˇemuˇz m˚ uˇze k dan´e stanici pˇristoupit libovoln´e dalˇs´ı zaˇr´ızen´ı, napˇr´ıklad konfiguraˇcn´ı n´astroj. Konfigurace zaˇr´ızen´ı takov´ ym n´astrojem pˇri uv´ adˇen´ı syst´emu do provozu je tak´e nejd˚ uleˇzitˇejˇs´ım pˇr´ıkladem pouˇzit´ı komunikace SDO. Pˇrenos dat libovoln´e d´elky je moˇzn´ y d´ıky fragmentaci p˚ uvodn´ıch dat, protoˇze maxim´aln´ı d´elka dat v jednom r´amci CAN je 8 byt˚ u. Data jsou tedy pˇren´aˇsena jako sekvence segment˚ u. Tomuto pˇrenosu vˇsak mus´ı pˇredch´ azet f´ aze nav´ az´ an´ı spojen´ı, ve kter´e je v prvn´ı zpr´avˇe ze strany klienta uvedeno, o jak´ y typ pˇrenosu se jedn´ a, tj. jak´ a sluˇzba CANopen bude vyuˇz´ıv´ana. Napˇr´ıklad, je-li tˇreba pˇren´aˇset pouze 4 byty, m˚ uˇze se cel´ y pˇrenos odehr´ at pouze prostˇrednictv´ım jedn´e datov´e v´ ymˇeny, kdy spolu s ˇz´adost´ı o vytvoˇren´ı spojen´ı budou pˇreneseny poˇzadovan´e 4 byty dat.
1.2
Adres´ aˇ r objekt˚ u CANopen
V´ yznam pojmu objekt jiˇz byl zm´ınˇen dˇr´ıve a vypl´ yv´a z obr´azku 1.1. Adres´ aˇr objekt˚ u (Object Dictionary OD) pak obsahuje objekty, kter´e jsou nezbytn´e pro zobrazen´ı vˇsech vlastnost´ı a parametr˚ u zaˇr´ızen´ı, pokud tyto vlastnosti a parametry maj´ı b´ yt pˇr´ıstupn´e pˇres sbˇernici CAN. Jestliˇze objekt na urˇcit´em indexu obsahuje nˇekolik dalˇs´ıch poloˇzek oznaˇcen´ ych pˇr´ısluˇsn´ ymi subindexy, pak je hodnota nejvyˇsˇs´ıho vyuˇzit´eho subindexu uloˇzena v poloˇzce se subindexem 0. Adres´aˇr objekt˚ u je uveden v tabulce 1.1, ze kter´e se budeme v dalˇs´ım textu vˇenovat pˇredevˇs´ım oblastem dan´ ym indexy 0x1000 aˇz 0x1FFF, coˇz jsou komunikaˇcn´ı parametry popsan´e v komunikaˇcn´ım profilu, a 0x6000 aˇz 0x9FFF, coˇz jsou profily zaˇr´ızen´ı obsahuj´ıc´ı parametry, data a funkce dostupn´e pˇres CANopen.
ˇ ´I PROFIL 1.3. KOMUNIKACN Index 0001 – 001F 0020 – 003F 0040 – 005F 0060 – 007F 0080 – 009F 00A0 – 025F 026F – 0FFF 1000 – 1FFF 2000 – 5FFF 6000 – 9FFF A000 – FFFF
7
Object Standard data types Pre-defined complex data types Manufacturer specific complex data types Device profile specific standard data types Device profile specific complex data typex Device profile specific standard and complex data types for devices with multiple modules Reseved for extensions Communication profile area Manufacturer specific area Standardized device profile area Reserved Tabulka 1.1: Adres´ aˇr objekt˚ u CANopen
1.3
Komunikaˇ cn´ı profil
Pro naˇse potˇreby jsou d˚ uleˇzit´e pˇredevˇs´ım u ´daje t´ ykaj´ıc´ı se komunikaˇcn´ıch parametr˚ u server˚ u a klient˚ u SDO, jichˇz m˚ uˇze b´ yt maxim´ alnˇe 128, d´ ale pak definice komunikaˇcn´ıch parametr˚ u maxim´alnˇe 512 objekt˚ u PDO pro vys´ıl´ an´ı a pˇr´ıjem (Rx PDO, Tx PDO) a mapov´an´ı aplikaˇcn´ıch objekt˚ u do objekt˚ u PDO. Struktura komunikaˇcn´ıho profilu se zd˚ uraznˇen´ım uveden´ ych u ´daj˚ u je v tabulce 1.2 a v tabulce 1.3, pˇriˇcemˇz oblast index˚ u pˇriˇrazen´ ych komunikaˇcn´ımu profilu je 0x1000 aˇz 0x1FFF, jak jiˇz bylo uvedeno v´ yˇse. Index 1200 1201 .. . 127F 1280 1281 .. . 12FF 1300 .. . 1300
Object Type Description Server SDO Parameter Record 1st Server SDO Parameter Record 2nd Server SDO Parameter .. .. . .
Access ro rw .. .
Record 128th Server SDO Parameter Client SDO Parameter Record 1st Client SDO Parameter Record 2nd Client SDO Parameter .. .. . .
rw
128th Client SDO Parameter reserved .. .
rw
Record .. .
ro rw .. .
.. .
reserved
ˇ ast komunikaˇcn´ıho profilu – parametry server˚ Tabulka 1.2: C´ u a klient˚ u
Tabulka 1.2 obsahuje objekty SDO a jak jiˇz bylo zm´ınˇeno v´ yˇse, tyto objekty se rozliˇsuj´ı podle SDO serveru a klienta. Klientsk´ y SDO je ch´ap´an jako inici´ator SDO pˇrenos a m´a moˇznost pˇristupovat k poloˇzk´am adres´ aˇre objekt˚ u serveru SDO. Vˇsimnˇeme si, ˇze prvn´ı parametr serveru SDO je urˇcen pouze ke ˇcten´ı. To je z toho d˚ uvodu, ˇze je povinn´ y, pevnˇe definovan´ y a nen´ı moˇzn´e jej mˇenit, protoˇze se pouˇz´ıv´ a ke standardn´ı komunikaci s konfiguraˇcn´ım n´ astrojem. Tento povinn´ y server SDO je um´ıstˇen vˇzdy na indexu 0x1200 a jeho struktura je rozeps´ ana v tabulce 1.4.
´ ´I INFORMACE O CANOPEN KAPITOLA 1. ZAKLADN
8
Index 1400 1401 .. . 15FF 1600 1601 .. . 17FF 1800 1801 .. .
Object Type Description Receive PDO Communication Parameter Record 1st Receive PDO Parameter Record 2nd Receive PDO Parameter .. .. . . Record 512th Receive PDO Parameter Receive PDO Mapping Parameter Record 1st Receive PDO Mapping Record 2nd Receive PDO Mapping .. .. . .
Access
Record 512th Receive PDO Mapping Transmit PDO Communication Parameter Record 1st Transmit PDO Parameter Record 2nd Transmit PDO Parameter .. .. . .
rw
19FF 1A00 1A01 .. . 1BFF
Record 512th Transmit PDO Parameter Transmit PDO Mapping Parameter Record 1st Transmit PDO Mapping Record 2nd Transmit PDO Mapping .. .. . . Record 512th Transmit PDO Mapping
rw rw .. . rw rw rw .. .
rw rw .. . rw rw rw .. . rw
ˇ ast komunikaˇcn´ıho profilu – parametry PDO Tabulka 1.3: C´
Subindex 0
Definition No. of entries
Access ro
1
COB ID Client → Server
2
3
COB ID Server → Client
Node ID SDO Client
Default value no
Index 0x1200: ro
Value range Index 0x1200: 2 Index 0x1201 – 0x127F: 2 – 3 Unsigned 32
Index 0x1201 – 0x127F: rw Index 0x1200: ro
Unsigned 32
Index 0x1201 – 0x127F: rw rw
Index 0x1200: 0x580 + Node ID Index 0x1201 – 0x127F: no
0x1 – 0x7F
no
Tabulka 1.4: Popis objektu SDO serveru
Index 0x1200: 0x600 + Node ID Index 0x1201 – 0x127F: no
ˇ ´IZEN´I 1.4. PROFILY ZAR
1.4
9
Profily zaˇ r´ızen´ı
Profily zaˇr´ızen´ı popisuj´ı skuteˇcnou funkˇcnost pro funkce standardn´ıho profilu v rozmez´ı index˚ u 0x6000 – 0x9FFF a pro funkce specifikovan´e urˇcit´ ym v´ yrobcem v rozmez´ı index˚ u 0x2000 – 0x5fff. Standardn´ı profily jsou vytvoˇreny pro z´ akladn´ı typy zaˇr´ızen´ı jako napˇr´ıklad digit´aln´ı vstupy, digit´aln´ı v´ ystupy, analogov´e vstupy, analogov´e v´ ystupy, kter´e jsou souˇc´ast´ı dokumentu CiA-401. Dalˇs´ı profily definuj´ı parametry a funkce pohon˚ u, inkrement´ aln´ıch sn´ımaˇc˚ u, programovateln´ ych automat˚ u atd. Pro n´as je nejv´ yznamnˇejˇs´ı profil digit´aln´ı vstup˚ u a profil digit´ aln´ıch v´ ystup˚ u, kter´e jsou uloˇzeny v oblastech 0x6000 aˇz 0x6128, respektive 0x6200 aˇz 0x6328. Jelikoˇz v´ yznam parametr˚ u pro vstupy i v´ ystupy je podobn´ y, je zde uveden pouze popis digit´ aln´ıch vstup˚ u, kter´ y odpov´ıd´a tabulce 2.5.
Kapitola 2
Zad´ an´ı u ´ lohy 2.1
Pˇ reˇ cten´ı parametr˚ u vˇ sech zaˇ r´ızen´ı
Pˇreˇctˇete parametry vˇsech zaˇr´ızen´ı CANopen pˇripojen´ ych na sbˇernici CAN. Jedn´a se pˇredevˇs´ım o parametry uveden´e v tabulk´ ach 2.1 aˇz 2.4, kter´e se t´ ykaj´ı komunikaˇcn´ıch parametr˚ u pro vys´ıl´an´ı a pˇrij´ım´an´ı dat, a d´ale potom v tabulce 2.5, kter´ a popisuje z´akladn´ı parametry standardn´ıho profilu DS401. Index Idx1400
Subindex SubIdx0 SubIdx1
SubIdx2 Idx1401
Popis komunikaˇcn´ı parametry Rx (receive): prvn´ı byte v´ ystup˚ u celkov´ y poˇcet sub index˚ u v dan´em indexu COB ID, pˇres kter´ y bude prob´ıhat v´ ymˇena dat, tj. adresa zpr´avy, kter´a bude obsahovat v´ ystupn´ı data. Kdyˇz se na sbˇernici objev´ı zpr´ava s t´ımto COB ID, data v n´ı obsaˇzen´a se zap´ıˇsou na v´ ystup tj. identifik´ ator zpr´avy, kterou bude toto zaˇr´ızen´ı pˇrij´ımat typ komunikace (0xFF ... state of change) dtto, ale druh´ y byte v´ ystup˚ u (kdyby byl pˇripojen) atd. Tabulka 2.1: Komunikaˇcn´ı parametry Rx
Index Idx1600
Subindex
SubIdx0 SubIdx1
Popis mapov´ an´ı Rx PDO - je zde ˇreˇceno, jak se budou pˇren´aˇsen´a data interpretovat, tj. kam se budou pˇrijat´e hodnoty v´ ystup˚ u fyzicky mapovat poˇcet fyzick´ ych byt˚ u kam jsou data mapov´ana na fyzick´e v´ ystupy, tj. na pˇr´ısluˇsn´e aplikaˇcn´ı objekty (xxxxyyzz: xxxx - Idx, yy - poˇrad´ı bytu, zz - poˇcet bit˚ u). Ve standardn´ım profilu DS301 jsou tyto u ´daje uvedeny. Tabulka 2.2: Mapov´ an´ı Rx PDO
Zmˇena hodnot - z´ apisem 1 do nejvyˇsˇs´ıho bitu - napˇr. Idx1400, SubIdx1 Weidmueller - nefunguje zmˇena COB ID na Idx1400, SubIdx1 - zap´ıˇseme 183, pˇreˇcteme 183, ale zaˇr´ızen´ı reaguje na pˇredch´azej´ıc´ı 205 10
ˇ CTEN ˇ ´I PARAMETRU ˚ VSECH ˇ ˇ ´IZEN´I 2.1. PRE ZAR
Index Idx1800
Subindex SubIdx0 .. .
Popis komunikaˇcn´ı parametry Tx (transmit): prvn´ı byte vstup˚ u jako u parametr˚ u Rx
SubIdx2 Tabulka 2.3: Komunikaˇcn´ı parametry Tx
Index Idx1A00 .. .
Subindex .. .
Popis mapov´ an´ı Tx PDO - viz Idx1600 .. . Tabulka 2.4: Mapov´ an´ı Tx PDO
Index Idx6000 Idx6005 Idx6006 Idx6007 Idx6008 Idx6200 .. . Idx6700
Popis STDP Digital Input glob´ aln´ı povolen´ı digit´aln´ıch vstup˚ u (0 - zak´az´ano, 1 - povoleno, zaˇr´ızen´ı m˚ uˇze vys´ılat na sbˇernici zpr´avy obsahuj´ıc´ı hodnoty vstup˚ u) maskov´ an´ı vstup˚ u maskov´ an´ı hran na vstupech STDP digital output .. . ... Tabulka 2.5: Standardn´ı profil zaˇr´ızen´ı
11
´ ´I ULOHY ´ KAPITOLA 2. ZADAN
12
2.2
Kop´ırov´ an´ı vstupu stanice 3 na stanici 2
Nastaven´ım Tx parametr˚ u stanice 3 a Rx parametr˚ u stanice 2 na stejnou hodnotu COB ID doc´ıl´ıme toho, ˇze vstupy (Tx parametry) stanice 3 se budou pˇr´ımo zobrazovat na v´ ystupech (Rx parametry) stanice 2. Proved’te.
2.3
Konfigurace pomoc´ı WAGO PLC
WAGO PLC vystupuje na sbˇernici jako NMT master, kter´ y dok´aˇze konfigurovat ostatn´ı zaˇr´ızen´ı. Zaps´an´ım programu do PLC pomoc´ı aplikace Wago IO Pro proved’te kop´ırov´an´ı vstup˚ u ze stanice 2 na v´ ystupy stanice 3. – nastudujte pouˇzit´ı funkce SDO WRITE4. Zp˚ usoby jej´ıho vykon´av´an´ı jsou na obr´azku 2.2, na obr´azku 2.1 je uˇzivatelsk´e rozhran´ı funkce Send CAN Frame, kter´a je v programu pouˇzita pro pˇr´ım´e odesl´ an´ı dat do pˇr´ısluˇsn´eho zaˇr´ızen´ı. – nastudujte nastaven´ı parametr˚ u SDO zpr´av pro server a klient – doplˇ nte uk´ azkov´ y program (ˇc´ast bloku CASE pro hodnoty 4 aˇz 7), aby odpov´ıdaly zad´an´ı
Send_CAN_Frame COB_ID RTR_Frame
Confirm Error
Data Datalength Enable
Obr´ azek 2.1: Uˇzivatelsk´e rozhran´ı funkce Send CAN Frame
Device Index Subindex Data Datalength Enable Confirm Error Errorinfo No error
Error during SDO Transfer
SDO Transfer stopped by PLC
Obr´ azek 2.2: Zp˚ usoby vykon´ av´ an´ı funkce SDO Write