PROMOS fórum

FRED - grafické vývojové prostředí => FRED - platforma PL2 (CCPU) => Téma založeno: libor 27.06.2011, 06:21:01



Název: CCPU a XCOM přes CAN
Přispěvatel: libor 27.06.2011, 06:21:01
Na jedné akci máme CCPU-03 a také XCOM-21. Nyní potřebujeme do CCPU-03 dostat data (cca 16 hodnot) z dalšího místa po sériové lince, ale již není žádná volná. K XCOM-21 by to bylo možné připojit, ale jak dostat data z XCOM-21 do CCPU-03? Bylo by možné využít CAN?

Dotaz zákazníka (viz výzva (http://forum.elsaco.cz/index.php?topic=13.msg112#msg112)).


Název: Re: CCPU a XCOM přes CAN
Přispěvatel: libor 27.06.2011, 06:49:21
Pro spojení CCPU-03 a XCOM-21 je CAN možné využít, a to SDO přenosy. Má to ovšem svá omezení. SDO přenos je pomalejší než PDO, CCPU-03 očekává rychlé odezvy a dále se SDO používají pro přenos informací na panel CDKM.

V projektu pro XCOM-21 tak lze použít moduly SDOinter slave jen v případě, že v projektu pro CCPU-03 není modul CKDM pro obsluhu tohoto displeje. V opačném případě (CCPU-03 obsluhuje CKDM) je nutné, aby reakce XCOM byla co nejrychlejší. Je proto nutné použít modul SDOinter slave (dyn), který lze natáhnout na potřebný počet přenášených dat.

Moduly pro CANovskou komunikaci na platformě XCOM (XCPU atd.) potřebují pro svou funkci modul CAN main, ve kterém se nastavuje adresa pro SDO slave komunikaci. Tu nastavím tak, aby nekolidovala s dalšími zařízeními na sběrnici CAN (viz obrázek v příloze - nastaveno na adresu 15). Dále v modulu SDOinter slave (dyn) nastavíme, která CAN sběrnice se má na XCOM využít (pokud jich má více) - v našem případě je to 0 = CAN0 a samozřejmě si nastavíme index, na kterém data bude možno získat. Subindex má modul SDOinter slave (dyn) vždy od 0.

Zapojení zkušebního projektu je na posledním obrázku.

(připojené soubory vidí pouze registrovaní uživatelé (http://forum.elsaco.cz/index.php?action=register))


Název: Re: CCPU a XCOM přes CAN
Přispěvatel: libor 27.06.2011, 06:56:22
V projektu pro CCPU použijeme moduly SDO z knihovny a nastavíme jim správné parametry, které jsou v našem případě:

- adresa = 15 (nastaveno v modulu CANmain v projektu pro XCOM)
- index = 10000 (nastaveno v modulu SDOinter slave (dyn))
- subindex = 0 až 17 (při modulu SDOinter slave (dyn) začíná rozsah vždy od 0 a počet je dán délkou modulu)

Oba projekty (včetně modulů a projektové skupiny) jsou v příloze.

(připojené soubory vidí pouze registrovaní uživatelé (http://forum.elsaco.cz/index.php?action=register))


Název: Re: CCPU a XCOM přes CAN
Přispěvatel: libor 27.06.2011, 06:59:46
Důležité je, aby XCOM měl možnost souvisle vykonávat činnost modulu SDOinter slave (dyn), a to po dobu, která je nutná k přenosu všech SDO. Komunikace 16 SDO trvá přibližně 1 - 1.5s a po tuto dobu nesmí přesáhnout čas smyčky v XCOM 10ms. Bude-li XCOM vykonávat ještě nějakou další komunikaci po sériové lince, tak je nutné, aby tato komunikace probíhala např. 1x za 5s.