TrolDatGen
Transkript
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
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...
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š...
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...
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...
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...