TrolDatGen

Transkript

TrolDatGen
TrolDatGen
Konfigurační program
Příručka uživatele
Verze 1.04
5.11
TROLDATGEN
AMiT, spol. s r.o. nepřejímá žádné záruky, pokud se týče
obsahu této publikace a vyhrazuje si právo měnit obsah
dokumentace bez závazku tyto změny oznámit jakékoli osobě
či organizaci.
Tento dokument může být kopírován a rozšiřován za následujících podmínek:
1. Celý text musí být kopírován bez úprav a se zahrnutím
všech stránek.
2. Všechny kopie musí obsahovat označení autorského práva
společnosti AMiT, spol. s r.o. a veškerá další upozornění
v dokumentu uvedená.
3. Tento dokument nesmí být distribuován za účelem dosažení
zisku.
V publikaci použité názvy produktů, firem apod. mohou být
ochrannými známkami nebo registrovanými ochrannými známkami příslušných vlastníků.
AMiT je registrovaná ochranná známka.
Copyright (c) 2006, AMiT, spol. s r. o.
AMiT, spol. s r. o.
Naskové 3/1100, 150 00 Praha 5, Česká republika
tel.: 222 780 100, 222 781 516, 222 782 074
Kollárova 6a, 612 00 Brno, Česká republika
tel.: 541 217 220, 549 210 403
Starobělská 13, 700 30 Ostrava, Česká republika
tel.: 597 570 306, 597 570 307
File:, Dokument3 Created: 14.1.09
Autor: Libor Šenk Rev.: 4.11, Doc.ver.:1.0
troldatgen_ms_cz_104
2/34
TROLDATGEN
Obsah
Obsah....................................................................................3
Historie revizí.........................................................................4
Související dokumentace.......................................................4
1.
Použití............................................................................ 5
2.
Práce s prostředím....................................................... 6
2.1.
Práce s tabulkami..................................................................6
3.
Settings ......................................................................... 9
4.
Procesní databáze...................................................... 10
4.1.
Funkce Compact .................................................................10
5.
CAN.............................................................................. 11
5.1.
5.3.
5.4.
CAN-bus..............................................................................11
Editovaná data ....................................................................12
CAN-slave stanice...............................................................13
Editovaná data ....................................................................14
RPDO ..................................................................................16
PDO Groups........................................................................19
6.
Safe States .................................................................. 22
6.1.
6.2.
Priority Safe States..............................................................23
Kopie CAN BF do proměnných ...........................................24
7.
DataLogger ................................................................. 26
7.1.
Stanovení hodnoty BuffSize ................................................27
8.
Klávesové zkratky ...................................................... 28
9.
Hromadné importy ..................................................... 29
9.1.
9.2.
9.3.
9.4.
9.5.
9.6.
9.7.
9.8.
9.9.
TROL ALARMS ...................................................................29
TROL DT .............................................................................29
TROL_PARAM ....................................................................30
TROL_CAN_SAFE..............................................................30
Vstupní parametry ...............................................................31
Import alarmů a dataloggerů ...............................................31
Import parametrických proměnných ....................................34
Import bezpečných can stavů..............................................34
Postupy při importu .............................................................34
5.2.
1.
3/34
troldatgen_ms_cz_104
TROLDATGEN
1.Historie revizí
Jméno dokumentu: TrolDatGen_ms_cz_104.pdf
Verze Datum
Změny
100 26.06.2009 Nový dokument
Oprava popisu Interleaving/Inhibit
101
15.07.2009 Doplněn výpočet BuffSize
102
Revize
29.09.2009 Doplněna kapitola 6.2
103
104
Doplněna kapitola 4.1
23.1.2010 Doplněna kapitola 9
9.4.2011 Doplněna kapitola 5.2-Editovaná data o 4
položky (Safe sequence, Force to
disconnect state, Disable reset frame,
Leave disconnect state)
Příloha:
-
Související dokumentace
Troldatgen_ms_cz_104
1)
Knihovna
TROL,
trol_ms_cz_xxx.pdf
2)
TrolView,
servisní
a
TrolView_ms_cz_xxx.pdf
4/34
programátorská
vizualizační
příručka,
nástroj,
TROLDATGEN
1. Použití
Program TrolDatGen slouží k nadefinování databázových
proměnných, struktury CAN objektů, data-logů a alarmů pro
aplikaci běžící nad knihovnou TROL.
Výstupem programu jsou vygenerované zdrojové soubory,
které se následně použijí v aplikaci za pomocí knihovny TROL.
Generované
soubory
G_CAN.C, G_CAN.H – struktura CAN objektů
G_DB.C, G_DB.H – struktura databáze
G_DIAG.C, G_DIAG.H – definice dataloggeru
G_VCAN.C, G_CANV.C – kopie bf (viz.kapitola 6.2)
Soubory se generují do adresáře GEN v rámci adresářové
struktury popsané v dokumentaci 1) kap. „Struktura adresářů
projektu“.
Alarmy
Do generovaných souborů svým charakterem patří i definice
objektů alarmového systému. Ve stávající verzi se však vytváří
jiným způsobem a v nových projektech musí být vytvářeny
ručně. Tyto soubory jsou pojmenovány G_ALARMS.C a
G_ALARMS.H.
5/34
troldatgen_ms_cz_104
TROLDATGEN
2. Práce s prostředím
Hlavní nabídka
Nástrojová lišta
Okno Projektu
Pracovní okno
Obr. 1 - Prostředí
Hlavní části
prostředí
Hlavní nabídka – umožňuje přístup k většině funkcí programu
Nástrojová lišta – obsahuje ikony se zkratkami k jednotlivým
funkcím
Pracovní okno – okno pro editaci jednotlivých položek
projektu. Každá položka se otevírá ve vlastní záložce. Mezi
záložkami lze přepínat kliknutím nebo klávesovou zkratkou
Ctrl+PageDownn / Ctrl+PageUp
Okno Projektu – udržuje strukturu projektu a umožňuje přístup
k jednotlivým položkám projektu
2.1. Práce s tabulkami
V pracovním okně se editují data jednotlivých položek projektu.
Často se používá editace pomocí tabulek.
Troldatgen_ms_cz_104
6/34
TROLDATGEN
Tabulky mají jednotné ovládání:
Šířky a pořadí
sloupců
Pomocí myši lze nastavovat šířky a pořadí sloupců. Prostředí si
tyto změny pamatuje.
Třídění dle sloupce
Tabulky lze třídit dle vybraného sloupce klikem na buňku
s nadpisem sloupce. Postupnými kliky lze přepínat vzestupné
nebo sestupné abecední třídění. Prostředí si nastavení třídění
pamatuje.
Označování buněk
Tabulky umožňují označovat více buněk najednou.
Řádkový x buňkový
režim
V tabulce se lze pohybovat po jednotlivých buňkách. Jedná se
o tzv. „buňkový režim“. V tomto režimu lze označovat jednotlivé
buňky. Pomocí kláves Home a End se lze přesunovat mezi
první a poslední buňkou na řádku.
Do řádkového režimu se lze přepnout tak, že se klikne na
šedou buňku vlevo na začátku řádku. V řádkovém režimu lze
označovat celé řádky. Pomocí kláves Home a End se lze
přesunovat mezi prvním a posledním řádkem tabulky.
Zahájení editace
V buňkovém režimu lze editaci zahájit tak, že se rovnou začne
psát hodnota. Další možností je stisk klávesy F2.
Nezávisle na režimu tabulky lze také použít doubleclick myší.
Hromadné změny
Lze provést změnu hodnot více buněk v jednom sloupci
najednou. Nejprve se označí buňky, které se budou měnit. Pak
se zahájí editace jedné z označených buněk pomocí klávesy F2
nebo pomocí kontextového menu „Edit“. Po ukončení editace
se změna projeví ve všech označených buňkách v daném
sloupci.
Schránka
(clipboard)
U tabulek, kde to má smysl, lze hodnoty přenášet pomocí
schránky (Copy, Cut, Paste). Vždy se přenáší celé řádky.
Vyhledávání
Tabulky umí postupně zaměřovat položku. Je třeba tabulku
nejprve přepnout do řádkového režimu. Pak lze postupným
vyťukáváním jména zaměřovat položku.
Find in Table
Pohodlnější způsob zaměřování položky umožňuje příkaz „Find
in Table“. Na spodu okna se objeví pole pro zadávání
hledaného jména. Při psaní jména se tabulka průběžně
zaměřuje na hledanou položku.
Je-li zadán pouze začátek jména, lze pomocí tlačítek „Next“ a
„Previous“ přecházet po položkách se stejným začátkem.
7/34
troldatgen_ms_cz_104
TROLDATGEN
Filter
Při hledání proměnné lze s úspěchem používat funkci filter. Při
zápisu textového řetězce do řádky Filter jsou v pracovním okně
zobrazovány všechny proměnné, které obsahují daný textový
řetězec. Hledáme-li tedy proměnnou, která obsahuje řetězec
sila pak po zapsání tohoto řetězce se v pracovním okně ukáží
všechny proměnné, které obsahují kdekoliv ve svém názvu
právě tento řetězec.
Obě dvě vstupní pole se otevírají na spodní liště po stisku
kláves Ctrl+F. Hledání je case-insensitive. Z lišty Find se
klávesovou zkratkou Ctrl+F dostaneme zpět do definice
databáze.
Obr. 2 - Find in Table
Troldatgen_ms_cz_104
8/34
TROLDATGEN
3. Settings
Pracovní okno položky projektu Settings.
V okně lze měnit prefixy maker pro přístup k databázovým
proměnným a k hodnotám CAN - bitových polí (bitfield).
Standardní
nastavení
♦
♦
♦
♦
DbItem Get: „db_Get_“
DbItem Put: „db_Put_“
PDO Get: „can_Get_“
PDO Put: „can_Put_“
Např. pro databázovou proměnnou „X“ se vygenerují přístupová
makra:
♦ db_Get_X()
♦ db_Put_X(val)
Pro Tx bitfield „Y“ se vygeneruje přístupové makro:
♦ can_Get_Y ()
Pro Rx bitfield „Z“ se vygeneruje přístupové makro:
♦ can_Put_Z ()
9/34
troldatgen_ms_cz_104
TROLDATGEN
4. Procesní databáze
Pracovní okno položky projektu Db – procesní databáze.
V editační tabulce se definují procesní proměnné.
Obr. 3 - okno databáze
Sloupce tabulky
Name – jméno proměnné, max. 31 znaků.
Group – skupina, volně nastavitelný řetězec. Má význam pouze
v designtime k příp. odlišení různých skupin proměnných.
Type – datový typ. *)
Class – třída procesní proměnné (Normal, Retain, Param). *)
Init value – inicializační hodnota. *)
Min a Max – dolní a horní mez. Mají význam pouze pro
proměnné třídy „Param“. Stanovují omezení hodnot, jakých
může proměnná nabývat. Zápisy hodnot mimo rozsah se
ignorují.
Comment – komentář. Má význam pouze v designtime.
*) viz „Trol_ms_cz_xxx“, kap. „Procesní databáze“.
4.1. Funkce Compact
Funkci lze vyvolat z menu Tools/Compact DB (x BF) a funkce
nalezne všechny proměnné, které mají stejný název jako
bitfieldy v CANu. Funkce umožní tyto proměnné vymazat,
případně ve vytvořeném textovém souboru prohlédnout tento
seznam proměnných.
Troldatgen_ms_cz_104
10/34
TROLDATGEN
5. CAN
Podrobnější informace o CAN komunikaci jsou v dokumentu
„Trol_ms_cz_xxx“, kap. „Komunikace po CANu“.
Komunikace CAN probíhá po samostatných sběrnicích. Tyto
sběrnice mohou být ve stávající verzi v závislosti na typu
hardware buď 4 nebo 8.
Na každém CAN-busu může komunikovat různý počet zařízení.
Jedno zařízení se nazývá „CAN-slave“. V okně projektu lze
přidávat/rušit jednotlivé CAN-slave.
CAN-bus
CAN-slave
Obr. 4 - CAN topologie
5.1. CAN-bus
Pracovní okno položky projektu CAN-bus.
11/34
troldatgen_ms_cz_104
TROLDATGEN
Obr. 5 - CAN-bus
Editovaná data
Speed
Heartbeat
Period
Lifetime
SDO timeout
Generate sync
Komunikační rychlost [kbit]
Zapnutí vysílání rámců a zpracovávání přijatých rámců
heartbeatu.
Perioda vysílání heartbeatu.
Počet nepřijatých heartbeat rámců, po kterých je nahlášena
chyba slave. Celkový čas je tedy Lifetime* Period.
Timeout SDO komunikace.¨
Zapnutí periodického zasílání synchronního rámce.
Sync period
Perioda zasílání synchronního rámce.
Time stamp
Zapnutí periodického zasílání časových značek (TimeStamp).
Troldatgen_ms_cz_104
12/34
TROLDATGEN
Time stamp value
NMT inhibit
Comment
Perioda zasílání časových značek.
Velikost prodlevy mezi dvěma NMT rámci. Použít pouze pro
„velmi pomalé“ slave. Ve většině případech se doporučuje
nechat hodnotu na 0.
Komentář. Má význam pouze v designtime.
5.2. CAN-slave stanice
Položky CAN-slave lze vkládat do projektu pomocí
kontextového menu vyvolaného nad položkou CAN-bus.
EDS soubory
Vložení slave dle
EDS souboru
Je možno vložit buď prázdnou CAN-slave položku (příkaz „Add
slave“) nebo vložit předvyplněnou položku dle EDS souboru
(příkaz „Add slave from EDS“).
EDS soubory popisují konkrétní HW zařízení připojitelné do sítě
CAN. Dodává je výrobce zařízení, většinou je možné je
stáhnout z webu.
Před vlastním vložením je potřeba shromáždit odpovídající EDS
soubory do jednoho adresáře na disku. Jméno tohoto adresáře
je třeba zadat do dialogu Edit | Options | EDS directory.
Slave se vkládá příkazem „Add slave from EDS“. Objeví se
seznam zařízení popisovaných EDS soubory. Po výběru
vhodného
zařízení
se
do
projektu
vloží
slave
s přednastavenými parametry. Přednastavují se parametry
týkající se PDO a jejich bitových polí (viz dále).
Obr. 6 - Vložení slave dle EDS souboru
13/34
troldatgen_ms_cz_104
TROLDATGEN
Svázání slave
s EDS
Slave vložený pomocí EDS souboru je s tímto EDS souborem
svázán. Projeví se to tak, že v pracovním okně slave je
vyplněná položka EDS. Vazba se projevuje tím, že některé
parametry PDO mohou být zakázané – nelze je změnit.
Vazbu lze zrušit tlačítkem „Unbind“. Vazbu lze poté zase
obnovit tlačítkem „Bind“.
Obr. 7 - Pracovní okno CAN-slave
Editovaná data
EDS
Name
NodeId
Jméno EDS souboru
Jméno slave, maximálně 31 znaků. Editor hlídá jedinečnost
jména v rámci všech CAN-slave a PDO objektů a také v rámci
objektů bitových polí a bezpečných stavů.
Číslo uzlu, zadává se hexadecimálně v rozsahu 0x01 až 0x7F
(1 až 127 dekadicky).
Troldatgen_ms_cz_104
14/34
TROLDATGEN
Type
výběr typu komunikace:
♦ CANopen – standardní CANopen
♦ CAN – CAN slave. Komunikace se provádí pouze pomoci
základních funkcí na vyslání a přijetí rámce.
♦ Virtual CANopen – Virtuální CAN, slouží k rozšíření
CANopen slave o další PDO (větší počet než 4RPDO a
4TPDO)
♦ Minimal CANopen – Do slave stanice se zasílá pouze NMT
zprávy a Heartbeat. SDO konfigurace se neprovádí.
BootTime
Odložení startu slave po zapnutí master stanice. Hodnota 9999
má význam
Config SDO
Odkaz na pole SDO, které se mají automaticky zaslat do slave
po ukončení konfigurace a ještě před přepnutím do Operational
stavu. Do generovaného souboru G_CAN.C se propaguje
pouze jméno zapsané do tohoto pole. Předpokládá se, že je to
jméno instance typu TSDOCNTR_ROM (viz.TROL.H) a
programátor si vytvoří ručně tyto instance pomocí makra
SDO_CNTR_INST_CREATE. Napíšeme-li tedy do pole Config
SDO název ParametrA, pak se předpokládá, že v programu
bude existovat ručně vytvořená instance
SDO_CNTR_INST_CREATE(ParametrA,
CAN_SLAVE_PTR_SLAVE_(SLAVE_ID),
_INDEX_,_SUBINDEX_,_LEN_)
kde další parametry (index,subindex a len) jsou závislé na
zasílaném SDO.
HB Consumer
Comment
Zapnutí konfigurace Heartbeat consumer služby na slave.
Komentář. Má význam pouze v designtime.
Parent
Po volbě Virtual CANopen je tento combo box aktivován a lze
v něm vybrat slave stanici, která odpovídá fyzické stanici na
kterou jsou navázány vituální CAN slave stanice pro rozšíření
počtu PDO.
Safe sequence
(DO1017 first)
Pokud je tato položka nezaškrtnuta nejprve se konfigurují PDO
a až poté heartbeat. Tato sekvence má ale jednu nevýhodu.
Pokud jsou splněné následující podmínky:
a.)
Slave se po nakonfigurování PDO a ještě před
konfigurací heartbeat time zresetuje.
b.)
Rámec BOOT-UP, který slave vyšle po resetu, se
vlivem zarušení CAN sítě ztratí
Pak se master nemůže dozvědět, že se slave v průběhu
inicializace zresetoval a dokončí konfiguraci. Protože se ale
heartbeat time nakonfiguroval správně, master nemá šanci
zjistit, že PDO nejsou zkonfigurovaná.
Slave se potom chová tak, že je jako by funkční (je ve stavu
OPERATIONAL), heartbeat funguje správně, ale k výměně
dat mezí slave a masterem nedochází.
15/34
troldatgen_ms_cz_104
TROLDATGEN
K zamezení tohoto nežádoucího chování lze zaškrtnout tuto
položku, která způsobí, že heartbeat se konfiguruje před PDO
konfigurací.
Doporučujeme mít tuto položku defaultně zaškrtnutou pro
všechny slave stanice. Původní volba odpovídala sekvenci,
která je používána master stanicí fy Selectron a byla
vyžadována i jejími slave stanicemi.
Force to
disconnect state
Pokud je volba aktivní, pak slave stanice zůstává ve stavu
odpojeno (disconnected) a s touto stanicí není uskutečňována
žádná komunikace ani není tato stanice inicializována. Přechod
do stavu operational lze vyvolat pouze programově voláním
funkce CanOpen_SetState().
Disable RESET
frame
Pokud je tato volba zaškrnuta, při přechodu ze stavu
disconnected není v úvodu komunikace zasílán rámec RESET
pokud do doby LifeTime x Period přijde rámec Heartbeat.
Leave disconnect
state with delayed
check
Pokud je tato volba zašrtnuta, při programovém přechodu ze
stavu disconnected po dobu LifeTime x Period se čeká na
příchod rámce hearbeat a teprve po této době, pokud rámec
heartbeat nepřijde, je slave stanice inicializována.
Funkce Force to disconnect state a Leave disconnect state with
delayed check jsou určené pro speciální případ konfigurace can
sítě ve spojitosti s knihovnou TROX a v běžných aplikacích
není doporučeno jejich použití.
5.3. RPDO
RPDO jsou PDO, která daná slave stanice přijímá, z hlediska
aplikace jsou to tedy vysílaná data. Každé jednotlivé RDPO je
na zvláštní záložce. Slave stanice může definovat maximálně 4
RPDO. Pokud má stanice více RDPO (nestandardní stav), pak
je třeba využít koncept Virtual CANopen.
RPDO0-3
Troldatgen_ms_cz_104
16/34
TROLDATGEN
Obr. 8 - RPDO
Enabled – povolení/zákaz daného PDO.
Name - jméno, maximálně 31 znaků. Editor hlídá jedinečnost
jména v rámci všech PDO a CAN-slave objektů a také v rámci
objektů bitových polí a bezpečných stavů.
Group – skupina. Každé PDO je zařazeno do skupiny. Skupiny
se od sebe liší periodou komunikace. Definice a editace skupin
bude popsána dále.
Len – velikost dat v bajtech. Maximum je 8 bajtů.
Config – Zapnutí konfigurace PDO ve slave. V případě, že
slave má RPDO napevno nakonfigurován z výroby a tedy
příslušná DO jsou readonly, je dobré konfiguraci vypnout.
Transmition – Typ přenosu PDO dle normy DS301.
Transmition control – check box, který zapíná dvě další pole
Interleaving [passing]
Inhibit [passing] – tato dvě pole změní periodu vysílání RPDO
pokud je z nějakého důvodu požadavek na jinou periodu
vysílání než je určena příslušností ke skupině. Parametr
Interleaving určuje kolikrát je perioda vynechána. Hodnota 5
ve spojení se skupinou s periodou 50 ms znamená, že se dané
RPDO bude vysílat každých 300 ms (v jedné periodě bude
RPDO vysláno a dalších pět period je vynecháno). Parametr
Inhibit určuje, kdy nejdříve se bude vysílat další RPDO, pokud
bylo RPDO vysláno asynchronně za pomoci použití makra
RPDO_EVENT. Hodnota 3 znamená, že v našem případě
nedojde nikdy k vyslání RPDO dříve než po 200 ms po vyslání
předchozího RPDO.
17/34
troldatgen_ms_cz_104
TROLDATGEN
Je doporučeno, této vlastnosti nepoužívat a držet se praxe
vysílání RPDO v přesně stanovených intervalech. Vzhledem k
tomu, že PDO komunikace je z principu nepotvrzovaná, není při
jakémkoliv vyslání PDO jisté, že data dorazí na místo určení.
Nicméně při synchronním vysílání s pevnou periodou je jisté, že
dojde k transportu dat ve drtivé většině (při doporučovaném
vytížení sítě max.30 %) případů.
Comment – komentář. Má význam pouze v designtime.
Bitová pole (bitfields, BF) – tabulka pro definici bitových polí.
K datům PDO lze přistupovat buď přímo např. čtením osmi,
šestnácti, dvaatřiceti bitů najednou, nebo pomocí bitových polí.
Jednotlivé bity dat (příp. skupiny bitů) lze pojmenovat a
přistupovat k nim zvlášť. V tabulce se editují sloupce:
♦ Name – jméno bitového pole
♦ Bit – číslo počátečního bitu pole, číslováno od nuly
♦ Count – počet bitů pole, rozsah 1 až 32
♦ Comment – komentář. Má význam pouze v designtime.
V kontextovém menu je možné funkcí Byte.bit format změnit
pohled na umístění bitové skupiny buď ve formě bytepos.bitpos
nebo jako pozici v 64-bitovém poli (PDO může mít maximální
délku 8 bajtů).
PDO T0 až T3
PDO typu Tx:
Obr. 9 - PDO typu Tx
Enabled – povolení/zákaz daného PDO.
Name - jméno, maximálně 31 znaků. Editor hlídá jedinečnost
jména v rámci všech PDO a CAN-slave objektů a také v rámci
objektů bitových polí a bezpečných stavů.
Troldatgen_ms_cz_104
18/34
TROLDATGEN
Group – skupina. Každé PDO je zařazeno do nějaké skupiny.
Skupiny se od sebe liší periodou komunikace. Definice a
editace skupin bude popsána dále.
Len – velikost dat v B. Maximum je 8 B.
Config - – Zapnutí konfigurace PDO ve slave. V případě, že
slave má PDO napevno nakonfigurován z výroby a tedy
příslušná DO jsou readonly, je dobré konfiguraci vypnout.
Transmition - Typ přenosu PDO dle normy DS301.
Inhibit – Hodnota Inhibit (minimální čas mezi dvěma zaslání
PDO) dle normy DS301.
Timer - Hodnota Timer (periodické zasílání PDO) dle normy
DS301.
Comment – komentář. Má význam pouze v designtime.
Bitová pole (bitfields, BF) – tabulka pro definici bitových polí –
stejná jako u R0 až R3.
5.4. PDO Groups
Pracovní okno PDO skupiny.
Každé PDO je vždy zařazeno do nějaké skupiny. Implicitně jsou
všechna PDO zařazena do skupiny „Default“. Skupiny slouží
k rozdělení PDO dle toho, s jakou periodou se mají
číst/zapisovat.
Editor lze přepínat mezi dvěma režimy:
♦ Table mode – normální tabulka
♦ Tree mode – stromová struktura tabulek
19/34
troldatgen_ms_cz_104
TROLDATGEN
Table mode
Obr. 10 - PDO Groups – Table mode
Name – jméno PDO. Slouží pro orientaci, nelze editovat.
Location – umístění PDO. Řetězec popisující CAN-bus, CANslave a záložku PDO – slouží pro orientaci, nelze editovat.
Group – jméno skupiny. Zadá-li se nové jméno, vznikne tak
nová skupina.
Period – perioda komunikace (čtení/zápisu) PDO [ms].
Comment – komentář. Má význam pouze v designtime.
Troldatgen_ms_cz_104
20/34
TROLDATGEN
Tree mode
Obr. 11 - PDO Group – Tree mode
Editují se stejná data jako v případě tabulkového režimu, pouze
je to uspořádané stromově dle skupin.
21/34
troldatgen_ms_cz_104
TROLDATGEN
6. Safe States
Položky Safe States lze vkládat do projektu pomocí
kontextového menu vyvolaného nad položkou Safe States.
V každé položce v Safe State lze sestavit seznam bitových polí
a jejich hodnot. Hodnoty, které pro bitová pole nastavíme se
„aktivují“ (nahradí v aplikaci data, která přecházejí a odcházejí
po CAN) v případě, že bude proměnná Trigger v hodnotě True.
Obr. 12 - Safe State – výběr bitových polí a hodnot
Name – jméno Safe State (unikátní v rámci projektu).
Trigger – proměnná typu BOOL, která bude sloužit jako
podmínka pro aktivaci Safe State.
BitField – název bitového pole, pro které je definován v Safe
State.
Value – hodnota, která je pro bitové pole nastavena.
In /Out – typ bitového pole (nelze editovat, určeno dle umístění:
In = TPDO / Out = RPDO) – informativní, nelze editovat.
Location – umístění bitového pole. Řetězec popisující CANbus, CAN-slave, záložku PDO, počáteční bit a počet bitů
v bitovém poli – informativní, nelze editovat.
Comment – komentář. Má význam pouze v designtime.
Přidání BitField
K přidání bitových polí do seznamu, slouží dialogové okno
vyvolané klávesovou zkratkou Ctrl+Insert v okně daného Safe
State.
Troldatgen_ms_cz_104
22/34
TROLDATGEN
Obr. 13 - Safe State – přidání bitového pole
Pro zvýšení přehlednosti je k dispozici funkce filtrace
zobrazených bitových polí (Filter) a možnost hledat bitové pole
dle jména (Find).
6.1. Priority Safe States
Pokud je na několik různých triggerů (vzestupná hrana bool
proměnné) navázáno stejné bitové pole, pak je třeba stanovit
prioritu vyhodnocování. Prioritu vyhodnocování jednotlivých
trigerrů lze definovat v okně, které se otevře na uzlu Safe
States. Platí, čím nižší číslo, tím vyšší priorita. Tzn.trigger
s číslem 1 má vyšší prioritu než trigger s číslem 2 a pokud
budou v jeden okamžik oba aktivní a oba nastavují bezpečnou
hodnotu do stejného bitového pole PDO, pak toto bitové pole
bude mít hodnotu určenou trigger č.1.
23/34
troldatgen_ms_cz_104
TROLDATGEN
6.2. Kopie CAN BF do proměnných
Od verze TDG 1.0.49 je v prostředí implementována možnost
generace kódu, který kopíruje hodnoty z canovských bitfieldů
do proměných (v případě TPDO) nebo obráceně (v případě
RPDO). Proměnné musí již v projektu existovat, program
negeneruje proměnné automaticky.
Zadávání vazby na
proměnnou
Prototyp funkcí
Jsou generovány dva soubory G_CANV.C a G_VCAN.C.
V souboru
G_CANV.C
je
definována
funkce
Copy_CANtoVAR(), kde jsou vygenerovány kódy pro
kopírování všech definovaných BF (zadávání viz.dále) do
procesních proměnných. V souboru G_VCAN.C je definována
funkce Copy_VARtoCAN(), ve které jsou kódy pro kopírování
hodnot z procesních proměnných do BF.
Vazba na procesní proměnnou se zadává v tabulce bitfieldů ve
sloupečku s názve Db-Copy. Ve sloupečku lze vybrat z combo
boxu jméno proměnné nebo jej lze nakopírovat přes clipboard.
Prototypy funkcí Copy_CANtoVAR() a Copy_VARtoCAN() jsou
umístěny v souboru TROL.H. Jsou deklarovány jako C-čkové
funkce (extern „C“), protože tyto funkce jsou volány z .cpp
modulů. Pokud není funkce kopírování použita, jsou tyto dvě
funkce prázdné, soubory jsou generovány vždy, ale nemusí být
včleněny do projektu.
Každá řádka z kopírování je komentována. (viz.příklad)
/* --- Brzda_A_TPDO_A (CAN1.Brzda_A.T0) ----------------------------- */
/* 3.0 : 1 */ db_Put_MyInBit0((BOOL)can_Get_Brzda_A_BI_Zabrzdeno1());
/* 3.1 : 1 */ db_Put_MyInBit1((BOOL)can_Get_Brzda_A_BI_Zabrzdeno2());
Přetypování
Při kopírování z can do proměnných se používá explicitní
přetypování
db_Put_Variable((type_of_variable)can_Get_bitfield());
Troldatgen_ms_cz_104
24/34
TROLDATGEN
Při kopírování z procesní proměnné do can bf se žádné
explicitní přetypování nepoužívá (bf je typu uint32)
can_Put_bitfield(db_Get_variable());
Kontroly
BF -> VAR
Při generování kódu jsou prováděny následující kontroly (pokud
se objeví chyba, generace není dokončena):
Kopírování CAN BF do procesních proměnných
(SIZEOFBITS – počet bitů BF nebo proměnné)
IF
SIZEOFBITS(TPDO.BF)==1 THEN
IF SIZEOFBITS(VAR) ==1 THEN COPY
ELSE ERROR
ELSE IF SIZEOFBITS(TPDO.BF) <= SIZEOFBITS(VAR) THEN COPY
ELSE ERROR
VAR -> BF
Kopírování procesních proměných do CAN BF
IF
SIZEOFBITS(VAR)==1 THEN
IF SIZEOFBITS(RPDO.BF) ==1 THEN COPY
ELSE ERROR
ELSE IF SIZEOFBITS(VAR) >= SIZEOFBITS(RPDO.BF) THEN COPY
ELSE ERROR
Upozornění
Při využívání možnosti generování kopií mezi can bf a
proměnnými není vhodné pouštět funkci Tools/Compact DB (x
BF) pokud BF a proměnné mají stejné názvy, může dojíét ke
smazání proměnných.
25/34
troldatgen_ms_cz_104
TROLDATGEN
7. DataLogger
Datalogger slouží k zachycení průběhu vybraných proměnných
na základě náběžné hrany vybrané BOOL proměnné.
Proměnné jsou zachyceny v časovém okolí triggeru.
Datalogger se založí v kontextovém menu na uzlu Datalogger
ve stromě projektu. Pro Datalogger se nastavují následující
parametry
Name – jméno dataloggeru
Trigger – vybraná BOOL proměnná
Period [ticks] – perioda vzorkování, určeno umístěním funkce
diag_datalog_sample() v periodickém procesu
Epsilon [samples] – hloubka bufru pro záchyt hodnot
proměnných. Např.hodnota 100 znamená záchyt 100 vzorků
před výskytem triggeru a 100 vzorků po triggeru.
BuffSize [B] – velikost vyrovnávacího bufru pro záchyt
proměnných
Obr. 14 - Definice datalogeru
Troldatgen_ms_cz_104
26/34
TROLDATGEN
7.1. Stanovení hodnoty BuffSize
Pro správné fungování dataloggeru je nutno respektovat vazbu
mezi jednotlivými parametry. Postup pro správné stanovení
velikosti BuffSize je následující:
1.Počet
proměnných,
jejichž
hodnoty
zaznamenávány, musí být maximálně 99
budou
2.Velikost vzorku (smplen), který lze zaznamenat je
maximálně 134 B. Stanovíme ji jako součet:
prostoru, který zaberou proměnné typu bool dle
vzorce (cntbool+7)/8, kde cntbool je počet
proměnných typu bool
a součtem velikostí ostatní proměnných (velikost
je dána datovým typem viz „Trol_ms_cz_xxx“,
kap. „Procesní databáze – Typy proměnných“.)
3.V dalším kroku stanovíme počet vzorků, které obsáhne
jeden rámec (smpcnt) dle vzorce:
smpcnt = 484 / smplen
4.Z vypočtené hodnoty smpcut pro další výpočet použijeme
pouze celočíselnou část (celé vzorky, které se do rámce
vejdou).
5.Minimální bezpečnou hodnotu BufferSize pak stanovíme
podle následujícího vzorce:
minBuffSize = ((((2*Epsilon)+1) / smpcnt)+1)*504
6.Doporučujeme však volit hodnotu BuffSize, která odpovídá
alespoň dvojnásobku hodnoty minBuffSize.
27/34
troldatgen_ms_cz_104
TROLDATGEN
8. Klávesové zkratky
Zkratka
Význam
Ctrl-+ (šedé plus)
Vložení nové položky do tabulky
Ctrl-F
Přepnutí do okna Find/Filter
F3
Vyhledej příští výskyt
Shift-F3
Vyhledej předchozí výskyt
F6
Generace zdrojových textů
F2
Editace buňky v tabulce
Funkce Cut/Paste/Copy fungují víceřádkově. Výběr více řádků
pomocí Shift/Ctrl tak jak je to obvyklé u programů ve Windows.
Troldatgen_ms_cz_104
28/34
TROLDATGEN
9. Hromadné importy
Program TrolCsvImport slouží pro hromadné importy alarmů,
definic dataloggeru, hodnot parametrických proměnných a safe
stavů canovských bitfieldů.
Formát csv souborů (jednoduchý formát pro výměnu
tabulkových dat, položky odděleny středníkem) je pro každý
vstupní soubor definován v následujícím textu. Obsah a formát
těchto souborů je nutné zajistit jinými prostředky, i když
většinou odpovídá souborům Excel, které jsou pro tyto účely
používány.
9.1. TROL ALARMS
Struktura:
Sloupec Označení
A
AlarmIdx
B
AlarmVar
C
D
AlarmId
AlarmDsc
Význam
Index alarmu.
Proměnná, jejíž náběžná hodnota
signalizuje vznik alarmu.
Id alarmu jako longové hexa číslo.
Textový význam alarmu. Tento text je
zobrazován při čtení alarmů v TrolView.
Příklad:
2;BS_00000100;0x00000100;PORUCHA
NESCHOPNA DALŠÍ JÍZDY
–
TRAMVAJ
9.2. TROL DT
Struktura:
Sloupec Označení
A
DTId
B
C
GDTId
DTVar
D
DTTrig
29/34
Význam
Identifikátor datalogeru. V případě řádku
označujícího trigger (viz.sloupeček D) je
hodnota prázdná.
Identifikátor grupy dataloggeru.
Logovaná
proměnná.
V případě
vyplněného trigeru (viz.sloupeček D)
není hodnota vyplněna.
BOOL proměnná, která se používá jako
trigger. DTTrig je vždy pro definována
pro GDTId. V případě, kdy se vyplňuje
sloupeček C, je sloupeček D prázdný.
Naopak, když se vyplňuje sloupeček D,
je prázdný sloupec C.
troldatgen_ms_cz_104
TROLDATGEN
Příklad:
0;0;TJ_B2_AI_Sila_Aktual;
0;0;TJ_B1_AI_Sila_Aktual;
0;0;TJ_A2_AI_Sila_Aktual;
0;0;TJ_A1_AI_Sila_Aktual;
;0;;BS_36201100
;0;;BS_36101100
;0;;BS_34014800
;0;;BS_34014700
První 4 řádky udávají číslo dataloggeru, jeho příslušnost ke
skupině datalogerů a samotnou logovanou proměnnou. Další
čtyři řádky udávají trigger proměnné pro skupinu datalogeru
číslo 0 (proměnné BS_…).
9.3. TROL_PARAM
Struktura:
Sloupec Označení
A
Name
B
GDTId
C
D
E
F
MinValue
MaxValue
Význam
Jméno parametrické proměnné.
Inicializační
hodnota
parametrické
proměnné.
Ignorováno.
Ignorováno
Minimální hodnota.
Maximální hodnota.
Příklad:
DP_KameraDisplej;0;kamera
kamery
pro
displej
;DP;KameraDisplej;;;;;
č.0;---;0;10;Přiřazení čísla
po
startu;
-;x;x;
-
Tučně jsou vyznačeny sloupce A,B,E,F, které jsou brány
v úvahu při importu.
9.4. TROL_CAN_SAFE
Struktura:
Sloupec Označení
A
B
C
D
BfName
Troldatgen_ms_cz_104
Význam
Ignorováno
Ignorováno
Ignorováno.
Jméno bitfieldu (bf).
30/34
TROLDATGEN
E
F
G
H
I
J
K
L
M
O
P
Val1
Trig1
Val2
Trig2
Val3
Trig3
Val4
Trig4
Val5
Trig5
Ignorováno
Hodnota BfName pro Trig1
Trigger proměnná
Hodnota BfName pro Trig2
Trigger proměnná
Hodnota BfName pro Trig3
Trigger proměnná
Hodnota BfName pro Trig4
Trigger proměnná
Hodnota BfName pro Trig5
Trigger proměnná
Příklad:
Brzda;A1;AI;Brzda_A1_AI_Brzda_Aktual;++AA120;x;SM_U1_xBI_Uklid;0;BS_BrzdaA1_Nefunkcni;0;BS_Brzda
A1_CAN_Err;0;xBrzdaA1_Err;;nevyužito;;;;;;;;;;
9.5. Vstupní parametry
Parametry pro program TrolCsvImport jsou zadávány ve formě
souboru typu ini. Je definováno 5 sekcí [General],
[TROL_ALARMS], [TROL_DT], [TROL_PARAM_VARS] a
[TROL_CAN_SAFE].
[General]
V sekci general jsou tyto parametry
♦ GenDirectory – plná cesta k adresáři, kam se generují
soubory G_DIAG.C, G_DIAG.H, Flush_DLC.cpp a
Flush_DLL.cpp.
♦ ReportDirectory – plná cesta k adresáři, kam se zapisují
veškeré reportovací soubory
♦ TdgFile – plná cesta souboru .tdg, kam se má dělat import
Sekce General je využívána ve všech importech. Nemusí být
zadána TdgFile (pak není realizován import). Pokud není zadán
ReportDirectory, program nepokračuje dále. GenDirectory je
třeba zadat při importu AL/DT (alarm/datalogger)
9.6. Import alarmů a dataloggerů
Import alarmů a dt(dataloggerů) je vzájemně spojen tím, že
trigger pro dt je tvořen množinou alarmových proměnných u
nichž se zjišťuje náběžná hrana. Tato situace se pro lepší
efektivitu výsledného kódu zjišťuje v rámci obsluhy alarmového
systému.
Sekce [TROL_ALARMS] obsahuje klíče
31/34
troldatgen_ms_cz_104
TROLDATGEN
♦ AlarmsFile – plná cesta k souboru csv ve formátu
alarmových hlášení (9.1)
♦ TableSize – velikost statické struktury, maximální počet
alarmových hlášení. Implicitně nastaven na 640.
♦ Format0x – hodnota true/false určuje, zda hodnota AlarmId
je v hexadecimální reprezentaci s předponou 0x
♦ GenerateAlarms – true/false, určuje generaci souboru
G_ALARMS.C a G_ALARMS.H
Sekce [TROL_DT] obsahuje klíče
♦ DataloggerFile – plná cesta k csv souboru s formátem dle
9.2.
♦ Import – true/false, určuje, zda se bude provádět import dt
do souboru .tdg.
♦ DLC_Prefix – prefix pro jména DLC proměnných
(viz.dále).Implicitně DLC_.
♦ DLL_Prefix – prefix pro jména DLL proměnných
(viz.dále).Implicitně DLL_.
♦ DLC_Add_Group – identifikátor group (viz.zadávání
proměnných
v TrolDatGen)
pro
snazší
třídění
proměnných.Implicitně DLC.
♦ DLL_Add_Group – identifikátor group (viz.zadávání
proměnných
v TrolDatGen)
pro
snazší
třídění
proměnných.Implicitně DLL.
♦ DLC_Add_Comment – komentář pro proměnnou DLC.
Implicitně je „Added DLC variable (CAN->var)“.
♦ DLL_Add_Comment – komentář pro proměnnou DLL.
Implicitně je „Added DLL variable (local->var)“.
♦ DLC_Trigger_Comment – komentář k proměnné trigger,
která je zakládána ke každé skupině DT.
♦ CreateDLLVar – tru/false, povoluje vytváření DLL
proměných, v případě false končí generace chybou, pokud
nemůže vytvořit proměnnou ze skupiny DLL
V mnoha případech nejsou proměnné, které se mají logovat
v dt, v procesní databázi. Jsou v zásadě tři možnosti
♦ Požadavkem je logovat canovský bitfield. V tomto případě
se vytvoří tzv.DLC proměnná, do které se bude kopírovat
příslušný bitfield. Tato DLC proměnná se pak bude logovat
do dt. Kopírování bf do DLC proměnné se provádí metodě
FlushCanValues() umístěné v generovaném souboru
Flush_DLC.cpp. Volání této metody by mělo být mezi volání
CanOpen_GroupProlog() a CanOpen_SafeProlog().
♦ Požadavkem je logovat lokální proměnnou v instanci
nějakého modulu. V tomto případě je třeba příslušnou
lokální proměnnou překopírovat uvnitř bloku do globální
procení proměnné, která bude vytvořena standarně
s prefixem DLL_. Překopírování musí provést aplikace
sama.
Troldatgen_ms_cz_104
32/34
TROLDATGEN
♦ Proměnná opravdu neexistuje a vstup do dt je chybný
(logovat není co).
Porovnání jmen logovaných proměnných z csv (dále
csv_name) se stávajícími bf (dále tdg_name) probíhá takto:
1) je vytvořen string A z kartézského součinu prefixů P a typů
T(viz.dále)
2) pokud tdg_name obsahuje string A, pak příslušný substring
A v tdg_name je nahrazen stringem T a pokud výsledný string
je roven csv_name, je konstatována rovnost obou názvů
Příklad: v csv je proměnná Neco_BI_Jinak, v tdg je proměnná
Neco_usiBI_Jinak. Podle výše zmíněného postupu budou
názvy obou proměnných vyhodnoceny jako stejné.
je
tato
Množina
prefixů
"t","x","b","w","dw","usi","udi","si","ui","di"
,"i","ull".
Množina typů T je tato "BI_", "BO_", "AI_", "AO_", "DI_",
"DO_", "AS_", "DS_","AT_".
V souvislosti se skupinou datalogerů je vytvářena hlavní trigger
proměnná, která bude odpalovat samotné spouštění
datalogeru. Jméno triggeru je xTrigger0n, kde n je identifikace
skupiny. Hodnota triggeru je závislá na detekci nábežné hrany
u všech trigger proměnných. Použití objasňuje následující
fragment kódu
void cS_AS_Logging::Prolog()
{
ulGroupMask = 0l;
db_Put_xTrigger01(FALSE);
...
db_Put_xTrigger0n(FALSE);
}
void cS_AS_Logging::Process(uint16 usAlarmID, uchar ucEvent)
{
if
(ucEvent==ALARM_EVENT_ON)
((uint32)g_alarm_table[usAlarmID].reason);
ulGroupMask
|=
}
void cS_AS_Logging::Epilog()
{
if (ucGroupMask & 0x01) db_Put_xTrigger01(TRUE);
...
33/34
troldatgen_ms_cz_104
TROLDATGEN
if (ucGroupMask & 0x80) db_Put_xTrigger08(TRUE);
...
}
9.7. Import parametrických proměnných
Sekce [TROL_PARAM_VARS] obsahuje klíče
♦ ParamVarsFile – plná cesta k souboru csv ve formátu
alarmových hlášení (9.3)
♦ Import – true/false, povoluje import do .tdg.
♦ SkipLines – přeskočí počet řádek v csv (většinou výpis
hlaviček). Implicitní hodnota je 1.
Import předpokládá, že parametrické proměnné jsou již do .tdg
zavedeny, pouze mění hodnoty init, min a max. Porovnání jmen
se provádí tak, že k danému jménu proměnné z csv souboru se
připojují prefixy Pp (viz.dále) a pokud takto vzniklá proměnná je
nalezena v .tdg a je třídy „param“, pak jsou hodnoty v této
proměnné změněny.
Prefixy Pp jsou následující "t", "b", "i", "w", "ui",
"si", "ull", "udi", "usi", "ui64".
9.8. Import bezpečných can stavů
Sekce [TROL_CAN_SAFE] obsahuje klíče
♦ CanSafeFile – plná cesta k souboru csv ve formátu
alarmových hlášení (9.4)
♦ Import – true/false, povoluje import do .tdg.
♦ SkipLines – přeskočí počet řádek v csv (většinou výpis
hlaviček). Implicitní hodnota je 8.
9.9. Postupy při importu
Při importu DT je doporučeno smazat všechny dataloggery z
.tdg. Smazání se musí provést ručně.
Při importu hodnot parametrických proměnných je nutné, aby
parametrické proměnné již existovaly.
Při importu can safe hodnot je doporučeno všechny can safe
hodnoty z .tdg vymazat. Smazání se musí provést ručně.
Troldatgen_ms_cz_104
34/34

Podobné dokumenty

Ovladač DbDrv systému REX - uživatelská příručka

Ovladač DbDrv systému REX - uživatelská příručka Platí, že parametry, jejichž název začíná znakem # jsou ignorovány a lze je tedy využít jako komentář. Dlouhé SQL dotazy lze psát na jednu řádku nebo je rozdělit jak je ukázáno výše, při odřádkován...

Více

Kapitola 4: správa systému

Kapitola 4: správa systému jednom zařízení. Je možné vytvořit RAID 0 pro data, která nejsou nezbytná a RAID 1, 5 a 6 (v závislosti na daném modelu) pro klíčová data. Vytvořte si úrovně diskových polí RAID v závislosti na vaš...

Více

trolstudio

trolstudio AMiT, spol. s r. o. nepřejímá žádné záruky, pokud se týče obsahu této publikace a vyhrazuje si právo měnit obsah dokumentace bez závazku tyto změny oznámit jakékoli osobě či organizaci. Tento dokum...

Více

AMiT spol. s r.o. PRAHA PROTOKOL O ZKOUŠCE Programové

AMiT spol. s r.o. PRAHA PROTOKOL O ZKOUŠCE Programové g) Spustit program pro přepis paměti, vyčkat než nastane jedna z možných variant:  Varianta A – Přepis paměti doběhl až dokonce.  V tomto případě je přepsán také příznak, že jednotka již jednou p...

Více

Ceník - Oblibene.cz

Ceník - Oblibene.cz LOBA – LAKY, TMELY, OLEJE THOMSIT - LAKY, TMELY, OLEJE, CHEMOPREN BONA – TMELY, LAKY, OLEJE BONA – BRUSIVO DR. SCHUTZ – PÉČE O PODLAHY DOPLŃKY – OBVODOVÉ A PŘECHODOVÉ PROFILY, PODLOŽKY, TMELY NÁŘAD...

Více