Warning: include_once(/home/denisleite/denisleite.com/wp-content/plugins/wordsocial/wordsocial.php): failed to open stream: Permission denied in /home/denisleite/denisleite.com/wp-settings.php on line 255

Warning: include_once(): Failed opening '/home/denisleite/denisleite.com/wp-content/plugins/wordsocial/wordsocial.php' for inclusion (include_path='.:/usr/local/lib/php:/usr/local/php5/lib/pear') in /home/denisleite/denisleite.com/wp-settings.php on line 255
Modbus: comunicando uma CP Altus Série Ponto com o iFix utilizando o driver MB1 | Dênis Leite

automação para competitividade

Modbus: comunicando uma CP Altus Série Ponto com o iFix utilizando o driver MB1

Desenvolvemos uma aplicação em que precisamos comunicar um supervisório iFix 5.0 com uma CP 3142 da Série Ponto da Altus. Durante as verificações de detalhes de comunicação, tivemos uma dificulade estranha: conseguiamos comunicar Coils mas não Holding Registers.

Com a ajuda de um simulador modbus, nos enviado pelo Jones, da Altus, foi possível verificar que não havia qualquer problema com a rede(como já era de se esperar) nem com a CP, pois o simulador lia e escrevia valores nos holding registers sem problemas. Assim, ficamos com a configuração da comunicação (iFix <–> CP 3142), ou seja, precisavamos alinhar as ferramentas (MB1 <–> Master Tool).

Num bate papo com o pessoal da Aquarius e da Altus, verificamos que não havia qualquer incompatibilidade de protocolo. Ou seja, o padrão Modbus utilizado pela Altus é exatamente o mesmo do driver Modbus Modicon (MB1) desenvolvido para o iFix. Por tanto, o problema só poderia estar “entre a cadeira e o teclado”.

Indo mais a fundo nos detalhes, entramos nas particularidades da tabela Modbus. Para quem não conhece esse protocolo, existem áreas de registradores para cada tipo de dado. Então, por exemplo, para comunicar bits, lendo e escrevendo, utiliza-se a área de Coils, que começa no registrador de comunicação 1 e vai até o 4999. Já para comunicar valores no formato inteiro, por exemplo, deve-se utilizar os Holding Registers, que estão na faixa 40.001 até 49.999.

Estavamos apanhando num simples detalhe. Imagine que no Master Tool endereçamos o Holding Register 40.001. No simulador modbus, também, e no MB1 do iFix também. Contudo, quando dizemos para o Master Tool ou para o simulador que vamos comunicar o Holding Register número X, ambas as ferramentas somam o valor 40.000 ao endereço, o que não acontece com o iFix.

Ou seja, para comunicar o primeiro holding register da tabela modbus (endereço 40.001), é preciso configurar (40.001) no MB1 do iFix, e (1) no Master Tool. Como ao dizer ao Master Tool que estamos configurando um holding register ele soma 40.000 automaticamente ao valor do endereço, temos o endereço (40.001) em ambos os participantes.

Pronto, verificado esse detalhe, tudo funcionou perfeitamente.

Segundo o Jones, da Altus, o simulador Modbus foi desenvolvido para permitir que diferentes OEMs desenvolvam equipamentos, aplicativos e drivers para comunicação nesse protocolo e possam testá-los totalmente antes de lançá-los ao mercado. Dessa forma, podem ter certeza de que estão totalmente dentro das especificações.

Na nossa aplicação, utilizamos o simulador como um participante mestre RTU(lendo e escrevendo dados na CP 3142). Mas poderíamos tê-lo utilizado como escravo para testar a configuração do MB1 do iFix.

Gostou do Conteúdo? Assine nossa newsletter!
O link está na barra de menus da página. Como sabemos que ninguém tem tempo a perder condensamos o material e enviamos uma ou duas vezes ao mês.


2 Comments

  • Olá Denis, tudo bem? Ótimo saber que o sitema está em funcionamento. Abaixo segue algumas dicas para complementar seu post.

    O Modbus, como sabemos, é um protocolo muito utilizado na industria por vários motivos: ser um dos primeiros protocolos, ser de simples aplicação, ser barato na implementação e dependendo do equipamento já é possível ter uma taxa de transferencia elevada (ultrapassando 115Kbps), além de ser um protocolo aberto. No google, basta procurar por Modbus que o usuário terá acesso a toda codificação do frame de comunicação. Logo, qualquer um pode implementá-lo no próprio produto.

    Além do mais, existem vários protocolos que possuem o nome Modbus, mas os mais utilizados no mercado nacional são:
    – Modbus RTU – utilizado via serial, geralmente RS232 quando ponto a ponto e RS485 quando há mais de 2 nós ou requer distancias acima de 15 metros, que é o máximo que o RS232 chega. Utilizando a terminação e cabos corretos, com RS485 você poderá ultrapassar 1Km de distância.

    – Modbus/TCP – uma nova versão do Modbus que contempla utilizar a tecnologia ethernet e também trabalhar como cliente/servidor. Diferente do RTU que só é mestre e escravo, este você pode ter vários mestres (clientes) e vários escravos (servidores), inclusive disponibilizando os dandos para mais de um mestre simultaneamente. Daí, o único fator limitante é a especificação do fabricante. Por exemplo, o AL3414 (Modbus/TCP da Série AL2000 da Altus pode disponibilizar dados para mais de 120 mestres/clientes quando está configurado para servidor).

    – Modbus RTU via TCP – esse é o mesmo Modbus RTU falado anteriormente, contudo… utiliza-se um conversor de Serial/Ethernet para utilizar o meio fisico Ethernet para trafegar os dados. Isso não o torna multi-mestre ou cliente/servidor, mas te dá um grande beneficio que é utilizar a infraestrutura da rede Ethernet.

    Pois bem, outra informação importante: Geralmente, os controladores que utilizam Modbus (seja RTU ou TCP) empacotam as informações em blocos de 250Bytes (ou 125 Words). Respeitar esse limite é essencial, caso contrário, você não terá sucesso na comunicação. Isto é:
    Mesmo que você tenha 500 words em sequência (para facilitar o empacotamento das informações e otimizar a quantidade de requisições, e ganhar tempo na comunicação) você precisará fazer 4 blocos de comunicação no supervisório.

    Uma dica: geralmente o tempo de polling de um supervisório se dá a grosso modo:
    TP (tempo polling) = TPR (tempo de ping da rede) + TVMR (Tempo de varredura do módulo de Rede) + TMVCP (Tempo Máximo de varredura do Controlador Programável), eu colocaria uns 30% de folga.

    Isso fará com que os buffers de comunicação dos controladores não trabalhem saturados (sempre cheios).

    Por fim, cabe lembrar que essa rede, por ser barata, está sempre em evolução. Hoje é possível você ter mais de 10.000 registros de bits ou words em uma rede. Alguns chamam de versão 2 do modbus. No manual da Série FBs da Altus Parte II, capítulo 12, página 42, tem um exemplo de mapeamento das variáveis em Modbus (www.altus.com.br >> Downloads >> Portugues >> Produtos >> FBs >> 00 Doc Serie >> Manuais e Apostilas >> Manual_FBs_Parte_II.pdf)

    Observe que há 5 CODE, modelo antigo onde o endereçamento era em 5 digitos. Há agora o 6 CODE, modelo novo, onde o endereçamento é de 6 digitos, aumentando assim a faixa de trabalho.

    Mas não se preocupe, ambos são compatíveis, por exemplo: O supervisório está coletando uma variável chamada Holding Register 1. Caso seu controlador seja 5 CODE ele entenderá como 40.001, caso ele seja 6 CODE ele entenderá como 400.001.

    Então fiquem tranquilo. A tecnologia está sempre evoluindo e a habilidade de manter sistemas compatíveis é extremamente importante para a saúde evolutiva do processo.

    Neste link você tem um programador H-Designer de IHM, Série H da Altus, livre que te permite simular vários protocolos, além do Modbus: http://ft.beijer.se/files/C12572A600329472/DD38BBE0F5DB3927C125737500555576/H-Designer%20V6%5B1%5D.3.1-169.1.zip
    Uma dica para realizar um teste simples:
    2 computadores
    ambos com o H-designer instalados
    utilize um cabo CROSS para interligar os computadores via serial ou utilize rede ethernet
    configure um computador como mestre modbus RTU e outro como escravo modbus RTU, em caso de serial. Caso esteja com ethernet, configure como cliente e servidor respectivamente. Daí é só brincar.

    Acho que falei de mais. Fico por aqui, sucesso e feliz 2010 para todos.

  • Jones,

    obrigado pela atenção. Sobre “ter falado demais”, tenho certeza que se tivesse falado mais, teria enriquecido ainda mais o conteúdo! Excelente a dica do aplicativo da Beijer, será de grande valia para testes em aplicações futuras!

    Aproveitando, boas férias e felicidades com o nascimento do seu filho!

    um abraço,

    Dênis

Post a Comment

Your email address will not be published. Required fields are marked *

Spam Protection by WP-SpamFree

  • Categorias