21/04/2018 Página 1 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline
STEP 7 V1X
Open User Communication ( TCP/IP)
Denilson Pegaia
Objetivo: Mostrar como configurar uma comunicação TCP/IP com controladores S7-1200 /
S7-1500.
Aviso: Este documento apresenta dicas e exemplos sobre o produto e supõe que o leitor possua conhecimento básico prévio sobre o mesmo. Para informações completas e atualizadas, deve-se consultar o manual do produto. O intuito deste texto é meramente didático, podendo ser alterado pela Siemens sem aviso prévio. Os exemplos devem ser adaptados ao uso final e exaustivamente testados antes de utilizados em projetos reais.
Índice
1. Introdução ... 1
2. Pré-requisitos ... 2
3. Configuração de controlador que enviará dados ... 3
4. Configuração de controlador que receberá dados ... 7
5. Diagnóstico da comunicação ... 12
6. Informação adicional ... 15
7. Referências ... 15
8. Suporte técnico e treinamento ... 16
1. Introdução
Em muitas aplicações industriais faz-se necessário trocar dados entre controlador e
equipamentos de terceiros via protocolos abertos. Uma das opções mais simples é o uso do protocolo TCP/IP.
Na família de controladores S7-1200 / S7-1500 este tipo de comunicação é estabelecido através da chamada de blocos TCON, TSEND e TRCV.
Para efeitos didáticos, estamos demonstrando como a comunicação é feita entre dois controladores, dividindo a descrição em duas partes (envio de dados e recebimento de dados). Os conceitos assim mostrados podem ser adaptados livremente para situações de envio e recebimento num mesmo controlador e adaptados para comunicação com
21/04/2018 Página 2 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline
2. Pré-requisitos
Para que uma comunicação TCP/IP se estabeleça são necessárias as seguintes informações:
Endereço IP de ambos os participantes (eles devem estar na mesma faixa de IP ou deverá haver um roteador para tornar a comunicação viável).
Qual dos participantes será o responsável por estabelecer a conexão e qual vai “atender” a este pedido (nota: a escolha é arbitrária e não depende de quem vai enviar ou receber dados – Em nosso exemplo, o controlador que envia dados será o responsável por estabelecer a conexão).
Porta de conexão (ou socket): este “sub endereço” pode ser pré-definido em ambos os participantes ou somente do lado de quem “atender” ao pedido de conexão. Em geral, a porta é um número arbitrário combinado entre as partes (mas alguns equipamentos têm valores fixos). Alguns valores de porta são reservados para determinados serviços (por exemplo, páginas HTML, e-mail), por isso a Siemens sugere o uso de portas com número >= 2000.
Quantos bytes de dados serão enviados / recebidos e onde eles serão armazenados de cada lado.
21/04/2018 Página 3 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline
3. Configuração de controlador que enviará dados
Arrastar o bloco TCON da biblioteca (divisão Communication, Open user communication,
Others) para o programa do usuário (e.g. OB1):
Clicar na caixa de ferramentas:
21/04/2018 Página 4 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline Clicar <new> em Connection data:
Entrar com o endereço IP e porta do parceiro da comunicação; selecionar qual equipamento será o responsável por estabelecer a conexão (em nosso exemplo o controlador que
enviará os dados):
Endereço IP
21/04/2018 Página 5 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline Atribuir a entrada REQ a variável de sistema “FirstScan”:
Arrastar o bloco TSEND da biblioteca (divisão Communication, Open user communication,
21/04/2018 Página 6 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline Preencher a entrada ID do bloco TSEND com o mesmo valor da entrada ID do bloco TCON:
21/04/2018 Página 7 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline Atribuir à entrada DATA, um ponteiro que indique os dados a serem enviados. Em nosso exemplo tomamos um ponteiro apontando para 4 bytes a partir do endereço M10.0.
Notas:
A notação de ponteiros com endereço absoluto segue a regra P# + endereço do primeiro bit a ser enviado + BYTE + quantidade de bytes enviados.
Outras notações são possíveis (inclusive simbólicas). Para efeito de primeiros testes, contudo, sugerimos o uso de ponteiros com endereços absolutos apontando para áreas de memória M.
4. Configuração de controlador que receberá dados
Arrastar o bloco TCON da biblioteca (divisão Communication, Open user communication,
Others) para o programa do usuário (e.g. OB1):
21/04/2018 Página 8 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline Selecionar, em Partner / End Point, Unspecified:
21/04/2018 Página 9 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline Entrar com o endereço IP do parceiro da comunicação; indicar a porta que será usada localmente (tem que ser o mesmo número usado como porta do parceiro na configuração do controlador que envia dados); selecionar qual equipamento será o responsável por estabelecer a conexão (em nosso exemplo o controlador que enviará os dados):
Endereço IP
21/04/2018 Página 10 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline Atribuir a entrada REQ a variável de sistema “FirstScan”:
Arrastar o bloco TRCV da biblioteca (divisão Communication, Open user communication,
21/04/2018 Página 11 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline Preencher a entrada ID do bloco TRCV com o mesmo valor da entrada ID do bloco TCON:
21/04/2018 Página 12 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline Atribuir à entrada DATA, um ponteiro que indique os dados a serem recebidos. Em nosso exemplo tomamos um ponteiro apontando para 4 bytes a partir do endereço M10.0.
Notas:
A notação de ponteiros com endereço absoluto segue a regra P# + endereço do primeiro bit a ser enviado + BYTE + quantidade de bytes enviados.
Outras notações são possíveis (inclusive simbólicas). Para efeito de primeiros testes, contudo, sugerimos o uso de ponteiros com endereços absolutos apontando para áreas de memória M.
5. Diagnóstico da comunicação
Para efeitos de debug de primeiros testes e para obter um diagnóstico durante operação sugere-se a implantação de programa de usuário adicional para processar as variáveis de saída dos blocos de comunicação. Em geral estes programas complementares contabilizam os registros de done e error para determinar se a comunicação está funcionando ou não. Uma armadilha para memorizar o estado da variável status durante um evento de erro pode ser usada para obter a causa de uma eventual falha de comunicação.
21/04/2018 Página 13 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline
Figura 2 - Exemplo de programa de usuário processando saída dos blocos de comunicação para fins de diagnose (controlador que envia dados).
21/04/2018 Página 14 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline
Figura 3 - Exemplo de programa de usuário processando saída dos blocos de comunicação para fins de diagnose (controlador que recebe dados).
21/04/2018 Página 15 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline
6. Informação adicional
FAQ desenvolvida por Denilson Pegaia e revisada por Fabricio Campidelli Gozzo.
7. Referências
Artigos publicado no site da do Suporte Técnico Industrial Siemens:
How do you configure open IE communication via the integrated PN/IE interface of the CPU or via an Industrial Ethernet CP?
https://support.industry.siemens.com/cs/ww/en/view/24294554
Basic Examples for Open User Communication (OUC)
https://support.industry.siemens.com/cs/br/en/view/109747710
How do you program the TCON communication instruction to establish a connection for the Open User Communication between two S7-1500 CPUs?
https://support.industry.siemens.com/cs/ww/en/view/58875807
How do you program the TSEND_C and TRCV_C instructions for open user communication over the integrated PROFINET interface of the S7-1200/S7-1500 CPU? https://support.industry.siemens.com/cs/br/en/view/67196808
How do the instructions TSEND_C and TRCV_C behave in the S7-1500?
https://support.industry.siemens.com/cs/us/en/view/109479564
Data synchronization over open communication between multiple field devices (S7-1200) and a head PLC (S7-1200/ S7-300/ WinAC) (Set 17).
https://support.industry.siemens.com/cs/ww/en/view/39040038 Artigos publicados no Forum Siemens
S7-1200 TCP communication - Sample program
https://support.industry.siemens.com/tf/ww/en/posts/s7-1200-tcp-communication-sample-program/46768/?page=0&pageSize=10
(inclue, na publicação de 14/04/2018, vídeos e projeto exemplo demonstrando a configuração deste artigo).
Sample program S7-1200 HyperTerminal TCP comunications
https://support.industry.siemens.com/tf/ww/en/posts/sample-program-s7-1200-hyperterminal-tcp-comunications/49723/?page=0&pageSize=10
21/04/2018 Página 16 / 16
s Industry Sector - Technical Support & Hotline www.siemens.com.br/Hotline
8. Suporte técnico e treinamento
Suporte Técnico
Requisição de Suporte (novos chamados):
https://support.industry.siemens.com/my/br/pt/requests/#createRequest
A informação que você precisa (FAQ, manuais, arquivos, fórum) pode estar no Portal do Suporte Técnico:
Site mundial (inglês): https://support.industry.siemens.com/cs/?lc=en-BR Site Brasil (português): http://www.siemens.com.br/Hotline
Centro de treinamento - SITRAIN
Informações: www.siemens.com.br/sitrain Tel.: 0800 11 94 84