O společnostiProduktyObchodPodpora
Moravské přístroje
Hlavní stránka
O společnosti
Stažení software
Stažení dokumentů
Produkty
Control Web
Strojové vidění VisionLab
Kamery DataCam a osvětlovače DataLight
Průmyslový počítačový systém DataLab
Vědecké kamery
Speciální technika
Ceník
Aktivace produktů
Služby
Školení
Zakázková řešení
Podpora
Volba kamery a objektivu pro Strojové vidění
Control Web - Ukázkové aplikace

Hlavní stránkaProduktyProgramový systém Control WebPředchozí verze systému Control Web

Control Web 5 Service Pack 2
Service Pack 2 pro Control Web nejen opravuje problémy nalezené v systému Control Web, ale přidává řadu významných rozšíření a vylepšení. Service Pack 2 lze stáhnout ze sekce Stažení software nebo můžete objednat CD-ROM se Service Pack 2 za režijní cenu.

Opravy chyb

  • Výstupní kanály nerespektovaly nastavení send_same_data (jak ze settings, tak z přístroje tak z atributu); kanály se stále chovaly jako při send_same_data = on.

  • Procedura SaveSettings přístroje data_viewer neukládala barvu pozadí přístroje.

  • U přístroje data_viewer se rastr grafu vykresloval pouze pokud bylo zapnutu vykreslování vedlejších čar rastru.

  • V přístroji alarm_viewer se při přepnutí skupiny nevymazal obsah tabulky.

  • V přístroji gl_data_viewer se v módu časového kurzoru špatně počítaly interpolované hodnoty.

  • Program InCalc padal, pokud byl ukončen v průběhu tisku.

  • Při tisku vyrolovaného obrázku v obrázkovém DataView, se špatně spočítala pozice obrázku pro tisk. Obrázek nebyl při tisku vyrolovaný.

  • Při nastavování metody tisku 3D scén v grafických datových inspektorech se vybrala vždy sousední položka (v textu vše fungovalo správně).

  • Přístroje data_viewer a gl_data_viewer nepracovaly v datově řízené aplikaci bez definice parametru timer.

  • Inspektor přístroje a datový inspektor v určitých situacích zmnožovaly či ztrácely obsah procedur nebo celé procedury, byla-li v kódu procedury nějaká chyba.

  • použití datové sekce archive_and_alarm způsobilo pád systému, pokud nebyly v sekci definovány atributy pro obě její činnosti.

  • Inspektor přístroje při editaci lokáních dat zobrazoval některé elementy vícekrát.

  • Inspektor přístroje při odstraňování lokálních dat odstraňoval elementy jiné, než které byly označené.

  • Datový inspektor při vložení datové sekce s již existujicím jménem z hlavní nabídky způsobil pád systému.

  • Inspektor přístroje v přístroji draw neakceptoval žádné úpravy sekce přístroje expression.

  • 3D přístroje nebránily po vložení do 3D scény vytvoření okna přístroje.

  • Inspektor ovladače (pro nastavení parametrů) někdy smazal obsah parametrického souboru.

  • Pokud při překladu došlo k chybě v časovači a následně se v aplikaci použil neviditelný přístroj zařazený do tohoto časovače, došlo na konci překladu k pádu systému. K pádu systému rovněž došlo, pokud se přístroj zařadil do neexistující větve selectoru.

  • Pro synchronizované sekce nebyly povoleny procedury sekcí Backup, Archive a SetAction.

  • Po změně rozsahu pole nebyla systémová záloha načtena a zálohovaná data byla ztracena.

  • Přístup do vzálených datových sekcí či modulů mohl při pokusu spojit se s neexistující IP adresou neomezenou dobu čekat.

  • Volání procedury SelectNext přístroje listbox způsobila pád systému.

  • Chybně zadaná sekce aplikace application způsobila pád systému.

  • Přístroje multiplexer a demultiplexer neznaly společné nativní procedury a nedodržovaly velikost, byla-li tato velikost menší než 80 × 40 bodů.

  • Control Web Service v síti spolu s jinými Control Web Service postupně zvětšoval svou spotřebu paměti.

  • Přístroj pojmenovaný stejně jako datová sekce způsobil pád systému.

  • Při dovozu modulů a následném použití jména modulu v aplikaci mohly být moduly nedostupné, pokud defnice či použití modulu nebylo zapsáno pouze malými písmeny.

  • Vzdálené sekce s required = not_required se někdy nedokázaly rozběhnout nez přítomnosti serveru.

  • Přístroj active_x některým komponentám nedokázal zavolat metodu s proměnným počtem parametrů nebo metodu s návratovou hodnotou v parametru.

  • Sekce s dováženými konstantami se po prvním rozpojení již nikdy s žádným serverem nespojily.

  • Připojování klientů na server s přihlašováním uživatelů selhávalo (končilo runtime chybou) při znovunavazování spojení při zákazu interaktivního přihlašování.

  • Síťový server povoloval přístup do sdílené sekce nebo modulu při zapnutém přihlašování uživatelů i přes to, že to bylo pomocí atributu client_access zakázáno.

  • Procedury DayOfWeek s návratovou hodnotou (tedy funkce) pro některé dny nepracují správně.

  • Událostní procedura On*Change nebyla vždy volána v klientech síťových aplikací.

  • Z klienta síťové aplikace nebyla vždy upravená hodnota zapsána do serveru.

Úpravy chování

Mimo označené body SP 2 nezpůsobuje žádnou změnu chování aplikačních programů.

  • V událostní proceduře OnModeChanged přístroje data_viewer přibyly parametry TableMode a HistoryMode. Procedura je nyní volána nejen po změně módu zobrazení přístroje (přepnutí mezi tabulkou a grafem), ale také po zapnutí, resp. vypnutí módu prohlížení historických dat. Parametr TableMode má hodnotu true, pokud přístroj pracuje v módu zobrazení table. Parametr HistoryMode má hodnotu true, pokud přístroj pracuje v módu prohlížení historických dat.

    Tato úprava může změnit chování aplikací.

  • do přístrojů multi_switch a string_switch přibyla procedura GetSelIndex().

  • přístroj multi_label nyní může nastavovat barvu každé položky.

  • Událostní procedura datových sekci On*Change se nyní volá i při změně kvality přijatých dat (qos).

  • Systémová záloha se nyní při porušení integrity elementů (při přidání nebo odstranění prvku ze sekce či při změně velikosti pole sekce) sama opraví a nezamezí systému zálohu použít.

  • Přístroj active_x nyní nabízí veškeré COM metody s návratovou hodnotou zapsanou v definici jako poslední parametr v podobě OCL procedur (funkcí) s návratovou hodnotou.

    Tato úprava může změnit chování aplikací.

Rozšíření

  • Systém byl doplněn o editor záložních souborů, aplikace Backup Editor.

  • Do virtuálních přístrojů multi_label a switch_label byly do položek seznamu stavů (item .. end_item) opětovně doplněny (stejně jako tomu bylo v CW2000) parametry paper, ink, blink_paper a blink_ink pro zadání barev specifických pro položku. Nejsou-li tyto barvy zadány, použijí se globální barvy ze sekce colors .. end_colors.

  • Do přístroje string_switch přibyla nativní OCL procedura GetSelIndex() : longcard pro získání indexu vybrané položky.

  • Do přístroje multi_switch přibyla nativní OCL procedura GetSelIndex() : longcard pro získání indexu vybrané položky.

  • Do přístroje table přibyly nativní OCL procedury PrintTable( LayerFrom, LayerTo : any ) a PrintTable( LayerFrom, LayerTo : any; Landscape : boolean ) pro tisk tabulky v požadovaném rozsahu vrstev.

Rozšíření 3D vykreslovacího systému

Do 3D vykreslovacího systému bylo doplněno několik drobností, které byly inspirovany tvorbou reálných vizualizačních aplikací:

  • Do 3D přístrojů přibyl parametr disable_launch_repaint, jehož nastavení blokuje aktivaci překreslovacích mechanismů právě tímto virtuálním přístrojem.

    Poznámka:

    Abychom se nemuseli při veškerých změnách parametrů přistrojů, které se projevují na jeho vzhledu, vždy starat o to, aby byla celá scéna vždy po každé takovéto změně překreslena, všechny přistroje implicitně aktivují mechanismy překreslení scény při veškerých relevantních změnách svých vnitřních dat (ať již byly tyto změny vyvolány časováním aplikace nebo voláním OCL procedur). Vykreslovací server spravuje frontu požadavků na překreslení, do které se ukládají požadavky od jednotlivých vykreslovacích kontextů (např. máme-li v aplikaci jen jednu 3D scénu, pak ve frontě může být max. vždy jen jeden nový požadavek - a to tehdy, když nový požadavek na překreslení vznikl ještě dříve, než bylo dokončeno překreslení předchozí). Výsledně je scéna překreslována v závislosti na součtu všech požadavků od všech přístrojů ve scéně. Nejvyšší frekvence překreslování je limitována pouze dobou, za krerou je sama scéna se schopna překreslit - častější požadavky jsou ignorovány. Po každém požadavku je scéna zaručeně překreslena, i když může být do jednoho překreslení akumulováno více požadavků.

    Virtuální přístroje ve scéně jsou obvykle různě časovány a různě jsou jim také volány OCL procedury. Překreslování tak může být zbytečně časté. To by ani tak nevadilo, někdy ale může být na překážku to, že je scéna překreslena ještě dřive, než je dokončena manipulace se všemi navzájem souvisejícími virtuálními přístroji. Po dokončení manipulace je scéna samozřejmě opět překreslena. Většinou se scéna překreslí tak rychle, že zádný rušivý efekt není postřehnutelný. U velmi složitých scén nebo scén s víceprůchodovými efekty a s malým FPS může být překreslení „mezistavu“ postřehnutelné. Zde parametr disable_launch_repaint u souvisejících přístrojů zablokuje překreslení dříve, než je dokončeno veškeré potřebné nastavení všech patřičných přístrojů ve scéně (např. u ukázkové aplikaci 'fireplace.cw' je překreslování „poháněno“ jediným přístrojem gl_fire ).

  • Nová událostní procedura On3DMouseClick( GroupName : string ) je vyvolána při kliku levým tlačítkem myši na dotyčný přístroj. Toto volání musí být v přístroji scény (gl_panel nebo gl_scene) povoleno, implicitně je zakázáno (neboť každé zjisťování, co jsme klikem trefili je relativně náročné na výkon počítače). Ve svém parametru GroupName procedura poskytuje jméno skupiny, na kterou kliknutí mířilo.

  • U přístrojů gl_panel a gl_scene přibyl parametr solve_mouse_clicks, jehož nastavením se aktivujjí mechanismy hledání viruálního přístroje, na který bylo kliknuto levým tlačítkem myši. Vždy po kliku je volána událostní procedura On3DMouseClick scény a poté případně tatáž procedura „zasaženého“ přístroje. Implicitně je tento příznak vypnut.

  • U přístroje gl_model byl zdokonalen mechanismus načítání takových modelů, které mají v jedné skupině použito několik materiálů. Dosud se pro skupinu s více materiály uplatňoval jen ten, který byl načten naposled. Změny materiálu uvnitř vykreslování povrchů skupiny představují značnou výkonovou zátěž. Tento problém je nyni vyřešen tak, že pod skupinou s více materiály je vytvořena pro každý materiál jedna nová skupina. Jména nových skupin vznikají složením původního jména a jména použitého materiálu odděleného dvěma podtržítky. Seskupením povrchů se se stejným materiálem vždy do jedné skupiny je zachována vysoká rychlost vykreslování.

  • Nová knihovna dynamických 3D virtuálních přístrojů gl_fun pro zvvýšení působivosti vizualizací i pro zábavu:

    gl_flag

    přístroj jednoduše vytáhneme z palety a hned máme prapor vlající ve větru

    Vlající prapor bezprostředně vytažený z palety přístrojů.

    gl_fluid_poster

    proměnlivé pozadí s barevnými rozfázovanými texturami

    gl_metaball

    simulace kapalných objektů, je tvořena třírozměrnou sítí, v rámci které se potřebný počet sférických objektů může slévat, rozdělovat a měnit svou velikost

    Kapalné proměnlivé objekty

    gl_water

    simulace vodní hladiny, hladina se může vlnit, mohou se po ní šířit vlnky od dopadajících kapek deště a dokonce můžeme na hladině vytvářet vzruchy pomocí myši

    Hladina zčeřená kapkami deště

Rozšíření přístroje data_viewer

Přístroj data_viewer byl doplněn o řadu větších či menších rozšíření.

  • Byla přidána možnost vykreslova svisle orientované grafy. Pro volbu orientace grafu je určen parametr orientation v sekci chart_description.

    Příklad svislého grafu

  • Byla přidána možnost definovat orientaci časové osy. To umožňuje vykreslování grafů jak zleva-doprava, resp. shora-dolů, tak zprava-doleva, resp. zdola-nahoru. Pro volbu orientace časové osy je určen parametr begin_axis v sekci time_axis. Pomocí tohoto parametru se stanoví počátek časové osy (vlevo/vpravo, resp. nahoře/dole) a tím její orientace.

    Příklad vodorovného grafu s časovou osou orientovanou zprava-doleva

  • Byla přidána možnost definovat pozici časové osy. Osa tak může být umístěna pod i nad kreslicí plochou u vodorovných grafů, resp. vlevo nebo vpravo od kreslicí plochy u svisých grafů. Pro volbu pozice časové osy je určen parametr position v sekci time_axis.
  • Časová osa byla rozšířena o možnost definovat obsah popisky (zda má obsahovat jenom čas, jenom datum či obojí). Pro definici obsahu popisky je určen parametr content v sekci time_axis.

  • Byla přidána možnost definovat pozici y-ových os. Osy tak mohou být umístěny pod i nad kreslicí plochou u svislých grafů, resp. vlevo nebo vpravo od kreslicí plochy u vodorových grafů. Pro volbu pozice y-ových os je určen parametr position v sekci y_axes.

  • Byla přidána možnost definovat pozici legendy. Legenda tak může být umístěna na libovolné pozici vzhledem k ploše grafu: vlevo, vpravo, nahoře i dole. Pro volbu pozice legendy je určen parametr position v sekci legend.

  • Legenda byla doplněna o možnost automatického uspořádání popisných textů do více sloupců (v závislosti na šířce legendy)

    Příklad legendy s více sloupci textu

  • U mřížky byla doplněna možnost definovat, zda má být kreslena přes průběhy nebo pod nimi. Pro volbu způsobu kreslení mřížky vzhledem k průběhům je určen parametr grid_on_top v sekci grid.

  • Nové nativní procedury:

    • GetChartOrientation vrátí orientaci grafu.

    • SetChartOrientation nastaví orientaci grafu

    • ChangeChartOrientation změní orientaci grafu

    • GetYAxisArrange vrátí způsob organizace y-ových os.

    • SetYAxisArrange nastaví způsob organizace y-ových os.

    • ChangeYAxisArrange změní způsob organizace y-ových os.

    • GetYAxisPosition vrátí pozici y-ových os.

    • SetYAxisPosition nastaví pozici y-ových os.

    • ChangeYAxisPosition změní pozici y-ových os.

    • GetXAxisBeginning vrátí počátek časové osy.

    • SetXAxisBeginning nastaví počátek časové osy.

    • ChangeXAxisBeginning změní počátek časové osy.

    • GetLegendPosition vrátí pozici legendy.

    • SetLegendPosition nastaví pozici legendy.

    • GetGridOnTop vrátí způsob kreslení mřížky.

    • SetGridOnTop nastaví způsob kreslení mřížky.

    • ChangeGridOnTop změní způsob kreslení mřížky.

 
 | O společnosti | Produkty | Podpora | Stažení software | Stažení dokumentů | 
Moravské přístroje, a.s., Masarykova 1148, Zlín-Malenovice, 76302