Logikkprogram

Beskrivelse

PolyScope X-applikasjoner kan inneholde et logikkprogram som kjører kontinuerlig i bakgrunnen, uavhengig av robotens hovedprogram. Dette er nyttig for oppgaver som må fortsette å kjøre når armen er slått av, hovedprogrammet er satt på pause eller stoppet, eller operatøren har gått inn i et sikkerhetsområde.


Typiske bruksområder inkluderer opprettholdelse av feltbusskommunikasjon (Modbus, Ethernet/IP, PROFINET, Socket, XmlRPC), reaksjon på eksterne sensorinnganger, rapportering av robotens tilstand til en produksjons-PLC og styring av eksternt utstyr når hovedprogrammet stopper.

Logikkprogrammet kan ikke bruke funksjoner som direkte beveger robotarmen, endrer nyttelast eller endrer TCP-parametrene.

Eksempler på anvendelser med logikkprogram

  1. Aktiv respons på ekstern sensorinngang mens roboten er i stoppmodus, for eksempel sikkerhetsstopp, beskyttelsesstopp eller Nødstopp, og hovedprogrammet er satt på pause eller stoppet, eller før robotarmen slås på.

  2. Feltbusskommunikasjon (Modbus, Ethernet/IP, PROFINET, Socket, XmlRPC) opprettholdes selv om robotarmen er slått av og programmet ikke kjører.

  3. Kontinuerlig drift av cellelogikken mens hovedprogrammet avbrytes av operatøren.

  4. Robotstatusrapport, som overføres til produksjonsstyringsprogramvaren (produksjons-PLC).

  5. Kontrollert stopp av eksternt utstyr, for eksempel sveisemaskin, transportbånd og limdispenser, når hovedprogrammet stopper eller settes på pause.

  6. Inndata fra operatøren registreres før programmet startes.

  7. Tilpasset gjenoppretting ved feiltilstander. Operatøren kan bestemme hva som skal gjøres etter at hovedprogrammet er gjenopptatt.

  8. Utskifting av ekstern PLC-kontroller i små robotceller.

Lisens

Logic Program krever en lisens, som kan kjøpes via kundeportalen.

 

Styring av logikkprogrammet

På Program-siden velger du Logikkprogram i sidepanelet. Den utvidede sidepanelen viser kontrollene for å navigere mellom de ulike delene av logikkprogrammet. Det lar deg også starte, pause, stoppe og tilbakestille programmet.

 

Knappen for å kjøre programmet endres til enten Kjør program eller Stopp program, avhengig av statusen til logikkprogrammet. Dette fungerer som en snarvei til programstyringshandlinger som er tilgjengelige i hurtigmenyen for logikkprogrammet.

De fire indikatorene for logikkprogrammet viser programmets nåværende tilstand. De angir også om programmet er konfigurert til å starte automatisk når et program lastes inn.

 

Logisk programstruktur

Et logikkprogram har de samme strukturelle delene som et hovedprogram:

  • Hovedprogrammet — kjører kontinuerlig inntil det stoppes manuelt, med en halt-instruksjon eller ved en kjørefeil.
  • Før start — kjøres én gang når logikkprogrammet starter.
  • Moduler — funksjoner og tråder, organisert på samme måte som i hovedprogrammet. Trådfunksjoner utføres som standard bare én gang; aktiver loop-alternativet for å kjøre en tråd kontinuerlig.

Robotprogrammet og logikkprogrammet har hver sitt sett med globale variabler, uavhengig trådpool og uavhengig utførelseslivssyklus. Å starte, stoppe eller avbryte ett program påvirker ikke det andre. En stopp- eller pause- kommando påvirker kun det programmet den utføres i.

 

 

I delen Før start kan du kun kjøre programmet én gang.

I delen Moduler kan du se listen over funksjoner og tråder som er tilgjengelige for programmet.

 

Datautveksling med robotprogrammet

Den viktigste måten å kommunisere mellom robotprogrammet og logikkprogrammet på er gjennom applikasjonsvariabler . Variabler kan både settes og leses fra roboten og logikkprogrammet.

Dette eksemplet teller elementer som kommer inn i robotcellens inngangsbuffer og viser antallet til robotprogrammet. Telleren fortsetter å øke selv når robotarmen er slått av.

 

Avlesning av robotens status

Robotens tilstand er tilgjengelig via innebygde RTDE-variabler . Disse variablene kan leses ved hjelp av skriptfunksjonen get_rtde_value() . For en fullstendig liste over tilgjengelige RTDE-felt, se RTDE-veiledningen .

Følgende eksempel viser hvordan du sjekker om Safeguard Stop er aktivt:


safety_status = get_rtde_value("safety_status")
# sjekk for sikkerhetsstopp og sikkerhetsstopp
i automatisk modus  is_safeguard_stop_active = (safety_status == 5 or safety_status == 12)

 

Følgende eksempel sjekker om robotprogrammet er satt på pause:

is_program_paused = get_rtde_value("runtime_state") == 4

URScript Control API omslutter også denne funksjonaliteten.

 

Automatisk start av logikkprogram

Du kan velge et program som skal startes automatisk når et program lastes inn. Når du velger alternativet Autostart , starter logikkprogrammet umiddelbart etter at applikasjonen er lastet inn.

Du kan også starte logikkprogrammet automatisk når robotkontrolleren slås på og den siste applikasjonen er lastet inn.

Autostart-funksjonen fungerer uavhengig av driftsmodus eller robotarmens status. Når Autostart utløses ved oppstart, bekrefter en snackbar-melding at logikkprogrammet har startet.

 

 

Ikonet i sidepanelet på Logic Program-ikonet viser alltid programmets nåværende tilstand, enten det kjører eller er stoppet.

Det er ditt ansvar å sikre at logikkprogrammet er sikkert når roboten er slått på og når ulike applikasjoner lastes inn.

Logikkprogrammer kan aktivere og deaktivere eksternt utstyr ved hjelp av kablet tilkobling eller PLC-tilkoblinger (Modbus, PROFINET, Ethernet/IP, Socket, direkte utganger eller andre grensesnitt).

 

Moduler og tråder

Funksjonaliteten i Logic Program kan organiseres i funksjoner. Dette fungerer på samme måte som i robotprogrammet.

Hver funksjon kan merkes som en tråd . Som standard kjøres trådene bare én gang. Merk av for Loop i trådfunksjonen for å kjøre tråden kontinuerlig.

 

Deling av ressurser

Selv om robotprogrammet og logikkprogrammet kjøres uavhengig av hverandre, med hver sin egen pool av tråder og variabler, deler de alle de samme maskinvareressursene. Dette medfører noen få begrensninger som programmerere bør være oppmerksomme på:

  • Logiske programtråder kjøres på samme CPU som robotprogrammet. Kjøretiden for alle logikkprogramtråder vil legges til kjøretiden for alle robotprogramtråder. I ekstreme tilfeller kan dette føre til feilmeldingen «Runtime too much behind».

  • Noen kommunikasjonsressurser, som Modbus-signaler eller allmenne registre, er delte ressurser. Skriving til samme register samtidig vil gi uventede resultater. Videre kan den oppførselen som observeres i dag endres i fremtiden når den underliggende implementeringen optimaliseres.

  • Modbus — Én Modbus-klient deles. Signaler som opprettes i ett av programmene, vises i begge.

  • Fleksibel Ethernet/IP-adapter — Hvert program åpner sitt eget lese- eller skrivehåndtak til den samme instansen. Håndtakene må ikke skrive til de samme datafeltene.

 

Begrensninger

  • Bare en del av URScript-kommandoene er tilgjengelige i logikkprogrammet.

  • Indikatorer for programutførelse og feilsøking basert på stoppunkter støttes ikke for logikkprogrammet.

  • Tolkemodus støttes ikke i logikkprogrammer. Tolkemodus kan imidlertid fortsatt startes i robotprogrammet mens logikkprogrammet kjører.