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
A/D A/D A/D
mP
DAQ deska
Základní deska základní deska cíle s RT
A/D
mP základní deska PC
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 A)
(varianta B)
RT čelní panem Vývojový hardware
Vlákno uživatelského rozhranní
VI Server
RT zařízení (diagram) DAQ VIs RT DAQ
(varianta C)
Host LabVIEW aplikace na Windows PC
Host PC
TCP/IP
Peek/poke
RT zařízení (diagram)
Cíl RT
DAQ VIs RT DAQ
(varianta C)
DAQ VIs Plug-in DAQ deska
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
– krok V 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
Thread Co-routines
User Interface Loop
Exec( )
Více-vláknové aplikace v LabVIEW PC Thread
Messages
Thread
Exec( ) UI Loop Exec()
Thread
Thread
Exec( ) Exec( )
Více-vláknové aplikace v LabVIEW RT – cíl RT RT cíl Thread
Messages
Communication TCP/IP Loop
Thread
Exec( )
Thread
Thread Exec( )
Exec()
Exec( )
LabVIEW + LabVIEWRT – kompletní vývojový systém Host PC Thread
Thread Exec() Thread
UI Loop
-Shared memory -TCP/IP -VI server
RT Series hardware target Thread
Thread
Exec() Thread
Communi cation
Exec()
Exec() Thread Exec()
Exec()
Exec()
Thread 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
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
(?)
1K
(?) 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