PRINCIPAIS MÉTODOS DE REPRESENTAÇÃO DE UM ALGORITMO



Documentos relacionados
Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

Tutorial de Matlab Francesco Franco

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Introdução à Lógica de Programação

Roteiro 2: (Planilhas Eletrônicas) - Função procv / manipulação de formulários

OPERADORES E ESTRUTURAS DE CONTROLE

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

1.6. Tratamento de Exceções

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Orientação a Objetos

Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos.

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

2 echo "PHP e outros.";

Princípios de Análise e Projeto de Sistemas com UML

Java. Marcio de Carvalho Victorino

A01 Controle Linguagens: IL e LD

15 Computador, projeto e manufatura

Funções de Posicionamento para Controle de Eixos

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Braço robótico para educação técnica. Manual do usuário. RCS - XBot Software de Controle Robótico

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Programação Estruturada Linguagem C

Simulador do Processador Neander T&D-Bench Simulator Manual do Usuário. por Júlio César Maccali. revisado por Prof. Christian Zambenedetti

04/09/2015. Sistemas de Informações Gerenciais Prof. Dr. William Costa Rodrigues. Copyright 2015, William Costa Rodrigues

Engenharia de Requisitos Estudo de Caso

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

App Inventor 2 - programação divertida para Android

GUIA INTEGRA SERVICES E STATUS MONITOR

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

A4 Projeto Integrador e Lista de Jogos

Dadas a base e a altura de um triangulo, determinar sua área.

FLUXO DE CAIXA: Módulo BI (Business Intelligence)

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Trabalho Interdisciplinar. MS Project

Capture Pro Software. Guia de referência. A-61640_pt-br

Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

UNIDADE 6 - PROGRAMAÇÃO MODULAR

Curso de Iniciação ao Access Basic (I) CONTEÚDOS

ARQUITETURA DE COMPUTADORES

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

EMENTA DO CURSO. Tópicos:

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

Word 1 - Introdução Principais recursos do word A janela de documento Tela principal

GUIA RÁPIDO DE INSTALÇÃO

Programação Básica em Arduino Aula 2

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

PROCEDIMENTO PARA REPASSAR BACKUP s EM CNC s FAGOR 8035 / 8055 ATRAVÉS DO SOFTWARE FAGOR WINDNC. REVISÃO 2.0

Feature-Driven Development

Industrial SOLUÇÕES EM AUTOMAÇÃO

Algoritmos com VisuAlg

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

Diagrama de entidades relacionamentos (abordado anteriormente) Diagrama de Fluxo de Dados (DFD)

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Aluísio Eustáquio da Silva

CONVENÇÃO DE CÓDIGO JAVA

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

TÍTULO: PROGRAMAÇÃO DE CLP PARA UMA MÁQUINA DE SECÇÃO SEGMENTOS ORGÂNICOS

Restauração do Exchange Server.

Manual de Instalação e Utilização

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Sistemas Distribuídos

Resolução de problemas e desenvolvimento de algoritmos

Guia de Atualização TOTVS Segurança e Acesso 12.1

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Sistemas Operacionais Gerência de Dispositivos

3. O NIVEL DA LINGUAGEM DE MONTAGEM

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

1 - INTRODUÇÃO AO AutoCAD 2011

Busca. Pesquisa sequencial

Manual do usuário. Mobile Auto Download

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Gestão Comercial GUIA RÁPIDO DE INSTALAÇÃO DO ORYON.

Descrição do Produto. Altus S. A. 1

AULA 1 Iniciando o uso do TerraView

Placa Acessório Modem Impacta

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

REPRESENTAÇÃO DE PROCESSOS: FLUXOGRAMA

IW10. Rev.: 02. Especificações Técnicas

MANUAL DO USUÁRIO. AssetView FDT. AssetView FDT

COMO OTIMIZAR A SUA PLANILHA ATRAVÉS DA GRAVAÇÃO DE UMA MACRO EM EXCEL

Geral: Manual de Utilização do Software de Teste Gradual Windows

SIMULADO Windows 7 Parte V

Dispositivos de Entrada e Saída

Microsoft Office PowerPoint 2007

Transcrição:

PRINCIPAIS MÉTODOS DE REPRESENTAÇÃO DE UM ALGORITMO Fluxograma e diagrama de blocos Representação gráfica do processo, ou seja, das instruções e ou módulos do processamento, que compõem o algoritmo e que também é conhecido como diagrama de blocos. No planejamento o generalista ou desenhista de sistema tem uma poderosa ferramenta de representação gráfica que possibilita: a) Rápida análise durante o processo de planejamento e construção do sistema. b) Identificação das atividades críticas para cada um dos processos. c) Identificação dos subsistemas e suas ligações que permitem a interdependência. d) Conhecimento da seqüência encadeada das atividades dando uma visão de luxo do processo. e) Documentação do processo para análises futuras, adequação a normas e certificações e esclarecimento sobre o funcionamento para novos colaboradores no sistema. SIMBOLO SIGNIFICADO Operação / execuções / procedimentos Ponto de decisão Sentido do fluxo A Conexão Limites (início, pare, fim) Entrada de dados, operação manual. Sub rotina, processo pré-definido Obs.: No padrão ANSI existem mais de 30 símbolos diferentes que tratam de tipos de arquivos acessados tipos de saída de dados e diferentes processos, os símbolos acima são os usualmente utilizando em implementações que envolvem dinâmica e seus respectivos processamentos. 1

Exemplo: Algoritmo numérico para a geração de trajetória, sua tarefa é de calcular a trajetória de um elemento terminal de um robô siga entre dois pontos possibilitando, por exemplo, que uma parte da trajetória seja linear outra seja circular. 1 Início J Parâmetros iniciais J + K = 1, n =1 Escolha da diretriz 3 = J + + = + Abrir a garra = li > = li Divisão do segmento em m partes 2 < Armazenamento n = n + 1 Cálculo de = li > 3 Cálculo de erro de posição e orientação 2 < e : e max =< k : seg garra garra > > 1 Fim =< k = k + 1 3 O algoritmo numérico acima utiliza-se de conceitos de inversão de Matriz JACOBIANA pelo método de eliminação de Gauss este e outros conceitos serão tratados futuramente, agora nos concentremos no fluxo de dados e na estrutura de dados. 2

Diagrama de blocos Indica as atividades realizadas sem diferenciá-las por tipo. Visualização rápida do processo. Desenho horizontal ou vertical Utiliza frases curtas que identifiquem as atividades realizadas. Ideal para a representação de malhas de controle. Observações 1 - o uso de abreviaturas e siglas deve ser evitado. 2 - o tamanho dos retângulos para cada órgão pode variar conforme o nível de hierarquia. 3 - podem-se variar cores, com fins de destacar determinado órgão da estrutura. Exemplo Diagrama de bloco de controle de um robô em malha aberta. Diagrama de blocos de controle de um robô em malha fechada. 3

Programação de robôs industriais Métodos de programação Aprendizagem ponto a ponto Movimentação angular das juntas Movimentação cartesiana (modelo cinemático) Reorientação de ferramenta Aprendizagem direta método indicado a tarefas de em ambientes não insalubres, cuja a mecânica dos robôs é leve e seus movimentos são reversíveis. Consiste em um operador que guia o robô por seu órgão terminal enquanto sensores de posição registram os pontos e a posição das juntas. Programação off-line Software de simulação e visualização gráfica do modelo geométrico do manipulador. Aprendizagem por simulação física: Método adequado a controle que exijam o uso de controle remoto e para robô de grande porte com estrutura mecânica não reversível. Semelhante ao método de aprendizagem direta, no entanto, aplicada em um simulador que representa o robô e a área de trabalho com precisão. Programação on-line Implementação de algoritmos para modelagem cinemática á partir do modelo geométrico do robô e das características da trajetória desejada. Aprendizagem por telecomando: Adequado a todos os tipos de robôs. Seu comando é realizado através de um dispositivo de telecomando (Teach-in-Pendant ou FlexPendant) ferramenta que permite mover cada uma das juntas isoladamente ou em conjunto através da orientação da garra. PLANEJAMENTO DO PROGRAMA Nos processos de automação é necessários que o desenvolvedor do projeto esteja atento a algumas premissas fundamentais. 1 - Conhecer o processo a ser automatizado. 2 - Conhecer as variáveis de controle. 3 - Representar a seqüência lógica do processo. 4 - Garantir a segurança do usuário do sistema e dos elementos físicos pertencentes ao projeto. 5 - Definir nomes. (Rotinas, I/O, rótulos de sub-rotinas etc.) 4

MÉTODOS DE PROGRAMAÇÃO DE ROBÔS INDUSTRIAIS A programação de um robô consiste no seqüenciamento de tarefas a serem realizadas por um por ele, tal seqüenciamento pode ser separado em três métodos clássicos: a) Aprendizagem direta (walk through): Método em que robô é guiado pelo operador pelo órgão terminal. Enquanto o sistema copia o posicionamento das juntas através de sensores. b) Aprendizagem por simulação física: Método em que o operador guia um simulador físico que simula a geometria com sensoriamento que registra a movimentação do modelo permitindo a gravação e transmissão para o robô que realizará o trabalho. c) Aprendizagem por telecomando: Programação através de uma interface física (flexpendant, Teach-pendant, etc) que é utilizando na movimentação das juntas e da flange em conjunto ou separadamente.. Método de aprendizagem Teaching Característica da programação em off-line a programação de aprendizagem permite ao operador elaborar o programa e implementá-lo através da interface física (flex-pendant), Método de aprendizagem Point to point (PTP) Processo de aprendizagem que consiste na movimentação das juntas a partir de determinada posição até onde é gravada a posição, adequado à programação que não requer rigidez no controle da trajetória, mas somente o posicionamento final do robô. Programação de posicionamento de orientação/ferramenta - Controlled path (CP) Controle das juntas através da cinemática inversa, que permite um controle de movimentação previsível, adequado à programação que requer rigidez no controle da trajetória. Programação por aprendizagem direta. Programação realizada através da gravação dos pontos obtidos da movimentação manual do robô. Programação Mestre-Escravo Master-Slave Movimentação do sistema mestre que é repetido pelo sistema robótico escravo. 5

LINGUAGENS DE PROGRAMAÇÃO As linguagens de programação podem ser classificadas como: Nível de junta: requer a programação individual de cada junta do robô. Nível de manipulador: o sistema automatizado obtém o modelo geométrico inverso do robô e a posição de cada uma das juntas, a partir da posição e orientação do órgão terminal fornecidas pelo operador. Nível de objeto: basta ao operador informar a posição final do objeto que se encontra no volume de trabalho. Nível de objetivo: programação detalhada das tarefa a serem realizados pelo robô dadas pelo operador. CARACTERISTICAS LINGUISTICAS Apesar de uma raiz comum todas as linguagens de programação estão intimamente ligadas aos fabricantes de robôs e possuem características que consistem do desenvolvimento proprietário, ou seja, cada fabricante desenvolve sua própria linguagem, para seus respectivos equipamentos. Segue abaixo uma tabela com os principais fabricantes e as linguagens desenvolvidos por eles. 6

LINGUAGEM DE PROGRAMAÇÃO Introdução a linguagem RAPID Os programas em geral consistem em um conjunto de instruções lógicas que descrevem uma rotina a ser realizada, na robótica temos diferentes linguagens de programação clamadas de proprietárias, ou seja, linguagens de programação dedicadas a produtos específicos ou arquitetadas por determinadas indústrias para seus equipamentos. Estrutura da linguagem Um programa consistem em um conjunto de instruções lógico que podem ser implementadas em uma linguagem e interpretadas por um controlador. Tais instruções são geralmente uma série de argumentos que definem o que deve ser realizado e como deve ser realizado. Estes argumentos podem ser especificados como: Um valor numérico. (exemplo.: 5, ou 9) Uma referência a dados. (exemplo.: reg01) Uma expressão (exemplo.: 3 +reg01) Uma chamada de função (exemplo: Abs(reg01)) Um valor de cadeia (Exemplo: Produzir ferramenta A Rotinas Existem três tipos: Procedimentos: subprograma que realiza determinada tarefa quando é chamado. Função: de características semelhantes a um procedimento, no entanto retorna um valor ao programa principal. Rotina trap ou rotina armadilha: associada a rotinas de interrupção. Tipos de dados: Registros que podem ser criados arbitrariamente com informações como de ferramentas, posição e etc. Sendo separados em três tipos: Constantes: valor estático, que pode ser alterado manualmente no programa. Variáveis: valor mutável que pode ser atribuído durante o processo de execução do programa. Persistente: valores de inicialização do robô (setup). Princípios de programação Na linguagem Rápid TM a execução do programa é linear ou seja ocorre de maneira seqüencial, permitindo ao programador chamar sub-rotinas durante os processos. 7

Fluxo do processo O fluxo dos processos controlados pelo programa segue os seguintes princípios: a) Sub-rotinas (procedimentos) interrompem o processo para sua execução, retornando ao fluxo do programa principal assim que suas instruções são todas realizadas. b) Um bloco de execuções é repetido um determinado número de vezes ou até que uma condição lógica seja atendida. c) Um bloco de execuções (sub-rotina) é chamado quando uma determinada condição é imposta. d) Uma determinada sub-rotina (procedimento ou função) é chamada (através do rótulo) para uma execução específica. e) Uma determinada interrupção física ocorra. (questões de segurança controladas ou interrupções físicas imprevistas falta de energia, etc.) Sintaxe Instruções e funções são descritas usando tanto sintaxe simplificada quanto a sintaxe formal. Se utilizado o FlexPendant ao programar, geralmente o usuário só necessita conhecer a sintaxe simplificada, uma vez que o robô automaticamente assegura que a sintaxe correta é utilizada. Exemplo: TPWrite String [\Num] [\Bool] [\Pos] [\Orient] Instrução Argumento obrigatório Argumento compulsório Argumentos mutuamente exclusivos. - Os argumentos opcionais são colocados entre colchetes [ ]. Podendo ser omitidos. - Argumentos mutuamente exclusivos, ou seja, não pode existir em uma mesma instrução ao mesmo tempo, estão separados por uma barra vertical. - Argumentos que pode ser repetido um número arbitrário de vezes são colocados entre chaves{}. 8

Comandos básicos para movimentação de um robô ABB TM Instruções básicas Instrução Tarefa MoveJ Movimento livre: movimento de um ponto a outro sem controle rígido de trajetória ou da velocidade das juntas. Consiste na movimentação de maior velocidade. MoveL Movimento linear com controle rígido da trajetória do efetuador. MoveC Movimento circular, a rigidez do movimento será obtida através da definição dos pontos a serem utilizados na trajetória do efetuador. Test Execute diferentes instruções, dependendo do valor de uma expressão. ProcCall Ir para outra rotina. Return Voltar para a rotina original For Repetir uma seção do programa um número de vezes While Repetir uma seqüência de instruções diferentes, até que uma determinada condição seja satisfeita. Compact if Executa uma instrução se uma condição é satisfeita IF Executa uma seqüência de instruções diferentes, dependendo ou não se uma condição é satisfeita. WaitUntil Espere até que uma condição seja satisfeita WaitTime Espere um determinado limite de tempo, ou espere até que o robô pare de se movimentar. Wait Di Aguarde até que a entrada digital seja definida Set Iniciar Reset Reinicia Break Ruptura temporária da execução do programa afim de depuração do sistema. Exit Para a execução do programa não permitindo reiniciar a rotina Stop Para a execução do programa permitindo reiniciar a rotina Label Especifique um rótulo (nome de linha ou sub-rotina) Comment Comentário Goto Vá para um rótulo Na maioria dos robôs disponíveis no mercado é utilizada uma linguagem de programação direta, que consiste na instrução simplificada produzindo de imediato a ação a ser executada. Exemplo: movej, phome, v1000, z10, tool0 Movimente-se para a posição home com movimento livre (das juntas) com uma velocidade de 1000 milímetros por segundo, com uma zona de precisão de 10 milímetros utilizando-se a ferramenta terminal TOOL0 Estrutura de programação Para a programação estruturada de um robô, são necessárias o conhecimento de alguns instruções ou estruturas que são: 1 Todo programa deve ter uma rotina principal, o que consiste em dizer que há um encapsulamento da rotina ou do programa. main () : início do programa END: fim do programa 9

2 Condicionais. Para a repetição ao execução de determinada ação é necessário a inclusão de uma estrutura de seleção (condição) lógica que permita o questionamento da ação e sua reação binária (V) ou (F). IF (CODIÇÃO LÓGICA) THEN: Se (verdadeira a condição ) então ELSE (falsa a condição ) ENDIF: Finalização do bloco de instruções de seleção. 3 Estrutura de repetição. Há circunstâncias em que é necessária a repetição das rotinas vinculadas a uma determinada tarefa um determinado número de vezes. FOR (var. de controle) FROM (valor inicial) TO (valor final) [\STEP (valor do passo)] DO { BLOCO DE INSTRUÇÕES A SEREM REPETIDAS} ENDFOR PARA (var.de controle) DE (valor inicial) ATÉ (valor final) [\PASSO (valor do passo)] FAÇA { BLOCO DE INSTRUÇÕES A SEREM REPETIDAS} FINALIZA BLOCO DE INSTRUÇÕES PARA. 4 Estrutura de decisão utilizada na leitura de um número através do Teach-in-Pendant, no carregamento em um registrador, para utilização posterior, junto com o comando FOR, por exemplo, para executar um determinado número de vezes uma rotina ou sub-rotina. TPReadNum Exemplo TPReadNum reg2, quantidade: ; 5 Apresentação de uma mensagem no inicio da operação do robô. TPWrite mengagem ; 6 Instrução de espera, o robô deve aguardar um determinado tempo (em segundos) antes ou depois de executar determinada sub-rotina. WaitTime tempo em segundos 7 Comando para limpar a tela do Teach-in-Pendant. TPErase 10