Problemas Comuns no Driver Modbus: Incremento de Endereços Fora do Padrão

Descrição:

O padrão do protocolo Modbus estabelece que a cada endereço corresponda um espaço de 16 bits. No entanto, alguns equipamentos endereçam a memória em grupos de 8 bits. Neste caso, como é possível realizar o acesso aos registradores? Como se dá o incremento de endereço fora de padrão?

Solução:

Devido à diferença na forma como o endereço é incrementado, o driver Modbus não permite a realização de operações em blocos. Dessa forma, ao acessar as propriedades do objeto IODriver, altere a propriedade EnableReadGrouping para False. Assim também, utilize apenas tags de comunicação no driver, e não blocos de comunicação.

Primeiramente, considere a tabela abaixo. Nela, os endereços são indexados a partir do valor 40000. Nesse exemplo, o endereço Modbus 40001 corresponde a um grupo de 16 bits. Para o equipamento, este mesmo espaço de memória está dividido em dois grupos de 8 bits, com os endereços 40002 e 40003; dessa forma, não é possível acessar cada um desses endereços individualmente.

Tamanho Endereço no Equipamento Endereço Modbus
16 bits 8 bits 40000 40000
8 bits 40001
16 bits 8 bits 40002 40001
8 bits 40003
16 bits 8 bits 40004 40002
8 bits 40005

Assim sendo, para o driver, todos os acessos são feitos em grupos de 16 bits. Para ler os valores nos endereços do equipamento 40002 e 40003, o driver deve acessar o endereço 40001, obtendo um valor de 16 bits, que pode ser posteriormente separado em partes de 8 bits. Do mesmo modo, quando o driver escrever no endereço 40001, serão sobrescritos os valores correspondentes no equipamento aos endereços 40002 e 40003. Assim, caso deseje alterar apenas um desses endereços, o valor a ser escrito deve ser combinado com o valor do outro endereço antes da escrita através de operações binárias.

Uma outra maneira mais simples, porém mais limitada, de contornar a situação é acessar os endereços Modbus como se fossem valores de apenas 8 bits. Nessa situação, só são acessíveis os endereços do equipamento 40000, 40002, 40004, etc., que correspondem no driver aos endereços 40000, 40001, 40002, etc.

Artigos Relacionados:


Este artigo foi útil? Was this post helpful?
Yes1
No0