Você está na página 1de 73

TREINAMENTO

DE

PROGRAMAÇÃO

Indice

OBJETIVO DESTE MANUAL

3

EXEMPLO DE PROGRAMAÇÃO – DIAGRAMA LADDER

4

INICIANDO UM NOVO PROJETO

5

CONFIGURAÇÃO DO CONTROLADOR

7

INSTRUÇÕES MAIS UTILIZADAS

14

SINAL DE ENTRADA (CONTATO);

14

SINAL DE SAÍDA COMUM (BOBINA)

15

TEMPORIZADORES

16

CONTADORES

18

EXERCÍCIO 1

20

FAZENDO O DOWNLOAD DO SEU PROJETO

24

CRIANDO O BOOT PROJECT

28

CRIANDO O SOURCECODE DOWNLOAD

29

EDIÇÕES EM ONLINE

30

MENU ONLINE

34

BIBLIOTECAS

37

INSERINDO UMA BIBLIOTECA AO PROJETO

38

REMOVENDO UMA BIBLIOTECA AO PROJETO

39

SALVANDO UM PROJETO COMPLETO

40

VISUALIZAÇÃO

42

EXERCÍCIO 2

65

VERIFICAÇÃO DO SEU PROJETO

66

CHAVE DE MODO E INTERFACE DE PROGRAMAÇÃO

67

EXEMPLO DE PROGRAMAÇÃO EM DIAGRAMA DE BLOCOS

68

EXEMPLO DE PROGRAMAÇÃO EM TEXTO ESTRUTURADO

69

ANEXO A – FUNÇÕES PADRÃO E BLOCOS DE FUNÇÃO

70

ANEXO B – ENDEREÇAMENTO DE MEMÓRIA

72

Página 2 de 73

OBJETIVO DESTE MANUAL

Este manual fornece aos usuários informações básicas para criar aplicativos usando o software WAGO-IO-PRO CAA (V2.3.9.25) com o controlador WAGO 750-8XX. Cada seção deste guia lhe dará instruções e dicas úteis para você criar a sua aplicação. A breve descrição abaixo indica o que você pode esperar em cada seção do documento:

Atribuição de um endereço IP

Este é um procedimento passo-a-passo para a atribuição de um endereço IP para o controlador WAGO 750-880. Atribuição de um endereço IP é um pré-requisito para se comunicar com o controlador através de sua porta Ethernet.

Exemplo de Programação

Esta seção lhe mostrará como criar uma aplicação, fazer o download para o controlador e executá-la.

Modo de Operação e Porta serial

Saiba as características dessas características importantes do controlador WAGO.

Criando o Boot Project

Aprenda a armazenar o seu programa na memória do controlador WAGO para que ele seja mantido na memória mesmo após ser desconectada da alimentação.

Instruções padrões e Blocos de Função (Function Blocks)

Saiba mais sobre como aplicar os blocos de função em uma aplicação para os controladores WAGO.

Endereçamento de memória

Aprenda a sintaxe usada pelo WAGO-IO-PRO CAA para tratar dos endereços de memória no controlador WAGO.

Página 3 de 73

EXEMPLO DE PROGRAMAÇÃO DIAGRAMA LADDER

O exemplo a seguir fornece instruções passo-a-passo para a criação de um projeto no WAGO-

IO-PRO CAA utilizando a linguagem de programação Ladder . Este procedimento irá familiarizá-

lo com muitos conceitos básicos utilizados no WAGO-IO-PRO CAA.

Exemplo de programação - Diagrama Ladder

lo com muitos conceitos básicos utilizados no WAGO-IO-PRO CAA. Exemplo de programação - Diagrama Ladder Página

Página 4 de 73

INICIANDO UM NOVO PROJETO

Se ele não estiver iniciado, abra o WAGO-IO-PRO CAA.

Na barra do menu superior, selecione File

perguntado se você gostaria de salvar o seu programa existente. Responda YES. A janele Target Settings será exibida. Selecione o WAGO_750-880.

New. Você pode ser

exibida. Selecione o WAGO_750-880. New . Você pode ser Depois que o controlador foi escolhido, várias

Depois que o controlador foi escolhido, várias opções de configuração irão aparecer. Mantenha as configurações no default e clique em OK para continuar.

A janela New POU irá aparecer

clique em OK para continuar. A janela New POU irá aparecer Preencha as informações do New

Preencha as informações do New POU da seguinte forma:

Nome da nova POU: PLC_PRG

Tipo da POU:

Programa

Língua do POU:

LD

Clique em OK para continuar.

Página 5 de 73

SOBRE POUS

Dentro WAGO-IO-PRO CAA, programas, blocos funcionais e funções são chamadas de POU – Program Organization Units ou POUs. Junto com os operadores, POUs são os blocos de funções a partir dos quais um projeto que é criado. POUs podem ser padrões ou aqueles definidos pelo usuário.

POUs padrão residem em bibliotecas que você pode incluiur em seu projeto. Selecione

Window

barra de menu superior para ver as bibliotecas que estão incluídos no projeto. Ao visualizar o Library Manager, você pode clicar, no menu da barra superior, em Insert Additional Libraries para adicionar bibliotecas ao seu projeto.

Library Manager

na

POUs definidos pelo usuário são aquelas que você criou ou copiou para o seu projeto de outros aplicativos.

Todo projeto precisa de uma POU chamdo de PLC_PRG (assumindo que o Task Manager não é usado). PLC_PRG é o programa principal que pode conter toda a lógica de um projeto, ou pode chamar outros POUs. A execução do projeto vai começar com o conteúdo de PLC_PRG.

POUs podem ser escritos nas seguintes IEC-61131 línguagens:

Lista de Instruções (IL) Diagrama Ladder (LD) Diagrama de Blocos Funcionais (FBD) Sequencial Function Chart (SFC) Texto Estruturado (ST) Continuos Function Chart (CFC)

O ambiente de desenvolvimento do WAGO-IO-PRO CAA (CoDeSys) é exibido. Abaixo está uma breve descrição dos vários campos.

Variable Editor Project Organization Logic Editor Window Message Window Status Bar
Variable Editor
Project
Organization
Logic Editor
Window
Message Window
Status Bar

Variable Editor - Between the keywords VAR and END_VAR all of the local variables for a

Program Organization Unit (POU) are declared. Entre as palavras VAR e END_VAR todas as variáveis locais para o (POU) são declarados.

Logic Editor – Este é o lugar onde o corpo de seu programa de controle está escrito. Um texto ou um editor gráfico será exibido com base na linguagem do POU a ser utilizada. Diagrama Ladder, Diagrama de Blocos Funcionais, SFC e CFC são linguagens gráficas. Lista de Instruções e Texto Estruturado usam um editor de texto.

Project Organization Window – Com a guia POUs selecionada, esta janela exibe os POUs do usuário (programas, blocos funcionais e funções) que compõem o seu projeto. Esses objetos consistem de uma parte declaração da variável e uma parte lógica / programa.

Message Window – Exibe mensagens sobre a última compilação, verificação ou comparação

Status Bar – A barra de status está na parte inferior da moldura da janela e dá informações sobre o projeto atual e comandos de menu.

Página 6 de 73

CONFIGURAÇÃO DO CONTROLADOR

Antes de escrever seu programa, o Editor de Configuração de Hardware é usado para mapear os módulos de I/O do controlador WAGO. Aos pontos individuais de I/O são atribuídos nomes de variáveis globais para uso em seu programa de. Para abrir o Editor de configuração de hardware, comece clicando na guia Resources na parte inferior da janela de organização do projeto.

na parte inferior da janela de organização do projeto. Dê um duplo clique em PLC Configuration

Dê um duplo clique em PLC Configuration na Janela Organização do Projeto, em seguida, clique duas vezes em Hardware configuration na janela à direita, como mostrado abaixo.

2 1
2
1

Clique em K-Bus[FIX] e então selecione Insert barra superior.

Append

Subelement a partir do menu da

1 2
1
2

Página 7 de 73

Aparece a seguinte janela:

1
1

Clique no sinal "+" na parte superior da guia Input/Output na janela de configuração e a seguinte janela aparecerá.

1 2
1
2

Há duas opções para adicionar módulos para a configuração de hardware:

1. Digite o código de catálogo na caixa de filtro.

2. Navegue através das respectivas pastas para encontrar o módulo que você está procurando.

Selecione o 0750-1506 8DI/8DO 24V 0.5A digitando 1506 na caixa de filtro de código de catálogo. Selecione o módulo 0750-1506 a partir da lista e clique no botão Inserir, o módulo será

exibido na janela de Módulos de I/O selecionados (Selected terminals).

Página 8 de 73

Repita esse processo para os seguintes módulos: Entrada analógica - 0750-0467 2 AI 0-10V S.E.

Repita esse processo para os seguintes módulos:

Entrada analógica - 0750-0467 2 AI 0-10V S.E. Saída analógica - 0750-0550 2 AO 0-10V DC

O Módulo de Fim 750-600 não é adicionado à configuração de I/O, uma vez que não consome ou produz dados do processo.

Note: Este exemplo assume que você tem um DEMO com um controaldor WAGO (750-880 Ethernet Controller, 750-1506 8 - Canais de entrada 24v / 8-Canais de saída 24v, 750-467 2 canais 0-10VDC de entrada analógica, 750-550 2 canais 0-10VDC de saída analógica, e o modulo final 750-600). Se a sua configuração é diferente, escolha os módulos de I/O adequados.

Página 9 de 73

Quando concluída, a tela deve ser semelhante a que você vê abaixo. Clique em OK para continuar.

a que você vê abaixo. Clique em OK para continuar. Note : Se você quiser excluir

Note: Se você quiser excluir um módulo de sua seleção, selecione o módulo apropriado na janela de módulos I/O selecionados e clique no botão Excluir. Além disso, os botões de seta na parte superior da janela de I/O configuration permitem o reposicionamento dos módulos seleccionados.

Página 10 de 73

A janela de configuração de hardware recupera o foco. Os endereços de memória (por exemplo,% IX2.0) são exibidos para cada ponto de I/O definidos na configuração do hardware.

cada ponto de I/O definidos na configuração do hardware. Dê um duplo clique em Name Field

Dê um duplo clique em Name Field e assim você pode digitar um tag, ou uma variável global para cada ponto físico de I/O

Digite os nomes seguintes variáveis:

Liga_Motor1 - para a primeira entrada digital (%

IX2.0)

Desliga_Motor1 - para a segunda entrada digital (% IX2.1) Motor1 - para a primeira saída digital (% QX2.0)

Quando concluída, a tela será semelhante à abaixo.

Página 11 de 73

Página 12 de 73

Página 12 de 73

A

configuração de hardware esta completa.

O

próximo passo é escrever o seu programa de controle no editor de lógica. Para exibir o editor

de lógica, clique na guia POUs na parte inferior da janela e em seguida, clique duas vezes em

PLC_PRG.

2 1
2
1

O editor de lógica é exibida com uma linha vazia.

e em seguida, clique duas vezes em PLC_PRG. 2 1 O editor de lógica é exibida

Página 13 de 73

INSTRUÇÕES MAIS UTILIZADAS

SINAL DE ENTRADA (CONTATO);

MAIS UTILIZADAS S INAL DE E NTRADA (C ONTATO ); As instruções de entrada do tipo

As instruções de entrada do tipo contato ou relé podem ser NA ou NF conforme mostrados abaixo;

Relé NA: tais dispositivos fecham os seus contatos quando são energizados. A denominação NA, normalmente aberto, se refere à consideração do que os relés eletromecânicos,deste tipo, estariam abertos se estivessem fora do circuito.

tipo, estariam abertos se estivessem fora do circuito. Contato NA Contato NA em Paralelo Relé NF:

Contato NA

estariam abertos se estivessem fora do circuito. Contato NA Contato NA em Paralelo Relé NF: tais

Contato NA em Paralelo

Relé NF: tais dispositivos abrem os seus contatos quando são energizados (Fig.4.3). A denominação NF, normalmente fechado, se refere à consideração de que os relés eletromecânicos, deste tipo, estariam fechados se estivessem fora do circuito

deste tipo, estariam fechados se estivessem fora do circuito Contato NF Contato NF em Paralelo Página

Contato NF

deste tipo, estariam fechados se estivessem fora do circuito Contato NF Contato NF em Paralelo Página

Contato NF em Paralelo

Página 14 de 73

SINAL DE SAÍDA COMUM (BOBINA)

-Comum -Set / Reset
-Comum
-Set / Reset

Esta instrução serve para habilitar uma saída, que tanto pode corresponder a uma saída física do CLP, como a um bit. A saída será habilitada quando a condição, onde está localizada a instrução se tornar verdadeira. Quando a condição falsa, a saída será desabilitada. Este tipo de instrução pode ser do tipo COMUM ou RETENTIVAS (SET / RESET), conforme mostrados abaixo;

ou RETENTIVAS (SET / RESET), conforme mostrados abaixo; Bobina Comum (Usada para acionar uma saída física

Bobina Comum (Usada para acionar uma saída física ou um bit)

NOTA: Há situações em que é necessário manter uma saída energizada, mesmo quando a entrada venha a ser desligada. O circuito utilizado para essa finalidade é chamado de “selo” ou trava. Os selos são combinações entre elementos destinados a manter uma saída ligada (Retentiva), quando se utilizam botoeiras de pressão (ou de contato momentâneo).

Sinal de Saída Retentivo (Set / Reset)

Uma maneira de fazer a auto retenção de uma saída (bobina) é pela instrução set. A instrução set liga uma saída e a mantém ligada mesmo que o contato da entrada deixe de conduzir. Para desligar a saída é utilizada a instrução reset.

Para desligar a saída é utilizada a instrução reset. Bobina Set (Aciona uma saída e manter

Bobina Set

(Aciona uma saída e manter ela ligada)

Página 15 de 73

Bobina Set (Aciona uma saída e manter ela ligada) Página 15 de 73 Bobina Reset (Desliga

Bobina Reset

(Desliga a saída acionada como set)

TEMPORIZADORES

Tempo de Desligar (Timer Off-Delay) TOF

TOF pode ser adicionado clicando no botão Function Block, selecione a aba TIMER e escolha o TOF (Veja Standard Function Blocks na IEC61131-3).

Entrada Saida Tempo Decorrido Tempo Presente
Entrada
Saida
Tempo Decorrido
Tempo Presente
IEC61131-3). Entrada Saida Tempo Decorrido Tempo Presente TOF(IN, PT, Q, ET), definição: O temporizador começa

TOF(IN, PT, Q, ET), definição:

O temporizador começa quando a entrada IN muda para FALSE (logica 0). Quando o tempo que

foi definido pela entrada PT (Preset Time) expira, a saída Q do temporizador muda de 1 para 0.

A saída ET é o tempo decorrido uma vez que o temporizador foi iniciado.

Tempo de Ligar (Timer On Delay) TON

foi iniciado. Tempo de Ligar (Timer On Delay) TON TON(IN, PT, Q, ET), definição: O temporizador
foi iniciado. Tempo de Ligar (Timer On Delay) TON TON(IN, PT, Q, ET), definição: O temporizador

TON(IN, PT, Q, ET), definição:

O temporizador começa quando a entrada IN muda para TRUE (logica 1). Quando o tempo que

foi definido pela entrada PT(Preset Time) expira, a saida Q do temporizador muda de 0 para 1.

A saída ET é o tempo decorrido uma vez que o temporizador foi iniciado.

Tempo de Pulso (Pulse Timer) TP

O tempo de pulso é usado para gerar um sinal de pulso constante com relação a duração do

pulso da entrada.

Página 16 de 73

TP(IN, PT, Q, ET), definição: O temporizador começa quando a entrada IN muda para TRUE
TP(IN, PT, Q, ET), definição: O temporizador começa quando a entrada IN muda para TRUE

TP(IN, PT, Q, ET), definição:

O temporizador começa quando a entrada IN muda para TRUE (logica 1). A saida Q também

sera TRUE (logica 1) pelo período de tempo que foi definido pela entrada PT (Preset Time). A saída Q ira permanecer acionada pelo período de tempo especificado, mesmo que a entrada IN for derrubada (O valor assumido sera FALSE = logical 0). A saída ET é o tempo decorrido para o temporizador uma vez que o tempo foi iniciado. Q sera verdadeiro quando IN mudar para TRUE e ET devera ser menor que o tempo PT, Caso contrário sera FALSE.

Resumindo: O temporizador TP sera TRUE (logica 1) assim que for iniciado, mas somente por um pulso de duração que foi especificado no PT.

Declaração de Tempo

A declaração de tempo pode consistir de dias (indicado por "d"), horas ("h"), minutos ("m"),

segundos ("s") e milisegundos ("ms"). Nota: Aqui os dados de tempo devem ser indicados em ordem de magnitude (d antes de h, h antes de m, m antes de s e s antes de ms).

Exemplo de declaração de tempo;

magnitude (d antes de h, h antes de m, m antes de s e s antes

Página 17 de 73

CONTADORES

CTU (Contador Acima)

O bloco CTU é um contador incremental (para cima).

Acima) O bloco CTU é um contador incremental (para cima). RESET; Se o parâmetro de entrada

RESET;

Se o parâmetro de entrada RESET = VERDADEIRO (Lógica 1), o contador é inicializado com o valor de contagem em 0 e então o tempo é executado para cima.

PV

(Valor Pré-Definido);

PV

é um valor de 16 bits inteiro, ou seja, entre -32768 e +32767. Este valor é utilizado para

definir o limite superior para o contador, na qual Q muda para VERDADEIRO.

CU;

CU

(Contagem Crescente) é o pulso de entrada da contagem, ou seja, a contagem é

aumentada de 1 em 1 quando ha uma mudança de falso para verdadeiro (contanto que 0 não é atingido).

CV;

CV

(Valor Atual) é o valor atual (contagem) para o contador. Esta contagem é aumentada de 1

em

1 quando ha um pulso positivo que está presente no valor CU para a entrada.

Q;

Q

é VERDADEIRO (Lógica 1), quando o valor atual (contagem) CV é o mesmo que PV.

As variáveis CU, RESET e Q são do tipo BOOL, enquanto o PV e CV são do tipo INT.

CTD (Contador Abaixo)

O bloco CTD é um contador decremental (para baixo).

Abaixo) O bloco CTD é um contador decremental (para baixo). LOAD (Carga); Se o parâmetro LOAD

LOAD (Carga); Se o parâmetro LOAD = VERDADEIRO (Lógica 1), o contador é inicializado com o valor de PV e a contagem é então a contagem é executada para baixo.

PV

(Valor Pré-Definido);

PV

é um valor de 16 bits inteiro, ou seja, entre -32768 e +32767. O contador é inicializado com

este valor, quando a entrada LOAD = VERDADEIRO.

CD;

CD

(Contagem Decrescente) é o pulso de entrada da contagem, ou seja, a contagem de CV é

diminuída de1 em 1 quando há uma mudança de falso para verdadeiro (contanto que 0 não é

 

atingido).

CV;

CV

(Valor Atual) é o valor atual (contagem) para o contador. Esta contagem é diminuída de 1

em

1 quando ha um pulso positivo que está presente no valor CD de entrada.

Página 18 de 73

Q;

Q

é VERDADEIRO (Lógica 1), quando o valor atual (contagem) CV é 0.

As variáveis CD, LOAD e Q são do tipo BOOL, enquanto o PV e CV são do tipo INT.

e Q são do tipo BOOL, enquanto o PV e CV são do tipo INT. CTUD

CTUD (Contador Acima/Abaixo)

O bloco CTUD é um contador incremental e decremental. Este contador

é uma combinação de um CTU (Acima) e um contador CTD (Abaixo).

RESET;

Se o parâmetro de entrada RESET = VERDADEIRO (Lógica 1), o contador é inicializado com o valor de contagem em 0 e então o tempo é executado para cima ou para baixo.

LOAD (Carga);

Se o parâmetro LOAD = VERDADEIRO (Lógica 1), o contador é inicializado com o valor de PV

e a contagem é então a contagem é executada para cima ou para baixo.

PV

(Valor Pré-Definido);

PV

é um valor de 16 bits inteiro, ou seja, entre -32768 e +32767(somente um valor maior que 0

realmente significativo). O contador é inicializado com este valor, quando a entrada LOAD = VERDADEIRO.

é

CD;

CD

(Contagem Decrescente) é o pulso de entrada da contagem, ou seja, a contagem de CV é

diminuída de1 em 1 quando há uma mudança de falso para verdadeiro (contanto que 0 não é atingido).

CU;

CU

(Contagem Crescente) é o pulso de entrada da contagem, ou seja, a contagem é

aumentada de 1 em 1 quando ha uma mudança de falso para verdadeiro (contanto que 0 não é atingido).

CV;

 

CV

(Valor Atual) é o valor atual (contagem) para o contador. Esta contagem é aumentada de 1

em

1 quando ha um pulso positivo que está presente no valor CD para a entrada diminuída de 1

em

1 quando há um pulso positivo que esta presente no valor CU para a entrada

QD;

QD

é à saída binária inferior do contador. Esta saída é TRUE (Lógica 1) quando o valor atual CV

=

0.

QU;

 

QU

é à saída binária superior do contador. Esta saída é TRUE (Lógica 1) quando o valor atual

CV

> = PV (valor pré-definido).

As variáveis CU, CD, RESET, LOAD, QU e QD são do tipo BOOL, enquanto o PV e CV são do tipo INT.

Página 19 de 73

EXERCÍCIO 1

Seguindo os passos iniciais mostrados do inicio do treinamento inicie agora o seu exercício. Desenvolva um programa onde um motor será acionado 10 segundos após ter sido pressionado um botão liga. Use uma saída auxiliar para ligar este motor e também um selo para prever o desligamento através de um botão desliga.

para prever o desligamento através de um botão desliga. O seu programa deve ser algo parecido

O seu programa deve ser algo parecido com o que vemos na figura abaixo:

através de um botão desliga. O seu programa deve ser algo parecido com o que vemos

Página 20 de 73

Após desenvolver a sua lógica agora é hora de testá-la. Neste primeiro momento vamos usar o Simulador do Codesys.

O modo de simulação permite que você teste a sua lógica sem mesmo ter um hardware

Vá no menu superior, em Online, e em seguida Simulation Mode

no menu superior, em Online , e em seguida Simulation Mode O próximo passo agora é

O próximo passo agora é entrar em Online com o modo de simulação. Em Online, clique em Login.

com o modo de simulação. Em Online , clique em Login . Após o Login, tecle

Após o Login, tecle F5 para colocar a simulação em execução, modo RUN. Você pode fazê-lo também através do Menu Online -> RUN

Página 21 de 73

Veja que estamos em Online, no modo de simulação e a lógica está pronta para
Veja que estamos em Online, no
modo de simulação e a lógica está
pronta para ser testada - RUNNING

Esta deve ser a tela que você vê. Repare no canto inferior direito que você está no modo Simulação e Execução.

Para simular a lógica, você pode dar um double-click no contato “Liga_Motor1”. Esta é uma forma de mudar o status da variável de FALSE para TRUE. Para escrever o valor para a variável, além do double-click, você deve pressionar <CTRL><F7>

Para confirmar o valor tecle <CTRL><F7>
Para confirmar o valor tecle
<CTRL><F7>

É possível também confirmar o valor da variável usando o menu.

Página 22 de 73

OK, agora teste a sua lógica e vamos para o próximo tópico Página 23 de

OK, agora teste a sua lógica e vamos para o próximo tópico

Página 23 de 73

FAZENDO O DOWNLOAD DO SEU PROJETO

Se você não tiver configurado um canal de comunicação para se comunicar com o seu controlador, você terá que fazê-lo. Os parâmetros de comunicação variam dependendo do controlador e da porta de comunicação a ser utilizada.

O exemplo a seguir mostra como configurar um canal de comunicação entre um computador com um adaptador Ethernet e um controlador WAGO 750-880.

Primeiramente devemos configurar os parâmetros de comunicação do seu computador, assim sendo , devemos configurar o IP fixo porem na mesma classe que os controladores . Abaixo segue uma sugestão de IP para o seu computador.

IP:

192.168.1.88

Mascara de Rede :

255.255.255.0

uma sugestão de IP para o seu computador. IP: 192.168.1.88 Mascara de Rede : 255.255.255.0 Página

Página 24 de 73

Voltando ao ambiente do WAGO-IO-PRO CAA, selecione Online

Parameters… para configurar o canal de comunicação para o controlador.

Communication

o canal de comunicação para o controlador. Communication Clique em New A seguinte janela será exibida:

Clique em New

canal de comunicação para o controlador. Communication Clique em New A seguinte janela será exibida: Página

A seguinte janela será exibida:

canal de comunicação para o controlador. Communication Clique em New A seguinte janela será exibida: Página

Página 25 de 73

No campo Name, digite um nome exclusivo para o canal de comunicação.

Na lista de seleção, selecione:

Tcp/Ip: (3S Tcp/Ip driver) como o driver de comunicação

Clique em OK.

Uma janela semelhante à abaixo aparecerá

Clique em OK . Uma janela semelhante à abaixo aparecerá Dê um duplo clique sobre a

Dê um duplo clique sobre a palavra localhost. Um campo de entrada aparecerá. Digite o endereço de IP do seu controlador WAGO, e pressione Enter.

Clique em OK. (Certifique-se de pressionar Enter antes de clicar em OK.)

Você já deve estar pronto para fazer o Login no controlador e fazer o download do seu projeto.

Clique Online

Login.

Página 26 de 73

A janela abaixo será exibida, solicitando que você faça o download do seu novo programa.

A janela abaixo será exibida, solicitando que você faça o download do seu novo programa.

solicitando que você faça o download do seu novo programa. Clique em YES para fazer o

Clique em YES para fazer o download do programa.

Para colocar seu controlador no modo de execução, selecione Online

Página 27 de 73

Run

no menu superior

C RIANDO O B OOT P ROJECT Para um projeto desenvolvido no WAGO-IO-PRO CAA que

CRIANDO O BOOT PROJECT

Para um projeto desenvolvido no WAGO-IO-PRO CAA que foi compilado com sucesso pode ser feito o download para o controlador, de tal forma que o controlador pode carregá-lo automaticamente quando reiniciado. Esta operação é chamada " Creating a Boot Project " e requer uma versão licenciada do WAGO-IO-PRO CAA (versões demo do WAGO-IO-PRO não permitem essa funcionalidade). Para criar um boot project, primeiro faça o login no seu controlador. Isto é feito

selecionando Online

com o programa atual na memória do controlador, uma caixa de diálogo irá pedir-lhe para

confirmar o download, selecione YES.

Login

na barra de menu superior. Se o seu programa offline não coincidir

Selecione Online

Create

boot project na barra de menu principal

Página 28 de 73

Uma caixa de diálogo irá aparecer no meio da área de trabalho WAGO-IO-PRO CAA enquanto

Uma caixa de diálogo irá aparecer no meio da área de trabalho WAGO-IO-PRO CAA enquanto o programa é copiado para a área de memória no PFC.

o programa é copiado para a área de memória no PFC. Após concluída esta tarefa, a

Após concluída esta tarefa, a energia pode ser desligada do seu controlador e o programa ficará armazenado na memória do controlador. O programa permanecerá na memória do controlador até que um novo Boot Project seja criado ou um comando de Reset -

Online

Reset

(Original) seja selecionado.

CRIANDO O SOURCECODE DOWNLOAD

Quando você fizer o Create boot project, seu programa estará gravado na área de memoria do CLP, porem, somente com este comando não é possível fazer o UPLOAD do projeto no futuro. Caso você deseje fazer o UPLOAD do seu projeto posteriormente é necessário fazer o Sourcecode download (além de fazer os donwloads anteriores, login e create boot project)

Página 29 de 73

Selecione a aba Online e clique em Sourcedcode download

Selecione a aba Online e clique em Sourcedcode download Agora o seu programa está na memória

Agora o seu programa está na memória do controlador e o conteúdo dele poderá ser recuperado através de um upload.

Você pode LIGAR/DESLIGAR o seu controlador e perceberá que o programa está salvo na memória.

EDIÇÕES EM ONLINE

Para que você possa fazer alterações com o programa funcionando (Online Change), é

preciso, antes de tudo, marcar esta opção na configuração da CPU. Porem essa configuração

deve ser feita em modo Offline , ou seja , selecione Online

Logout .

Volte novamente ate a aba Resources .

Online Logout . Volte novamente ate a aba Resources . Na aba resources, clique duas vezes

Na aba resources, clique duas vezes em Target Settings.

. Volte novamente ate a aba Resources . Na aba resources, clique duas vezes em Target

Página 30 de 73

Agora, selecione a aba General , marque a opção Online Change do lado esquerdo inferior da tela e clique em OK.

Change do lado esquerdo inferior da tela e clique em OK. Após você clicar em OK,

Após você clicar em OK, uma mensagem perguntando se você deseja realmente aplicar estas mudanças irá aparecer. Clique em SIM.

aplicar estas mudanças irá aparecer . Clique em SIM. NOTA: Para que as alterações online funcionem

NOTA: Para que as alterações online funcionem corretamente você deve fazer novamente todos

os passos que foram explicados acima. Vá ate o menu Project

alterado não tenha nenhum erro, Repita os passos para fazer o Login, Boot Project e Sourcecode Donwload.

Rebuild All. Caso o programa

Página 31 de 73

Novamente em modo Online e com o programa rodando iremos alterar a linha 001

Online e com o programa rodando iremos alterar a linha 001 Primeiro , selecione o menu

Primeiro , selecione o menu Online

Logout

a linha 001 Primeiro , selecione o menu Online Logout Agora em modo off-line , faça

Agora em modo off-line , faça as alterações desejadas , no exemplo abaixo, trocamos um contato normalmente fechado por um contato normalmente aberto, conforme a figura abaixo.

trocamos um contato normalmente fechado por um contato normalmente aberto, conforme a figura abaixo. Página 32

Página 32 de 73

Após executar as alterações desejadas , selecione o menu Online

Login

as alterações desejadas , selecione o menu Online Login Uma mensagem perguntando se você deseja realmente

Uma mensagem perguntando se você deseja realmente aplicar estas mudanças irá aparecer.

deseja realmente aplicar estas mudanças irá aparecer . Selecione o botão Yes e as mudanças serão

Selecione o botão Yes e as mudanças serão aplicadas sem parar o processamento do CLP. E novamente você estará online com o CLP, conforme figura abaixo.

sem parar o processamento do CLP. E novamente você estará online com o CLP, conforme figura

Página 33 de 73

MENU ONLINE

Nesta seção iremos descrever os principais itens do menu ´Online´. Você já realizou muitos desses itens nos passos anteriores.

já realizou muitos desses itens nos passos anteriores. Online' 'Login' Símbolo: Atalho:

Online' 'Login'

Símbolo:

Atalho: <Alt>+<F8> <Alt>+<F8>

Símbolo: Atalho: <Alt>+<F8> Este comando inicia a comunicação do ambiente de

Este comando inicia a comunicação do ambiente de programação do sistema com o CLP ( ou inicio do modo de simulação do programa ). Se o programa atual não estiver sido compilado desde quando foi aberto ou da ultima modificação, então ele deve ser compilado antes de pressionar “online “ ( Project > Build ). Se erros ocorrerem durante a compilação, então o Codesys não poderá entrar em modo Online. Caso haja mudanças no projeto desde do ultimo download sem ter fechado o projeto, no momento do download aparecerá uma janela perguntando:

The program has been changed. Load changes?

Pressione Yes e o Clp passará para modo online, carregando as mudanças.

Online' 'Logout'

Símbolo:

Atalho: <Ctrl>+<F8> <Ctrl>+<F8>

A conexão do CLP é interrompida, ou, o Modo de simulação de programa é finalizada trocando para o modo Offline.

Online' 'Download'

Este comando carrega o projeto compilado no CLP.

Página 34 de 73

Online' 'Run'

Símbolo:

Online' 'Run' Símbolo: Atalho: <F5> Este comando inicia o programa do CLP ou o Modo Simulação.

Atalho: <F5>

Este comando inicia o programa do CLP ou o Modo Simulação. Este comando pode ser executado imediatamente depois do “Online” “Download” , ou depois do usuário do CLP ter parado o programa através do comando “Online” “Stop”, ou quando , os comandos 'Online' 'Single Cycle' tenha sido executado .

Online' 'Stop'

Símbolo:

Atalho: <Shift>+<F8>tenha sido executado . Online' 'Stop' Símbolo: Interrompe a execução do programa do CLP ou para

Interrompe a execução do programa do CLP ou para a execução quando o programa está em Simulation Mode. Use o comando 'Online' 'Run' para o programa retorna a execução.

'Online' 'Reset'

Este comando inicializa as variáveis do programa, exceto as variáveis retentivas (VAR RETAIN). E as variáveis persistentes (VAR PERSISTENT) voltam aos valores de inicialização. Todas as outras variáveis voltam para os valores padrões , ou seja , 0 . O CODESYS perguntará para você confirmar a decisão de reset. Depois de todas as variáveis serem sobrescritas, o controlador será mudado para o estado Offline. Use o comando 'Online' 'Run' para reiniciar o programa.

'Online' 'Reset (cold) '

Este comando corresponde ao comando 'Reset' descrito acima, com exceção que as variáveis retentivas ( VAR RETAIN ) são sobrescritas para os valores de inicialização.

Online' 'Reset (original)'

Este comando inicializa todas as variáveis inclusive as persistentes e retentivas (VAR RETAIN e VAR PERSISTENT) além de apagar o programa do usuário no controlador.

Segue abaixo um descritivo das reações das variáveis dependendo dos comandos

Comandos / Tipos Variáveis

 

VAR

 

VAR PERSISTENT RETAIN VAR RETAIN PERSISTENT

VAR

RETAIN

VAR PERSISTENT

Reset

-

x

-

x

Reset (Cold)

-

-

-

-

Reset (Original)

-

-

-

-

Download

-

-

x

x

Online Change

x

x

x

x

X = Valor será retido

- = Valor será reinicializado

Página 35 de 73

Online' 'Simulation Mode'

Em modo de simulação, o programa do usuário roda sem a necessidade do hardware, ou seja, é possível testar a aplicação sem o controlador. Se o programa não estiver em modo de simulação, o programa irá rodar no CLP. Se o modo simulação estiver selecionado aparecerá o símbolo ao lado

estiver selecionado aparecerá o símbolo ao lado 'Online' 'Communication Parameter' Este

'Online' 'Communication Parameter'

Este comando levará o usuário a seção na qual permitirá ele configurar os parâmetros relacionados a comunicação do projeto com o CLP , ou seja , os parâmetros de comunicação para que você possa executar a transferência de informação entre o PC e o controlador (download , modo Online e etc) .

'Online' 'Sourcecode download'

Quando você executar o ‘Online' ‘Create boot Project ’, seu programa estará gravado na área de memoria do CLP, porem, somente com este comando não é possível fazer o UPLOAD do projeto no futuro. Caso você deseje fazer o UPLOAD do seu projeto posteriormente é necessário fazer o 'Online' 'Sourcecode download' e Online' ‘Create boot Project ’.

'Online' 'Create boot project'

Quando executamos o comando Online' 'Download', somente carregamos o projeto compilado para a memoria RAM do controlador, ou seja, caso o controlador seja desligado , o projeto descarregado será perdido. Caso queira que o programa descarregado seja carregado automaticamente quando o controlador for reiniciado, devemos executar o comando 'Create boot project'

Página 36 de 73

BIBLIOTECAS

As bibliotecas são conjuntos de blocos já prontos para o CODESYS. Você pode inserir vários tipos de bibliotecas em seu projeto. As bibliotecas standard.lib e util.lib já estão inclusas no programa por padrão

O library manager é o local que mostra todas as bibliotecas que estão dentro do seu

projeto. As variáveis do programa, receitas e variáveis globais destas bibliotecas podem ser

usadas normalmente. Para abrir o Library Manager, vá no menu superior em Window Manager.

Library

Manager , vá no menu superior em Window Manager . Library A janela do Library Manager

A janela do Library Manager é dividida em quatro áreas. As bibliotecas anexadas ao projeto são listadas na parte superior esquerda. Na área abaixo desta (dependendo do controlador que foi escolhido) há uma lista de blocos de funções, receitas, visualizações ou variáveis globais da biblioteca selecionada. As pastas podem ser abertas e fechadas com um duplo clique na linha. Há um sinal de mais (+) na frente de pastas fechadas, e um sinal de menos (-) na frente das pastas abertas. Quando um bloco de função é selecionado clicando com o mouse, em seguida a declaração deste bloco será exibida na parte superior direita do Library Manager. No canto inferior direito é exibido um exemplo do bloco selecionado das entradas e saídas com os tipos de dados e as variáveis, a declaração das variáveis é apresentada na área direita do Library Manager.

Página 37 de 73

INSERINDO UMA BIBLIOTECA AO PROJETO

Dentro do library manager, vá até o menu superior e clique em, Insert

Library

Additional

até o menu superior e clique em, Insert Library Additional Se o diretório que esta aberto

Se o diretório que esta aberto atualmente não contém a biblioteca que você deseja, você pode selecionar outro diretório onde todas as bibliotecas ficam armazenadas e escolher outra biblioteca, por padrão as bibliotecas estão salvas na pasta Libraries, escolha a biblioteca desejada (tipo de arquivo “.lib”) e confirme. OBS: Não é possível escolher mais de uma biblioteca de uma só vez.

é possível escolher mais de uma biblioteca de uma só vez. A caixa de seleção será

A caixa de seleção será fechada e a biblioteca esta inserida no Library Manager, agora você pode usar todos os recursos da biblioteca no projeto.

NOTA: O caminho padrão das bibliotecas geralmente é este; “C:\Program Files (x86)\WAGO Software\CoDeSys V2.3\Targets\WAGO\Libraries”

Página 38 de 73

Caso você deseje inserir uma biblioteca que não esta em nenhuma destas pastas, recomendamos criar uma nova pasta no mesmo caminho com o nome “Novas”, copiar as suas bibliotecas para dentro desta pasta e depois adiciona-las ao projeto no Codesys.

desta pasta e depois adiciona-las ao projeto no Codesys. Quando você abrir um projeto e as

Quando você abrir um projeto e as bibliotecas não forem encontradas, o Codesys irá perguntar se você quer mudar o diretório destas biblioteca não encontradas. Se você disser não, uma caixa de diálogo se abrirá fornecendo informações sobre as bibliotecas faltantes e o nome destas bibliotecas serão exibidas em vermelho no Library Manager. Neste caso, você pode selecionar esta biblioteca que esta vermelha, clicar com o botão direito do mouse e ir ao comando Search. Assim, você abrirá uma caixa de diálogo onde você pode navegar e carregar a biblioteca faltando imediatamente.

Você pode consultar os cases de aplicação (applications notes) direto no site da wago e baixar diversas bibliotecas para incluir no seu projeto. http://www.wago.com/wagoweb/documentation/index_e.htm

REMOVENDO UMA BIBLIOTECA AO PROJETO

Para remover uma biblioteca do projeto basta estar no Library Manager e ir até o menu

Edit

clicar em Delete.

Delete.

Ou então clicar com o botão direito do mouse na biblioteca que deseja excluir e

em Delete . Delete. Ou então clicar com o botão direito do mouse na biblioteca que

Página 39 de 73

SALVANDO UM PROJETO COMPLETO

Após ter começado a fazer seu programa, o Codesys por padrão salva automaticamente seu projeto a cada 10 minutos.

Para salvar seu programa a qualquer momento selecione File

Save. Caso você queira

salvar em um local ou com algum nome diferente do original, basta selecionar File

Save as.

u e i r a salvar em um local ou com algum nome diferente do original,

Página 40 de 73

No Codesys há um modo que chamamos de Save/ Mail Archive, no qual podemos

salvar ou não todas as informações do projeto. O mais importante nesta opção é que podemos salvar o projeto completo, inclusive com as bibliotecas. Quando você quiser enviar um programa completo para alguem será necessario salvar neste modo. Para fazer o Save/ Mail Archive

selecione File

Save/ Mail Archive, a seguinte janela irá aparecer;

File Save/ Mail Archive, a seguinte janela irá aparecer; Para salvar as bibliotecas junto com o

Para salvar as bibliotecas junto com o projeto basta deixar selecionado o segundo item Referenced Libraries. Após ter confirmado isso, clique no botão Save O Codesys irá gerar um arquivo compactado (.zip) e você deverá escolher o local aonde quer salvar este arquivo. Após ter feito isso seu projeto já esta salvo por completo!

Página 41 de 73

VISUALIZAÇÃO

As visualizações são telas gráficas que pode ser desenvolvidas como parte de um projeto no Codesys. O codesys oferece a capacidade de visualização de pacotes em seu ambiente de desenvolvimento integrado (IDE) em um aplicativo Java, e carregá-lo para o controlador da WAGO. O acesso a esta visualização é feito através de um navegador da web.

Há três passos principais para a criação de visualização:

1) Instalar o Java Runtime Environment (JRE). 2) Usando CoDeSys para criar um projeto com visualizações. 3) Conectando-se as visualizações com um navegador da web.

1)

Instalando o Java Runtime Environment (JRE)

Para que um navegador da Web possa exibir as visualizações, o computador deve ter uma

cópia instalada do aplicativo Java Runtime Environment (JRE) instalado.

Siga este link para baixar a última versão do aplicativo java: http://www.java.com/

Siga as instruções de instalação específicas para seu sistema operacional e conclua a instalação do aplicativo java.

2)

Utilizando o Codesys para criar um projeto com visualizações

Vamos seguir os passos abaixos para criar o projeto de visualização no CoDeSys:

I) Depois de criar um novo projeto, você devera ir até a aba Resources e então clicar duas vezes na opção “Target Settings”. (Esta é a mesma tela onde é escolhido o controlador no começo de um projeto) para ativar a visualização da web, selecione a aba Visualization nesta tela e então marque a caixa Web visualization.

da web, selecione a aba Visualization nesta tela e então marque a caixa Web visualization .

Página 42 de 73

II) Clique em OK e volte para a tela de programação (aba POU)

III) Agora vamos fazer um pequeno programa com o objetivo de demonstrar a facilidade da criação das telas de visualização, as principais interações são;

Desenhar objetos (retângulo, circulo e etc.)

Vincular objetos com variáveis do programa.

Criar um botão de inicialização do processo

Mostrar o valor de uma variável

Inserir um valor em uma variável

IV) Inicialmente vamos inserir uma biblioteca e usar um bloco de função dela. Inclua a biblioteca chamada util.lib que esta na pasta IO_IPCdentro do diretório padrão das bibliotecas.

chamada util.lib que esta na pasta “ IO_IPC ” dentro do diretório padrão das bibliotecas. Página

Página 43 de 73

Depois de adicionado esta biblioteca escolha o bloco de função BLINK que esta na pasta

Depois de adicionado esta biblioteca escolha o bloco de função BLINK que esta na pasta signal generators e adicione este bloco na primeira linha do programa

BLINK que esta na pasta signal generators e adicione este bloco na primeira linha do programa

Página 44 de 73

V) Agora coloque um contato de entrada antes do bloco, coloque uma bobina de saída depois do bloco blink e defina as variáveis de acordo com a imagem abaixo;

blink e defina as variáveis de acordo com a imagem abaixo; VI) Precisamos criar algumas variáveis

VI) Precisamos criar algumas variáveis auxiliares para mostrar o tempo na visualização e conseguir alterar esse tempo do ‘batimento cardíaco’ no programa. Nas próximas linhas de programação vamos usar dois blocos de funções, um bloco de conversão (converter um numero real para um tempo) e outro bloco de multiplicação (pois o tempo que vamos inserir estará em milissegundos e queremos mostrar em segundos). No editor de variáveis do programa, crie as seguintes variáveis com seus respectivos tipos conforme imagem abaixo;

com seus respectivos tipos conforme imagem abaixo; VII) Inclua uma nova linha no programa e adicione
com seus respectivos tipos conforme imagem abaixo; VII) Inclua uma nova linha no programa e adicione

VII) Inclua uma nova linha no programa e adicione um “Box with EN”

Por padrão o bloco de função é criado com o operador AND, vamos alterar este operador selecionando o texto AND e apertando a tecla F2 para abrir o assistente de entrada.

alterar este operador selecionando o texto AND e apertando a tecla F2 para abrir o assistente

Página 45 de 73

Na janela do assistente do lado esquerdo escolha a opção FBD Operators e do lado direito selecione o operador MUL. Clique em OK

e do lado direito selecione o operador MUL . Clique em OK VIII) Agora digite as

VIII) Agora digite as variáveis de entrada e saída conforme a imagem a seguir;

variáveis de entrada e saída conforme a imagem a seguir; Desta forma, estamos multiplicando o valor

Desta forma, estamos multiplicando o valor que será digitado na visualização por 1000, ou seja, estamos transformando milissegundos em segundos, e este tempo ainda esta com valor real.

Página 46 de 73

IX) Nesta próxima linha vamos converter o valor que iremos inserir na tela, de uma variável do tipo real para uma variável do tipo tempo. Crie uma nova linha (terceira linha) e adicione novamente um “Box with EN”. Agora precisamos mudar o bloco para um conversor, selecione novamente o texto AND e aperte a tecla F2 para abrir o assistente de entrada. Do lado esquerdo escolha a opção Conversion Operators” e do lado direito selecione o operador REAL_TO_TIME.

e do lado direito selecione o operador REAL_TO_TIME. Agora a do lado esquerdo do bloco digite

Agora a do lado esquerdo do bloco digite a variável que usamos na multiplicação, ou seja, a variável “Tempo_Desl_Real1”. Do lado direito do bloco deve ser a variável convertida, digite “Tempo_Desl”, Esta linha deve ficar assim;

direito do bloco deve ser a variável convertida, digite “Tempo_Desl”, Esta linha deve ficar assim; Página

Página 47 de 73

X) Pronto, criamos no programa as conversões necessárias para mostrar e interagir na tela com a variável de “Desligar” do “Batimento Cardíaco”. Agora precisamos fazer os mesmos passos para a variável “Ligar”. Insira mais duas linhas no programa e deixe as conforme imagem abaixo;

duas linhas no programa e deixe as conforme imagem abaixo; XI) Por fim na ultima linha

XI) Por fim na ultima linha do programa vamos somar o tempo de ligar e desligar para mostrar o tempo total do ciclo na tela. Para isso adicione mais uma linha e insira mais um “Box with EN”. Selecione de novo o texto AND e aperte a tecla F2 para ir até o assistente de entrada, Agora do lado esquerdo selecione FBD Operators e do lado direito escolha o operador ADD. Click em OK.

e do lado direito escolha o operador ADD. Click em OK. As variáveis de entrada do

As variáveis de entrada do bloco (lado esquerdo) devem ser o tempo de desligar e o tempo de ligar, não se esqueça de que elas são do tipo REAL. A variável de saída é a “Tempo_Ciclo” que foi criada anteriormente. Desta fora a ultima linha deve ficar desse jeito;

é a “Tempo_Ciclo” que foi criada anteriormente. Desta fora a ultima linha deve ficar desse jeito;

Página 48 de 73

Seu programa com todas as linhas deverá ficar assim;

Seu programa com todas as linhas deverá ficar assim; Página 49 de 73

Página 49 de 73

XII) Agora vamos criar a visualização, comece clicando na aba Visualizations

a visualização, comece clicando na aba Visualizations O organizador do projeto vai exibir todas as visualizações

O organizador do projeto vai exibir todas as visualizações (atualmente não há nenhuma) que fazem parte do projeto. Clique com o botão direito do mouse na pasta Visualization e selecione Add Object. Digite o nome da visualização como sendo PLC_VISU e clique em OK.

o nome da visualização como sendo PLC_VISU e clique em OK. NOTA : A visualização principal

NOTA: A visualização principal de um projeto deve ser sempre nomeada como PLC_VISU para o navegador da web exibir corretamente a visualização. Uma janela será aberta para a criação de uma visualização, nesta janela você irá criar um elemento que irá interagir com uma variável dentro do programa do Codesys. As instruções seguintes vão ajudar a criar o objeto “Batimento Cardíaco”, mostrado aqui;

Codesys. As instruções seguintes vão ajudar a criar o objeto “Batimento Cardíaco”, mostrado aqui; Página 50

Página 50 de 73

XIII)

Para criar o objeto batimento cardíaco, desenhe um retângulo de fundo. Clique no

ícone retângulo no menu superior.

de fundo. Clique no ícone retângulo no menu superior. XIV) Desenhe um retângulo, clicando e arrastando

XIV) Desenhe um retângulo, clicando e arrastando o cursor do mouse na janela do

editor.

XV) Dê um duplo clique no elemento retângulo. A janela de configuração do elemento irá aparecer

XVI) Selecione a categoria Text e digite “Batimento Cardíaco” na caixa de texto,

Selecione o alinhamento vertical como sendo TOP

e digite “Batimento Cardíaco” na caixa de texto, Selecione o alinhamento vertical como sendo TOP Página

Página 51 de 73

XVII) Selecione a categoria Colors. Clique no botão Inside dentro do quadro colors e escolha uma cor para o retângulo. Clique em OK.

colors e escolha uma cor para o retângulo. Clique em OK. XVIII) Em seguida, Crie um

XVIII) Em seguida, Crie um circulo no centro do retângulo. Clique no ícone Circle

um circulo no centro do retângulo. Clique no ícone Circle XIX) Desenhe um circulo, clicando e

XIX) Desenhe um circulo, clicando e arrastando o cursor do mouse na janela do editor. Posicione o circulo dentro do retângulo, arrastando-o se necessário.

Página 52 de 73

XX) Dê um duplo clique sobre o elemento circulo. A janela de configuração do circulo irá aparecer. Selecione a categoria Colors Clique no botão Inside dentro do quadro Colors e escolha uma cor para o circulo. Ainda na categoria Colors, clique no botão Inside do quadro Alarm Color e escolha uma segunda cor para o circulo.

Alarm Color e escolha uma segunda cor para o circulo. XXI) Selecione a categoria Variables. Clique

XXI) Selecione a categoria Variables. Clique no campo Change color e aperte a tecla F2. O assistente de entrada será iniciado, permitindo que você selecione uma variável para associar ao elemento de visualização. Selecione a variável Saida clique em OK.

uma variável para associar ao elemento de visualização. Selecione a variável Saida clique em OK. Página

Página 53 de 73

O circulo agora estará associado a uma variável booleana do projeto. A cor de dentro do circulo mudará para a cor do alarme sempre que a variável booleana for verdadeira.

XXII) Agora vamos inserir um botão para inicializar o ‘batimento cardíaco’. Desenhe um botão conforme imagem abaixo (similar aos objetos criados anteriormente; retângulo e circulo) selecionando o objeto button

retângulo e circulo) selecionando o objeto button XXIII) Dê um duplo clique no botão criado. A

XXIII) Dê um duplo clique no botão criado. A janela de configuração do elemento irá aparecer, selecione a categoria Text e digite “Iniciar” na caixa de texto, Selecione o alinhamento vertical e horizontal como sendo CENTER.

o alinhamento vertical e horizontal como sendo CENTER . XXIV) Ainda na janela de configuração do

XXIV) Ainda na janela de configuração do botão, selecione a categoria Input e marque a caixa de seleção chamada Toggle variable, depois selecione a caixa de texto desta opção e aperte F2. O assistente de entrada será iniciado, selecione a variável que definimos como sendo o botão Liga e clique em OK

Página 54 de 73

Agora vamos desenhar duas caixas de texto para modificar o tempo do ‘batimento cardíaco’ através

Agora vamos desenhar duas caixas de texto para modificar o tempo do ‘batimento cardíaco’ através da visualização;

XXV) Primeiro desenhe três retângulos, estes retângulos serão as ‘descrições’ de onde vamos fazer as modificações na visualização, ou seja, não haverá nenhuma variável do programa vinculada ao objeto. Dê um duplo clique no primeiro retângulo e na categoria Text da janela de configuração digite “Alterar Tempo”. Agora na categoria Colors marque as caixas de seleção No color inside e No frame color e clique em OK.

na categoria Colors marque as caixas de seleção No color inside e No frame color e

Página 55 de 73

Repita os passos anteriores para os outros dois retângulos, digitando na categoria Text “Ligado”e “Desligado”. Sua tela de visualização deve estar parecida com a imagem abaixo;

de visualização deve estar parecida com a imagem abaixo; XXVI) Feito isso vamos criar mais dois

XXVI) Feito isso vamos criar mais dois retângulos, Insira um retângulo ao lado da descrição “Ligado” e o outro ao lado da descrição “Desligado”. Esses estarão vinculados as variáveis de tempo que será possível modificar no programa.

Esses estarão vinculados as variáveis de tempo que será possível modificar no programa. Página 56 de
Esses estarão vinculados as variáveis de tempo que será possível modificar no programa. Página 56 de

Página 56 de 73

XXVII) Dê um duplo clique no primeiro retângulo, Na janela de configuração vá à categoria Text e digite %s (Minúscula), Este comando serve para mostrar o valor de uma variável no display. Agora vá até a categoria Variables da janela de configuração, Clique no campo Text display e aperte a tecla F2. No assistente de entrada selecione a variável Tempo_Lig_Real.

campo Text display e aperte a tecla F2. No assistente de entrada selecione a variável Tempo_Lig_Real.

Página 57 de 73

Ainda na janela de configuração vá até a categoria Input e marque a opção Text input of variable ‘Text display’. Abaixo dela selecione a opção Numpad e do lado direito digite o valor 0 na opção Min e o valor 20 na opção Max. Clique em OK.

opção Min e o valor 20 na opção Max . Clique em OK. (Esta ultima opção

(Esta ultima opção cria automaticamente um teclado numérico na tela toda vez que selecionarmos o campo para digitar algum número).

XXVIII) Agora repita os mesmos passos anteriores para o outro retângulo (Desligado) porem na categoria Variables, selecione a variável Tempo_Desl_Real. Sua deve estar parecida com esta;

na categoria Variables , selecione a variável Tempo_Desl_Real . Sua deve estar parecida com esta; Página

Página 58 de 73

Você também pode criar mais dois retângulos para deixar como sendo a descrição da caixa de texto que vinculamos com as variáveis, ou seja, para deixar a Unidade do tempo de ligar e desligar. Ficando desta forma;

Unidade do tempo de ligar e desligar. Ficando desta forma; XXIX) Por fim, vamos vincular a

XXIX) Por fim, vamos vincular a mais uma caixa de texto a variável criada na ultima linha do programa; Tempo_Ciclo. Insira novamente um retângulo e dê um duplo clique nele para abrir a janela de configuração. De novo na categoria Text digite %s. Agora na categoria Variables clique no campo Text display e aperte a tecla F2. No assistente de entrada selecione a variável Tempo_Ciclo. Clique em OK.

display e aperte a tecla F2. No assistente de entrada selecione a variável Tempo_Ciclo. Clique em

Página 59 de 73

XXX) Para a visualização ficar melhor, crie mais dois retângulos para usarmos como descrição, de modo que fiquem assim;

para usarmos como descrição, de modo que fiquem assim; Verifique se a sua visualização esta parecida

Verifique se a sua visualização esta parecida com esta;

como descrição, de modo que fiquem assim; Verifique se a sua visualização esta parecida com esta;

Página 60 de 73

Agora o programa e a visualização estão criados. Eles operam como duas tasks (tarefas) diferentes que usam uma única CPU. Para que a visualização funcione de forma instantânea e o programa também, devemos definir as tasks como sendo multitarefa cíclica. Para isso vá até a aba Resources.

multitarefa cíclica. Para isso vá até a aba Resources. Selecione a opção Task Configuration para abrir

Selecione a opção Task Configuration para abrir a janela seguinte

isso vá até a aba Resources. Selecione a opção Task Configuration para abrir a janela seguinte

Página 61 de 73

Clique com o botão direito do mouse em Task Configuration na janela central e selecione Append Task. Isto irá criar uma nova Task com o nome padrão de “NewTask”. Selecione a task para mostrar as propriedades dela e defina os campos conforme abaixo;

Name: Timer

Priority: 11

Type: Cyclic

Interval: T#10ms

Timer Priority: 11 Type: Cyclic Interval: T#10ms Finalmente, clique com o botão direito sobre a task

Finalmente, clique com o botão direito sobre a task timer e selecione Append Program Call. Em Program Call clique no botão ao lado da caixa de texto (Assistente) e coloque o PLC.PRG();

Neste ponto, o programa este completo e podemos fazer o download para a CPU ou usar em modo simulação.

Página 62 de 73

3)

Usando as visualizações em um web browser

As telas podem ser visualizadas através da mesma porta que o Web-Based Management (WBM) System, porta 80. Há 2 maneiras de acessar a visualização criada através de uma navegador de internet. A primeira é digitar a o endereço do controlador com a pagina de visualização na barra de endereço do navegador de internet. A URL é: ‘Https:// <endereço- IP>/plc/webvisu.htm’

de endereço do navegador de internet. A URL é: ‘Https:// <endereço- IP>/plc/webvisu.htm’ Página 63 de 73

Página 63 de 73

A segunda é acessar o Web-Based Management (WBM) System. Quando você digitar o endereço IP do controlador em uma pagina do navegador irá abrir a tela principal das propriedades deste controlador. No menu do lado esquerdo clique no link WebVisu e então a página de visualização irá carregar.

WebVisu e então a página de visualização irá carregar. Outras visualizações que estão dentro do projeto

Outras visualizações que estão dentro do projeto no CODESYS não podem ser acessadas diretamente pelo endereço do navegador, mas a partir de outros objetos que são criados na própria página web. Elementos de visualização podem ser usados para acessar outras visualizações, utilizando a função “Zoom to vis.”

Página 64 de 73

EXERCÍCIO 2

Usando os conhecimentos que você adquiriu nos módulos anteriores crie um programa para simular um semáforo de trânsito. Use o Web Visualization para simular as luzes vermelha, amarela e verde. O tempo de sinal verde deve ser de 1 minuto, 15 segundos amarelo e 1 minuto vermelho.

amarela e verde. O tempo de sinal verde deve ser de 1 minuto, 15 segundos amarelo

Página 65 de 73

VERIFICAÇÃO DO SEU PROJETO

A qualquer momento durante o desenvolvimento de um projeto, você

pode verificar se há erros, selecionando Project de menu superior.

Quando você verificar o seu projeto, mensagens de diagnóstico irão aparecer abaixo da janela do Editor de Lógica. A última mensagem de diagnóstico a aparecer vai indicar quantos erros que você tem em seu projeto. As mensagens de erro incluem o número da linha em que o erro existe, assim como uma descrição do erro.

Você vai precisar corrigir todos os erros antes de fazer o download e executar o seu projeto.

Build a partir da barra

Dicas para Debug

Se você receber várias mensagens de erro ao verificar o seu projeto, é recomendado ir até a primeira mensagem de erro que aparecer, e iniciar o seu processo de depuração lá. Várias mensagens de erro são muitas vezes o resultado de um único erro, e a mensagem de erro que aparecer primeiro vai lhe dar a melhor indicação de onde o erro foi originado.

e a mensagem de erro que aparecer primeiro vai lhe dar a melhor indicação de onde

Página 66 de 73

CHAVE DE MODO E INTERFACE DE PROGRAMAÇÃO

Na frente de cada controlador WAGO há uma pequena porta que permite o acesso para Mudar

o modo do controlador e também há a conexão para a Interface de Programação

e também há a conexão para a Interface de Programação A interface de programação fornece uma

A interface de programação fornece uma conexão serial com o controlador para a

programação e configuração (por exemplo, para os softwares WAGO-IO-PRO CAA, WAGO-IO- CHECK, e o WAGO-IO_UPDATE). O cabo de comunicação WAGO 750-920 ou 750-923 é necessário para conectar a interface de programação de 4 pinos a porta RS232 de um PC. As configurações padrão para esta interface são 19200 Baud, E, 8, 1.

A chave de seleção de modo é uma chave com 3 posições que fornece as seguintes

funcionalidades:

Posição da

Funcão

chave

Para cima

A comutação do meio para a posição para cima vai iniciar a execução do programa.

No meio

A comutação da posição para cima para a posição meio irá parar a execução do programa do controlador.

Para baixo

Permite o download de novo firmware para o controlador.

Pressionado

Pressionando a chave, independente do modo de operação que ela esteja, será realizado um RESET no controlador. Todas as saídas serão desligadas. Todas as variáveis irão para zero ou terão o seu valor inicializado.

Página 67 de 73

EXEMPLO DE PROGRAMAÇÃO EM DIAGRAMA DE BLOCOS

Abaixo está um exemplo de como o projeto que você desenvolveu em linguagem ladder seria escrito em Diagrama de Blocos.

exemplo de como o projeto que você desenvolveu em linguagem ladder seria escrito em Diagrama de

Página 68 de 73

EXEMPLO DE PROGRAMAÇÃO EM TEXTO ESTRUTURADO

Abaixo está um exemplo de como o projeto que você desenvolveu em linguagem ladder seria escrito em Texto Estruturado.

exemplo de como o projeto que você desenvolveu em linguagem ladder seria escrito em Texto Estruturado.

Página 69 de 73

ANEXO A – FUNÇÕES PADRÃO E BLOCOS DE FUNÇÃO

WAGO-I/O-PRO CAA suporta todas as funções padrão do IEC 61131 e os blocos de funções. Funções padrões que são implicitamente reconhecidas pelo ambiente de programação (não requerem o uso da biblioteca padrão) são também chamados de operadores.

Para introduzir uma função padrão ou bloco de função em um projeto, selecione Insert na barra de menu principal e clique no item apropriado a partir do menu drop-down. Para texto estruturado, selecione Operator; para Diagrama ladder, selecione Box with EN; e para diagrama de blocos selecione Box. Diagrama de blocos e ladder, por padrão, exibem a função AND. Uma função diferente ou bloco de função pode ser selecionada por um dos dois meios:

1) Clique na palavra AND, e pressione a tecla F2. Uma caixa de seleção será exibida listando todas as funções disponíveis (operadores) e blocos de função. Selecione o item desejado e clique em OK. 2) Clique na palavra AND, e digite o nome da função desejada (operador) e bloco de função. A lista de opções disponíveis é mostrado abaixo.

Consulte os tópicos de ajuda do WAGO-I/O-PRO CAA para aprender mais sobre as funções, blocos funcionais e operadores.

 

IEC 61131 Funções Padrão (Operadores)

 

ABS

EXPT

MIN

SHL

ACOS

GE

MOD

SHR

ADD

GT

MOVE

SIN

ADR

INDEXOF

MUL

SIN

AND

INI

MUX

SIZEOF

ASIN

LE

NE

SQRT

ATAN

LIMIT

NOT

SUB

COS

LN

OR

TAN

DIV

LOG

ROL

TRUNC

EQ

LT

ROR

XOR

EXP

MAX

SEL

 

IEC 61131 Blocos de Função Padrão

 

SR

CTU

TP

RS

CTD

TON

R_TRIG

CTUD

TOF

F_TRIG

RTC

Página 70 de 73

A Norma IEC 61131 não permite conversão implícita de um tipo de variável "maior" para um tipo "menor" (por exemplo, de INT para BYTE ou de DINT para WORD), entretanto outras conversores são permitidas. Segue abaixo uma lista de operadores de conversão.

IEC61131 Operadores de Conversão

BOOL_TO_BYTE

DT _TO_BOOL

SINT _TO_BOOL

UDINT _TO_BOOL

BOOL_TO_DATE

DT _TO_BYTE

SINT _TO_BYTE

UDINT _TO_BYTE

BOOL_TO_DINT

DT _TO_DATE

SINT _TO_DATE

UDINT _TO_DATE

BOOL_TO_DT

DT _TO_DINT

SINT _TO_DINT

UDINT _TO_DINT

BOOL_TO_DWORD

DT _TO_DWORD

SINT _TO_DT

UDINT _TO_DT

BOOL_TO_INT

DT _TO_INT

SINT _TO_DWORD

UDINT _TO_DWORD

BOOL_TO_REAL

DT _TO_REAL

SINT _TO_INT

UDINT _TO_INT

BOOL_TO_SINT

DT _TO_SINT

SINT _TO_REAL

UDINT _TO_REAL

BOOL_TO_STRING

DT _TO_STRING

SINT _TO_STRING

UDINT _TO_SINT

BOOL_TO_TIME

DT _TO_TIME

SINT _TO_TIME

UDINT _TO_STRING

BOOL_TO_TOD

DT _TO_TOD

SINT _TO_TOD

UDINT _TO_TIME

BOOL_TO_UDINT

DT _TO_UDINT

SINT _TO_UDINT

UDINT _TO_TOD

BOOL_TO_UINT

DT _TO_UINT

SINT _TO_UINT

UDINT _TO_UINT

BOOL_TO_USINT

DT _TO_USINT

SINT _TO_USINT

UDINT _TO_USINT

BOOL_TO_WORD

DT _TO_WORD

SINT _TO_WORD

UDINT _TO_WORD

BYTE_TO_BOOL

DWORD _TO_BOOL

STRING _TO_BOOL

UINT _TO_BOOL

BYTE _TO_DATE

DWORD _TO_BYTE

STRING _TO_BYTE

UINT _TO_BYTE

BYTE _TO_DINT

DWORD _TO_DATE

STRING _TO_DATE

UINT _TO_DATE

BYTE _TO_DT

DWORD _TO_DINT

STRING _TO_DINT

UINT _TO_DINT

BYTE _TO_DWORD

DWORD _TO_DT

STRING _TO_DT

UINT _TO_DT

BYTE _TO_INT

DWORD _TO_INT

STRING _TO_DWORD

UINT _TO_DWORD

BYTE _TO_REAL

DWORD _TO_REAL

STRING _TO_INT

UINT _TO_INT

BYTE _TO_SINT

DWORD _TO_SINT

STRING _TO_REAL

UINT _TO_REAL

BYTE _TO_STRING

DWORD _TO_STRING

STRING _TO_SINT

UINT _TO_SINT

BYTE _TO_TIME

DWORD _TO_TIME

STRING _TO_TIME

UINT _TO_STRING

BYTE _TO_TOD

DWORD _TO_TOD

STRING _TO_TOD

UINT _TO_TIME

BYTE _TO_UDINT

DWORD _TO_UDINT

STRING _TO_UDINT

UINT _TO_TOD

BYTE _TO_UINT

DWORD _TO_UINT

STRING _TO_UINT

UINT _TO_UDINT

BYTE _TO_USINT

DWORD _TO_USINT

STRING _TO_USINT

UINT _TO_USINT

BYTE _TO_WORD

DWORD _TO_WORD

STRING _TO_WORD

UINT _TO_WORD

DATE _TO_BOOL

INT _TO_BOOL

TIME _TO_BOOL

USINT _TO_BOOL

DATE _TO_BYTE

INT _TO_BYTE

TIME _TO_BYTE

USINT _TO_BYTE

DATE _TO_DINT

INT _TO_DATE

TIME _TO_DATE

USINT _TO_DATE

DATE _TO_DT

INT _TO_DINT

TIME _TO_DINT

USINT _TO_DINT

DATE _TO_DWORD

INT _TO_DT

TIME _TO_DT

USINT _TO_DT

DATE _TO_INT

INT _TO_DWORD

TIME _TO_DWORD

USINT _TO_DWORD

DATE _TO_REAL

INT _TO_REAL

TIME _TO_INT

USINT _TO_INT

DATE _TO_SINT

INT _TO_SINT

TIME _TO_REAL

USINT _TO_REAL

DATE _TO_STRING

INT _TO_STRING

TIME _TO_SINT

USINT _TO_SINT

DATE _TO_TIME

INT _TO_TIME

TIME _TO_STRING

USINT _TO_STRING

DATE _TO_TOD

INT _TO_TOD

TIME _TO_TOD

USINT _TO_TIME

DATE _TO_UDINT

INT _TO_UDINT

TIME _TO_UDINT

USINT _TO_TOD

DATE _TO_UINT

INT _TO_UINT

TIME _TO_UINT

USINT _TO_UDINT

DATE _TO_USINT

INT _TO_USINT

TIME _TO_USINT

USINT _TO_UINT

DATE _TO_WORD

INT _TO_WORD

TIME _TO_WORD

USINT _TO_WORD

DINT _TO_BOOL

REAL _TO_BOOL

TOD _TO_BOOL

WORD _TO_BOOL

DINT _TO_BYTE

REAL _TO_BYTE

TOD _TO_BYTE

WORD _TO_BYTE

DINT _TO_DATE

REAL _TO_DATE

TOD _TO_DATE

WORD _TO_DATE

DINT _TO_DT

REAL _TO_DINT

TOD _TO_DINT

WORD _TO_DINT

DINT _TO_DWORD

REAL _TO_DT

TOD _TO_DT

WORD _TO_DT

DINT _TO_INT

REAL _TO_DWORD

TOD _TO_DWORD

WORD _TO_DWORD

DINT _TO_REAL

REAL _TO_INT

TOD _TO_INT

WORD _TO_INT

DINT _TO_SINT

REAL _TO_SINT

TOD _TO_REAL

WORD _TO_REAL

DINT _TO_STRING

REAL _TO_STRING

TOD _TO_SINT

WORD _TO_SINT

DINT _TO_TIME

REAL _TO_TIME

TOD _TO_STRING

WORD _TO_STRING

DINT _TO_TOD

REAL _TO_TOD

TOD _TO_TIME

WORD _TO_TIME

DINT _TO_UDINT

REAL _TO_UDINT

TOD _TO_UDINT

WORD _TO_TOD

DINT _TO_UINT

REAL _TO_UINT

TOD _TO_UINT

WORD _TO_UDINT

DINT _TO_USINT

REAL _TO_USINT

TOD _TO_USINT

WORD _TO_UINT

DINT _TO_WORD

REAL _TO_WORD

TOD _TO_WORD

WORD _TO_USINT

Página 71 de 73

ANEXO B – ENDEREÇAMENTO DE MEMÓRIA

Posições de memória endereçáveis dentro do controlador WAGO 750-880 incluem entradas e saídas físicas definidas pela tabela imagem do processo, e locais de armazenamento na memória retentiva. A memória física do controlador é acessada através do WAGO-IO-PRO CAA usando a seguinte sintaxe

Sintaxe para endereçamento de memória no controlador WAGO.

Sintaxe para endereçamento de memória no controlador WAGO. Exemplos de endereços de memória: %IX2.0 Entrada Bit

Exemplos de endereços de memória:

%IX2.0

Entrada Bit 0 da Word 2

%I2.0

Entrada Bit 0 da Word 2 (Mesmo que %IX2.0)

%IB7

Entrada Byte 7

%IW20

Entrada Word 20

%ID4

Entrada Double Word 4

%QX0.0

Saída Bit 0 da Word 0

%Q0.0

Saída Bit 0 da Word 0 (Mesmo que %QX0.0)

%QB12

Saída Byte 12

%QW15

Saída Word 15

%QD2

Saída Double Word 2

%MX5.0

Memória Retentiva Bit 0 da Word 5

%M5.0

Memória Retentiva Bit 0 da Word 5 (Mesmo que %MX5.0)

%MB100

Memória Retentiva Byte 100

%MW0

Memória Retentiva Word 0

%MD48

Memória Retentiva Double Word 48

Página 72 de 73

As variáveis usadas dentro WAGO-IO-PRO CAA podem ser mapeados para posições de memória endereçáveis usando esta sintaxe. I/Os reais são definidos no Editor de configuração de hardware, que gera automaticamente a sintaxe. Às variáveis definidas no editor de variável é atribuído um endereço de localização usando a palavra-chave AT com a localização de endereços (por exemplo, VariableName AT% MW0: PALAVRA;).

Mapa de memória endereçavel

 

PFC Word

PFC Byte

PFC Bit

MODBUS/TCP

Memory Map

Network/PFC

 

Address

Address

Address

Address

Usage

Accessibility

 

%IW0

%IB0, %IB1

%IX0.0 to %IX0.15 %IX1.0 to %IX1.15 %IX2.0 to %IX2.15

4x00001

   

%IW1

%IB2, %IB3

4x00002

Real World

Network Access is Read Only

%IW2

%IB4, %IB5

4x00003

Analog Inputs

.

.

.

.

&

 

thru

Thru

thru

thru

Real World

PFC Access

 

Process Image

.

.

.

.

Digital Inputs

is Read Only

Input

%IW255

%IB510, %IB511

%IX255.0 to %IX255.15

4x00256

%IW256

%IB512, %IB513

%IX256.0 to %IX256.15

4x00769

   
 

%IW257

%IB514, %IB515

%IX257.0 to %IX257.15

4x00800

PFC Network

Network Access

%IW258

%IB516, %IB517

%IX258.0 to %IX258.15

4x00801

Variable Memory

is Read/Write

 

.

.

.

.

thru

Thru

thru

thru

(Network to PFC)

PFC Access

.

.

.

.

is Read Only

%IW511

%IB1023, %IB1024

%IX511.0 to %IX511.15

4x01024

 

%QW0

%QB0, %QB1

%QX0.0 to %QX0.15

4x00513

   

%QW1

%QB2, %QB3

%QX1.0 to %QX1.15 %QX2.0 to %QX2.15

4x00514

Real World

Network Access

%QW2

%QB4, %QB5

4x00515

Analog Outputs

is Read/Write

.

.

.

.

&

 

Process Image

thru

Thru

thru

thru

Real World

PFC Access

.

.

.

.

Digital Outputs

is Read/Write

Output

%QW255

%QB510, %QB511

%QX255.0 to %QX255.15

4x00768

%QW256

%QB512, %QB513

%QX256.0 to %QX256.15 %QX257.0 to %QX257.15

4x00257

   
 

%QW257

%QB514, %QB515

4x00258

PFC Network

Network Access is Read Only

%QW258

%QB516, %QB517

%QX258.0 to %QX258.15

4x00259

Variable Memory

 

.

.

.

.

 

thru

Thru

thru

thru

(PFC to Network)

PFC Access

.

.

.

.

is Read/Write

%QW511

%QB1023, %QB1024

%QX511.0 to %QX511.15

4x00512

 

%MW0

%MB0, %MB1

%MX0.0 to %MX0.15 %MX1.0 to %MX1.15 %MX2.0 to %MX2.15

4x12289

   

Retentive

 

%MW1

%MB2, %MB3

4x12290

PFC Variable

Network Access

Memory

%MW2

%MB4, %MB5

4x12291

Retain Memory

is Read/Write

.

.

.

.

thru

Thru

thru

thru

PFC Access

.

.

.

.

is Read/Write

 

%MW12287

%MB24574, %MB245775

%MX12287.0 to %MX12287.15

4x24576

Página 73 de 73