Linguagens PLC

Embed Size (px)

Citation preview

  • 7/30/2019 Linguagens PLC

    1/144

    Linguagens de Programao CLP

    Bruno Gomes Marques

    ufjfufjf

  • 7/30/2019 Linguagens PLC

    2/144

    2

    IEC - International Electro-technical Comission

    Surgiu em 1992

    20 anos aps criao do primeiro CLP

    Exigncia de padronizao

    IEC 61131

  • 7/30/2019 Linguagens PLC

    3/144

    3

    Dividida em 8 partes:

    IEC 61131-1 , Informaes gerias

    IEC 61131-2,Requisitos de Hardware

    IEC 61131-3,Linguagens de Programao

    IEC 61131-4,Guia de Orientao ao Usurio

    IEC 61131

  • 7/30/2019 Linguagens PLC

    4/144

    4

    IEC 61131-5,Comunicao

    IEC 61131-6,Comunicao via Fieldbus

    IEC 61131-7,Programao usando lgica Fuzzy

    IEC 61131-8,Guia para implementao delinguagens

    IEC 61131

  • 7/30/2019 Linguagens PLC

    5/144

    5

    Objetivos:

    Estabelecer critrios para seleo e aplicao de

    CLPs

    Especificar requisitos mnimos

    Definir regras :semntica sintaxe

    Definir comunicao

    IEC 61131

  • 7/30/2019 Linguagens PLC

    6/144

    6

    Benefcios

    Reduo de custos : treinamentos ,manuteno ,

    engenharia e consultoria

    Foco na soluo do problema , no na construodo software

    Reduo na dependncia de fornecedores :consultorias e hardware

    IEC 61131

  • 7/30/2019 Linguagens PLC

    7/1447

    Benefcios:

    Reduo de erros e inconsistncias nas lgicas

    Solues iguais para problemas iguais : mudaparmetro , no o software todo

    Uso de bibliotecas padres

    IEC 61131

  • 7/30/2019 Linguagens PLC

    8/1448

    IEC 61131 parte 3 linguagens de programao

    Objetivo

    Fornecer metodologia de construo de lgica deprogramao

    Permitir quebra do programa em partesgerenciveis

    IEC 61131

  • 7/30/2019 Linguagens PLC

    9/1449

    Definir 5 linguagens de programao

    Permisso de utilizao de outras linguagens

    desde que obedecida as mesmas formas dechamadas e troca de dados

    Visual Basic,Flow Chart,C++ , etc

    IEC 61131

  • 7/30/2019 Linguagens PLC

    10/14410

    Instruction List (IL)

    Structured Text (ST)

    Function Block Diagram (FBD)

    Ladder Diagram (LD)

    Sequential Function Chart(SFC)

    IEC 61131

  • 7/30/2019 Linguagens PLC

    11/144

    11

    IL e ST textuais

    LD e FBD grficas

    SFC grfica e textual

    IEC 61131

  • 7/30/2019 Linguagens PLC

    12/144

    12

    Lista de Intrues (IL)

    Linguagem de baixo nvel

    Menos amigvel

    Semelhante ao Assembly

    Origem europia

    IEC 61131

  • 7/30/2019 Linguagens PLC

    13/144

    13

    Linguagem bsica para exportao de programas(portabilidade)

    Otimizao de cdigos

    Ideal para pequenas aplicaes

    IEC 61131

  • 7/30/2019 Linguagens PLC

    14/144

    14

    Texto Estruturado (ST)

    Linguagem de alto nvel

    Semelhante ao Pascal

    Razes Ada , C

    IEC 61131

  • 7/30/2019 Linguagens PLC

    15/144

    15

    Ideal para:

    Tomada de decises

    Declaraes de variveis, Configuraes

    Clculos

    Definir aes e condies

    IEC 61131

  • 7/30/2019 Linguagens PLC

    16/144

    16

    Diagrama de Blocos Funcionais(FBD)

    Linguagem grfica

    Mais amigvel que as textuais

    Baseada em circuitos lgicos

    Descreve processo atravs de blocos interligados

    IEC 61131

  • 7/30/2019 Linguagens PLC

    17/144

    17

    Ideal para controle discreto ,sequencial , regulatrio

    Representao de fcil interpretao

    Destaca fluxo de informaes e processamento desinais

    Encapsula algoritmos

    IEC 61131

  • 7/30/2019 Linguagens PLC

    18/144

    18

    Diagrama Ladder

    Linguagem grfica

    Bastante amigvel

    Baseada em lgica de contatos

    IEC 61131

  • 7/30/2019 Linguagens PLC

    19/144

    19

    Fcil compreenso

    Adequada para controle discreto, combinacional e

    sequencial

    Linguagem mais utilizada

    Origem nos EUA

    IEC 61131

  • 7/30/2019 Linguagens PLC

    20/144

    20

    Grficos de funes sequenciais(SFC)

    Originou-se na Frana

    Baseado nas redes de Petri

    Norma IEC 848 Grafcet

    IEC 61131

  • 7/30/2019 Linguagens PLC

    21/144

    21

    Descreve o comportamento do programa

    Organiza estrutura interna

    Ajuda a decompor um problema de controle empartes gerenciveis

    Mantem viso global da soluo do problema

    IEC 61131

  • 7/30/2019 Linguagens PLC

    22/144

    22

    Usada na estruturao do problema , independenteda linguagem utilizada

    Fcil representao e interpretao

    Facilidade de diagnstico

    IEC 61131

    IEC 61131

  • 7/30/2019 Linguagens PLC

    23/144

    23

    Descreve comportamento do sistema

    Fcil localizao de falhas

    IEC 61131

    L dd

  • 7/30/2019 Linguagens PLC

    24/144

    24

    Linguagem Ladder

    Ladder

    L dd

  • 7/30/2019 Linguagens PLC

    25/144

    25

    Primeira Linguagem

    Diagrama de Contatos

    Escada

    Degraus

    Segue normas internacionais

    Ladder

    L dd

  • 7/30/2019 Linguagens PLC

    26/144

    26

    Ciclo de varredura

    Uma etapa ativa , restante inativa

    Clock Tempo total para realizar o ciclo

    Duas linhas verticais representando

    plos(fonte)

    Chaves NA ,NF

    Ladder

    L dd

  • 7/30/2019 Linguagens PLC

    27/144

    27

    Evitar quebra de paradigma

    Melhor aceitao

    Facilidade na transformao esquemaeltrico/ladder

    Ladder

    L dd

  • 7/30/2019 Linguagens PLC

    28/144

    28

    Ladder

    L dd

  • 7/30/2019 Linguagens PLC

    29/144

    29

    Ladder

    L dd

  • 7/30/2019 Linguagens PLC

    30/144

    30

    Ladder

    L dd

  • 7/30/2019 Linguagens PLC

    31/144

    31

    Ladder

    L dd

  • 7/30/2019 Linguagens PLC

    32/144

    32

    Ladder

    Ladder

  • 7/30/2019 Linguagens PLC

    33/144

    33

    Ladder

    Ladder

  • 7/30/2019 Linguagens PLC

    34/144

    34

    Ladder

    Ladder

  • 7/30/2019 Linguagens PLC

    35/144

    35

    Ladder

    Ladder

  • 7/30/2019 Linguagens PLC

    36/144

    36

    Ladder

    Ladder

  • 7/30/2019 Linguagens PLC

    37/144

    37

    Temporizador M2 = ajuste de tempo para acionamento de S1 M1 = contagem regressiva , quando temp acionado E1 = 1 , habilita contagem

    E2 = 1, inicia contagem

    Ladder

    Ladder

  • 7/30/2019 Linguagens PLC

    38/144

    38

    Partida estrela

    Tringulo

    Reduz corrente inicial

    Fiao de menor bitola

    Evita multa por baixo fator de potncia

    Ladder

    Partida com reverso

  • 7/30/2019 Linguagens PLC

    39/144

    39

    Partida com reverso

    Ladder

  • 7/30/2019 Linguagens PLC

    40/144

    40

    Ladder

    Partida com reverso

  • 7/30/2019 Linguagens PLC

    41/144

    41

    Partida com reverso

    Partida com reverso

  • 7/30/2019 Linguagens PLC

    42/144

    42

    Partida com reverso

    Partida com reverso

  • 7/30/2019 Linguagens PLC

    43/144

    43

    Aplicao prtica

    Partida sequencial de motores

    Trs motores

    Evita partida simultnea

    Evitar picos de consumo de energia e de corrente

    Partida com reverso

    Partida sequencial

  • 7/30/2019 Linguagens PLC

    44/144

    44

    Partida sequencial

    Segurana em prensas

  • 7/30/2019 Linguagens PLC

    45/144

    45

    Segurana em prensas

    Dois botes para acionamento

    Operador precisa usar as duas mos

    Evitar acidente

    Segurana em prensas

    Segurana em prensas

  • 7/30/2019 Linguagens PLC

    46/144

    46

    Segurana em prensas

    Ladder

  • 7/30/2019 Linguagens PLC

    47/144

    47

    Ladder

    Partida estrela - tringulo

    Ladder

  • 7/30/2019 Linguagens PLC

    48/144

    48

    K1 deve permanecer sempre ligado

    K3 fica ligado por 6 segundos(estrela)

    K2 liga logo aps k3 desligar

    k2 e k3 nunca podem ser ligados juntos

    Ladder

    Ladder

  • 7/30/2019 Linguagens PLC

    49/144

    49

    Ladder

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    50/144

    50

    Linguagem FBD

    Diagrama de Blocos

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    51/144

    51

    Equipamento comercial Logo 24RL

    Siemens

    Linguagem padronizada

    Diagrama de Blocos

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    52/144

    52

    Diagrama de Blocos

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    53/144

    53

    Diagrama de Blocos

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    54/144

    54

    Funes Gerais

    Tcnicas digitais

    Portas lgicas AND, OR ,NOR ,NAND...

    Diagrama de Blocos

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    55/144

    55

    Funo AND

    Diagrama de Blocos

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    56/144

    56

    Funo OR

    Diagrama de Blocos

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    57/144

    57

    Funo NAND

    Diagrama de Blocos

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    58/144

    58

    Funo NOR

    Diagrama de Blocos

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    59/144

    59

    Funes especiais

    Trg = trigger (disparo) , inicia a contagem

    Par = parameter (parmetro) ,tempos ajustado

    em segundos minutos ou horas

    Diagrama de Blocos

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    60/144

    60

    Retardo de ativao

    Trg = 1 inicia contagem do tempo ajustado Par = tempo ajustado

    Diagrama de Blocos

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    61/144

    61

    Retardo de Desativao

    Trg = 1 , sada ativada Trg = 0 , inicia contagem at desativao R = Reset , volta ao estado inicial

    ag a a de ocos

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    62/144

    62

    Rel de Impulsos

    Trg = 1, ativa ou desativa sada R = 1, desativa sada Par: ativa ou no remanecncia Sada Q muda de estado a cada pulso Trg

    g

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    63/144

    63

    Rel de Impulsos simtricos

    En = enable , habilita En = 1, aciona gerador de impulsos T= tempo de acionamento e desacionamento

    g

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    64/144

    64

    Rel de contato Passageiro

    Trg = 1 ,aciona sada imediatamente , iniciacontagem para desativao

    Par = tempo ajustado para desativao

    g

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    65/144

    65

    Rel de auto-reteno(SET-RESET)

    S = 1 ,sada Q ativada ,Q=1 R = 1 ,a sada Q desativada Par = 1 , ativa memria , Par = 0 ,desativa

    g

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    66/144

    66

    Contador crescente /decrescente

    R= 1, zera contagem , desativa sada Cnt = conta transies de 0 para 1 somente Dir =1 , contagem crescente ,0 decrescente Par = valor desejado para contagem

    g

    Partida com reverso

  • 7/30/2019 Linguagens PLC

    67/144

    67

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    68/144

    68

    O

    g

    Partida com reverso

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    69/144

    69

    O

    g

    O que acontece se I1 e 12 forem acionados simultaneamente?

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    70/144

    70

    Acionamento alternado de motores

    g

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    71/144

    71

    O que acontece se I1 for 0 ?

    g

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    72/144

    72

    Segurana de prensa com contato passageiro

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    73/144

    73

    Partida estrela-

    trinngulo

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    74/144

    74

    Partida estrela tringulo

    Diagrama de Blocos

  • 7/30/2019 Linguagens PLC

    75/144

    75

    Partida estrela tringulo

    B003 = OU exclusivo

    Structured Text

  • 7/30/2019 Linguagens PLC

    76/144

    76

    Linguagem ST

    Structured Text

  • 7/30/2019 Linguagens PLC

    77/144

    77

    Texto estruturado

    Linguagem de alto nvel

    Forte semelhana sinttica com Pascal

    Structured Text

  • 7/30/2019 Linguagens PLC

    78/144

    78

    Tipos de Dados

    Inteiros

    Structured Text

  • 7/30/2019 Linguagens PLC

    79/144

    79

    Nmeros de ponto flutuante

    Representao de tempo

    Structured Text

  • 7/30/2019 Linguagens PLC

    80/144

    80

    String

    Bit Strings

    Structured Text

  • 7/30/2019 Linguagens PLC

    81/144

    81

    Tipos de Dados derivados

    4 tipos

    struct Enumerated Sub-ranges

    Array

    Comando TYPE e END_TYPE

    Structured Text

  • 7/30/2019 Linguagens PLC

    82/144

    82

    Tipo Struct

    Dado composto

    Um TYPE pode conter um ou mais Structs

    Construdo com os comandos STRUCT e

    END_ STRUCT

    Structured Text

  • 7/30/2019 Linguagens PLC

    83/144

    83

    exemplo

    Structured Text

  • 7/30/2019 Linguagens PLC

    84/144

    84

    Tipo Enumerated

    Construdo colocando elementos daenumerao entre parnteses

    Cada elemento tem um nome diferente

    Structured Text

  • 7/30/2019 Linguagens PLC

    85/144

    85

    Exemplo

    Structured Text

  • 7/30/2019 Linguagens PLC

    86/144

    86

    Tipo Array

    Matrizes e Vetores

    Structured Text

  • 7/30/2019 Linguagens PLC

    87/144

    87

    Tipo Sub-Ranges

    Sub-intervalos

    Limite superior e inferior

    Structured Text

  • 7/30/2019 Linguagens PLC

    88/144

    88

    exemplo

    Structured Text

  • 7/30/2019 Linguagens PLC

    89/144

    89

    Comparao linguagem ST e Pascal

    Structured Text

  • 7/30/2019 Linguagens PLC

    90/144

    90

    Inicializao de matrizes

    Rpida e mais fcil em ST

    Requer maior esforo em Pascal

    Structured Text

  • 7/30/2019 Linguagens PLC

    91/144

    91

    Funes de Chamada

    Structured Text

  • 7/30/2019 Linguagens PLC

    92/144

    92

    Funes de Chamada

    FUNCTION ,END FUNCTION, VAR, END VARpertencem linguagem ST

    Structured Text

  • 7/30/2019 Linguagens PLC

    93/144

    93

    Instrues condicionais

    Structured Text

  • 7/30/2019 Linguagens PLC

    94/144

    94

    Instrues condicionais

    Principal diferena : BEGIN e END

    Omisso em ELSE e CASE

    ELSE IF omisso necessria de ponto e virgula

    no Pascal

    Structured Text

  • 7/30/2019 Linguagens PLC

    95/144

    95

    Laos lgicos

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    96/144

    96

    Linguagem LI

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    97/144

    97

    Intruction List

    Mnemnicos

    Assembly

    Operaes lgicas booleanas

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    98/144

    98

    Execuo mais rpida

    Dificuldade em alteraes no cdgo jimplementado

    Bom pra resolver problemas simples

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    99/144

    99

    Sintaxe

    Cada instruo comea em uma nova linha

    Contem rtulo , operadores e modificadores ,operando e comentrio

    Podem ser includas linhas em branco

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    100/144

    10

    0

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    101/144

    10

    1

    Rtulo (etiqueta)

    No pode exceder 16 caracteres

    Primeiro caracter deve ser uma letra

    Restante letra , numero ou smbolo

    No pode haver dois rtulos iguais

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    102/144

    10

    2

    Modificadores de instrues

    ( = adiada at encontrar )

    C = instruo executada somente se contedoatual diferente de zero

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    103/144

    10

    3

    Principais Comandos

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    104/144

    10

    4

    Principais Comandos

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    105/144

    10

    5

    Exemplos

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    106/144

    10

    6

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    107/144

    10

    7

    Onde est o erro ?

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    108/144

    10

    8

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    109/144

    10

    9

    Q1 = 1

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    110/144

    11

    0

    Q1 = 0

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    111/144

    11

    1

    Operaes adiadas

    LIFO

    Last input , First output

    Altera ordem natural das intrues

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    112/144

    11

    2

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    113/144

    11

    3

    Q1 = (I1.I2)+(I3.I4)

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    114/144

    11

    4

    Podem ser usados rels auxiliares

    Armazenamento temporrio de informao

    Vantagem: Melhora clareza do programa

    Desvantagem: precisa de mais memria

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    115/144

    11

    5

    exemplo

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    116/144

    11

    6

    Q1 = (I2+I2).(I3+I4)

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    117/144

    11

    7

    Com rels auxiliares

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    118/144

    11

    8

    Mnemnicos de alguns fabricantes

    Lista de Instrues

  • 7/30/2019 Linguagens PLC

    119/144

    11

    9

    exemplo

    Liguagem SFC

  • 7/30/2019 Linguagens PLC

    120/144

    12

    0

    Linguagem SFC

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    121/144

    12

    1

    GRAFCET

    Desenvolvida em 1975 por franceses

    Facilidade de interpretao

    Modelagem de sequenciamento e funeslgicas e

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    122/144

    12

    2

    Norma IEC 848

    Norma francesa NF C03-190

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    123/144

    12

    3

    Elementos de um Grafcet

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    124/144

    12

    4

    Etapa

    o estado atual

    Pode estra ativa ou inativa

    Conjunto de etapas determina estado doGraficet

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    125/144

    12

    5

    Transio

    Representada por traos

    Evoluo de uma situao para outra

    Pode ser vlida ou no

    Uma evoluo vlida quando todas as etapasprecedentes estiverem ativas

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    126/144

    12

    6

    Arcos Orientados

    Indicam a sequencia

    Ligam etapas , transies

    Conveno : de cima para baixo

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    127/144

    12

    7

    Ao

    Representam efeitos que devem ser obtidos

    O que deve ser feito

    Ordem de comando

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    128/144

    12

    8

    exemplo

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    129/144

    12

    9

    Ordens de comando atuam sobre:

    Elementos fsicos do mecanismo

    Elementos auxiliares

    Interfaces homem-mquina

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    130/144

    13

    0

    Ordem contnua

    Depende somente da ativao da etapa a qualestiver associada

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    131/144

    13

    1

    Ordem condicional

    Depende da ativao da etapa associada

    Depende tambm de condies a seremsatisfeitas

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    132/144

    13

    2

    Ordem condicional com retardo

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    133/144

    13

    3

    Ordem condicional limitada no tempo

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    134/144

    13

    4

    Impulsional

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    135/144

    13

    5

    SET e RESET

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    136/144

    13

    6

    Receptividade

    Funo lgica associada a transio

    Habilita ocorrncia , se estado lgico verdadeiro

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    137/144

    13

    7

    Receptividade associada a temporizao

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    138/144

    13

    8

    Um Graficet comandado por outro

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    139/144

    13

    9

    Exemplo: mquina de estampar peas

    Linguagem SFC

  • 7/30/2019 Linguagens PLC

    140/144

    14

    0

    Simuladores

  • 7/30/2019 Linguagens PLC

    141/144

    14

    1

    Simuladores

    Step7 MicroWin 2.0 (SENAI)

    SimuPLC

    LadSIM Ladder Lgic editor

    ZelioSoft (Schineider, em portugues)

    Easy PLC

    Simuladores

  • 7/30/2019 Linguagens PLC

    142/144

    14

    2

    LdMicro

    I-Trilogi ( Java)

    FST 4.0 (Festo)

    CLIC 02 LAD(WEG)

    Concept 2.5 (FBD,IL ,ST, e SFC)]

    PLC Zap 500

    Simuladores

  • 7/30/2019 Linguagens PLC

    143/144

    14

    3

    PLCsim (Siemens)

    Logix

    Simulador Online (www.plcsimulator.net)

  • 7/30/2019 Linguagens PLC

    144/144

    a