Sei sulla pagina 1di 16

Leitura e escrita na

Rede AS-I com S7 300

Rodrigo Borges
Criando um projeto no Step 7:
Para programar utilizando a Rede AS-I com o S7-300 precisaremos de uma CP de comunicação AS-I
conectada no barramento da CPU, pois é necessário um mestre AS-I, por exemplo, o CP 343-2, que
será responsável pelo controle de todos os escravos AS-I ligados a ele.

A troca de dados entre o programa do usuário e os dados dos escravos AS-I através da CP 343-2,
depende do tipo de escravo que temos no bus AS-I, estes podem ser:

● Escravos Standard ou Escravos A, de tipo binário através da periferia da e/S do processador


central do PLC.
● Escravos B, de tipo binário por leitura ou escrita usando um bloco de função.
● Escravos AS-I analógicos para leitura ou escrita usando um bloco de funções.
Escravos A
Através do programa do usuário, são acessados os valores binários dos escravos Standard AS-I ou
escravos A, através de determinados comandos de periferia do Step 7.
Atribuição dos Bits:

O CP 343-2 atribui quatro bits (chamados Nibble) a cada escravo Standard ou A conectado ao cabo
AS-I. O PLC pode acessar este Nibble com a escrita (dados de saída escravo) e leitura (dados de
entrada escravo). Dessa forma, você também pode ativar escravos bidirecional com e/S.

Os primeiros quatro bits de entrada (primeiro Nibble) são reservados para o uso de FC "ASI_3422".
Se nenhum FC for usado, os primeiros quatro bits de entrada mudam a cada 2,5 s aproximadamente
entre 8h e valores EH. Os primeiros quatro bits de saída (primeiro Nibble) não têm relevância para o
CP 343-2.
Configuração de Hardware no S7:
Determinação da direção dos endereços:

Dependendo da posição que inserir a CP no rack a direção dos endereços da rede AS-I será mudada, como
pode ser observado na imagem abaixo:
Tabela com os endereços configurados:
Com base na posição do mestre AS-I dentro do
quadro, o intervalo de endereços (16 bytes)
correspondente aos 31 escravos foi determinado.
Criação de blocos de dados (DB) de I/O AS-I:
Nós não podemos acessar diretamente os bits de periferia para ser capaz de realizar a leitura e/ou
escrita correspondente a cada uma das entradas/saídas de cada escravo AS-I conectado ao bus.

Para facilitar nosso trabalho vamos preparar dois blocos de dados, um para as entradas (DB10) e
outro para as saídas (DB20) dos escravos AS-I em que nós trabalharemos no nível de bit.
Estrutura para as DBs de entrada e saída:

A estrutura da DB10 e DB20 será


a mesma.
Programação na OB1 para cópia das E/S
da AS-I para os registros das DBs
O acesso aos bits dos escravos AS-I não pode ser realizado diretamente, como eles são considerados de
periferia e, portanto, é feita através de instruções de carregamento e transferência no S7, que a chamada
pode ser feita na forma de palavra ou palavra dupla , mas nunca na forma de um byte, devido a razões
internas do sistema, por exemplo:

L PIW 256 // Carregar a palavra de entradas de periferia correspondente a IW 256.

L PID 256 // Carregar a palavra dupla de entradas de periferia correspondente ao ID 256.

T PQW 256 // Transferências para a palavra de saídas de periferia correspondentes a QW 256.

T PQD 256 // Transferências para a palavra dupla de saídas periféricas correspondentes ao QD 256.
Instruções válidas:
As instruções abaixos não são válidas:

L PIB 256
L PIB 256

Exemplos:
L PIW 256 // Permitida
L PID 256 // Permitida
L PQW 257 // Não permitida, direção ímpar
T PIB 256 // Não permitida, transferência de byte

A I304.0 // Não permitida a leitura direta de um escravo


= Q304.2 // Não permitida a escrita direta a um escravo
No nosso caso, e de acordo com a configuração do hardware que foi feita, para ser capaz de acessar os bits
para cada I/O dos escravos AS-I configurado ,tendo em conta que os blocos de dados DB10 foram
preparadas, para a leitura das entradas AS-I , e a DB20, para a escrita de escravos, o programa para o
carregamento e transferência de bits de todos os escravos Standard ou tipo A será:

L PID 256 // Carrega a palavra dupla de entradas de periferia correspondente a ID 256


T DB10.DBD0 // Transfere para a palavra dupla DBD0 da DB 10

L PID 260
T DB10.DBD 4

L PID 264
T DB10.DBD 8

L PID 268
T DB10.DBD 12
L DB20.DBD 0 // Carrega a palavra dupla DBD0 da DB 20
T PQD 256 // Transfere a palavra dupla de saida de periferia correspondiente a QD256

L DB20.DBD 4
T PQD 260

L DB20.DBD 8
T PQD 264

L DB20.DBD 12
T PQD 268
Exemplo com o escravo 1:
Programa no S7:
Obrigado pela sua atenção e até a próxima!

Rodrigo Moreira Borges


Técnico em Eletrotécnica
tecrmb@outlook.com

Potrebbero piacerti anche