7. Funções Avançadas Modbus

7.1. Habilitar o Gateway Modbus

Em primeiro lugar, a interface suporta ser um gateway Modbus, ou seja, a conversão de Modbus TCP para RTU conforme tabela de modos e conversão.

Por padrão, a interface está no modo de transmissão transparente direta. Se necessitar alterar para o modo de gateway Modbus, selecione a opção Modbus_TCP Protocol em Transfer Procotol na janela Device Settings. Depois disso, o dispositivo altera automaticamente o parâmetro Port para 502 (a porta do servidor Modbus). Em seguida, o gateway Modbus é habilitado.

Se o dispositivo RTU for utilizado como uma estação escravo, o software Modbus TCP no computador host se conecta à porta 502 do gateway Modbus. Neste momento, o gateway Modbus necessita trabalhar no modo de servidor TCP; se a porta serial RTU for usada como estação mestre, o Modbus gateway funciona como um cliente TCP e o IP de destino é o IP do computador onde o software Modbus TCP está localizado e a porta de destino geralmente é 502.

7.2. Gateway Modbus de Armazenamento

A interface pode salvar o conteúdo do registro de leitura (read register) dentro do gateway, para que a consulta velocidade do Modbus TCP pode ser significativamente ser melhorada, e o desempenho é ainda melhor quando suporta acesso multi-host.

ETH_modbus_tcprtu.png


Primeiramente comando Modbus TCP é convertido no comando correspondente do Modbus RTU, o dispositivo responde ao comando Modbus RTU para o gateway Modbus e então o gateway Modbus é convertido novamente para Modbus TCP e enviado para o computador host de monitoramento.

Como o Modbus TCP é a comunicação de rede, e a velocidade de transmissão é muito rápida. Geralmente, ele pode responder em 3ms, enquanto o Modbus RTU adota RS485, que geralmente tem um velocidade de 9600bps. Geralmente, leva pelo menos 30ms para enviar e retornar um comando. O tempo de resposta de tais gateways Modbus comuns sem armazenamento é relativamente longo. Além disso, se houver muitos computadores host ao mesmo tempo para consultar dados ao mesmo tempo, então a porta serial ficará congestionado.

O gateway Modbus com armazenamento do registro resolve os problemas acima. Ele pode salvar temporariamente os dados de registro obtidos no gateway Modbus, para que quando o Modbus TCP consultar, o gateway Modbus pode retornar imediatamente o comando, o que demonstra que o Modbus TCP pode ser operado rapidamente. Por outro lado, a interface pode tomar a iniciativa de enviar instruções da porta RS485 para atualizar automaticamente o conteúdo do registro de dados salvos, e salvar uma cópia do valor de registro mais recente.

Além disso, esta interface é um gateway Modbus totalmente automático e sem configuração, os usuários não precisam configurar o endereço de registro necessário, código de função, endereço escravo, etc. A interface reconhecerá automaticamente e adicionará dinamicamente esses registros de acordo com os comandos Modbus TCP enviados da porta de rede.

A interface pode responder rapidamente quando monitorado por vários computadores. Não importa qual seja a taxa de transmissão da porta serial, ela geralmente pode responder os dados ao host dentro de 3ms, o que demostra uma boa velocidade de atualização dos dados da porta serial. O gateway Modbus que salva o registro é um Modbus TCP para Modbus RTU real. Isto realmente leva vantagem da velocidade rápida do Modbus TCP e a capacidade de consultar por vários hosts no mesmo tempo.

Observe que quando a interface é utilizada como cliente TCP, ele não possui a função de armazenamento e mudará automaticamente para o tipo sem armazenamento.

As características do armazenamento Modbus estão listadas abaixo:

  1. O primeiro comando de consulta Modbus TCP é do tipo sem armazenamento. Porque você deve esperar o dispositivo RTU para retornar dados lentamente antes de retornar o conteúdo do registro para a porta de rede.

  2. Se um comando específico não for mais solicitado pelo computador host no lado da rede dentro de 5 segundos, este comando será excluído automaticamente e não será mais enviado para o dispositivo RTU da porta serial.

  3. Atualmente, ele pode armazenar cache Modbus de 10K. Para consulta comum de um único registro, cerca de 500 instruções podem ser armazenadas ao mesmo tempo.

  4. Quando mais comandos estão sendo consultados ao mesmo tempo, eles são enviados em ordem. O primeiro comando envia o primeiro comando de resposta e aguarda o tempo de anti-colisão da RS485 (consulte a seção de Multi-Host). O segundo comando envia... Retorna ao primeiro comando após o último comando que foi respondido.

7.3. Desabilitar a função de Armazenamento

Embora a função de armazenamento do Modbus tenha uma velocidade de resposta mais rápida, alguns usuários não querem que o dispositivo RTU recebam um grande número de comandos de consulta, o que afeta o velocidade de processamento do dispositivo. A função de armazenamento pode ser desligada neste momento.

O método para desabilitar o tipo de armazenamento é clicar no botão More Advaced Settigns... na janela Device Settings, desabilite as funções Enable RS485 Multi-Host e Enable RS485 bus conflict detection conforme mostrado na figura abaixo e clique em OK. Em seguida, volte para a janela Device Settings e clique no botão Modify Settings. Observe que ao usar o método de configuração do protocolo Modbus via pagina web integrada, o padrão é um gateway Modbus sem armazenamento.

7.4. Função Multi-Host

Conforme mostrado na figura anterior, Enable RS485 Multi-Host e Enable RS485 bus conflict detection são funções multi-host. Geralmente são habilitadas e desabilitadas ao mesmo tempo. Após habilitar, deixe que o dispositivo cujo protocolo de conversão seja Modbus TCP tenha a função de armazenamento do gateway Modbus, caso contrário, é um gateway Modbus sem armazenamento; se a conversão protocolo é None, geralmente o protocolo RS485 definido pelo usuário também pode ter dispositivos seriais acessado por vários hosts ao mesmo tempo e esta função não pode ser alcançada em um rede RS485 tradicional, porque várias estações mestras enviando ao mesmo tempo causarão conflitos no barramento RS485. O recurso de múltiplos hosts da interface podem "coordenar" o barramento RS485 para alcançar o objetivo de acesso multi-host.

ETH_modbus_multihost.png

Conforme mostrado na figura acima, no modo normal, quando dois hosts: host A e host B estão conectados a interface ao mesmo tempo, o host A envia (1) comando, o dispositivo RS485 recebe (2) comando, o dispositivo RS485 retorna (3) comando, mas a interface enviará (4) para o host A e (5) para o host B ao mesmo tempo. O host B não enviou a consulta, mas também recebeu o comando de resposta (5), o host B pode gerar um erro anormal de comunicação. No modo Multi-Host, haverá apenas o comando (4) mas não o comando (5), pois a interface irá lembrar automaticamente qual o host que precisa ser retornado e retornar apenas as instruções para o host de comunicação mais recente, e a consulta do host A apenas responde ao host A, a consulta do host B e responde ao host B.

Outra função que existe no modo normal, quando o host A e o host B enviam dados ao mesmo tempo, a combinação de instruções será gerada no barramento RS485, de forma a não ser reconhecida normalmente; no modo multi-host, a interface pode agendar o host A e B para utilizar o barramento. Priorize o problema do conflito de acesso simultâneo por múltiplas máquinas de forma eficaz.

Quando o protocolo de conversão é None, a função Multi-Host não é habilitada por default. Quando você precisar habilitar a função Multi-Host, clique no botão More Advanced Settings... e na caixa de diálogo RS485 Multi-Host Support Settings marque a opção Enable RS485 Multi-Host.

7.5. Parâmetros Multi-Host

Os significados de Enable RS485 Multi-Host e Enable RS485 bus conflict detection são os seguintes:



O campo Maximum wait time of RS485 query command ou tempo máximo de resposta do comando RS485: é o intervalo de tempo máximo do envio deste comando para receber a resposta da porta RS485 da interface.



o campo Send a data only when RS485 bus is idle for: indica quantos milissegundos a interface espera após receber a resposta do primeiro comando antes de enviar o segundo comando. Este parâmetro realmente define a velocidade de rotação do comando. O valor é recomendado é ser maior do que 20ms. O parâmetro Maximum wait time geralmente não precisa ser modificado.

Quando o usuário usa o software VirCom para selecionar o protocolo de conversão como Protocolo Modbus_TCP, o VirCom verificará automaticamente as duas caixas de habilitação acima (a menos que o usuário manualmente entra na opção avançada para demarcá-los), e os dois tempos acima também serão configurados automaticamente de acordo com a taxa de transmissão. No entanto, se o comando Modbus do usuário for relativamente longo ou o protocolo de conversão for None, esses dois parâmetros precisam ser configurados manualmente.

7.6. Modbus sob Múltiplos IP de Destino

Se o dispositivo RS485 for utilizado como estação mestra e o dispositivo de porta de rede (dispositivo Modbus TCP) é usado como estação escrava, e há vários dispositivos escravos conectados na porta de rede via switch/roteador. Neste momento, é possível utilizar o método descrito em 5.3.2 Cliente Conectado Múltiplos Servidores para permitir que a interface configurada como um cliente se conecte a esses múltiploes dispositivos da rede ao mesmo tempo.

A função que precisa ser realizada neste momento é: quando a porta RS485 envia um comando, ele pode ser enviado para vários dispositivos de porta de rede, o dispositivo de porta de rede reconhece se deve enviá-lo para si mesmo através do campo Slave ID, e apenas o dispositivo da porta de rede correspondente ao Slave ID responde. Depois que a resposta da porta de rede é enviada para a interface, ela é convertida em um comando RTU e saída da porta RS485 para o dispositivo RTU. Neste momento, deve-se notar que é necessário remover as duas marcas de seleção da janela More Advaced Settings, sendo Enable RS485 bus conflict detection e Enable RS485 Multi-Host, caso ontrário, a função de múltiplos IP de destino não pode ser realizada.

Outro método de aplicação é: Caso a interface esteja conectado a vários dispositivos de porta de rede como um cliente, o dispositivo RTU não é a estação mestra, e o dispositivo da porta de rede ainda o envia primeiro, e o dispositivo RTU responde (como uma estação escrava). Neste momento, os parâmetros Enable RS485 bus conflict detection e Enable RS485 Multi-Host ainda precisam ser verificados, para que vários hosts possam acessar um dispositivo RTU ao mesmo tempo.