 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
janiP Član

Pridružen-a: Čet 23 Okt 2008 23:00 Prispevkov: 145 Aktiv.: 0.72 Kraj: Ljubljana
|
Objavljeno: Čet Okt 20, 2011 2:56 pm Naslov sporočila: CANopen |
|
|
CANopen je višjenivojski standardiziran protokol, ki temelji na CAN-u (Controller Area Network).
CANopen je nekakšna nadgradnja CAN-a. Definira nekaj precej uporabnih komunikacijskih objektov, kot npr.:
- "Heartbeat" producer/consumer;
- "Emergency message";
- "Process Data Objects" za hitro komunikacijo (producer/consumer(s));
- "Service Data Objects" za dostop do vseh možnih parametrov (master/slave);
- "Sync" producer/consumer;
- "Network Management";
- ...
Glej http://www.can-cia.org/, standard CiA DS301.
Na razpolago je tudi odprtokodni stack za CANopen:
http://sourceforge.net/projects/canopennode/
Trenutno je narejen za 16 in 32 bitne PIC-e in pa za SC2x3, noben problem pa ne bi bil prenos tudi na kakšnega ARM-a.
P.S.: Nekaj o CANopen-u je bilo napisanega že v temi CAN (Controller Area Network). |
|
Nazaj na vrh |
|
 |
janiP Član

Pridružen-a: Čet 23 Okt 2008 23:00 Prispevkov: 145 Aktiv.: 0.72 Kraj: Ljubljana
|
Objavljeno: Čet Okt 20, 2011 3:14 pm Naslov sporočila: |
|
|
videosony je napisal/a: |
Pozdravljen!
CANopen je napredoval pri meni, uporabljam EMS Wunsche USB CAN interface in Portov "CANopen device monitor". Ventili se vklaplajo. Zanima me pa, kje definiram heatbeat in na naterem naslovu naprava pošilja podatke o ventilih ? |
Če nimaš kupljenega Portovega monitorja, ga lahko uporabljaš kot demo, s tem da moraš nastaviti CAN_ID ventilskega otoka na 32 (Najbrž z DIP stikali). Potem pa moraš dobiti EDS datoteko za ta ventil (gotovo jo dobiš na internetu). EDS datoteko odpreš z monitorjem in vsi parametri ventila so ti na razpolago. (heartbeat se nastavlja na indeksu 1017).
Dostop do teh parametrov gre preko CANopen SDO protokola (master/slave). Na ta način imaš na razpolago čisto vse parametre, vendar stvar ni preveč primerena za hitro izmenjavo procesnih podatkov (digitalni vhodi, izhodi).
Procesni podatki se izmenjujejo preko PDO protokola. V vsaki napravi lahko definiraš več tako 'Receive' PDO-jev kot 'Transmit' PDO-jev. Vsak PDO se obnaša kot navadno CAN sporočio z določenim CAN naslovom, določenimi pravili pošiljanja in določeno vsebino. V CANopen mreži lahko določeno PDO sporočilo pošilja samo ena naprava, sprejema pa ga lahko poljubno število naprav.
Parametre PDO-ja nastavljaš preko SDO protokola (mapping and communication parameters). |
|
Nazaj na vrh |
|
 |
videosony Član

Pridružen-a: Čet 15 Nov 2007 1:32 Prispevkov: 21 Aktiv.: 0.10 Kraj: Maribor
|
Objavljeno: Pet Okt 21, 2011 3:23 pm Naslov sporočila: |
|
|
Hvala, napisal si razumljivo, upam da bo še komu koristilo. Še vseeno ne vem kako nastavim heartbeat (v programu). EDS dadoteko naprave imam.
Ali v demo verziji "CANopen Device Monitor" lahko nastavim kje naj bodo podatki in heartbeat ?
Jaz naslova 0x1017 nimam, imam pa 0x100C "guard time" , 0x100D "life time factor" , 0x100E "node guarding identifier" ali lahko razložiš kaj to pomeni ?
Pod "PDO Configuration Frame" sem našel da je "1st Receive PDO Parameter" na naslovu 0x200+Node_ID in tam lahko krmilim ventile (2 byte).
Kako to prestavim da bo na "2st Receive PDO Parameter) ?
"COB-ID" je naslov na katerem je podatek kaj pa pomeni "Transmission type" ki je vedno 0xFE ?
Kako nastavljene parametre trajno zapišem v otok ? Po izklopu napajanju niso enaki parametri kot sem jih spremenil pred tem?
Hvala
Boštjan |
|
Nazaj na vrh |
|
 |
janiP Član

Pridružen-a: Čet 23 Okt 2008 23:00 Prispevkov: 145 Aktiv.: 0.72 Kraj: Ljubljana
|
Objavljeno: Pet Okt 21, 2011 4:11 pm Naslov sporočila: |
|
|
Kaže da ventili ne podpirajo Heartbeata. Podpirajo pa "Node guarding", ki je starejši in težji za uporabo.
Prvi "Receive Process Data Object" (RPDO 1) se nastavlja z dvojimi parametri: "1st Receive PDO Parameter" in "1st Receive PDO Mapping". Če hočeš, da bo tak RPDO2 mu vpiši enake parametre.
V "Transmission type" lahko nastaviš npr. da bo PDO sinhroniziran, itd. Najbrž kaj več piše v navodilih za ventil. Lahko pa pogledaš v standard CiA301.
Za shranjenje parametrov poskusi:
Object 1010h: Store parameters
Vpiši: 0x65766173 (to je ascii koda znakov 's', 'a', 'v', 'e' - 'e' je MSB) |
|
Nazaj na vrh |
|
 |
videosony Član

Pridružen-a: Čet 15 Nov 2007 1:32 Prispevkov: 21 Aktiv.: 0.10 Kraj: Maribor
|
|
Nazaj na vrh |
|
 |
janiP Član

Pridružen-a: Čet 23 Okt 2008 23:00 Prispevkov: 145 Aktiv.: 0.72 Kraj: Ljubljana
|
Objavljeno: Pon Okt 24, 2011 12:28 pm Naslov sporočila: |
|
|
Povezava do navodil za uporabo mi ne deluje, ker najbrž nisem registriran.
EDS sem pogledal.
Kaže, da parametrov v tem ventilu ni možno shranjevati preko CANopen-a. Mogoče v navodilih piše za kakšen drug način.
Če imaš v mreži nek CANopen master, ti ta lahko nastavi parametre ob vsakem zagonu. Npr. moj stack to omogoča.
Stanje ventilov lahko pregledaš, če prebereš parametre na 6200 ali 6300. Lahko pa ta parameter "mapaš" v TPDO 1 in se ti bo pošiljal npr. ob vsaki spremembi. |
|
Nazaj na vrh |
|
 |
videosony Član

Pridružen-a: Čet 15 Nov 2007 1:32 Prispevkov: 21 Aktiv.: 0.10 Kraj: Maribor
|
|
Nazaj na vrh |
|
 |
videosony Član

Pridružen-a: Čet 15 Nov 2007 1:32 Prispevkov: 21 Aktiv.: 0.10 Kraj: Maribor
|
Objavljeno: Pon Okt 24, 2011 1:35 pm Naslov sporočila: |
|
|
Torej če prav razumem, ni možno shranjevat parametre v vse CANopen naprave in je tiste niso možne shranit parametre potrebno z masterom konfigurirat po vsakem zagonu. |
|
Nazaj na vrh |
|
 |
janiP Član

Pridružen-a: Čet 23 Okt 2008 23:00 Prispevkov: 145 Aktiv.: 0.72 Kraj: Ljubljana
|
Objavljeno: Pon Okt 24, 2011 1:39 pm Naslov sporočila: |
|
|
V navodilih nisem zasledil, kako bi shranil parametre. Najbrž je edina možnost, da se jih nastavi ob vsakem zagonu.
Če ni nujno, najbrž parametrov niti ni treba spreminjati. Če hočeš, da ti ventil javlja stanje, poskusi malo s nastavitvami v navodilih na strani 15.
Za vsebino CAN sporočil preglej PDO parametre. V device monitorju npr. označiš parameter 1400, nato preklopiš na zavihek "PDO" in klikneš gumb "read from device". |
|
Nazaj na vrh |
|
 |
videosony Član

Pridružen-a: Čet 15 Nov 2007 1:32 Prispevkov: 21 Aktiv.: 0.10 Kraj: Maribor
|
Objavljeno: Pon Okt 24, 2011 3:19 pm Naslov sporočila: |
|
|
Ja to sem ugotovil če kliknem "Read from Device" mi pokaže nastavljene vrednosti, če kliknem "Send PDO" pa jih pošlje.
Ventile krmilim prek PDO (0x200+Node_ID)
CAN_ID 00000220 data : 04 - 01
Če pa izberem index 6200 pod index 001 pa se zgodi naslednje:
(Receive SDO 0x600+Node_ID)
CAN_ID 00000620 data : 40 - 00 - 62 - 01 - 00 - 00 - 00 - 00
(Transmit SDO 0x580+Node_ID)
CAN_ID 000005A0 data : 4F - 00 - 62 - 01 - 04 - 00 - 00 - 00
Ali veš kaj pomeni prvi byte pri receive (40) in transmit (4F) ?
2 in 3 byte = index
4 byte je pod index
5 byte je vrednost za vklop ventilov |
|
Nazaj na vrh |
|
 |
janiP Član

Pridružen-a: Čet 23 Okt 2008 23:00 Prispevkov: 145 Aktiv.: 0.72 Kraj: Ljubljana
|
Objavljeno: Pon Okt 24, 2011 5:59 pm Naslov sporočila: |
|
|
To so pa pravila SDO protokola. Niti ni nujno da jih poznaš, ker itak z device monitorjem dostopaš do spremenljivke.
Za razlago si preberi tukaj ali pa poglej v standard CiA301. |
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.72 Kraj: Kranj - struževo
|
Objavljeno: Sre Dec 07, 2011 11:45 am Naslov sporočila: |
|
|
Junija 2012 bo v Ljubljani seminar v zvezi s CAN / CANopen.
Organizira CiA.
Udeležba je 120 oz. 140 eur.
Več informacij je tukaj: http://www.can-cia.org/index.php?id=633&tx_seminars_pi1[showUid]=198
Citiram: |
CANopen introduction
CANopen application layer
CANopen device model
Communication services (PDO, SDO, NMT, etc.)
Overview about CANopen additional frameworks
CANopen manager
Layer setting services (LSS)
CANopen Safety
CANopen gateways
Redundancy concepts
System design
Overview about CANopen device- and application profiles |
_________________ I'm going to stand outside, so if anyone asks, I'm outstanding  |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|