KUKA Robot Language

{{other uses|KRL (disambiguation)}}

{{Multiple issues|

{{Notability|1=Products|date=May 2025}}

{{More citations needed|date=May 2025}}

}}

{{Infobox programming language

| name = KUKA Robot Language

| logo =

| caption =

| file_ext =

| paradigm =

| year =

| designer = KUKA

| developer = KUKA

| latest_release_version =

| latest_release_date =

| latest_test_version =

| latest_test_date =

| turing-complete =

| typing =

| implementations =

| dialects =

| influenced_by = Pascal

| influenced =

| operating_system =

| license =

| website =

}}

The KUKA Robot Language, also known as KRL, is a proprietary programming language similar to Pascal and used to control KUKA robots.{{sfn|Braumann|Brell-Cokcan|2011|p=243}}{{sfn|Mühe|Angerer|Hoffmann|Reif|2010|p=1}}

Features

Any KRL code consists of two different files with the same name: a permanent data file, with the extension .dat, and a movement command file, with the extension .src.{{sfn|Braumann|Brell-Cokcan|2011|p=244}}

KRL has four basic data types:{{sfn|Mühe|Angerer|Hoffmann|Reif|2010|p=2}}

class="wikitable"
Data typeKeywordMeaningRange of values
IntegerINTInteger{-2}^{31}-1 ... 2^{31}-1
RealREALFloating-point number\pm{1.1}^{-38} ... \pm{3.4}^{38}
BooleanBOOLLogic stateTRUE, FALSE
CharacterCHARCharacterASCII character

User can also create custom data types using enumeration. Enumeration and basic data types can be used to create arrays and structures.

Motion commands support several types of structures as data formats:

FRAME {X 10, Y 0, Z 500, A 0, B 0, C 0}

POS {X 10, Y 0, Z 500, A 0, B 0, C 0, S 6, T 21}

E3POS {X 10, Y 0, Z 500, A 0, B 0, C 0, S 6, T 21, E1 0, E2 0, E3 0}

E6POS {X 10, Y 0, Z 500, A 0, B 0, C 0, S 6, T 21, E1 0, E2 0, E3 0, E4 0, E5 0, E6 0}

AXIS {A1 0, A2 -90, A3 90, A4 0, A5 0, A6 0}

etc.

Robot joints are A1-A6.

External axis joints are E1-E6.

Frame value is sufficient to specify TCP location and orientation. But to also determine unique robot arm pose, additional info is required - S and T or

Status and Turn. They are collection of flags stored as integer.

See also

References

{{Reflist|2}}

Sources

  • {{cite book |url= http://www.robotsinarchitecture.org/wp-content/uploads/2012/04/ACADIA2011_robarch.pdf |title= Parametric Robot Control. Integrated CAD/CAM for architectural design |last1= Braumann |first1= Johannes |last2= Brell-Cokcan |first2= Sigrid |date= 2011 |website= www.robotsinarchitecture.org |access-date= 14 May 2016 |archive-date= 28 August 2017 |archive-url= https://web.archive.org/web/20170828235219/http://www.robotsinarchitecture.org/wp-content/uploads/2012/04/ACADIA2011_robarch.pdf |url-status= dead }}
  • {{cite arXiv |eprint=1009.5004 |title= On reverse-engineering the KUKA Robot Language |last1= Mühe |first1= Henrik |last2= Angerer |first2= Alwin |last3= Hoffmann |first3= Alwin |last4= Reif |first4= Wolfgang |date= 2010|class= cs.RO }}