Uvod v CompactRIO

Datum objave: 14. marec 2011
Uvod v CompactRIO

Arhitektura CompactRIO
CompactRIO je robusten rekonfigurabilni vgnezdeni sistem, ki ima tri glavne dele: krmilnik za delovanje v realnem času, rekonfigurabilno polje poljsko programabilnih vrat (FPGA) in industrijske V/I-enote.

 


Slika 1.1: Arhitektura rekonfigurabilnega vgnezdenega sistema

Krmilnik za delovanje v realnem času
Krmilnik za delovanje v realnem času ima vgrajen industrijski procesor, ki zanesljivo in deterministično izvaja aplikacije v realnem času, razvite v okolju LabVIEW, pri tem pa ponuja krmiljenje z različnimi frekvencami osveževanja, sledenje izvajanja, vgrajeno beleženje podatkov in komunikacijo s periferno opremo. Dodatne možnosti vključujejo redundantne napajalne vhode 9–30 V=, uro realnega časa, strojne nadzorne časovnike, dvojna vrata Ethernet, do 2 GB prostora za shranjevanje podatkov in vgrajene vmesnike USB ter RS232.


Slika 1.2: Krmilnik za delovanje v realnem času NI cRIO-9014 z rekonfigurabilnim ohišjem z napravo FPGA

Rekonfigurabilno ohišje z napravo FPGA
Rekonfigurabilno ohišje z napravo FPGA je središče arhitekture vgnezdenega sistema. Naprava FPGA v rekonfigurabilni V/I-enoti (RIO) je neposredno povezana z V/I-enotami za visokozmogljivi dostop do V/I-vezij vsake enote, pri tem pa ponuja še neomejeno prilagodljivost pri časovni uskladitvi, proženju in sinhronizaciji. Ker je vsaka enota povezana neposredno na napravo FPGA in ne s sistemskim vodilom, odziv sistema skoraj nima zakasnitve v primerjavi z drugimi industrijskimi krmilniki. Privzeto ta enota FPGA samodejno komunicira z V/I-enotami in zagotavlja deterministično upravljanje V/I-enot s procesorjem. Naprava FPGA v osnovni konfiguraciji omogoča, da programi na krmilniku za delovanje v realnem času dostopajo do V/I-enot s časovnim tresenjem med posameznimi zankami pod 500 ns. Prav tako lahko napravo FPGA neposredno programirate za izvajanje kode po meri. Zaradi hitrosti naprave FPGA se to ohišje pogosto uporablja za ustvarjanje sistemov krmilnikov, ki vključujejo zelo hitre V/I-sisteme z medpomnilnikom, zelo hitre krmilne zanke ali filtriranje signalov po meri. Z uporabo naprave FPGA lahko na primer eno samo ohišje izvaja več kot 20 analognih proporcionalno-integralno-diferencialnih regulacijskih zank (PID) s hitrostjo 100 kHz. Poleg tega izvaja naprava FPGA vso kodo v strojni opremi, kar zagotavlja visoko zanesljivost in determinizem, ki je idealen za izvedbo strojnih blokad, časovnih uskladitev in proženja po meri ali za odpravljanje posebnih vezij, ki so običajno potrebna s tipali po meri.

Industrijske V/I-enote
V/I-enote vsebujejo izolacijo, pretvorniška vezja, prilagajanje signalov in povezave za neposredno povezovanje z industrijskimi tipali/aktuatorji. Z različnimi možnostmi za ožičenje in vključitvijo priključne omarice v enote sistem CompactRIO bistveno zmanjša potrebo po prostoru in stroške za ožičenje na terenu. Izbirate lahko med več kot 50 V/I-enotami NI C Series za krmilnike CompactRIO, ki omogočajo povezovanje s skoraj vsemi vrstami tipal in aktuatorjev. Enote med drugim ponujajo vhode za termočlene, hkratno vzorčenje 10 V, 24-bitne analogne V/I-sisteme, industrijske digitalne V/I-sisteme za 24 V in z izhodnim tokom do 1 A; diferencialne/TTL-digitalne vhode, 24-bitne vhode za merilnike pospeškov IEPE, vhode za merilnike sile, meritve RTD, analogne izhode, meritve moči, povezovanje z omrežji CAN ter beleženje podatkov na pomnilniške kartice SD. Pri tem je platforma odprta, tako da lahko sestavite lastne enote ali kupite enote drugih proizvajalcev. Z razvojnim kompletom za enote CompactRIO NI cRIO-9951 lahko razvijate enote po meri za posebne potrebe svojih aplikacij. Komplet omogoča dostop do nizkonivojske elektronike arhitekture vgnezdenega sistema CompactRIO, tako da lahko izvedete specializirane V/I-, komunikacijske in krmilne enote. Priložene so knjižnice LabVIEW FPGA za povezovanje z vezji vaše enote po meri.


Slika 1.3: Izbirate lahko med več kot 50 V/I-enotami za krmilnike CompactRIO, ki omogočajo povezovanje s skoraj vsemi vrstami tipal in aktuatorjev.

Osnovno ozadje arhitekture krmilnika
Izgradnja kompleksnih sistemov zahteva arhitekturo, ki omogoča ponovno uporabo kode, razširljivost in upravljanje izvajanja. V naslednjih dveh razdelkih je opisano, kako zgradite osnovno arhitekturo za krmilne aplikacije in kako s to arhitekturo izvajate preproste zanke PID.
Osnovna arhitektura krmilnika ima tri glavna stanja:
1. Inicializacija (notranja opravila)
2. Krmiljenje (V/I- in komunikacijski gonilniki, tabela pomnilnika, krmiljenje ter merilna opravila)
3. Zaustavitev (notranja opravila)


Slika 2.1: Tri glavna stanja osnove arhitekture krmilnika

Inicializacijski program
Pred izvedbo glavne krmilne zanke mora program izvesti inicializacijski program. Ta program pripravi krmilnik na izvajanje in ni pravo mesto za logiko, ki je povezana s strojem, na primer za zagon ali inicializacijo stroja. Ta logika sodi v glavno krmilno zanko. Inicializacijski program:
1. Nastavi vse notranje spremenljivke na privzeta stanja.
2. Ustvari vse programske strukture, ki so potrebne za delovanje. To lahko vključuje čakalne vrste, medpomnilnike FIFO za delovanje v realnem času, referenčne številke VI in prenos bitne datoteke za napravo FPGA.
3. Izvede dodatno uporabniško določeno logiko za pripravo krmilnika za delovanje, na primer pripravo dnevniških datotek.


Krmilni program

V/I, komunikacije in pomnilniška tabela
Številni programerji so seznanjeni z neposrednim V/I-dostopom, pri katerem podprogrami neposredno pošiljajo in sprejemajo stanja vhodov ter izhodov v strojno opremo in iz nje. Ta metoda je idealna za zajemanje valovnih oblik, obdelavo signalov in manjše enotočkovne načine uporabe. Vendar pa krmilne aplikacije običajno uporabljajo enotočkovna branja in zapisovanja, ki se lahko pri več možnih stanjih močno razširijo, vsa pa potrebujejo dostop do V/I-naprav. Dostop do V/I-naprav dodatno obremeni sistem in ga lahko upočasni. Poleg tega upravljanje več V/I-dostopov po vseh ravneh programa zelo oteži spreminjanje V/I-enot in izvedbo funkcij, kot sta simulacija ter prisilno postavljanje vrednosti. Krmilni program se tem težavam izogne z V/I-arhitekturo s pregledovanjem. Pri takšni arhitekturi dostopate do fizične strojne opreme le enkrat na vsako iteracijo zanke preko V/I- in komunikacijskih gonilnikov (na sliki 2.1 so označeni kot V/I- in komunikacijski gonilniki). Vhodne in izhodne vrednosti so shranjene v pomnilniški tabeli, krmilne ter merilne naloge pa namesto neposredno do strojne opreme dostopajo do pomnilnika. Ta arhitektura ponuja številne prednosti:
•    Abstrakcija V/I-naprav omogoča ponovno uporabo podrejenih enot VI in funkcij (V/I-enote v kodi niso fiksno določene)
•    Majhna dodatna obremenitev
•    Deterministično delovanje
•    Podpora za simuliranje
•    Podpora za prisilno postavljanje vrednosti
•    Odpravljanje tveganja, da se V/I-enote spremenijo med izvajanjem logike
Opravila za krmiljenje in merjenje
Opravila za krmiljenje in merjenje so logika za stroj, ki opredeljuje krmilno aplikacijo. Tu lahko govorimo o krmiljenju postopka ali bolj izpopolnjenem krmiljenju stroja. Marsikdaj temeljijo na avtomatu stanj, ki obdeluje zapleteno logiko z več možnimi stanji. V poznejšem delu bomo raziskali uporabo avtomatov stanj za snovanje logike. Za izvajanje v krmilni arhitekturi mora glavno krmilno opravilo:
•    za izvršitev porabiti manj časa kot en cikel za pregledovanje V/I-enot,
•    dostopati do V/I-enot preko V/I-pomnilniške tabele namesto preko neposrednega branja ali zapisovanja V/I-enot,
•    delovati brez pogojnih zank (while), razen za ohranjanje informacij v premičnih registrih,
•    delovati brez števnih zank (for), razen v algoritmih,
•    delovati brez čakalnih stanj (wait); namesto tega je treba za časovno uskladitev uporabiti funkcije časovnikov ali štetje časovnih intervalov (Tick Count),
•    delovati brez beleženja valovnih oblik, beleženja podatkov in nedeterminističnih postopkov (za te postopke uporabite vzporedne zanke z nižjo pomembnostjo).
Uporabniška logika lahko:
•    vključuje enotočkovne postopke, kot so algoritmi PID ali točkovne analize,
•    uporablja avtomate stanj za urejanje kode.
Krmilni program lahko narišemo kot zanko, ki bere in zapisuje podatke iz V/I-enote ter v njo, in krmilno opravilo, ki deluje tako, da komunicira s pomnilniško tabelo. V resnici gre za več sinhroniziranih zank, prav tako pa je lahko prisotnih več krmilnih ali merilnih opravil.
 

Slika 2.2: Tri glavna stanja osnove arhitekture krmilnika

Zaustavitveni program
Ko se mora krmilnik ustaviti zaradi ustreznega ukaza ali pogoja za ustavitev, najprej preneha izvajati glavno krmilno zanko, nato pa izvede zaustavitveni program. Ta program ustavi krmilnik in ga preklopi v varno stanje. Uporabljajte ga samo za ustavitev krmilnika – sem ne sodijo podprogrami za ustavitev stroja, ki sodijo v glavno krmilno zanko. Zaustavitveni program:
1. Nastavi vse izhode na varna stanja.
2. Ustavi vse vzporedne zanke, ki se izvajajo.
3. Izvede dodatno logiko, na primer obvesti uporabnika o morebitnih napakah krmilnika ali podatkih iz beleženja podatkov.


Primer osnovne arhitekture krmilnika v okolju LabVIEW
Za prikaz te krmilne arhitekture ustvarite aplikacijo za osnovno PID-regulacijo. Ta preprosta aplikacija upravlja temperaturno komoro, da ima stalno temperaturo 177 °C. Aplikacija ima en analogni vhod iz termočlena in en digitalen izhod s pulznoširinsko modulacijo (PWM), ki je povezan z grelnikom, za regulacijo pa uporablja algoritem PID. Ta zelo poenostavljena aplikacija je uporabljena za lažje pojasnjevanje delov arhitekture brez dodatne kompleksnosti, ki bi jo prinesel bolj prefinjen primer krmiljenja. Podrobnejši primeri krmiljenja s to arhitekturo so obdelani v nadaljevanju tega dokumenta.
Za izgradnjo te aplikacije v okolju LabVIEW uporabite pet delov arhitekture krmilnika:
1. Inicializacijski program
2. Zaustavitveni program
3. Preprosto opravilo za krmiljenje postopkov
4. V/I-spremenljivke v pomnilniški tabeli
5. Pregledovalni vmesnik RIO za dostop do V/I-naprav


Programa za inicializacijo in zaustavitev
1.    Najprej dodajte inicializacijski in zaustavitveni program. Inicializacijski program mora konfigurirati krmilnik, da je pripravljen na uporabo poljubne logike, zaustavitveni program pa mora opraviti vse postopke, povezane z ustavitvijo sistema.
2.    Za upravljanje tega krmilnega zaporedja ustvarite zaporedno zgradbo s tremi okviri: enim za inicializacijske programe, enim za krmilna in merilna opravila in enim za zaustavitveni program.

 

Slika 3.1: To zaporedje krmilnika upravljate s tremi okvirji: inicializacijskim programom, krmilnimi in merilnimi opravili ter zaustavitvenim programom.

3.    Dodajte vso logiko za inicializacijo ali zaustavitev. V tej aplikaciji inicializacija krmilnika ni potrebna. Privzeto krmilnik pusti izhodne vrednosti na zadnjem stanju. V tej aplikaciji morate ob zaustavitvi nastaviti izhode v izključeno stanje. Dodate lahko tudi drugo logiko ob zaustavitvi, na primer beleženje napak.


Slika 3.2: Dodajte morebitno logiko za inicializacijo ali zaustavitev.

Zdaj imate celotna programa za inicializacijo in zaustavitev. Dodati morate še krmilna in merilna opravila.

V/I-pregledovanje in pomnilniška tabela
Od različice LabVIEW 8.6 naprej je za krmilnike CompactRIO na voljo možnost za programiranje z imenom RIO Scan Interface. Ko odkrijete svoj krmilnik CompactRIO v projektu LabVIEW, imate možnost, da krmilnik programirate z vmesnikom Scan Interface ali z vmesnikom LabVIEW FPGA (če nimate nameščenega vmesnika LabVIEW FPGA, se privzeto izbere vmesnik Scan Interface).


Slika 3.3: Od različice LabVIEW 8.6 lahko krmilnike CompactRIO programirate z vmesnikom Scan Interface.

Ko krmilnik dostopa do V/I-naprav preko vmesnika Scan Interface, se I/O-enote samodejno preberejo iz enot in postavijo v pomnilniško tabelo krmilnika CompactRIO. Privzeti interval pregledovanja V/I-enot je 10 ms in ga lahko nastavite v lastnostih krmilnika. Do V/I-enot lahko dostopate z vzdevki za V/I-spremenljivke.

 

Slika 3.4: Opis programskih komponent vmesnika CompactRIO Scan Interface z blokovno shemo

V sistemu imate vhodno enoto za termočlen in izhodno enoto PWM. Konfigurirate in uporabljate jih lahko z vmesnikom za pregledovanje. Če želite brati in pisati te vrednosti v okolju LabVIEW, ustvarite vzdevke za V/I-enote. Vzdevek V/I-enote pomeni fizično V/I-napravo, ki jo lahko uporabite za širitev sistema in za vzdrževanje prenosnosti kode.

 

Slika 3.5: Ustvarjanje vzdevka za V/I-napravo

1.    Če želite ustvariti vzdevek za V/I-napravo, z desno miškino tipko kliknite krmilnik in izberite novo spremenljivko. Vrsto spremenljivke izberite kot vzdevek V/I-enote in jo povežite s fizično V/I-enoto.
2.    Za ta primer ustvarite dva vzdevka V/I-enot: Thermocouple 1 (povezan z enoto TC) in Heater 1 (povezan z digitalno izhodno enoto, ki je konfigurirana za izhodni signal PWM), in jih dajte v knjižnico z imenom U/I Library.

Opravila za krmiljenje in merjenje
Vsako nalogo za krmiljenje in merjenje časovno uskladite s časovno krmiljeno zanko. Časovno krmiljeno zanko sinhronizirajte s pregledovanjem V/I-enot (mehanizem za pregledovanje NI), da dosežete ustrezno sinhronizacijo med krmilnim opravilom in V/I-enotami.
1.    Ustvarite časovno krmiljeno zanko in jo nastavite tako, da je sinhronizirana z mehanizmom za pregledovanje. Pustite periodo na 1, tako da zanka steče ob vsakem pregledu V/I-naprav.



Slika 3.6: Sinhronizacija mehanizma za pregledovanje NI

2.    Napišite krmilno logiko za branje vhodov iz vzdevkov za V/I-enote, zaženite logiko in zapisujte podatke v vzdevke za V/I-enote. Običajno bi zaradi olajšanja ponovne rabe kode z enkapsulacijo ustvarili podrejene enote VI, vendar je zaradi preprostosti primera, ki je namenjen samo za prikaz celotne arhitekture, koda trivialna. Dodatna enkapsulacija kode je odveč. Pravilna enkapsulacija kode je prikazana v naslednjih primerih. Za ta preprosti primer postavite v blokovni diagram enoto VI PID in nastavite konstante tako, da je izhodni doseg [100, 0], da so ojačenja PID [10, 0,1, 0] in da je želena vrednost 177. Namesto konstant so lahko to spremenljivke, ki jih lahko spreminjate, ko se program izvaja. Vzdevek V/I-enote Thermocouple 1 povežite na priključek Process Variable, vzdevek V/I-enote Heater 1 pa na priključek Output. Dodajte ustrezne komponente za obravnavo napak.



Slika 3.7: V tem primeru uporabite omrežno objavljeno spremenljivko v souporabi, da ustavite zanko.

Zdaj lahko zaženete program za regulacijo temperature. Vsebuje programa za zagon in zaustavitev, arhitekturo za pregledovanje, večnamenske podrejene enote VI, ki niso fiksno določene V/I-enotam, in mehanizem za obravnavo napak. To je temeljna arhitektura za krmiljenje strojev, ki se uporablja v tem dokumentu.


Slika 3.8: Temeljna arhitektura za krmiljenje stroja

To je samo najpreprostejši možen način uporabe. Močno priporočamo branje naslednjega dokumenta:

Vodnik za razvijalce sistemov NI CompactRIO
http://www.ni.com/compactriodevguide/


National Instruments,
Instrumentacija, avtomatizacija in upravljanje procesov d.o.o.
Kosovelova ulica 15, 3000 Celje, Slovenija
Tel: + 386 3 425 4200, Fax: +386 3 425 4212
E-mail: ni.slovenia@ni.com
www.ni.com/slovenia

HR, MC, BA, RS, ME: + 386 3425 4200
SLO: 080 080 844

Število ogledov: 1220
Deli objavo na: