7. Funções Avançadas Modbus
- 7.1. Habilitar o Gateway Modbus
- 7.2. Gateway Modbus de Armazenamento
- 7.3. Desabilitar a função de Armazenamento
- 7.4. Função Multi-Host
- 7.5. Parâmetros Multi-Host
- 7.6. Modbus sob Múltiplos IP de Destino
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.
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:
-
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.
-
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.
-
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.
-
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.
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.