Logični program

Opis

Aplikacije PolyScope X lahko vključujejo logični program , ki neprekinjeno teče v ozadju, neodvisno od glavnega programa robota. To je koristno za naloge, ki morajo delovati tudi takrat, ko je roka izklopljena, je glavni program zaustavljen ali ustavljen ali pa je operater vstopil v varnostno območje.


Tipične uporabe vključujejo vzdrževanje komunikacije prek poljskega vodila (Modbus, Ethernet/IP, PROFINET, Socket, XmlRPC), odzivanje na vhodne signale zunanjih senzorjev, poročanje o stanju robota proizvodnemu PLC-ju ter krmiljenje zunanje opreme, ko se glavni program ustavi.

Logični program ne more uporabljati funkcij, ki neposredno premikajo robotovo roko, spreminjajo obremenitev ali prilagajajo parametre TCP.

Primeri uporabe z logičnim programom

  1. Aktivni odziv na vhodni signal zunanjega senzorja, ko je robot v načinu zaustavitve, kot so zaustavitev zaradi varnostnega mehanizma, zaščitna zaustavitev ali Zaustavitev v sili, in je glavni program začasno ustavljen ali zaustavljen, ali pa še preden se robotova roka vklopi.

  2. Komunikacija prek poljskega vodila (Modbus, Ethernet/IP, PROFINET, Socket, XmlRPC) se ohrani tudi, če je robotova roka izklopljena in program ne teče.

  3. Neprekinjeno delovanje celične logike, medtem ko operater prekine glavni program.

  4. Poročilo o stanju robota, ki se posreduje programski opremi za nadzor proizvodnje (proizvodni PLC).

  5. Nadzorovano zaustavljanje zunanje opreme, kot so varilni aparat, transportni trak, naprava za nanašanje lepila, ko se glavni program ustavi ali zaustavi.

  6. Vnos operaterja se zajame pred zagonom programa.

  7. Prilagojeno obnovitev ob napakah. Operater lahko odloči, kaj bo naredil po nadaljevanju glavnega programa.

  8. Zamenjava zunanjega krmilnika PLC v majhnih robotskih celicah.

Licenca

Program Logic Program zahteva licenco, ki jo je mogoče kupiti prek portala za stranke.

 

Upravljanje logičnega programa

Na strani Program v stranskem meniju izberite Logični program. V razširjenem stranskem meniju so prikazani elementi za navigacijo po različnih delih logičnega programa. Omogoča vam tudi zagon, zaustavitev, ustavitev in ponastavitev programa.

 

Gumb za zagon programa se spremeni v »Zagon programa « ali »Zaustavitev programa«, odvisno od stanja logičnega programa. Deluje kot bližnjica za ukaze za nadzor programa, ki so na voljo v kontekstnem meniju programa Logic.

Štirje indikatorji logičnega programa prikazujejo trenutno stanje programa. Prav tako navajajo, ali je program nastavljen tako, da se samodejno zažene ob zagonu aplikacije.

 

Struktura logičnega programa

Logični program ima enake strukturne dele kot glavni program:

  • Glavno telo programa — teče neprekinjeno, dokler ga ne ustavimo ročno, z ukazom za zaustavitev ali zaradi napake med izvajanjem.
  • Pred zagonom — se izvede enkrat ob zagonu logičnega programa.
  • Moduli — funkcije in niti, organizirani na enak način kot v glavnem programu. Funkcije niti se privzeto izvedejo le enkrat; vklopite možnost zanke, da se nit izvaja neprekinjeno.

Program robota in logični program imata vsak svoj nabor globalnih spremenljivk, neodvisen nabor niti in neodvisen izvedbeni cikel. Zagon, zaustavitev ali napaka v enem programu ne ustavi drugega. Ukaz za zaustavitev ali prekinitev vpliva le na program, v katerem se izvede.

 

 

V razdelku Pred začetkom lahko program izvedete le enkrat.

V razdelku Moduli si lahko ogledate seznam funkcij in niti, ki so na voljo za program.

 

Izmenjava podatkov s programom robota

Glavni način komunikacije med programom robota in logičnim programom poteka prek aplikacijskih spremenljivk . Spremenljivke je mogoče nastaviti in odčitati iz robota in logičnega programa.

Ta primer šteje elemente, ki vstopajo v vhodni pomnilnik robotske celice, in število prikaže robotskemu programu. Števec se še naprej povečuje, tudi ko je robotova roka izklopljena.

 

Prebiranje stanja robota

Stanje robota je na voljo prek vgrajenih spremenljivk RTDE . Te spremenljivke je mogoče prebrati s pomočjo skriptne funkcije get_rtde_value() . Celoten seznam razpoložljivih polj RTDE najdete v Priročniku za RTDE .

Naslednji primer prikazuje, kako preveriti, ali je funkcija »Safeguard Stop« aktivna:


safety_status = get_rtde_value("safety_status")
# preverjanje stanja »Safeguard Stop« in »Automatic Mode Safeguard Stop«
is_safeguard_stop_active = (safety_status == 5 ali safety_status == 12)

 

V naslednjem primeru se preveri, ali je program robota zaustavljen:

is_program_paused = get_rtde_value("runtime_state") == 4

Tudi URScript Control API vključuje to funkcionalnost.

 

Samodejni zagon logičnega programa

Izberete lahko program, ki se bo samodejno zagnal ob zagonu aplikacije. Ko izberete možnost Samodejni zagon , se logični program zažene takoj po zagonu aplikacije.

Logični program lahko zaženete tudi samodejno, ko se vklopi krmilnik robota in se naloži zadnja aplikacija.

Funkcija Autostart deluje ne glede na način delovanja ali stanje robotove roke. Ko se ob zagonu sproži samodejni zagon, obvestilo v obliki snackbara potrdi, da se je logični program zagnal.

 

 

Znak na stranskem pasu ikone programa Logic vedno prikazuje trenutno stanje programa – ali teče ali je ustavljen.

Vaša odgovornost je, da zagotovite varnost logičnega programa, ko je robot vklopljen in ko so naložene različne aplikacije.

Logični programi lahko vklapljajo in izklapljajo zunanjo opremo prek žičnih povezav ali povezav s krmilniki PLC (Modbus, PROFINET, Ethernet/IP, Socket, neposredni izhodi ali drugi vmesniki).

 

Moduli in niti

Funkcionalnost logičnega programa je mogoče organizirati v funkcije. To deluje na enak način kot v programu robota.

Vsako funkcijo je mogoče označiti kot nit. Privzeto se niti izvedejo le enkrat. Označite potrditveno polje Loop pri funkciji niti, da se niti izvajajo neprekinjeno.

 

Deljenje virov

Čeprav se program robota in logični program izvajata neodvisno, vsak s svojim sklopom niti in spremenljivk, si vsi delijo iste strojne vire. To prinaša nekaj omejitev, ki jih mora programer upoštevati:

  • Logični programski niti se izvajajo na istem procesorju kot program robota. Čas izvajanja vseh niti logičnega programa se bo seštel s časom izvajanja vseh niti robotskega programa. V skrajnih primerih lahko to privede do kršitve »Runtime too much behind«.

  • Nekateri komunikacijski viri, kot so signali Modbus ali registri splošnega namena, so skupni viri. Sočasno zapisovanje v isti register bo imelo nepričakovane posledice. Poleg tega se trenutno opazovano delovanje lahko v prihodnosti spremeni, ko bo optimizirana osnovna implementacija.

  • Modbus — Uporablja se en Modbus odjemalec. Signali, ustvarjeni v katerem koli programu, so vidni v obeh.

  • Prilagodljiv adapter Ethernet/IP — Vsak program odpre svoj ročaj za branje ali pisanje v isti instanci. Ročaji ne smejo zapisovati istih podatkovnih polj.

 

Omejitve

  • V logičnem programu je na voljo le del navodil URScript.

  • Kazalniki izvajanja programa in odpravljanje napak na podlagi prekinitvenih točk niso podprti za logični program.

  • Način tolmačenja ni podprt v logičnih programih. Vendar je mogoče način tolmača še vedno zagnati v robotskem programu, medtem ko teče logični program.