Logický program

Popis

Aplikace PolyScope X mohou obsahovat logický program , který běží nepřetržitě na pozadí, nezávisle na hlavním programu robota. Toto je užitečné pro úkoly, které musí pokračovat i v případě, že je rameno vypnuté, hlavní program je pozastaven nebo zastaven, nebo když operátor vstoupil do bezpečnostní zóny.


Mezi typické použití patří udržování komunikace přes sběrnici (Modbus, Ethernet/IP, PROFINET, Socket, XmlRPC), reakce na vstupy z externích senzorů, hlášení stavu robota do výrobního PLC a ovládání externích zařízení při zastavení hlavního programu.

Logický program nemůže používat funkce, které přímo pohybují ramenem robota, mění užitečné zatížení nebo upravují parametry TCP.

Příklady aplikací s logickým programem

  1. Aktivní reakce na vstup z externího senzoru, když je robot v režimu zastavení, jako je například bezpečnostní zastavení, ochranné zastavení nebo Nouzové zastavení, a hlavní program je pozastaven nebo zastaven, nebo před zapnutím ramene robota.

  2. Komunikace přes sběrnici (Modbus, Ethernet/IP, PROFINET, Socket, XmlRPC) je zachována i v případě, že je rameno robota vypnuté a program neběží.

  3. Nepřetržitý provoz logických buněk i v případě, že je hlavní program přerušen operátorem.

  4. Zpráva o stavu robota, která se předává do softwaru pro řízení výroby (výrobní PLC).

  5. Řízené zastavení externích zařízení, jako jsou svařovací stroje, dopravníky nebo dávkovače lepidla, při zastavení nebo pozastavení hlavního programu.

  6. Před spuštěním programu se zaznamenají údaje zadané obsluhou.

  7. Přizpůsobené obnovení v případě poruchových stavů. Operátor může rozhodnout, co se má provést po obnovení hlavního programu.

  8. Výměna externího PLC řadiče v malých robotických buňkách.

Licence

Program Logic vyžaduje licenci, kterou lze zakoupit prostřednictvím zákaznického portálu.

 

Ovládání logického programu

Na stránce Program vyberte v postranním panelu položku Logický program . Rozbalený postranní panel zobrazuje ovládací prvky pro navigaci v různých částech logického programu. Umožňuje také spustit, pozastavit, zastavit a resetovat program.

 

Tlačítko „Spustit program“ se změní na „Spustit program “ nebo „Zastavit program“ v závislosti na stavu logického programu. Funguje jako zkratka pro akce ovládání programu dostupné v kontextovém menu logického programu.

Čtyři indikátory logického programu zobrazují aktuální stav programu. Uvádějí také, zda je program nastaven tak, aby se spouštěl automaticky při načtení aplikace.

 

Struktura logického programu

Logický program má stejné strukturální části jako hlavní program:

  • Hlavní tělo programu — běží nepřetržitě, dokud není zastaveno ručně, příkazem halt nebo v důsledku chyby běhu.
  • Před spuštěním — spustí se jednou při spuštění logického programu.
  • Moduly — funkce a vlákna, uspořádané stejným způsobem jako v hlavním programu. Funkce vlákna se ve výchozím nastavení provádějí pouze jednou; pro nepřetržité provádění vlákna povolte možnost smyčky.

Program robota a logický program mají každý svou vlastní sadu globálních proměnných, nezávislý fond vláken a nezávislý životní cyklus provádění. Spuštění, zastavení nebo selhání jednoho programu nezastaví druhý program. Příkaz zastavení nebo pozastavení má vliv pouze na program, ve kterém je proveden.

 

 

V sekci Před spuštěním můžete program spustit pouze jednou.

V sekci Moduly najdete seznam funkcí a vláken dostupných pro program.

 

Výměna dat s programem robota

Hlavním způsobem komunikace mezi programem robota a logickým programem jsou aplikační proměnné . Proměnné lze v robotickém a logickém programu jak nastavovat, tak z nich číst hodnoty.

Tento příklad počítá položky vstupující do vstupního bufferu robotické buňky a zobrazuje jejich počet v robotickém programu. Počítadlo se nadále zvyšuje i při vypnutém ramenu robota.

 

Čtení stavu robota

Stav robota je k dispozici prostřednictvím vestavěných proměnných RTDE. Tyto proměnné lze načíst pomocí skriptové funkce get_rtde_value() . Úplný seznam dostupných polí RTDE najdete v Příručce RTDE .

Následující příklad ukazuje, jak zkontrolovat, zda je funkce Safeguard Stop aktivní:


safety_status = get_rtde_value("safety_status")
# kontrola stavu bezpečnostního zastavení a automatického režimu bezpečnostního zastavení
is_safeguard_stop_active = (safety_status == 5 or safety_status == 12)

 

Následující příklad ověřuje, zda je program robota pozastaven:

is_program_paused = get_rtde_value("runtime_state") == 4

Tuto funkcionalitu zahrnuje také rozhraní URScript Control API.

 

Automatické spuštění logického programu

Můžete vybrat program, který se spustí automaticky při načtení aplikace. Pokud vyberete možnost Autostart , spustí se logický program ihned po načtení aplikace.

Logický program můžete také spustit automaticky při zapnutí řídicí jednotky robota a načtení poslední aplikace.

Funkce Autostart funguje bez ohledu na provozní režim nebo stav ramene robota. Když se při načtení spustí funkce Autostart, oznámení ve snackbaru potvrdí, že se spustil logický program.

 

 

Štítek na ikoně programu Logic v postranním panelu vždy udává aktuální stav programu – zda je spuštěný, nebo zastavený.

Je vaší odpovědností zajistit, aby byl logický program bezpečný při zapnutí robota a při načítání různých aplikací.

Logické programy mohou aktivovat a deaktivovat externí zařízení pomocí kabelových nebo PLC připojení (Modbus, PROFINET, Ethernet/IP, Socket, přímé výstupy nebo jiná rozhraní).

 

Moduly a vlákna

Funkce logického programu lze uspořádat do funkcí. Funguje to stejným způsobem jako v programu robota.

Každou funkci lze označit jako vlákno . Ve výchozím nastavení se vlákna spouštějí pouze jednou. Zaškrtněte políčko Smyčka u funkce vlákna, aby se vlákno provádělo nepřetržitě.

 

Sdílení zdrojů

Ačkoli se robotický program a logický program provádějí nezávisle na sobě, každý s vlastním fondem vláken a proměnných, sdílejí všechny stejné hardwarové zdroje. To s sebou nese několik omezení, kterých by si programátoři měli být vědomi:

  • Logická vlákna programu se provádějí na stejném procesoru jako program robota. Doba provedení všech logických programových vláken se přičte k době provedení všech programových vláken robota. V extrémních případech to může vést k porušení pravidla „Runtime too much behind“.

  • Některé komunikační zdroje, jako jsou signály Modbus nebo univerzální registry, jsou sdílenými zdroji. Souběžný zápis do stejného registru může mít neočekávané důsledky. Navíc se aktuálně pozorované chování může v budoucnu změnit, až dojde k optimalizaci základní implementace.

  • Modbus — Je sdílen jeden klient Modbus. Signály vytvořené v kterémkoli z programů jsou viditelné v obou.

  • Flexibilní adaptér Ethernet/IP — Každý program otevírá vlastní popisovač pro čtení nebo zápis do stejné instance. Handle nesmí zapisovat do stejných datových polí.

 

Omezení

  • V logickém programu je k dispozici pouze podmnožina příkazů URScript.

  • U logického programu nejsou podporovány indikátory provádění programu ani ladění pomocí zarážek.

  • Režim interpretu není v logických programech podporován. Režim interpretu však lze spustit v programu robota i během běhu logického programu.