INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA 2007/2008 Semestre Inverno DEPARTAMENTO DE ENGENHARIA MECÂNICA Relatório de Programação de Autómatos Nome: Bruno Amaral nº28608 Data: 1422008 André Santos nº28620
1 Índice 1. Introdução... 22 2 Descrição do problema... 23 3 Descrição do hardware... 36 1.1 Caracterização do autómato... 36 1.2 Caracterização do hardware do Processo... 39 1.3 Listagem dos sinais usados no comando do Processo.311 4 Resposta às questões no enunciado...413 2. Conclusões...425 3. Bibliografia...426 21
1. Introdução Este trabalho, da cadeira de Programação de Autómatos, tem como objectivo desenvolver um programa que permita comandar um conjunto de semáforos num cruzamento rodoviário. A ferramenta de trabalho utilizada foi o programador da SIMATIC S7300. Para além da conjugação dos semáforos, terseha de obedecer a determinadas especificações para o bom funcionamento do processo, afim de simular uma situação real. A programação será efectuada primeiramente na linguagem LAD, sendo utilizados blocos de funções na mesma. As funções utilizadas controlarão os tempos de abertura dos vários semáforos individualmente, bem como o tempo durante o qual vigoram as respectivas luzes verde, amarela e vermelha. Por fim, pretendese programar em Grafcet todo o comando do sistema. 22
2 Descrição do problema Pretendese programar o funcionamento dos semáforos de automóveis e peões do cruzamento apresentado na figura abaixo. O cruzamento resulta da intersecção de uma avenida segundo o eixo N S (NorteSul) e uma outra avenida segundo o eixo WE (OesteEste). 23
Para o bom funcionamento do cruzamento rodoviário, foram impostas sequências de funcionamento para os semáforos (requisitos para o programa). Como exemplo, descrevese a sequência de funcionamento dos semáforos na avenida NS: 1. Inicialmente, os semáforos a estão abertos durante 20 s. 2. O semáforo b abre durante 10 s. Durante esse tempo, pe e pn estão abertos. 3. O semáforo c abre durante 10 s. Durante esse tempo, pw e ps estão abertos. 4. Se, na fase 1, um botão de peões for accionado, os semáforos a começam a fechar ao fim de 2 s e passase à fase 2 ou 3, consoante o botão que tiver sido accionado. O modo de funcionamento dos semáforos para a avenida WE é idêntico a este, e o fluxo de trânsito nesta avenida alterna com o da NS. Assim, ao fim de um ciclo de trânsito de uma avenida, seguese o ciclo da outra. Problemas propostos: a) Escreva uma função em LAD para comandar um ciclo de abertura de um semáforo. Esta função deve receber os endereços da luz verde, amarela e vermelha, e o tempo de abertura do semáforo. A função activará as luzes na sequência verde, amarelo, vermelho, sendo que o tempo de verde é o fornecido como parâmetro da função e o tempo de amarelo é fixo, de 3s. Apresente um diagrama temporal do ciclo que vai implementar, incluindo temporizadores e outras variáveis de que necessitar. 24
b) Desenvolva, em LAD, um programa para realizar o comando do sistema de semáforos, respeitando as especificações apresentadas acima. Se necessário, pode criar mais funções para além da pedida na alínea anterior. Se necessitar de usar variáveis adicionais (Memórias), apresente uma descrição do seu significado. c) Desenvolva, em Grafcet, um programa para realizar o comando do mesmo sistema. 25
3 Descrição do hardware 1.1 Caracterização do autómato Características fundamentais do autómato usado para comandar o processo. Tipo de módulo Fonte de Alimentação Tensão de entrada 120/203 V AC 24/48/60/110 V DC Range Permitido 93 a 132 V AC / 187 a 264 V AC 16.8 a 138 V DC Corrente de entrada 0.8A / 0.5A 2A / 1A 3.5A / 1.7A 2.1A / 1.2A 4A(24V) / 0.9A(110V) Tensão de Saída 24 V DC Corrente de Saída 2A 5A 10A 5A 2A Proteção de curtocircuito electrónica electrónica, restart automático N o. Encomenda Grupo 6ES7 3071BA0... 6ES7 307 1EA0... 6ES7 307 1KA0... 6ES7 307 1EA8... 6ES7 3051BA8... CPU s Compactas CPU 312C CPU 313C CPU 313C2 PtP Cod. de Encomenda 6ES73125BD.. 6ES73135BE.. 6ES73136BE.. Memória principal 16 KByte 32 KByte 32 KByte Tempos de processamento Operações binárias Operações com palavras 0,2 µs a 0,4 µs 1 µs 0,1 µs a 0,2 µs 0,5 µs 0,1 µs a 0,2 µs 0,5 µs Faixas de endereçamento Área total de endereçamento de I/O Área de Imagem de processo I/O Canais digitais totais Canais analógicos totais 1024/1024 byte 128/128 byte máx. 256 máx. 64/32 1024/1024 byte 128/128 byte máx. 1024 máx. 256/128 1024/1024 byte 128/128 byte máx. 1024 máx. 256/128 Funções Integradas Contadores Saídas de pulsos 2 encoders incrementais 24V/10 khz 2 canais de modulação largura de pulso máx. 2,5kHz 3 encoders incrementais 24V/30 khz 3 canais de modulação largura de pulso máx. 2,5kHz 3 encoders incrementais 24V/30 khz 3 canais de modulação largura de pulso máx. 2,5kHz Medição de freqüência Posicionamento controlado 2 canais máx. 10kHz 3 canais máx. 30kHz 3 canais máx. 30kHz 36
Blocos de programa (FB s) de controle de malha integrados Regulador PID Regulador PID I/O Integrados Entradas Digitais Saídas Digitais Entradas Analógicas 10; DC 24V; todos canais podem ser usados para alarmes de processo 6; 24V DC; 0,5A 24; DC 24V; todos canais podem ser usados para alarmes de processo 16; 24V DC; 0,5A 4: ± 10V, 0..10V, ± 20mA, 0/4...20mA; 1: 0...600Ω, PT100 16; DC 24V; todos canais podem ser usados para alarmes de processo 16; 24V DC; 0,5A Saídas Analógicas Interfaces DP Número de segmentos DP int./cp3425 No. de escravos por estação Velocidade de transmissão 2: ± 10V, 010V, ± 20mA, 0/420mA Interfaces PtP Físicas Protocolos drivers RS485/422 3964 (R), RK512, ASCII CPU 313C2 DP CPU 314C2 PtP CPU 314C2 DP Cod. de Encomenda 6ES73136CE.. 6ES73146BF.. 6ES73146CF.. Memória principal 32 KByte 48 KByte 48 KByte Tempos de processamento Operações binárias Operações com palavras 0,1 µs a 0,2 µs 0,5 µs 0,1 µs a 0,2 µs 0,5 µs 0,1 µs a 0,2 µs 0,5 µs Faixas de endereçamento Área total de endereçamento de E/S Área de Imagem de processo E/S Canais digitais totais 1) Canais analógicos totais 1) 1024/1024 byte 128/128 byte máx. 1024 máx. 256/128 1024/1024 byte 128/128 byte máx. 1024 máx. 256/128 1024/1024 byte 128/128 byte máx. 1024 máx. 256/128 Funções Integradas Contadores Saídas de pulsos 3 encoders incrementais 24V/30 khz 3 canais de modulação largura de pulso máx. 2,5kHz 4 encoders incrementais 24V/60 khz 4 canais de modulação largura de pulso máx. 2,5kHz 4 encoders incrementais 24V/60 khz 4 canais de modulação largura de pulso máx. 2,5kHz Medição de freqüência Posicionamento controlado 3 canais máx. 30kHz 4 canais máx. 60kHz SFB p/ posicionamento de 1 eixo usando 2 DA, AA 4 canais máx. 60kHz SFB p/ posicionamento de 1 eixo usando 2 DA, AA Blocos de programa (FB s) de controle de malha integrados Regulador PID Regulador PID Regulador PID I/O Integrados Entradas Digitais Saídas Digitais Entradas Analógicas 16; DC 24V; todos canais podem ser usados para alarmes de processo 16; 24V DC; 0,5A 24; DC 24V; todos canais podem ser usados para alarmes de processo 16; 24V DC; 0,5A 4: ± 10V, 0..10V, ± 20mA, 0/4...20mA; 1: 0...600Ω, PT100 24; DC 24V; todos canais podem ser usados para alarmes de processo 16; 24V DC; 0,5A 4: ± 10V, 0..10V, ± 20mA, 0/4...20mA; 1: 0...600Ω, PT100 37
Saídas Analógicas Interface Profibus DP integrada Número de segmentos DP int./cp3425 No. de escravos por estação Velocidade de transmissão 1/1 32 12 MBit/s 2: ± 10V, 010V, ± 20mA, 0/420mA 2: ± 10V, 010V, ± 20mA, 0/420mA 1/1 32 12 MBit/s Interface Serial PtP integrada Físicas Protocolos drivers RS485/422 3964 (R), RK512, ASCII CPU s padrão CPU 313 CPU 314 CPU 315 Cod. de Encomenda 6ES73131AD.. 6ES73141AE.. 6ES73151AF.. Memória principal 12 Kbyte 24 Kbyte 48 Kbyte Tempos de processamento Operações binárias Operações com palavras 0,6 µs a 1,2 µs 2 µs 0,3 µs a 0,6 µs 1 µs 0,3 µs a 0,6 µs 1 µs Faixas de endereçamento Área total de endereçamento de E/S Área de Imagem de processo E/S Canais digitais totais Canais analógicos totais Interfaces Profibus DP Número de segmentos DP int./cp3425 No. estação escravas DP por CPU (interfaces integradas / CP 3425) Velocidade de transmissão 128/128 byte 32/32 byte máx. 256 máx. 64 entradas ou 32 saídas 512/512 byte 128/128 byte máx. 1024 máx. 256 entradas ou 128 saídas 512/256 byte 128/128 byte máx. 1024 máx. 256(máx. 256 entradas ou 128 saídas centrais) CPU 3152 DP CPU 3162 DP CPU 3182 DP Cod. de Encomenda 6ES73152AF.. 6ES73162AG.. 6ES73182AJ.. Memória principal 64 Kbyte 128 Kbyte 512 Kbyte Tempos de processamento Operações binárias Operações com palavras 0,3 µs a 0,62 µs 1µs 0,3 µs a 0,62 µs 1µs 0,1 µs 0,1µs Faixas de endereçamento Área total de endereçamento de E/S Área de Imagem de processo E/S Canais digitais totais Canais analógicos totais 38 1/1 Kbyte 128/128 byte máx. 8192 (1024 centrais) máx. 512(máx. 256 entradas ou 128 saídas centrais) 2/2 Kbyte 128/128 byte máx. 16384 (1024 centrais) máx. 1024(máx. 256 entradas ou 128 saídas centrais) 8/8 Kbyte 256/256 byte (pode ser expandida para 2048) máx. 65536 (1024 centrais) máx. 4096(máx. 256 entradas ou 128 saídas centrais) Interfaces Profibus DP Número de segmentos DP 1 / 1 1 / 1 2 / 2
integrado/cp3425 No. estação escravas DP por CPU (interfaces integradas / CP 3425) Velocidade de transmissão 64/64 12 Mbit/s 125/64 12 Mbit/s 32(MPISS), 125(DPSS)/64 12 Mbit/s 1.2 Caracterização do hardware do Processo Foi utilizado o Hardware Siemens S7 300 para a realização do trabalho prático. Este dispositivo possui entradas e saídas digitais/analógicas integradas no próprio autómato. As suas características são as seguintes: 16 entradas digitais (DI) de tipo standart: E124.0 a E124.7; E125.0 a E125.7; Níveis lógicos: 0: [3V, 5V], 1: [11V, 30V]; As 16 entradas estão inseridas num bloco, conectadas a interruptores de 3 posições situados mais acima no aparelho. Estes interruptores funcionam fornecendo impulsos na posição mais abaixo, e como interruptores na posição média (0) e alta (1); 16 Saídas digitais (DO): A124.0 a A124.7; A125.0 a A125.7; Níveis lógicos 0: 0V, 1: 24V; 8 das saídas, A124.0 a A124.7, estão situadas abaixo das entradas digitais E124.0 a E124.7. 4 entradas digitais rápidas (DI): E126.0 a E 126.3; Níveis lógicos 0: [3V, 5V], 1: [11V, 30V]; 39 Também se encontram conectadas a interruptores de 3 posições;
4 entradas analógicas (AI), isoladas galvânicamente entre si: PEW128, PEW130, PEW132, PEW134; Tensão de ±10 V e resolução de 11 bits + sinal; As entradas estão conectadas a um potenciómetro e a um voltímetro que permitem medir e injectar a tensão desejada; 1 saída analógica (AO): PAW128 (AO) Tensão de ±10 V e resolução de 11 bits + sinal; O estado do autómato é indicado através de 5 leds: SF indica problemas com o autómato. Entre outros casos activase quando o tempo de execução do ciclo é excedido, superando o tempo permitido; BATF indica o estado da bateria. No caso dos autómatos do laboratório este LED está sempre ligado, visto que não utilizam baterias; DC5V indica que está correcta a tensão interna de 5V que alimenta o CPU do autómato e a sua Bus interna; FRCE indica que a função de forçar se encontra activa; RUN indica que o CPU está a executar um programa; STOP indica que o programa está parado. Para executar os programas efectuados no laboratório, o comutador rotativo do estado do CPU deve estar na posição RUNP. 310
1.3 Listagem dos sinais usados no comando do Processo Função FC1: Significado Símbolo no programa Endereço no processo Endereço no autómato Variável de activação da função FC1 inicio 4.0 _ Activa luz vermelha do semáforo correspondente Activa luz verde do semáforo correspondente Activa luz amarela do semáforo correspondente Vermelho 2.0 Verde 2.1 Amarelo 2.2 Q124.0 (semáforo a); Q124.3 (semáforo b); Q125.0 (semáforo c). Q124.2 (semáforo a); Q124.5 (semáforo b); Q125.2 (semáforo c). Q124.1 (semáforo a); Q124.4 (semáforo b); Q125.1 (semáforo c). Temporização dada à luz verde do semáforo correspondente (temporizador T1) Tempo 0.0 _ 311
Bloco OB1: Significado Símbolo no programa Endereço no processo Endereço no autómato Variável de entrada que activa a função para o semáforo a Variável de entrada que activa a função para o semáforo b Variável de entrada que activa a função para o semáforo c a b d Liga a luz verde dos semáforos dos peões nas avenidas mais a Norte e a Este Verde NE _ (Não se retiraram estes dados no laboratório) Liga a luz vermelha dos semáforos dos peões nas avenidas mais a Norte e a Este Vermelho NE _ (Não se retiraram estes dados no laboratório) Liga a luz verde dos semáforos dos peões nas avenidas mais a Oeste e a Sul Verde WS _ (Não se retiraram estes dados no laboratório) Liga a luz vermelha dos semáforos dos peões nas avenidas mais a Oeste e a Sul Vermelho WS _ (Não se retiraram estes dados no laboratório) 312
4 Resposta às questões no enunciado A) A função que agora se pretende criar, FC1, irá ser responsável pelo controlo do funcionamento de todos os semáforos. Assim, para cada um dos dispositivos, apenas irão variar as respectivas variáveis de entrada (tempo da luz verde e variável de entrada que activa a função) e variáveis de saída (endereços das saídas que correspondem às luzes amarelas, vermelhas e verdes). FC1: Nesta linha de programação a variável correspondente a #inicio, quanto activada, activa o temporizador T1 e assegura que a luz vermelha não é activada. O temporizador SE apenas tem valor boleano igual a 1 durante o tempo programado. Visto que é de impulso memorizado, apenas inicia a contagem quando activado pelo 1º impulso da variável #inicio, não sendo reiniciado durante a contagem quando a variável é novamente activada. Na linha de código seguinte o temporizador 1, durante o período da contagem em que está activo, activa a luz verde. 413
De seguida, quando o valor do temporizador 1 vem a zero e apaga a luz verde, activase o temporizador 2 que será responsável pelo acender a luz amarela. Na proxima linha de programação, definese que quando o temporizador 2 é desactivado e o temporizador 1 se encontra igualmente desactivado, a luz vermelha é ligada e a luz amarela desligada. É feito um reset à variável de entrada e aos temporizadores 1 e 2 para que possam, respectivamente, reiniciar a função e recomeçar a contagem no ciclo seguinte. 414
A linha que se segue resulta de um ajuste efectuado ao programa, devido a este não funcionar da maneira esperada. De facto, antes deste acrescento a luz vermelha mantinhase acesa no início do 2º ciclo. Foi esta a maneira encontrada para solucionar o problema. Nas duas linhas de código seguintes, estabelecese a interrupção do temporizador 1 quanto a variável a está activa e é activado um dos botões de peões. No caso de ser activado o semáforo de peões da avenida mais a oeste e/ou a sul (pws), o resultado dessa acção é guardado na memória M15.0. No caso do semáforo de peões activado ser o da avenida mais a norte e/ou a este, tal acção fica gravada na memória M15.1. 415
Diagrama temporal: Para o ciclo normal, em que não é actuado nenhum dos botões de peões: 416 I124.0 a b c Verde a Amarelo a Vermelho a Verde b Amarelo b Vermelho b
Verde c Amarelo c Vermelho c T1 T2 M5.0 M11.0 M11.1 M10.0 M15.1 M15.0 Verde NE Vermelho NE Verde WS Vermelho WS 417
B) OB1: Este bloco é o responsável pela programação propriamente dita. Aqui são utilizadas funções previamente concebidas conjuntamente com linhas de programação em LAD. Na primeira linha de código associase a variável a correspondente ao semáforo a à variável início da função FC1. É igualmente definido o tempo durante o qual a luz verde se encontra ligada, através do valor inserido para o temporizador T1. Do lado direito do bloco da função são definidos os endereços dos outputs correspondentes às cores do semáforo. Este procedimento é repetido para os semáforos b e c. Contudo, devido a um conflito com a letra c utilizouse a letra d para nomear o último dispositivo. Na linha seguinte definese o input I124.0 como sendo o responsável pela activação da variável a, dando início ao ciclo. A linha apresentada abaixo diznos que quando não é activada nem a memória M15.0 nem a M15.1, e é detectada uma mudança de flanco negativa na variável a, guardada na memória M5.0, é activada a variável b. Isto corresponde a dizer que a variável a esteve activa durante todo o tempo para que foi inicialmente 418
programada, não tendo sido interrompida por nenhum botão de peões. No código seguinte, quando é detectada a desactivação da variável b, guardada na memória M10.0, é activada a variável d. 419
Agora passase a definir a configuração dos semáforos de peões enquanto os seus homólogos para o trânsito se encontram activos. Desta forma, quando o semáforo a está verde, todas as avenidas terão os semáforos de peões com a luz vermelha, estando as luzes verdes desligadas. Por sua vez quando o semáforo b está verde, as avenidas mais a norte e a este (NE) terão os semáforos de peões com luz verde, e as restantes irão apresentar luz vermelha. Por fim, quando o semáforo c (letra d na programação) está verde, as avenidas mais a oeste e a sul (WS) terão os semáforos de peões com luz verde e as restantes exibirão luz vermelha. 420
Por fim, é definido o que acontece quando o semáforo a está verde e é activado algum dos botões de peões das avenidas. Consoante o botão activado, assim o ciclo passará ou para a activação da luz verde do semáforo b, ou para a mesma acção para o semáforo c. Relembrase que consoante o botão de peões activado, é activada ou a memória M15.0 ou a M15.1. Tendo o acima dito em consideração, a programação agora apresentada leva a que ao ser detectada a desactivação da variável 421
a, guardada na memória M11.0, e a activação da memória M15.1, seja activada a variável b. O reset feito à memória M15.1 permite a sua posterior utilização num novo ciclo. A lógica da linha de código seguinte é em tudo semelhante à descrição anterior, diferindo apenas nas memórias e variáveis intervenientes. 422
C) GRAFCET FB1: 423
O Grafcet tem a grande vantagem de estabelecer uma ordem para as etapas e transições programadas. GRAFCET OB1: Aqui apenas é definido o input responsável pelo início do ciclo programado (I124.3). 424
2. Conclusões Programação de Autómatos 2008 Globalmente podese dizer que foram atingidos os objectivos do trabalho a que nos propusemos, visto que conseguimos programar os semáforos de trânsito e de peões do cruzamento em causa, cumprindo os requisitos estabelecidos. A maior dificuldade encontrada prendese com a sexta linha de código do bloco FC1, que foi inserida pelo método de tentativa erro. Esta teve como objectivo fazer o autómato realizar o que pela programação efectuada até então deveria realizar, podendo por isso ser considerada um truque. O facto do programa não aceitar a letra c como variável foi outra dificuldade encontrada, que foi resolvida através da substituição pela letra d. A temporização de 2 segundos entre o sinal emitido pelo botão de um semáforo de peões e o desactivar do semáforo a foi desprezada, por uma questão de simplificação, após a conversa com o professor. Esta temporização seria facilmente obtida utilizando um temporizador adicional nas últimas linhas de código do bloco OB1, na programação LAD. Não foi efectuada a programação dos semáforos da avenida Oeste Este, WE, visto que não estavam disponíveis outputs suficientes no autómato para tal. 425
3. Bibliografia Programação de Autómatos 2008 Apontamentos das Aulas Práticas Francisco, A., Autómatos Programáveis (Programação, GRAFCET, Aplicações), 2ª Edição, Lidel, 2003 Lewis, R. W., Programming Industrial Control Systems using IEC 11313 Revised Edition, The Institution of Electrical Engineers, 1998 Manuais Siemens (Fornecidos pelo Professor) Referências WEB: www.automation.siemens.com http://www.wallerath.com/html/s7300.html tm http://www.stefanosala.it/presentazione%20stefano%20sala.h 426