Logikai program

Leírás

A PolyScope X alkalmazások tartalmazhatnak egy logikai programot , amely a háttérben folyamatosan fut, függetlenül a robot fő programjától. Ez olyan feladatok esetén hasznos, amelyeknek tovább kell futniuk, amikor a kar áramellátása kikapcsol, a főprogram szünetel vagy leáll, vagy a kezelő belépett egy biztonsági területre.


A tipikus felhasználási területek közé tartozik a terepi busz kommunikáció fenntartása (Modbus, Ethernet/IP, PROFINET, Socket, XmlRPC), a külső érzékelői bemenetekre való reagálás, a robot állapotának jelentése a gyártási PLC-nek, valamint a külső berendezések vezérlése a főprogram leállásakor.

A logikai program nem használhat olyan függvényeket, amelyek közvetlenül mozgatják a robotkart, megváltoztatják a hasznos tehert vagy módosítják a TCP-paramétereket.

Példák a Logic Programmal megvalósított alkalmazásokra

  1. Aktív reakció a külső érzékelő bemeneti jelére, amikor a robot leállási módban van (például biztonsági leállás, védő leállítás vagy Vészleállítás), és a főprogram szünetel vagy leállt, illetve mielőtt a robotkar bekapcsolódna.

  2. A Fieldbus-kommunikáció (Modbus, Ethernet/IP, PROFINET, Socket, XmlRPC) akkor is fennmarad, ha a robotkar áramellátása kikapcsolva van és a program nem fut.

  3. Folyamatos cellalogikai működés, miközben a főprogramot a kezelő megszakítja.

  4. Robotállapot-jelentés, amelyet a gyártásirányító szoftvernek (gyártási PLC) továbbítanak.

  5. Külső berendezések, például hegesztőgép, szállítószalag, ragasztóadagoló vezérelt leállítása, amikor a főprogram leáll vagy szünetel.

  6. A program elindítása előtt rögzítik a kezelő által megadott adatokat.

  7. Hibás állapotok esetén testreszabott helyreállítás. A kezelő eldöntheti, hogy mit szeretne tenni a főprogram folytatását követően.

  8. Külső PLC-vezérlő cseréje kis robotcellákban.

Licenc

A Logic Program használatához licenc szükséges, amely az ügyfélportálon keresztül vásárolható meg.

 

A logikai program vezérlése

A Program oldalon válassza ki az oldalsávon a Logikai program elemet. A kibontott oldalsáv a logikai program különböző részei közötti navigációhoz szükséges vezérlőelemeket jeleníti meg. Lehetővé teszi továbbá a program elindítását, szüneteltetését, leállítását és visszaállítását.

 

A „Program futtatása” gomb felirata a logikai program állapotától függően „Program futtatása ” vagy „Program leállítása” feliratra változik. A Logic Program helyi menüben elérhető programvezérlési műveletek gyorsbillentyűjeként szolgál.

A négy logikai programjelző a program aktuális állapotát mutatja. Ezek azt is jelzik, hogy a program be van-e állítva úgy, hogy automatikusan elinduljon egy alkalmazás betöltésekor.

 

Logikai program felépítése

A logikai program ugyanazokból a szerkezeti szakaszokból áll, mint a főprogram:

  • A program főtestje — folyamatosan fut, amíg manuálisan, egy halt utasítással vagy futási hibával le nem állítják.
  • Indítás előtt — egyszer fut le, amikor a logikai program elindul.
  • Modulok — függvények és szálak, ugyanolyan felépítésben, mint a főprogramban. A szálak funkciói alapértelmezés szerint csak egyszer futnak le; a szál folyamatos futtatásához engedélyezze a hurok opciót.

A robotprogramnak és a logikai programnak mindegyikének megvan a saját globális változókészlete, független szálkészlete és független végrehajtási életciklusa. Egy program elindítása, leállítása vagy meghibásodása nem állítja le a másikat. A leállítás vagy szüneteltetés utasítás csak arra a programra hat, amelyben végrehajtásra kerül.

 

 

A Kezdés előtt szakaszban a programot csak egyszer futtathatja.

A Modulok szakaszban megtekintheti a program számára elérhető funkciók és szálak listáját.

 

Adatcsere a robotprogrammal

A robotprogram és a logikai program közötti kommunikáció elsődleges módja az alkalmazási változók használata. A változók beállíthatók és kiolvashatók a robotból és a logikai programból egyaránt.

Ez a példa megszámolja a robotcellába belépő elemeket, és a számot megjeleníti a robotprogramban. A számláló akkor is tovább növekszik, ha a robotkar áramellátása ki van kapcsolva.

 

A robot állapotának leolvasása

A robot állapota a beépített RTDE változók segítségével érhető el. Ezeket a változókat a get_rtde_value() parancsfájl segítségével lehet kiolvasni. A rendelkezésre álló RTDE-mezők teljes listáját az RTDE-útmutatóban találja.

Az alábbi példa bemutatja, hogyan lehet ellenőrizni, hogy a Safeguard Stop funkció aktív-e:


safety_status = get_rtde_value("safety_status")
# a biztonsági leállás és az
automatikus üzemmód ellenőrzése  is_safeguard_stop_active = (safety_status == 5 or safety_status == 12)

 

Az alábbi példa ellenőrzi, hogy a robotprogram szünetel-e:

is_program_paused = get_rtde_value("runtime_state") == 4

Az URScript Control API szintén magában foglalja ezt a funkciót.

 

A logikai program automatikus elindítása

Kiválaszthat egy programot, amely az alkalmazás betöltésekor automatikusan elindul. Ha az Autostart opciót választja, a logikai program az alkalmazás betöltése után azonnal elindul.

A logikai programot automatikusan elindíthatja akkor is, amikor a robotvezérlő bekapcsol, és az utolsó alkalmazás betöltődik.

Az Autostart funkció az üzemmódtól és a robotkar állapotától függetlenül működik. Amikor a betöltéskor az Autostart funkció elindul, egy snackbar értesítés jelzi, hogy a logikai program elindult.

 

 

A Logic Program ikon oldalsávján található jelvény mindig jelzi a program aktuális állapotát, függetlenül attól, hogy fut-e vagy le van-e állítva.

Az Ön felelőssége annak biztosítása, hogy a logikai program biztonságos legyen, amikor a robot be van kapcsolva, és amikor különböző alkalmazások vannak betöltve.

A logikai programok vezetékes vagy PLC-kapcsolatok (Modbus, PROFINET, Ethernet/IP, Socket, közvetlen kimenetek vagy egyéb interfészek) segítségével aktiválhatják és deaktiválhatják a külső berendezéseket.

 

Modulok és szálak

A logikai program funkciói funkciókba szervezhetők. Ez ugyanúgy működik, mint a robotprogramban.

Minden függvényt szálként lehet megjelölni. Alapértelmezés szerint a szálak csak egyszer futnak le. Jelölje be a Loop jelölőnégyzetet a szálfunkciónál a szál folyamatos futtatásához.

 

Erőforrások megosztása

Bár a robotprogram és a logikai program egymástól függetlenül futnak, mindegyik a saját szál- és változókészletével, mindkettő ugyanazokat a hardveres erőforrásokat használja. Ez néhány korlátozást jelent, amelyekkel a programozónak tisztában kell lennie:

  • A logikai program szálak a robotprogrammal azonos CPU-n futnak. Az összes logikai programszál futási ideje hozzáadódik az összes robotprogram-szál futási idejéhez. Ez szélsőséges esetekben „Runtime too much behind” hibához vezethet.

  • Egyes kommunikációs erőforrások, például a Modbus-jelek vagy az általános célú regiszterek, megosztott erőforrások. Ha egyszerre írnak ugyanabba a regiszterbe, az váratlan eredményeket okozhat. Ezenkívül a jelenleg megfigyelt viselkedés a jövőben változhat, ha az alapul szolgáló megvalósítást optimalizálják.

  • Modbus — Egy Modbus-kliens van megosztva. A bármelyik programban létrehozott jelek mindkét programban láthatók.

  • Ethernet/IP rugalmas adapter — Minden program saját olvasó- vagy írókezelőt nyit meg ugyanazon példányhoz. A kezelők nem írhatnak ugyanazokat az adatmezőket.

 

Korlátozások

  • A logikai programban az URScript utasítások csak egy része érhető el.

  • A logikai program esetében a programvégrehajtási jelzők és a töréspont-alapú hibakeresés nem támogatott.

  • A Logic Programs programban az Interpreter mód nem támogatott. A logikai program futása közben azonban a robotprogramban továbbra is elindítható az értelmező mód.