SB 272
VŠB TUO Ostrava
Program 7.
Překlad
Vypracoval: Crlík Zdeněk
FPGAs zkrátil reakční doby v ovládacích prvcích pohybu.
Programovatelná-automatizační jednotka, taková jako tento CompactRIO od National Instruments, zkombinovala to nejlepší z obou PLC a vložené řídicí technologie k řešení složitých problémů s automaticky řízenými stroji.
Úloha programování v FPGAs s Ni LabView je prostě spojovat požadované funkční bloky uvnitř LabView v graficko-vývojovém prostředí.
Pátrání po lepším výkonu, rychlejších časech změny, menších odpadech a downtimes, dělal strojním systémy automatizace komplikovanější. Vedle logiky zacházení nebo kontrol procesu, dnes systémy potřebují poskytovat prediktivní údržbu, inteligentní chybové zacházení, rychlou odezvu a provozované kontrolní algoritmy, které jsou někdy dělány na zakázku. Tyto rysy jdou těžko splnit s tradiční PLC. Jeden způsob, jak překonat problém kombinuje vložené kontrolní systémy s PLC technologiemi.
PLC typicky operuje podle IEC-61131-3 specifikace. Tato specifikace je směrnicí pro operační systém, definice dat, programovací jazyky a instrukční sady. Na rozdíl od světa PC, kde jeden C program pracuje dobře na jakémkoliv počítači, každý PLC prodavač má jeho vlastní příchuť IEC 61131-3 kompatibilní specifikace. Ale všechny značky mají základní architekturu, která je podobná.
Tento diagram nastíní typickou systémovou architekturu FPGA-založenou na PAC a využívající NI CompactRIO
Pohled jak PLC operuje objasní podoby. Například, změna u LED. PLC potřebuje tři součásti: logiku programu, mapu paměti, a I/O scan. Když logika programu rozsvítí LED, oznamuje tím opravdovou hodnotu k proměnné zvané LED Value. Tato proměnná pobývá na specifickém místě v PLC paměťové mapě. I/O scan tak dostane skutečnou hodnotu od mapy paměti a přenese ji do fyzikálního I/O oboru, přepne LED. Logika programu nikdy přímo nekontroluje I/O obor. Mapa paměti se chová jako mezi stupeň logiky programu a I/O. I/O scan odpovídá za převod hodnoty v mapě paměti k I/O.
Izolace logiky programu od I/O pomocí paměťové mapy dělá paletu akcí možnými. Například, řešení problémů techniků může posílit I/O bit, při poloze on či off v mapě paměti,když ladí systém. Další možnost je aktualizovat program během chvíle buzení zatímco I/O scan běží. Nicméně, programátoři musí také sledovat příčinu blokování funkcí která může zastavit logiku programu natrvalo. Blokovací funkce, jak název naznačuje, je logická sekvence, která překáží programu v jeho dokončení a jeho realizaci. Typický příklad je programové smyčkové čekání na specifickou vstupní hodnotu před pokračováním. Snímací-typ se strukturou PLC je vynikající pro řízení následných procesů. Nicméně, moderní stroje jsou, od přírody komplexnější a reaktivnější než jednoduchý logický postup který se může sám ovládat. Například, typický obalový stroj dnes věnuje 20 % jeho programu k logice pro normální chod. Zbylých 80 % se zabývá chybou a výjimkovým zacházením. Ovládací prvky pro takové složité stroje potřebují kombinaci následných a reaktivních programovacích struktur. Programovatelná-automatizační jednotka, taková jako tento CompactRIO od National Instruments, použilo vložené technologie pro splnění reaktivní struktury. V CompactRIO vložená část vezme formu programovatelného-pole (hradlové pole), nebo FPGA. FPGA čipy obsahují tisíce logických hradel, která programováním propojí a vytvoří vytvořit specifické logické vzory nebo funkce. Přeprogramování FPGA je ekvivalentní k přepisu čipu provádějícího různé úkoly.
Většina PAC tak získala pohyblivý bod procesoru přidáním FPGA. Pohyblivý bod procesoru běží real-time operačního systému, který pracuje na následných úkolech, podobný těm v PLC. PAC kombinuje to nejlepší z vložené kontroly a PLC technologie a vzniká tak architektura optimalizovaná pro programování složitých strojů.
Trumf v FPGAs je ve vytvoření kontrolních systémů, které včlení reaktivní chování a zareagují rychle. Inženýři často používali FPGAs uvnitř průmyslové kontroly produktu, ale typicky neměli přístup k vnitřním FPGA operacím. Programování FPGAs historicky vyžadovalo odbornost v hardwarovém popisovém jazyce (HDL) nebo v komplexních designových nástrojích více známých návrhářům hardwaru než k průmyslovým inženýrům kontroly.
Na druhé straně, CompactRIO PAC použilo National Instruments LabView jako jeho programovací jazyk. LabView je nejvyšší stupeň graficky-vývojového prostředí navrženého specificky pro měření a kontrolu. Lab-View konfiguruje obycejné schémata uvnitř FPGA ,tak CompactRIO může rychlit zpracování a determizovaně synchronizovat analogové a digitální signály. PLC struktura měla potíže reprodukovat toto chování nebo tak fungovala jen s pomocí doplňkových modulů. S FPGA, je možné vykonat digitální logiku do 20 MHz, analogová uzavřená-kontrola smyčky do 1 MHz, a při doplnění o servoloops do 200 kHz/osu pro kontrolu pohybu.
Když LabView vyvine kód pro FPGA-umístěný v zařízení, ukáže to jen ty funkce kterré FPGA splní. Paleta funkcí pro LabView FPGA modul zahrnuje takovou typickou Lab-View fungující jako while-loops pro další smyčky, případně uspořádá sled . Zahrnutý je také soubor přiřazený do FPGA-pro specifické matematické funkce , generaci signálu a analýzu; lineární a nelineární kontrolu; logiku srovnání, sada a manipulace skupiny; výskyty; analogový a digitální I/O; a načasování. Vývojáři kombinací těchto funkcí definují logiku a vloženou inteligenci pro FPGA-umístěných v zařízení.
LabView programování bere formu blokových diagramů, to usnadˇuje sledovat datový tok a pomáhá v pochopení jak program se chová. Na rozdíl od tradičního PC nebo PLC procesorů, je FPGAs paralelní procesor. Takže přidávaní další smyčky k programu nedegraduje výkon jiných nezávislých smyček. Pro příklad, nezávislý pult a PID smyčky v stejném FPGA se vykoná souběžně. Všechny úlohy se probíhají současně. Nedochází k zastavení žádné z úloh, zatímco další úloha běží, ani latence v přepínání mezi násobkem úloh jak v PLCs nebo PC. PID funkční blok je jen jeden příklad intelektuálního vlastnictví (IP) dostupný pro programovaní FPGAs v LabView. Je tam celá paleta zdrojů pro zpracování signálu IP .To je cíl vysokorychlostního sledování aplikace a kontroly. NI SoftMotion modul vývoje zahrnuje zvýrazněné algoritmy pro kontrolu pohybu a vestavěné vstupy pro četná odezvová zařízení
včetně kodérů quadrature. NI digitální filtr nástrojová sada designu poskytuje funkce a interaktivní prostředky k designu, analýze a realizaci digitálních filtrů uvnitř FPGA.
Připomeňme si že PAC kombinuje pohyblivý bod procesoru s FPGA průběžnou logikou v hardwaru. LabView Real-Time vytvoří software působící v pohyblivém bodě procesoru a komunikuje s FPGA. Programy pohyblivého bodu procesoru budou typicky vykonávat komplexní výpočty pohyblivého bodu, zaznamenávání dat, síťování, e-mail, soubor-protokol převodu (FTP), vzdálenou webovou kontrolu, a operace, které se nehodí uvnitř FPGA struktury. Jsou zde speciální úlohy, které požadují zvláštní zpracovací motory k funkcím mimo rozsah FPGA. Například, real-time prostředí PAC se typicky zabývá aritmetikou pohyblivého bodu procesoru , zahrnování spektrálního rozboru nebo zakázkových kontrolních algoritmů. Některé systémy dokonce přenesou data do Windows hlavního počítače pro offline analýzu, ten bud data zaznamená, nebo zobrazí na uživatelském rozhraní. FPGA-zakladní zařízení používají flash paměť k obchodním kompilovaným programům a provozují aplikaci bezprostředně po zapnutí. V této konfiguraci FPGA program běží tak dlouho, jak je FPGA schopna. Ukončí se jestliže hlavní počítač havaruje nebo je vypnut. Toto pracovní prostředí naleží úloze k bezpečnému programování dolních a horních sekvencích, které se zabývají neočekávanými událostmi.
Co je FPGA? FPGA je integrovaný obvod tvořený mnoha nenakonfigurovanými logickými hradly. Ne jako fixovaný automaticky-definovaný okruh ASIC (aplikační-specifický integrovaný obvod) čip, logika na FPGA je konfigurovatelná. Inženýři používají FPGA v aplikacích kde je cena vyvíjení a zhotovení ASIC nepřístupná nebo kde se hardware bude měnit až v provozu. Flexibilní software a programovatelná architektura FPGAs nabídne takové výhody jako vysokovýkonnostní výpočet speciálních algoritmů, přesné načasování a synchronizaci, rychlé rozhodování, současné provádění paralelních úloh. Dnes,se FPGAs objevuje v četných zařízeních včetně nástrojů, spotřební elektroniky, automobilech, letadlech, kopírujících strojích a v počítačovém hardwaru.
Co je NI LabView? NI LabView je graficko-vývojové prostředí určené pro měření a kontrolu. Inženýři používají mimo jiné LabView k designu, k vývoji prototypů a k rozvíjení vysokovýkonového sledování a řízení používaných aplikací. Automatizační pracovníci (PACs) včlenili do sebe obě PLC a vloženou-řídicí technologii, LabView doplňuje o IEC 61131-3 založené na PLC systémech. Navíc LabView také obsahuje rozhraní vyvíjení a spojování HMI, SCADA, a podnikových komunikačních sítí.
LabView programy mohou ovládat stroje na bázi konečných prvků, řídí jednotlivé události, dynamický datový tok a nepřetržitý čas a sledovou logiku. Tak stejně může tato aplikace obsahovat kvality obou spojitých a reaktivních systémů. LabView je všestranný. Dostačuje k práci na paletě cílů včetně FPGAs, real-time operačních systémech, Windows XP, WinCE, PalmOS, procesorech digitálního signálu (DSPs), nebo v nějakém systemu s 32 bitový mikroprocesorem.
FPGAs put PLCs in motion
FPGAs shorten reaction times in motion controls.
Programmable-automation controllers, such as this CompactRIO from National Instruments, combine the best of both PLC and embedded control technologies to solve complex machineautomation problems.
The task of programming FPGAs with NI's LabView is simply a matter of linking the desired function blocks within the LabView graphicaldevelopment environment.
This diagram outlines a typical system architecture for an FPGA-based PAC using the NI CompactRIO. A Windows PC running LabView for Windows operates as a virtual instrument (VI), providing control and data readouts. The CompactRIO system implements the other side of the VI function, providing connections to the PC, and linking to the FPGA within the CompactRIO itself
The quest for better throughput, faster changeover times, and less waste and downtimes has made machine-automation systems more complicated. Besides handling logic or process controls, systems today need to provide predictive maintenance, intelligent fault handling, fast response, and run control algorithms that are possibly custom made. Features like these are difficult to implement with traditional PLCs. One way to get around the problem combines embedded control systems with PLC technologies.
PLCs typically operate according to the IEC-61131-3 specification. This specification details guidelines for operating-system execution, data definitions, programming languages, and instruction sets. Unlike the PC world, where one C program works well on any computer, every PLC vendor has its own flavor of IEC 61131-3 compliant specifications. But all brands have a basic architecture that is similar.
A look at how a PLC operates illustrates the similarities. For example, to turn on an LED, any PLC needs three components: the program logic, the memory map, and the I/O scan. When the program logic lights the LED, it writes a True bit value to a variable called LEDValue. This variable resides at a specific location in the PLC memory map. The I/O scan gets the True value from the memory map and transfers it to the physical I/O line, turning on the LED. The program logic never directly controls the I/O line. The memory map acts as a buffer between program logic and the I/O. It is the responsibility of the I/O scan to transfer the values in the memory map to the I/O.
The isolation of program logic from I/O by the memory map makes a variety of actions possible. For example, troubleshooting technicians can force I/O bits on or off in the memory map when debugging a system. Or they can update a program in the field on the fly while the I/O scan is running. However, programmers must also watch out for blocking functions that may halt the program logic indefinitely. Blocking functions, as the name implies, are logic
sequences that prevent a program from completing its execution. A typical example is a program loop waiting for a specific input value before continuing. The scanning-type architecture of PLCs is excellent for controlling sequential processes. However, modern machines are, by nature, more complex and more reactive than simple sequence logic alone can handle. For example, a typical packaging machine today devotes 20% of its program to the logic for normal operation. The remaining 80% deals with fault and exception handling. Controls for such complex machines need a combination of sequential and reactive programming architectures.
Programmable-automation controllers (PACs), such as the CompactRIO from National Instruments, use embedded technologies for implementing reactive architectures. In the CompactRIO the embedded portion takes the form of a field-programmable gate array, or FPGA. FPGA chips contain thousands of logic gates that interconnect via programming to create specific logic patterns or functions. The reprogramming of an FPGA is equivalent to rewiring the chip circuitry to perform different tasks.
Most PACs also incorporate a floating-point processor in addition to the FPGA. The floatingpoint processor runs a real-time operating system that handles sequential tasks, similar to those run by a PLC. PACs combine the best of embedded control and PLC technologies to produce an architecture optimized for programming complex machines. The goal of using FPGAs is to create control systems that incorporate reactive behavior and respond quickly. Engineers often used FPGAs inside industrial-control products, but they typically did not have access to internal FPGA operations. The programming of FPGAs historically required expertise in hardware description language (HDL) or in complex design tools more familiar to hardware designers than to industrial-control engineers. On the other hand, the CompactRIO PAC uses National Instruments LabView as its programming language. LabView is a high-level graphical-development environment designed specifically for measurement and control. Lab-View configures the custom circuitry inside the FPGA so a CompactRIO can rapidly process and deterministically generate synchronized analog and digital signals. The PLC architecture has trouble reproducing this behavior or does so only with the help of add-on modules. With an FPGA, it's possible to execute digital logic at 20 MHz, analog closed-loop control at 1 MHz, and update servoloops at 200 kHz/axis for motion control. When LabView develops code for an FPGA-based device, it displays only those functions the FPGA implements. The palette of functions for LabView's FPGA Module includes such typical Lab-View functions as Lab-View while-loops, for-next loops, case structures, and sequence structures. Also included is a dedicated set of FPGA-specific functions for math, signal generation, and analysis; linear and non-linear control; comparison logic, array, and cluster manipulation; occurrences; analog and digital I/O; and timing. Developers combine these functions to define the logic and embedded intelligence for any FPGA-based device.
LabView programming takes the form of block diagrams that make it easy to follow the data flow and aids in understanding how the program behaves. Unlike traditional PC or PLC processors, FPGAs are parallel processors. So adding additional loops to a program does not degrade the performance of other independent loops. For example, independent counter and PID loops in the same FPGA execute in parallel. All tasks take place at the same time. There is no task suspension while another task runs, nor any latency in switching between multiple tasks as in PLCs or PCs. The PID function block is just one example of intellectual property (IP) available for programming FPGAs in LabView. There are a variety of sources for signal-processing IP that target high-speed monitoring and control applications. The NI SoftMotion Development Module includes enhanced algorithms for motion control and built-in inputs for numerous feedback devices including quadrature encoders. The NI Digital Filter Design Toolkit provides functions and interactive tools for design, analysis, and implementation of digital filters within the FPGA. Recall that PACs typically combine a floating-point processor with an FPGA running logic in hardware. LabView Real-Time creates software that executes on the floating-point processor and communicates with the FPGA. Programs on the floating-point processor typically perform complex floating-point calculations, data logging, networking, e-mail, file-transfer protocol (FTP), remote web control, and any operations that do not fit within the FPGA fabric. There are tasks that demand special processing engines to handle functions beyond the scope of the FPGA. For example, the real-time environment of the PAC typically handles floatingpoint arithmetic, including spectral analysis or custom control algorithms. Some systems even transfer the data to a Windows host computer for off-line analysis, data logging, or userinterface displays. FPGA-based devices use flash memory to store compiled programs and run the application immediately after power-up. In this configuration, the FPGA program runs so long as the FPGA has power. And it continues to run even if the host computer crashes or is powered down. This working environment suits the task of programming safety power-down and power-up sequences that handle unexpected events.
What is an FPGA? An FPGA is an integrated circuit made up of many unconfigured logic gates. Unlike the fixed, vendor-defined circuitry of an ASIC (application-specific integrated circuit) chip, the logic on FPGAs is reconfigurable. Engineers use FPGAs in applications where either the cost of developing and fabricating an ASIC is prohibitive or hardware will change after being placed in service. The flexible, software-programmable architecture of FPGAs offers benefits such as highperformance execution of custom algorithms, precise timing and synchronization, rapid decision making, and simultaneous execution of parallel tasks. Today, FPGAs appear in numerous devices including instruments, consumer electronics, automobiles, aircraft, copy machines, and application-specific computer hardware.
What is NI LabView? NI LabView is a graphical-development environment designed for measurement and control. Engineers use LabView to design, prototype, and deploy high-performance monitoring and control applications using, among other things, programmable-automation controllers (PACs). By incorporating both PLC and embedded-control technologies, LabView complements IEC 61131-3-based PLC systems. In addition, LabView also contains interfaces to develop and connect HMI, SCADA, and enterprise communication networks. LabView programs can handle finite-state machines, discrete events, dynamic data flow, and continuous time and sequential logic. Thus, the same application can contain qualities of both continuous and reactive systems. And LabView is versatile enough to work on a variety of targets including FPGAs, real-time operating systems, Windows XP, WinCE, PalmOS, digital signal processors (DSPs), or any 32-bit microprocessor-based system.