segunda-feira, 19 de setembro de 2011

de Colisões e Autonegociação


1. Introdução
Muitos profissionais já experimentaram problemas de intermitência na comunicação entre controladores e SCADA. É de conhecimento geral que essa falha é considerada uma das mais difíceis de serem solucionadas, embora, muitas vezes, seja causada por configurações simples.

2. Objetivo
O objetivo desse Wiki é evitar que algumas configurações de transmissão em rede sejam realizadas pelos técnicos de controle e demais pessoas envolvidas no startup dos projetos de automação. Não é escopo desse post explicar termos como half duplex e full duplex, para aqueles que desconhecem esses conceitos, esse link pode ser importante.

3. Descrição do Problema
Qual o comportamento da comunicação entre um dispositivo cuja transmissão foi fixada em 100Mbps Full Duplex, como mostra a configuração de hardware de um S7300 na Figura 1, e um switch cuja porta foi definida para autonegociação, como destacado na ferramenta de gerenciamento de um Hirschmann MACH100, Figura 2?

 

Figura 1: Configuração 100Mbps Full Duplex em um S7300


Figura 2: Configuração de autonegociação em um Hirschmann MACH 100
A resposta, como muitos devem ter imaginado, é a tão famigerada intermitência, um pesadelo para muitos profissionais de campo.

4. Explicação
Como a porta do switch está definida para autonegociação, esse dispositivo será capaz de reconhecer a velocidade com que o controlador está transmitindo, porém, o mesmo switch não será sagaz suficiente para reconhecer o parâmetro half/full duplex definido pelo controlador, e assumirá a configuração padrão (definido pela norma IEEE 802.3) para a velocidade de 100Mbps que é Half Duplex (fato que a pessoa responsável pela modificação desconhecia completamente).

Será identificada uma colisão toda vez que nosso S7300 tentar enviar algum pacote e, simultaneamente, perceber dados sendo recebidos. Contudo, por acaso do destino, o controlador conseguirá transmitir com sucesso, ocasionando a intermitência.
Para conhecimento, a configuração de half/full duplex padrão para a velocidade de 1Gbps é full duplex, por consequência, em médio prazo esse post será considerado completamente inútil.

5. Conclusão
A menos que a alteração de velocidade de transmissão e/ou a configuração para half/full duplex seja requisito do projeto, minha recomendação é deixar todos os ativos em autonegociação (afinal, não é à toa que esse é o valor default). Dessa forma, em uma eventual substituição de equipamento, não seja necessário (ou seja mínima) adequação dos seus parâmetros.

sexta-feira, 2 de setembro de 2011

de Fibras e Rádios

1. Objetivo
Esse post tem como objetivo mostrar como configurar uma redundância na comunicação com máquinas de pátio utilizando fibra ótica e rádio.


2. Link
Em novembro de 2008, quando o comissionamento do Raw Material Handling inicou, a estratégia de comunicação com as Stacker/Reclaimers despertou minha atenção. O meio físico utilizado para tráfego ethernet seria uma fibra ótica no interior do cabo de força, fabricado pela Cavotec, algo semelhante à figura abaixo, extraída do catálogo do fornecedor. Esse link seria responsável pela transmissão de intertravamentos, alarmes e comandos da máquina.



3. Vantagens e Desvantagens
Perante a configuração clássica em rádio, de fato, um link de fibra apresenta inúmeras vantagens para automação das stacker/reclaimers, destacam-se operações que demandam alto throughput como deploy de plataformas da suite Wonderware IAS, downloads de lógica e intervenções online.
Contudo, a falta de configuração de uma redundância para esse link, como testemunhado, se torna o pior pesadelo dos profissionais envolvidos na manutenção. Mais sobre isso com a Sra. Bethânia, a nova recordista do "maior jumper do mundo".


4. Loops
Dessa forma, como usar as duas soluções, rádio e fibra, simultaneamente?
O importante é evitar o fechamento de loop na rede, isso aconteceria se os dois switches fossem conectados, ao mesmo tempo, pela fibra ótica e pelo rádio, nesse caso, os pacotes de broadcast e multicast permanceriam rodando indefinidamente, tornando a rede completamente congestionada em em um prazo curtíssimo de tempo.
Para impedir esse desastre alguns switches contam com a implementação de alguns protocolos de camada 2: Link AggregationSpanning Tree.


5. Link Aggregation no Hirschmann RS20
Esse protocolo permite a interligação de dois switches através de duas ou mais conexões físicas (par trançado ou fibra ótica) definindo uma conexão lógica chamada de Trunk.


6. Rapid Spanning Tree Protocol no Hirschmann RS20
O RSTP da Hirschmann é uma melhoria do IEEE 802.1D, o tempo de resposta em caso de falha em uma porta é menor que 1 segundo, no STP pode chegar a 30 segundos.
Para configurá-lo, através do browser (antes, um endereço IP deve ser definido para o switch através do software HiDiscovery) navegue até Redundancy > Rapid Spanning Tree > Global.
É necessário definir um peso para as conexões do loop, dessa forma, o switch entenderá qual a porta prioritária, e, enviará os frames ethernet através dela.
Atenção! Realizar a configuração RSTP antes da conexão ao meio físico para evitar, justamente, o fechamento de loop.

7. Topologia Sugerida

8. Mais informações
a. Hirschmann User Manual - Redundancy Configuration
b. Veja também como configurar spanning tree - Understanding and Configuring Spanning Tree Protocol (STP) on Catalyst Switches e link aggregation - Link Aggregation Control Protocol (LACP) (802.3ad) for Gigabit Interfaces em switches/roteadores da Cisco.

de Rotas Estáticas e Timeout

1. Introdução

Tenho notado que nos projetos de automação mais recentes estamos nos defrontando com problemas relacionados a roteamento de pacotes, seja porque nossos clientes estejam adotando roteadores para segregação de redes SCADA e PLCs ou pela integração de servidores SCADA com redes corporativas. Esse Wiki descreverá como resolver um problema análogo, através de definições de rotas estáticas e alteração de métricas de roteamento.

2. Gateway

Gateway é um hardware responsável pela interligação de redes, função geralmente exercida por um roteador. É responsável por receber pacotes não alcançáveis dentro da sub-rede e encaminhá-los à rede adequada.
Para visualizar o endereço IP, a máscara e o gateway padrão atribuídos para cada interface de rede, é recomendada a utilização do comando IPCONFIG no prompt de comando, como exibe a figura abaixo.

A configuração do adaptador "Ethernet Conexão local 2" define que qualquer pacote com endereço de destino fora dos limites 172.20.10.1 a 172.20.10.15 (afinal, a máscara utiliza 28 bits) será encaminhado para o gateway 172.20.10.1.

De maneira semelhante, a configuração do adaptador "Conexão de Rede sem Fio" define que qualquer pacote com endereço de destino fora dos limites 128.1.0.1 a 128.1.255.254 (afinal, a máscara utiliza 16 bits) será encaminhado para o gateway 128.1.0.6.

3. Ping
Dessa forma, quando executamos o comando PING GOOGLE.COM.BR, como mostra a figura abaixo, esse pacote é encaminhado para o gateway (afinal, o endereço 74.125.234.81 não é alcançável em nenhuma das sub-redes), que, por sua vez, o encaminha para outro roteador. Porém, a grande questão desse Wiki é Para qual gateway esse pacote foi ou deverá ser encaminhado?
4. Custo de roteamento
Através do comando ROUTE PRINT pode-se visualizar, na seção "Rotas ativas", o custo atual do roteamento para os diversos gateways, como exibe a figura a seguir.

Na primeira linha pode-se identificar o gateway da rede IHM, já na segunda linha, um outro gateway disponibilizado pelo iPhone.
A configuração exibida na figura acima evidencia que o pacote destinado a google.com.br foi encaminhado para o gateway da IHM (128.1.0.6) pelo fato do custo de roteamento (30) ser menor que o custo associado ao iPhone (172.20.10.1).
Finalmente, como essa métrica pode ser alterada?
Passo 1: Executar o comando ROUTE DELETE 0.0.0.0, assim, é possível remover todas as rotas dinâmicas que seja destinadas à endereços 0.0.0.0.
Passo 2: Em seguida, executar o comando ROUTE ADD 0.0.0.0 MASK 0.0.0.0 172.20.10.1 METRIC 20 -P, para definir uma rota estática com custo 20 para a conexão com o iPhone.
Passo 3: Por fim, executar o comando ROUTE ADD 0.0.0.0 MASK 0.0.0.0 128.1.0.6 METRIC 30 -P, para definir uma rota estática com custo 30 para a conexão com a rede IHM.
Pronto. Os pacotes não alcançáveis nas sub-redes serão transmitidos para o gateway relacionado ao menor custo.
A verificação dos comandos poderá ser realizada, novamente, através do comando ROUTE PRINT, agora na seção "Rotas persistentes".

5. NETSH
O utilitário NETSH também possui um comando semelhante à ROUTE PRINT, NETSH INTERFACE IPV4 SHOW ROUTE e é considerado mais poderoso para realizar configurações de ambiente de rede.