Gustavo Vasconcelos Arnold Automatization of the Code

Gustavo Vasconcelos Arnold Automatization of the Code

Automatization of the Code Generation for Gustavo Vasconcelos Arnold Different Industrial Robots Escola deEngenharia Gust Univer Dif Automatization oft Novembro de2007 ferent Indus a v o V sidade doMinho asconcelos Ar trial R he CodeGenerationfor nold obo ts Universidade do Minho Escola de Engenharia Gustavo Vasconcelos Arnold Automatization of the Code Generation for Different Industrial Robots Tese de Doutoramento em Informática Área de Especialização: Compiladores, Geração de Código e Robótica Industrial Trabalho efectuado sob a orientação do Professor Doutor Pedro Rangel Henriques e do Professor Doutor Jaime Cruz Fonseca Novembro de 2007 É AUTORIZADA A REPRODUÇÃO PARCIAL DESTA TESE, APENAS PARA EFEITOS DE INVESTIGAÇÃO, MEDIANTE DECLARAÇÃO ESCRITA DO INTERESSADO, QUE A TAL SE COMPROMETE. Abstract This document presents GIRo (Grafcet - Industrial Robots), that is a generic environment for programming industrial robots off-line, that includes: a truly high-level and declarative language (Grafcet); an easy-to-use front-end (Paintgraf); an intermediate representation (InteRGIRo); the translators from Paintgraf to InteRGIRo; the generic compiler, that translates InteRGIRo to the robot target code; and the editor for the robot language inputs (to obtain the necessary information about the robot target language, to allow the generation of code to such robot). GIRo focus on the modelling of the system, based on the Grafcet specification diagram, rather than on the robot details, improving the programming and maintenance tasks, allowing the reuse of source code, once this source code will be machine independent. GIRo also allows the programmer to write programs in the robot language, if he is familiarized with the robot commands. With GIRo: – the user can program robots in a high or low level; – the portability for the source code is granted; – the reuse of source code for different robots is allowed; – the programming and maintaining tasks are facilitated. GIRo is easy-to-use. So, GIRo is "giro1"! 1Portuguese (Portugal) slang that means cool. ii Resumo Este documento apresenta um ambiente genérico de desenvolvimento de programas off-line para robôs industriais chamado GIRo (Grafcet - Industrial Robots). GIRo contém com os seguintes componentes: uma linguagem declarativa e de alto-nível (Grafcet); um front-end amigável (Paintgraf); uma representação intermédia (InteRGIRo); os tradutores para a InteRGIRo, a partir do diagrama Grafcet desenhado no Paintgraf; um compilador genérico de codígo que traduz a InteRGIRo para a linguagem de programação do robô destino; e um editor, utilizado para juntar as características e instruções da linguagem de programação do robô destino, a fim de permitir a geração de código para este robô. GIRo foca na modelação do sistema, baseado no diagrama de especificação de automa tismos Grafcet, ao invés das características físicas do robô. Desta forma, melhora-se as tarefas de desenvolvimento e manutenção de programas, uma vez que é permitido a reuti lização de código fonte, já que este é independente de plataforma. Giro também permite que o programador escreva os seus programas na linguagem do robô, caso o mesmo esteja familiarizado com os seus comandos. Com o GIRo: – a programação de robôs pode ser feita em alto nível (Grafcet) ou em baixo nível (linguagem do robô); – a portabilidade do código fonte é garantida; – a reutilização do codigo fonte para robôs diversos é permitido; – as tarefas de programação e manutenção são facilitadas. GIRo é fácil de utilizar. GIRo é "giro"! iv Agradecimentos Primeiramente, gostaria de agradecer a minha família (pais, irmãos e demais parentes) por todo incentivo, dedicação, suporte e conquistas. Sempre foram um porto seguro em minhas empreitadas e continuam sendo em mais uma, que está começando agora: o início de uma vida nova, com minha esposa e filhas, num país por nós desconhecido e atraente, o Canadá. À minha esposa e filhas, por todo amor, carinho e alegria, além da paciência e com preensão durante a fase final deste doutoramento. Aos meus orientadores, professores Pedro Rangel Henriques e Jaime Cruz Fonseca, por todo apoio, incentivo, sugestões, revisões, amizade, companheirismo, e obviamente, orientações, tanto locais como à distância. Mesmo quando foi preciso voltar para o Brasil, não deixaram de acreditar em mim e de me apoiar e incentivar. Ao SBLP’97 (Simpósio Brasileiro de Linguagens de Programação de 1997, em Campinas - SP), ponto de partida de conversas, amizades e projetos, tendo sido este evento o berço de muitos trabalhos de mestrado e doutorado de vários brasileiros. Foi lá que conheci José Carlos Ramalho, professor da Universidade do Minho, onde trocamos idéias e iniciamos contatos para projetos futuros. E quantos projetos tiveram origem a partir deste encontro! Aos amigos baianos e companheiros de apartamento Alfrânio (antigo colega de tra balho), Fábio e Tiago (ex-alunos), por todo apoio, incentivo e amizade, surgidos nos bons tempos que passei em Braga. Aos amigos brasileiros e portugueses que tive o prazer de conhecer e que tornaram muito agradáveis os momentos vividos em Portugal. Aos treinadores e amigos Nuno Reininho e Francisco Costa, por terem apostado e aprimorado as "habilidades" esportivas de um "atleta" de mais de 30 anos, e principalmente por terem ajudado a realizar um sonho adolescente: o de representar a minha instituição em eventos esportivos nacionais. Às funcionárias da secretaria (Cristina, Goretti, Helena e Paula) por todo auxílio, presteza e rapidez na resolução de quaisquer problemas. À equipe técnica (Aragão, Carla, Jaime, João, e Jorge Faria), por todo suporte e apoio técnico no uso de softwares, no acesso a internet e na manutenção de equipamentos, inclusive os pessoais. Ao DI (Departamento de Informática) e à UM (Universidade do Minho), pela estrutura fornecida, pelo apoio material e pelo auxílio para participação em eventos nacionais e internacionais. À FCT, pelo suporte financeiro imprescindível para a realização deste trabalho. v vi Contents 1 Introduction 1 1.1 Motivation . 2 1.2 Objectives and Proposal . 3 1.3 Contribution . 5 1.4 Thesis Organization . 6 2 Industrial Robots Programming 9 2.1 What is a robot? . 9 2.2 Some Robot Terms . 9 2.3 Industrial Robot Programming . 15 2.4 Industrial Robots Programming X Computer Programming . 16 2.5 Limitations of Industrial Robots Programming . 17 2.5.1 Industrial Robots Programming Languages Drawbacks . 19 2.5.2 Off-Line Programming Environments Drawbacks . 19 2.5.3 Some Principles and Criteria . 19 2.6 Chapter’s Considerations . 20 3 Industrial Robots Programming Languages 21 3.1 Industrial Robot Language Classification . 21 3.1.1 Joint-Control Languages . 21 3.1.2 Primitive Motion Languages . 22 3.1.3 Structured Programming Languages . 22 3.1.4 Task-Oriented Languages . 22 3.2 Standardization of Robot Programming Languages . 23 3.3 Industrial Robot Programming Languages: Examples . 24 3.3.1 VAL . 24 3.3.2 Melfa Basic III . 26 3.3.3 VAL II . 28 3.3.4 NACHI SC15F Robot Programming Language . 30 3.3.5 Rapid . 32 vii viii Contents 3.4 Chapter’s Considerations . 33 4 Programming Environments and Some Existing Solutions 35 4.1 Modelling Techniques . 36 4.2 Declarative Languages . 37 4.3 General Purpose Programming Languages . 40 4.3.1 Similar Computer Strategies . 42 4.4 Off-Line Programming Environments . 45 4.4.1 Workspace . 45 4.4.2 RobotStudio . 46 4.4.3 COSIMIR . 46 4.4.4 Others . 47 4.5 Robot Control Systems . 49 4.5.1 MRROC++ Framework . 50 4.5.2 Universal Robot Controller . 50 4.6 Chapter’s Considerations . 51 5 Front-End 53 5.1 RS Language . 54 5.1.1 Structure and operation . 54 5.1.2 Simple example . 55 5.1.3 Output from the RS Compiler . 56 5.2 Programming Robots Using RS Language . 57 5.3 RS Case Studies . 57 5.3.1 RS Program Example that Controls an Industrial Robot . 58 5.4 Grafcet . 59 5.5 Standard Grafcet . 60 5.5.1 Steps . 60 5.5.2 Transitions . 61 5.5.3 Alternative and Simultaneous Sequences . 61 5.5.4 Evolution Rules . 62 5.6 Why to Use Grafcet instead of RS Language? . 63 5.7 Chapter’s Considerations . 64 6 Intermediate Representation 65 6.1 Some Existing Intermediate Representations . 65 6.1.1 Three Address Code (TAC) . 65 6.1.2 Register Transfer Language (RTL) . 66 6.1.3 GNU Compiler Collection (GCC) . 66 6.1.4 RTL System . 68 Contents ix 6.1.5 DIR . 69 6.1.6 Java Bytecode . 69 6.1.7 .NET CIL . 70 6.1.8 ANSI C Language . 72 6.2 Why to Create Another Intermediate Representation? . 72 6.3 InteRGIRo . 73 6.3.1 Basic Idea . 73 6.3.2 Data Types . 74 6.3.3 Identifiers . 75 6.3.4 Expressions . 77 6.3.5 Instructions . 78 6.3.6 Grammar . 80 6.3.7 InteRGIRo Program Examples . 80 6.3.8 InteRGIRo X Three Address Code Representation . 81 6.3.9 InteRGIRo X Gimple and Simple . 82 6.3.10 Why "High-Level" Intermediate Representation? . 82 6.4 Chapter’s Considerations . 82 7 Automatization of the Code Generation 85 7.1 Code Generation Approaches . 85 7.2 Automatic Generation of Code Generators . 86 7.3 Generic Translator . 87 7.3.1 General Grammar . 88 7.3.2 Robot Language Inputs . 89 7.3.3 Some Functionalities . 100 7.3.4 Basic Algorithm for Treating Each Instruction . 101 7.3.5 Generic Compiler: InteRGIRo -> any Industrial Robot Language . 101 7.3.6 Error Handling . 105 7.4 Chapter’s Considerations . 107 8 Our Solution:.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    278 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us