CanRecv –  Přijetí zprávy sběrnice CAN

Symbol blokuPotřebná licence: CANDRV
PIC

Popis funkce

Blok slouží k přijetí zprávy na sběrnici CAN. Blok přijímá jen zprávy které odpovídají filtru (parametry filterId, filterIdMask, filterLength, RTR, EXT).

Počet zpráv, které prošly filtrem za periodu (tj. od minulého spuštění bloku) určuje výstup nDRDY.

Poslední přijatá zpráva je zobrazena na výstupech msgId, data, length. Starší zprávy (s ohledem na parametr nmax) jsou dostupné pomocí bloku CanItem navázaného na výstup itemRef.

Pro správnou funkci blok musí být napojen na ovladač CanDrv, který je v režimu simpleCAN (tj. NodeMode=256). To se provede pojmenováním bloku dle vzoru <DRV>__<signal> (stejně jako u bloků Goto, OUTSTD, OUTQAD, apod.), tj. název bloku musí začínat názvem driveru a dvěma podtržítky následované názvem signálu, přičemž název signálu může být v tomto případě libovolný.

Blok umožňuje přijímat zprávy s krátkým (11bitů) i dlouhým (29 bitů) číslem zprávy (řídí se parametrem EXT) a také zprávy pro vyžádání zprávy (parametr RTR). FD režim (který umožňuje zprávy s až 64 bajty) není podpořen.

Parametry

filterId

Číslo zprávy, které jsou přijaty tímto blokem   0  536870911

Long (I32)

filterIdMask

Označuje platné bity v parametru filterId   0  536870911

Long (I32)

filterLength

Kolik bajtů dat musí mít zpráva, aby byla akceptována tímto blokem (-1 nefitruje se podle délky dat)   -1  8

Long (I32)

RTR

Příznak žádost o zprávu (RequestToSend)  on

Bool

EXT

Rozšířený formát čísla zprávy (29bitů)  on

Bool

timeout

Pokud během této doby nepřijde packet, je indikována chyba [s]   0.0

Double (F64)

nmax

Maximální počet zpráv přijatých blokem během jedné periody   1  255

Long (I32)

Výstupy

itemRef

Odkaz na další přijaté packety

Reference

msgId

Číslo zprávy (COB-ID)

Long (I32)

data

Data zprávy (max. 8 bajtů, nejnižší bajt první)   -9.22337E+18  9.22337E+18

Large (I64)

length

Počet datových bajtů zprávy   0  8

Long (I32)

nDRDY

Počet přijatých zpráv v aktuální periodě tasku   255

Word (U16)

iErr

Kód chyby

Error

age

Čas od poslední přijaté zprávy [s]   0.0

Double (F64)

2020 © REX Controls s.r.o., www.rexygen.com