Você está na página 1de 41

Comunicação S7 entre CLPs

S7 1200 e S7 300
Rodrigo Borges
Descrição do Projeto:

• Este projeto tem como objetivo demostrar a configuração para troca


de dados entre um S7-1200 e um S7-300 usando o S7 Communication.
• O S7-1200 é configurado e programado no STEP 7 V16 e o S7-300 é
configurado e programado no STEP 7 V5.6.
• Duas conexões S7 são estabelecidas.
• Para a primeira conexão S7, o S7-300 atua como cliente e o S7-1200
como servidor. Isso significa que o S7-300 estabelece a conexão
ativamente. Os blocos de função FB14 "GET" e FB 15 "PUT" são
chamados no programa do usuário do S7-300 para ler dados do S7-
1200 e gravar dados no S7-1200.
Descrição do Projeto:

• Para a segunda conexão S7, o S7-1200 atua como um cliente e o


S7-300 como um servidor. Isso significa que o S7-1200 estabelece a
conexão ativamente. As instruções "GET" e "PUT" são chamadas no
programa do usuário do S7-1200 para ler dados do S7-300 e gravar
dados no S7-300.
Configuração e
Programação do S7-300

Crie um projeto STEP 7

1. Abra o SIMATIC Manager.

2. No SIMATIC Manager, você cria um novo projeto STEP 7 através do


menu "File > New ".

3. No SIMATIC Manager, você adiciona uma estação SIMATIC com o


menu "Insert > Station> SIMATIC 300 Station".
Configure o
Hardware
1. No SIMATIC Manager, você marca a
estação SIMATIC S7-300 que
adicionou ao seu projeto STEP 7.
2. Clique duas vezes no item
"Hardware". A configuração de
hardware é aberta.
3. Configure a estação S7-300
arrastando e soltando os módulos
relevantes como fonte de
alimentação, CPU etc. do catálogo
de hardware no canal de perfil S7-
300.
Definir endereço IP e atribuir sub-
rede
1. Clique duas vezes na interface PROFINET da CPU S7-300. A caixa de diálogo Propriedades da
interface PROFINET é aberta.
2. Clique no botão "Properties" para alterar o endereço IP e a máscara de sub-rede e atribuir a sub-rede.
3. Digite o endereço IP e a máscara de sub-rede, por exemplo: (Endereço IP: 192.168.0.21 - Máscara de
sub-rede: 255.255.255.0)
4. Clique no botão "New ..." para criar uma nova sub-rede. Selecione a nova sub-rede ou outra sub-rede
existente.
5. Clique no botão "OK" para aplicar o endereço IP e a máscara de subrede e atribuir a subrede selecionada
à interface PROFINET da CPU S7-300.
Defina a memória do relógio
1. Clique duas vezes na CPU S7-300. A caixa de diálogo Propriedades da CPU S7-
300 é aberta
2. Mude para a guia "Cycle / Clock Memory" e habilite, por exemplo, o byte 17 de
memória como memória de clock.
3. Clique no botão "Salvar e compilar" para salvar e compilar a configuração da
estação SIMATIC S7-300
Configure o S7-300 como
cliente
• A estação S7-300 configura ativamente a conexão S7.
• Neste caso, você deve configurar uma conexão S7 para a CPU S7-300 e chamar os
seguintes blocos de função (FBs) no programa do usuário:
• FB14 "GET": Você usa FB14 "GET" para ler dados de uma CPU parceira.
• FB15 "PUT": Você usa FB15 "PUT" para gravar dados em uma CPU parceira.
Configure a conexão S7
• Adicionar uma conexão S7
1. No SIMATIC Manager você abre a ferramenta "NetPro" através do menu "Options> Configure
Network".
2. Em "NetPro" você configura a conexão S7 para a CPU S7-300.
3. Marque a CPU na estação SIMATIC S7-300.
4. Abra a caixa de diálogo "Insert new connection" através do menu "Insert> New connection ...".
5. Selecione o item "Unspecified" em "Connection Partner".
6. Selecione "S7 Connection" como o tipo de conexão.
7. Clique em "Apply". A caixa de diálogo Propriedades da conexão S7 é aberta.
Definir parâmetros
de conexão
• Na caixa de diálogo Propriedades da conexão S7, você
define os parâmetros de conexão.
1. Habilite a função "Establish an active connection".
2. Insira o endereço IP da CPU parceira. Neste exemplo, você
insere o endereço IP da CPU S7-1200: 192.168.0.11.
3. Você especifica o ID local da conexão no programa do
usuário no parâmetro de entrada "ID" dos blocos de função
FB14 "GET" e FB15 "PUT".
4. Clique no botão "Address Details ...". A caixa de diálogo
"Detalhes do endereço" é aberta.
Definir parâmetros de conexão

1. Entre no rack e slot da CPU parceira. A CPU S7-1200 usa Rack 0 e Slot 1.
2. Selecione o recurso de conexão 03 (hex) para a CPU parceira, pois a
conexão S7 só é configurada unilateralmente na CPU S7-300. Com
essas configurações, o TSAP tem o valor 03.01 na CPU parceira.
3. Aplique as configurações com "OK".
4. Da mesma forma, aplique as configurações na caixa de
diálogo Properties S7 connection com "OK".
5. Na caixa de diálogo "Insert New Connection", clique no botão "OK" para
fechar a caixa de diálogo. A conexão S7 é inserida em "NetPro".
Carregue a
conexão S7
1. No "NetPro" você marca a CPU na estação SIMATIC S7-
300. A tabela de conexão mostra todas as conexões
configuradas para a UCP.
2. No "NetPro" você marca a estação SIMATIC S7-300.
3. Na barra de ferramentas, você clica no botão "Save and
compile" para salvar e compilar a configuração da
conexão.
4. Na barra de ferramentas, você clica no botão "Download
the Selected Station(s)" para carregar a configuração de
conexão na CPU.
Criar um
programa de
usuário
FB14 "GET":Você usa FB14
"GET" para ler dados da CPU
S7-1200.
FB14 "GET" possui os seguintes parâmetros

• REQ: O parâmetro de controle "REQ" permite a transferência de


dados em um flanco ascendente.
• ID: Referência à descrição da conexão local (predefinida pela
configuração da conexão em "NetPro").
• ADDR_1: Ponteiro para a área a ser lida na CPU parceira (Área de
envio de dados na CPU parceira, aqui CPU S7-1200).
• RD_1: Ponteiro para a área em sua própria CPU na qual os dados
lidos são armazenados (área de recebimento de dados em sua
própria CPU, aqui CPU S7-300).
FB14 "GET" possui os seguintes parâmetros

• NDR: Parâmetro de estado NDR: 0 = Trabalho ainda não iniciado ou em


execução 1 = Trabalho executado sem erros
• Parâmetros de estado ERROR e STATUS:
• ERROR = 0:
- STATUS = 0000 (hex): nem aviso nem erro
- STATUS <> 0000 (hex): aviso, STATUS fornece informações detalhadas
• ERROR = 1:
Ocorreu uma falha. STATUS fornece informações detalhadas sobre o
tipo de erro.
Funcionamento
• Receber área de dados na CPU S7-300
• Na CPU S7-300, os dados de recepção lidos da CPU S7-1200
são armazenados no bloco de dados DB10
"RECV_DATA_CLIENT".
• Neste exemplo, 10 bytes de dados começando no endereço 0
são armazenados no DB10 "RECV_DATA_CLIENT".
• Enviar área de dados na CPU S7-1200
• Na CPU S7-1200, os dados lidos do S7-300 são armazenados
no bloco de dados DB1 "SendDataServer".
• Neste exemplo, 10 bytes de dados começando no endereço 0
são lidos do DB1 "SendDataServer" da CPU S7-1200.
FB15 "PUT"

• Você usa FB15 "PUT" para gravar dados


na CPU S7-1200
FB15 "PUT" possui os seguintes parâmetros

• REQ: O parâmetro de controle "REQ" permite a transferência de


dados em um flanco ascendente.
• ID: Referência à descrição da conexão local (predefinida pela
configuração da conexão em "NetPro").
• ADDR_1: Ponteiro para a área a ser escrita na CPU parceira (área de
recepção de dados na CPU parceira, aqui S7-1200 CPU).
• SD_1: Ponteiro para a área em sua própria CPU que contém os
dados a serem enviados (Área de envio de dados em sua própria
CPU, aqui CPU S7-300).
FB15 "PUT" possui os seguintes parâmetros

• DONE: 0 = Trabalho ainda não iniciado ou em execução, 1 = Trabalho


executado sem erros.
• Parâmetros de estado ERROR e STATUS:
• ERROR = 0:
- STATUS = 0000 (hex): nem aviso nem erro
- STATUS <> 0000 (hex): aviso, STATUS fornece informações detalhadas
• ERROR = 1:
Ocorreu uma falha. STATUS fornece informações detalhadas sobre o tipo
de erro.
Funcionamento
• Enviar área de dados na CPU S7-300
• Na CPU S7-300, os dados de envio gravados na CPU S7-1200 são
armazenados no bloco de dados DB11 "SEND_DATA_CLIENT".
• Neste exemplo, 10 bytes de dados começando no endereço 0 são
gravados do DB11 "SEND_DATA_CLIENT" para a CPU S7-1200.
• Receber área de dados na CPU S7-1200
• Na CPU S7-1200, os dados recebidos são armazenados no bloco de
dados DB2 "RrcvDataServer".
• Neste exemplo, 10 bytes de dados começando no endereço 0 são
armazenados no DB2 "RecvDataServer".
Configure o SIMATC S7-300 como servidor

• Vamos inserir bloco do tipo DB ao projeto.


• No nosso exemplo vamos inserir a DB21 e dar o nome simbólico para
o bloco, "SEND_DATA_SERVER".
• Aplique as configurações com "OK". O bloco
DB21 "SEND_DATA_SERVER" é inserido na pasta "Blocos".
• Em DB21 "SEND_DATA_SERVER" você define a variável
"SEND_DATA" do tipo de dados Array [1..10] de Byte.
Configure o SIMATC S7-300 como servidor

• Adicione outro banco de dados para salvar os dados recebidos.


• Você insere o nome e o tipo do bloco a ser criado, DB20, por exemplo.
• Insira um nome simbólico para o bloco, "RECV_DATA_SERVER", por exemplo.
• Aplique as configurações com "OK". O bloco DB20 "RECV_DATA_SERVER" é
inserido na pasta "Blocos".
• No DB20 "RECV_DATA_SERVER" você define a variável "RECV_DATA" do tipo
de dados Array [1..10] de Byte.
• Ao final você pode descarregar todo o projeto para o CLP.
Configuração
e Programação do S7-1200
• Crie um Projeto
1. Abra o STEP 7 V16 (TIA Portal V16).
2. Na Visualização do portal, selecione a ação "Create
new project".
3. Insira um nome de projeto
4. Selecione um caminho no qual o projeto deve ser
armazenado.
5. Clique no botão "Creat". O projeto é armazenado no
caminho selecionado.
• Clique no link "Project view" para alternar para a
Visualização do projeto.
Configure o
Hardware
• Adicionar um SIMATIC S7-1200
1. Na árvore do projeto, clique duas vezes no item "Add new device". A caixa de
diálogo "Add new device" é aberta.
2. Na área de trabalho, clique no botão "Controllers". Em "Controllers> SIMATIC S7
1200> CPU", você seleciona a CPU S7-1200 necessária.
3. Conforme necessário, você pode alterar a versão do firmware a ser usada para
configurar a CPU S7-1200 selecionada.
4. Habilite a função "Open device view".
5. Clique no botão "OK" para aplicar as configurações e fechar a caixa de diálogo.
- Se a função "Open device view" estiver habilitada, a visualização do dispositivo da
CPU S7-1200 será aberta no editor "Dispositivos e redes".
-A pasta do dispositivo da CPU S7-1200 é exibida na árvore do projeto.
Definir endereço IP e atribuir sub-
rede
1. Na exibição de dispositivo ou exibição de rede do editor “Devices & networks", você marca a
CPU S7-1200.
2. Na janela do inspetor, você seleciona a guia "Properties".
3. Na guia "Geral", você seleciona "Interface PROFINET [X1]> Ethernet addresses".
4. Neste exemplo, você insere o endereço IP e a máscara de sub-rede para a interface
PROFINET da CPU S7-1200 da seguinte forma: - Endereço IP: 192.168.0.11 - Máscara de sub-
rede: 255.255.255.0
5. Atribua uma sub-rede à interface PROFINET.
6. Clique no botão "Add new subnet" para criar uma nova sub-rede.
Permitir acesso com
comunicação PUT/GET do
parceiro remoto

1. Na guia "General", selecione "Protection & Security>


Connection mechanisms".
2. Habilite a função "Permit access with PUT/GET
communication from remote partner".
Definir a memória
do relógio
1. Na guia "General", selecione "System and clock memory".
2. Habilite a função "Enable the use of clock memory byte".
3. Insira o endereço do byte de memória do relógio, "17",
por exemplo.
Configure o SIMATC S7-1200 como servidor

1. No programa do usuário da CPU S7-1200, você adiciona os blocos de dados para salvar os dados de
envio e recebimento.
2. Na árvore do projeto, navegue até a pasta de dispositivos da CPU S7-1200. A pasta do dispositivo contém
objetos estruturados e ações que pertencem ao dispositivo.
3. Na pasta do dispositivo, navegue até a subpasta "Progam blocks" e clique duas vezes na ação "Add new
block".
4. Clique no botão "Data block (DB)".
5. Digite o nome do bloco de dados (DB), "SendDataServer", por exemplo.
6. Ative a opção "Automatic" para que o número do banco de dados seja atribuído automaticamente pelo
STEP 7.
7. Habilite a função "Add new and open".
8. Clique no botão "OK" para aplicar as configurações e fechar a caixa de diálogo.
• No BD "SendDataServer" você define a variável estática "sendData" do tipo de dados Array [1..10] de Byte.
Configure o SIMATC S7-1200 como servidor

1. Adicione outro banco de dados para salvar os dados recebidos.


2. Na caixa de diálogo "Add new block", clique no botão "Data block (BD)".
3. Digite o nome do BD, "RecvDataServer", por exemplo.
4. Ative a opção "Automatic" para que o número do BD seja atribuído
automaticamente pelo STEP 7.
5. Habilite a função "Add new and open".
6. Clique no botão "OK" para aplicar as configurações e fechar a caixa de
diálogo.
7. No banco de dados "RecvDataServer" você define a variável estática
"recvData" do tipo de dados Array [1..10] de Byte.
Desative a opção "Bloquear
acesso otimizado"

• Uma vez que o parceiro de comunicação SIMATIC S7-


300, por exemplo, não suporta BDs com acesso ao bloco
otimizado, deve-se desabilitar a opção "Optimized block
access" em "Attributes" nas Propriedades do BD.
• BDs com acesso padrão possuem estrutura fixa. Os
elementos de dados na declaração incluem um nome
simbólico e um endereço fixo no bloco. O endereço é
exibido na coluna "Offset". Você pode endereçar as
variáveis neste bloco de forma simbólica e absoluta.
Configure o SIMATC S7-1200 como cliente

• Configure a conexão S7 1.
1. Na árvore do projeto, clique duas vezes no item "Devices & networks". A
visualização da rede é aberta no editor "Devices & networks".
2. Clique no ícone "Connections" na barra de ferramentas.
3. Selecione "S7 connection" como o tipo de conexão na caixa de lista suspensa
adjacente. A CPU S7-1200 é exibida destacada em cores na tela de rede.
4. Clique com o botão direito na CPU S7-1200. O menu pop-up é aberto.
5. Selecione o item "Add new connection". A caixa de diálogo "Add new connection" é
aberta.
6. Clique no botão "Add". Uma conexão S7 é adicionada.
7. Clique no botão "Close" para fechar a caixa de diálogo.
Definir parâmetros de conexão

1. Na área da tabela da tela de rede, você abre a guia "Connections".


2. Marque a S7 connection. As propriedades da conexão S7 são exibidas na janela do inspetor.
3. Na guia "General", você seleciona o item "General". Insira o endereço IP da CPU parceira. Neste exemplo,
você insere o endereço IP da CPU S7-300: 192.168.0.21.
4. Na guia "General", você seleciona o item "Local ID". Você especifica o ID local da conexão no programa do
usuário no parâmetro de entrada "ID" das instruções "GET" e "PUT".
5. Na guia "General", você seleciona o item "Address details". Entre no rack e slot da CPU parceira. A CPU S7-
300 usa Rack 0 e Slot 2.
6. Selecione o recurso de conexão 03 (hex) para a CPU parceira, pois a conexão S7 é configurada apenas de
um lado na CPU S7-1200. Com essas configurações, o TSAP tem o valor 3 na CPU parceira.
7. Na guia "General", você seleciona o item "Special connection properties". Se o TSAP tiver o valor 3 na CPU
parceira, o "Conexão ativa A função de estabelecimento é ativada automaticamente e não pode ser
desativada.
Criar um programa
de usuário
• No programa do usuário da CPU S7-1200 você chama
as instruções "GET" e "PUT" para transferência de
dados. As instruções encontram-se no cartão de
tarefas "Instruções" em "Communication> S7
Communicação". Adicione as instruções arrastando e
soltando para a pasta "Blocos de programa" de sua
CPU S7-1200.
Instrução "GET"
Use a instrução "GET" para ler os dados da CPU S7-300.
A instrução "GET" possui os seguintes
parâmetros

• REQ: O parâmetro de controle "REQ" permite a transferência de


dados em um flanco ascendente.
• ID: Referência à descrição da conexão local (predefinida pela
configuração da conexão no STEP 7).
• ADDR_1: Ponteiro para a área a ser lida na CPU parceira (área de
envio de dados na CPU parceira, aqui CPU S7-300).
• RD_1: Ponteiro para a área em sua própria CPU na qual os dados
lidos são armazenados (Área de recebimento de dados em sua
própria CPU, aqui CPU S7-1200).
A instrução "GET" possui os
seguintes parâmetros

• NDR: Parâmetro de estado NDR: 0 = Trabalho ainda não iniciado ou


em execução 1 = Trabalho executado sem erros
• Parâmetros de estado ERROR e STATUS:
• ERROR = 0:
• - STATUS = 0000 (hex): nem aviso nem erro
• - STATUS <> 0000 (hex): aviso, STATUS fornece informações detalhadas
• ERROR = 1:
• Ocorreu uma falha. STATUS fornece informações detalhadas sobre
o tipo de erro.
Funcionamento
• Receber área de dados na CPU S7-1200
• Na CPU S7-1200, os dados de recepção lidos da CPU S7-300 são
armazenados no bloco de dados DB4 "RecvDataClient".
• Neste exemplo, 10 bytes de dados começando no endereço 0 são
armazenados no DB4 "RecvDataClient".
• Enviar área de dados na CPU S7-300
• Na CPU S7-300, os dados lidos da CPU S7-1200 são armazenados
no bloco de dados DB21 "SEND_DATA_SERVER".
• Neste exemplo, 10 bytes de dados começando no endereço 0 são
lidos do bloco de dados DB21 "SEND_DATA_SERVER" da CPU S7-
300.
Instrução "PUT"
Use a instrução "PUT" para gravar dados na CPU do S7-300.
A instrução "PUT" possui os seguintes
parâmetros

• REQ: O parâmetro de controle "REQ" permite a transferência de


dados em um flanco ascendente.
• ID: Referência à descrição da conexão local (predefinida pela
configuração da conexão no STEP 7).
• ADDR_1: Ponteiro para a área a ser escrita na CPU parceira (área de
recebimento de dados na CPU parceira, aqui CPU S7-300).
• SD_1: Ponteiro para a área em sua própria CPU que contém os
dados a serem enviados (Área de envio de dados em sua própria
CPU, aqui CPU S7-1200).
A instrução "PUT" possui os
seguintes parâmetros

• NDR: Parâmetro de estado NDR: 0 = Trabalho ainda não iniciado


ou em execução 1 = Trabalho executado sem erros
• Parâmetros de estado ERROR e STATUS:
• ERROR = 0:
• - STATUS = 0000 (hex): nem aviso nem erro
• - STATUS <> 0000 (hex): aviso, STATUS fornece informações detalhadas
• ERROR = 1:
• Ocorreu uma falha. STATUS fornece informações detalhadas
sobre o tipo de erro.
Funcionamento
• Enviar área de dados na CPU S7-1200
• Na CPU S7-1200, os dados de envio gravados na CPU S7-
300 são armazenados no bloco de dados DB6
"SendDataClient".
• Neste exemplo, 10 bytes de dados começando no endereço
0 são gravados do DB6 "SendDataClient" para a CPU S7-
300.
• Receber área de dados na CPU S7-300
• Na CPU S7-300 os dados recebidos são armazenados no
bloco de dados DB20 "RECV_DATA_SERVER".
• Neste exemplo, 10 bytes de dados começando no endereço
0 são armazenados no DB20 "RECV_DATA_SERVER".

Você também pode gostar