Real Time programování v LabView Ing. Martin Bušek, Ph.D.
Úvod - související komponenty LabVIEW development Konkrétní RT hardware - cíl Použití LabVIEW RT module - Pharlap ETS, RTX, VxWorks Možnost užití zařízení s FPGA polem Pokročilé programovací techniky Software/hardware watchdogs WDT Překladač - Application builder
Co znamená Real-time? Real-time neznamená běžet co možná nejrychleji! Důležitá je odezva systému deterministický chod! Systém Windows nesplňuje požadavky na determinismus Požadavky Upravené jádro systému Windows na standardním PC Samostatný systém reálného času RT na nezávislém hardware Aplikace hardware s FPGA poli
Architektura systému RT RT OS embedded LabVIEW TCP/IP connection Win OS LabVIEW Základní deska základní deska cíle s RT mp mp základní deska PC A/D A/D A/D DAQ deska A/D DAQ deska
LabVIEW RT Software LabVIEW RT přidává do LabVIEW dvě komponenty: RT Development System Částečně běží na host PC Programování a překlad klasického LabVIEW kódu RT Engine Běží na hardware cíle Vykonává nezávislý deterministický kód Nezávislost na Host PC
Architektura software LabVIEW RT Tři nezávislé části programu v prostředí LabVIEW Application development (varianta B) (varianta A) RT čelní panem Vývojový hardware Host PC Host LabVIEW aplikace na Windows PC Vlákno uživatelského rozhranní RT zařízení (diagram) DAQ VIs Cíl RT VI Server TCP/IP Peek/poke RT zařízení (diagram) DAQ VIs DAQ VIs Plug-in DAQ deska RT DAQ RT DAQ (varianta C) (varianta C)
Instalace procesorových RT karet serie RT Instalace a monitorování z MAX Automation RT karty se chovají jako zařízení s vlastním číslem Dceřiné karty mají odlišné číslo zařízení Nemají testovací panel
Instalace RT PXI Základní popis Komunikace prostřednictvím Ethernet Předinstalován a připraven RTOS Funkční s LV RT 5.1.2 a NI-DAQ 6.7 a vyšší Komunikace Uživatelem definované vlákno programu VI Server TCP/IP Podporovaný hardware všechny PXI chassis NI-DAQ MXI-3 Možnost vlastní konfigurace systému
Průzkumník nezávislého systému RT Konfigurace systému Instalace a upgrade software Vytvoření záložních disků Seznam instalovaného software a hardware
Tvorba RT projektu krok 1 Výběr platformy cíle reálného času Host PC se systémem Win a RT jádrem např. RTX RT procesorová DAQ karta PXI kontroler v síti LAN
Tvorba RT projektu krok II sdílená paměť inkrementální čtení/zápis kontinuální přenos na vysoké úrovni čtení/zápis VI - obsahuje příznak (8-bitové slovo) pro efektivní přenos nízko-úrovňový přenos PEEK a POKE - základní stavební kameny pro další úrovně
Tvorba RT projektu krok III VI SERVER Podobné řešení jako u standardního VI Server Odlišné označení stroje související s číslem realtime zařízení RT DAQ (DAQ::1) Požadavky VI musí být načtena v paměti LabVIEW RT musí běžet na cíly RT
Tvorba RT projektu krok IV nahrání aplikace do paměti Načtení VI do dynamické paměti bez jejího spuštění VI je připravena ke spuštění
Tvorba RT projektu krokv LabVIEW RT běží na cíly RT Důležité běh VI serveru LabVIEW RT je stále otevřené aktivní Uzavření uživatelského rozhraní LabVIEW bez ukončení VI na RT cíly Možnost uzavření vývojového prostředí LabVIEW bez uzavření běžící deterministické aplikace na RT cíly
Tvorba RT projektu krok VI komunikace TCP/IP s Host LabVIEW VI Podobná jako standardní TCP/IP v LabVIEW aplikacích Vyžaduje různé názvy cílů RT korespondující s Inteligentními DAQ kartami (DAQ:: 1) a PXI Slouží ke komunikaci - přenosu velkých objemů dat NENÍ DETERMINISTICKÁ!!!!!
Tipy tvorby programu časování Méně důležité výpočty provádějte mimo časově-kritické smyčky Konfigurace VI provádějte mimo smyčky RT Režimu spánku pomáhá udržet rychlost smyček a zároveň umožňuje sdílení času dalším smyčkám
Tipy tvorby programu paměť Determinismus Včasná alokace polí Vyhýbat se sdíleným zdrojům dat Výkon Vybrat správná datový typ pro používaná data Užít globální proměnné
Jedno-vláknové aplikace v LabVIEW PC User Interface Loop Co-routines Exec( )
Více-vláknové aplikace v LabVIEW PC UI Loop Exec() Messages Exec( ) Exec( ) Exec( )
Více-vláknové aplikace v LabVIEW RT cíl RT RT cíl Messages Communication TCP/IP Loop Exec() Exec( ) Exec( ) Exec( )
LabVIEW + LabVIEWRT kompletní vývojový systém Host PC Exec() UI Loop Exec() Exec() Exec() -Shared memory -TCP/IP -VI server RT Series hardware target Communi cation Exec() Exec() Exec() Exec()
Priority vykonávání programu Normální priorita umožňuje CPU sdílení Time-critical priorita Aplikace využívá 100% času CPU Režim spánku Priorita podprogramů Nejvyšší úroveň priority Uvolnění vlákna až po ukončení operací
Watchdogs Hardwareový nebo softwareový mechanismus, který kontroluje stav emkbedded systémů Zvyšuje odolnost systému Obecně vyžaduje nízké režijní náklady
Software Watchdog (?) Host PC 1K (?) Software watchdog může použít sdílenou paměť Zapisuje hodnotu, která je kontinuálné měněna Oba systémy host PC i embedded PC mohou implementovat watchdog Embedded PC
Hardware Watchdog Digitální / čítačové linky mohou být použity jako trigger pro ostatní systémy Externí Systém 1 (?) (?) Externí Systém 2 Embedded PC CTR/DIO
Application Builder - překladač Kompilace projektů do spustitelné podoby bez vývojového prostředí Obvykle umístěn na host PC Extra RT nastavení zobrazení RT cíle v dialogovém okně při spouštění Ukončení bootovací aplikace RT systému po načtení projektu