Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 de 159 Programação Básica CoDeSys / Galileo COG_11: Versão 06_2012 2 de 159 Proibida a reprodução total ou parcial deste material, por qualquer meio ou processo sem expressa autorização por escrito da EATON Ltda. Electrical – Divisão Electrical PDO. A violação dos direitos autorais é crime, podendo cominar em pena de prisão e/ou multa, conjuntamente com busca e apreensão do material, sem prejuízo das indenizações civis (de acordo com o artigo 184 e parágrafos do Código Penal Brasileiro c/c a Lei nº 9.610/98, Lei dos Direitos Autorais). As informações contidas nesta apostila correspondem ao estado atual da técnica e estão sujeitas a alterações sem aviso prévio. Os programas de exemplo contidos nesta apostila são para efeitos didáticos, a EATON não se responsabiliza por quaisquer danos e/ou acidentes que a utilização indevida destes softwares venha a causar. A participação e/ou aquisição do treinamento não dá nenhum direito ao participante sobre os softwares utilizados durante o treinamento, incluindo cópias, versões de demonstração e/ou versões originais. O treinamento tem como base a utilização de produtos EATON. A EATON não se responsabiliza por quaisquer adaptações, conversões e/ou utilização dos conceitos contidos nesta apostila com produtos de outra fabricação. 3 de 159 INDEX: Conceitos de Hardware. ......................................................................................... 5 Unidade Central de Processamento (UCP ou CPU) ........................................... 6 Entradas e Saídas de um CLP. ........................................................................... 6 Família de CLP’s EATON ....................................................................................... 8 Linha Easy Control (EC4P) ................................................................................. 8 Linha XControl. .................................................................................................... 9 Linha XVision .................................................................................................... 12 Linha de I/Os remotos XI/ON. ........................................................................... 16 Trabalhando com o IOassistant. ................................................................... 18 Conceitos da IEC 61131-3. .................................................................................. 25 Introdução à declaração de variáveis e tipos de variáveis. ............................... 25 Declaração de variáveis com endereçamento físico. ........................................ 26 Variáveis booleanas. ..................................................................................... 27 Variáveis numéricas. ..................................................................................... 27 Variáveis do tipo Texto. ................................................................................. 28 Variáveis do tipo Data e Tempo. ................................................................... 29 Exemplo de uma declaração de variáveis ..................................................... 30 Declaração de variáveis Locais e Globais ............................................................ 30 Variável Local .................................................................................................... 30 Variável Global .................................................................................................. 30 As linguagens de programação. ........................................................................... 31 Linguagem Ladder (LD)..................................................................................... 31 Linguagem em Blocos de Função (FBD)........................................................... 31 Linguagem em Lista de Instruções. (IL). ........................................................... 32 Linguagem Estruturada ou (ST). ....................................................................... 32 Programação em Linguagem Sequencial (SFC) ............................................... 33 Ambiente de programação CoDeSys. .................................................................. 33 INICIANDO O SOFTWARE .................................................................................. 35 Criando um novo Projeto ...................................................................................... 37 Configurando Hardware XV100 ............................................................................ 39 Trabalhando com IHM+CLP. ............................................................................. 39 Trabalhando com IOs remotos. ......................................................................... 40 Configurando Hardware XC100/XC200 ............................................................... 45 COMEÇANDO A PROGRAMAR .......................................................................... 49 COMPILANDO O PROGRAMA ............................................................................ 56 SIMULANDO O PROGRAMA .............................................................................. 56 Forcando variáveis pela configuração do XC100/200 ....................................... 60 CRIANDO TELAS DE SIMULAÇÃO ................................................................. 61 TRABALHANDO COM BREAK POINTS E CONTROLADORES DE CICLO .... 70 Comunicação em Ethernet com IHM+CLP. .......................................................... 74 Verificar e ajustar o endereço de IP da IHM ...................................................... 76 Cabo de Ethernet .............................................................................................. 77 Testar a conexão Ethernet ................................................................................ 77 O primeiro programa do CLP da IHM ................................................................... 78 Pontos de licença para funcionamento do CLP ................................................. 78 Instalação do programa de execução do CLP na IHM ...................................... 78 4 de 159 Executar a instalação na plataforma do Windows: ............................................ 78 TRANSFERINDO O PROGRAMA ....................................................................... 83 Transferência do programa via rede Ethernet ................................................... 83 Transferência do programa via rede serial ........................................................ 85 Alterações ONLINE .............................................................................................. 87 Create Boot Project .............................................................................................. 87 Sourcecode Download ......................................................................................... 88 Upload do programa do CLP ................................................................................ 89 IMPORTANDO BIBLIOTECAS ............................................................................. 91 Utilizando Bibliotecas no projeto ....................................................................... 92 Utilizando instruções de comparação e operações matemáticas ......................... 93 Exemplo de inserção de operados .................................................................... 93 Funções de conversão de operadores ................................................................. 95 Exemplo de inserção de funções de conversão de operadores ........................95 Configuração do arquivo de símbolos .................................................................. 96 O primeiro projeto no GALILEO ......................................................................... 103 Criando um novo projeto ................................................................................. 103 Selecionar o modelo da IHM ........................................................................... 104 Selecionar o CLP ............................................................................................ 106 Criar Tela ......................................................................................................... 107 Objetos da barra de ferramentas ........................................................................ 108 Importar Tag’s .................................................................................................... 143 Gerar objeto de exibição .................................................................................... 149 Compilar o projeto .............................................................................................. 151 Simulação do projeto no PC ............................................................................... 152 Download do Projeto para IHM .......................................................................... 153 Iniciar o FTP-Server na IHM ............................................................................ 153 Caminho para gerar o FTP no GALILEO ........................................................ 154 Download do projeto da IHM .............................................................................. 156 Upload do programa da IHM ........................................................................... 159 5 de 159 Conceitos de Hardware. O CLP, Controlador Lógico Programável, também conhecido como PLC, Programming Logical Controller é um equipamento eletrônico composto de: Unidade Central de Processamento. Memória Interface de entrada e saída, ou IO (Input, Output) O CLP, ou o controlador programável, é um equipamento utilizado para automação de processos eletromecânicos, tais como o controle de máquinas em linhas de montagem, parques de diversões, controle de luminárias, etc... Ao contrário dos computadores de uso geral, o CLP foi concebido para possuir várias entradas e saídas, suportabilidade térmica elevada, imunidade a ruídos elétricos e resistência à vibração e impacto. Os programas para controlar a operação da máquina são normalmente armazenados em memória alimentada por bateria ou então em memórias não voláteis. O CLP é um sistema de tempo real, que altera as suas saídas conforme as condições de suas entradas e de suas memórias internas. Na década de 60 os antigos painéis de controle possuíam quilômetros e quilômetros de fios e, em alguns casos, mais de 500 temporizadores analógicos, 500 contadores e um número de relês auxiliares acima de 2000 unidades. Próximo a 1968, na indústria automotiva, surgiu uma necessidade de se alterar as grandes linhas de montagem, devido às frequentes alterações em modelos dos automóveis, adequação de linhas de montagens, etc. Era necessário algo que reduzisse o tempo de alteração destes painéis. A solução foi criar um controlador, capaz de executar algumas lógicas simples, realizar rotinas de temporização e de contagem internamente e que pudesse ser reprogramado quando necessário. Hoje os CLP’s concentram mais recursos em sua CPU do que cinco mil temporizadores, cinco mil contadores, além de possuírem recursos para controles PID, posicionamento, lógica Fuzzy, gerenciamento de banco de dados, redes de comunicação, etc. Algumas coisas, no entanto, permanecem as mesmas. 6 de 159 Unidade Central de Processamento (UCP ou CPU) A UCP, ou CPU, é o cérebro do CLP, é responsável pela execução do programa do usuário, leitura e escrita das memórias, acesso aos dados das entradas e saídas. Apesar de parecer complexo, a CPU tem um funcionamento bastante simples. Assim que ligamos a CPU esta executa um auto teste, verifica a integridade do hardware e do software, executa algumas funções do sistema e etc... Logo em seguida lê todas as entradas, digitais e analógicas, alocando seus valores em uma memória de imagem. Logo em seguida a CPU começa a executar o programa do usuário. Tomando como base a memória de imagem das entradas a CPU executa as lógicas do programa alocando o resultado das mesmas em uma memória de imagem de saída. Assim que o programa chega ao final, a CPU aloca a memória de imagens de saídas nas saídas físicas propriamente ditas, analógicas e/ou digitais. Quando o processo encerra a CPU retorna para as rotinas de auto teste, funções do sistema e tudo recomeça. Normalmente o tempo de ciclo de uma CPU gira em torno de alguns milésimos de segundo. Entradas e Saídas de um CLP. As saídas e entradas de um CLP podem ser digitais ou analógicas. Digital ou sinais discretos se comportam como interruptores, possuem apenas dois estados definidos, Ligado ou desligado. Em entradas digitais por exemplo ligamos, botões, fim de curso, sensores fotoelétricos, sensores indutivos, etc... Nas saídas digitais ligamos, sinaleiros, contatores, válvulas solenoides, etc... Os sinais analógicos são como os controles de volume, possuem um intervalo de valores entre o valor mínimo e o máximo. Em entradas analógicas, por exemplo, ligamos sensores de temperatura, sensores de pressão, tacogeradores, etc... Em saídas analógicas ligamos, válvulas proporcionais, dimmers, inversores de frequência (Que controlam a velocidade do motor de 0 a 100%), etc... 7 de 159 Os sinais digitais ainda podem ser do tipo “Trem de pulsos” ou “Sinal de alta frequência”. Alguns equipamentos, como por exemplo os encoders, geram um sinal de liga e desliga conforme giramos seu eixo. Conforme a velocidade em que este liga/desliga ocorre determinamos a velocidade em que o encoder está girando e, contando a quantidade de pulsos, determinamos a posição do mesmo. Também existem saídas digitais em alta frequência, utilizadas para controlar motores de passo ou servo motores, por exemplo. Nestes casos cada pulso gerado pela saída faz com que o motor gire alguns segundos de grau, quanto mais rápido gerarmos o trem de pulso, mais rápido o motor irá girar! As entradas e saídas analógicas possuem conversores Analógicos – Digitais. Com estes conversores elas transformam variações de corrente ou tensão em um número para que o CLP possa entender e trabalhar com estas grandezas. As entradas e saídas analógicas possuem uma característica técnica que é a resolução. Ao ler um sinal analógico a entrada irá transformar este valor em um número, chamado de número de incrementos, quanto maior este número, maior a precisão de leitura. Por exemplo, uma entrada analógica que varia de 0 a 10V e possui resolução de 12 bits. Isto quer dizer que em 0V o número obtido nesta entrada é 0, e quando esta entrada receber um sinal de 10V o número lido será de 4095! Ou seja cada vez que a entrada oscilar em 2,4mV o número lido na entrada analógica sofrerá uma alteração. Se tivermos agora uma entrada de 14 bits de resolução, significa que em 10V teremos o número 16383. Ou seja, cada vez que a entrada oscilar em 0,6mV o número lido na entrada analógica sofrerá uma alteração. Para calcular o número de incrementos obtido em uma entrada ou saída analógica utilizamos a seguinte fórmula: ((2 quantidade de bits) -1) 8 de 159 Família de CLP’s EATON Linha Easy Control (EC4P) O EC4P é um CLP compacto, com entradas e saídas incorporadasna própria CPU. Possui versões com e sem display, com ethernet e com saídas analógicas incorporadas. EC4P O easyControl EC4P oferece soluções amigáveis para tarefas de automação de pequeno e médio porte. Ele pode ser utilizado tanto com os dispositivos da família Easy (Pode ser ampliado localmente com a adição de um módulo lateral) como também em combinação com teoricamente todos dispositivos de automação através de sua rede CANopen incorporada. A interface Ethernet integrada permite a utilização de outros recursos tais como OPC Server e programação à distância. Entre outros destaques temos o software de programação easySoft-CoDeSys que segue a norma IEC 61131-3. O EC4P possui 256Kb de memória de programa e um poderoso processador que garantem maior velocidade e flexibilidade em suas aplicações. 9 de 159 Linha XControl. Os CLPs modulares XC100 e XC200 se destacam por conta de seu design altamente compacto. Oferecem diferentes classes de desempenho de CPU e uma vasta gama de módulos de expansão. Uma característica importante é a sua capacidade para ser integrado em conceitos modernos de comunicação. A troca de dados através da interface Ethernet para OPC ou clientes de servidor web (Web Server) integrado permite a criação de soluções inovadoras. XCONTROL XCONTROL montado com 15 XIOC (Módulos de E/S locais) A linha XControl é uma linha de grande capacidade e velocidade de processamento. Pode ser ampliado até 15 cartões laterais à CPU, o que permite uma alta concentração de I/Os (450 pontos em 510mm largura). A linha XC também pode receber IOs ou outros equipamentos em rede CANOpen, já incorporada à CPU. Outras vantagens da linha XC é a possibilidade de se trabalhar em outras redes, através da adição de placas, como por exemplo: Profibus-DP, Modbus- RTU, Suconet K, etc... 10 de 159 Tabela de escolha para CPU’s Para uma lista completa de funcionalidades da CPU, bem como, escolher os módulos de entradas e saídas locais mais adequados a cada aplicação, é necessário consultar os catálogos pertinentes. A CPU XControl, conta ainda com uma série de acessórios, alguns obrigatórios para o funcionamento da mesma. Conforme figura abaixo, se faz necessária à utilização de uma bateria XT- CPU-BAT1, que é responsável pela manutenção do relógio de tempo real. Cabe ao usuário, escolher se deseja um terminal com molas (excelente para aplicações com vibração) ou um terminal parafuso. XIOC-TERM-18T e XIOC- TERM-18S, respectivamente. Outro item que deve ser selecionado é à base de montagem. (XIOC-BP-XC ou XIOC-BP-XC1), a base é vendida separadamente exatamente para otimizar espaço na montagem da CPU. Antigamente, quando os CLP’s vinham com rack já completo, mesmo que se utilizasse apenas uma placa de saída, vários slots ficavam vagos. Com a nova tecnologia é possível montar um Rack exatamente do tamanho que se precisa! Memória Bytes XC-CPU101-C64K-8DI-6DO 64K X (500K) 4 8 6 Transístor XC-CPU101-C128K-8DI-6DO 128K X (500K) 4 8 6 Transístor XC-CPU101-C256K-8DI-6DO 256K X (500K) 4 8 6 Transístor XC-CPU201-EC256K-8DI-6DO 256K X X (1M) 2 (50) 2 1 (50) 8 6 Transístor XC-CPU201-EC512K-8DI-6DO 2M X X (1M) 2 (50) 2 1 (50) 8 6 Transístor XC-CPU201-EC256K-8DI-6DO-XV 256K X X X (1M) 2 (50) 2 1 (50) 8 6 Transístor XC-CPU201-EC512K-8DI-6DO-XV 2M X X X (1M) 2 (50) 2 1 (50) 8 6 Transístor XC-CPU202-EC4M-8DI-6DO-XV 4M X X X (1M) 2 (50) 2 1 (50) 8 6 Transístor EC4P-221-MTX... 256K X (500K) 2 (50) 1 (40) 12 8 Transístor 4 EC4P-221-MRX... 256K X (500K) 2 (50) 1 (40) 12 6 Relê 4 EC4P-221-MTA... 256K X (500K) 2 (50) 1 (40) 12 8 Transístor 4 1 EC4P-221-MRA... 256K X (500K) 2 (50) 1 (40) 12 6 Relê 4 1 EC4P-222-MTX... 256K X X (500K) 2 (50) 1 (40) 12 8 Transístor 4 EC4P-222-MRX... 256K X X (500K) 2 (50) 1 (40) 12 6 Relê 4 EC4P-222-MTA.... 256K X X (500K) 2 (50) 1 (40) 12 8 Transístor 4 1 EC4P-222-MRA... 256K X X (500K) 2 (50) 1 (40) 12 6 Relê 4 1 En tra da s An a ló gi ca s (0 a 10 V) Sa íd as An a ló gi ca s (0 a 10 V) CA N /C AN O pe n (bp s) 0,3 0,3 0,3 Co n ta do re s R áp id os (K H z) En tra da s di gi ta is (O n bo ar d) 0,3 0,3 0,3 In te rr u pç ão (H W ) En co de r In cr e m e n ta l (K H z) 0,3 0,3 Sa íd a s di gi ta is (O n bo a rd ) W EB Se rv e r 0,15 0,15 0,025 m S/ 10 00 in st ru çõ es 0,5 0,5 0,15 0,15 R S2 32 Et he rn et 10 /1 00 M b Ve lo ci da de 0,5 11 de 159 Esquema de montagem da CPU XC. Ressaltando que, mesmo módulos locais, no caso do XControl, estes módulos começam com a sigla XIOC, também necessitam de terminais, em alguns casos, como nos contadores rápidos e módulos com 32 pontos, estes terminais são específicos e devem ser escolhidos com um certo critério. Novamente, favor consultar os catálogos apropriados para esta seleção. As bases também são escolhidas conforme as quantidades de módulos que selecionamos. Abaixo um exemplo de montagem de racks conforme a quantidade de módulos locais. 12 de 159 Por exemplo, se quisermos um CLP com dez módulos XIOC, a melhor montagem do rack traseiro seria: XIOC-BP-XC + XIOC-BP-2 + XIOC-BP-3 + XIOC-BP-EXT + XIOC-BP-2 + XIOC- BP-2 O rack XIOC-BP-EXT, na verdade, é um rack que recebe até 3 cartões porém atua como um amplificador de sinais, sem este módulo o XControl pode manobrar até 7 cartões locais, com ele a CPU XControl consegue trabalhar com até 15 cartões locais. Linha XVision Seja na construção de máquinas, instalações ou em aplicações especiais, raramente há uma aplicação em que uma IHM não possa simplificar a operação e com isso aliviar o operador. Um moderno display sensível ao toque fornece informações claras, a orientação do menu flexível em cada idioma desejado permite vendas para outras partes do mundo ao fabricante de máquinas com apenas uma solução de software e hardware. Com IHM-CLPs de 3.5” até 15” você tem soluções otimizadas para cada máquina. Controle, posicionamento e comunicação são desenvolvidas com o XsoftCoDeSys-2 baseado na IEC 61131-3. A visualização das telas da IHM são criadas com o amigável software Galileo. A linha XVision é uma linha de IHM’s (Interfaces Homem Máquina) que podem trabalhar, tanto como displays simples, como, uma unidade mista CLP + IHM. A Interface Homem Máquina, também chamada de HMI (Human Machine Interface) ou ainda MMI (Man Machine Interface) é um aparelho que possui 13 de 159 display, teclado em alguns casos, e realiza a comunicação com as memórias internas do CLP, através desta comunicação a IHM exibe em seu display: • Alarmes e status da máquina. • Dados de processo, tais como: temperatura desejada e temperatura atual da máquina. Através de seu teclado, ou através de toque na tela (Touchscreen), o operador consegue: • Alterar dados de processo. • Reconhecer alarmes. • Criar receitas • Gerenciar senhas de acesso. • Controlar a máquina manualmente, ou iniciar um processo automático. Resumindo, a IHM é a interface que exibe ao operador o que a máquina está fazendo e/ou o que está ocorrendo. E é a interface que a máquina utiliza para obter do operador o que ele quer! Quando a XV opera como IHM+CLP nós podemos utilizá-la em conjunto com IOs remotos, Inversores em rede, Sistema de partida Smart-Wire,etc. Se o equipamento estiver trabalhando como uma IHM simples, sem CLP, a mesma pode se conectar via CANopen, Profibus, Ethernet, Modbus e muitos outros protocolos a um CLP que também possua estas redes de comunicação. Na seleção de qual IHM será escolhida, um ponto importante a ser levado em conta é o tipo de display que será escolhido. O equipamento XV possui telas do tipo touchscreen resistivo ou Infra Vermelho com vidro de segurança. O Touch resistivo consiste de uma película plástica que é colocada sobre a tela da IHM. Esta película, através de uma leve pressão, detecta onde ocorreu o toque e processa esta informação. O Touch infravermelho funciona com emissores e receptores instalados nas bordas da tela. Quando o operador coloca o dedo na tela, interrompe estes feixes de luz, desta forma, o sistema sabe onde o toque ocorreu. Como este sistema não utiliza a adição de nenhum sensor na tela do display, o mesmo pode ser montado com vidro de segurança, laminado à prova de impacto. Ou seja, as 14 de 159 telas com tecnologia IR (Infravermelho) possuem uma resistência a impactos mecânicos e a risco muito superior aos modelos que utilizam a tecnologia resistiva. Por possuir vidro no frontal, e não possuir o sensor de toque na frente, a IHM Infravermelho possui também boa resistência a certas substâncias químicas. Os dois modelos possuem grau de proteção IP65, ou seja, resistência total contra pó e jatos de água. As IHM’s da linha XV podem ser adquiridas em diversos tamanhos, de 3” a 15”, com diversas opções de redes de comunicação, conforme tabela abaixo. Existem ainda modelos com moldura executada em aço inoxidável escovado, ideais para indústrias alimentícias, e modelos móveis, para uma completa visualização das possibilidades de montagem, bem como todos os acessórios disponíveis, favor verificar os catálogos pertinentes. As IHM’s cujo código começa com XV-100, são modelos que, uma vez ordenados, já vem com licença do sistema operacional e memória interna. As IHM’ com código XV-400 ou XVS-400, precisam ser adquiridas em conjunto com um cartão de memória e uma licença de sistema operacional. Algumas IHM’s vem de fábrica sem o CLP habilitado, para habilitar o mesmo, basta adquirir uma licença, que possui um código que será digitado na IHM. Outras redes de comunicação necessitam, às vezes, de uma licença especial, novamente, verifique o catálogo para seleção correta da IHM, das licenças e dos acessórios necessários. 15 de 159 Ta m an ho da Te la Co lo rid a (65 53 5 co re s) Ve lo ci da de (M H z) Ca pa ci da de de m e m ór ia (M B) Já te m CL P In co rp o ra do To u ch re si st iv o To u ch In fra ve rm el ho Pr o fib u s CA N /C AN O pe n R S2 32 R S4 85 Et he rn e t 1 0/ 10 0M bs Sl ot s pa ra ca rtã o de co m u n ic a çã o Pe rm ite ha bi lita r CL P XV-102-A0-35MQR-10 3,5" 400 64 X X XV-102-A2-35MQR-10 3,5" 400 64 X X X XV-102-A3-35MQR-10 3,5" 400 64 X X X XV-102-A4-35MQR-10 3,5" 400 64 X X X XV-102-A5-35MQR-10 3,5" 400 64 X X X X XV-102-B0-35TQR-10 3,5" X 400 64 X X X XV-102-B2-35TQR-10 3,5" X 400 64 X X X X XV-102-B3-35TQR-10 3,5" X 400 64 X X X X XV-102-B4-35TQR-10 3,5" X 400 64 X X X X XV-102-B5-35TQR-10 3,5" X 400 64 X X X X X XV-102-B0-35MQR-10-PLC 3,5" 400 64 X X X XV-102-B3-35MQR-10-PLC 3,5" 400 64 X X X X XV-102-B4-35MQR-10-PLC 3,5" 400 64 X X X X XV-102-B5-35MQR-10-PLC 3,5" 400 64 X X X X X XV-102-B6-35MQR-10-PLC 3,5" 400 64 X X X X X XV-102-B8-35MQR-10-PLC 3,5" 400 64 X X X X X XV-102-B0-35TQR-10-PLC 3,5" X 400 64 X X X XV-102-B3-35TQR-10-PLC 3,5" X 400 64 X X X X XV-102-B4-35TQR-10-PLC 3,5" X 400 64 X X X X XV-102-B5-35TQR-10-PLC 3,5" X 400 64 X X X X X XV-102-B6-35TQR-10-PLC 3,5" X 400 64 X X X X X XV-102-B8-35TQR-10-PLC 3,5" X 400 64 X X X X X XV-102-D0-57TVR-10 5,7" X 400 64 X X X X XV-102-D6-57TVR-10 5,7" X 400 64 X X X X X X XV-102-D8-57TVR-10 5,7" X 400 64 X X X X X X XV-102-D0-70TWR-10 7" X 400 64 X X X X XV-102-D6-70TWR-10 7" X 400 64 X X X X X X XV-102-D8-70TWR-10 7" X 400 64 X X X X X X XV-102-D0-57TVR-10-PLC 5,7" X 400 64 X X X X XV-102-D6-57TVR-10-PLC 5,7" X 400 64 X X X X X X XV-102-D8-57TVR-10-PLC 5,7" X 400 64 X X X X X X XV-102-D0-70TWR-10-PLC 7" X 400 64 X X X X XV-102-D6-70TWR-10-PLC 7" X 400 64 X X X X X X XV-102-D8-70TWR-10-PLC 7" X 400 64 X X X X X X XVS-440-57MPI-1-10 5,7" X 400 64 X X X X X XVS-450-57MPI-1-10 5,7" X 400 64 X X X X X XVS-460-84MPI-1-10 8,4" X 400 64 X X X X X XVS-440-10MPI-1-10 10,4" X 400 64 X X X X X XVS-430-10MPI-1-10 10,4" X 400 64 X X X X X XVS-440-12MPI-1-10 12,1" X 400 64 X X X X X XVS-430-12MPI-1-10 12,1" X 400 64 X X X X X XVS-460-15MPI-1-10 15" X 400 64 X X X X X XV-460-57TQB-1-10 5,7" X 400 64 X X X X 1 X XV-450-57TQB-1-10 5,7" X 400 64 X X X X 1 X XV-460-84TVB-1-10 8,4" X 400 64 X X X X 1 X XV-440-10TVB-1-10 10,4" X 400 64 X X X X 2 X XV-430-10TVB-1-10 10,4" X 400 64 X X X X 2 X XV-440-12TSB-1-10 12,1 X 400 64 X X X X 2 X XV-430-12TSB-1-10 12,1" X 400 64 X X X X 2 X XV-460-15TXB-1-10 15" X 400 64 X X X X 2 X Interface de comunicação 16 de 159 Linha de I/Os remotos XI/ON. Os IOs remotos, são na verdade módulos com entradas e saídas, analógicas e/ou digitais que são conectados através de uma rede de comunicação ao controlador do processo. A linha XI/ON é uma linha de IOs remotos que é constituída basicamente de três tipos de equipamentos diferentes. O gateway, que é responsável pela comunicação das placas de entrada/saída com a rede selecionada, a placa de entrada/saída propriamente dita e a base de conexão, que liga as placas com o campo. 17 de 159 O software IOAssistant é utilizado para facilitar na cotação dos módulos remotos, gerar documentação, dimensional, atualizar Firmwares dos gateways quando necessário e realizar testes com o módulo remoto através da entrada RS232 que o módulo Gateway possui. É possível ainda ter módulos de entrada e saída, em 24Vcc e em 220Vac no mesmo módulo remoto. Basta utilizar um módulo de alimentação de campo. (Power Field). 18 de 159 22 22© 2011 Eaton Corporation. All rights reserved. BR PF BR 230Vac24Vdc 5Vdc 5Vdc 24Vdc Alimentação modulo 24Vdc 230Vac 24Vdc Para uma escolha correta dos módulos XI/ON é recomendável à utilização dos catálogos pertinentes, bem como a utilização do software IOassistant. Trabalhando com o IOassistant. Através do menu iniciar => EATON => IOAssistant inicie o programa. 19 de 159 Assim que iniciarmos o programa a primeira vez ele irá abrir a seguinte tela: Por ser um programa que permite, inclusive, que o operador se conecte e faça alterações de Firmware, ou acionamentos de saídas na ilha remota, o IOAssistant pode ser habilitado com uma senha, que permite diferentes tipos de acesso. Engineering: O operador tem acesso total a todos os recursos do software. Service: O operador tem acesso a criar novas configurações, monitorar o status da ilha e das entradas, porém não consegue forçar saídas da ilha. Diagnostics: O operador não consegue criar novos projetos. Porém consegue Monitorar status e as entradas do sistema. Também não consegue forçar as saídas. Se o usuário não quiser criar nenhuma senha, basta criar um nome de usuário, selecionar a opção Engineeringe deixar o password em branco. Selecionamos então a opção OK e vamos para a tela inicial! Nome do usuário: Informações do usuário: Nível de acesso: Senha de acesso: Mudança de Senha: 20 de 159 Selecionando a opção File => New Project vamos iniciar um novo projeto. Neste ponto criamos um novo arquivo para conter a configuração dos equipamentos em rede. Selecione uma rede de comunicação. Teremos então a tela de criação de configuração. 21 de 159 Selecionamos agora a opção: “Adicionar uma estação”. A tela abaixo irá se abrir. Na seleção do sistema devemos escolher a família de IOs remotos que iremos utilizar. Neste caso selecionamos XI/ON. Na seleção do gateway escolhemos qual módulo será nosso “cabeça de rede”, ou seja qual gateway será utilizado. Se tivermos alguma dúvida, podemos pressionar a qualquer momento a tecla “Technical Data” e esta irá mostrar os dados do Gateway que estamos selecionando. Inserimos um nome para esta estação, o número da mesma na rede e poderemos pressionar a tecla “Add”, que adiciona este gateway e permanece na mesma janela para que possamos selecionar outros módulos. Ou selecionamos a tecla “Add + Close” o que adiciona e fecha esta janela. Novo Projeto Abrir Projeto Fechar Projeto Adicionar Estação Tree Project Tela de visualização 22 de 159 Após a seleção do gateway, a janela principal irá se alterar, aparecerá um módulo no lado direito, a imagem do módulo selecionado, e no lado esquerdo a topologia dos mesmos. Para adicionar placas de entrada e saída neste gateway, selecione agora a opção: “Add Module” isto abrirá a tela para seleção das placas de E/S no módulo remoto. Seleção do sistema. Seleção do gateway. Descrição do Gateway selecionado. Exibir dados técnicos deste gateway. Nome do Gateway neste projeto Endereço da estação na rede. Fechar. Adicionar este novo Gateway. Adicionar este novo Gateway e fechar esta janela. 23 de 159 Em primeiro lugar, através da “Seleção do tipo de módulo”, nós realizamos uma pré-filtragem, qual tipo de módulo você quer? Analógicos, digitais, tecnológicos ou de potência? Logo depois selecionamos o tipo de módulo em si, qualquer dúvida sobre a funcionalidade daquele módulo, pode ser solucionada pressionando-se o botão Technical Data ou buscar informações nos catálogos pertinentes. Dependendo do tipo de módulo, precisamos escolher uma base adequada, módulos com codificação iniciada em XNE, são chamados módulos econômicos, não possuem base. As bases podem ser do tipo, mola ou parafuso (Tension Clamp e Screw). Assim que escolhemos um módulo, o próprio software limita as opções de base. Sempre que um gateway tiver os dois tipos de módulos de entradas e saídas, econômico e convencional, todas bases obrigatoriamente devem ser do tipo mola. Crie uma configuração com módulos de entrada e saídas, analógicos e digitais para podermos realizar alguns testes. Seleção do módulo. Descrição Filtro do tipo de módulo. Seleção do tipo de base. Quantidade de módulos Seleção do tipo de conector (mola ou parafuso. 24 de 159 Podemos ver a esquerda a lista de módulos que ficam conectados a cada Gateway. No lado direito podemos ver uma imagem do nosso módulo remoto montado. Quando temos módulos analógicos, como por exemplo, o XN-2AI- THERMO-PI, o mesmo possui uma configuração adicional. Basta selecionar o módulo no lado esquerdo e escolher a pasta Parameter do lado direito. A seguinte tela irá se abrir: Nesta tela podemos selecionar tipos diferentes de sensores, por exemplo. Uma vez que a configuração foi concluída, podemos checar a montagem através da opção, “Verify Assemblie” . Se houver qualquer inconsistência na nossa configuração uma tela de erros irá surgir. Através da opção File -> Project Documentation... podemos imprimir a configuração completa, o que inclui, o dimensional da estação, o desenho de 25 de 159 como a mesma deve ser montada e uma listagem de peças completas e por gateway. Conceitos da IEC 61131-3. A IEC, International Electrotechnical Commission (Comissão Eletrotécnica Internacional) é uma organização internacional de padronização de tecnologias elétricas, eletrônicas e relacionadas. Alguns dos seus padrões são desenvolvidos juntamente com a ISO, International Organization for Standardization. (Organização Internacional para Padronização). Assim que os primieros CLP’s começaram a funcionar nas décadas de 60 e 70, buscou-se uma normalização das linguagens de programação. Foi só na década de 90 que a então IEC1131-3 estabeleceu 5 linguagens de programação principais, a mesma foi renumerada algum tempo depois e passou a ser conhecida como IEC 61131-3. O que poucas pessoas sabem é que a norma IEC 61131-3 é na verdade só um capítulo do grupo de normas IEC 61131, que abrange apenas CLP’s. Introdução à declaração de variáveis e tipos de variáveis. O primeiro requisito da norma é a declaração de todas as variáveis que iremos utilizar no programa. As variáveis possuem, nome, endereço, tipo, especificação e atributo. Independente se vamos utilizar uma variável interna, como uma memória, uma entrada digital ou analógica, um temporizador, etc... 26 de 159 O nome da variável é escolhido única e simplesmente pelo programador. Ao invés de utilizar um endereço, por exemplo “%mx0.0” o programador pode utilizar nomes maiores e autoexplicativos, como por exemplo “BombaDeRecalque_Tanque23”, este nome é referenciado a um endereço físico, e em todo o programa trabalhamos com este nome, que fará muito mais sentido ao programador que o endereço pura e simplesmente. Segue abaixo algumas dicas para escolha do nome das variáveis. • Os nomes podem ter até 30 caracteres. • Não é permitido o uso de: caracteres com acento, espaço ou hífen. • Não é permitido começar o nome de uma variável com um número. • Não é permitido o uso de palavras reservadas como nome de variáveis.(P.ex: LD , ST , IF , ELSE , AND , ADD...) • Não é permitido o uso de caracteres como: ! @ # $ % & * ( ) < > ; :\ / ? [ ] {} no nome das variáveis. • Use nomes autoexplicativos para suas variáveis. • Use sempre letras maiúsculas para iniciar o nome da variável. Ex. Bomba. • Separe o nome das variáveis com underline (_), se este consiste de mais de uma palavra. Inicie cada palavra com letra maiúscula. Ex. Bomba_Recalque. • Ou utilize as palavras com uma letra maiúscula entre elas E.x. BombaRecalque. Uma vez que escolhemos o nome para nossa variável o próximo passo é endereçá-la caso a variável seja uma entrada ou saída do CLP. Se as variáveis não forem endereçadas, automaticamente o CLP compreende que elas devem ser tratadas como memórias internas, então o próprio software endereça as variáveis automaticamente. Declaração de variáveis com endereçamento físico. SEGUNDA LETRA X BIT B BYTE (8 Bits) W WORD (16 Bits) D DOUBLE WORD (32 Bits) L LONG WORD (64 Bits) Nome da variável Endereço da variável PRIMEIRA LETRA I I Input: Recebe os valores das variáveis digitais e analógicas dos módulos de entradas Q Q Output: Envia os valores digitais e analógicos para os módulos de saídas M M Memória interna:armazena valores intermediários 27 de 159 Por exemplo: BotaoDePartida AT %IX0.0: BOOL; MotorDaBombaDagua AT %QX0.0: BOOL; SensorDeTemperatura AT %IW12: INT; ValvulaDePressao AT %QW20: INT; Controle_IHM AT %MX100.7: BOOL; Finalmente, para trabalharmos com variáveis básicas, cada variável possui seu tipo, as variáveis podem ser numéricas (usadas para operações aritméticas), Booleanas (operações de lógica), Texto (Trabalhar com caracteres) e Data/Tempo (operações com data, hora e tempo). Variáveis booleanas. As variáveis BOOLEANAS são utilizadas quando se deseja realizar operações lógicas. Por exemplo uma entrada ou uma saída digital seria do tipo BOOL. Um cartão com 16 entradas ou saídas digitais poderia ser endereçado em sua totalidade como uma WORD. Tipo IEC Limite Mínimo Limite Máximo Espaço de memoria BOOL 0 1 1 Bit Variáveis numéricas. As variáveis numéricas podem ser inteiras, ou seja números sem casas decimais, ou então, números Reais, ou seja números com casas decimais. Tipo IEC Limite Mínimo Limite Máximo Espaço de memória BYTE 0 255 8 Bit WORD 0 65535 16 Bit DWORD 0 4294967295 32 Bit SINT: -128 127 8 Bit USINT: 0 255 8 Bit INT: -32768 32767 16 Bit UINT: 0 65535 16 Bit DINT: -2147483648 2147483647 32 Bit UDINT: 0 4294967295 32 Bit 28 de 159 As variáveis numéricas devem ser sempre usadas quando se deseja realizar uma operação aritmética. Por exemplo, uma entrada analógica seria uma variável do tipo numérica, dependendo do range da entrada analógica, ela poderia ser uma SINT (8bits de resolução) ou INT (16 bits de resolução). Variáveis do tipo Texto. As variáveis do tipo texto armazenam sequências de letras, ou seja Strings. Cada letra desta String ocupa 1 byte da memória do CLP. 35 35© 2011 Eaton Corporation. All rights reserved. Tipo da variável. Variáveis de Texto. 1 byte por caracterSeqüência de caracteresSTRING BitsDescriçãoTIPO IEC EXEMPLO: ´JOB_X25´ = String = JOB_X25 ´JOB_X26 $L$R´ = String = JOB_X26 (Line Feed / Carriage Return) ´JOB_X27 $0D$0A´ = String = JOB_X27 (Line Feed / Carriage Return) ´´ = String Nulo 29 de 159 Variáveis do tipo Data e Tempo. Por último, mas não menos importante temos as variáveis utilizadas para medir tempo, e para trabalhar com relógio e calendário. Tipo da variável. Variáveis de Tempo. T# ou TIME#Tempo de DuraçãoTIME DescriçãoTIPO IEC EXEMPLO: T#15MS = Tempo de 15 milésimos de segundo. T#5M = Tempo de 5 minutos. T#25M30S = Tempo de 25 minutos e 30 segundos. T#61M5S = Tempo de 61 minutos e 5 segundos. ou T#1H1M5S = Tempo de 1 hora , 1 minuto e 5 segundos. T#1D5H10M20S100MS = Tempo de 1 dia , 5 horas , 10 minutos , 20 segundos e 100 milésimos de segundos. Tipo da variável. Variáveis de Data e Hora DT# ou DATE_AND_TIME# Data completa e hora do diaDATE AND TIME TOD# ou TIME_OF_DAY# Hora do diaTIME OF DAY DATE# ou D#Data completaDATE DescriçãoTIPO IEC EXEMPLO: DATE#1993-06-15 ���� 15 de Junho de 1993 TOD#23:45:00 ���� Faltam quinze minutos para a meia-noite DT#1974-07-17-12:30:10 ���� 17 de Julho de 1974 , doze horas trinta minutos e dez segundos. Quando tivermos um temporizador em nosso programa, por exemplo, é a variável “TIME” que dirá quanto tempo este temporizador deverá aguardar. Se quisermos comparar o relógio do CLP com um horário pré-programado, é a variável “TIME_OF_DAY” que terá este horário. 30 de 159 Exemplo de uma declaração de variáveis BotaoDeLiga AT %IX0.0 : BOOL ; Motor AT %QX0.0 : BOOL ; SensorAnalogico AT %IW10 : INT ; TextoAlarme : String(50); TempoLigaMotor : TIME ; Totalizador : WORD ; A variável “BotaoDeLiga” é uma entrada digital, por isso seu tipo é BOOL. O mesmo se passa com a primeira saída digital chamada de Motor. O “SensorAnalogico”, como se trata de uma entrada analógica, tem seu tipo definido como INT, ou seja é um número inteiro, sem sinal, pode variar de 0 a 32767. A variável “TextoAlarme”, não possui endereço, exatamente por se tratar de uma variável interna, ou seja, o CLP irá automaticamente designar um endereço de memória interna para alocar esta variável, o número que aparece entre parênteses é o tamanho máximo0 desta string. Finalmente a variável “TempoLigaMotor”, que contêm o tempo desejado para partir o motor, é do tipo TIME, pois se trata de um tempo a ser contado, ou seja um tempo de “Duração”. Declaração de variáveis Locais e Globais Definimos uma variável como local ou global dependendo da utilização do Tag no programa Variável Local Quando declaramos uma variável como Local, definimos que a utilização da Tag será somente na sub-rotina de programação. OBS.: É possível declarar o mesmo nome de Tag em diferentes sub-rotinas quando a declaração é local Variável Global Quando declaramos uma variável como Global, definimos que a utilização do Tag será para todo o programa e sub-rotinas, inclusive para comunicações com IHM’s, Supervisórios ou redes de comunicação tipo OPC 31 de 159 As linguagens de programação. A IEC61131-3 definiu 5 linguagens de programação, 3 gráficas e 2 textuais. Linguagem Ladder (LD). A linguagem de programação Ladder, é uma linguagem gráfica utilizada para representar a lógica do programa usando “relés”. Antes da existência dos CLP’s, este sistema de representação já era utilizado para documentar os antigos armários de controle. Devido ao seu histórico, é a linguagem mais difundida e conhecida atualmente. De fácil compreensão para quem vem do setor elétrico. Sua notação é bastante simples, Uma linha vertical à esquerda representa um condutor positivo, uma outra linha paralela à direita representa o condutor negativo. Os elementos constituídos por contatos normalmente abertos ou fechados de relés, são colocados em série ou paralelo na horizontal de forma a alimentar uma bobina que, será ou não acionada conforme a lógica desenhada antes, cada um dos contatos está associado ao estado de uma entrada ou uma variável lógica interna. O diagrama final é parecido com uma escada, daí seu nome Ladder. Linguagem em Blocos de Função (FBD). A linguagem de programação em Blocos de função, ou Function Block Diagram, FDB, é uma linguagem gráfica utilizada para representar a lógica do CLP utilizando blocos lógicos, ou portas lógicas. Cada bloco com uma, duas ou mais entradas é representado da esquerda para a direita. A saída de um bloco pode ser conectada a entrada de um ou mais blocos de função. De fácil compreensão por quem vem do setor eletrônico. 32 de 159 Linguagem em Lista de Instruções. (IL). A linguagem de programação em Lista de Instruções, ou Instruction List (IL) é uma linguagem de programação textual de baixo nível semelhante ao assembly. Muito utilizada para resolver problemas simples e pequenos. Como o próprio nome diz, o programa se resume a uma listagem de comandos que o CLP executa um atrás do outro. Sendo uma linguagem menos amigável e pouco flexível é também utilizada para produzir códigos otimizados em programas, ou trechos onde a performance da execução é crítica. Esta linguagem é a preferida por quem vem do setor Eletrônico. Linguagem Estruturada ou (ST). A linguagem de programação Estruturada, ou Structured Text (ST), é uma linguagem textual muito próxima das linguagens de alto nível como PASCAL, ou linguagem C. Podemos escrever expressões matemáticase lógicas em uma linha, ou utilizar comandos de decisão, laço, contagem etc... Diferente da Lista de Instruções, onde cada linha contêm um comando, na Linguagem Estruturada cada linha pode conter uma expressão complexa ou então um comando para execução de um loop. Esta linguagem é muito utilizada por quem vem da área de Informática devido à sua similaridade com as linguagens de programação de alto-nível. 33 de 159 Programação em Linguagem Sequencial (SFC) A linguagem Sequencial, ou Sequential Function Chart (SFC), apesar de não ser uma das mais conhecidas, é uma das mais poderosas e completas, utilizada especialmente em máquinas sequenciais de grande complexidade. Ambiente de programação CoDeSys. No mercado pode-se encontrar uma variedade de diferentes linguagens e sistemas de programação. Para cada tipo de linguagem são necessários dispendiosos treinamentos para todos os tipos de controladores, tanto para a linguagem de programação como para o sistema operacional. O usuário não consegue trocar unidades de programas entre diferentes sistemas, porque as linguagens de programação não são compatíveis entre si. Não é possível a reutilização de funções programadas sem que seja necessária uma reprogramação, pois o modelo de dados destes CLP’s necessita de endereços físicos. Pelo exposto acima a utilização de um controlador de outro fabricante não era viável por causa do alto custo. 34 de 159 O principal objetivo da IEC61131.3 é reduzir, se não eliminar, todos os problemas citados acima, criando uma estruturação e forma de programação padrões, de tal forma que o usuário não se torne dependente do fabricante. 35 de 159 INICIANDO O SOFTWARE ORGANIZADOR ÁREA DE TRABALHO PROGRAMAS TIPOS DE DADOS VISUALIZADOR RECURSOS Barra de ferramentas Menu principal 36 de 159 ORGANIZADOR - é usado para gerenciar os novos itens de cada pasta. Através dele inserimos novos elementos nas pastas localizadas abaixo e solicitamos a visualização /edição de alguns itens. ORGANIZADOR / PROGRAMAS – Nesta pasta alocamos os programas do CLP, bem como suas funções e seus blocos de função. ORGANIZADOR / TIPOS DE DADOS – Aqui nós colocamos nossos tipos de dados , Structures, Enumeration, etc...São tipos de dados criados pelo usuário conforme a IEC 61131-3 ORGANIZADOR / VISUALIZADOR – Dentre os recursos oferecidos pelo CoDeSys, está a criação de telas para visualização do programa criado, tanto on- line como off-line (modo simulação), estas telas são criadas e gerenciadas nesta pasta. ORGANIZADOR / RECURSOS – Pasta responsável por vários itens no CoDeSys. Entre eles: Configuração de hardware, configuração do sistema da CPU, criação de variáveis de rede, geração de gráficos de tendência, criação de tabelas de monitoração etc... ÁREA DE TRABALHO – Quando selecionamos ou criamos algo em qualquer pasta do organizador, este item aparece na área de trabalho para edição ou visualização. BARRA DE FERRAMENTAS – Aqui ficam algumas ferramentas para acesso mais rápido a algumas funções do programa, esta barra muda conforme o item selecionado na Área de Trabalho. MENU PRINCIPAL – Aqui ficam todas as opções de acessibilidade e funcionamento do CODESYS. Os passos necessários para a criação de um programa são: • Criar um novo projeto • Configurar o Hardware • Criar os arquivos fontes necessários (POU) • Criar as Variáveis • Realizar a lógica do programa • Criar blocos de função e /ou funções. • Compilar o programa • Realizar os testes • Configurar as telas / ferramentas de visualização. • Executar os testes do programa em modo OFF-line. • Realizar o comissionamento da máquina. • Transferir o programa para o CLP • Executar os testes do programa em modo ON-line • Armazenar os programas fontes no CLP. (Quando desejado) 37 de 159 Criando um novo Projeto • Entre no menu principal opção FILE � NEW , ou selecione o ícone . Isto irá abrir a seguinte tela: Seleção do tipo de CPU • No item Configuration selecione a CPU que irá utilizar para este programa, por exemplo: • Ao selecionarmos a XV-1xx-V2.3.9 SP3 escolhemos uma CPU da IHM modelo XV1xx. Com isto a tela do Target Settings e o CODESYS, se modela para podermos configurar este tipo de CPU. • Os itens Target Plataform, Memory Layout, General, Network functionality e Visualization serão abordado em outras documentações. 38 de 159 • Ao selecionarmos a CPU que desejamos utilizar, pressionamos OK. • Na opção Tipo do POU selecionamos se queremos criar um programa, um Function Block ou uma função. Funções são elementos de software, que podem ser utilizados várias vezes dentro de um mesmo programa, de tal forma que, quando executados com um certo conjunto de valores de entrada, sempre produzem um único valor como resultado. Blocos de funções são uma categoria da Unidade de Organização de Programa (POU). Que permitem um algoritmo específico, ou conjunto de ações, que podem ser chamados em várias instâncias dentro de um mesmo programa, de tal forma que, a serem aplicados em um conjunto de dados de entrada eles produzem um novo conjunto de dados de saída. • No nosso caso iremos selecionar a opção Program, pois iremos criar primeiro um programa. • Na opção nome do POU deixamos PLC_PRG. Este nome, na programação mono-task, designa o programa principal, ou seja, o compilador sabe que é por este programa que o equipamento irá começar a execução. • Na linguagem podemos escolher entre seis linguagens de programação diferentes. • Para este guia rápido estaremos trabalhando com a linguagem em Ladder (LD). • Assim que pressionarmos OK na tela New program estaremos dentro do ambiente CoDeSys. • Agora nós precisamos configurar o hardware do CLP. Para isto selecione no organizador a pasta resources: Tipo do POU Nome do POU Linguagem do POU 39 de 159 Recursos Variáveis Globais Bibliotecas Log Browser Configurador de Hardware do CLP Ferramenta de Visualização (TRACE) Configuração da CPU Gerenciador de Tarefas Ferramenta de Visualização e Receitas. • Selecione a opção PLC-Configuration. Nesta tela estaremos configurando o Hardware do CLP. Configurando Hardware XV100 Dependendo do Hardware selecionado na etapa anterior, vamos configurar o mesmo de uma maneira diferente no software. Caso trabalhemos com um CLP da IHM , ou seja uma IHM com CLP e cartões remotos de entradas e saídas conectados via rede CanOpen através de uma gateway, procedemos da seguinte maneira: Trabalhando com IHM+CLP. Quando trabalhamos com o conjunto IHM+CLP incorporado, a única diferença que existe na configuração de hardware é na hora de definir a rede e o gateway que será utilizado no projeto. Como o equipamento possui apenas expansão através de rede de comunicação a criação de seu hardware é explorada no capítulo seguinte. Topologia do equipamento Parametrização 40 de 159 Trabalhando com IOs remotos. Quando temos um equipamento cujos IOs serão remotos, temos que configurá-los conforme mostrado a seguir. Clicamos na CPU com o botão direito, selecionamos a opção “Append Subelement” e logo em seguida escolhemos a rede que estamos trabalhando. Para este exemplo vamos utilizar a rede CanMaster. Clicando na aba superior direita escolhemos a aba “CAN parameters”. A tela que se abre então nos permite parametrizar a rede escolhida. No caso destarede devemos escolher a velocidade (Baud Rate), neste caso vamos trabalhar com 125.000 Bits/s. Outro parâmetro a ser configurado é o endereço do mestre (Node-Id), neste caso vamos trabalhar com o número de nó igual a 1. Vamos inserir agora um escravo na topologia, clique uma vez mais com o botão do mouse, desta vez sobre o ícone CanMaster � Append Subelement. 41 de 159 Selecionamos o módulo desejado. Neste caso selecione o XN-GWBR- CANOPEN (XN270325V400.EDS). Os números finais da codificação, ou seja, os números que vem depois do “v” indicam a versão do equipamento, sempre escolhemos a versão mais atual quando estamos trabalhando com um projeto novo. Outros equipamentos em rede CANOpen, ou Profibus_DP podem ser adicionados ao software, basta copiar os EDS ou GSD na pasta correspondente: C:\Program Files\Common Files\CAA-Targets\Eaton Automation\V2.3.9 SP2\PLCConf ou C:\Program Files\Common Files\CAA-Targets\Eaton Automation\V2.3.9 SP2 (Patch 1)\PLCConf ou C:\Arquivos de Programas\Common Files\CAA-Targets\Eaton Automation\V2.3.9 SP2\PLCConf ou C:\Program Files\Common Files\CAA-Targets\Eaton Automation\V2.3.9 SP3\PLCConf Agora que escolhemos o módulo XI/ON nós vamos configurar as entradas e saídas do mesmo. Basta selecionar o módulo recém importado na configuração e clicar no ícone IOassistant. (Atenção, o IOAssistant precisa ser rodado pelo menos uma vez antes de realizar esta operação.) 42 de 159 Ao selecionarmos a opção IOassistant o mesmo irá se abrir e configuramos a nossa ilha. Assim que a configuração está encerrada fechamos o IOassistant e temos a nossa ilha configurada. Outro parâmetro a ser configurado é o endereço do escravo (Node-Id) em CanOpen Parameter, neste caso vamos trabalhar com o número de nó da remota igual a 2 No comentário a parte mais importante é a que está em destaque: • XN-16DO, indica que o módulo em questão é um módulo com 16 saídas digitais. • _1_1, estes dois números seguintes indicam que é o módulo número1, primeiro byte, ou seja, saídas de 0a 7 • _1_2 indica é o primeiro módulo segundo byte, ou seja, saídas de 8 a 15. Quando colocamos uma remota na IHM com CLP, o endereçamento das variáveis digitais fica aparecendo no Configurador de Hardware do CLP como Byte, ou seja, fica o conjunto de 8 bits tanto nas entradas como nas saídas digitais. Para endereçar esta entrada e saídas no programa sugerimos criar um objeto na Variável Global chamada por exemplo “Entradas_Saidas”. Esta sugestão é somente para poder organizar melhor os Tags no programa. 43 de 159 Vá até a aba Resources e com o botão direito do mouse sobre Global Variables selecione a opção Add Object... Coloque o nome Entradas_saidas em Name of global variables list e termine com um OK 44 de 159 Coloque os seguinte endereços para nosso exemplo: (*Entradas digitais*) Partida_Motor AT%IX0.0: BOOL; Parada_Motor AT%IX0.1: BOOL; (*Saídas digitais*) Contator_Principal AT%QX0.0: BOOL; Contator_Estrela AT%QX0.1: BOOL; Contator_Triangulo AT%QX0.2: BOOL; • Salve agora o que foi feito indo no menu File � Save. Ou clique no ícone . Objeto criado em Global Variables Endereçamento das variáveis Comentários Nome das variáveis Endereços conforme entradas e saídas de configuração de Hardware 45 de 159 Configurando Hardware XC100/XC200 Caso trabalhemos com um CLP do tipo XC, ou seja um CLP com cartões locais conectados à CPU, procedemos da seguinte maneira: • Para adicionar mais placas selecione um dos EMPTY-SLOT com o botão direito do mouse, logo em seguida escolha a opção Replace Element:. • Nesta tela escolhemos qual o módulo local que será colocado com a CPU, no caso do XC100 e XC200 podemos colocar até 7 módulos locais ao lado da CPU podendo chegar a 15 caso utilize o módulo XIOC-BP-EXT . • Para este exemplo selecione o módulo XIOC-16-DI. • Coloque mais um módulo XIOC-16-DO-S ao lado. 46 de 159 • Pressione com o botão esquerdo do mouse o símbolo + que aparece do lado esquerdo do XIOC-16DI. • Selecione novamente o símbolo + que aparece do lado esquerdo do AT %IW2 : WORD ; • Abra os sub-menus das entradas e saídas que estão incorporadas na CPU. • Clique duas vezes com o botão esquerdo do mouse, entre o quadrado e o AT %IX0.0 : BOOL ; • Aqui escreveremos o nome da variável, no nosso caso PartidaMotor. • Crie as seguintes variáveis nas entradas e saídas do CLP. Endereço WORD desta placa Endereçamento Bit a Bit desta placa 47 de 159 48 de 159 • Do lado esquerdo da tela existe a opção de inserirmos comentários para cada uma destas variáveis. • Para cada uma das variáveis insira os seguintes comentários. • Salve agora o que foi feito indo no menu File � Save. Ou clique no ícone . 49 de 159 COMEÇANDO A PROGRAMAR • Agora iremos criar um programa simples para conhecermos melhor o ambiente do CoDeSys. O programa a ser criado é uma partida estrela- triângulo de uma bomba de vácuo. • No organizador agora escolha a opção POUs e selecione o PLC_PRG. • Na área do programa clique sobre a linha de comando que aparece e clique no menu em Insert � Contact, ou pressione o ícone na barra de ferramentas. • Na linha de comandos irá aparecer um contato NA : • Clicando nas interrogações poderemos escrever o nome deste contato. Podemos ainda pressionar a tecla F2 de nosso computador: ORGANIZADOR Declaração de variáveis locais Barra de ferramentas Status simulador Online/offline Linhas de Comando ÁREA DO PROGRAMA 50 de 159 • No tipo da variável escolha o Global Variables. No lado das variáveis disponíveis escolha o objeto Entrada_Saida e selecione o tag PartidaMotor (BOOL). • Clique novamente na linha de comandos, e insira novamente um contato, este contato irá sair em série com o que já existe. Desta vez selecione a variável ParadaMotor (BOOL). • Clique no contato abaixo do ParadaMotor e pressione na barra de ferramentas a opção Tipo de variável Variáveis disponíveis Comentário da variável selecionada 51 de 159 • Clique agora no contato abaixo do PartidaMotor e selecione na barra de ferramentas a opção . • Faça o mesmo procedimento e coloque neste contato a variável ContatorPrincipal. • Clicando novamente na linha de comando, selecione agora na barra de ferramentas a opção . • Isto irá inserir uma bobina de saída nesta linha lógica. Utilize o mesmo procedimento para colocar o tag dela, no caso ContatorPrincipal. • Com isto nós criamos a primeira linha lógica de nosso programa. Salve as alterações e agora vamos inserir a próxima linha. • Vá no menu principal e selecione INSERT � Network (After). • Uma segunda linha irá surgir, coloque um contato NA do ContatorPrincipal como mostrado abaixo 52 de 159 • Nós iremos criar agora o Controle dos Contatores Estrela e triângulo. Assim que o ContatorPrincipal entra, o ContarEstrela também liga, permanece alguns segundos e desliga. • Iremos inserir então um temporizador para determinar o tempo que o contator estrela fica ligado. • Clique na linhada segunda lógica com o botão direito do mouse e selecione Function Block... • Selecione na biblioteca Standard.lib o bloco de função TON e selecione OK • Um temporizador irá aparecer no meio de nossa linha lógica. • Vamos clicar nas interrogações acima do temporizador e colocar o nome do temporizador , vamos chamá-lo de TempoDesligaEstrela. • Assim que damos um nome para o temporizador, a seguinte janela irá se abrir: 53 de 159 • Isto ocorre pois o assistente de declaração verifica que não há nenhuma variável declarada como TempoDesligaEstrela, por causa disto, ele solicita que entremos com maiores dados sobre esta variável. • Deixe esta caixa de diálogos como mostrada acima. • O bloco de função irá aparecer na declaração local de variáveis. Declaração de variáveis em FREE MODE Declaração como uma tabela • A declaração pode aparecer destas duas formas diferentes, FREE MODE ou Tabelada. Para alternar entre estes modos de exibição, clique com o botão da direita sobre o campo da declaração de variáveis e selecione Declaration as tables • Coloque uma bobina na linha lógica 2, logo após o temporizador e coloque o nome de ContatorAuxiliar. • A mesma tela do assistente de declaração se abre, porém desta vez no tipo da variável selecione BOOL. Classe Comentários Nome da variável Tipo da variável 54 de 159 • A segunda linha do nosso programa está pronta, e a declaração de variáveis também. • Na interrogação que surge do lado esquerdo do nosso temporizador escrevemos o tempo desejado. Por se tratar de uma entrada do tipo TIME, o tempo deve ser escrito da seguinte forma: T#1D6H20M15S300MS Onde 1D significa o tempo de 1 dia 6H tempo de 6Horas 20M tempo de 20 minutos 15S tempo de 15 segundos 300MS tempo de 300Milésimos de segundos. • Para criarmos um temporizador de 3 segundos então escrevemos T#3S. • Nosso programa ficará deste jeito: • Agora insira mais uma linha lógica abaixo e coloque a seguinte lógica: • Assim que o ContatorPrincipal ligar o ContatorEstrela ficará ligado até o tempo de 3 segundos se esgotar. • Crie agora mais uma linha, abaixo desta, com o seguinte contato: 55 de 159 • Coloque agora um contato NA e pressione F2. • Assim que a tela Help Manager aparecer selecione Local Variables � TempoDesligaEstrela � Q. Como mostrado abaixo: • Termine esta linha, ela deverá ficar desta maneira: • Na quarta linha lógica, no segundo contato da esquerda para direita, nós usamos o TAG TempoDesligaEstrela.Q, poderíamos ter utilizado o próprio ContatorAuxiliar sem problemas, fizemos isto exatamente para demonstrar uma funcionalidade a mais do programa. 56 de 159 COMPILANDO O PROGRAMA • Para compilar o programa, entre na opção Project � Rebuild All... • Isto irá compilar todo o seu projeto. Uma tela irá aparecer abaixo de seu programa mostrando possíveis erros ocorridos no seu programa. Para localizar o erro, clique duas vezes em cima dele e você irá para a linha onde este erro está. • Para maiores informações sobre os erros, por favor consulte o manual do CODESYS, ele contém um apêndice com os principais erros. SIMULANDO O PROGRAMA • Para utilizar as ferramentas de simulação você deve ter o programa compilado como se você fosse transferi-lo para o CLP. • Habilite no menu principal a opção ON LINE � Simulation Mode...isto irá colocar o programa em modo de simulação. • Agora selecione a opção ON LINE � Login... isto fará com que o software faça um Login com um CLP virtual. • Este CLP virtual inicializa em STOP, vá novamente para ON LINE � Run e estaremos com este CLP virtual em modo RUN. A tela que aparecerá é a seguinte: 57 de 159 • Para forçar entradas, saídas ou memórias internas podemos proceder de várias maneiras diferentes. • Dê um duplo clique com o botão da esquerda do mouse sobre o tag do contato PartidaMotor, verifique que a cada duplo clique ele muda o desenho: Contato NA logicamente aberto Tag na cor preto, com um quadrado na parte inferior com as bordas azul claro preenchimento azul escuro. Contato NA logicamente aberto, forçar ON quando do comando FORCE Tag na cor preto, com um quadrado na parte inferior com as bordas Variáveis ON LINE Programa Contato Logicamente Fechado Bobina Logicamente Desligada Contato Logicamente Aberto CODESYS ONLINE CODESYS MODO SIMULAÇÃO CLP MODO RUN 58 de 159 azul claro sem preenchimento. Contato NA logicamente aberto, forçar OFF quando do comando FORCE. • Se dermos mais um duplo clique o contato volta ao estado anterior. • Dê um duplo clique no Tag e deixe-o na posição forçar ON. • Agora pressione F7, ou vá até o menu Online � Force Values. O nosso botão de partida será forçado para a situação ON. Observe que o TAG PartidaMotor aparece em vermelho. Ao redor da quadrado azul também aparece uma linha vermelha para indicar que esta variável está sendo forçada. Contato NA logicamente fechado, forçado. • Repare que a indicação FORCE aparece no canto esquerdo da tela, para indicar que existem variáveis forçadas em seu programa. • Se quisermos forçar várias variáveis ao mesmo tempo, podemos ir clicando com o mouse e deixando-as nos valores lógicos desejados, assim que pressionamos F7 os valores são carregados para os Tags. • Verifique o funcionamento do seu programa, ele deve ligar o contator principal juntamente com o estrela, contar um tempo de 3 segundos, desligar o contator estrela, esperar mais um segundo e ligar o contator triângulo. • Vamos agora retirar o comando de partida, clique novamente com o botão esquerdo do mouse sobre o TAG PartidaMotor e verifique como ele muda o status: Contato NA logicamente fechado, forçado. Tag em vermelho, aparece um quadrado na parte inferior do contato com bordas azul claro e preenchimento cinza. Contato NA logicamente fechado e forçado. Liberar comando FORCE quando ocorrer novo comando FORCE. Tag em vermelho, aparece um quadrado na parte inferior do contato com bordas azul claro sem preenchimento. 59 de 159 Contato NA logicamente fechado e forçado. Forçar estado OFF quando ocorrer novo comando FORCE. • Se estivéssemos ONLine com o CLP, bastaria colocarmos o comando Liberar comando Force, que o TAG assumiria o valor da entrada digital logo em seguida. • Como estamos com um CLP virtual, que não possui entradas físicas, para desligarmos adequadamente este contato precisamos forçá-lo para a condição OFF e logo em seguida liberar o comando force. • Experimente agora forçar o botão de desliga. Force-o para a condição ON (Aberto pois ele é um NF), logo em seguida para a condição OFF e então libere o FORCE. • Estas funções estão disponíveis tanto no modo Simulação, como conectado com o CLP. 60 de 159 Forcando variáveis pela configuração do XC100/200 • Quando utilizamos as linhas de CLP’s XC100 ou XC200,podemos forçar os elementos de entrada e saída utilizando XC100 ou XC200. Desconsidere este tópico se não está trabalhando com estes CLP’s • No Organizador vá em Resource � PLC Configuration • Para forçar a entrada PartidaMotor basta clicar uma vez com o botão esquerdo do mouse no quadrado que se encontra à esquerda do TAG. • Para desligá-lo é só clicar novamente neste quadrado. • Acione agora o TAG ParadaMotor. Status das entradas / saídas Valor do BYTE em questão61 de 159 CRIANDO TELAS DE SIMULAÇÃO • Para criar telas de simulação é necessário estar com o simulador parado, por isso vá até a opção menu Online � Logout. • Vá agora até o organizador e selecione a opção Visualizations. • Clique com o botão da direita do mouse sobre a pasta Visualizations e selecione a opção ADD Object... • Isto abrirá a seguinte tela: • Dê um nome para este Objeto de Visualização, por exemplo VIS1. ZOOM da TELA Organizador Tela de Visualização Coordenadas XY do cursor Elemento selecionado para desenho. Status CoDeSys. 62 de 159 • Itens da barra de ferramentas - Quadrado - Quadrado com bordas arredondadas - Círculo - Polígono - Linha - Linha Curva - Segmento de Círculo - Importar Bitmap - Mostra outras telas em área definida - Botão - Importa figuras WMF. - Tabela. - Meter - Gráfico de barras - Histograma • Primeiramente vamos criar um botão de Partida. Clique no ícone para criar um botão na tela de visualização. • Assim que você selecionar esta opção, clique e arraste o mouse na tela de visualização para criar o botão 63 de 159 • Dê um duplo clique neste botão para editá-lo • Para cada item selecionado, teremos uma caixa de diálogo diferente. • Selecione a opção Text • Escreva no texto do botão Partida Motor. Mantenha o alinhamento central e escolha uma fonte de texto qualquer. Importar Bitmap Criar textos Associação com variáveis Entrada de dados Tooltip Texto do botão Alinhamento do texto Fonte do texto 64 de 159 • Selecione agora a opção Input. • Selecione a opção Tip Variable. Clique com o mouse dentro do quadro branco e pressione F2. • Assim que a tela help manager abrir selecione em Entradas_Saidas � PartidaMotor (BOOL) • Selecione agora Text for Tooltip Botão tipo PUSH Botão tipo retenção Inverter botão tipo PUSH Chama outra tela de visualização Executa um programa Entrada de dados pela variável ´Textdisplay´ 65 de 159 • Escreva em Content: Ligar a Bomba de Vácuo. • Pressione OK e o botão de partida estará pronto. Vamos agora criar o botão de parada, basta criar um outro botão do lado deste e configurá-lo da seguinte maneira. 66 de 159 • Vamos criar agora os sinaleiros do nosso motor. Crie um círculo ao lado dos botões ( ) conforme abaixo • Dê um duplo clique no círculo e a tela de configuração desta figura irá aparecer. • Na opção Text � Content escreva o seguinte: Bomba de Vácuo • Entre agora na opção Color Controle da forma Texto da figura Contorno Cores Controle de movimentos Variáveis Entrada de dados Tooltip 67 de 159 • Nesta opção podemos controlar as cores de nosso objeto. • Em Color escolhemos a cor natural de nosso objeto e em Alarm Color escolhemos uma cor a ser utilizada quando a variável for 1. • Clique em color � Inside e escolha a cor vermelha. • Selecione agora a opção Alarm color � Inside e escolha a cor verde. • Clique agora na opção Variables • Pressione a tecla F2 no campo Change color. • No Help Manager selecione em Entradas_Saidas� ContatorPrincipal. • Selecione agora a opção Text for Tooltip e escreva o seguinte: Contator Principal Bomba de Vácuo. • Crie o mesmo procedimento para os outros dois contatores como abaixo. Utilize a opção CTRL+C (Copiar)e CTRL+V (Colar) para que os círculos saiam iguais. Cor utilizada na situação normal Cor dentro da figura Figura sem preenchimento Cor do frame da figura Figura sem FRAME Cor utilizada na situação alarme Torna o objeto invisível Muda a cor do objeto Coloca um valor no objeto 68 de 159 • Nosso display irá ficar desta forma: • Vamos gerar um mostrador de tempo. Faça um quadrado ( ) logo abaixo dos botões de partida. A tela de configuração é idêntica à do círculo. • Configure conforme abaixo 69 de 159 • O CODESYS substitui a expressão %s pelo valor constante em Textdisplay. (Veja abaixo) • Selecione agora a opção Variables. • Coloque o cursor dentro do quadrado branco em frente a Textdisplay. • Pressione F2 e selecione PLC_PRG � TempoDesligaEstrela � ET (TIME) • Nossa tela de visualização está pronta: • Vamos colocar o programa mais uma vez em funcionamento • Certifique-se que o CODESYS esteja em modo de simulação (Online � Simulation Mode...) • Clique no menu Online � Login e logo em seguida Online � RUN. Sistema parado • Clique no botão Partida Motor. Observe que se você segurar o mouse sobre um objeto ele irá exibir o texto digitado em Tooltip. 70 de 159 Sistema partindo • Após 3 segundos a contatora estrela desliga. E após mais um segundo a contatora triângulo é acionada. Motor em regime normal. TRABALHANDO COM BREAK POINTS E CONTROLADORES DE CICLO • Break Points são paradas criadas em nosso programa para nos auxiliar nas etapas de testes. • Coloque o programa em LOGIN no modo de simulação, mas não coloque o programa em RUN. Tempo decorrido Tooltip 71 de 159 • Do lado esquerdo podemos ver a numeração das linhas lógicas. • Clique com o mouse sobre o número 2 e o número 4. • Acabamos de criar nas lógicas 2 e 4 break points. A cor azul claro indica onde estão os break points. • Quando selecionarmos RUN, o programa irá rodar até chegar em um break point, então ele irá ficar parado neste ponto até darmos o comando RUN novamente. • Vá no menu Online � RUN, ou pressione F5. 72 de 159 • O programa roda e irá parar na linha 2. Esta assume a cor vermelha para indicar onde o programa parou • A linha 2 e a três só serão executadas quando pressionarmos RUN novamente. • O programa irá rodar até encontrar outro break point. No nosso caso o próximo break point está na linha 4. • O programa só executará a linha 4 , 5 e 1 se pressionarmos RUN novamente. • O programa volta a parar na linha 2. 73 de 159 • Para desativar o break point clique uma vez com o botão esquerdo do mouse sobre a linha2 e 4. • Podemos ainda trabalhar com um controlador de ciclo, ou seja, um comando que induz o CLP a executar um ciclo de cada vez. • Entre em Menu Online � Single Cycle ou pressione CTRL + F5. Com isto o programa irá rodar uma vez e logo em seguida entrará em stop. • Outra ferramenta é o Step. Este comando faz com que o CLP execute uma linha lógica de cada vez. • Crie um break point na linha 1 do programa e entre no Menu Online � Run ou pressione F5. • Entre no menu Online � Step in , ou pressione F8. • Repare que apesar de não termos criado um break point na linha dois, esta fica vermelha. 74 de 159 • Se pressionarmos F8 ou dermos mais uma vez o comando Step In, a linha 2 será executada e o programa irá parar na linha3. • Caso pressionemos F5 ou executemos o comando RUN, o programa irá executar as linhas lógicas deste ponto em diante e irá parar assim que encontrar um break point. Comunicação em Ethernet com IHM+CLP. A interface Ethernet do dispositivo é utilizada para a visualização "GALILEO", como também programação do PLC com "XSoft-CoDeSys". Para a comissionamento
Compartilhar