Escolar Documentos
Profissional Documentos
Cultura Documentos
Especialista de automação
Midias Sociais:
LinkedIn: https://br.linkedin.com/in/rodrigo-borges-
tecrmb
Instagram:https://www.instagram.com/rodrigomoreir
a.borges/
Youtube: https://www.youtube.com/c/InversoresCari
oca
COMUNICAÇÃO ABERTA TCP/IP VIA ETHERNET
INDUSTRIAL PARA CLP SIEMENS E “OUTROS”
DISPOSITIVOS
• A comunicação aberta TCP/IP é um recurso muito útil para interligar o CLPs
no chão de fábrica com sistemas superiores (ERP, WMS, MES) em aplicações
Desktop/Servidor, ou conexão com outros equipamentos e/ou CLPs.
• Com ela nós podemos gerar Status, Comandos e qualquer outra troca de
informações que sua aplicação necessitar.
• É muito comum encontrar esse tipo de comunicação no chão de fábrica
interligando diversos equipamentos
O QUE VOCÊ VAI APRENDER
NESSE TREINAMENTO?
• Nós vamos abordar a configuração de comunicações abertas TCP/IP
através de CLPs do Fabricante SIEMENS.
• Serão demostrado como configurar comunicações entre CLPs, Softwares
utilitários para PC, assim como tambem serão utilizados simuladores
como o simulador HRSS do robô HIWIN e tambem o software utilitário
Hercules só para citar alguns.
• Na maior parte do curso iremos utilizar o software TIA Portal v15.1
para realizar as configurações.
• Esse curso é composto por aulas teóricas e práticas que lhe
proporcionarão um entendimento completo sobre o tema proposto.
MODULO 1 -
CONCEITOS INICIAIS
• Protocolo TCP;
• Conceitos de
Cliente/Servidor;
• O Conceito de Porta;
• Three-Way Handshake.
PROTOCOLO TCP
• Protocolo TCP é um serviço de entrega de pacotes que
garante a entrega e a integridade do pacote na conexão
lógica entre dois computadores. Nesse tipo de comunicação,
ambos os computadores entram em conformidade de como
será feito o envio dos pacotes entre si.
• Quando uma informação é transmitida, mecanismos de
verificação de integridade garantem que a informação seja
recebida sem erros.
• É utilizado em transmissões onde nenhum tipo de erro é
aceitável como por exemplo http, ftp etc.
• Por conta dos vários mecanismos de verificação que ele
possui o torna relativamente mais lento se o compararmos
com o protocolo UDP que possui mecanismos de verificação
mais simples.
CONCEITOS DE CLIENTE/SERVIDOR
• Uma porta é um objeto abstrato, codificado por um número inteiro de 16 bits, usado
para identificar processos de aplicação.
• Para uma aplicação poder “falar” com uma outra numa máquina remota, é preciso
conhecer não apenas o endereço IP da máquina destino mas também a porta
associada à aplicação parceira.
• O UDP e o TCP fornecem um conjunto de portas que permite a múltiplos processos
dentro de uma única máquina usarem os serviços de comunicação providos pelo UDP
e TCP simultaneamente.
• Números de portas origem e destino são incluídos no cabeçalho do TCP e do UDP.
THREE-WAY HANDSHAKE
• Handshake de três vias, é responsável pelo
estabelecimento da conexão TCP.
• Como funciona:
• 1º-O Cliente envia um pacote com a flag SYN
ativa;
• 2º-O Servidor responde com um pacote com as
flags SYN + ACK;
• 3º-O Cliente responde com um pacote ACK.
• ACK = Acknowledgement(Reconhecimento).
• SYN = Synchronize(Sincronizar).
MODULO 2 - FUNDAMENTOS DE COMUNICAÇÃO
ABERTA PARA OS CONTROLADORES SIEMENS
• Visão geral da Comunicação aberta via
Ethernet industrial;
• O que é um RFC?
• Blocos de Comunicação no s7;
• TCP nativo de acordo com RFC 793;
• ISO on TCP de acordo com RFC 1006;
• UDP de acordo com RFC 768;
• Protocolos orientados a conexão e sem
conexão
• No STEP 7 nos temos os seguintes modos de comunicação
aberta:
VISÃO GERAL
DA ➢Protocolos orientados a conexão:
COMUNICAÇÃO • TCP nativo de acordo com RFC 793.
• O STEP 7 fornece os seguintes "Blocos de Comunicação" para a troca de dados por meio do
programa do usuário com outros parceiros de comunicação compatíveis com Ethernet:
• Protocolos orientados a conexão: TCP nativo de acordo com RFC 793, ISO on TCP de acordo
com RFC 1006:
• UDT 65 "TCON_PAR" com a estrutura de dados para atribuição de parâmetros de conexão
• FB 65 "TCON" para estabelecer uma conexão
• FB 66 "TDISCON" para encerrar uma conexão
• FB 63 "TSEND" para enviar dados
• FB 64 "TRCV" para receber dados
BLOCOS DE COMUNICAÇÃO NO S7
• Isso ocorre somente depois que os dados de um trabalho seguinte foram recebidos.
Observe que, neste caso, os dados de dois trabalhos de envio diferentes estarão
localizados na mesma área de recepção. Se você não souber o comprimento exato
da primeira mensagem, não terá como detectar o final da primeira mensagem ou o
início da segunda.
• Se você especificou o comprimento dos dados a serem recebidos (parâmetro DATA
de FB 64 "TRCV") seja menor que o comprimento dos dados enviados, o FB 64
copiará tantos bytes no intervalo do receptor quanto você especificou no parâmetro
LEN. Depois disso, ele definirá NDR como TRUE e escreverá RCVD_LEN com o valor
de LEN. A cada chamada adicional, você receberá outro bloco de dados enviados.
ISO ON TCP DE ACORDO COM RFC 1006
• O User Datagram Protocol (UDP) é um padrão TCP/IP e está definido pela RFC
768. O UDP é usado por alguns programas em vez do TCP para o transporte
rápido de dados entre hosts. Porém o UDP não fornece garantia de entrega,
ordenação, controle de fluxo e controle de congestionamento. Essa solução pode
parecer pouco ortodoxa, porém em determinadas situações é a melhor opção para
a camada de transporte, principalmente pelo fato de o UDP ser muito mais rápido e
gerar menos tráfego na rede, uma vez que não faz verificações e não estabelece
sessões.
• As funcionalidades fornecidas pelo TCP devem ser realizadas pela a camada de
aplicação quando a mesma utiliza o UDP como protocolo de transporte e necessita
desses cuidados.
UDP DE ACORDO COM RFC 768
• Ao contrário do TCP nativo e do ISO nos protocolos TCP, com UDP você não
estabelece uma conexão. Neste caso, ao chamar o bloco emissor FB 67
"TUSEND" deve-se especificar os parâmetros de endereço do receptor
(endereço IP e número da porta). Da mesma forma, após a conclusão do
bloco receptor FB 68 "TURCV", você receberá uma referência aos
parâmetros de endereço do remetente (endereço IP e número da porta). Para
poder usar os FBs 67 "TUSEND" e 68 "TURCV", primeiro você deve ligar para
o FB 65 "TCON" tanto no lado de envio quanto no lado de recepção. Esta
etapa é necessária para configurar o ponto de acesso de comunicação local.
UDP DE ACORDO COM RFC 768
• Introdução:
Para uma conexão ISO-on-TCP, os pontos de acesso do serviço de transporte
(TSAPs) devem ser atribuídos a ambos os parceiros de comunicação. TSAP IDs
são atribuídos automaticamente após a criação de uma conexão ISO-on-TCP.
Para garantir a exclusividade de TSAP IDs em um dispositivo, você pode alterar
os TSAPs pré-atribuídos na atribuição de parâmetro de conexão.
ESTRUTURA DE TSAPS:
• Você deve cumprir certas regras ao atribuir TSAPs. Um TSAP deve conter um
certo número de bytes, que podem ser exibidos e inseridos como valores
hexadecimais (TSAP-ID) ou como caracteres ASCII (ASCII-TSAP):
• Comprimento = 2 a 16 bytes
• x_tsap_id [0] = 0xE0 (comunicação aberta do usuário)
• x_tsap_id [1] = 0x00 a 0xFF
• x_tsap_id [2 ... 15] = qualquer caractere (extensão TSAP, opcional)
• (x = loc (local) ou x = rem (parceiro))
ESTRUTURA DO TSAP ID COMO ASCII TSAP:
• Comprimento = 3 a 16 bytes
• x_tsap_id [0 ... 2] para conexão ativa = 3 caracteres ASCII (0x00 a 0xFF) ou
qualquer string de bits *
• x_tsap_id [0 ... 2] para conexão passiva = 3 caracteres ASCII (0x20 a 0x7E)
ou qualquer string de bits *
• x_tsap_id [3 ... 15] = qualquer caractere (opcional)
• (x = loc (local) ou x = rem (parceiro))
VÁLIDO PARA CPU S7-1500
• Comprimento = 3 a 16 bytes
• x_tsap_id [0 ... 2] = 3 caracteres ASCII (0x00 a 0xFF) ou qualquer sequência de
bits *
• x_tsap_id [3 ... 15] = qualquer caractere (opcional)
• (x = loc (local) ou x = rem (parceiro))
• * Uma CPU S7-1200 é normalmente inserida no rack 0 e slot 1, e uma CPU S7-300 / 400 no rack 0 e slot 2. Por este motivo, o valor
hexadecimal 01 ou 02 é válido para a segunda posição do TSAP ID com extensão. Se o parceiro de conexão for uma CPU não especificada,
por exemplo, um dispositivo de terceiros, o valor hexadecimal 00 também é permitido para o endereço do slot.
• Nota
Para parceiros de comunicação não especificados, o TSAP-ID local e o parceiro TSAP-ID podem ter um comprimento de 0 a 16 bytes, em que
todos os valores hexadecimais de 00 a FF são permitidos.
EXEMPLOS DE ATRIBUIÇÃO TSAP
EXEMPLO 1:
CRIAÇÃO DE
UMA NOVA
CONEXÃO PARA • Você pode alterar os valores nos campos de entrada do TSAP-ID e do ASCII-TSAP a
COMUNICAÇÃO •
qualquer momento.
O campo de entrada do TSAP-ID mostra o TSAP completo armazenado no bloco de
PLC-PLC dados da descrição da conexão. O TSAP-ID com extensão TSAP, que é limitado a 16
caracteres, não é exibido no campo de entrada "TSAP (ASCII)" porque o caractere E0
não representa um caractere válido para o ASCII-TSAP.
• Se o TSAP-ID exibido for um ASCII-TSAP válido, ele será exibido no campo de entrada
"TSAP (ASCII)".
• As alterações nos campos de entrada para TSAP-ID e ASCII-TSAP afetam o outro
campo.
EXEMPLO 2: ENTRADA DE UM ASCII-TSAP LOCAL
• Se você criou uma nova conexão e atribuiu um valor ASCII para o TSAP local
no campo de entrada "TSAP (ASCII)", por exemplo, "ISOonTCP-1", o TSAP-ID
resultante será criado automaticamente.
• Quando você sai do campo de entrada "TSAP (ASCII)", o número de
caracteres ASCII é verificado automaticamente para conformidade com o
limite (3 a 16 caracteres) e o TSAP-ID resultante é inserido no campo de
entrada correspondente:
EXEMPLO 3: ENTRADA DE UMA EXTENSÃO TSAP
NO TSAP-ID
• Se, após a criação de uma conexão e a entrada de um ASCII-TSAP no campo de entrada do
TSAP-ID local, você adiciona o prefixo "E0.01" ao valor TSAP, o ASCII-TSAP não será mais
exibido quando o campo de entrada for encerrado.
• Descrição:
• FB 67 "TUSEND" envia dados via UDP para o parceiro remoto especificado
pelo parâmetro ADDR.
• Descrição:
• FB 68 "TURCV" recebe dados via UDP. Após a conclusão bem-sucedida do FB
68 "TURCV", o parâmetro ADDR mostrará o endereço do parceiro remoto (o
remetente).
• FB 68 "TURCV" é um FB de funcionamento assíncrono, o
que significa que seu processamento se estende por várias
chamadas FB. Para começar a enviar dados, ligue para FB
68 com REQ = 1. O status do trabalho é indicado nos
parâmetros de saída RET_VAL e BUSY. STATUS
corresponde ao parâmetro de saída RET_VAL de SFCs de
funcionamento assíncrono. A tabela a seguir mostra as
relações entre BUSY, DONE e ERROR. Usando esta tabela,
FUNÇÃO você pode determinar o status atual do FB 68 ou quando o
processo de recebimento for concluído.
ESTABELECENDO • ISO-on-TCP: descrição da conexão por meio do tipo de dados do sistema TCON_IP_RFC
•
UMA CONEXÃO ISO: Descrição da conexão através do tipo de dados do sistema TCON_ISOnative (CP 1543-1
/ CP 1545-1)
• Conexões FDL do S7-1500 com CM 1542-5 a partir de V2.0 com o tipo de dados do sistema
TCON_FDL
• Conexões configuradas
• TCP (modo Ad-hoc): O modo ad-hoc está disponível apenas com a variante do protocolo TCP. Você usa o modo ad-hoc para
receber dados com comprimento dinâmico com a instrução "TRCV_C". Você define o modo ad-hoc atribuindo o valor "1" ao
parâmetro ADHOC. Todos os tipos de dados podem ser usados para blocos de dados com acesso padrão quando você usa
o modo ad-hoc. Apenas ARRAY de BYTE ou tipos de dados com comprimento de 8 bits podem ser usados para blocos de
dados com acesso otimizado (por exemplo, CHAR, USINT, SINT, etc.). O comprimento dos dados realmente recebidos é
emitido no parâmetro RCVD_LEN.
• TCP (recebimento de dados com comprimento especificado): Atribua o valor "0" ao parâmetro ADHOC para recebimento de
dados com comprimento especificado. Se o modo ad-hoc for desativado, a recepção de dados não será concluída até que o
comprimento de dados especificado no parâmetro LEN tenha sido completamente recebido. Só então os dados ficam
disponíveis na área de recepção (parâmetro DATA). O comprimento dos dados realmente recebidos em bytes no parâmetro
RCVD_LEN corresponde ao comprimento dos dados no parâmetro LEN após o recebimento.
• ISO - em - TCP (transferência de dados orientada para mensagens): Os blocos de mensagem completos são enviados por
meio de uma conexão com a variante do protocolo ISO - on - TCP; estes são reconhecidos como tal pelo destinatário. A área
de recepção é definida pelos parâmetros LEN e DATA. Se o buffer de recepção (parâmetro DATA) for muito pequeno para
os dados enviados, "TRCV_C" sinaliza um erro. O comprimento dos dados realmente recebidos em bytes no parâmetro
RCVD_LEN corresponde ao comprimento dos dados no parâmetro LEN após o recebimento.
ENCERRANDO A CONEXÃO DE COMUNICAÇÃO
• AD HOC: BOOL - Parâmetro opcional (oculto) Use o modo ad-hoc para a variante
do protocolo TCP. ADHOC deve ter o valor FALSE se nenhum protocolo TCP for
usado.
• ADDR: InOut - Parâmetro oculto que precisa ser usado, no entanto, com UDP.
• Com CONT = "0": Nenhum dado é recebido (independentemente de ser utilizada uma
conexão programada ou configurada).
PARÂMETROS •
•
Com CONT = "1":
Enquanto nenhum dado for recebido (EN_R = "0"), a conexão é verificada com "T_DIAG".
EN_R, CONT E • Se as instruções de comunicação usadas internamente sinalizam que não existe um ponto final
COM_RST •
de conexão, a conexão é restabelecida automaticamente com "TCON".
• Com uma conexão configurada, é redefinido com "T_RESET". O parâmetro COM_RST reseta a
conexão ao mudar de "0" para "1":
• Ele foi criado apenas para uso interno do grupo HW, mas hoje inclui muitas
funções em um utilitário e é Freeware!
• https://www.hw-group.com/software/hercules-setup-utility
COMUNICAÇÃO UDP ENTRE CLP S7 E ARDUINO
UDP
DISPOSITIVOS E SOFTWARES
USADOS NO PROJETO:
• S7 1211C;
• Arduino Mega;
• Shield Ethernet W5100;
• IDE Arduino v1.8.13;
• TIA Portal v15.1.
COMUNICAÇÃO TCP S7 1200 E SIMULADOR DE
ROBÔ HIWIN
TCP
DIAGNÓSTICO DA COMUNICAÇÃO
• Descrição: Você usa a instrução "T_DIAG" para verificar o status de uma conexão e ler mais
informações sobre o ponto de extremidade local desta conexão.
• A conexão é referenciada pelo parâmetro ID. Você pode ler os pontos finais de conexão
configurados no editor de conexão e os pontos finais de conexão programados (por
exemplo, com a instrução "TCON"). Os pontos finais de conexão temporários (por exemplo,
pontos finais criados quando você se conecta a uma estação de engenharia) não podem ser
diagnosticados, pois nenhum ID de conexão é gerado neste processo.
• As informações de conexão lidas são armazenadas em uma estrutura referenciada pelo
parâmetro RESULT.
• O parâmetro de saída STATUS indica se foi possível ler as informações de conexão. A
informação de conexão na estrutura no parâmetro RESULT só é válida se a instrução "T_DI-
AG" foi completada com STATUS = W # 16 # 0000 e ERROR = FALSE. As informações de
conexão não podem ser avaliadas se ocorrer um erro.
PARÂMETROS
PARÂMETRO STATUS
ESTRUTURAS TDIAG_STATUS
CONFIGURAÇÃO (OUC) COM SIMATIC MANAGER E
S7 300
CONTROLE DO
COMPRIMENTO DOS
DADOS
• Regras para enviar dados através
de TCP, ISO-on-TCP e UDP.
• Em TCP o tamanho do campo
“DATA” deve ser igual ou maior
que o campo “LEN”.
• Em ISO-on-TCP e UDP o tamanho
do campo “DATA” tem que ser
igual ao tamanho do “LEN”.
CONFIGURAÇÃO BROADCAST
• Você pode habilitar um Web Server nos
CLPs da SIEMENS para que você possa
verificar o estado de todas as suas
conexões criadas com os protocolos TCP,
VISUALIZANDO ISSO-on-TCP e UDP.
AS CONEXÕES • Ele vai ser muito útil quando for necessário
realizar algum diagnóstico em suas
conexões.
ENCERRAMENTO!