Pergunta
Resposta
Os módulos ESC715, ESC716 S2, ESC716 S4, ESC717 S2 e ESC717 S4 são conversores de meio físico RS232 ou RS485 para Ethernet e vice versa. A utilização mais comum para estes módulos é permitir que uma aplicação que acessa um equipamento via um canal de comunicação serial, possa fazê-lo através da rede Ethernet de forma transparente. Para tanto, é disponibilizado uma "porta serial virtual" permitindo que a aplicação que roda no computador, utilizando esta porta virtual, trafegue as informações em uma rede Ethernet até o ESC715/716/717 S2 e S4 e que por sua vez estará conectado à porta serial do equipamento a ser acessado.
Os módulos ESC715, ESC716 S2 ou S4 e ESC717 S2 ou S4 são transparentes para o conteúdo da informação que é trafegada por eles, ou seja, não existe nenhum processamento ou modificação do pacote de dados que é recebido (pelo canal serial ou pelo canal Ethernet), sendo este conteúdo retransmitido sem nenhuma alteração.
O protocolo MODBUS possui duas especificações distintas e diferentes, definidas para utilização em rede serial e em rede Ethernet.
- Protocolo MODBUS-RTU: Este protocolo foi definido para ser utilizado na comunicação serial entre dois ou mais dispositivos. É portanto utilizado para comunicação via RS232-C, RS442 e RS485.
- Protocolo MODBUS-TCP: Este protocolo foi definido para trafegar o padrão MODBUS em uma rede Ethernet. A nível de aplicação, as informações são as mesmas do protocolo MODBUS-RTU entretanto existem informações adicionais no pacote transmitido para adaptá-lo para o cenário Ethernet.
A necessidade de definição de um padrão diferente para comunicação via serial e Ethernet deve-se ao fato de que, no protocolo MODBUS-RTU, a detecção final de um pacote de dados é realizada contabilizando-se um tempo (timeout) de 3,5 caracteres sem tráfego de dados no canal de comunicação. Isto significa que, entre os bytes de dados de um pacote MODBUS-RTU não pode haver um atraso maior que 3.5 bytes pois neste caso o protocolo entende que é fim de pacote. No ambiente Ethernet, o parâmetro tempo de transmissão entre caracteres não é fixo e tão pouco fácil de ser mensurado.
Adicionalmente, o pacote de dados enviado, pode ser quebrado em partes dependendo do tráfego na rede Ethernet. Com esta quebra não é possível garantir que o tempo de recepção entre dois pacotes seja menor que um valor qualquer. Em resumo, a utilização de temporização para caracterizar o fim de um pacote MODBUS não pode ser garantida no ambiente Ethernet e por esta razão foi definido o padrão MODBUS-TCP onde estas restrições de tempo não se aplicam.
Desta forma, para utilização do ESC715, ESC716 S, ESC717 S (ou qualquer outro conversor serial/Ethernet transparente) com o protocolo MODBUS deve-se considerar os seguintes cenários:
- O cliente deseja utilizar o protocolo MODBUS-TCP para acessar o dispositivo remoto, que por sua vez responde ao protocolo MODBUS-RTU. Neste caso, será necessário utilizar uma "bridge" para realizar a conversão do protocolo MODBUS-TCP para MODBUS-RTU. Neste cenário o ESC715, ESC716 S ou ESC717 S não atendem a esta necessidade, pois tratam-se apenas de conversores Serial/Ethernet, sem suporte para realizar esta conversão de protocolos. Neste cenário, os controladores P7C e ZAP91X e NEON podem operar como bridge MODBUS-TCP / MODBUS-RTU.
- O cliente utiliza o protocolo MODBUS-RTU para acessar o dispositivo remoto, que por sua vez também responde ao protocolo MODBUS-RTU. Neste caso, como o protocolo MODBUS-RTU possui restrições de temporização de caracteres, e a depender do trafego da rede Ethernet utilizada, isto pode implicar em quebras de pacotes na camada de transporte TCP. Neste cenário, a viabilidade de utilizar o ESC715/716/717 S2/4 depende do tráfego da rede Ethernet onde estará conectado o ESC715/716/717 S2/4:
- (A) Quando o tráfego da rede Ethernet for "baixo", não ocorrerão quebras nos pacotes manipulados pela camada TCP, e assim os pacotes de dados serão recebidos e enviados de forma atômica atendendo as restrições de tempo do protocolo MODBUS.
- (B) Quando o tráfego da rede Ethernet for mais "intenso", "podem" ocorrer quebras de pacotes na camada TCP, e neste caso, pacotes de dados parciais podem ser entendidos com frames MODBUS completos ocasionando falha e consequente perda do pacote. Cabe ressaltar que, mesmo com a quebra do pacote, se os tempos entre os mesmos atenderem a especificação do protocolo o pacote resultante será tratado de forma correta.
Já o modelo ESC716 B2 ou B4 e ESC717 B2 ou B4 faz a conversão do protocolo MODBUS TCP para MODBUS RTU, e vice versa.